├── .node-version ├── projects ├── www │ ├── public │ │ ├── .gitkeep │ │ ├── _redirects │ │ ├── favicon.ico │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── mstile-70x70.png │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ ├── apple-touch-icon.png │ │ ├── images │ │ │ ├── bios │ │ │ │ ├── marko.jpg │ │ │ │ ├── rainer.jpg │ │ │ │ ├── timd.jpg │ │ │ │ ├── victor.png │ │ │ │ ├── _no-one.jpg │ │ │ │ ├── wardbell.jpg │ │ │ │ ├── john-papa.jpg │ │ │ │ ├── mike-ryan.jpg │ │ │ │ ├── rob-wormald.jpg │ │ │ │ ├── wesgrimes.jpg │ │ │ │ ├── alex-okrushko.jpg │ │ │ │ └── brandonroberts.jpg │ │ │ ├── guide │ │ │ │ ├── data │ │ │ │ │ └── action-flow.png │ │ │ │ ├── component-store │ │ │ │ │ ├── file-structure.png │ │ │ │ │ ├── types-of-state.png │ │ │ │ │ └── state-structure.png │ │ │ │ ├── store │ │ │ │ │ ├── state-management-lifecycle.png │ │ │ │ │ └── state-management-lifecycle.psd │ │ │ │ └── signals │ │ │ │ │ └── app-architecture-with-events-plugin.png │ │ │ └── marketing │ │ │ │ └── workshops │ │ │ │ └── header.jpg │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ └── browserconfig.xml │ ├── src │ │ ├── app │ │ │ ├── pages │ │ │ │ └── guide │ │ │ │ │ ├── data │ │ │ │ │ └── architecture.md │ │ │ │ │ ├── store │ │ │ │ │ └── architecture.md │ │ │ │ │ └── operators │ │ │ │ │ └── index.md │ │ │ ├── examples │ │ │ │ ├── router-store-selectors │ │ │ │ │ └── src │ │ │ │ │ │ ├── app │ │ │ │ │ │ ├── app.component.css │ │ │ │ │ │ ├── car │ │ │ │ │ │ │ ├── car.component.css │ │ │ │ │ │ │ ├── car.component.html │ │ │ │ │ │ │ └── car.actions.ts │ │ │ │ │ │ └── app.component.html │ │ │ │ │ │ ├── main.ts │ │ │ │ │ │ └── index.html │ │ │ │ ├── component-store-slide-toggle │ │ │ │ │ └── src │ │ │ │ │ │ └── app │ │ │ │ │ │ └── app.component.css │ │ │ │ ├── testing-store │ │ │ │ │ └── src │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ ├── styles.css │ │ │ │ │ │ ├── app │ │ │ │ │ │ ├── actions │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── auth.actions.ts │ │ │ │ │ │ ├── book-list │ │ │ │ │ │ │ ├── books.model.ts │ │ │ │ │ │ │ ├── book-list.component.css │ │ │ │ │ │ │ └── book-list.component.html │ │ │ │ │ │ ├── state │ │ │ │ │ │ │ └── app.state.ts │ │ │ │ │ │ └── book-collection │ │ │ │ │ │ │ ├── book-collection.component.css │ │ │ │ │ │ │ └── book-collection.component.html │ │ │ │ │ │ └── index.html │ │ │ │ ├── __base │ │ │ │ │ ├── src │ │ │ │ │ │ ├── app.config.ts │ │ │ │ │ │ └── app.component.ts │ │ │ │ │ ├── vite.config.js │ │ │ │ │ └── stackblitz-empty.yml │ │ │ │ ├── store-walkthrough │ │ │ │ │ └── src │ │ │ │ │ │ ├── book-list │ │ │ │ │ │ ├── book.ts │ │ │ │ │ │ └── book-list.css │ │ │ │ │ │ ├── state │ │ │ │ │ │ └── app.state.ts │ │ │ │ │ │ ├── book-collection │ │ │ │ │ │ └── book-collection.css │ │ │ │ │ │ └── main.ts │ │ │ │ ├── ngrx-start │ │ │ │ │ ├── src │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ ├── app.config.ts │ │ │ │ │ │ └── main.ts │ │ │ │ │ └── stackblitz.yml │ │ │ │ ├── signals-01 │ │ │ │ │ └── stackblitz.yml │ │ │ │ └── store │ │ │ │ │ └── src │ │ │ │ │ ├── counter.actions.ts │ │ │ │ │ ├── app.config.ts │ │ │ │ │ ├── app.component.ts │ │ │ │ │ └── counter.reducer.ts │ │ │ ├── app.config.browser.ts │ │ │ └── app.config.server.ts │ │ ├── shared │ │ │ └── index.ts │ │ ├── vite-env.d.ts │ │ ├── main.ts │ │ ├── main.server.ts │ │ └── tools │ │ │ └── prepare-examples.ts │ ├── tsconfig.tools.json │ ├── package.json │ ├── tsconfig.editor.json │ ├── tsconfig.spec.json │ ├── tsconfig.app.json │ └── firebase.json ├── ngrx.io │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── images │ │ │ │ ├── badge.png │ │ │ │ ├── state.png │ │ │ │ ├── badge-white.png │ │ │ │ ├── favicons │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon-16x16.png │ │ │ │ ├── favicon-32x32.png │ │ │ │ ├── apple-touch-icon.png │ │ │ │ ├── android-chrome-192x192.png │ │ │ │ └── android-chrome-512x512.png │ │ │ │ ├── sponsors │ │ │ │ ├── briebug.png │ │ │ │ └── house-of-angular.png │ │ │ │ └── logos │ │ │ │ └── angular │ │ │ │ ├── angular.png │ │ │ │ ├── logo-nav@2x.png │ │ │ │ ├── angular_solidBlack.png │ │ │ │ ├── angular_whiteTransparent.png │ │ │ │ └── angular_whiteTransparent_withMargin.png │ │ ├── _redirects │ │ ├── extra-files │ │ │ ├── next │ │ │ │ ├── CNAME │ │ │ │ └── robots.txt │ │ │ ├── archive │ │ │ │ └── robots.txt │ │ │ └── stable │ │ │ │ └── robots.txt │ │ ├── google385281288605d160.html │ │ ├── typings.d.ts │ │ ├── styles │ │ │ ├── 0-base │ │ │ │ └── _index.scss │ │ │ ├── 2-modules │ │ │ │ ├── progress-bar │ │ │ │ │ └── _progress-bar.scss │ │ │ │ ├── edit-page-cta │ │ │ │ │ ├── _edit-page-cta-theme.scss │ │ │ │ │ └── _edit-page-cta.scss │ │ │ │ ├── hr │ │ │ │ │ ├── _hr.scss │ │ │ │ │ └── _hr-theme.scss │ │ │ │ ├── images │ │ │ │ │ └── _images-theme.scss │ │ │ │ ├── heading-anchors │ │ │ │ │ └── _heading-anchors-theme.scss │ │ │ │ ├── contribute │ │ │ │ │ └── _contribute.scss │ │ │ │ ├── alert │ │ │ │ │ └── _alert.scss │ │ │ │ └── enterprise-support │ │ │ │ │ └── _enterprise-support.scss │ │ │ ├── _app-theme.scss │ │ │ └── 1-layouts │ │ │ │ ├── table-of-contents │ │ │ │ └── _table-of-contents.scss │ │ │ │ └── not-found │ │ │ │ └── _not-found-theme.scss │ │ ├── app │ │ │ ├── shared │ │ │ │ ├── window.ts │ │ │ │ └── current-date.ts │ │ │ ├── documents │ │ │ │ └── document-contents.ts │ │ │ ├── sw-updates │ │ │ │ └── sw-updates.module.ts │ │ │ ├── custom-elements │ │ │ │ ├── expandable-section │ │ │ │ │ └── expandable-section.component.html │ │ │ │ ├── events │ │ │ │ │ └── event.model.ts │ │ │ │ └── ngrx │ │ │ │ │ └── circles.module.spec.ts │ │ │ └── layout │ │ │ │ ├── notification │ │ │ │ └── notification.component.html │ │ │ │ └── footer │ │ │ │ └── footer.component.ts │ │ ├── environments │ │ │ ├── environment.stable.ts │ │ │ ├── environment.next.ts │ │ │ └── environment.archive.ts │ │ ├── tsconfig.spec.json │ │ ├── testing │ │ │ └── search.service.ts │ │ └── main.ts │ ├── .node-version │ ├── content │ │ ├── examples │ │ │ ├── store │ │ │ │ ├── example-config.json │ │ │ │ ├── src │ │ │ │ │ ├── app │ │ │ │ │ │ ├── app.component.css │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── my-counter │ │ │ │ │ │ │ └── my-counter.component.html │ │ │ │ │ │ └── counter.actions.ts │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ └── index.html │ │ │ │ ├── stackblitz.json │ │ │ │ └── e2e │ │ │ │ │ └── src │ │ │ │ │ └── app.e2e-spec.ts │ │ │ ├── ngrx-start │ │ │ │ ├── example-config.json │ │ │ │ ├── src │ │ │ │ │ ├── app │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ ├── app.component.css │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ └── app.module.ts │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ └── index.html │ │ │ │ └── stackblitz.json │ │ │ ├── testing-store │ │ │ │ ├── example-config.json │ │ │ │ ├── src │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ ├── styles.css │ │ │ │ │ ├── app │ │ │ │ │ │ ├── actions │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── auth.actions.ts │ │ │ │ │ │ ├── book-list │ │ │ │ │ │ │ ├── books.model.ts │ │ │ │ │ │ │ ├── book-list.component.css │ │ │ │ │ │ │ └── book-list.component.html │ │ │ │ │ │ ├── state │ │ │ │ │ │ │ └── app.state.ts │ │ │ │ │ │ └── book-collection │ │ │ │ │ │ │ ├── book-collection.component.css │ │ │ │ │ │ │ └── book-collection.component.html │ │ │ │ │ └── index.html │ │ │ │ └── stackblitz.json │ │ │ ├── store-walkthrough │ │ │ │ ├── example-config.json │ │ │ │ ├── stackblitz.json │ │ │ │ └── src │ │ │ │ │ ├── app │ │ │ │ │ ├── book-list │ │ │ │ │ │ ├── books.model.ts │ │ │ │ │ │ ├── book-list.component.css │ │ │ │ │ │ └── book-list.component.html │ │ │ │ │ ├── state │ │ │ │ │ │ └── app.state.ts │ │ │ │ │ └── book-collection │ │ │ │ │ │ ├── book-collection.component.css │ │ │ │ │ │ └── book-collection.component.html │ │ │ │ │ └── index.html │ │ │ ├── router-store-selectors │ │ │ │ ├── example-config.json │ │ │ │ ├── src │ │ │ │ │ ├── app │ │ │ │ │ │ ├── app.component.css │ │ │ │ │ │ ├── car │ │ │ │ │ │ │ ├── car.component.css │ │ │ │ │ │ │ ├── car.component.html │ │ │ │ │ │ │ └── car.actions.ts │ │ │ │ │ │ └── app.component.html │ │ │ │ │ ├── main.ts │ │ │ │ │ └── index.html │ │ │ │ └── stackblitz.json │ │ │ ├── component-store-paginator │ │ │ │ ├── example-config.json │ │ │ │ └── stackblitz.json │ │ │ ├── component-store-slide-toggle │ │ │ │ ├── example-config.json │ │ │ │ ├── src │ │ │ │ │ └── app │ │ │ │ │ │ └── app.component.css │ │ │ │ └── stackblitz.json │ │ │ └── component-store-paginator-service │ │ │ │ ├── example-config.json │ │ │ │ └── stackblitz.json │ │ ├── guide │ │ │ ├── style-guide.md │ │ │ ├── data │ │ │ │ └── architecture.md │ │ │ ├── store │ │ │ │ └── architecture.md │ │ │ └── operators │ │ │ │ └── index.md │ │ ├── marketing │ │ │ ├── api.html │ │ │ ├── about.html │ │ │ ├── events.html │ │ │ ├── resources.html │ │ │ └── announcements.json │ │ └── images │ │ │ ├── bios │ │ │ ├── marko.jpg │ │ │ ├── rainer.jpg │ │ │ ├── timd.jpg │ │ │ ├── victor.png │ │ │ ├── _no-one.jpg │ │ │ ├── wardbell.jpg │ │ │ ├── john-papa.jpg │ │ │ ├── mike-ryan.jpg │ │ │ ├── rob-wormald.jpg │ │ │ ├── wesgrimes.jpg │ │ │ ├── alex-okrushko.jpg │ │ │ └── brandonroberts.jpg │ │ │ ├── guide │ │ │ ├── data │ │ │ │ └── action-flow.png │ │ │ ├── component-store │ │ │ │ ├── file-structure.png │ │ │ │ ├── types-of-state.png │ │ │ │ └── state-structure.png │ │ │ ├── store │ │ │ │ ├── state-management-lifecycle.png │ │ │ │ └── state-management-lifecycle.psd │ │ │ └── signals │ │ │ │ └── app-architecture-with-events-plugin.png │ │ │ └── marketing │ │ │ └── concept-icons │ │ │ ├── cdk.png │ │ │ ├── cli.png │ │ │ ├── http.png │ │ │ ├── i18n.png │ │ │ ├── labs.png │ │ │ ├── pwa.png │ │ │ ├── augury.png │ │ │ ├── forms.png │ │ │ ├── karma.png │ │ │ ├── router.png │ │ │ ├── compiler.png │ │ │ ├── libraries.png │ │ │ ├── material.png │ │ │ ├── templates.png │ │ │ ├── universal.png │ │ │ ├── animations.png │ │ │ ├── components.png │ │ │ ├── lazy-loading.png │ │ │ ├── performance.png │ │ │ ├── protractor.png │ │ │ ├── language-services.png │ │ │ └── dependency-injection.png │ ├── tools │ │ ├── transforms │ │ │ ├── .eslintignore │ │ │ ├── templates │ │ │ │ ├── api │ │ │ │ │ ├── includes │ │ │ │ │ │ ├── info-bar.html │ │ │ │ │ │ ├── security-notes.html │ │ │ │ │ │ ├── usageNotes.html │ │ │ │ │ │ ├── deprecation.html │ │ │ │ │ │ ├── description.html │ │ │ │ │ │ └── see-also.html │ │ │ │ │ ├── const.template.html │ │ │ │ │ ├── let.template.html │ │ │ │ │ ├── value-module.template.html │ │ │ │ │ ├── pipe.template.html │ │ │ │ │ ├── class.template.html │ │ │ │ │ └── var.template.html │ │ │ │ ├── json-doc.template.json │ │ │ │ ├── example-region.template.html │ │ │ │ ├── cli │ │ │ │ │ └── include │ │ │ │ │ │ └── cli-header.html │ │ │ │ ├── data-module.template.js │ │ │ │ └── sitemap.template.xml │ │ │ ├── content-package │ │ │ │ └── tag-defs │ │ │ │ │ ├── intro.js │ │ │ │ │ └── title.js │ │ │ ├── angular-api-package │ │ │ │ ├── tag-defs │ │ │ │ │ ├── suppress.js │ │ │ │ │ ├── syntax.js │ │ │ │ │ ├── security.js │ │ │ │ │ ├── deprecated.js │ │ │ │ │ ├── publicApi.js │ │ │ │ │ ├── selectors.js │ │ │ │ │ ├── experimental.js │ │ │ │ │ ├── docsNotRequired.js │ │ │ │ │ ├── usageNotes.js │ │ │ │ │ ├── no-description.js │ │ │ │ │ ├── ngModule.js │ │ │ │ │ ├── ts2dart_const.js │ │ │ │ │ ├── Annotation.js │ │ │ │ │ ├── throws.js │ │ │ │ │ ├── nocollapse.js │ │ │ │ │ ├── howToUse.js │ │ │ │ │ └── stable.js │ │ │ │ ├── mocks │ │ │ │ │ └── importedSrc.ts │ │ │ │ ├── content-rules │ │ │ │ │ └── minLength.js │ │ │ │ └── processors │ │ │ │ │ └── filterPrivateDocs.js │ │ │ ├── examples-package │ │ │ │ └── services │ │ │ │ │ ├── example-map.js │ │ │ │ │ └── region-matchers │ │ │ │ │ ├── html.js │ │ │ │ │ ├── inline-c.js │ │ │ │ │ └── inline-hash.js │ │ │ ├── angular-base-package │ │ │ │ ├── services │ │ │ │ │ ├── copyFolder.js │ │ │ │ │ └── getImageDimensions.js │ │ │ │ ├── rendering │ │ │ │ │ └── toId.js │ │ │ │ └── processors │ │ │ │ │ └── copyContentAssets.js │ │ │ ├── links-package │ │ │ │ └── services │ │ │ │ │ └── disambiguators │ │ │ │ │ └── disambiguateByDeprecated.js │ │ │ ├── post-process-package │ │ │ │ └── index.js │ │ │ ├── angular-content-package │ │ │ │ └── inline-tag-defs │ │ │ │ │ └── anchor.js │ │ │ └── angular.io-package │ │ │ │ └── processors │ │ │ │ └── cleanGeneratedFiles.js │ │ ├── examples │ │ │ └── shared │ │ │ │ ├── boilerplate │ │ │ │ ├── cli │ │ │ │ │ ├── src │ │ │ │ │ │ ├── assets │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ ├── .browserslistrc │ │ │ │ │ │ ├── styles.css │ │ │ │ │ │ ├── environments │ │ │ │ │ │ │ └── environment.prod.ts │ │ │ │ │ │ └── favicon.ico │ │ │ │ │ ├── .editorconfig │ │ │ │ │ ├── e2e │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ └── app.po.ts │ │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ │ └── tsconfig.e2e.json │ │ │ │ │ └── tsconfig.app.json │ │ │ │ ├── common │ │ │ │ │ └── src │ │ │ │ │ │ └── styles.css │ │ │ │ └── systemjs │ │ │ │ │ ├── bs-config.json │ │ │ │ │ └── bs-config.e2e.json │ │ │ │ └── jsconfig.json │ │ ├── cli-patches │ │ │ ├── patch.js │ │ │ └── README.md │ │ ├── example-zipper │ │ │ ├── generateZips.js │ │ │ └── customizer │ │ │ │ └── package-json │ │ │ │ └── package.json │ │ └── stackblitz-builder │ │ │ └── generateStackblitz.js │ ├── database.rules.json │ ├── prettier.config.js │ ├── .firebaserc │ ├── scripts │ │ └── _payload-limits.json │ └── tests │ │ └── e2e │ │ └── tsconfig.e2e.json ├── example-app │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ └── .npmignore │ │ ├── app │ │ │ ├── auth │ │ │ │ ├── index.ts │ │ │ │ ├── models │ │ │ │ │ ├── index.ts │ │ │ │ │ └── user.ts │ │ │ │ ├── effects │ │ │ │ │ └── index.ts │ │ │ │ ├── containers │ │ │ │ │ └── index.ts │ │ │ │ ├── services │ │ │ │ │ └── index.ts │ │ │ │ ├── components │ │ │ │ │ └── index.ts │ │ │ │ └── actions │ │ │ │ │ ├── auth.actions.ts │ │ │ │ │ ├── login-page.actions.ts │ │ │ │ │ └── auth-api.actions.ts │ │ │ ├── books │ │ │ │ ├── models │ │ │ │ │ └── index.ts │ │ │ │ ├── guards │ │ │ │ │ └── index.ts │ │ │ │ ├── effects │ │ │ │ │ └── index.ts │ │ │ │ ├── containers │ │ │ │ │ ├── index.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── view-book-page.component.spec.ts.snap │ │ │ │ │ │ └── selected-book-page.component.spec.ts.snap │ │ │ │ ├── components │ │ │ │ │ └── index.ts │ │ │ │ └── actions │ │ │ │ │ ├── view-book-page.actions.ts │ │ │ │ │ ├── find-book-page.actions.ts │ │ │ │ │ ├── book.actions.ts │ │ │ │ │ ├── collection-page.actions.ts │ │ │ │ │ └── books-api.actions.ts │ │ │ ├── core │ │ │ │ ├── index.ts │ │ │ │ ├── effects │ │ │ │ │ └── index.ts │ │ │ │ ├── containers │ │ │ │ │ └── index.ts │ │ │ │ ├── services │ │ │ │ │ └── index.ts │ │ │ │ ├── components │ │ │ │ │ └── index.ts │ │ │ │ └── actions │ │ │ │ │ ├── user.actions.ts │ │ │ │ │ └── layout.actions.ts │ │ │ ├── material │ │ │ │ └── index.ts │ │ │ └── shared │ │ │ │ └── pipes │ │ │ │ └── index.ts │ │ └── main.ts │ └── tsconfig.spec.json ├── standalone-app │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── styles.css │ │ ├── favicon.ico │ │ ├── test-setup.ts │ │ ├── main.ts │ │ ├── app │ │ │ ├── test.pipe.ts │ │ │ └── lazy │ │ │ │ └── feature.routes.ts │ │ └── index.html │ ├── tsconfig.editor.json │ ├── tsconfig.app.json │ └── tsconfig.spec.json ├── standalone-app-e2e │ └── src │ │ ├── support │ │ └── app.po.ts │ │ └── integration │ │ └── app.cy.ts └── example-app-e2e │ └── tsconfig.json ├── modules ├── schematics │ ├── src │ │ ├── index.ts │ │ ├── ng-add │ │ │ ├── schema.ts │ │ │ └── schema.json │ │ ├── ngrx-push-migration │ │ │ ├── schema.ts │ │ │ └── schema.json │ │ ├── data │ │ │ └── files │ │ │ │ └── __name@dasherize@if-flat__ │ │ │ │ └── __name@dasherize__.ts.template │ │ ├── entity │ │ │ └── files │ │ │ │ └── __name@dasherize@if-flat__ │ │ │ │ └── __name@dasherize@group-models__.model.ts.template │ │ ├── component-store │ │ │ └── files │ │ │ │ └── __name@dasherize@if-flat__ │ │ │ │ └── __name@dasherize__.store.spec.ts.template │ │ └── selector │ │ │ └── files │ │ │ └── __name@dasherize@if-flat__ │ │ │ └── __name@dasherize__.selectors.ts.template │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── CHANGELOG.md │ ├── test-setup.ts │ ├── README.md │ ├── migrations │ │ ├── 6_0_0 │ │ │ └── index.ts │ │ └── migration.json │ └── tsconfig.spec.json ├── effects │ ├── testing │ │ ├── ng-package.json │ │ ├── index.ts │ │ ├── src │ │ │ └── public_api.ts │ │ ├── tsconfig.spec.json │ │ └── tsconfig.build.json │ ├── public_api.ts │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── CHANGELOG.md │ ├── index.ts │ ├── spec │ │ └── effects_resolver.spec.ts │ ├── src │ │ └── effects_actions.ts │ ├── README.md │ ├── migrations │ │ └── 6_0_0 │ │ │ └── index.ts │ ├── schematics │ │ ├── collection.json │ │ └── ng-add │ │ │ ├── files │ │ │ └── __name@dasherize@if-flat__ │ │ │ │ └── __name@dasherize__.effects.ts.template │ │ │ └── schema.ts │ ├── ng-package.json │ └── tsconfig.spec.json ├── store │ ├── testing │ │ ├── ng-package.json │ │ ├── index.ts │ │ ├── src │ │ │ ├── public_api.ts │ │ │ ├── tokens.ts │ │ │ └── mock_selector.ts │ │ ├── tsconfig.spec.json │ │ └── tsconfig.build.json │ ├── public_api.ts │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── CHANGELOG.md │ ├── index.ts │ ├── README.md │ ├── test-setup.ts │ ├── migrations │ │ └── 6_0_0 │ │ │ └── index.ts │ ├── src │ │ ├── meta-reducers │ │ │ └── index.ts │ │ ├── flags.ts │ │ └── globals.ts │ ├── ng-package.json │ ├── schematics │ │ ├── collection.json │ │ └── ng-add │ │ │ └── schema.ts │ ├── spec │ │ └── types │ │ │ └── utils.ts │ └── tsconfig.spec.json ├── signals │ ├── index.ts │ ├── entities │ │ ├── index.ts │ │ ├── ng-package.json │ │ └── spec │ │ │ ├── helpers.ts │ │ │ └── types │ │ │ └── helpers.ts │ ├── events │ │ ├── index.ts │ │ ├── ng-package.json │ │ └── src │ │ │ └── event-instance.ts │ ├── testing │ │ ├── index.ts │ │ ├── src │ │ │ └── index.ts │ │ ├── ng-package.json │ │ └── spec │ │ │ └── types │ │ │ └── helpers.ts │ ├── rxjs-interop │ │ ├── index.ts │ │ ├── src │ │ │ └── index.ts │ │ └── ng-package.json │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── schematics │ │ ├── ng-add │ │ │ └── schema.ts │ │ └── collection.json │ ├── CHANGELOG.md │ ├── README.md │ ├── ng-package.json │ ├── src │ │ └── deep-computed.ts │ ├── spec │ │ └── types │ │ │ └── helpers.ts │ └── tsconfig.spec.json ├── data │ ├── public_api.ts │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── CHANGELOG.md │ ├── index.ts │ ├── migrations │ │ └── migration.json │ ├── test-setup.ts │ ├── README.md │ ├── src │ │ ├── reducers │ │ │ └── entity-cache.ts │ │ └── effects │ │ │ └── entity-effects-scheduler.ts │ ├── schematics │ │ ├── ng-add │ │ │ ├── schema.ts │ │ │ └── files │ │ │ │ └── entity-metadata.ts.template │ │ └── collection.json │ ├── ng-package.json │ └── tsconfig.spec.json ├── entity │ ├── public_api.ts │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── schematics │ │ ├── ng-add │ │ │ └── schema.ts │ │ └── collection.json │ ├── CHANGELOG.md │ ├── index.ts │ ├── README.md │ ├── migrations │ │ ├── 6_0_0 │ │ │ └── index.ts │ │ └── migration.json │ ├── ng-package.json │ ├── src │ │ └── index.ts │ ├── tsconfig.spec.json │ └── spec │ │ └── types │ │ └── utils.ts ├── router-store │ ├── data-persistence │ │ ├── ng-package.json │ │ ├── src │ │ │ └── public_api.ts │ │ ├── index.ts │ │ └── tsconfig.build.json │ ├── public_api.ts │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── CHANGELOG.md │ ├── index.ts │ ├── schematics │ │ ├── ng-add │ │ │ └── schema.ts │ │ └── collection.json │ ├── README.md │ ├── migrations │ │ └── 6_0_0 │ │ │ └── index.ts │ ├── ng-package.json │ ├── spec │ │ └── types │ │ │ └── utils.ts │ └── tsconfig.spec.json ├── component │ ├── public_api.ts │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── schematics │ │ ├── ng-add │ │ │ └── schema.ts │ │ └── collection.json │ ├── CHANGELOG.md │ ├── index.ts │ ├── src │ │ ├── core │ │ │ └── zone-helpers.ts │ │ └── index.ts │ ├── README.md │ ├── spec │ │ ├── helpers.ts │ │ └── fixtures │ │ │ └── mock-event-emitter.ts │ ├── test-setup.ts │ ├── ng-package.json │ └── tsconfig.spec.json ├── component-store │ ├── public_api.ts │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── schematics │ │ ├── ng-add │ │ │ └── schema.ts │ │ └── collection.json │ ├── CHANGELOG.md │ ├── index.ts │ ├── src │ │ └── index.ts │ ├── README.md │ ├── test-setup.ts │ ├── ng-package.json │ ├── spec │ │ └── types │ │ │ └── utils.ts │ └── tsconfig.spec.json ├── store-devtools │ ├── public_api.ts │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── CHANGELOG.md │ ├── index.ts │ ├── src │ │ ├── devtools-dispatcher.ts │ │ └── zone-config.ts │ ├── README.md │ ├── schematics │ │ ├── ng-add │ │ │ └── schema.ts │ │ └── collection.json │ ├── migrations │ │ └── 6_0_0 │ │ │ └── index.ts │ ├── ng-package.json │ └── tsconfig.spec.json ├── eslint-plugin │ ├── migrations │ │ └── migration.json │ ├── spec │ │ └── utils │ │ │ └── index.ts │ ├── src │ │ ├── utils │ │ │ ├── index.ts │ │ │ └── helper-functions │ │ │ │ ├── index.ts │ │ │ │ └── ngrx-modules.ts │ │ └── configs │ │ │ ├── operators.json │ │ │ ├── signals.json │ │ │ ├── component-store.json │ │ │ └── effects.json │ ├── v9 │ │ ├── tsconfig.spec.json │ │ └── tsconfig.build.json │ ├── CHANGELOG.md │ ├── schematics │ │ ├── ng-add │ │ │ └── schema.ts │ │ └── collection.json │ ├── test-setup.ts │ ├── eslint.config.mjs │ ├── README.md │ └── tsconfig.spec.json ├── schematics-core │ ├── utility │ │ └── libs-version.ts │ ├── testing │ │ ├── update.ts │ │ └── index.ts │ ├── test-setup.ts │ └── tsconfig.spec.json ├── operators │ ├── schematics-core │ │ ├── utility │ │ │ └── libs-version.ts │ │ ├── test-setup.ts │ │ ├── tsconfig.json │ │ └── tsconfig.spec.json │ ├── schematics │ │ ├── ng-add │ │ │ └── schema.ts │ │ └── collection.json │ ├── CHANGELOG.md │ ├── index.ts │ ├── src │ │ └── index.ts │ ├── README.md │ ├── ng-package.json │ ├── spec │ │ └── types │ │ │ └── utils.ts │ ├── tsconfig.spec.json │ └── migrations │ │ └── migration.json ├── license-banner.txt └── README.md ├── .husky └── pre-commit ├── .nxignore ├── MIGRATION.md ├── jest.preset.js ├── .dockerignore ├── jest.config.ts ├── .github └── ISSUE_TEMPLATE │ └── config.yml ├── .prettierignore ├── .editorconfig ├── prettier.config.js ├── .devcontainer └── welcome-message.txt ├── tsdoc-metadata.json └── setup-jest.ts /.node-version: -------------------------------------------------------------------------------- 1 | 22.16.0 2 | -------------------------------------------------------------------------------- /projects/www/public/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /modules/schematics/src/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/example-app/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/example-app/src/assets/.npmignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/.node-version: -------------------------------------------------------------------------------- 1 | 20.11 2 | -------------------------------------------------------------------------------- /projects/standalone-app/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /modules/effects/testing/ng-package.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /modules/store/testing/ng-package.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /projects/www/public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /projects/ngrx.io/src/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /modules/signals/index.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/extra-files/next/CNAME: -------------------------------------------------------------------------------- 1 | next.ngrx.io -------------------------------------------------------------------------------- /modules/data/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/effects/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/entity/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/router-store/data-persistence/ng-package.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /modules/store/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/example-config.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/guide/style-guide.md: -------------------------------------------------------------------------------- 1 | # Style Guide 2 | -------------------------------------------------------------------------------- /modules/component/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/router-store/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/signals/entities/index.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/signals/events/index.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/signals/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/store/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './src/public_api'; 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/ngrx-start/example-config.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/example-config.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/.eslintignore: -------------------------------------------------------------------------------- 1 | **/*.template.js 2 | -------------------------------------------------------------------------------- /modules/component-store/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/effects/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './src/public_api'; 2 | -------------------------------------------------------------------------------- /modules/effects/testing/src/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './testing'; 2 | -------------------------------------------------------------------------------- /modules/signals/rxjs-interop/index.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/store-devtools/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './src/index'; 2 | -------------------------------------------------------------------------------- /modules/store/testing/src/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './testing'; 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store-walkthrough/example-config.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/guide/data/architecture.md: -------------------------------------------------------------------------------- 1 | # Architecture 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/guide/store/architecture.md: -------------------------------------------------------------------------------- 1 | # Architecture 2 | -------------------------------------------------------------------------------- /projects/www/src/app/pages/guide/data/architecture.md: -------------------------------------------------------------------------------- 1 | # Architecture 2 | -------------------------------------------------------------------------------- /projects/www/src/app/pages/guide/store/architecture.md: -------------------------------------------------------------------------------- 1 | # Architecture 2 | -------------------------------------------------------------------------------- /projects/www/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './api-report.models'; 2 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/index.ts: -------------------------------------------------------------------------------- 1 | export * from './auth.module'; 2 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/models/index.ts: -------------------------------------------------------------------------------- 1 | export * from './user'; 2 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/models/index.ts: -------------------------------------------------------------------------------- 1 | export * from './book'; 2 | -------------------------------------------------------------------------------- /projects/example-app/src/app/core/index.ts: -------------------------------------------------------------------------------- 1 | export * from './core.module'; 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/router-store-selectors/example-config.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/includes/info-bar.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /modules/eslint-plugin/migrations/migration.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": {} 3 | } 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/component-store-paginator/example-config.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/component-store-slide-toggle/example-config.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /modules/router-store/data-persistence/src/public_api.ts: -------------------------------------------------------------------------------- 1 | export * from './operators'; 2 | -------------------------------------------------------------------------------- /modules/signals/testing/src/index.ts: -------------------------------------------------------------------------------- 1 | export { unprotected } from './unprotected'; 2 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/effects/index.ts: -------------------------------------------------------------------------------- 1 | export * from './auth.effects'; 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/component-store-paginator-service/example-config.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/json-doc.template.json: -------------------------------------------------------------------------------- 1 | {$ doc.data | json $} -------------------------------------------------------------------------------- /projects/example-app/src/app/books/guards/index.ts: -------------------------------------------------------------------------------- 1 | export * from './book-exists.guard'; 2 | -------------------------------------------------------------------------------- /modules/signals/rxjs-interop/src/index.ts: -------------------------------------------------------------------------------- 1 | export { rxMethod, RxMethod } from './rx-method'; 2 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/containers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './login-page.component'; 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/ngrx-start/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |

