diff --git a/modules/data/spec/selectors/entity-selectors$.spec.ts b/modules/data/spec/selectors/entity-selectors$.spec.ts index a64c13487c..32a0744675 100644 --- a/modules/data/spec/selectors/entity-selectors$.spec.ts +++ b/modules/data/spec/selectors/entity-selectors$.spec.ts @@ -102,7 +102,7 @@ describe('EntitySelectors$', () => { // listen for changes to the hero collection store - .select(ENTITY_CACHE_NAME as any, 'Hero') + .select((state: any) => state[ENTITY_CACHE_NAME]['Hero']) .subscribe((c: HeroCollection) => (collection = c)); }); diff --git a/modules/eslint-plugin/spec/rules/store/prefix-selectors-with-select.spec.ts b/modules/eslint-plugin/spec/rules/store/prefix-selectors-with-select.spec.ts index d7f3257770..c4810799cd 100644 --- a/modules/eslint-plugin/spec/rules/store/prefix-selectors-with-select.spec.ts +++ b/modules/eslint-plugin/spec/rules/store/prefix-selectors-with-select.spec.ts @@ -15,7 +15,7 @@ type Options = ESLintUtils.InferOptionsTypeFromRule; const valid: () => (string | ValidTestCase)[] = () => [ `export const selectFeature: MemoizedSelector = (state: AppState) => state.feature`, - `export const selectFeature: MemoizedSelectorWithProps = ({ feature }) => feature`, + `export const selectFeature: Selector = ({ feature }) => feature`, `export const selectFeature = createSelector((state: AppState) => state.feature)`, `export const selectFeature = createFeatureSelector(featureKey)`, `export const selectFeature = createFeatureSelector(featureKey)`, diff --git a/modules/eslint-plugin/src/rules/store/prefix-selectors-with-select.ts b/modules/eslint-plugin/src/rules/store/prefix-selectors-with-select.ts index db305f2328..b9ead06a3b 100644 --- a/modules/eslint-plugin/src/rules/store/prefix-selectors-with-select.ts +++ b/modules/eslint-plugin/src/rules/store/prefix-selectors-with-select.ts @@ -159,12 +159,7 @@ export default createRule({ const hasSelectorType = typeName !== null && - [ - 'MemoizedSelector', - 'MemoizedSelectorWithProps', - 'Selector', - 'SelectorWithProps', - ].includes(typeName); + ['MemoizedSelector', 'Selector'].includes(typeName); const isSelectorCall = init?.type === 'CallExpression' && isSelectorFactoryCall(init); diff --git a/modules/router-store/spec/router_store_module.spec.ts b/modules/router-store/spec/router_store_module.spec.ts index b473b1feca..58ac958a03 100644 --- a/modules/router-store/spec/router_store_module.spec.ts +++ b/modules/router-store/spec/router_store_module.spec.ts @@ -51,7 +51,10 @@ describe('Router Store Module', () => { new Promise((done) => { let logs: any[] = []; store - .pipe(select(customStateKey), withLatestFrom(store)) + .pipe( + select((state: State) => state[customStateKey]), + withLatestFrom(store) + ) .subscribe(([routerStoreState, storeState]) => { logs.push([routerStoreState, storeState]); }); diff --git a/modules/router-store/src/store_router_connecting.service.ts b/modules/router-store/src/store_router_connecting.service.ts index 8c4bd45ed7..fbc20da706 100644 --- a/modules/router-store/src/store_router_connecting.service.ts +++ b/modules/router-store/src/store_router_connecting.service.ts @@ -94,8 +94,13 @@ export class StoreRouterConnectingService { } private setUpStoreStateListener(): void { + const selector: (state: any) => RouterReducerState = + typeof this.stateKey === 'string' + ? (state) => state[this.stateKey as string] + : this.stateKey; + this.store - .pipe(select(this.stateKey as any), withLatestFrom(this.store)) + .pipe(select(selector), withLatestFrom(this.store)) .subscribe(([routerStoreState, storeState]) => { this.navigateIfNeeded(routerStoreState, storeState); }); diff --git a/modules/store/migrations/21_0_0/index.spec.ts b/modules/store/migrations/21_0_0/index.spec.ts new file mode 100644 index 0000000000..8b26d2e54b --- /dev/null +++ b/modules/store/migrations/21_0_0/index.spec.ts @@ -0,0 +1,296 @@ +import { + SchematicTestRunner, + UnitTestTree, +} from '@angular-devkit/schematics/testing'; +import { createWorkspace } from '@ngrx/schematics-core/testing'; +import * as path from 'path'; +import { tags } from '@angular-devkit/core'; +import { logging } from '@angular-devkit/core'; + +describe('Store Migration to 21.0.0', () => { + const collectionPath = path.join( + process.cwd(), + 'dist/modules/store/migrations/migration.json' + ); + const schematicRunner = new SchematicTestRunner('schematics', collectionPath); + + let appTree: UnitTestTree; + + beforeEach(async () => { + appTree = await createWorkspace(schematicRunner, appTree); + }); + + const verifySchematic = async (input: string, output: string) => { + appTree.create('main.ts', input); + + const logs: logging.LogEntry[] = []; + schematicRunner.logger.subscribe((e) => logs.push(e)); + + const tree = await schematicRunner.runSchematic( + 'ngrx-store-migration-21', + {}, + appTree + ); + + const actual = tree.readContent('main.ts'); + expect(actual).toBe(output); + + return logs; + }; + + describe('removing SelectorWithProps and MemoizedSelectorWithProps imports', () => { + it('should remove SelectorWithProps from import', async () => { + const input = tags.stripIndent` +import { createSelector, SelectorWithProps } from '@ngrx/store'; + +const selector = createSelector( + (state: AppState) => state.items, + (items) => items.length +); + `; + const output = tags.stripIndent` +import { createSelector } from '@ngrx/store'; + +const selector = createSelector( + (state: AppState) => state.items, + (items) => items.length +); + `; + + await verifySchematic(input, output); + }); + + it('should remove MemoizedSelectorWithProps from import', async () => { + const input = tags.stripIndent` +import { Store, MemoizedSelectorWithProps } from '@ngrx/store'; + +class MyComponent { + constructor(private store: Store) {} +} + `; + const output = tags.stripIndent` +import { Store } from '@ngrx/store'; + +class MyComponent { + constructor(private store: Store) {} +} + `; + + await verifySchematic(input, output); + }); + + it('should remove both SelectorWithProps and MemoizedSelectorWithProps from import', async () => { + const input = tags.stripIndent` +import { createSelector, SelectorWithProps, MemoizedSelectorWithProps } from '@ngrx/store'; + +const selector = createSelector( + (state: AppState) => state.items, + (items) => items.length +); + `; + const output = tags.stripIndent` +import { createSelector } from '@ngrx/store'; + +const selector = createSelector( + (state: AppState) => state.items, + (items) => items.length +); + `; + + await verifySchematic(input, output); + }); + + it('should remove entire import if only removed types are imported', async () => { + const input = tags.stripIndent` +import { SelectorWithProps } from '@ngrx/store'; +import { Component } from '@angular/core'; + `; + const output = tags.stripIndent` +import { Component } from '@angular/core'; + `; + + await verifySchematic(input, output); + }); + + it('should not modify files without removed types', async () => { + const input = tags.stripIndent` +import { createSelector, Store } from '@ngrx/store'; + +const selector = createSelector( + (state: AppState) => state.items, + (items) => items.length +); + `; + + await verifySchematic(input, input); + }); + + it('should handle double-quote imports', async () => { + const input = tags.stripIndent` +import { createSelector, SelectorWithProps } from "@ngrx/store"; + +const selector = createSelector( + (state: AppState) => state.items, + (items) => items.length +); + `; + const output = tags.stripIndent` +import { createSelector } from "@ngrx/store"; + +const selector = createSelector( + (state: AppState) => state.items, + (items) => items.length +); + `; + + await verifySchematic(input, output); + }); + }); + + describe('migrating string-key select calls', () => { + it('should migrate store.select with a string key', async () => { + const input = tags.stripIndent` +import { Store } from '@ngrx/store'; + +class MyComponent { + data$ = this.store.select('featureName'); + constructor(private store: Store) {} +} + `; + const output = tags.stripIndent` +import { Store } from '@ngrx/store'; + +class MyComponent { + data$ = this.store.select((state: any) => state['featureName']); + constructor(private store: Store) {} +} + `; + + await verifySchematic(input, output); + }); + + it('should migrate select operator with a string key', async () => { + const input = tags.stripIndent` +import { Store, select } from '@ngrx/store'; + +class MyComponent { + data$ = this.store.pipe(select('featureName')); + constructor(private store: Store) {} +} + `; + const output = tags.stripIndent` +import { Store, select } from '@ngrx/store'; + +class MyComponent { + data$ = this.store.pipe(select((state: any) => state['featureName'])); + constructor(private store: Store) {} +} + `; + + await verifySchematic(input, output); + }); + + it('should migrate nested string-key select', async () => { + const input = tags.stripIndent` +import { Store, select } from '@ngrx/store'; + +class MyComponent { + data$ = this.store.pipe(select('feature', 'nested', 'prop')); + constructor(private store: Store) {} +} + `; + const output = tags.stripIndent` +import { Store, select } from '@ngrx/store'; + +class MyComponent { + data$ = this.store.pipe(select((state: any) => state['feature']['nested']['prop'])); + constructor(private store: Store) {} +} + `; + + await verifySchematic(input, output); + }); + + it('should not modify select calls with function selectors', async () => { + const input = tags.stripIndent` +import { Store, select } from '@ngrx/store'; + +const selectItems = (state: AppState) => state.items; + +class MyComponent { + data$ = this.store.pipe(select(selectItems)); + constructor(private store: Store) {} +} + `; + + await verifySchematic(input, input); + }); + }); + + describe('warning about select with props', () => { + it('should add TODO comment and warn about select(selector, props) calls', async () => { + const input = tags.stripIndent` +import { Store, select } from '@ngrx/store'; + +class MyComponent { + data$ = this.store.pipe(select(mySelector, { id: 1 })); + constructor(private store: Store) {} +} + `; + const output = tags.stripIndent` +import { Store, select } from '@ngrx/store'; + +class MyComponent { + // TODO: @ngrx/store v21 migration - convert to a factory selector. See https://ngrx.io/guide/migration/v21 + data$ = this.store.pipe(select(mySelector, { id: 1 })); + constructor(private store: Store) {} +} + `; + + const logs = await verifySchematic(input, output); + const warnings = logs.filter((l) => l.level === 'warn'); + expect(warnings.length).toBe(1); + expect(warnings[0].message).toContain('requires manual migration'); + }); + + it('should add TODO comment and warn about store.select(selector, props) calls', async () => { + const input = tags.stripIndent` +import { Store } from '@ngrx/store'; + +class MyComponent { + data$ = this.store.select(mySelector, { id: 1 }); + constructor(private store: Store) {} +} + `; + const output = tags.stripIndent` +import { Store } from '@ngrx/store'; + +class MyComponent { + // TODO: @ngrx/store v21 migration - convert to a factory selector. See https://ngrx.io/guide/migration/v21 + data$ = this.store.select(mySelector, { id: 1 }); + constructor(private store: Store) {} +} + `; + + const logs = await verifySchematic(input, output); + const warnings = logs.filter((l) => l.level === 'warn'); + expect(warnings.length).toBe(1); + expect(warnings[0].message).toContain('requires manual migration'); + }); + }); + + describe('files without @ngrx/store import', () => { + it('should not modify files without @ngrx/store import', async () => { + const input = tags.stripIndent` +import { Component } from '@angular/core'; + +class MyComponent { + select(key: string) { return key; } + data = this.select('featureName'); +} + `; + + await verifySchematic(input, input); + }); + }); +}); diff --git a/modules/store/migrations/21_0_0/index.ts b/modules/store/migrations/21_0_0/index.ts new file mode 100644 index 0000000000..e5d145d29e --- /dev/null +++ b/modules/store/migrations/21_0_0/index.ts @@ -0,0 +1,245 @@ +import * as ts from 'typescript'; +import { + Rule, + SchematicContext, + Tree, + chain, +} from '@angular-devkit/schematics'; +import { + Change, + InsertChange, + commitChanges, + createReplaceChange, + visitTSSourceFiles, +} from '../../schematics-core'; +import { createRemoveChange } from '../../schematics-core/utility/change'; + +const removedTypes = ['SelectorWithProps', 'MemoizedSelectorWithProps']; + +/** + * Remove `SelectorWithProps` and `MemoizedSelectorWithProps` from + * `@ngrx/store` imports. + */ +export function migrateRemoveSelectorWithPropsImports(): Rule { + return (tree: Tree, ctx: SchematicContext) => { + visitTSSourceFiles(tree, (sourceFile) => { + const changes: Change[] = []; + + const importDeclarations = sourceFile.statements.filter( + ts.isImportDeclaration + ); + + for (const importDecl of importDeclarations) { + const moduleSpecifier = importDecl.moduleSpecifier; + if ( + !ts.isStringLiteral(moduleSpecifier) || + moduleSpecifier.text !== '@ngrx/store' + ) { + continue; + } + + const namedBindings = importDecl.importClause?.namedBindings; + if (!namedBindings || !ts.isNamedImports(namedBindings)) { + continue; + } + + const removedElements = namedBindings.elements.filter((el) => + removedTypes.includes( + (el.propertyName ?? el.name).getText(sourceFile) + ) + ); + + if (removedElements.length === 0) { + continue; + } + + const remainingElements = namedBindings.elements.filter( + (el) => + !removedTypes.includes( + (el.propertyName ?? el.name).getText(sourceFile) + ) + ); + + if (remainingElements.length === 0) { + changes.push( + createRemoveChange( + sourceFile, + importDecl, + importDecl.getStart(sourceFile), + importDecl.getEnd() + 1 + ) + ); + } else { + const remainingImports = remainingElements + .map((el) => el.getText(sourceFile)) + .join(', '); + const quote = importDecl.moduleSpecifier + .getText(sourceFile) + .charAt(0); + const newImport = `import { ${remainingImports} } from ${quote}@ngrx/store${quote};`; + changes.push( + createReplaceChange( + sourceFile, + importDecl, + importDecl.getText(sourceFile), + newImport + ) + ); + } + + const removedNames = removedElements.map((el) => + (el.propertyName ?? el.name).getText(sourceFile) + ); + ctx.logger.info( + `[@ngrx/store] ${sourceFile.fileName}: Removed ${removedNames.join(', ')} import(s)` + ); + } + + if (changes.length) { + commitChanges(tree, sourceFile.fileName, changes); + } + }); + }; +} + +/** + * Convert string-key `select('key')` calls to + * `select((state: any) => state['key'])` and warn about + * `select(selector, props)` calls that require manual migration. + */ +export function migrateSelectCalls(): Rule { + return (tree: Tree, ctx: SchematicContext) => { + visitTSSourceFiles(tree, (sourceFile) => { + // Only process files that import from @ngrx/store + const hasStoreImport = sourceFile.statements.some( + (stmt) => + ts.isImportDeclaration(stmt) && + ts.isStringLiteral(stmt.moduleSpecifier) && + stmt.moduleSpecifier.text === '@ngrx/store' + ); + if (!hasStoreImport) { + return; + } + + const changes: Change[] = []; + visitCallExpressions(sourceFile, (node) => { + if (!ts.isCallExpression(node)) { + return; + } + + const name = getSelectCallName(node); + if (!name) { + return; + } + + const args = node.arguments; + if (args.length === 0) { + return; + } + + const firstArg = args[0]; + + // Case 1: select('stringKey') or store.select('stringKey') + if (ts.isStringLiteral(firstArg) && args.length === 1) { + const key = firstArg.text; + const replacement = `(state: any) => state['${key}']`; + changes.push( + createReplaceChange( + sourceFile, + firstArg, + firstArg.getText(sourceFile), + replacement + ) + ); + ctx.logger.info( + `[@ngrx/store] ${sourceFile.fileName}: Migrated string-key ${name}('${key}') to use a selector function` + ); + return; + } + + // Case 2: select('key1', 'key2', ...) — nested string keys + if ( + ts.isStringLiteral(firstArg) && + args.length > 1 && + args.every((a) => ts.isStringLiteral(a)) + ) { + const keys = args.map((a) => (a as ts.StringLiteral).text); + const chain = keys.map((k) => `['${k}']`).join(''); + const replacement = `(state: any) => state${chain}`; + // Replace from first arg to last arg + const fullText = args.map((a) => a.getText(sourceFile)).join(', '); + changes.push( + createReplaceChange(sourceFile, firstArg, fullText, replacement) + ); + ctx.logger.info( + `[@ngrx/store] ${sourceFile.fileName}: Migrated nested string-key ${name}(${keys.map((k) => `'${k}'`).join(', ')}) to use a selector function` + ); + return; + } + + // Case 3: select(selectorFn, propsArg) — selector with props + // This cannot be safely auto-migrated. Warn the user and add an + // inline TODO comment above the call site. + if (args.length >= 2 && !ts.isStringLiteral(firstArg)) { + const nodeStart = node.getStart(sourceFile); + const { line } = sourceFile.getLineAndCharacterOfPosition(nodeStart); + const lineStart = sourceFile.getLineStarts()[line]; + const lineText = sourceFile.text.substring(lineStart, nodeStart); + const indent = lineText.match(/^\s*/)?.[0] ?? ''; + + const todoComment = + `${indent}// TODO: @ngrx/store v21 migration - convert to a factory selector.` + + ` See https://ngrx.io/guide/migration/v21\n`; + + changes.push( + new InsertChange(sourceFile.fileName, lineStart, todoComment) + ); + + ctx.logger.warn( + `[@ngrx/store] ${sourceFile.fileName}:${line + 1}: ` + + `Found ${name}(selector, props) call that requires manual migration. ` + + `Convert to a factory selector pattern. See https://ngrx.io/guide/migration/v21` + ); + } + }); + + if (changes.length) { + commitChanges(tree, sourceFile.fileName, changes); + } + }); + }; +} + +function getSelectCallName(node: ts.CallExpression): string | null { + const expr = node.expression; + + // select(...) + if (ts.isIdentifier(expr) && expr.text === 'select') { + return 'select'; + } + + // something.select(...) + if ( + ts.isPropertyAccessExpression(expr) && + ts.isIdentifier(expr.name) && + expr.name.text === 'select' + ) { + return 'select'; + } + + return null; +} + +function visitCallExpressions( + node: ts.Node, + visitor: (node: ts.Node) => void +): void { + if (ts.isCallExpression(node)) { + visitor(node); + } + ts.forEachChild(node, (child) => visitCallExpressions(child, visitor)); +} + +export default function (): Rule { + return chain([migrateRemoveSelectorWithPropsImports(), migrateSelectCalls()]); +} diff --git a/modules/store/migrations/migration.json b/modules/store/migrations/migration.json index 72657cf8ae..491217f7a7 100644 --- a/modules/store/migrations/migration.json +++ b/modules/store/migrations/migration.json @@ -40,6 +40,11 @@ "description": "As of NgRx v18, the `TypedAction` has been removed in favor of `Action`.", "version": "18-beta", "factory": "./18_0_0-beta/index" + }, + "ngrx-store-migration-21": { + "description": "As of NgRx v21, `SelectorWithProps` and `MemoizedSelectorWithProps` have been removed. Use factory selectors instead.", + "version": "21", + "factory": "./21_0_0/index" } } } diff --git a/modules/store/spec/edge.spec.ts b/modules/store/spec/edge.spec.ts index 1dd987f15f..35135f5617 100644 --- a/modules/store/spec/edge.spec.ts +++ b/modules/store/spec/edge.spec.ts @@ -34,14 +34,16 @@ describe('ngRx Store', () => { let todosNextCount = 0; let todosCountNextCount = 0; - store.pipe(select('todos')).subscribe((todos) => { + store.pipe(select((state: any) => state.todos)).subscribe((todos) => { todosNextCount++; store.dispatch({ type: 'SET_COUNT', payload: todos.length }); }); - store.pipe(select('todoCount')).subscribe((count) => { - todosCountNextCount++; - }); + store + .pipe(select((state: any) => state.todoCount)) + .subscribe((count) => { + todosCountNextCount++; + }); store.dispatch({ type: 'ADD_TODO', payload: { name: 'test' } }); expect(todosNextCount).toBe(2); diff --git a/modules/store/spec/feature_creator.spec.ts b/modules/store/spec/feature_creator.spec.ts index 2d837a660f..c1c6c4a1d2 100644 --- a/modules/store/spec/feature_creator.spec.ts +++ b/modules/store/spec/feature_creator.spec.ts @@ -225,7 +225,7 @@ describe('createFeature()', () => { }); TestBed.inject(Store) - .select(fooFeature.name) + .select((state: any) => state[fooFeature.name]) .pipe(take(1)) .subscribe((fooState) => { expect(fooState).toEqual(initialFooState); diff --git a/modules/store/spec/integration.spec.ts b/modules/store/spec/integration.spec.ts index 80d168114c..a6e0705bf2 100644 --- a/modules/store/spec/integration.spec.ts +++ b/modules/store/spec/integration.spec.ts @@ -147,7 +147,10 @@ describe('ngRx Integration spec', () => { let currentlyVisibleTodos: Todo[] = []; - combineLatest([store.select('visibilityFilter'), store.select('todos')]) + combineLatest([ + store.select((state: any) => state.visibilityFilter), + store.select((state: any) => state.todos), + ]) .pipe(map(([filter, todos]) => filterVisibleTodos(filter, todos))) .subscribe((visibleTodos) => { currentlyVisibleTodos = visibleTodos; @@ -184,71 +187,6 @@ describe('ngRx Integration spec', () => { expect(currentlyVisibleTodos.length).toBe(0); }); - - it('should use props to get a todo', () => - new Promise((done) => { - const getTodosById = createSelector( - (state: TodoAppSchema) => state.todos, - (todos: Todo[], id: number) => { - return todos.find((p) => p.id === id); - } - ); - - const todo$ = store.select(getTodosById, 2); - todo$.pipe(take(3), toArray()).subscribe((res) => { - expect(res).toEqual([ - undefined, - { - id: 2, - text: 'second todo', - completed: false, - }, - { - id: 2, - text: 'second todo', - completed: true, - }, - ]); - done(); - }); - - store.dispatch({ type: ADD_TODO, payload: { text: 'first todo' } }); - store.dispatch({ type: ADD_TODO, payload: { text: 'second todo' } }); - store.dispatch({ - type: COMPLETE_TODO, - payload: { id: 2 }, - }); - })); - - it('should use the selector and props to get a todo', () => - new Promise((done) => { - const getTodosState = createFeatureSelector( - 'todos' - ); - const getTodos = createSelector(getTodosState, (todos) => todos); - const getTodosById = createSelector( - getTodos, - (state: TodoAppSchema, id: number) => id, - (todos, id) => todos.find((todo) => todo.id === id) - ); - - const todo$ = store.select(getTodosById, 2); - todo$.pipe(take(3), toArray()).subscribe((res) => { - expect(res).toEqual([ - undefined, - { id: 2, text: 'second todo', completed: false }, - { id: 2, text: 'second todo', completed: true }, - ]); - done(); - }); - - store.dispatch({ type: ADD_TODO, payload: { text: 'first todo' } }); - store.dispatch({ type: ADD_TODO, payload: { text: 'second todo' } }); - store.dispatch({ - type: COMPLETE_TODO, - payload: { id: 2 }, - }); - })); }); describe('using the select operator', () => { @@ -278,8 +216,8 @@ describe('ngRx Integration spec', () => { let currentlyVisibleTodos: Todo[] = []; combineLatest([ - store.pipe(select('visibilityFilter')), - store.pipe(select('todos')), + store.pipe(select((state: any) => state.visibilityFilter)), + store.pipe(select((state: any) => state.todos)), ]) .pipe(map(([filter, todos]) => filterVisibleTodos(filter, todos))) .subscribe((visibleTodos) => { @@ -317,74 +255,6 @@ describe('ngRx Integration spec', () => { expect(currentlyVisibleTodos.length).toBe(0); }); - - it('should use the selector and props to get a todo', () => - new Promise((done) => { - const getTodosState = createFeatureSelector( - 'todos' - ); - const getTodos = createSelector(getTodosState, (todos) => todos); - const getTodosById = createSelector( - getTodos, - (state: TodoAppSchema, id: number) => id, - (todos, id) => todos.find((todo) => todo.id === id) - ); - - const todo$ = store.pipe(select(getTodosById, 2)); - todo$.pipe(take(3), toArray()).subscribe((res) => { - expect(res).toEqual([ - undefined, - { id: 2, text: 'second todo', completed: false }, - { id: 2, text: 'second todo', completed: true }, - ]); - done(); - }); - - store.dispatch({ type: ADD_TODO, payload: { text: 'first todo' } }); - store.dispatch({ type: ADD_TODO, payload: { text: 'second todo' } }); - store.dispatch({ - type: COMPLETE_TODO, - payload: { id: 2 }, - }); - })); - - it('should use the props in the projector to get a todo', () => - new Promise((done) => { - const getTodosState = createFeatureSelector( - 'todos' - ); - - const getTodosById = createSelector( - getTodosState, - (todos: Todo[], { id }: { id: number }) => - todos.find((todo) => todo.id === id) - ); - - const todo$ = store.pipe(select(getTodosById, { id: 2 })); - todo$.pipe(take(3), toArray()).subscribe((res) => { - expect(res).toEqual([ - undefined, - { - id: 2, - text: 'second todo', - completed: false, - }, - { - id: 2, - text: 'second todo', - completed: true, - }, - ]); - done(); - }); - - store.dispatch({ type: ADD_TODO, payload: { text: 'first todo' } }); - store.dispatch({ type: ADD_TODO, payload: { text: 'second todo' } }); - store.dispatch({ - type: COMPLETE_TODO, - payload: { id: 2 }, - }); - })); }); }); diff --git a/modules/store/spec/selector.spec.ts b/modules/store/spec/selector.spec.ts index b13c5027b1..8dd258c6d1 100644 --- a/modules/store/spec/selector.spec.ts +++ b/modules/store/spec/selector.spec.ts @@ -199,108 +199,6 @@ describe('Selectors', () => { }); }); - describe('createSelector with props', () => { - it('should deliver the value of selectors to the projection function', () => { - const projectFn = vi.fn(); - - const selector = createSelector( - incrementOne, - incrementTwo, - (state: any, props: any) => props.value, - projectFn - ); - - selector({}, { value: 47 }); - expect(projectFn).toHaveBeenCalledWith(countOne, countTwo, 47, { - value: 47, - }); - }); - - it('should be possible to test a projector fn independent from the selectors it is composed of', () => { - const projectFn = vi.fn(); - const selector = createSelector( - incrementOne, - incrementTwo, - (state: any, props: any) => { - fail(`Shouldn't be called`); - return props.value; - }, - projectFn - ); - selector.projector('', '', 47, 'prop'); - - expect(incrementOne).not.toHaveBeenCalled(); - expect(incrementTwo).not.toHaveBeenCalled(); - expect(projectFn).toHaveBeenCalledWith('', '', 47, 'prop'); - }); - - it('should call the projector function when the state changes', () => { - const projectFn = vi.fn(); - const selector = createSelector( - incrementOne, - (state: any, props: any) => props.value, - projectFn - ); - - const firstSate = { first: 'state' }; - const props = { foo: 'props' }; - selector(firstSate, props); - selector(firstSate, props); - expect(projectFn).toHaveBeenCalledTimes(1); - - const secondState = { second: 'state' }; - selector(secondState, props); - expect(projectFn).toHaveBeenCalledTimes(2); - }); - - it('should memoize the function', () => { - let counter = 0; - - const firstState = { first: 'state' }; - const secondState = { second: 'state' }; - const props = { foo: 'props' }; - - const projectFn = vi.fn(); - const selector = createSelector( - incrementOne, - incrementTwo, - (state: any, props: any) => { - counter++; - return props; - }, - projectFn - ); - - selector(firstState, props); - selector(firstState, props); - selector(firstState, props); - selector(secondState, props); - selector(secondState, props); - - expect(counter).toBe(2); - expect(projectFn).toHaveBeenCalledTimes(2); - }); - - it('should allow you to release memoized arguments', () => { - const state = { first: 'state' }; - const props = { foo: 'props' }; - const projectFn = vi.fn(); - const selector = createSelector( - incrementOne, - (state: any, props: any) => props, - projectFn - ); - - selector(state, props); - selector(state, props); - selector.release(); - selector(state, props); - selector(state, props); - - expect(projectFn).toHaveBeenCalledTimes(2); - }); - }); - describe('createSelector with arrays', () => { it('should deliver the value of selectors to the projection function', () => { const projectFn = vi.fn(); @@ -388,107 +286,6 @@ describe('Selectors', () => { }); }); - describe('createSelector with arrays and props', () => { - it('should deliver the value of selectors to the projection function', () => { - const projectFn = vi.fn(); - const selector = createSelector( - [incrementOne, incrementTwo, (state: any, props: any) => props.value], - projectFn - )({}, { value: 47 }); - - expect(projectFn).toHaveBeenCalledWith(countOne, countTwo, 47, { - value: 47, - }); - }); - - it('should be possible to test a projector fn independent from the selectors it is composed of', () => { - const projectFn = vi.fn(); - const selector = createSelector( - [ - incrementOne, - incrementTwo, - (state: any, props: any) => { - fail(`Shouldn't be called`); - return props.value; - }, - ], - projectFn - ); - - selector.projector('', '', 47, 'prop'); - - expect(incrementOne).not.toHaveBeenCalled(); - expect(incrementTwo).not.toHaveBeenCalled(); - expect(projectFn).toHaveBeenCalledWith('', '', 47, 'prop'); - }); - - it('should call the projector function when the state changes', () => { - const projectFn = vi.fn(); - const selector = createSelector( - [incrementOne, (state: any, props: any) => props.value], - projectFn - ); - - const firstSate = { first: 'state' }; - const props = { foo: 'props' }; - selector(firstSate, props); - selector(firstSate, props); - expect(projectFn).toHaveBeenCalledTimes(1); - - const secondState = { second: 'state' }; - selector(secondState, props); - expect(projectFn).toHaveBeenCalledTimes(2); - }); - - it('should memoize the function', () => { - let counter = 0; - - const firstState = { first: 'state' }; - const secondState = { second: 'state' }; - const props = { foo: 'props' }; - - const projectFn = vi.fn(); - const selector = createSelector( - [ - incrementOne, - incrementTwo, - (state: any, props: any) => { - counter++; - return props; - }, - ], - projectFn - ); - - selector(firstState, props); - selector(firstState, props); - selector(firstState, props); - selector(secondState, props); - selector(secondState, props); - - expect(counter).toBe(2); - expect(projectFn).toHaveBeenCalledTimes(2); - }); - - it('should allow you to release memoized arguments', () => { - const state = { first: 'state' }; - const props = { foo: 'props' }; - const projectFn = vi.fn(); - const selector = createSelector( - [incrementOne, (state: any, props: any) => props], - projectFn - ); - - selector(state, props); - selector(state, props); - selector.release(); - selector(state, props); - selector(state, props); - - expect(projectFn).toHaveBeenCalledTimes(2); - }); - }); - describe('createFeatureSelector', () => { const featureName = 'featureA'; let featureSelector: (state: any) => number; diff --git a/modules/store/spec/store.spec.ts b/modules/store/spec/store.spec.ts index 4adab5e082..356f57e478 100644 --- a/modules/store/spec/store.spec.ts +++ b/modules/store/spec/store.spec.ts @@ -164,8 +164,8 @@ describe('ngRx Store', () => { counterSteps.subscribe((action) => store.dispatch(action)); const counterStateWithString = feature - ? (store as any).select(feature, 'counter1') - : store.select('counter1'); + ? store.select((state: any) => state[feature].counter1) + : store.select((state: any) => state.counter1); const counter1Values = { i: 1, w: 2, x: 0, y: 1, z: 2 }; @@ -203,12 +203,12 @@ describe('ngRx Store', () => { e: { type: INCREMENT }, }; - it('should let you select state with a key name', () => { + it('should let you select state with a selector function via pipe', () => { const counterSteps = hot(actionSequence, actionValues); counterSteps.subscribe((action) => store.dispatch(action)); - const counterStateWithString = store.pipe(select('counter1')); + const counterStateWithString = store.pipe(select((s: any) => s.counter1)); const stateSequence = 'i-v--w--x--y--z'; const counter1Values = { i: 0, v: 1, w: 2, x: 1, y: 0, z: 1 }; @@ -234,7 +234,7 @@ describe('ngRx Store', () => { }); it('should correctly lift itself', () => { - const result = store.pipe(select('counter1')); + const result = store.pipe(select((s: any) => s.counter1)); expect(result instanceof Store).toBe(true); }); @@ -244,7 +244,7 @@ describe('ngRx Store', () => { counterSteps.subscribe((action) => store.dispatch(action)); - const counterState = store.pipe(select('counter1')); + const counterState = store.pipe(select((s: any) => s.counter1)); const stateSequence = 'i-v--w--x--y--z'; const counter1Values = { i: 0, v: 1, w: 2, x: 1, y: 0, z: 1 }; @@ -257,7 +257,7 @@ describe('ngRx Store', () => { counterSteps.subscribe((action) => dispatcher.next(action)); - const counterState = store.pipe(select('counter1')); + const counterState = store.pipe(select((s: any) => s.counter1)); const stateSequence = 'i-v--w--x--y--z'; const counter1Values = { i: 0, v: 1, w: 2, x: 1, y: 0, z: 1 }; @@ -270,8 +270,8 @@ describe('ngRx Store', () => { counterSteps.subscribe((action) => store.dispatch(action)); - const counter1State = store.pipe(select('counter1')); - const counter2State = store.pipe(select('counter2')); + const counter1State = store.pipe(select((s: any) => s.counter1)); + const counter2State = store.pipe(select((s: any) => s.counter2)); const stateSequence = 'i-v--w--x--y--z'; const counter2Values = { i: 1, v: 2, w: 3, x: 2, y: 0, z: 1 }; diff --git a/modules/store/spec/store_pipes.spec.ts b/modules/store/spec/store_pipes.spec.ts index 848b6f180c..113b071e2a 100644 --- a/modules/store/spec/store_pipes.spec.ts +++ b/modules/store/spec/store_pipes.spec.ts @@ -7,7 +7,7 @@ export class TestPipe implements PipeTransform { store = inject(Store); transform(s: number) { - this.store.select('count'); + this.store.select((state: any) => state.count); return s * 2; } } diff --git a/modules/store/spec/types/select.spec.ts b/modules/store/spec/types/select.spec.ts index ab7e9013c9..191f6cf8d1 100644 --- a/modules/store/spec/types/select.spec.ts +++ b/modules/store/spec/types/select.spec.ts @@ -17,36 +17,6 @@ describe('select()', () => { ); describe('as property', () => { - describe('with strings', () => { - it('should enforce that properties exists on state (root)', () => { - expectSnippet(`const selector = store.select('mia');`).toFail( - /Argument of type '"mia"' is not assignable to parameter of type '"foo"'/ - ); - }); - - it('should enforce that properties exists on state (nested)', () => { - expectSnippet( - `const selector = store.select('foo', 'bar', 'mia');` - ).toFail( - /Argument of type '"mia"' is not assignable to parameter of type '"baz"'/ - ); - }); - - it('should infer correctly (root)', () => { - expectSnippet(`const selector = store.select('foo');`).toInfer( - 'selector', - 'Observable<{ bar: { baz: []; }; }>' - ); - }); - - it('should infer correctly (nested)', () => { - expectSnippet(`const selector = store.select('foo', 'bar');`).toInfer( - 'selector', - 'Observable<{ baz: []; }>' - ); - }); - }); - describe('with functions', () => { it('should enforce that properties exists on state (root)', () => { expectSnippet(`const selector = store.select(s => s.mia);`).toFail( @@ -91,35 +61,6 @@ describe('select()', () => { }); describe('as operator', () => { - describe('with strings', () => { - it('should enforce that properties exists on state (root)', () => { - expectSnippet(`const selector = store.pipe(select('mia'));`).toFail( - /Argument of type '"mia"' is not assignable to parameter of type '"foo"'/ - ); - }); - - it('should enforce that properties exists on state (nested)', () => { - expectSnippet( - `const selector = store.pipe(select('foo', 'bar', 'mia'));` - ).toFail( - /Argument of type '"mia"' is not assignable to parameter of type '"baz"'/ - ); - }); - - it('should infer correctly (root)', () => { - expectSnippet(`const selector = store.pipe(select('foo'));`).toInfer( - 'selector', - 'Observable<{ bar: { baz: []; }; }>' - ); - }); - - it('should infer correctly (nested)', () => { - expectSnippet( - `const selector = store.pipe(select('foo', 'bar'));` - ).toInfer('selector', 'Observable<{ baz: []; }>'); - }); - }); - describe('with functions', () => { it('should enforce that properties exists on state (root)', () => { expectSnippet( diff --git a/modules/store/spec/types/selector.spec.ts b/modules/store/spec/types/selector.spec.ts index 8ae3e24e81..d03a58460f 100644 --- a/modules/store/spec/types/selector.spec.ts +++ b/modules/store/spec/types/selector.spec.ts @@ -57,43 +57,3 @@ describe('createSelector()', () => { `).toInfer('selectDictionary', 'MemoizedSelector'); }); }); - -describe('createSelector() with props', () => { - const expectSnippet = expecter( - (code) => ` - import { createSelector } from '@ngrx/store'; - import { MemoizedSelectorWithProps, DefaultProjectorFn } from '@ngrx/store'; - - ${code} - `, - compilerOptions() - ); - - describe('projector', () => { - it('should require correct arguments by default', () => { - expectSnippet(` - const selectTest = createSelector( - () => 'one', - () => 2, - (one, two, props) => 3 - ); - selectTest.projector(); - `).toFail(/Expected 3 arguments, but got 0./); - }); - it('should not require parameters for existing explicitly loosely typed selectors', () => { - expectSnippet(` - const selectTest: MemoizedSelectorWithProps< - unknown, - number, - any, - DefaultProjectorFn - > = createSelector( - () => 'one', - () => 2, - (one, two, props) => 3 - ); - selectTest.projector(); - `).toSucceed(); - }); - }); -}, 8_000); diff --git a/modules/store/src/index.ts b/modules/store/src/index.ts index dd0ef5d2c3..c21bb1c5ee 100644 --- a/modules/store/src/index.ts +++ b/modules/store/src/index.ts @@ -10,7 +10,6 @@ export { NotAllowedCheck, ActionCreatorProps, Selector, - SelectorWithProps, RuntimeChecks, FunctionWithParametersType, } from './models'; @@ -37,7 +36,6 @@ export { MemoizeFn, MemoizedProjection, MemoizedSelector, - MemoizedSelectorWithProps, resultMemoize, DefaultProjectorFn, } from './selector'; diff --git a/modules/store/src/models.ts b/modules/store/src/models.ts index a7f75c2dd2..6044f44a17 100644 --- a/modules/store/src/models.ts +++ b/modules/store/src/models.ts @@ -46,14 +46,6 @@ export interface StoreFeature { export type Selector = (state: T) => V; -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export type SelectorWithProps = ( - state: State, - props: Props -) => Result; - export const arraysAreNotAllowedMsg = 'action creator cannot return an array'; type ArraysAreNotAllowed = typeof arraysAreNotAllowedMsg; diff --git a/modules/store/src/selector.ts b/modules/store/src/selector.ts index 911b4150d6..b85a8c6870 100644 --- a/modules/store/src/selector.ts +++ b/modules/store/src/selector.ts @@ -1,4 +1,4 @@ -import { Selector, SelectorWithProps } from './models'; +import { Selector } from './models'; import { isDevMode } from '@angular/core'; import { isNgrxMockEnvironment } from './flags'; @@ -28,21 +28,6 @@ export interface MemoizedSelector< clearResult: () => void; } -/** - * @deprecated Selectors with props are deprecated, for more info see the {@link https://ngrx.io/guide/migration/v12#ngrxstore migration guide} - */ -export interface MemoizedSelectorWithProps< - State, - Props, - Result, - ProjectorFn = DefaultProjectorFn, -> extends SelectorWithProps { - release(): void; - projector: ProjectorFn; - setResult: (result?: Result) => void; - clearResult: () => void; -} - export function isEqualCheck(a: any, b: any): boolean { return a === b; } @@ -213,331 +198,24 @@ export function createSelector( ] ): MemoizedSelector Result>; -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - s1: SelectorWithProps, - projector: (s1: S1, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - s1: SelectorWithProps, - s2: SelectorWithProps, - projector: (s1: S1, s2: S2, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - s1: SelectorWithProps, - s2: SelectorWithProps, - s3: SelectorWithProps, - projector: (s1: S1, s2: S2, s3: S3, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - s1: SelectorWithProps, - s2: SelectorWithProps, - s3: SelectorWithProps, - s4: SelectorWithProps, - projector: (s1: S1, s2: S2, s3: S3, s4: S4, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - s1: SelectorWithProps, - s2: SelectorWithProps, - s3: SelectorWithProps, - s4: SelectorWithProps, - s5: SelectorWithProps, - projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - s1: SelectorWithProps, - s2: SelectorWithProps, - s3: SelectorWithProps, - s4: SelectorWithProps, - s5: SelectorWithProps, - s6: SelectorWithProps, - projector: ( - s1: S1, - s2: S2, - s3: S3, - s4: S4, - s5: S5, - s6: S6, - props: Props - ) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector< - State, - Props, - S1, - S2, - S3, - S4, - S5, - S6, - S7, - Result, ->( - s1: SelectorWithProps, - s2: SelectorWithProps, - s3: SelectorWithProps, - s4: SelectorWithProps, - s5: SelectorWithProps, - s6: SelectorWithProps, - s7: SelectorWithProps, - projector: ( - s1: S1, - s2: S2, - s3: S3, - s4: S4, - s5: S5, - s6: S6, - s7: S7, - props: Props - ) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector< - State, - Props, - S1, - S2, - S3, - S4, - S5, - S6, - S7, - S8, - Result, ->( - s1: SelectorWithProps, - s2: SelectorWithProps, - s3: SelectorWithProps, - s4: SelectorWithProps, - s5: SelectorWithProps, - s6: SelectorWithProps, - s7: SelectorWithProps, - s8: SelectorWithProps, - projector: ( - s1: S1, - s2: S2, - s3: S3, - s4: S4, - s5: S5, - s6: S6, - s7: S7, - s8: S8, - props: Props - ) => Result -): MemoizedSelectorWithProps; - export function createSelector( selectors: Selector[] & [...{ [i in keyof Slices]: Selector }], projector: (...s: Slices) => Result ): MemoizedSelector Result>; -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - selectors: [SelectorWithProps], - projector: (s1: S1, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - selectors: [ - SelectorWithProps, - SelectorWithProps, - ], - projector: (s1: S1, s2: S2, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - selectors: [ - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - ], - projector: (s1: S1, s2: S2, s3: S3, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - selectors: [ - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - ], - projector: (s1: S1, s2: S2, s3: S3, s4: S4, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - selectors: [ - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - ], - projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, props: Props) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector( - selectors: [ - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - ], - projector: ( - s1: S1, - s2: S2, - s3: S3, - s4: S4, - s5: S5, - s6: S6, - props: Props - ) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector< - State, - Props, - S1, - S2, - S3, - S4, - S5, - S6, - S7, - Result, ->( - selectors: [ - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - ], - projector: ( - s1: S1, - s2: S2, - s3: S3, - s4: S4, - s5: S5, - s6: S6, - s7: S7, - props: Props - ) => Result -): MemoizedSelectorWithProps; - -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelector< - State, - Props, - S1, - S2, - S3, - S4, - S5, - S6, - S7, - S8, - Result, ->( - selectors: [ - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - SelectorWithProps, - ], - projector: ( - s1: S1, - s2: S2, - s3: S3, - s4: S4, - s5: S5, - s6: S6, - s7: S7, - s8: S8, - props: Props - ) => Result -): MemoizedSelectorWithProps; - -export function createSelector( - ...input: any[] -): MemoizedSelector | MemoizedSelectorWithProps { +export function createSelector(...input: any[]): MemoizedSelector { return createSelectorFactory(defaultMemoize)(...input); } export function defaultStateFn( state: any, - selectors: Selector[] | SelectorWithProps[], + selectors: Selector[], props: any, memoizedProjector: MemoizedProjection ): any { - if (props === undefined) { - const args = ([]>selectors).map((fn) => fn(state)); - return memoizedProjector.memoized.apply(null, args); - } - - const args = ([]>selectors).map((fn) => - fn(state, props) - ); - return memoizedProjector.memoized.apply(null, [...args, props]); + const args = selectors.map((fn) => fn(state)); + return memoizedProjector.memoized.apply(null, args); } export type SelectorFactoryConfig = { @@ -556,19 +234,6 @@ export function createSelectorFactory( memoize: MemoizeFn, options: SelectorFactoryConfig ): (...input: any[]) => MemoizedSelector; -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelectorFactory( - memoize: MemoizeFn -): (...input: any[]) => MemoizedSelectorWithProps; -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function createSelectorFactory( - memoize: MemoizeFn, - options: SelectorFactoryConfig -): (...input: any[]) => MemoizedSelectorWithProps; /** * * @param memoize The function used to memoize selectors @@ -651,9 +316,7 @@ export function createSelectorFactory( stateFn: defaultStateFn, } ) { - return function ( - ...input: any[] - ): MemoizedSelector | MemoizedSelectorWithProps { + return function (...input: any[]): MemoizedSelector { let args = input; if (Array.isArray(args[0])) { const [head, ...tail] = args; diff --git a/modules/store/src/store.ts b/modules/store/src/store.ts index 3a9390e2b3..2296810210 100644 --- a/modules/store/src/store.ts +++ b/modules/store/src/store.ts @@ -1,4 +1,3 @@ -// disabled because we have lowercase generics for `select` import { computed, effect, @@ -11,7 +10,7 @@ import { untracked, } from '@angular/core'; import { Observable, Observer, Operator } from 'rxjs'; -import { distinctUntilChanged, map, pluck } from 'rxjs/operators'; +import { distinctUntilChanged, map } from 'rxjs/operators'; import { ActionsSubject } from './actions_subject'; import { @@ -77,98 +76,8 @@ export class Store this.state = state$.state; } - select(mapFn: (state: T) => K): Observable; - /** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ - select( - mapFn: (state: T, props: Props) => K, - props: Props - ): Observable; - /** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ - select(key: a): Observable; - /** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ - select( - key1: a, - key2: b - ): Observable; - /** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ - select( - key1: a, - key2: b, - key3: c - ): Observable; - /** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ - select< - a extends keyof T, - b extends keyof T[a], - c extends keyof T[a][b], - d extends keyof T[a][b][c], - >(key1: a, key2: b, key3: c, key4: d): Observable; - /** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ - select< - a extends keyof T, - b extends keyof T[a], - c extends keyof T[a][b], - d extends keyof T[a][b][c], - e extends keyof T[a][b][c][d], - >(key1: a, key2: b, key3: c, key4: d, key5: e): Observable; - /** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ - select< - a extends keyof T, - b extends keyof T[a], - c extends keyof T[a][b], - d extends keyof T[a][b][c], - e extends keyof T[a][b][c][d], - f extends keyof T[a][b][c][d][e], - >( - key1: a, - key2: b, - key3: c, - key4: d, - key5: e, - key6: f - ): Observable; - /** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ - select< - a extends keyof T, - b extends keyof T[a], - c extends keyof T[a][b], - d extends keyof T[a][b][c], - e extends keyof T[a][b][c][d], - f extends keyof T[a][b][c][d][e], - K = any, - >( - key1: a, - key2: b, - key3: c, - key4: d, - key5: e, - key6: f, - ...paths: string[] - ): Observable; - /** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ - select( - pathOrMapFn: ((state: T, props?: Props) => K) | string, - ...paths: string[] - ): Observable { - return (select as any).call(null, pathOrMapFn, ...paths)(this); + select(mapFn: (state: T) => K): Observable { + return (select as any).call(null, mapFn)(this); } /** @@ -269,114 +178,9 @@ export const STORE_PROVIDERS: Provider[] = [Store]; export function select( mapFn: (state: T) => K -): (source$: Observable) => Observable; -/** - * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} - */ -export function select( - mapFn: (state: T, props: Props) => K, - props: Props -): (source$: Observable) => Observable; -export function select( - key: a -): (source$: Observable) => Observable; -export function select( - key1: a, - key2: b -): (source$: Observable) => Observable; -export function select< - T, - a extends keyof T, - b extends keyof T[a], - c extends keyof T[a][b], ->( - key1: a, - key2: b, - key3: c -): (source$: Observable) => Observable; -export function select< - T, - a extends keyof T, - b extends keyof T[a], - c extends keyof T[a][b], - d extends keyof T[a][b][c], ->( - key1: a, - key2: b, - key3: c, - key4: d -): (source$: Observable) => Observable; -export function select< - T, - a extends keyof T, - b extends keyof T[a], - c extends keyof T[a][b], - d extends keyof T[a][b][c], - e extends keyof T[a][b][c][d], ->( - key1: a, - key2: b, - key3: c, - key4: d, - key5: e -): (source$: Observable) => Observable; -export function select< - T, - a extends keyof T, - b extends keyof T[a], - c extends keyof T[a][b], - d extends keyof T[a][b][c], - e extends keyof T[a][b][c][d], - f extends keyof T[a][b][c][d][e], ->( - key1: a, - key2: b, - key3: c, - key4: d, - key5: e, - key6: f -): (source$: Observable) => Observable; -export function select< - T, - a extends keyof T, - b extends keyof T[a], - c extends keyof T[a][b], - d extends keyof T[a][b][c], - e extends keyof T[a][b][c][d], - f extends keyof T[a][b][c][d][e], - K = any, ->( - key1: a, - key2: b, - key3: c, - key4: d, - key5: e, - key6: f, - ...paths: string[] -): (source$: Observable) => Observable; -export function select( - pathOrMapFn: ((state: T, props?: Props) => any) | string, - propsOrPath?: Props | string, - ...paths: string[] -) { +): (source$: Observable) => Observable { return function selectOperator(source$: Observable): Observable { - let mapped$: Observable; - - if (typeof pathOrMapFn === 'string') { - const pathSlices = [propsOrPath, ...paths].filter(Boolean); - mapped$ = source$.pipe(pluck(pathOrMapFn, ...pathSlices)); - } else if (typeof pathOrMapFn === 'function') { - mapped$ = source$.pipe( - map((source) => pathOrMapFn(source, propsOrPath)) - ); - } else { - throw new TypeError( - `Unexpected type '${typeof pathOrMapFn}' in select operator,` + - ` expected 'string' or 'function'` - ); - } - - return mapped$.pipe(distinctUntilChanged()); + return source$.pipe(map(mapFn), distinctUntilChanged()); }; } diff --git a/modules/store/testing/spec/mock_store.spec.ts b/modules/store/testing/spec/mock_store.spec.ts index 802de00606..7d0edb50b3 100644 --- a/modules/store/testing/spec/mock_store.spec.ts +++ b/modules/store/testing/spec/mock_store.spec.ts @@ -41,16 +41,6 @@ describe('Mock Store with TestBed', () => { () => initialState, (state) => state.counter4 ); - const selectorWithPropMocked = createSelector( - () => initialState, - (state: typeof initialState, add: number) => state.counter4 + add - ); - - const selectorWithProp = createSelector( - () => initialState, - (state: typeof initialState, add: number) => state.counter4 + add - ); - beforeEach(() => { TestBed.configureTestingModule({ providers: [ @@ -59,7 +49,6 @@ describe('Mock Store with TestBed', () => { selectors: [ { selector: stringSelector, value: 87 }, { selector: memoizedSelector, value: 98 }, - { selector: selectorWithPropMocked, value: 99 }, ], }), ], @@ -70,8 +59,6 @@ describe('Mock Store with TestBed', () => { afterEach(() => { memoizedSelector.release(); - selectorWithProp.release(); - selectorWithPropMocked.release(); mockStore.resetSelectors(); }); @@ -134,22 +121,6 @@ describe('Mock Store with TestBed', () => { .subscribe((result) => expect(result).toBe(expectedValue)); }); - it('should allow mocking of store.select with a memoized selector with Prop using provideMockStore', () => { - const expectedValue = 99; - - mockStore - .select(selectorWithPropMocked, 100) - .subscribe((result) => expect(result).toBe(expectedValue)); - }); - - it('should allow mocking of store.pipe(select()) with a memoized selector with Prop using provideMockStore', () => { - const expectedValue = 99; - - mockStore - .pipe(select(selectorWithPropMocked, 200)) - .subscribe((result) => expect(result).toBe(expectedValue)); - }); - it('should allow mocking of store.select with string selector using overrideSelector', () => { const mockValue = 5; @@ -188,48 +159,6 @@ describe('Mock Store with TestBed', () => { .subscribe((result) => expect(result).toBe(mockValue)); }); - it('should allow mocking of store.select with a memoized selector with Prop using overrideSelector', () => { - const mockValue = 100; - - mockStore.overrideSelector(selectorWithProp, mockValue); - - mockStore - .select(selectorWithProp, 200) - .subscribe((result) => expect(result).toBe(mockValue)); - }); - - it('should allow mocking of store.pipe(select()) with a memoized selector with Prop using overrideSelector', () => { - const mockValue = 1000; - - mockStore.overrideSelector(selectorWithProp, mockValue); - - mockStore - .pipe(select(selectorWithProp, 200)) - .subscribe((result) => expect(result).toBe(mockValue)); - }); - - it('should pass through unmocked selectors with Props using store.pipe(select())', () => { - const selectorWithProp = createSelector( - () => initialState, - (state: typeof initialState, add: number) => state.counter4 + add - ); - - mockStore - .pipe(select(selectorWithProp, 6)) - .subscribe((result) => expect(result).toBe(9)); - }); - - it('should pass through unmocked selectors with Props using store.select', () => { - const selectorWithProp = createSelector( - () => initialState, - (state: typeof initialState, add: number) => state.counter4 + add - ); - - (mockStore as Store<{}>) - .select(selectorWithProp, 7) - .subscribe((result) => expect(result).toBe(10)); - }); - it('should pass through unmocked selectors', () => { const mockValue = 5; const selector = createSelector( diff --git a/modules/store/testing/src/mock_selector.ts b/modules/store/testing/src/mock_selector.ts index a2aa469312..7b90a262ec 100644 --- a/modules/store/testing/src/mock_selector.ts +++ b/modules/store/testing/src/mock_selector.ts @@ -1,9 +1,6 @@ -import { MemoizedSelector, MemoizedSelectorWithProps } from '@ngrx/store'; +import { MemoizedSelector } from '@ngrx/store'; export interface MockSelector { - selector: - | string - | MemoizedSelector - | MemoizedSelectorWithProps; + selector: string | MemoizedSelector; value: any; } diff --git a/modules/store/testing/src/mock_store.ts b/modules/store/testing/src/mock_store.ts index 6e482bea11..aa3733997e 100644 --- a/modules/store/testing/src/mock_store.ts +++ b/modules/store/testing/src/mock_store.ts @@ -7,26 +7,18 @@ import { ReducerManager, Store, createSelector, - MemoizedSelectorWithProps, MemoizedSelector, } from '@ngrx/store'; import { MockState } from './mock_state'; import { MockSelector } from './mock_selector'; import { MOCK_SELECTORS } from './tokens'; -type OnlyMemoized = T extends string | MemoizedSelector - ? MemoizedSelector - : T extends MemoizedSelectorWithProps - ? MemoizedSelectorWithProps - : never; - -type Memoized = - | MemoizedSelector - | MemoizedSelectorWithProps; - @Injectable() export class MockStore extends Store { - private readonly selectors = new Map | string, any>(); + private readonly selectors = new Map< + MemoizedSelector | string, + any + >(); readonly scannedActions$: Observable; private lastState?: T; @@ -53,20 +45,13 @@ export class MockStore extends Store { } overrideSelector< - Selector extends Memoized, + Selector extends MemoizedSelector, Value extends Result, - Result = Selector extends MemoizedSelector - ? T - : Selector extends MemoizedSelectorWithProps - ? U - : Value, - >( - selector: Selector | string, - value: Value - ): OnlyMemoized { + Result = Selector extends MemoizedSelector ? T : Value, + >(selector: Selector | string, value: Value): MemoizedSelector { this.selectors.set(selector, value); - const resultSelector: Memoized = + const resultSelector: MemoizedSelector = typeof selector === 'string' ? createSelector( () => {}, @@ -76,7 +61,7 @@ export class MockStore extends Store { resultSelector.setResult(value); - return resultSelector as OnlyMemoized; + return resultSelector; } resetSelectors() { @@ -90,14 +75,14 @@ export class MockStore extends Store { this.selectors.clear(); } - override select(selector: any, prop?: any) { + override select(selector: any) { if (typeof selector === 'string' && this.selectors.has(selector)) { return new BehaviorSubject( this.selectors.get(selector) ).asObservable(); } - return super.select(selector, prop); + return super.select(selector); } override addReducer() { diff --git a/projects/standalone-app/src/app/test.pipe.ts b/projects/standalone-app/src/app/test.pipe.ts index c87acf3657..30fabd7f93 100644 --- a/projects/standalone-app/src/app/test.pipe.ts +++ b/projects/standalone-app/src/app/test.pipe.ts @@ -5,7 +5,7 @@ import { Store } from '@ngrx/store'; export class TestPipe implements PipeTransform { store = inject(Store); transform(s: number) { - this.store.select('count'); + this.store.select((state: any) => state['count']); return s * 2; } } diff --git a/projects/www/src/app/pages/guide/migration/v21.md b/projects/www/src/app/pages/guide/migration/v21.md index 1db601a096..65d333d726 100644 --- a/projects/www/src/app/pages/guide/migration/v21.md +++ b/projects/www/src/app/pages/guide/migration/v21.md @@ -96,6 +96,94 @@ const mySignalMethod = signalMethod<{ callback: () => void }>( mySignalMethod({ callback: () => console.log('signals') }); ``` +### @ngrx/store + +#### Removal of `SelectorWithProps` and `MemoizedSelectorWithProps` + +The `SelectorWithProps` and `MemoizedSelectorWithProps` types have been removed. These were deprecated since v12 in favor of factory selectors. The following have been removed: + +- `SelectorWithProps` type +- `MemoizedSelectorWithProps` interface +- `createSelector` overloads that accepted selectors with props +- `createSelectorFactory` overloads that returned `MemoizedSelectorWithProps` +- `Store.select()` and `select()` operator overloads that accepted props +- `Store.select()` and `select()` operator overloads that accepted string keys + +A migration schematic will automatically remove `SelectorWithProps` and `MemoizedSelectorWithProps` imports from your code and add a `TODO` comment at call sites that require manual migration. To convert selectors with props to factory selectors, follow the patterns below. + +> **Note:** Selectors with props did not memoize properly in practice. The `defaultMemoize` function uses strict reference equality (`===`) to compare arguments, so passing an inline object literal like `{ id: 42 }` as props created a new reference on every change detection cycle, defeating memoization entirely. Factory selectors fix this because each factory call returns a distinct memoized selector instance. + +##### Factory selector pattern + +BEFORE: + +```ts +import { createSelector, SelectorWithProps } from '@ngrx/store'; + +const selectCustomer = createSelector( + selectCustomers, + (customers, props: { customerId: number }) => { + return customers[props.customerId]; + } +); + +// usage +this.store.select(selectCustomer, { customerId: 42 }); +``` + +AFTER: + +```ts +import { createSelector } from '@ngrx/store'; + +const selectCustomer = (customerId: number) => + createSelector(selectCustomers, (customers) => { + return customers[customerId]; + }); + +// usage +this.store.select(selectCustomer(42)); +``` + +##### Memoized factory pattern + +The basic factory selector creates a new selector instance on every call. To avoid this, use `createSelector` to memoize the factory itself — repeated calls with the same argument return the same inner selector instance. + +```ts +import { createSelector } from '@ngrx/store'; + +const selectCustomer = createSelector( + (customerId: number) => customerId, + (customerId) => + createSelector( + selectCustomers, + (customers) => customers[customerId] + ) +); + +// selectCustomer(42) returns a memoized selector; +// calling selectCustomer(42) again returns the same instance. +this.store.select(selectCustomer(42)); +``` + +#### Removal of string-key `select` + +The `Store.select()` method and `select()` operator no longer accept string keys. Use selector functions instead. + +BEFORE: + +```ts +this.store.select('featureName'); +this.store.pipe(select('featureName')); +``` + +AFTER: + +```ts +this.store.select((state) => state.featureName); +this.store.pipe(select((state) => state.featureName)); +``` + ### @ngrx/eslint-plugin The lint rules that require type information have been moved to seperate predefined configurations. diff --git a/projects/www/src/app/pages/guide/store/selectors.md b/projects/www/src/app/pages/guide/store/selectors.md index 6abfbda9a1..46376b2a8f 100644 --- a/projects/www/src/app/pages/guide/store/selectors.md +++ b/projects/www/src/app/pages/guide/store/selectors.md @@ -101,74 +101,6 @@ const selectBooksPageViewModel = createSelector({ }); ``` -### Using selectors with props - - - -Selectors with props are [deprecated](https://github.com/ngrx/platform/issues/2980). - - - -To select a piece of state based on data that isn't available in the store you can pass `props` to the selector function. These `props` gets passed through every selector and the projector function. -To do so we must specify these `props` when we use the selector inside our component. - -For example if we have a counter and we want to multiply its value, we can add the multiply factor as a `prop`: - -The last argument of a selector or a projector is the `props` argument, for our example it looks as follows: - - - -```ts -export const selectCount = createSelector( - selectCounterValue, - (counter, props) => counter * props.multiply -); -``` - - - -Inside the component we can define the `props`: - - - -```ts -ngOnInit() { - this.counter = this.store.select(fromRoot.selectCount, { multiply: 2 }) -} -``` - - - -Keep in mind that a selector only keeps the previous input arguments in its cache. If you reuse this selector with another multiply factor, the selector would always have to re-evaluate its value. This is because it's receiving both of the multiply factors (e.g. one time `2`, the other time `4`). In order to correctly memoize the selector, wrap the selector inside a factory function to create different instances of the selector. - -The following is an example of using multiple counters differentiated by `id`. - - - -```ts -export const selectCount = () => - createSelector( - (state, props) => state.counter[props.id], - (counter, props) => counter * props.multiply - ); -``` - - - -The component's selectors are now calling the factory function to create different selector instances: - - - -```ts -ngOnInit() { - this.counter2 = this.store.select(fromRoot.selectCount(), { id: 'counter2', multiply: 2 }); - this.counter4 = this.store.select(fromRoot.selectCount(), { id: 'counter4', multiply: 4 }); - this.counter6 = this.store.select(fromRoot.selectCount(), { id: 'counter6', multiply: 6 }); -} -``` - - - ## Selecting Feature States The `createFeatureSelector` is a convenience method for returning a top level feature state. It returns a typed selector function for a feature slice of state. diff --git a/projects/www/src/app/reference/api-report.min.json b/projects/www/src/app/reference/api-report.min.json index c555deefc9..aaeba612dd 100644 --- a/projects/www/src/app/reference/api-report.min.json +++ b/projects/www/src/app/reference/api-report.min.json @@ -54,7 +54,6 @@ "isNgrxMockEnvironment", "MemoizedProjection", "MemoizedSelector", - "MemoizedSelectorWithProps", "MemoizeFn", "META_REDUCERS", "MetaReducer", @@ -76,7 +75,6 @@ "ScannedActionsSubject", "select", "Selector", - "SelectorWithProps", "setNgrxMockEnvironment", "State", "StateObservable", @@ -302,12 +300,6 @@ "canonicalReference": "@ngrx/store!MemoizedSelector:interface", "isDeprecated": false }, - "MemoizedSelectorWithProps": { - "kind": "Interface", - "name": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface", - "isDeprecated": true - }, "MemoizeFn": { "kind": "TypeAlias", "name": "MemoizeFn", @@ -434,12 +426,6 @@ "canonicalReference": "@ngrx/store!Selector:type", "isDeprecated": false }, - "SelectorWithProps": { - "kind": "TypeAlias", - "name": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type", - "isDeprecated": true - }, "setNgrxMockEnvironment": { "kind": "Function", "name": "setNgrxMockEnvironment", diff --git a/projects/www/src/app/reference/signals/getState.json b/projects/www/src/app/reference/signals/getState.json index 98c583c452..6219bc2a67 100644 --- a/projects/www/src/app/reference/signals/getState.json +++ b/projects/www/src/app/reference/signals/getState.json @@ -8,7 +8,7 @@ { "kind": "Function", "canonicalReference": "@ngrx/signals!getState:function(1)", - "docComment": "", + "docComment": "/**\n * @description\n *\n * Returns a snapshot of the current state from a SignalStore or SignalState. When used within a reactive context, state changes are automatically tracked.\n *\n * @usageNotes\n * ```ts\n * import { Component, effect, inject } from '@angular/core';\n * import { getState, signalStore, withState } from '@ngrx/signals';\n *\n * export const CounterStore = signalStore(\n * withState({ count1: 0, count2: 0 })\n * );\n *\n * \\@Component(...)\n * export class Counter {\n * readonly store = inject(CounterStore);\n *\n * constructor() {\n * effect(() => {\n * const state = getState(this.store);\n * // 👇 Logs on state changes.\n * console.log(state);\n * });\n * }\n * }\n * ```\n *\n */\n", "excerptTokens": [ { "kind": "Content", @@ -84,8 +84,8 @@ "isOverride": false, "isExperimental": false }, - "summary": "", - "usageNotes": "", + "summary": "\n\nReturns a snapshot of the current state from a SignalStore or SignalState. When used within a reactive context, state changes are automatically tracked.\n\n", + "usageNotes": "\n```ts\nimport { Component, effect, inject } from '@angular/core';\nimport { getState, signalStore, withState } from '@ngrx/signals';\n\nexport const CounterStore = signalStore(\n withState({ count1: 0, count2: 0 })\n);\n\n\\@Component(...)\nexport class Counter {\n readonly store = inject(CounterStore);\n\n constructor() {\n effect(() => {\n const state = getState(this.store);\n // 👇 Logs on state changes.\n console.log(state);\n });\n }\n}\n```\n\n", "remarks": "", "deprecated": "", "returns": "", diff --git a/projects/www/src/app/reference/signals/patchState.json b/projects/www/src/app/reference/signals/patchState.json index 8365ca6e5c..f82fdcfeaa 100644 --- a/projects/www/src/app/reference/signals/patchState.json +++ b/projects/www/src/app/reference/signals/patchState.json @@ -8,7 +8,7 @@ { "kind": "Function", "canonicalReference": "@ngrx/signals!patchState:function(1)", - "docComment": "", + "docComment": "/**\n * @description\n *\n * Updates the state of a SignalStore or SignalState. Accepts a sequence of partial state objects and partial state updaters.\n *\n * @usageNotes\n * ```ts\n * import { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\n *\n * export const CounterStore = signalStore(\n * withState({ count1: 0, count2: 0 }),\n * withMethods((store) => ({\n * incrementFirst(): void {\n * patchState(store, (state) => ({ count1: state.count1 + 1 }));\n * },\n * resetSecond(): void {\n * patchState(store, { count2: 0 });\n * },\n * }))\n * );\n * ```\n *\n */\n", "excerptTokens": [ { "kind": "Content", @@ -141,8 +141,8 @@ "isOverride": false, "isExperimental": false }, - "summary": "", - "usageNotes": "", + "summary": "\n\nUpdates the state of a SignalStore or SignalState. Accepts a sequence of partial state objects and partial state updaters.\n\n", + "usageNotes": "\n```ts\nimport { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\n\nexport const CounterStore = signalStore(\n withState({ count1: 0, count2: 0 }),\n withMethods((store) => ({\n incrementFirst(): void {\n patchState(store, (state) => ({ count1: state.count1 + 1 }));\n },\n resetSecond(): void {\n patchState(store, { count2: 0 });\n },\n }))\n);\n```\n\n", "remarks": "", "deprecated": "", "returns": "", diff --git a/projects/www/src/app/reference/signals/withComputed.json b/projects/www/src/app/reference/signals/withComputed.json index 639dddcc47..fa077acf45 100644 --- a/projects/www/src/app/reference/signals/withComputed.json +++ b/projects/www/src/app/reference/signals/withComputed.json @@ -8,7 +8,7 @@ { "kind": "Function", "canonicalReference": "@ngrx/signals!withComputed:function(1)", - "docComment": "", + "docComment": "/**\n * @description\n *\n * Adds computed signals to a SignalStore. Accepts a factory function that returns a dictionary of computed signals or computation functions.\n *\n * @usageNotes\n * ```ts\n * import { signalStore, withState, withComputed } from '@ngrx/signals';\n *\n * export const CounterStore = signalStore(\n * withState({ count: 0 }),\n * withComputed(({ count }) => ({\n * doubleCount: () => count() * 2,\n * }))\n * );\n * ```\n *\n */\n", "excerptTokens": [ { "kind": "Content", @@ -145,8 +145,8 @@ "isOverride": false, "isExperimental": false }, - "summary": "", - "usageNotes": "", + "summary": "\n\nAdds computed signals to a SignalStore. Accepts a factory function that returns a dictionary of computed signals or computation functions.\n\n", + "usageNotes": "\n```ts\nimport { signalStore, withState, withComputed } from '@ngrx/signals';\n\nexport const CounterStore = signalStore(\n withState({ count: 0 }),\n withComputed(({ count }) => ({\n doubleCount: () => count() * 2,\n }))\n);\n```\n\n", "remarks": "", "deprecated": "", "returns": "", diff --git a/projects/www/src/app/reference/signals/withMethods.json b/projects/www/src/app/reference/signals/withMethods.json index 7453b521da..9dc4168d24 100644 --- a/projects/www/src/app/reference/signals/withMethods.json +++ b/projects/www/src/app/reference/signals/withMethods.json @@ -8,7 +8,7 @@ { "kind": "Function", "canonicalReference": "@ngrx/signals!withMethods:function(1)", - "docComment": "", + "docComment": "/**\n * @description\n *\n * Adds methods to a SignalStore.\n *\n * @usageNotes\n * ```ts\n * import { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\n *\n * export const CounterStore = signalStore(\n * withState({ count: 0 }),\n * withMethods((store) => ({\n * increment(): void {\n * patchState(store, ({ count }) => ({ count: count + 1 }));\n * },\n * decrement(): void {\n * patchState(store, ({ count }) => ({ count: count - 1 }));\n * },\n * }))\n * );\n * ```\n *\n */\n", "excerptTokens": [ { "kind": "Content", @@ -132,8 +132,8 @@ "isOverride": false, "isExperimental": false }, - "summary": "", - "usageNotes": "", + "summary": "\n\nAdds methods to a SignalStore.\n\n", + "usageNotes": "\n```ts\nimport { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\n\nexport const CounterStore = signalStore(\n withState({ count: 0 }),\n withMethods((store) => ({\n increment(): void {\n patchState(store, ({ count }) => ({ count: count + 1 }));\n },\n decrement(): void {\n patchState(store, ({ count }) => ({ count: count - 1 }));\n },\n }))\n);\n```\n\n", "remarks": "", "deprecated": "", "returns": "", diff --git a/projects/www/src/app/reference/store/Store.json b/projects/www/src/app/reference/store/Store.json index ff360546ce..f1c1f8b9f5 100644 --- a/projects/www/src/app/reference/store/Store.json +++ b/projects/www/src/app/reference/store/Store.json @@ -973,1496 +973,6 @@ "params": [] } }, - { - "kind": "Method", - "canonicalReference": "@ngrx/store!Store#select:member(2)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "select(mapFn: " - }, - { - "kind": "Content", - "text": "(state: T, props: Props) => K" - }, - { - "kind": "Content", - "text": ", props: " - }, - { - "kind": "Content", - "text": "Props" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "typeParameters": [ - { - "typeParameterName": "K", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - } - } - ], - "isStatic": false, - "returnTypeTokenRange": { - "startIndex": 7, - "endIndex": 9 - }, - "releaseTag": "Public", - "isProtected": false, - "overloadIndex": 2, - "parameters": [ - { - "parameterName": "mapFn", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "isOptional": false - }, - { - "parameterName": "props", - "parameterTypeTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "isOptional": false - } - ], - "isOptional": false, - "isAbstract": false, - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Method", - "canonicalReference": "@ngrx/store!Store#select:member(3)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "select(key: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "typeParameters": [ - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "isStatic": false, - "returnTypeTokenRange": { - "startIndex": 5, - "endIndex": 7 - }, - "releaseTag": "Public", - "isProtected": false, - "overloadIndex": 3, - "parameters": [ - { - "parameterName": "key", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "isOptional": false - } - ], - "isOptional": false, - "isAbstract": false, - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Method", - "canonicalReference": "@ngrx/store!Store#select:member(4)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "typeParameters": [ - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "isStatic": false, - "returnTypeTokenRange": { - "startIndex": 9, - "endIndex": 11 - }, - "releaseTag": "Public", - "isProtected": false, - "overloadIndex": 4, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "isOptional": false - } - ], - "isOptional": false, - "isAbstract": false, - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Method", - "canonicalReference": "@ngrx/store!Store#select:member(5)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "typeParameters": [ - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "isStatic": false, - "returnTypeTokenRange": { - "startIndex": 13, - "endIndex": 15 - }, - "releaseTag": "Public", - "isProtected": false, - "overloadIndex": 5, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "isOptional": false - } - ], - "isOptional": false, - "isAbstract": false, - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Method", - "canonicalReference": "@ngrx/store!Store#select:member(6)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": ", key4: " - }, - { - "kind": "Content", - "text": "d" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "typeParameters": [ - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "d", - "constraintTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "isStatic": false, - "returnTypeTokenRange": { - "startIndex": 17, - "endIndex": 19 - }, - "releaseTag": "Public", - "isProtected": false, - "overloadIndex": 6, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - }, - "isOptional": false - }, - { - "parameterName": "key4", - "parameterTypeTokenRange": { - "startIndex": 15, - "endIndex": 16 - }, - "isOptional": false - } - ], - "isOptional": false, - "isAbstract": false, - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Method", - "canonicalReference": "@ngrx/store!Store#select:member(7)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": ", key4: " - }, - { - "kind": "Content", - "text": "d" - }, - { - "kind": "Content", - "text": ", key5: " - }, - { - "kind": "Content", - "text": "e" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "typeParameters": [ - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "d", - "constraintTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "e", - "constraintTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "isStatic": false, - "returnTypeTokenRange": { - "startIndex": 21, - "endIndex": 23 - }, - "releaseTag": "Public", - "isProtected": false, - "overloadIndex": 7, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 15, - "endIndex": 16 - }, - "isOptional": false - }, - { - "parameterName": "key4", - "parameterTypeTokenRange": { - "startIndex": 17, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "key5", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 20 - }, - "isOptional": false - } - ], - "isOptional": false, - "isAbstract": false, - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Method", - "canonicalReference": "@ngrx/store!Store#select:member(8)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": ", key4: " - }, - { - "kind": "Content", - "text": "d" - }, - { - "kind": "Content", - "text": ", key5: " - }, - { - "kind": "Content", - "text": "e" - }, - { - "kind": "Content", - "text": ", key6: " - }, - { - "kind": "Content", - "text": "f" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "typeParameters": [ - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "d", - "constraintTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "e", - "constraintTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "f", - "constraintTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "isStatic": false, - "returnTypeTokenRange": { - "startIndex": 25, - "endIndex": 27 - }, - "releaseTag": "Public", - "isProtected": false, - "overloadIndex": 8, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 15, - "endIndex": 16 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 17, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "key4", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 20 - }, - "isOptional": false - }, - { - "parameterName": "key5", - "parameterTypeTokenRange": { - "startIndex": 21, - "endIndex": 22 - }, - "isOptional": false - }, - { - "parameterName": "key6", - "parameterTypeTokenRange": { - "startIndex": 23, - "endIndex": 24 - }, - "isOptional": false - } - ], - "isOptional": false, - "isAbstract": false, - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Method", - "canonicalReference": "@ngrx/store!Store#select:member(9)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": ", key4: " - }, - { - "kind": "Content", - "text": "d" - }, - { - "kind": "Content", - "text": ", key5: " - }, - { - "kind": "Content", - "text": "e" - }, - { - "kind": "Content", - "text": ", key6: " - }, - { - "kind": "Content", - "text": "f" - }, - { - "kind": "Content", - "text": ", ...paths: " - }, - { - "kind": "Content", - "text": "string[]" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "typeParameters": [ - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "d", - "constraintTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "e", - "constraintTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "f", - "constraintTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "K", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - } - } - ], - "isStatic": false, - "returnTypeTokenRange": { - "startIndex": 29, - "endIndex": 31 - }, - "releaseTag": "Public", - "isProtected": false, - "overloadIndex": 9, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 15, - "endIndex": 16 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 17, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 20 - }, - "isOptional": false - }, - { - "parameterName": "key4", - "parameterTypeTokenRange": { - "startIndex": 21, - "endIndex": 22 - }, - "isOptional": false - }, - { - "parameterName": "key5", - "parameterTypeTokenRange": { - "startIndex": 23, - "endIndex": 24 - }, - "isOptional": false - }, - { - "parameterName": "key6", - "parameterTypeTokenRange": { - "startIndex": 25, - "endIndex": 26 - }, - "isOptional": false - }, - { - "parameterName": "paths", - "parameterTypeTokenRange": { - "startIndex": 27, - "endIndex": 28 - }, - "isOptional": false - } - ], - "isOptional": false, - "isAbstract": false, - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, { "kind": "Method", "canonicalReference": "@ngrx/store!Store#selectSignal:member(1)", diff --git a/projects/www/src/app/reference/store/createSelector.json b/projects/www/src/app/reference/store/createSelector.json index 07e7d3d33f..c40962506f 100644 --- a/projects/www/src/app/reference/store/createSelector.json +++ b/projects/www/src/app/reference/store/createSelector.json @@ -268,50 +268,58 @@ { "kind": "Function", "canonicalReference": "@ngrx/store!createSelector:function(11)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", + "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function createSelector(s1: " + "text": "declare function createSelector" + "text": ", Result>(selectors: " + }, + { + "kind": "Reference", + "text": "Selector", + "canonicalReference": "@ngrx/store!Selector:type" }, { "kind": "Content", - "text": ", projector: " + "text": "[] & [\n ...{\n [i in keyof Slices]: " + }, + { + "kind": "Reference", + "text": "Selector", + "canonicalReference": "@ngrx/store!Selector:type" }, { "kind": "Content", - "text": "(s1: S1, props: Props) => Result" + "text": ";\n }\n]" }, { "kind": "Content", - "text": "): " + "text": ", projector: " }, { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" + "kind": "Content", + "text": "(...s: Slices) => Result" }, { "kind": "Content", - "text": "" + "text": " Result>" }, { "kind": "Content", @@ -320,25 +328,25 @@ ], "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", "returnTypeTokenRange": { - "startIndex": 6, - "endIndex": 10 + "startIndex": 10, + "endIndex": 12 }, "releaseTag": "Public", "overloadIndex": 11, "parameters": [ { - "parameterName": "s1", + "parameterName": "selectors", "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 + "startIndex": 3, + "endIndex": 7 }, "isOptional": false }, { "parameterName": "projector", "parameterTypeTokenRange": { - "startIndex": 4, - "endIndex": 5 + "startIndex": 8, + "endIndex": 9 }, "isOptional": false } @@ -356,21 +364,10 @@ } }, { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", + "typeParameterName": "Slices", "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 + "startIndex": 1, + "endIndex": 2 }, "defaultTypeTokenRange": { "startIndex": 0, @@ -402,7 +399,7 @@ "summary": "", "usageNotes": "", "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", + "deprecated": "", "returns": "", "see": [], "params": [] @@ -410,21 +407,21 @@ }, { "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(12)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", + "canonicalReference": "@ngrx/store!createSelector:function(2)", + "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function createSelector(s1: " + "text": "declare function createSelector(s1: " }, { "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" + "text": "Selector", + "canonicalReference": "@ngrx/store!Selector:type" }, { "kind": "Content", - "text": "" + "text": "" }, { "kind": "Content", @@ -432,12 +429,12 @@ }, { "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" + "text": "Selector", + "canonicalReference": "@ngrx/store!Selector:type" }, { "kind": "Content", - "text": "" + "text": "" }, { "kind": "Content", @@ -445,7 +442,7 @@ }, { "kind": "Content", - "text": "(s1: S1, s2: S2, props: Props) => Result" + "text": "(s1: S1, s2: S2) => Result" }, { "kind": "Content", @@ -453,12 +450,12 @@ }, { "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" + "text": "MemoizedSelector", + "canonicalReference": "@ngrx/store!MemoizedSelector:interface" }, { "kind": "Content", - "text": "(s1: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s2: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s3: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 12, - "endIndex": 16 - }, - "releaseTag": "Public", - "overloadIndex": 13, - "parameters": [ - { - "parameterName": "s1", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 - }, - "isOptional": false - }, - { - "parameterName": "s2", - "parameterTypeTokenRange": { - "startIndex": 4, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "s3", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 9 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 10, - "endIndex": 11 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(14)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(s1: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s2: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s3: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s4: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 15, - "endIndex": 19 - }, - "releaseTag": "Public", - "overloadIndex": 14, - "parameters": [ - { - "parameterName": "s1", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 - }, - "isOptional": false - }, - { - "parameterName": "s2", - "parameterTypeTokenRange": { - "startIndex": 4, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "s3", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 9 - }, - "isOptional": false - }, - { - "parameterName": "s4", - "parameterTypeTokenRange": { - "startIndex": 10, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(15)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(s1: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s2: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s3: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s4: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s5: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 18, - "endIndex": 22 - }, - "releaseTag": "Public", - "overloadIndex": 15, - "parameters": [ - { - "parameterName": "s1", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 - }, - "isOptional": false - }, - { - "parameterName": "s2", - "parameterTypeTokenRange": { - "startIndex": 4, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "s3", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 9 - }, - "isOptional": false - }, - { - "parameterName": "s4", - "parameterTypeTokenRange": { - "startIndex": 10, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "s5", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 15 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 16, - "endIndex": 17 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S5", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(16)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(s1: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s2: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s3: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s4: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s5: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s6: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 21, - "endIndex": 25 - }, - "releaseTag": "Public", - "overloadIndex": 16, - "parameters": [ - { - "parameterName": "s1", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 - }, - "isOptional": false - }, - { - "parameterName": "s2", - "parameterTypeTokenRange": { - "startIndex": 4, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "s3", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 9 - }, - "isOptional": false - }, - { - "parameterName": "s4", - "parameterTypeTokenRange": { - "startIndex": 10, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "s5", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 15 - }, - "isOptional": false - }, - { - "parameterName": "s6", - "parameterTypeTokenRange": { - "startIndex": 16, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 20 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S5", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S6", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(17)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(s1: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s2: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s3: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s4: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s5: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s6: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s7: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 24, - "endIndex": 28 - }, - "releaseTag": "Public", - "overloadIndex": 17, - "parameters": [ - { - "parameterName": "s1", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 - }, - "isOptional": false - }, - { - "parameterName": "s2", - "parameterTypeTokenRange": { - "startIndex": 4, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "s3", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 9 - }, - "isOptional": false - }, - { - "parameterName": "s4", - "parameterTypeTokenRange": { - "startIndex": 10, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "s5", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 15 - }, - "isOptional": false - }, - { - "parameterName": "s6", - "parameterTypeTokenRange": { - "startIndex": 16, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "s7", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 21 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 22, - "endIndex": 23 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S5", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S6", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S7", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(18)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(s1: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s2: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s3: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s4: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s5: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s6: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s7: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s8: " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, s8: S8, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 27, - "endIndex": 31 - }, - "releaseTag": "Public", - "overloadIndex": 18, - "parameters": [ - { - "parameterName": "s1", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 - }, - "isOptional": false - }, - { - "parameterName": "s2", - "parameterTypeTokenRange": { - "startIndex": 4, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "s3", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 9 - }, - "isOptional": false - }, - { - "parameterName": "s4", - "parameterTypeTokenRange": { - "startIndex": 10, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "s5", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 15 - }, - "isOptional": false - }, - { - "parameterName": "s6", - "parameterTypeTokenRange": { - "startIndex": 16, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "s7", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 21 - }, - "isOptional": false - }, - { - "parameterName": "s8", - "parameterTypeTokenRange": { - "startIndex": 22, - "endIndex": 24 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 25, - "endIndex": 26 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S5", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S6", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S7", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S8", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(19)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(selectors: " - }, - { - "kind": "Reference", - "text": "Selector", - "canonicalReference": "@ngrx/store!Selector:type" - }, - { - "kind": "Content", - "text": "[] & [\n ...{\n [i in keyof Slices]: " - }, - { - "kind": "Reference", - "text": "Selector", - "canonicalReference": "@ngrx/store!Selector:type" - }, - { - "kind": "Content", - "text": ";\n }\n]" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(...s: Slices) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelector", - "canonicalReference": "@ngrx/store!MemoizedSelector:interface" - }, - { - "kind": "Content", - "text": " Result>" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 10, - "endIndex": 12 - }, - "releaseTag": "Public", - "overloadIndex": 19, - "parameters": [ - { - "parameterName": "selectors", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 7 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 8, - "endIndex": 9 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Slices", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(2)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(s1: " - }, - { - "kind": "Reference", - "text": "Selector", - "canonicalReference": "@ngrx/store!Selector:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", s2: " - }, - { - "kind": "Reference", - "text": "Selector", - "canonicalReference": "@ngrx/store!Selector:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelector", - "canonicalReference": "@ngrx/store!MemoizedSelector:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 9, - "endIndex": 13 - }, - "releaseTag": "Public", - "overloadIndex": 2, - "parameters": [ - { - "parameterName": "s1", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 - }, - "isOptional": false - }, - { - "parameterName": "s2", - "parameterTypeTokenRange": { - "startIndex": 4, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(20)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(selectors: " - }, - { - "kind": "Content", - "text": "[" - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "]" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 7, - "endIndex": 11 - }, - "releaseTag": "Public", - "overloadIndex": 20, - "parameters": [ - { - "parameterName": "selectors", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 4 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(21)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(selectors: " - }, - { - "kind": "Content", - "text": "[\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "\n]" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 9, - "endIndex": 13 - }, - "releaseTag": "Public", - "overloadIndex": 21, - "parameters": [ - { - "parameterName": "selectors", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(22)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(selectors: " - }, - { - "kind": "Content", - "text": "[\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "\n]" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 11, - "endIndex": 15 - }, - "releaseTag": "Public", - "overloadIndex": 22, - "parameters": [ - { - "parameterName": "selectors", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 8 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(23)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(selectors: " - }, - { - "kind": "Content", - "text": "[\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "\n]" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 13, - "endIndex": 17 - }, - "releaseTag": "Public", - "overloadIndex": 23, - "parameters": [ - { - "parameterName": "selectors", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 10 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(24)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(selectors: " - }, - { - "kind": "Content", - "text": "[\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "\n]" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 15, - "endIndex": 19 - }, - "releaseTag": "Public", - "overloadIndex": 24, - "parameters": [ - { - "parameterName": "selectors", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S5", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(25)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(selectors: " - }, - { - "kind": "Content", - "text": "[\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "\n]" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 17, - "endIndex": 21 - }, - "releaseTag": "Public", - "overloadIndex": 25, - "parameters": [ - { - "parameterName": "selectors", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 14 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 15, - "endIndex": 16 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S5", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S6", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(26)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(selectors: " - }, - { - "kind": "Content", - "text": "[\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "\n]" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 19, - "endIndex": 23 - }, - "releaseTag": "Public", - "overloadIndex": 26, - "parameters": [ - { - "parameterName": "selectors", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 16 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 17, - "endIndex": 18 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S5", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S6", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S7", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelector:function(27)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelector(selectors: " - }, - { - "kind": "Content", - "text": "[\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": ",\n " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "\n]" - }, - { - "kind": "Content", - "text": ", projector: " - }, - { - "kind": "Content", - "text": "(s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, s8: S8, props: Props) => Result" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 21, - "endIndex": 25 - }, - "releaseTag": "Public", - "overloadIndex": 27, - "parameters": [ - { - "parameterName": "selectors", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "projector", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 20 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "State", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S1", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S2", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S3", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S4", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S5", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S6", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S7", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "S8", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Result", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "createSelector", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", + "deprecated": "", "returns": "", "see": [], "params": [] diff --git a/projects/www/src/app/reference/store/createSelectorFactory.json b/projects/www/src/app/reference/store/createSelectorFactory.json index a697ee5bfa..34a6c7d68a 100644 --- a/projects/www/src/app/reference/store/createSelectorFactory.json +++ b/projects/www/src/app/reference/store/createSelectorFactory.json @@ -249,289 +249,6 @@ "see": [], "params": [] } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelectorFactory:function(3)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelectorFactory(memoize: " - }, - { - "kind": "Reference", - "text": "MemoizeFn", - "canonicalReference": "@ngrx/store!MemoizeFn:type" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(...input: any[]) => " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 9, - "endIndex": 12 - }, - "releaseTag": "Public", - "overloadIndex": 3, - "parameters": [ - { - "parameterName": "memoize", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - } - }, - { - "typeParameterName": "V", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 5, - "endIndex": 6 - } - } - ], - "name": "createSelectorFactory", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!createSelectorFactory:function(4)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function createSelectorFactory(memoize: " - }, - { - "kind": "Reference", - "text": "MemoizeFn", - "canonicalReference": "@ngrx/store!MemoizeFn:type" - }, - { - "kind": "Content", - "text": ", options: " - }, - { - "kind": "Reference", - "text": "SelectorFactoryConfig", - "canonicalReference": "@ngrx/store!~SelectorFactoryConfig:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(...input: any[]) => " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 12, - "endIndex": 15 - }, - "releaseTag": "Public", - "overloadIndex": 4, - "parameters": [ - { - "parameterName": "memoize", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "isOptional": false - }, - { - "parameterName": "options", - "parameterTypeTokenRange": { - "startIndex": 9, - "endIndex": 11 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - } - }, - { - "typeParameterName": "V", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 5, - "endIndex": 6 - } - } - ], - "name": "createSelectorFactory", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } } ] } diff --git a/projects/www/src/app/reference/store/defaultStateFn.json b/projects/www/src/app/reference/store/defaultStateFn.json index 5d051522f8..1adc8e2874 100644 --- a/projects/www/src/app/reference/store/defaultStateFn.json +++ b/projects/www/src/app/reference/store/defaultStateFn.json @@ -29,16 +29,7 @@ }, { "kind": "Content", - "text": "[] | " - }, - { - "kind": "Reference", - "text": "SelectorWithProps", - "canonicalReference": "@ngrx/store!SelectorWithProps:type" - }, - { - "kind": "Content", - "text": "[]" + "text": "[]" }, { "kind": "Content", @@ -72,8 +63,8 @@ ], "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", "returnTypeTokenRange": { - "startIndex": 12, - "endIndex": 13 + "startIndex": 10, + "endIndex": 11 }, "releaseTag": "Public", "overloadIndex": 1, @@ -90,23 +81,23 @@ "parameterName": "selectors", "parameterTypeTokenRange": { "startIndex": 3, - "endIndex": 7 + "endIndex": 5 }, "isOptional": false }, { "parameterName": "props", "parameterTypeTokenRange": { - "startIndex": 8, - "endIndex": 9 + "startIndex": 6, + "endIndex": 7 }, "isOptional": false }, { "parameterName": "memoizedProjector", "parameterTypeTokenRange": { - "startIndex": 10, - "endIndex": 11 + "startIndex": 8, + "endIndex": 9 }, "isOptional": false } diff --git a/projects/www/src/app/reference/store/select.json b/projects/www/src/app/reference/store/select.json index 65fbd8a764..70111f916a 100644 --- a/projects/www/src/app/reference/store/select.json +++ b/projects/www/src/app/reference/store/select.json @@ -108,1656 +108,6 @@ "see": [], "params": [] } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!select:function(2)", - "docComment": "/**\n * @deprecated\n *\n * Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function select(mapFn: " - }, - { - "kind": "Content", - "text": "(state: T, props: Props) => K" - }, - { - "kind": "Content", - "text": ", props: " - }, - { - "kind": "Content", - "text": "Props" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(source$: " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 5, - "endIndex": 10 - }, - "releaseTag": "Public", - "overloadIndex": 2, - "parameters": [ - { - "parameterName": "mapFn", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - }, - { - "parameterName": "props", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "Props", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "K", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "\n\nSelectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!select:function(3)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function select(key: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(source$: " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 5, - "endIndex": 10 - }, - "releaseTag": "Public", - "overloadIndex": 3, - "parameters": [ - { - "parameterName": "key", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!select:function(4)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(source$: " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 9, - "endIndex": 14 - }, - "releaseTag": "Public", - "overloadIndex": 4, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!select:function(5)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(source$: " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 13, - "endIndex": 18 - }, - "releaseTag": "Public", - "overloadIndex": 5, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!select:function(6)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": ", key4: " - }, - { - "kind": "Content", - "text": "d" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(source$: " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 17, - "endIndex": 22 - }, - "releaseTag": "Public", - "overloadIndex": 6, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - }, - "isOptional": false - }, - { - "parameterName": "key4", - "parameterTypeTokenRange": { - "startIndex": 15, - "endIndex": 16 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "d", - "constraintTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!select:function(7)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": ", key4: " - }, - { - "kind": "Content", - "text": "d" - }, - { - "kind": "Content", - "text": ", key5: " - }, - { - "kind": "Content", - "text": "e" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(source$: " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 21, - "endIndex": 26 - }, - "releaseTag": "Public", - "overloadIndex": 7, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 15, - "endIndex": 16 - }, - "isOptional": false - }, - { - "parameterName": "key4", - "parameterTypeTokenRange": { - "startIndex": 17, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "key5", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 20 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "d", - "constraintTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "e", - "constraintTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!select:function(8)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": ", key4: " - }, - { - "kind": "Content", - "text": "d" - }, - { - "kind": "Content", - "text": ", key5: " - }, - { - "kind": "Content", - "text": "e" - }, - { - "kind": "Content", - "text": ", key6: " - }, - { - "kind": "Content", - "text": "f" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(source$: " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 25, - "endIndex": 30 - }, - "releaseTag": "Public", - "overloadIndex": 8, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 15, - "endIndex": 16 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 17, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "key4", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 20 - }, - "isOptional": false - }, - { - "parameterName": "key5", - "parameterTypeTokenRange": { - "startIndex": 21, - "endIndex": 22 - }, - "isOptional": false - }, - { - "parameterName": "key6", - "parameterTypeTokenRange": { - "startIndex": 23, - "endIndex": 24 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "d", - "constraintTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "e", - "constraintTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "f", - "constraintTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "", - "returns": "", - "see": [], - "params": [] - } - }, - { - "kind": "Function", - "canonicalReference": "@ngrx/store!select:function(9)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function select(key1: " - }, - { - "kind": "Content", - "text": "a" - }, - { - "kind": "Content", - "text": ", key2: " - }, - { - "kind": "Content", - "text": "b" - }, - { - "kind": "Content", - "text": ", key3: " - }, - { - "kind": "Content", - "text": "c" - }, - { - "kind": "Content", - "text": ", key4: " - }, - { - "kind": "Content", - "text": "d" - }, - { - "kind": "Content", - "text": ", key5: " - }, - { - "kind": "Content", - "text": "e" - }, - { - "kind": "Content", - "text": ", key6: " - }, - { - "kind": "Content", - "text": "f" - }, - { - "kind": "Content", - "text": ", ...paths: " - }, - { - "kind": "Content", - "text": "string[]" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "(source$: " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Reference", - "text": "Observable", - "canonicalReference": "rxjs!Observable:class" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "../../dist/modules/store/types/ngrx-store.d.ts", - "returnTypeTokenRange": { - "startIndex": 29, - "endIndex": 34 - }, - "releaseTag": "Public", - "overloadIndex": 9, - "parameters": [ - { - "parameterName": "key1", - "parameterTypeTokenRange": { - "startIndex": 15, - "endIndex": 16 - }, - "isOptional": false - }, - { - "parameterName": "key2", - "parameterTypeTokenRange": { - "startIndex": 17, - "endIndex": 18 - }, - "isOptional": false - }, - { - "parameterName": "key3", - "parameterTypeTokenRange": { - "startIndex": 19, - "endIndex": 20 - }, - "isOptional": false - }, - { - "parameterName": "key4", - "parameterTypeTokenRange": { - "startIndex": 21, - "endIndex": 22 - }, - "isOptional": false - }, - { - "parameterName": "key5", - "parameterTypeTokenRange": { - "startIndex": 23, - "endIndex": 24 - }, - "isOptional": false - }, - { - "parameterName": "key6", - "parameterTypeTokenRange": { - "startIndex": 25, - "endIndex": 26 - }, - "isOptional": false - }, - { - "parameterName": "paths", - "parameterTypeTokenRange": { - "startIndex": 27, - "endIndex": 28 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "a", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "b", - "constraintTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "c", - "constraintTokenRange": { - "startIndex": 5, - "endIndex": 6 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "d", - "constraintTokenRange": { - "startIndex": 7, - "endIndex": 8 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "e", - "constraintTokenRange": { - "startIndex": 9, - "endIndex": 10 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "f", - "constraintTokenRange": { - "startIndex": 11, - "endIndex": 12 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - }, - { - "typeParameterName": "K", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 13, - "endIndex": 14 - } - } - ], - "name": "select", - "docs": { - "modifiers": { - "isInternal": false, - "isPublic": false, - "isAlpha": false, - "isBeta": false, - "isOverride": false, - "isExperimental": false - }, - "summary": "", - "usageNotes": "", - "remarks": "", - "deprecated": "", - "returns": "", - "see": [], - "params": [] - } } ] } diff --git a/projects/www/src/app/reference/store/testing/MockSelector.json b/projects/www/src/app/reference/store/testing/MockSelector.json index 9ae8a59e65..661c5ecd70 100644 --- a/projects/www/src/app/reference/store/testing/MockSelector.json +++ b/projects/www/src/app/reference/store/testing/MockSelector.json @@ -40,16 +40,7 @@ }, { "kind": "Content", - "text": " | " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": "" + "text": "" }, { "kind": "Content", @@ -62,7 +53,7 @@ "name": "selector", "propertyTypeTokenRange": { "startIndex": 1, - "endIndex": 6 + "endIndex": 4 }, "docs": { "modifiers": { diff --git a/projects/www/src/app/reference/store/testing/MockStore.json b/projects/www/src/app/reference/store/testing/MockStore.json index 19a5b64890..5146428816 100644 --- a/projects/www/src/app/reference/store/testing/MockStore.json +++ b/projects/www/src/app/reference/store/testing/MockStore.json @@ -239,12 +239,12 @@ }, { "kind": "Reference", - "text": "Memoized", - "canonicalReference": "@ngrx/store/testing!~Memoized:type" + "text": "MemoizedSelector", + "canonicalReference": "@ngrx/store!MemoizedSelector:interface" }, { "kind": "Content", - "text": "" + "text": "" }, { "kind": "Content", @@ -269,16 +269,7 @@ }, { "kind": "Content", - "text": " ? T : Selector extends " - }, - { - "kind": "Reference", - "text": "MemoizedSelectorWithProps", - "canonicalReference": "@ngrx/store!MemoizedSelectorWithProps:interface" - }, - { - "kind": "Content", - "text": " ? U : Value" + "text": " ? T : Value" }, { "kind": "Content", @@ -302,21 +293,12 @@ }, { "kind": "Reference", - "text": "OnlyMemoized", - "canonicalReference": "@ngrx/store/testing!~OnlyMemoized:type" - }, - { - "kind": "Content", - "text": "" + "text": "" }, { "kind": "Content", @@ -354,14 +336,14 @@ }, "defaultTypeTokenRange": { "startIndex": 6, - "endIndex": 11 + "endIndex": 9 } } ], "isStatic": false, "returnTypeTokenRange": { - "startIndex": 16, - "endIndex": 20 + "startIndex": 14, + "endIndex": 16 }, "releaseTag": "Public", "isProtected": false, @@ -370,16 +352,16 @@ { "parameterName": "selector", "parameterTypeTokenRange": { - "startIndex": 12, - "endIndex": 13 + "startIndex": 10, + "endIndex": 11 }, "isOptional": false }, { "parameterName": "value", "parameterTypeTokenRange": { - "startIndex": 14, - "endIndex": 15 + "startIndex": 12, + "endIndex": 13 }, "isOptional": false } @@ -623,14 +605,6 @@ "kind": "Content", "text": "any" }, - { - "kind": "Content", - "text": ", prop?: " - }, - { - "kind": "Content", - "text": "any" - }, { "kind": "Content", "text": "): " @@ -651,8 +625,8 @@ ], "isStatic": false, "returnTypeTokenRange": { - "startIndex": 5, - "endIndex": 7 + "startIndex": 3, + "endIndex": 5 }, "releaseTag": "Public", "isProtected": false, @@ -665,14 +639,6 @@ "endIndex": 2 }, "isOptional": false - }, - { - "parameterName": "prop", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "isOptional": true } ], "isOptional": false,