├── .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 |
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 |
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 | - {{ 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 | - {{ car.make }} | {{ car.model }} | {{ car.year }}
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 |
--------------------------------------------------------------------------------