NgRx Tutorial

2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx lint-staged 5 | -------------------------------------------------------------------------------- /modules/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/google385281288605d160.html: -------------------------------------------------------------------------------- 1 | google-site-verification: google385281288605d160.html -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/const.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'var.template.html' -%} -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/let.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'var.template.html' -%} -------------------------------------------------------------------------------- /.nxignore: -------------------------------------------------------------------------------- 1 | *.spec.ts 2 | **/testing/** 3 | modules/BUILD 4 | modules/license-banner.txt 5 | modules/README.md -------------------------------------------------------------------------------- /modules/data/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/effects/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/entity/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/signals/entities/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "lib": { 3 | "entryFile": "index.ts" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /modules/signals/events/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "lib": { 3 | "entryFile": "index.ts" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /modules/signals/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/signals/testing/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "lib": { 3 | "entryFile": "index.ts" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /modules/store/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /projects/example-app/src/app/material/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@example-app/material/material.module'; 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/example-region.template.html: -------------------------------------------------------------------------------- 1 | {$ doc.contents | escape $} 2 | -------------------------------------------------------------------------------- /modules/component/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/entity/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | skipPackageJson?: boolean; 3 | } 4 | -------------------------------------------------------------------------------- /modules/eslint-plugin/spec/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './from-fixture'; 2 | export * from './rule-tester'; 3 | -------------------------------------------------------------------------------- /modules/eslint-plugin/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './helper-functions'; 2 | export * from './selectors'; 3 | -------------------------------------------------------------------------------- /modules/operators/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/router-store/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/schematics/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/signals/rxjs-interop/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "lib": { 3 | "entryFile": "index.ts" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /modules/signals/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | skipPackageJson?: boolean; 3 | } 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/value-module.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'interface.template.html' %} -------------------------------------------------------------------------------- /projects/www/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/favicon.ico -------------------------------------------------------------------------------- /MIGRATION.md: -------------------------------------------------------------------------------- 1 | # V21 Migration guide 2 | 3 | This document has been moved to https://ngrx.io/guide/migration/v21. 4 | -------------------------------------------------------------------------------- /jest.preset.js: -------------------------------------------------------------------------------- 1 | const nxPreset = require('@nx/jest/preset').default; 2 | 3 | module.exports = { ...nxPreset }; 4 | -------------------------------------------------------------------------------- /modules/component-store/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/component/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | skipPackageJson?: boolean; 3 | } 4 | -------------------------------------------------------------------------------- /modules/operators/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | skipPackageJson?: boolean; 3 | } 4 | -------------------------------------------------------------------------------- /modules/store-devtools/schematics-core/utility/libs-version.ts: -------------------------------------------------------------------------------- 1 | export const platformVersion = '^21.0.0-beta.0'; 2 | -------------------------------------------------------------------------------- /modules/store/testing/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.spec", 3 | "files": ["index.ts"] 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/router-store-selectors/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | p { 2 | font-family: Lato; 3 | } -------------------------------------------------------------------------------- /projects/ngrx.io/content/marketing/api.html: -------------------------------------------------------------------------------- 1 |

API List

2 | 3 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/router-store-selectors/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | p { 2 | font-family: Lato; 3 | } 4 | -------------------------------------------------------------------------------- /modules/component-store/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | skipPackageJson?: boolean; 3 | } 4 | -------------------------------------------------------------------------------- /modules/effects/testing/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.spec", 3 | "files": ["index.ts"] 4 | } 5 | -------------------------------------------------------------------------------- /modules/eslint-plugin/v9/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.spec", 3 | "files": ["index.ts"] 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/component-store-slide-toggle/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | p { 2 | font-family: Lato; 3 | } -------------------------------------------------------------------------------- /projects/standalone-app/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /projects/www/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/favicon-16x16.png -------------------------------------------------------------------------------- /projects/www/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/favicon-32x32.png -------------------------------------------------------------------------------- /projects/www/public/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/mstile-70x70.png -------------------------------------------------------------------------------- /projects/www/src/app/examples/component-store-slide-toggle/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | p { 2 | font-family: Lato; 3 | } 4 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | Dockerfile* 4 | docker-compose* 5 | .dockerignore 6 | .git 7 | .gitignore 8 | -------------------------------------------------------------------------------- /modules/data/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /modules/store/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /projects/example-app/src/app/core/effects/index.ts: -------------------------------------------------------------------------------- 1 | export * from './user.effects'; 2 | export * from './router.effects'; 3 | -------------------------------------------------------------------------------- /projects/standalone-app/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/standalone-app/src/favicon.ico -------------------------------------------------------------------------------- /projects/www/public/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/mstile-144x144.png -------------------------------------------------------------------------------- /projects/www/public/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/mstile-150x150.png -------------------------------------------------------------------------------- /projects/www/public/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/mstile-310x150.png -------------------------------------------------------------------------------- /projects/www/public/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/mstile-310x310.png -------------------------------------------------------------------------------- /modules/component/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /modules/effects/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /modules/entity/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /modules/operators/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /modules/schematics/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /modules/signals/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './auth.service'; 2 | export * from './auth-guard.service'; 3 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/effects/index.ts: -------------------------------------------------------------------------------- 1 | export * from './book.effects'; 2 | export * from './collection.effects'; 3 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/src/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 0.5% 2 | last 2 versions 3 | Firefox ESR 4 | not dead 5 | IE 9-11 6 | -------------------------------------------------------------------------------- /projects/www/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/apple-touch-icon.png -------------------------------------------------------------------------------- /projects/www/public/images/bios/marko.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/marko.jpg -------------------------------------------------------------------------------- /projects/www/public/images/bios/rainer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/rainer.jpg -------------------------------------------------------------------------------- /projects/www/public/images/bios/timd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/timd.jpg -------------------------------------------------------------------------------- /projects/www/public/images/bios/victor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/victor.png -------------------------------------------------------------------------------- /modules/component-store/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /modules/eslint-plugin/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /modules/router-store/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /modules/schematics-core/testing/update.ts: -------------------------------------------------------------------------------- 1 | export const upgradeVersion = '6.0.0'; 2 | export const versionPrefixes = ['~', '^', '']; 3 | -------------------------------------------------------------------------------- /modules/store-devtools/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | See [CHANGELOG.md](https://github.com/ngrx/platform/blob/main/CHANGELOG.md) 4 | -------------------------------------------------------------------------------- /projects/example-app/src/app/core/containers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './app.component'; 2 | export * from './not-found-page.component'; 3 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/ngrx-start/src/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 0.5% 2 | last 2 versions 3 | Firefox ESR 4 | not dead 5 | IE 9-11 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/badge.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/state.png -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/content-package/tag-defs/intro.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'intro'}; 3 | }; 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/content-package/tag-defs/title.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'title'}; 3 | }; 4 | -------------------------------------------------------------------------------- /projects/www/public/images/bios/_no-one.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/_no-one.jpg -------------------------------------------------------------------------------- /projects/www/public/images/bios/wardbell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/wardbell.jpg -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 0.5% 2 | last 2 versions 3 | Firefox ESR 4 | not dead 5 | IE 9-11 6 | -------------------------------------------------------------------------------- /modules/schematics/src/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line @typescript-eslint/no-empty-interface 2 | export interface Schema {} 3 | -------------------------------------------------------------------------------- /projects/example-app/src/app/core/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './book-storage.service'; 2 | export * from './google-books.service'; 3 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/ngrx-start/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | p { 2 | font-family: Lato; 3 | } 4 | 5 | h1 { font-family: Lato; } -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 0.5% 2 | last 2 versions 3 | Firefox ESR 4 | not dead 5 | IE 9-11 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/marko.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/marko.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/rainer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/rainer.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/timd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/timd.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/victor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/victor.png -------------------------------------------------------------------------------- /projects/ngrx.io/database.rules.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | ".read": "auth != null", 4 | ".write": "auth != null" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/suppress.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'suppress'}; 3 | }; -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/syntax.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'syntax'}; 3 | }; -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/examples-package/services/example-map.js: -------------------------------------------------------------------------------- 1 | module.exports = function exampleMap() { 2 | return {}; 3 | }; 4 | -------------------------------------------------------------------------------- /projects/www/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /projects/www/public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /projects/www/public/images/bios/john-papa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/john-papa.jpg -------------------------------------------------------------------------------- /projects/www/public/images/bios/mike-ryan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/mike-ryan.jpg -------------------------------------------------------------------------------- /projects/www/public/images/bios/rob-wormald.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/rob-wormald.jpg -------------------------------------------------------------------------------- /projects/www/public/images/bios/wesgrimes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/wesgrimes.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/_no-one.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/_no-one.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/wardbell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/wardbell.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | singleQuote: true, 3 | trailingComma: 'es5', 4 | quoteProps: 'preserve', 5 | }; 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/src/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 0.5% 2 | last 2 versions 3 | Firefox ESR 4 | not dead 5 | IE 9-11 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/security.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'security'}; 3 | }; 4 | -------------------------------------------------------------------------------- /projects/standalone-app/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | -------------------------------------------------------------------------------- /projects/www/public/images/bios/alex-okrushko.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/alex-okrushko.jpg -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/styles.css: -------------------------------------------------------------------------------- 1 | /* Master Styles */ 2 | * { 3 | font-family: Arial, Helvetica, sans-serif; 4 | } 5 | -------------------------------------------------------------------------------- /modules/schematics/src/ngrx-push-migration/schema.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line @typescript-eslint/no-empty-interface 2 | export interface Schema {} 3 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/ngrx-start/stackblitz.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "NgRx Tutorial", 3 | "files": ["!**/*.d.ts", "!**/*.js"] 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/styles.css: -------------------------------------------------------------------------------- 1 | /* Master Styles */ 2 | * { 3 | font-family: Arial, Helvetica, sans-serif; 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/john-papa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/john-papa.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/mike-ryan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/mike-ryan.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/rob-wormald.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/rob-wormald.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/wesgrimes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/wesgrimes.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/content/marketing/about.html: -------------------------------------------------------------------------------- 1 |

NgRx Team

2 | 3 | 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/badge-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/badge-white.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/extra-files/next/robots.txt: -------------------------------------------------------------------------------- 1 | # Disallow all URLs (see http://www.robotstxt.org/robotstxt.html) 2 | User-agent: * 3 | Disallow: / 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES5", 4 | "module": "commonjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/deprecated.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'deprecated'}; 3 | }; 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/publicApi.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'publicApi'}; 3 | }; 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/selectors.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'selectors'}; 3 | }; 4 | -------------------------------------------------------------------------------- /projects/www/public/images/bios/brandonroberts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/bios/brandonroberts.jpg -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/app/actions/index.ts: -------------------------------------------------------------------------------- 1 | import * as AuthActions from './auth.actions'; 2 | 3 | export { AuthActions }; 4 | -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- 1 | const { getJestProjectsAsync } = require('@nx/jest'); 2 | 3 | export default async () => ({ projects: await getJestProjectsAsync() }); 4 | -------------------------------------------------------------------------------- /modules/data/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT 3 | * 4 | * This file is automatically generated at build 5 | */ 6 | 7 | export * from './public_api'; 8 | -------------------------------------------------------------------------------- /modules/effects/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT 3 | * 4 | * This file is automatically generated at build 5 | */ 6 | 7 | export * from './public_api'; 8 | -------------------------------------------------------------------------------- /modules/entity/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT 3 | * 4 | * This file is automatically generated at build 5 | */ 6 | 7 | export * from './public_api'; 8 | -------------------------------------------------------------------------------- /modules/license-banner.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * @license NgRx 3 | * (c) 2015-2020 Brandon Roberts, Mike Ryan, Rob Wormald, Victor Savkin 4 | * License: MIT 5 | */ -------------------------------------------------------------------------------- /modules/store/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT 3 | * 4 | * This file is automatically generated at build 5 | */ 6 | 7 | export * from './public_api'; 8 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './login-form.component'; 2 | export * from './logout-confirmation-dialog.component'; 3 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/app/actions/index.ts: -------------------------------------------------------------------------------- 1 | import * as AuthActions from './auth.actions'; 2 | 3 | export { AuthActions }; 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/alex-okrushko.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/alex-okrushko.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/src/extra-files/archive/robots.txt: -------------------------------------------------------------------------------- 1 | # Disallow all URLs (see http://www.robotstxt.org/robotstxt.html) 2 | User-agent: * 3 | Disallow: / 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/experimental.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'experimental'}; 3 | }; 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/cli/include/cli-header.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |

ng {$ doc.name $}

4 |
5 | -------------------------------------------------------------------------------- /projects/standalone-app-e2e/src/support/app.po.ts: -------------------------------------------------------------------------------- 1 | export const getGreeting = () => cy.get('h1'); 2 | export const loadFeature = () => cy.get('a').click(); 3 | -------------------------------------------------------------------------------- /projects/www/public/images/guide/data/action-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/guide/data/action-flow.png -------------------------------------------------------------------------------- /modules/component/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT 3 | * 4 | * This file is automatically generated at build 5 | */ 6 | 7 | export * from './public_api'; 8 | -------------------------------------------------------------------------------- /modules/eslint-plugin/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | config: 'all' | 'store' | 'effects' | 'component-store' | 'signals'; 3 | } 4 | -------------------------------------------------------------------------------- /modules/operators/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT 3 | * 4 | * This file is automatically generated at build 5 | */ 6 | 7 | export * from './src/index'; 8 | -------------------------------------------------------------------------------- /modules/router-store/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT 3 | * 4 | * This file is automatically generated at build 5 | */ 6 | 7 | export * from './public_api'; 8 | -------------------------------------------------------------------------------- /modules/schematics-core/testing/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-app-module'; 2 | export * from './create-reducers'; 3 | export * from './create-workspace'; 4 | -------------------------------------------------------------------------------- /modules/schematics/src/data/files/__name@dasherize@if-flat__/__name@dasherize__.ts.template: -------------------------------------------------------------------------------- 1 | export interface <%= classify(name) %> { 2 | id?: unknown; 3 | } 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/stackblitz.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Tutorial", 3 | "files": ["!**/*.d.ts", "!**/*.js", "!**/*.[0-9].*"] 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/bios/brandonroberts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/bios/brandonroberts.jpg -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/favicons/favicon.ico -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/sponsors/briebug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/sponsors/briebug.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /* SystemJS module definition */ 2 | declare let module: NodeModule; 3 | interface NodeModule { 4 | id: string; 5 | } 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/common/src/styles.css: -------------------------------------------------------------------------------- 1 | /* Master Styles */ 2 | * { 3 | font-family: Arial, Helvetica, sans-serif; 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/docsNotRequired.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'docsNotRequired'}; 3 | }; 4 | -------------------------------------------------------------------------------- /projects/www/public/images/marketing/workshops/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/marketing/workshops/header.jpg -------------------------------------------------------------------------------- /modules/component-store/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT 3 | * 4 | * This file is automatically generated at build 5 | */ 6 | 7 | export * from './public_api'; 8 | -------------------------------------------------------------------------------- /modules/data/migrations/migration.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", 3 | "schematics": {} 4 | } 5 | -------------------------------------------------------------------------------- /modules/effects/spec/effects_resolver.spec.ts: -------------------------------------------------------------------------------- 1 | describe('mergeEffects', () => { 2 | it('should work', () => { 3 | expect(true).toBeTruthy(); 4 | }); 5 | }); 6 | -------------------------------------------------------------------------------- /modules/store-devtools/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT 3 | * 4 | * This file is automatically generated at build 5 | */ 6 | 7 | export * from './public_api'; 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/guide/data/action-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/guide/data/action-flow.png -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/usageNotes.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return { 3 | name: 'usageNotes' 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /modules/router-store/data-persistence/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | fetch, 3 | navigation, 4 | optimisticUpdate, 5 | pessimisticUpdate, 6 | } from './src/operators'; 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store-walkthrough/stackblitz.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Tutorial", 3 | "files": ["!**/*.d.ts", "!**/*.js", "!**/*.[0-9].*"] 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/logos/angular/angular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/logos/angular/angular.png -------------------------------------------------------------------------------- /modules/store/testing/src/tokens.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | 3 | export const MOCK_SELECTORS = new InjectionToken('@ngrx/store Mock Selectors'); 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/router-store-selectors/stackblitz.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Tutorial", 3 | "files": ["!**/*.d.ts", "!**/*.js", "!**/*.[0-9].*"] 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/cdk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/cdk.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/cli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/cli.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/http.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/i18n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/i18n.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/labs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/labs.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/pwa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/pwa.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/logos/angular/logo-nav@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/logos/angular/logo-nav@2x.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/sponsors/house-of-angular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/sponsors/house-of-angular.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/0-base/_index.scss: -------------------------------------------------------------------------------- 1 | /* ============================== 2 | BASE STYLES 3 | ============================== */ 4 | 5 | @forward 'typography'; 6 | -------------------------------------------------------------------------------- /projects/standalone-app/tsconfig.editor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["**/*.ts"], 4 | "compilerOptions": { 5 | "types": [] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /modules/eslint-plugin/src/utils/helper-functions/index.ts: -------------------------------------------------------------------------------- 1 | export * from './folder'; 2 | export * from './guards'; 3 | export * from './ngrx-modules'; 4 | export * from './utils'; 5 | -------------------------------------------------------------------------------- /modules/schematics/src/entity/files/__name@dasherize@if-flat__/__name@dasherize@group-models__.model.ts.template: -------------------------------------------------------------------------------- 1 | export interface <%= classify(name) %> { 2 | id: string; 3 | } 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/augury.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/augury.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/forms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/forms.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/karma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/karma.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/router.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/router.png -------------------------------------------------------------------------------- /projects/www/public/images/guide/component-store/file-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/guide/component-store/file-structure.png -------------------------------------------------------------------------------- /projects/www/public/images/guide/component-store/types-of-state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/guide/component-store/types-of-state.png -------------------------------------------------------------------------------- /projects/www/src/app/examples/router-store-selectors/src/app/car/car.component.css: -------------------------------------------------------------------------------- 1 | .container { 2 | border-style: solid; 3 | border-width: 4px; 4 | border-radius: 4px; 5 | } 6 | -------------------------------------------------------------------------------- /modules/component-store/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './component-store'; 2 | export { 3 | provideComponentStore, 4 | OnStateInit, 5 | OnStoreInit, 6 | } from './lifecycle_hooks'; 7 | -------------------------------------------------------------------------------- /modules/data/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/eslint-plugin/test-setup.ts: -------------------------------------------------------------------------------- 1 | import * as vitest from 'vitest'; 2 | import { RuleTester } from '@typescript-eslint/rule-tester'; 3 | 4 | RuleTester.afterAll = vitest.afterAll; 5 | -------------------------------------------------------------------------------- /modules/eslint-plugin/v9/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.build", 3 | "compilerOptions": {}, 4 | "files": ["index.ts"], 5 | "angularCompilerOptions": {} 6 | } 7 | -------------------------------------------------------------------------------- /modules/router-store/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | skipPackageJson?: boolean; 3 | path?: string; 4 | project?: string; 5 | module?: string; 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/router-store-selectors/src/app/car/car.component.css: -------------------------------------------------------------------------------- 1 | .container { 2 | border-style: solid; 3 | border-width: 4px; 4 | border-radius: 4px; 5 | } 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/compiler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/compiler.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/libraries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/libraries.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/material.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/material.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/templates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/templates.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/universal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/universal.png -------------------------------------------------------------------------------- /projects/www/public/images/guide/component-store/state-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/guide/component-store/state-structure.png -------------------------------------------------------------------------------- /projects/www/public/images/guide/store/state-management-lifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/guide/store/state-management-lifecycle.png -------------------------------------------------------------------------------- /projects/www/public/images/guide/store/state-management-lifecycle.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/guide/store/state-management-lifecycle.psd -------------------------------------------------------------------------------- /modules/operators/src/index.ts: -------------------------------------------------------------------------------- 1 | export { concatLatestFrom } from './concat_latest_from'; 2 | export { mapResponse } from './map-response'; 3 | export { tapResponse } from './tap-response'; 4 | -------------------------------------------------------------------------------- /modules/schematics/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/stackblitz.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Store Testing Tutorial", 3 | "files": ["!**/*.d.ts", "**/*.spec.ts"], 4 | "type": "testing" 5 | } 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/guide/component-store/file-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/guide/component-store/file-structure.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/guide/component-store/types-of-state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/guide/component-store/types-of-state.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/animations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/animations.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/components.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/lazy-loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/lazy-loading.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/performance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/performance.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/protractor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/protractor.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/favicons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/favicons/android-chrome-512x512.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/logos/angular/angular_solidBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/logos/angular/angular_solidBlack.png -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/tools/examples/shared/boilerplate/cli/src/favicon.ico -------------------------------------------------------------------------------- /projects/www/src/app/examples/__base/src/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core'; 2 | 3 | export const appConfig: ApplicationConfig = { 4 | providers: [], 5 | }; 6 | -------------------------------------------------------------------------------- /modules/component/src/core/zone-helpers.ts: -------------------------------------------------------------------------------- 1 | import { NgZone } from '@angular/core'; 2 | 3 | export function isNgZone(zone: unknown): zone is NgZone { 4 | return zone instanceof NgZone; 5 | } 6 | -------------------------------------------------------------------------------- /modules/component/src/index.ts: -------------------------------------------------------------------------------- 1 | export { RenderScheduler } from './core/render-scheduler'; 2 | export { LetDirective } from './let/let.directive'; 3 | export { PushPipe } from './push/push.pipe'; 4 | -------------------------------------------------------------------------------- /modules/eslint-plugin/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import baseConfig from '../../eslint.config.mjs'; 2 | 3 | export default [ 4 | { 5 | ignores: ['**/dist'], 6 | }, 7 | ...baseConfig, 8 | ]; 9 | -------------------------------------------------------------------------------- /modules/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/models/user.ts: -------------------------------------------------------------------------------- 1 | export interface Credentials { 2 | username: string; 3 | password: string; 4 | } 5 | 6 | export interface User { 7 | name: string; 8 | } 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/guide/component-store/state-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/guide/component-store/state-structure.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/guide/store/state-management-lifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/guide/store/state-management-lifecycle.png -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/guide/store/state-management-lifecycle.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/guide/store/state-management-lifecycle.psd -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/no-description.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'noDescription', transforms: function() { return true; }}; 3 | }; -------------------------------------------------------------------------------- /modules/data/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/signals/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/signals 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | -------------------------------------------------------------------------------- /modules/signals/entities/spec/helpers.ts: -------------------------------------------------------------------------------- 1 | import { SelectEntityId } from '../src'; 2 | import { Todo } from './mocks'; 3 | 4 | export const selectTodoId: SelectEntityId = (todo) => todo._id; 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/component-store-slide-toggle/stackblitz.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "ComponentStore - slide-toggle", 3 | "files": ["!**/*.d.ts", "!**/*.js", "!**/*.[0-9].*"] 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/router-store-selectors/src/app/car/car.component.html: -------------------------------------------------------------------------------- 1 |
2 |

Car Component

3 | 4 |
{{ car$ | async | json }}
5 |
6 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |

NgRx Tutorial

2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/language-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/language-services.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/logos/angular/angular_whiteTransparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/logos/angular/angular_whiteTransparent.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/extra-files/stable/robots.txt: -------------------------------------------------------------------------------- 1 | # Allow all URLs (see http://www.robotstxt.org/robotstxt.html) 2 | User-agent: * 3 | Disallow: 4 | Sitemap: https://ngrx.io/generated/sitemap.xml 5 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/router-store-selectors/src/app/car/car.component.html: -------------------------------------------------------------------------------- 1 |
2 |

Car Component

3 | 4 |
{{ car$ | async | json }}
5 |
6 | -------------------------------------------------------------------------------- /projects/www/tsconfig.tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["src/tools/**/*.ts"], 4 | "compilerOptions": { 5 | "allowSyntheticDefaultImports": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /modules/README.md: -------------------------------------------------------------------------------- 1 | # NgRx 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /modules/component/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/effects/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/entity/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/operators/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/operators 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | -------------------------------------------------------------------------------- /modules/operators/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/signals/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/store/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/ngrx-start/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | NgRx Tutorial 4 | 5 | 6 | loading 7 | 8 | 9 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/store-walkthrough/src/book-list/book.ts: -------------------------------------------------------------------------------- 1 | export interface Book { 2 | id: string; 3 | volumeInfo: { 4 | title: string; 5 | authors: Array; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /modules/eslint-plugin/src/configs/operators.json: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "@typescript-eslint/parser", 3 | "plugins": ["@ngrx"], 4 | "rules": { 5 | "@ngrx/prefer-concat-latest-from": "error" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /modules/router-store/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/schematics/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/store-devtools/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/marketing/concept-icons/dependency-injection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/marketing/concept-icons/dependency-injection.png -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/systemjs/bs-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "server": { 3 | "baseDir": "src", 4 | "routes": { 5 | "/node_modules": "node_modules" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /projects/www/public/images/guide/signals/app-architecture-with-events-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/www/public/images/guide/signals/app-architecture-with-events-plugin.png -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/app/book-list/books.model.ts: -------------------------------------------------------------------------------- 1 | export interface Book { 2 | id: string; 3 | volumeInfo: { 4 | title: string; 5 | authors: Array; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /modules/component-store/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/component-store 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | -------------------------------------------------------------------------------- /modules/component-store/schematics-core/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 2 | 3 | setupZoneTestEnv(); 4 | Object.assign(global, { TextDecoder, TextEncoder }); 5 | -------------------------------------------------------------------------------- /modules/data/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/data 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /modules/effects/src/effects_actions.ts: -------------------------------------------------------------------------------- 1 | import { createAction } from '@ngrx/store'; 2 | 3 | export const ROOT_EFFECTS_INIT = '@ngrx/effects/init'; 4 | export const rootEffectsInit = createAction(ROOT_EFFECTS_INIT); 5 | -------------------------------------------------------------------------------- /projects/example-app/src/app/core/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './layout.component'; 2 | export * from './nav-item.component'; 3 | export * from './sidenav.component'; 4 | export * from './toolbar.component'; 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/includes/security-notes.html: -------------------------------------------------------------------------------- 1 | {% if doc.security %} 2 |
3 |

Security risk

4 | {$ doc.security | marked $} 5 |
6 | {% endif %} -------------------------------------------------------------------------------- /modules/entity/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/entity 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /modules/store/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/store 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/app/book-list/books.model.ts: -------------------------------------------------------------------------------- 1 | export interface Book { 2 | id: string; 3 | volumeInfo: { 4 | title: string; 5 | authors: Array; 6 | }; 7 | } -------------------------------------------------------------------------------- /projects/ngrx.io/content/images/guide/signals/app-architecture-with-events-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/content/images/guide/signals/app-architecture-with-events-plugin.png -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/ngModule.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return { 3 | name: 'ngModule', 4 | docProperty: 'ngModules', 5 | multi: true, 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/__base/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | 3 | export default defineConfig(({ mode }) => { 4 | return { 5 | root: __dirname, 6 | plugins: [], 7 | }; 8 | }); 9 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/ngrx-start/src/app.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | template: `

NgRx base

`, 6 | }) 7 | export class App {} 8 | -------------------------------------------------------------------------------- /modules/component/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/component 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /modules/effects/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/effects 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/app/shared/window.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | 3 | export const WindowToken = new InjectionToken('Window'); 4 | export function windowProvider() { 5 | return window; 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/assets/images/logos/angular/angular_whiteTransparent_withMargin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngrx/platform/HEAD/projects/ngrx.io/src/assets/images/logos/angular/angular_whiteTransparent_withMargin.png -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/progress-bar/_progress-bar.scss: -------------------------------------------------------------------------------- 1 | .progress-bar-container { 2 | height: 2px; 3 | overflow: hidden; 4 | position: fixed; 5 | top: 0; 6 | width: 100vw; 7 | z-index: 11; 8 | } 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-base-package/services/copyFolder.js: -------------------------------------------------------------------------------- 1 | const {copySync} = require('fs-extra'); 2 | 3 | module.exports = function copyFolder() { 4 | return (from, to) => copySync(from, to); 5 | }; 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/includes/usageNotes.html: -------------------------------------------------------------------------------- 1 | {% if doc.usageNotes %} 2 |
3 |

Usage notes

4 | {$ doc.usageNotes | marked $} 5 |
6 | {% endif %} 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/data-module.template.js: -------------------------------------------------------------------------------- 1 | /* tslint:disable quotemark */ 2 | /* TODO: rework this so that it has single quotes */ 3 | export const {$ doc.serviceName $} = {$ doc.value | json $}; 4 | -------------------------------------------------------------------------------- /projects/www/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "scripts": { 4 | "collect-docs": "npx tsx src/tools/extract-docs-content.ts", 5 | "prepare-examples": "npx tsx src/tools/prepare-examples.ts" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/signals-01/stackblitz.yml: -------------------------------------------------------------------------------- 1 | name: Signals Example 2 | description: Demonstrates signalStore 3 | extends: ../__base/stackblitz.yml 4 | files: 5 | src/app.component.ts: './src/app.component.ts' 6 | -------------------------------------------------------------------------------- /modules/schematics/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/schematics 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /modules/store-devtools/src/devtools-dispatcher.ts: -------------------------------------------------------------------------------- 1 | import { ActionsSubject } from '@ngrx/store'; 2 | import { Injectable } from '@angular/core'; 3 | 4 | @Injectable() 5 | export class DevtoolsDispatcher extends ActionsSubject {} 6 | -------------------------------------------------------------------------------- /modules/store/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'zone.js/plugins/zone-legacy'; 2 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 3 | 4 | setupZoneTestEnv(); 5 | Object.assign(global, { TextDecoder, TextEncoder }); 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/component-store-paginator/stackblitz.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "ComponentStore - PaginatorComponent providing ComponentStore", 3 | "files": ["!**/*.d.ts", "!**/*.js", "!**/*.[0-9].*"] 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store-walkthrough/src/app/book-list/books.model.ts: -------------------------------------------------------------------------------- 1 | export interface Book { 2 | id: string; 3 | volumeInfo: { 4 | title: string; 5 | authors: Array; 6 | }; 7 | } -------------------------------------------------------------------------------- /projects/ngrx.io/content/marketing/events.html: -------------------------------------------------------------------------------- 1 |
2 |

Events

3 |
4 |
5 | 6 |
7 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/includes/deprecation.html: -------------------------------------------------------------------------------- 1 | {% if doc.deprecated !== undefined %} 2 |
3 | {$ ('**Deprecated:** ' + doc.deprecated) | marked $} 4 |
5 | {% endif %} -------------------------------------------------------------------------------- /projects/www/tsconfig.editor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["**/*.ts", "src/app/examples/__base/vite.config.js"], 4 | "compilerOptions": { 5 | "types": ["node", "vitest/globals"] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /modules/component/spec/helpers.ts: -------------------------------------------------------------------------------- 1 | export function stripSpaces(str: string): string { 2 | return str.replace(/[\n\r\s]+/g, ''); 3 | } 4 | 5 | export function wrapWithSpace(str: string): string { 6 | return ' ' + str + ' '; 7 | } 8 | -------------------------------------------------------------------------------- /modules/eslint-plugin/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/eslint-plugin 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /modules/router-store/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/router-store 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /modules/store-devtools/README.md: -------------------------------------------------------------------------------- 1 | # @ngrx/store-devtools 2 | 3 | The sources for this package are in the main [NgRx](https://github.com/ngrx/platform) repo. Please file issues and pull requests against that repo. 4 | 5 | License: MIT 6 | -------------------------------------------------------------------------------- /modules/store-devtools/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | skipPackageJson?: boolean; 3 | path?: string; 4 | project?: string; 5 | module?: string; 6 | maxAge?: number; 7 | autoPause?: boolean; 8 | } 9 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/store-walkthrough/src/state/app.state.ts: -------------------------------------------------------------------------------- 1 | import { Book } from '../book-list/book'; 2 | 3 | export interface AppState { 4 | books: ReadonlyArray; 5 | collection: ReadonlyArray; 6 | } 7 | -------------------------------------------------------------------------------- /modules/entity/migrations/6_0_0/index.ts: -------------------------------------------------------------------------------- 1 | import { Rule } from '@angular-devkit/schematics'; 2 | import { updatePackage } from '../../schematics-core'; 3 | 4 | export default function (): Rule { 5 | return updatePackage('entity'); 6 | } 7 | -------------------------------------------------------------------------------- /modules/store/migrations/6_0_0/index.ts: -------------------------------------------------------------------------------- 1 | import { Rule } from '@angular-devkit/schematics'; 2 | import { updatePackage } from '../../schematics-core'; 3 | 4 | export default function (): Rule { 5 | return updatePackage('store'); 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/component-store-paginator-service/stackblitz.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "ComponentStore - PaginatorComponent with PaginatorStore Service", 3 | "files": ["!**/*.d.ts", "!**/*.js", "!**/*.[0-9].*"] 4 | } 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/ts2dart_const.js: -------------------------------------------------------------------------------- 1 | // A ts2dart compiler annotation that can be ignored in API docs. 2 | module.exports = function() { 3 | return {name: 'ts2dart_const', ignore: true}; 4 | }; 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/includes/description.html: -------------------------------------------------------------------------------- 1 | {% if doc.description %} 2 |
3 |

Description

4 | {$ doc.description | trimBlankLines | marked $} 5 |
6 | {% endif %} -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/app/state/app.state.ts: -------------------------------------------------------------------------------- 1 | import { Book } from '../book-list/books.model'; 2 | 3 | export interface AppState { 4 | books: ReadonlyArray; 5 | collection: ReadonlyArray; 6 | } 7 | -------------------------------------------------------------------------------- /modules/component/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { TextEncoder, TextDecoder } from 'util'; 2 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 3 | 4 | setupZoneTestEnv(); 5 | Object.assign(global, { TextDecoder, TextEncoder }); 6 | -------------------------------------------------------------------------------- /modules/effects/migrations/6_0_0/index.ts: -------------------------------------------------------------------------------- 1 | import { Rule } from '@angular-devkit/schematics'; 2 | import { updatePackage } from '../../schematics-core'; 3 | 4 | export default function (): Rule { 5 | return updatePackage('effects'); 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/app/state/app.state.ts: -------------------------------------------------------------------------------- 1 | import { Book } from '../book-list/books.model'; 2 | 3 | export interface AppState { 4 | books: ReadonlyArray; 5 | collection: ReadonlyArray; 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/edit-page-cta/_edit-page-cta-theme.scss: -------------------------------------------------------------------------------- 1 | @use '../../constants'; 2 | @use '@angular/material' as mat; 3 | 4 | @mixin theme($theme) { 5 | .edit-page-cta { 6 | color: constants.$purple; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-base-package/rendering/toId.js: -------------------------------------------------------------------------------- 1 | module.exports = function toId() { 2 | return { 3 | name: 'toId', 4 | process: function(str) { return str.replace(/[^(a-z)(A-Z)(0-9)._-]/g, '-'); } 5 | }; 6 | }; -------------------------------------------------------------------------------- /modules/schematics/migrations/6_0_0/index.ts: -------------------------------------------------------------------------------- 1 | import { Rule } from '@angular-devkit/schematics'; 2 | import { updatePackage } from '../../schematics-core'; 3 | 4 | export default function (): Rule { 5 | return updatePackage('schematics'); 6 | } 7 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/containers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './collection-page.component'; 2 | export * from './find-book-page.component'; 3 | export * from './selected-book-page.component'; 4 | export * from './view-book-page.component'; 5 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store-walkthrough/src/app/state/app.state.ts: -------------------------------------------------------------------------------- 1 | import { Book } from '../book-list/books.model'; 2 | 3 | export interface AppState { 4 | books: ReadonlyArray; 5 | collection: ReadonlyArray; 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/app/shared/current-date.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | 3 | export const CurrentDateToken = new InjectionToken('CurrentDate'); 4 | export function currentDateProvider() { 5 | return new Date(); 6 | } 7 | -------------------------------------------------------------------------------- /modules/component-store/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { TextEncoder, TextDecoder } from 'util'; 2 | import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone'; 3 | 4 | setupZoneTestEnv(); 5 | 6 | Object.assign(global, { TextDecoder, TextEncoder }); 7 | -------------------------------------------------------------------------------- /modules/router-store/migrations/6_0_0/index.ts: -------------------------------------------------------------------------------- 1 | import { Rule } from '@angular-devkit/schematics'; 2 | import { updatePackage } from '../../schematics-core'; 3 | 4 | export default function (): Rule { 5 | return updatePackage('router-store'); 6 | } 7 | -------------------------------------------------------------------------------- /modules/store-devtools/migrations/6_0_0/index.ts: -------------------------------------------------------------------------------- 1 | import { Rule } from '@angular-devkit/schematics'; 2 | import { updatePackage } from '../../schematics-core'; 3 | 4 | export default function (): Rule { 5 | return updatePackage('store-devtools'); 6 | } 7 | -------------------------------------------------------------------------------- /projects/example-app/src/main.ts: -------------------------------------------------------------------------------- 1 | import './polyfills'; 2 | 3 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 4 | import { AppModule } from './app/app.module'; 5 | 6 | platformBrowserDynamic().bootstrapModule(AppModule); 7 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/store-walkthrough/src/book-list/book-list.css: -------------------------------------------------------------------------------- 1 | div { 2 | padding: 10px; 3 | } 4 | span { 5 | margin: 0 10px 0 2px; 6 | } 7 | p { 8 | display: inline-block; 9 | font-style: italic; 10 | margin: 0; 11 | } 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/app/book-list/book-list.component.css: -------------------------------------------------------------------------------- 1 | div { 2 | padding: 10px; 3 | } 4 | span { 5 | margin: 0 10px 0 2px; 6 | } 7 | p { 8 | display: inline-block; 9 | font-style: italic; 10 | margin: 0; 11 | } -------------------------------------------------------------------------------- /projects/ngrx.io/content/marketing/resources.html: -------------------------------------------------------------------------------- 1 |
2 |

Explore NgRx Resources

3 |
4 | 5 |
6 | 7 |
8 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/app/documents/document-contents.ts: -------------------------------------------------------------------------------- 1 | export interface DocumentContents { 2 | /** The unique identifier for this document */ 3 | id: string; 4 | /** The HTML to display in the doc viewer */ 5 | contents: string|null; 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/links-package/services/disambiguators/disambiguateByDeprecated.js: -------------------------------------------------------------------------------- 1 | module.exports = function disambiguateByDeprecated() { 2 | return (alias, originatingDoc, docs) => docs.filter(doc => doc.deprecated === undefined); 3 | }; 4 | -------------------------------------------------------------------------------- /modules/store/src/meta-reducers/index.ts: -------------------------------------------------------------------------------- 1 | export { immutabilityCheckMetaReducer } from './immutability_reducer'; 2 | export { serializationCheckMetaReducer } from './serialization_reducer'; 3 | export { inNgZoneAssertMetaReducer } from './inNgZoneAssert_reducer'; 4 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store-walkthrough/src/app/book-list/book-list.component.css: -------------------------------------------------------------------------------- 1 | div { 2 | padding: 10px; 3 | } 4 | span { 5 | margin: 0 10px 0 2px; 6 | } 7 | p { 8 | display: inline-block; 9 | font-style: italic; 10 | margin: 0; 11 | } -------------------------------------------------------------------------------- /projects/ngrx.io/tools/cli-patches/patch.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const sh = require('shelljs'); 3 | 4 | const PATCH_LOCK = 'node_modules/@angular/cli/.patched'; 5 | 6 | if (!fs.existsSync(PATCH_LOCK)) { 7 | sh.touch(PATCH_LOCK); 8 | } 9 | 10 | -------------------------------------------------------------------------------- /projects/standalone-app/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser'; 2 | import { AppComponent } from './app/app.component'; 3 | import { appConfig } from './app/app.config'; 4 | 5 | bootstrapApplication(AppComponent, appConfig); 6 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/app/book-list/book-list.component.css: -------------------------------------------------------------------------------- 1 | div { 2 | padding: 10px; 3 | } 4 | span { 5 | margin: 0 10px 0 2px; 6 | } 7 | p { 8 | display: inline-block; 9 | font-style: italic; 10 | margin: 0; 11 | } 12 | -------------------------------------------------------------------------------- /modules/data/src/reducers/entity-cache.ts: -------------------------------------------------------------------------------- 1 | import { EntityCollection } from './entity-collection'; 2 | 3 | export interface EntityCache { 4 | // Must be `any` since we don't know what type of collections we will have 5 | [name: string]: EntityCollection; 6 | } 7 | -------------------------------------------------------------------------------- /modules/store/src/flags.ts: -------------------------------------------------------------------------------- 1 | let _ngrxMockEnvironment = false; 2 | export function setNgrxMockEnvironment(value: boolean): void { 3 | _ngrxMockEnvironment = value; 4 | } 5 | export function isNgrxMockEnvironment(): boolean { 6 | return _ngrxMockEnvironment; 7 | } 8 | -------------------------------------------------------------------------------- /projects/example-app/src/app/core/actions/user.actions.ts: -------------------------------------------------------------------------------- 1 | import { createActionGroup, emptyProps } from '@ngrx/store'; 2 | 3 | export const UserActions = createActionGroup({ 4 | source: 'User', 5 | events: { 6 | 'Idle Timeout': emptyProps(), 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/app/sw-updates/sw-updates.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | 3 | import { SwUpdatesService } from './sw-updates.service'; 4 | 5 | @NgModule({ 6 | providers: [SwUpdatesService], 7 | }) 8 | export class SwUpdatesModule {} 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/environments/environment.stable.ts: -------------------------------------------------------------------------------- 1 | // This is for the production site, which is hosted at https://ngrx.io 2 | export const environment = { 3 | gaId: 'UA-127598155-1', // Production id 4 | production: true, 5 | mode: 'stable', 6 | }; 7 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/store-walkthrough/src/book-collection/book-collection.css: -------------------------------------------------------------------------------- 1 | div { 2 | padding: 10px; 3 | } 4 | span { 5 | margin: 0 10px 0 2px; 6 | } 7 | p { 8 | display: inline-block; 9 | font-style: italic; 10 | margin: 0 0 5px; 11 | } 12 | -------------------------------------------------------------------------------- /projects/www/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import type { StackblitzConfig } from './tools/vite-ngrx-stackblitz.plugin'; 3 | 4 | declare module '*/stackblitz.yml' { 5 | const value: StackblitzConfig; 6 | export default value; 7 | } 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Support Request 4 | url: https://github.com/ngrx/platform/blob/main/CONTRIBUTING.md#questions-and-requests-for-support 5 | about: Questions and requests for support 6 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | /dist 2 | /modules/schematics/src/*/files/* 3 | /modules/**/schematics/**/files/* 4 | /tmp 5 | /projects/ngrx.io 6 | !/projects/ngrx.io/content/examples 7 | package-lock.json 8 | package.json 9 | yarn.lock 10 | 11 | /.nx/cache 12 | /.nx/workspace-data -------------------------------------------------------------------------------- /modules/data/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | path?: string; 3 | effects?: boolean; 4 | skipPackageJson?: boolean; 5 | project?: string; 6 | module?: string; 7 | migrateNgrxData?: boolean; 8 | entityConfig?: boolean; 9 | } 10 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/ngrx-start/src/app.config.ts: -------------------------------------------------------------------------------- 1 | import { 2 | ApplicationConfig, 3 | provideZonelessChangeDetection, 4 | } from '@angular/core'; 5 | 6 | export const appConfig: ApplicationConfig = { 7 | providers: [provideZonelessChangeDetection()], 8 | }; 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "targets": { 3 | "ngrx-io-dev": { 4 | "hosting": { 5 | "stable": [ 6 | "ngrx-io-stable" 7 | ], 8 | "archive": [ 9 | "ngrx-io-v9" 10 | ] 11 | } 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/app/book-collection/book-collection.component.css: -------------------------------------------------------------------------------- 1 | div { 2 | padding: 10px; 3 | } 4 | span { 5 | margin: 0 10px 0 2px; 6 | } 7 | p { 8 | display: inline-block; 9 | font-style: italic; 10 | margin: 0 0 5px; 11 | } -------------------------------------------------------------------------------- /projects/ngrx.io/scripts/_payload-limits.json: -------------------------------------------------------------------------------- 1 | { 2 | "aio": { 3 | "master": { 4 | "uncompressed": { 5 | "runtime": 2768, 6 | "main": 476338, 7 | "polyfills": 38453, 8 | "prettify": 14913 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/ngrx-start/src/main.ts: -------------------------------------------------------------------------------- 1 | import '@angular/compiler'; 2 | import { bootstrapApplication } from '@angular/platform-browser'; 3 | import { App } from './app'; 4 | import { appConfig } from './app.config'; 5 | 6 | bootstrapApplication(App, appConfig); 7 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/app/book-collection/book-collection.component.css: -------------------------------------------------------------------------------- 1 | div { 2 | padding: 10px; 3 | } 4 | span { 5 | margin: 0 10px 0 2px; 6 | } 7 | p { 8 | display: inline-block; 9 | font-style: italic; 10 | margin: 0 0 5px; 11 | } 12 | -------------------------------------------------------------------------------- /modules/effects/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Add root side effect class" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/store/src/globals.ts: -------------------------------------------------------------------------------- 1 | export const REGISTERED_ACTION_TYPES: { [actionType: string]: number } = {}; 2 | 3 | export function resetRegisteredActionTypes() { 4 | for (const key of Object.keys(REGISTERED_ACTION_TYPES)) { 5 | delete REGISTERED_ACTION_TYPES[key]; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /modules/store/testing/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.build", 3 | "compilerOptions": { 4 | "paths": { 5 | "@ngrx/store": ["../../dist/packages/store"] 6 | } 7 | }, 8 | "files": ["index.ts"], 9 | "angularCompilerOptions": {} 10 | } 11 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './book-authors.component'; 2 | export * from './book-detail.component'; 3 | export * from './book-preview.component'; 4 | export * from './book-preview-list.component'; 5 | export * from './book-search.component'; 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store-walkthrough/src/app/book-collection/book-collection.component.css: -------------------------------------------------------------------------------- 1 | div { 2 | padding: 10px; 3 | } 4 | span { 5 | margin: 0 10px 0 2px; 6 | } 7 | p { 8 | display: inline-block; 9 | font-style: italic; 10 | margin: 0 0 5px; 11 | } -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'], 7 | }) 8 | export class AppComponent {} 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/hr/_hr.scss: -------------------------------------------------------------------------------- 1 | hr { 2 | border: none; 3 | height: 1px; 4 | } 5 | 6 | .hr-margin { 7 | display: block; 8 | height: 1px; 9 | border: 0; 10 | margin-top: 16px; 11 | margin-bottom: 16px; 12 | padding: 0; 13 | } 14 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/post-process-package/index.js: -------------------------------------------------------------------------------- 1 | var Package = require('dgeni').Package; 2 | var base = require('dgeni-packages/base'); 3 | 4 | module.exports = new Package('post-process-package', [base]) 5 | .processor(require('./processors/post-process-html')); 6 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/store-walkthrough/src/main.ts: -------------------------------------------------------------------------------- 1 | import '@angular/compiler'; 2 | import { bootstrapApplication } from '@angular/platform-browser'; 3 | import { App } from './app'; 4 | import { appConfig } from './app.config'; 5 | 6 | bootstrapApplication(App, appConfig); 7 | -------------------------------------------------------------------------------- /modules/data/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/data", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "lib": { 6 | "entryFile": "index.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/data/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Add @ngrx/data to your application" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/ngrx-start/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'], 7 | }) 8 | export class AppComponent {} 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/router-store-selectors/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
    2 | 3 |
  1. {{ car.make }} | {{ car.model}} | {{ car.year}} 4 | 5 |
6 | 7 | -------------------------------------------------------------------------------- /projects/www/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser'; 2 | import { AppComponent } from './app/app.component'; 3 | import { config } from './app/app.config.browser'; 4 | 5 | bootstrapApplication(AppComponent, config).catch((err) => console.error(err)); 6 | -------------------------------------------------------------------------------- /modules/entity/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/entity", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "lib": { 6 | "entryFile": "index.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/entity/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Add @ngrx/entity to your application" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/schematics/src/ng-add/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/schema", 3 | "$id": "SchematicsNgRxSchematics", 4 | "title": "Scaffolding library for Angular applications using NgRx libraries", 5 | "type": "object", 6 | "properties": {}, 7 | "required": [] 8 | } 9 | -------------------------------------------------------------------------------- /modules/signals/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/signals", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "lib": { 6 | "entryFile": "index.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/signals/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Add @ngrx/signals to your application" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/store/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/store", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "lib": { 6 | "entryFile": "index.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/store/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Adds initial setup for state managment" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/Annotation.js: -------------------------------------------------------------------------------- 1 | // A ts2dart compiler annotation that we don't care about for API docs. 2 | // But, if we don't have a tag-def for it the doc-gen will error. 3 | module.exports = function() { 4 | return {name: 'Annotation'}; 5 | }; 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/includes/see-also.html: -------------------------------------------------------------------------------- 1 | {%- if doc.see.length %} 2 |
3 |

See also

4 |
    5 | {% for see in doc.see %} 6 |
  • {$ see | marked $}
  • {% endfor %} 7 |
8 |
9 | {% endif %} 10 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/sitemap.template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {%- for url in doc.urls %} 4 | 5 | https://ngrx.io/{$ url $} 6 | {% endfor %} 7 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/router-store-selectors/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser'; 2 | import { AppComponent } from './app/app.component'; 3 | import { appConfig } from './app/app.config'; 4 | 5 | bootstrapApplication(AppComponent, appConfig); 6 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/app/actions/auth.actions.ts: -------------------------------------------------------------------------------- 1 | import { createAction, props } from '@ngrx/store'; 2 | 3 | export const login = createAction( 4 | '[Auth] Login', 5 | props<{ username: string }>() 6 | ); 7 | export const logout = createAction('[Auth] Logout'); 8 | -------------------------------------------------------------------------------- /projects/www/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "types": ["node", "vitest/globals"] 6 | }, 7 | "files": ["src/test-setup.ts"], 8 | "include": ["src/**/*.spec.ts", "**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /modules/component/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/component", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "lib": { 6 | "entryFile": "index.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/component/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Add @ngrx/component to your application" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/component/spec/fixtures/mock-event-emitter.ts: -------------------------------------------------------------------------------- 1 | import { EventEmitter } from '@angular/core'; 2 | 3 | export class MockEventEmitter extends EventEmitter { 4 | override next(value: any) {} 5 | override error(error: any) {} 6 | override complete() {} 7 | override emit() {} 8 | } 9 | -------------------------------------------------------------------------------- /modules/data/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /modules/effects/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /modules/entity/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /modules/operators/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/operators", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "lib": { 6 | "entryFile": "index.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/operators/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Add @ngrx/operators to your application" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/signals/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /modules/store/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/router-store-selectors/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser'; 2 | import { AppComponent } from './app/app.component'; 3 | import { appConfig } from './app/app.config'; 4 | 5 | bootstrapApplication(AppComponent, appConfig); 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/app/actions/auth.actions.ts: -------------------------------------------------------------------------------- 1 | import { createAction, props } from '@ngrx/store'; 2 | 3 | export const login = createAction( 4 | '[Auth] Login', 5 | props<{ username: string }>() 6 | ); 7 | export const logout = createAction('[Auth] Logout'); 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/app/custom-elements/expandable-section/expandable-section.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{title}} 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/pipe.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'export-base.template.html' -%} 2 | 3 | {% block overview %} 4 | {% include "includes/pipe-overview.html" %} 5 | {% endblock %} 6 | {% block details %} 7 | {% include "includes/description.html" %} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /projects/www/src/main.server.ts: -------------------------------------------------------------------------------- 1 | import '@angular/platform-server/init'; 2 | 3 | import { render } from '@analogjs/router/server'; 4 | 5 | import { AppComponent } from './app/app.component'; 6 | import { config } from './app/app.config.server'; 7 | 8 | export default render(AppComponent, config); 9 | -------------------------------------------------------------------------------- /modules/component/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /modules/operators/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /modules/router-store/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/router-store", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "lib": { 6 | "entryFile": "index.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/router-store/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /modules/schematics/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /modules/schematics/src/ngrx-push-migration/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/schema", 3 | "$id": "SchematicsNgRxNgRxPushMigration", 4 | "title": "NgRx Component NgRxPush Migration from async to ngrxPush", 5 | "type": "object", 6 | "properties": {}, 7 | "required": [] 8 | } 9 | -------------------------------------------------------------------------------- /modules/signals/src/deep-computed.ts: -------------------------------------------------------------------------------- 1 | import { computed } from '@angular/core'; 2 | import { DeepSignal, toDeepSignal } from './deep-signal'; 3 | 4 | export function deepComputed( 5 | computation: () => T 6 | ): DeepSignal { 7 | return toDeepSignal(computed(computation)); 8 | } 9 | -------------------------------------------------------------------------------- /modules/store-devtools/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Adds initial setup for store-devtools" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/store/spec/types/utils.ts: -------------------------------------------------------------------------------- 1 | export const compilerOptions = () => ({ 2 | module: 'preserve', 3 | moduleResolution: 'bundler', 4 | target: 'ES2022', 5 | baseUrl: '.', 6 | experimentalDecorators: true, 7 | paths: { 8 | '@ngrx/store': ['./modules/store'], 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/actions/view-book-page.actions.ts: -------------------------------------------------------------------------------- 1 | import { createActionGroup, props } from '@ngrx/store'; 2 | 3 | export const ViewBookPageActions = createActionGroup({ 4 | source: 'View Book Page', 5 | events: { 6 | 'Select Book': props<{ id: string }>(), 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/environments/environment.next.ts: -------------------------------------------------------------------------------- 1 | // This is for the staging site, which is hosted at https://next.ngrx.io 2 | export const environment = { 3 | gaId: 'UA-127598155-1', // Production id (since it is linked from the main site) 4 | production: true, 5 | mode: 'next', 6 | }; 7 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/router-store-selectors/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
    2 | 3 |
  1. {{ car.make }} | {{ car.model }} | {{ car.year }}
  2. 5 |
6 | 7 | 8 | -------------------------------------------------------------------------------- /modules/component-store/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /modules/eslint-plugin/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Add @ngrx/eslint-plugin to your application" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/store-devtools/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/store-devtools", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "lib": { 6 | "entryFile": "index.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /modules/store-devtools/schematics-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/actions/find-book-page.actions.ts: -------------------------------------------------------------------------------- 1 | import { createActionGroup, props } from '@ngrx/store'; 2 | 3 | export const FindBookPageActions = createActionGroup({ 4 | source: 'Find Book Page', 5 | events: { 6 | 'Search Books': props<{ query: string }>(), 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/tests/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/e2e", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": ["jasmine", "jasminewd2", "node"] 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/throws.js: -------------------------------------------------------------------------------- 1 | module.exports = function(extractTypeTransform, wholeTagTransform) { 2 | return { 3 | name: 'throws', 4 | aliases: ['exception'], 5 | multi: true, 6 | transforms: [ extractTypeTransform, wholeTagTransform ] 7 | }; 8 | }; -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-base-package/services/getImageDimensions.js: -------------------------------------------------------------------------------- 1 | const { resolve } = require('canonical-path'); 2 | const sizeOf = require('image-size'); 3 | 4 | module.exports = function getImageDimensions() { 5 | return (basePath, path) => sizeOf(resolve(basePath, path)); 6 | }; 7 | -------------------------------------------------------------------------------- /modules/component-store/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Add @ngrx/component-store to your application" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/entity/src/index.ts: -------------------------------------------------------------------------------- 1 | export { createEntityAdapter } from './create_adapter'; 2 | export { 3 | Comparer, 4 | Dictionary, 5 | DictionaryNum, 6 | EntityAdapter, 7 | EntityMap, 8 | EntityMapOne, 9 | EntityState, 10 | IdSelector, 11 | Predicate, 12 | Update, 13 | } from './models'; 14 | -------------------------------------------------------------------------------- /modules/operators/spec/types/utils.ts: -------------------------------------------------------------------------------- 1 | export const compilerOptions = () => ({ 2 | module: 'preserve', 3 | moduleResolution: 'bundler', 4 | target: 'ES2022', 5 | baseUrl: '.', 6 | experimentalDecorators: true, 7 | paths: { 8 | '@ngrx/operators': ['./modules/operators'], 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /modules/router-store/schematics/collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "ng-add": { 4 | "aliases": ["init"], 5 | "factory": "./ng-add", 6 | "schema": "./ng-add/schema.json", 7 | "description": "Register @ngrx/router-store within your application" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/store/testing/src/mock_selector.ts: -------------------------------------------------------------------------------- 1 | import { MemoizedSelector, MemoizedSelectorWithProps } from '@ngrx/store'; 2 | 3 | export interface MockSelector { 4 | selector: 5 | | string 6 | | MemoizedSelector 7 | | MemoizedSelectorWithProps; 8 | value: any; 9 | } 10 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/hr/_hr-theme.scss: -------------------------------------------------------------------------------- 1 | @use '../../constants'; 2 | @use '@angular/material' as mat; 3 | 4 | @mixin theme($theme) { 5 | $is-dark-theme: map-get($theme, is-dark); 6 | 7 | hr { 8 | background: if($is-dark-theme, constants.$lightpurple, #36203A); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org/ 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /projects/example-app/src/app/core/actions/layout.actions.ts: -------------------------------------------------------------------------------- 1 | import { createActionGroup, emptyProps } from '@ngrx/store'; 2 | 3 | export const LayoutActions = createActionGroup({ 4 | source: 'Layout', 5 | events: { 6 | 'Open Sidenav': emptyProps(), 7 | 'Close Sidenav': emptyProps(), 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/images/_images-theme.scss: -------------------------------------------------------------------------------- 1 | @use '../../constants'; 2 | @use '@angular/material' as mat; 3 | 4 | @mixin theme($theme) { 5 | .content { 6 | figure { 7 | background: constants.$white; 8 | box-shadow: 2px 2px 5px 0 rgba(0, 0, 0, .2); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /projects/www/src/app/pages/guide/operators/index.md: -------------------------------------------------------------------------------- 1 | # @ngrx/operators 2 | 3 | NgRx Operators is a utility library with frequently used RxJS operators for managing state and side effects. 4 | 5 | ## Installation 6 | 7 | Detailed installation instructions can be found on the [Installation](guide/operators/install) page. 8 | -------------------------------------------------------------------------------- /modules/eslint-plugin/src/configs/signals.json: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "@typescript-eslint/parser", 3 | "plugins": ["@ngrx"], 4 | "rules": { 5 | "@ngrx/enforce-type-call": "error", 6 | "@ngrx/prefer-protected-state": "error", 7 | "@ngrx/signal-store-feature-should-use-generic-type": "error" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/guide/operators/index.md: -------------------------------------------------------------------------------- 1 | # @ngrx/operators 2 | 3 | NgRx Operators is a utility library with frequently used RxJS operators for managing state and side effects. 4 | 5 | ## Installation 6 | 7 | Detailed installation instructions can be found on the [Installation](guide/operators/install) page. 8 | 9 | -------------------------------------------------------------------------------- /projects/www/public/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #da532c 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/store/src/counter.actions.ts: -------------------------------------------------------------------------------- 1 | import { createAction } from '@ngrx/store'; 2 | 3 | export const increment = createAction('[Counter Component] Increment'); 4 | export const decrement = createAction('[Counter Component] Decrement'); 5 | export const reset = createAction('[Counter Component] Reset'); 6 | -------------------------------------------------------------------------------- /modules/effects/schematics/ng-add/files/__name@dasherize@if-flat__/__name@dasherize__.effects.ts.template: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Actions, createEffect } from '@ngrx/effects'; 3 | 4 | @Injectable() 5 | export class <%= classify(name) %>Effects { 6 | constructor(private actions$: Actions) {} 7 | } 8 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/router-store-selectors/src/app/car/car.actions.ts: -------------------------------------------------------------------------------- 1 | import { createAction, props } from '@ngrx/store'; 2 | import { Car } from './car.reducer'; 3 | 4 | // for our example, we'll only populate cars in the store on app init 5 | export const appInit = createAction('[App] Init', props<{ cars: Car[] }>()); 6 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/store/src/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig } from '@angular/core'; 2 | import { provideStore } from '@ngrx/store'; 3 | import { counterReducer } from './counter.reducer'; 4 | 5 | export const appConfig: ApplicationConfig = { 6 | providers: [provideStore({ count: counterReducer })], 7 | }; 8 | -------------------------------------------------------------------------------- /modules/entity/migrations/migration.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", 3 | "schematics": { 4 | "ngrx-entity-migration-01": { 5 | "description": "The road to v6", 6 | "version": "5.2", 7 | "factory": "./6_0_0/index" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/router-store-selectors/src/app/car/car.actions.ts: -------------------------------------------------------------------------------- 1 | import { createAction, props } from '@ngrx/store'; 2 | import { Car } from './car.reducer'; 3 | 4 | // for our example, we'll only populate cars in the store on app init 5 | export const appInit = createAction('[App] Init', props<{ cars: Car[] }>()); 6 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/edit-page-cta/_edit-page-cta.scss: -------------------------------------------------------------------------------- 1 | @use '../../mixins'; 2 | 3 | .edit-page-cta { 4 | font-weight: 400; 5 | @include mixins.typescale-default; 6 | 7 | text-align: right; 8 | margin-right: 32px; 9 | display: block; 10 | position: absolute; 11 | right: 0; 12 | } 13 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-content-package/inline-tag-defs/anchor.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'a', 3 | description: 'A shorthand for creating heading anchors. Usage: `{@a some-id}`', 4 | handler: function(doc, tagName, tagDescription) { 5 | return ''; 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/environments/environment.archive.ts: -------------------------------------------------------------------------------- 1 | // This is for archived sites, which are hosted at https://vX.ngrx.io, where X is the major NgRx version. 2 | export const environment = { 3 | gaId: 'UA-127598155-1', // Production id (since it is linked from the main site) 4 | production: true, 5 | mode: 'archive', 6 | }; 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "module": "es2020", 6 | "types": ["jasmine", "node"] 7 | }, 8 | "files": ["test.ts", "polyfills.ts"], 9 | "include": ["testing/**/*.ts", "**/*.spec.ts", "**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/mocks/importedSrc.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright Google Inc. All Rights Reserved. 4 | * 5 | * Use of this source code is governed by an MIT-style license that can be 6 | * found in the LICENSE file at https://angular.io/license 7 | */ 8 | 9 | export const x = 100; 10 | -------------------------------------------------------------------------------- /modules/data/schematics/ng-add/files/entity-metadata.ts.template: -------------------------------------------------------------------------------- 1 | import { EntityMetadataMap, EntityDataModuleConfig } from '@ngrx/data'; 2 | 3 | const entityMetadata: EntityMetadataMap = {}; 4 | 5 | const pluralNames = { }; 6 | 7 | export const entityConfig: EntityDataModuleConfig = { 8 | entityMetadata, 9 | pluralNames 10 | }; 11 | -------------------------------------------------------------------------------- /modules/effects/testing/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.build", 3 | "compilerOptions": { 4 | "paths": { 5 | "@ngrx/store": ["../../dist/packages/store"], 6 | "@ngrx/effects": ["../../dist/packages/effects"] 7 | } 8 | }, 9 | "files": ["index.ts"], 10 | "angularCompilerOptions": {} 11 | } 12 | -------------------------------------------------------------------------------- /modules/schematics/migrations/migration.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", 3 | "schematics": { 4 | "ngrx-schematics-migration-01": { 5 | "description": "The road to v6", 6 | "version": "5.2", 7 | "factory": "./6_0_0/index" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/src/app/my-counter/my-counter.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
Current Count: {{ count$ | async }}
4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/_app-theme.scss: -------------------------------------------------------------------------------- 1 | @use '0-base/typography-theme'; 2 | @use '1-layouts/theme' as layout-themes; 3 | @use '2-modules/theme' as module-themes; 4 | 5 | @mixin theme($theme) { 6 | @include typography-theme.theme($theme); 7 | @include layout-themes.theme($theme); 8 | @include module-themes.theme($theme); 9 | } 10 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/systemjs/bs-config.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "open": false, 3 | "logLevel": "silent", 4 | "port": 8080, 5 | "server": { 6 | "baseDir": "src", 7 | "routes": { 8 | "/node_modules": "node_modules" 9 | }, 10 | "middleware": { 11 | "0": null 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/actions/book.actions.ts: -------------------------------------------------------------------------------- 1 | import { createActionGroup, props } from '@ngrx/store'; 2 | 3 | import { Book } from '@example-app/books/models'; 4 | 5 | export const BookActions = createActionGroup({ 6 | source: 'Book Exists Guard', 7 | events: { 8 | 'Load Book': props<{ book: Book }>(), 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/src/app/counter.actions.ts: -------------------------------------------------------------------------------- 1 | // #docregion 2 | import { createAction } from '@ngrx/store'; 3 | 4 | export const increment = createAction('[Counter Component] Increment'); 5 | export const decrement = createAction('[Counter Component] Decrement'); 6 | export const reset = createAction('[Counter Component] Reset'); 7 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/app/layout/notification/notification.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/example-zipper/generateZips.js: -------------------------------------------------------------------------------- 1 | const ExampleZipper = require('./exampleZipper'); 2 | const path = require('canonical-path'); 3 | 4 | const EXAMPLES_PATH = path.join(__dirname, '../../content/examples'); 5 | const ZIPS_PATH = path.join(__dirname, '../../src/generated/zips'); 6 | 7 | new ExampleZipper(EXAMPLES_PATH, ZIPS_PATH); 8 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/app/book-list/book-list.component.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ book.volumeInfo.title }}

3 | by {{ book.volumeInfo.authors }} 4 | 7 |
8 | -------------------------------------------------------------------------------- /modules/router-store/data-persistence/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.build", 3 | "compilerOptions": { 4 | "paths": { 5 | "@ngrx/store": ["../../dist/packages/store"], 6 | "@ngrx/effects": ["../../dist/packages/effects"] 7 | } 8 | }, 9 | "files": ["index.ts"], 10 | "angularCompilerOptions": {} 11 | } 12 | -------------------------------------------------------------------------------- /modules/signals/events/src/event-instance.ts: -------------------------------------------------------------------------------- 1 | export type EventInstance = { 2 | type: Type; 3 | payload: Payload; 4 | }; 5 | 6 | export function isEventInstance( 7 | value: unknown 8 | ): value is EventInstance { 9 | return typeof value === 'object' && value !== null && 'type' in value; 10 | } 11 | -------------------------------------------------------------------------------- /modules/signals/spec/types/helpers.ts: -------------------------------------------------------------------------------- 1 | export const compilerOptions = () => ({ 2 | module: 'preserve', 3 | moduleResolution: 'bundler', 4 | target: 'ES2022', 5 | baseUrl: '.', 6 | experimentalDecorators: true, 7 | strict: true, 8 | noImplicitAny: true, 9 | paths: { 10 | '@ngrx/signals': ['./modules/signals'], 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @see https://prettier.io/docs/configuration 3 | * @type {import("prettier").Config} 4 | */ 5 | module.exports = { 6 | singleQuote: true, 7 | trailingComma: 'es5', 8 | overrides: [ 9 | { 10 | files: '*.md', 11 | options: { 12 | printWidth: 70, 13 | }, 14 | }, 15 | ], 16 | }; 17 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/__base/stackblitz-empty.yml: -------------------------------------------------------------------------------- 1 | name: Base withouth main and app files 2 | description: Base template for NgRx examples 3 | files: 4 | src/_theme.scss: './src/_theme.scss' 5 | src/styles.scss: './src/styles.scss' 6 | package.json: './package.json' 7 | tsconfig.json: './tsconfig.json' 8 | vite.config.js: './vite.config.js' 9 | -------------------------------------------------------------------------------- /modules/effects/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/effects", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "allowedNonPeerDependencies": ["@ngrx/operators"], 6 | "lib": { 7 | "entryFile": "index.ts" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/actions/collection-page.actions.ts: -------------------------------------------------------------------------------- 1 | import { createActionGroup, emptyProps } from '@ngrx/store'; 2 | 3 | export const CollectionPageActions = createActionGroup({ 4 | source: 'Collection Page', 5 | events: { 6 | /** 7 | * Load Collection Action 8 | */ 9 | Enter: emptyProps(), 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store-walkthrough/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NgRx Tutorial 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/1-layouts/table-of-contents/_table-of-contents.scss: -------------------------------------------------------------------------------- 1 | @use "../../constants"; 2 | 3 | nav#main-table-of-contents { 4 | width: 200px; 5 | height: 900px; 6 | position: fixed; 7 | right: 0; 8 | top: 50px; 9 | bottom: 100px; 10 | margin-left: 32px; 11 | background-color: constants.$purple; 12 | } 13 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/class.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'export-base.template.html' -%} 2 | 3 | {% block overview %} 4 | {% include "includes/class-overview.html" %} 5 | {% endblock %} 6 | {% block details %} 7 | {% include "includes/description.html" %} 8 | {% include "includes/class-members.html" %} 9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /modules/effects/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "es2022", 6 | "types": ["node", "vitest/globals"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/entity/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "es2022", 6 | "types": ["vitest/globals", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/operators/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "es2022", 6 | "types": ["node", "vitest/globals"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/router-store/spec/types/utils.ts: -------------------------------------------------------------------------------- 1 | export const compilerOptions = () => ({ 2 | module: 'preserve', 3 | moduleResolution: 'bundler', 4 | target: 'ES2022', 5 | baseUrl: '.', 6 | experimentalDecorators: true, 7 | paths: { 8 | '@ngrx/store': ['./modules/store'], 9 | '@ngrx/router-store': ['./modules/router-store'], 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /modules/signals/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "es2022", 6 | "types": ["node", "vitest/globals"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/actions/auth.actions.ts: -------------------------------------------------------------------------------- 1 | import { createActionGroup, emptyProps } from '@ngrx/store'; 2 | 3 | export const AuthActions = createActionGroup({ 4 | source: 'Auth', 5 | events: { 6 | Logout: emptyProps(), 7 | 'Logout Confirmation': emptyProps(), 8 | 'Logout Confirmation Dismiss': emptyProps(), 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/actions/login-page.actions.ts: -------------------------------------------------------------------------------- 1 | import { createActionGroup, props } from '@ngrx/store'; 2 | import { Credentials } from '@example-app/auth/models'; 3 | 4 | export const LoginPageActions = createActionGroup({ 5 | source: 'Login Page', 6 | events: { 7 | Login: props<{ credentials: Credentials }>(), 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /modules/data/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/entity/spec/types/utils.ts: -------------------------------------------------------------------------------- 1 | export const compilerOptions = () => ({ 2 | module: 'preserve', 3 | moduleResolution: 'bundler', 4 | target: 'ES2022', 5 | baseUrl: '.', 6 | experimentalDecorators: true, 7 | strict: true, 8 | paths: { 9 | '@ngrx/entity': ['./modules/entity'], 10 | '@ngrx/store': ['./modules/store'], 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /modules/eslint-plugin/src/utils/helper-functions/ngrx-modules.ts: -------------------------------------------------------------------------------- 1 | export const NGRX_MODULE_PATHS = { 2 | ['component-store']: '@ngrx/component-store', 3 | effects: '@ngrx/effects', 4 | store: '@ngrx/store', 5 | operators: '@ngrx/operators', 6 | signals: '@ngrx/signals', 7 | } as const; 8 | 9 | export type NGRX_MODULE = keyof typeof NGRX_MODULE_PATHS; 10 | -------------------------------------------------------------------------------- /modules/store-devtools/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "es2022", 6 | "types": ["node", "vitest/globals"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/app/book-list/book-list.component.html: -------------------------------------------------------------------------------- 1 |
5 |

{{book.volumeInfo.title}}

by {{book.volumeInfo.authors}} 6 | 10 |
-------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/app/book-collection/book-collection.component.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ book.volumeInfo.title }}

3 | by {{ book.volumeInfo.authors }} 4 | 7 |
8 | -------------------------------------------------------------------------------- /modules/component-store/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/modules/component-store", 4 | "assets": ["migrations/**/*.json", "schematics/**/*.json", "**/files/**/*"], 5 | "allowedNonPeerDependencies": ["@ngrx/operators"], 6 | "lib": { 7 | "entryFile": "index.ts" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /modules/component/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/store/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store-walkthrough/src/app/book-list/book-list.component.html: -------------------------------------------------------------------------------- 1 |
5 |

{{book.volumeInfo.title}}

by {{book.volumeInfo.authors}} 6 | 10 |
-------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /projects/standalone-app/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "ES2022", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts", "src/polyfills.ts"], 9 | "include": ["src/**/*.d.ts"], 10 | "exclude": ["**/*.test.ts", "**/*.spec.ts", "jest.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/component-store/spec/types/utils.ts: -------------------------------------------------------------------------------- 1 | export const compilerOptions = () => ({ 2 | module: 'preserve', 3 | moduleResolution: 'bundler', 4 | target: 'ES2022', 5 | baseUrl: '.', 6 | experimentalDecorators: true, 7 | paths: { 8 | '@ngrx/component-store': ['./modules/component-store'], 9 | '@ngrx/operators': ['./modules/operators'], 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /modules/router-store/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "es2022", 6 | "types": ["node", "vitest", "vitest/globals"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/schematics/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/content-rules/minLength.js: -------------------------------------------------------------------------------- 1 | module.exports = function createMinLengthRule(minLength) { 2 | minLength = minLength || 1; 3 | return (doc, prop, value) => { 4 | if (value.length < minLength) { 5 | return `Invalid "${prop}" property: "${value}". It must have at least ${minLength} characters.`; 6 | } 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /.devcontainer/welcome-message.txt: -------------------------------------------------------------------------------- 1 | 👋 Welcome to "Ngrx Platform" in GitHub Codespaces! 2 | 3 | 🛠️ Your environment is fully setup with all the required software. 4 | 5 | 🔍 To explore VS Code to its fullest, search using the Command Palette (Cmd/Ctrl + Shift + P or F1). 6 | 7 | 📝 Edit away, run your app as usual, and we'll automatically make it available for you to access. 8 | 9 | -------------------------------------------------------------------------------- /modules/component-store/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NgRx Tutorial 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /projects/standalone-app/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["src/test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/testing-store/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NgRx Tutorial 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /modules/data/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/effects/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/entity/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/operators/migrations/migration.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", 3 | "schematics": { 4 | "20.0.0-rc_0-tap-response": { 5 | "description": "Replace deprecated tapResponse signature", 6 | "version": "20.0.0-rc.0", 7 | "factory": "./20_0_0-rc_0-tap-response/index" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /modules/signals/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/store/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/store/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | skipPackageJson?: boolean; 3 | path?: string; 4 | project?: string; 5 | module?: string; 6 | statePath?: string; 7 | stateInterface?: string; 8 | /** 9 | * Setup state management without registering initial reducers. 10 | */ 11 | minimal?: boolean; 12 | skipESLintPlugin?: boolean; 13 | } 14 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/heading-anchors/_heading-anchors-theme.scss: -------------------------------------------------------------------------------- 1 | @use '../../constants'; 2 | @use '@angular/material' as mat; 3 | 4 | @mixin theme($theme) { 5 | .sidenav-content { 6 | h1, 7 | h2, 8 | h3, 9 | h4, 10 | h5, 11 | h6 { 12 | .header-link { 13 | color: constants.$mediumgray; 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/stackblitz-builder/generateStackblitz.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const StackblitzBuilder = require('./builder'); 3 | 4 | const EXAMPLES_PATH = path.join(__dirname, '../../content/examples'); 5 | const LIVE_EXAMPLES_PATH = path.join(__dirname, '../../src/generated/live-examples'); 6 | 7 | new StackblitzBuilder(EXAMPLES_PATH, LIVE_EXAMPLES_PATH).build(); 8 | 9 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular.io-package/processors/cleanGeneratedFiles.js: -------------------------------------------------------------------------------- 1 | const rimraf = require('rimraf'); 2 | module.exports = function cleanGeneratedFiles() { 3 | return { 4 | $runAfter: ['writing-files'], 5 | $runBefore: ['writeFilesProcessor'], 6 | $process: function() { 7 | rimraf.sync('src/generated/{docs,*.json}'); 8 | } 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /projects/standalone-app/src/app/test.pipe.ts: -------------------------------------------------------------------------------- 1 | import { inject, Pipe, PipeTransform } from '@angular/core'; 2 | import { Store } from '@ngrx/store'; 3 | 4 | @Pipe({ name: 'test', standalone: true }) 5 | export class TestPipe implements PipeTransform { 6 | store = inject(Store); 7 | transform(s: number) { 8 | this.store.select('count'); 9 | return s * 2; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/router-store-selectors/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NgRx Tutorial 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /modules/component/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/operators/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/router-store/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/schematics/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/ngrx-start/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { BrowserModule } from '@angular/platform-browser'; 3 | 4 | import { AppComponent } from './app.component'; 5 | 6 | @NgModule({ 7 | imports: [BrowserModule], 8 | declarations: [AppComponent], 9 | bootstrap: [AppComponent], 10 | }) 11 | export class AppModule {} 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/marketing/announcements.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "startDate": "2019-12-10", 4 | "endDate": "2020-11-06", 5 | "message": 6 | "Join us for NgRx Conf, the Galaxy's First Reactive Angular Conference
Nov 5th-6th, 2020", 7 | "imageUrl": "generated/images/marketing/home/ngrx-conf-badge.svg", 8 | "linkUrl": "https://conf.ngrx.io/" 9 | } 10 | ] 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/app/custom-elements/events/event.model.ts: -------------------------------------------------------------------------------- 1 | export interface EventResponse { 2 | name: string; 3 | url: string; 4 | location: string; 5 | startDate?: string; 6 | endDate: string; 7 | } 8 | 9 | export interface Event { 10 | name: string; 11 | url: string; 12 | location: string; 13 | startDate?: Date; 14 | endDate: Date; 15 | } 16 | -------------------------------------------------------------------------------- /modules/component-store/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /modules/effects/schematics/ng-add/schema.ts: -------------------------------------------------------------------------------- 1 | export interface Schema { 2 | name: string; 3 | skipPackageJson?: boolean; 4 | path?: string; 5 | flat?: boolean; 6 | skipTests?: boolean; 7 | project?: string; 8 | module?: string; 9 | group?: boolean; 10 | /** 11 | * Setup root effects module without registering initial effects. 12 | */ 13 | minimal?: boolean; 14 | } 15 | -------------------------------------------------------------------------------- /modules/store-devtools/schematics-core/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["test-setup.ts"], 10 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /projects/example-app-e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "sourceMap": false, 5 | "types": ["cypress", "node", "@testing-library/cypress"], 6 | "outDir": "../../dist/out-tsc" 7 | }, 8 | "include": ["src/**/*.ts", "src/**/*.js", "cypress.config.ts"], 9 | "files": [], 10 | "references": [], 11 | "exclude": [] 12 | } 13 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/router-store-selectors/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NgRx Tutorial 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/testing-store/src/app/book-collection/book-collection.component.html: -------------------------------------------------------------------------------- 1 |
5 |

{{book.volumeInfo.title}}

by {{book.volumeInfo.authors}} 6 | 10 |
11 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/testing/search.service.ts: -------------------------------------------------------------------------------- 1 | import { Subject } from 'rxjs'; 2 | import { SearchResults } from 'app/search/interfaces'; 3 | 4 | export class MockSearchService { 5 | searchResults = new Subject(); 6 | initWorker = jasmine.createSpy('initWorker'); 7 | loadIndex = jasmine.createSpy('loadIndex'); 8 | search = jasmine.createSpy('search'); 9 | } 10 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-base-package/processors/copyContentAssets.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function copyContentAssetsProcessor(copyFolder) { 3 | return { 4 | $runBefore: ['postProcessHtml'], 5 | assetMappings: [], 6 | $process() { 7 | this.assetMappings.forEach(map => { 8 | copyFolder(map.from, map.to); 9 | }); 10 | } 11 | }; 12 | }; 13 | -------------------------------------------------------------------------------- /tsdoc-metadata.json: -------------------------------------------------------------------------------- 1 | // This file is read by tools that parse documentation comments conforming to the TSDoc standard. 2 | // It should be published with your NPM package. It should not be tracked by Git. 3 | { 4 | "tsdocVersion": "0.12", 5 | "toolPackages": [ 6 | { 7 | "packageName": "@microsoft/api-extractor", 8 | "packageVersion": "7.55.1" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /modules/eslint-plugin/src/configs/component-store.json: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "@typescript-eslint/parser", 3 | "plugins": ["@ngrx"], 4 | "rules": { 5 | "@ngrx/avoid-combining-component-store-selectors": "error", 6 | "@ngrx/avoid-mapping-component-store-selectors": "error", 7 | "@ngrx/require-super-ondestroy": "error", 8 | "@ngrx/updater-explicit-return-type": "error" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store-walkthrough/src/app/book-collection/book-collection.component.html: -------------------------------------------------------------------------------- 1 |
5 |

{{book.volumeInfo.title}}

by {{book.volumeInfo.authors}} 6 | 10 |
11 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/cli-patches/README.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | 3 | The AIO application is built using the Angular CLI tool. We are often trialling new features for the CLI, which 4 | we apply to the library after it is installed. This folder contains git patch files that contain these new features 5 | and a utility to apply those patches to the CLI library. 6 | 7 | **Currently, we have no patches to run.** 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/processors/filterPrivateDocs.js: -------------------------------------------------------------------------------- 1 | module.exports = function filterPrivateDocs() { 2 | return { 3 | $runAfter: ['extra-docs-added', 'checkContentRules'], 4 | $runBefore: ['computing-paths'], 5 | $process: function(docs) { 6 | return docs.filter(function(doc) { return doc.privateExport !== true; }); 7 | } 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/ngrx-start/stackblitz.yml: -------------------------------------------------------------------------------- 1 | name: 'Starter project with NgRx dependencies' 2 | description: 'A simple Angular project with NgRx dependencies' 3 | extends: '../__base/stackblitz-empty.yml' 4 | open: src/app.ts 5 | files: 6 | src/main.ts: './src/main.ts' 7 | src/app.ts: './src/app.ts' 8 | src/app.config.ts: './src/app.config.ts' 9 | index.html: './index.html' 10 | -------------------------------------------------------------------------------- /projects/example-app/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "strict": false, 8 | "target": "es2016" 9 | }, 10 | "files": ["src/test-setup.ts"], 11 | "include": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/contribute/_contribute.scss: -------------------------------------------------------------------------------- 1 | .contribute-container { 2 | h2 { 3 | margin: 0; 4 | } 5 | 6 | .card-section { 7 | justify-content: space-between; 8 | max-width: 880px; 9 | 10 | > :first-child { 11 | margin-right: 2rem; 12 | width: 60%; 13 | } 14 | 15 | &:last-child { 16 | margin-bottom: 0; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/example-zipper/customizer/package-json/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-io-example", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "Example project from an angular.io guide.", 6 | "scripts": {}, 7 | "keywords": [], 8 | "author": "", 9 | "license": "MIT", 10 | "dependencies": {}, 11 | "devDependencies": {}, 12 | "repository": {} 13 | } 14 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/__base/src/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'ngrx-root', 5 | template: ` 6 |

Hello from {{ name }}!

7 | 8 | Learn more about Angular 9 | 10 | `, 11 | }) 12 | export class AppComponent { 13 | name = 'Angular'; 14 | } 15 | -------------------------------------------------------------------------------- /modules/store-devtools/src/zone-config.ts: -------------------------------------------------------------------------------- 1 | import { NgZone, inject } from '@angular/core'; 2 | 3 | export type ZoneConfig = 4 | | { connectInZone: true; ngZone: NgZone } 5 | | { connectInZone: false; ngZone: null }; 6 | 7 | export function injectZoneConfig(connectInZone: boolean) { 8 | const ngZone = connectInZone ? inject(NgZone) : null; 9 | return { ngZone, connectInZone } as ZoneConfig; 10 | } 11 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule); 12 | -------------------------------------------------------------------------------- /setup-jest.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular'; 2 | (global as any)['CSS'] = null; 3 | 4 | /** 5 | * ISSUE: https://github.com/angular/material2/issues/7101 6 | * Workaround for JSDOM missing transform property 7 | */ 8 | Object.defineProperty(document.body.style, 'transform', { 9 | value: () => { 10 | return { 11 | enumerable: true, 12 | configurable: true, 13 | }; 14 | }, 15 | }); 16 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/actions/books-api.actions.ts: -------------------------------------------------------------------------------- 1 | import { createActionGroup, props } from '@ngrx/store'; 2 | 3 | import { Book } from '@example-app/books/models'; 4 | 5 | export const BooksApiActions = createActionGroup({ 6 | source: 'Books/API', 7 | events: { 8 | 'Search Success': props<{ books: Book[] }>(), 9 | 'Search Failure': props<{ errorMsg: string }>(), 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/alert/_alert.scss: -------------------------------------------------------------------------------- 1 | @use "../../mixins"; 2 | 3 | .alert { 4 | padding: 16px; 5 | margin: 24px 0px; 6 | @include mixins.typescale-default; 7 | width: 100%; 8 | box-sizing: border-box; 9 | clear: both; 10 | 11 | h1, h2, h3, h4, h5, h6 { 12 | font-weight: 500; 13 | } 14 | 15 | > * { 16 | margin: 8px 16px; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /projects/www/src/app/app.config.browser.ts: -------------------------------------------------------------------------------- 1 | import { 2 | mergeApplicationConfig, 3 | ApplicationConfig, 4 | provideZonelessChangeDetection, 5 | } from '@angular/core'; 6 | import { appConfig } from './app.config'; 7 | 8 | const serverConfig: ApplicationConfig = { 9 | providers: [provideZonelessChangeDetection()], 10 | }; 11 | 12 | export const config = mergeApplicationConfig(appConfig, serverConfig); 13 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/store/src/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { MyCounterComponent } from './my-counter/my-counter.component'; 3 | 4 | @Component({ 5 | selector: 'ngrx-root', 6 | imports: [MyCounterComponent], 7 | template: ` 8 |

NgRx Tutorial

9 | 10 | 11 | `, 12 | }) 13 | export class AppComponent {} 14 | -------------------------------------------------------------------------------- /projects/www/src/app/examples/store/src/counter.reducer.ts: -------------------------------------------------------------------------------- 1 | import { createReducer, on } from '@ngrx/store'; 2 | import { increment, decrement, reset } from './counter.actions'; 3 | 4 | export const initialState = 0; 5 | 6 | export const counterReducer = createReducer( 7 | initialState, 8 | on(increment, (state) => state + 1), 9 | on(decrement, (state) => state - 1), 10 | on(reset, () => 0) 11 | ); 12 | -------------------------------------------------------------------------------- /projects/www/src/tools/prepare-examples.ts: -------------------------------------------------------------------------------- 1 | import { globSync } from 'tinyglobby'; 2 | import * as fs from 'node:fs'; 3 | 4 | function copyTsFilesToTxt() { 5 | const files = globSync(['./src/app/examples/**/*.ts']); 6 | 7 | files.forEach((file) => { 8 | const txtFile = file.replace('.ts', '.txt'); 9 | fs.writeFileSync(txtFile, fs.readFileSync(file)); 10 | }); 11 | } 12 | 13 | copyTsFilesToTxt(); 14 | -------------------------------------------------------------------------------- /projects/www/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "types": [], 6 | "target": "ES2022", 7 | "useDefineForClassFields": false 8 | }, 9 | "files": ["src/main.ts", "src/main.server.ts"], 10 | "include": ["src/**/*.d.ts", "src/app/pages/**/*.page.ts"], 11 | "exclude": ["**/*.test.ts", "**/*.spec.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /modules/data/src/effects/entity-effects-scheduler.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | import { SchedulerLike } from 'rxjs'; 3 | 4 | // See https://github.com/ReactiveX/rxjs/blob/master/doc/marble-testing.md 5 | /** Token to inject a special RxJS Scheduler during marble tests. */ 6 | export const ENTITY_EFFECTS_SCHEDULER = new InjectionToken( 7 | '@ngrx/data Entity Effects Scheduler' 8 | ); 9 | -------------------------------------------------------------------------------- /modules/schematics/src/component-store/files/__name@dasherize@if-flat__/__name@dasherize__.store.spec.ts.template: -------------------------------------------------------------------------------- 1 | import { <%= classify(name) %>Store } from './<%= dasherize(name) %>.store'; 2 | 3 | describe('<%= classify(name) %>Store', () => { 4 | const componentStore = new <%= classify(name) %>Store(); 5 | 6 | it('should be created', () => { 7 | expect(componentStore).toBeTruthy(); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo(): Promise { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText(): Promise { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/nocollapse.js: -------------------------------------------------------------------------------- 1 | // A fake annotation to prevent Closure compiler from modifying the 2 | // associated code. 3 | // See https://github.com/angular/angular/blob/master/packages/compiler-cli/src/transformers/nocollapse_hack.ts 4 | // We must provide a tag-def for it or the doc-gen will error. 5 | module.exports = function() { 6 | return {name: 'nocollapse'}; 7 | }; 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/examples-package/services/region-matchers/html.js: -------------------------------------------------------------------------------- 1 | // These kind of comments are used in HTML 2 | module.exports = { 3 | regionStartMatcher: /^\s*)?\s*$/, 4 | regionEndMatcher: /^\s*\s*$/, 5 | plasterMatcher: /^\s*\s*$/, 6 | createPlasterComment: plaster => `` 7 | }; 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/templates/api/var.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'export-base.template.html' %} 2 | 3 | {% block overview %} 4 | 5 | const {$ doc.name $}: {$ (doc.type | escape) or 'any' $}; 6 | 7 | {% endblock %} 8 | 9 | {% block details %} 10 | {% include "includes/description.html" %} 11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /projects/standalone-app-e2e/src/integration/app.cy.ts: -------------------------------------------------------------------------------- 1 | import { getGreeting, loadFeature } from '../support/app.po'; 2 | 3 | describe('standalone-app', () => { 4 | beforeEach(() => cy.visit('/')); 5 | 6 | it('should display welcome message', () => { 7 | getGreeting().contains('Welcome ngrx-standalone-app'); 8 | loadFeature(); 9 | cy.contains('Feature State: { "loaded": true }'); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /projects/standalone-app/src/app/lazy/feature.routes.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | import { provideState } from '@ngrx/store'; 3 | import { FeatureComponent } from './feature.component'; 4 | import { feature } from './feature.state'; 5 | 6 | export const routes: Routes = [ 7 | { 8 | path: '', 9 | component: FeatureComponent, 10 | providers: [provideState(feature)], 11 | }, 12 | ]; 13 | -------------------------------------------------------------------------------- /projects/standalone-app/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | StandaloneApp 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /modules/signals/entities/spec/types/helpers.ts: -------------------------------------------------------------------------------- 1 | export const compilerOptions = () => ({ 2 | module: 'preserve', 3 | moduleResolution: 'bundler', 4 | target: 'ES2022', 5 | baseUrl: '.', 6 | experimentalDecorators: true, 7 | strict: true, 8 | noImplicitAny: true, 9 | paths: { 10 | '@ngrx/signals': ['./modules/signals'], 11 | '@ngrx/signals/entities': ['./modules/signals/entities'], 12 | }, 13 | }); 14 | -------------------------------------------------------------------------------- /modules/signals/testing/spec/types/helpers.ts: -------------------------------------------------------------------------------- 1 | export const compilerOptions = () => ({ 2 | module: 'preserve', 3 | moduleResolution: 'bundler', 4 | target: 'ES2022', 5 | baseUrl: '.', 6 | experimentalDecorators: true, 7 | strict: true, 8 | noImplicitAny: true, 9 | paths: { 10 | '@ngrx/signals': ['./modules/signals'], 11 | '@ngrx/signals/testing': ['./modules/signals/testing'], 12 | }, 13 | }); 14 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/app/custom-elements/ngrx/circles.module.spec.ts: -------------------------------------------------------------------------------- 1 | import { CirclesModule } from './circles.module'; 2 | 3 | describe('CirclesModule', () => { 4 | let circlesModule: CirclesModule; 5 | 6 | beforeEach(() => { 7 | circlesModule = new CirclesModule(); 8 | }); 9 | 10 | it('should create an instance', () => { 11 | expect(circlesModule).toBeTruthy(); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../out-tsc/e2e", 6 | "module": "commonjs", 7 | "target": "es2018", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": [ 9 | "src/main.ts", 10 | "src/polyfills.ts" 11 | ], 12 | "include": [ 13 | "src/**/*.d.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/howToUse.js: -------------------------------------------------------------------------------- 1 | module.exports = function(log, createDocMessage) { 2 | return { 3 | name: 'howToUse', 4 | deprecated: true, 5 | transforms(doc, tag, value) { 6 | log.warn(createDocMessage('Deprecated `@howToUse` tag found', doc)); 7 | log.warn('PLEASE FIX by renaming to `@usageNotes.'); 8 | return value; 9 | } 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/angular-api-package/tag-defs/stable.js: -------------------------------------------------------------------------------- 1 | module.exports = function(log, createDocMessage) { 2 | return { 3 | name: 'stable', 4 | deprecated: true, 5 | transforms(doc, tag, value) { 6 | log.warn(createDocMessage('Deprecated `@stable` tag found', doc)); 7 | log.warn('PLEASE REMOVE - its value is now computed.'); 8 | return value; 9 | } 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/examples-package/services/region-matchers/inline-c.js: -------------------------------------------------------------------------------- 1 | // This comment type is used in C like languages such as JS, TS, Dart, etc 2 | module.exports = { 3 | regionStartMatcher: /^\s*\/\/\s*#docregion\s*(.*)\s*$/, 4 | regionEndMatcher: /^\s*\/\/\s*#enddocregion\s*(.*)\s*$/, 5 | plasterMatcher: /^\s*\/\/\s*#docplaster\s*(.*)\s*$/, 6 | createPlasterComment: plaster => `/* ${plaster} */` 7 | }; 8 | -------------------------------------------------------------------------------- /projects/www/src/app/app.config.server.ts: -------------------------------------------------------------------------------- 1 | import { mergeApplicationConfig, ApplicationConfig } from '@angular/core'; 2 | import { provideServerRendering } from '@angular/platform-server'; 3 | 4 | import { appConfig } from './app.config'; 5 | 6 | const serverConfig: ApplicationConfig = { 7 | providers: [provideServerRendering()], 8 | }; 9 | 10 | export const config = mergeApplicationConfig(appConfig, serverConfig); 11 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/containers/__snapshots__/view-book-page.component.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`View Book Page should compile 1`] = ` 4 | 7 | 8 | 9 | 10 | 11 | 12 | `; 13 | -------------------------------------------------------------------------------- /projects/example-app/src/app/shared/pipes/index.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | 3 | import { AddCommasPipe } from '@example-app/shared/pipes/add-commas.pipe'; 4 | import { EllipsisPipe } from '@example-app/shared/pipes/ellipsis.pipe'; 5 | 6 | export const PIPES = [AddCommasPipe, EllipsisPipe]; 7 | 8 | @NgModule({ 9 | declarations: PIPES, 10 | exports: PIPES, 11 | }) 12 | export class PipesModule {} 13 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | NgRx Tutorial 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/examples/shared/boilerplate/cli/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../out-tsc/e2e", 6 | "module": "commonjs", 7 | "target": "es2018", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /projects/ngrx.io/tools/transforms/examples-package/services/region-matchers/inline-hash.js: -------------------------------------------------------------------------------- 1 | // These type of comments are used in hash comment based languages such as bash and Yaml 2 | module.exports = { 3 | regionStartMatcher: /^\s*#\s*#docregion\s*(.*)\s*$/, 4 | regionEndMatcher: /^\s*#\s*#enddocregion\s*(.*)\s*$/, 5 | plasterMatcher: /^\s*#\s*#docplaster\s*(.*)\s*$/, 6 | createPlasterComment: plaster => `# ${plaster}` 7 | }; 8 | -------------------------------------------------------------------------------- /projects/ngrx.io/content/examples/store/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | 3 | describe('workspace-project App', () => { 4 | let page: AppPage; 5 | 6 | beforeEach(() => { 7 | page = new AppPage(); 8 | }); 9 | 10 | it('should display welcome message', () => { 11 | page.navigateTo(); 12 | expect(page.getParagraphText()).toEqual('Welcome to store-tutorial!'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/app/layout/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | import { NavigationNode, VersionInfo } from 'app/navigation/navigation.service'; 4 | 5 | @Component({ 6 | selector: 'aio-footer', 7 | templateUrl: 'footer.component.html' 8 | }) 9 | export class FooterComponent { 10 | @Input() nodes: NavigationNode[]; 11 | @Input() versionInfo: VersionInfo; 12 | } 13 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/2-modules/enterprise-support/_enterprise-support.scss: -------------------------------------------------------------------------------- 1 | .team-grid { 2 | display: grid; 3 | grid-template-columns: 1fr 3fr; 4 | column-gap: 10px; 5 | row-gap: 20px; 6 | 7 | ngrx-contributor { 8 | justify-self: center; 9 | align-self: start; 10 | } 11 | 12 | @media only screen and (max-width: 600px) { 13 | grid-template-columns: 1fr; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /modules/eslint-plugin/src/configs/effects.json: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "@typescript-eslint/parser", 3 | "plugins": ["@ngrx"], 4 | "rules": { 5 | "@ngrx/no-dispatch-in-effects": "error", 6 | "@ngrx/no-effects-in-providers": "error", 7 | "@ngrx/prefer-action-creator-in-of-type": "error", 8 | "@ngrx/prefer-effect-callback-in-block-statement": "error", 9 | "@ngrx/use-effects-lifecycle-interface": "error" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /projects/ngrx.io/src/styles/1-layouts/not-found/_not-found-theme.scss: -------------------------------------------------------------------------------- 1 | @use '../../constants'; 2 | @use '@angular/material' as mat; 3 | 4 | @mixin theme($theme) { 5 | $is-dark-theme: map-get($theme, is-dark); 6 | 7 | .nf-response { 8 | h1 { 9 | color: if($is-dark-theme, constants.$lightpurple, constants.$purple); 10 | } 11 | } 12 | 13 | .nf-icon.material-icons { 14 | color: constants.$purple; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /projects/www/firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "functions": { 3 | "source": "../../dist/projects/www/analog/server" 4 | }, 5 | "hosting": [ 6 | { 7 | "site": "", 8 | "public": "../../dist/projects/www/analog/public", 9 | "cleanUrls": true, 10 | "rewrites": [ 11 | { 12 | "source": "**", 13 | "function": "server" 14 | } 15 | ] 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /modules/eslint-plugin/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "es2022", 6 | "types": ["node", "vitest", "vitest/globals"], 7 | "target": "es2016", 8 | "esModuleInterop": true, 9 | "resolveJsonModule": true 10 | }, 11 | "files": ["test-setup.ts"], 12 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /modules/schematics/src/selector/files/__name@dasherize@if-flat__/__name@dasherize__.selectors.ts.template: -------------------------------------------------------------------------------- 1 | import { createFeatureSelector, createSelector } from '@ngrx/store'; 2 | <% if(feature) { %>import * as from<%= classify(name) %> from '<%= reducerPath %>'; 3 | 4 | export const select<%= classify(name) %>State = createFeatureSelector.State>( 5 | from<%= classify(name) %>.<%= camelize(name) %>FeatureKey 6 | );<% } %> 7 | -------------------------------------------------------------------------------- /projects/example-app/src/app/auth/actions/auth-api.actions.ts: -------------------------------------------------------------------------------- 1 | import { props, createActionGroup, emptyProps } from '@ngrx/store'; 2 | import { User } from '@example-app/auth/models'; 3 | 4 | export const AuthApiActions = createActionGroup({ 5 | source: 'Auth/API', 6 | events: { 7 | 'Login Success': props<{ user: User }>(), 8 | 'Login Failure': props<{ error: any }>(), 9 | 'Login Redirect': emptyProps(), 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /projects/example-app/src/app/books/containers/__snapshots__/selected-book-page.component.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Selected Book Page should compile 1`] = ` 4 | 9 | 10 | 11 | 12 | `; 13 | --------------------------------------------------------------------------------