source: trip-planner-front/node_modules/@angular/cdk/collections/view-repeater.d.ts@ eed0bf8

Last change on this file since eed0bf8 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 3.8 KB
RevLine 
[6a3a178]1/**
2 * @license
3 * Copyright Google LLC All Rights Reserved.
4 *
5 * Use of this source code is governed by an MIT-style license that can be
6 * found in the LICENSE file at https://angular.io/license
7 */
8import { InjectionToken, IterableChangeRecord, IterableChanges, TemplateRef, ViewContainerRef } from '@angular/core';
9/**
10 * The context for an embedded view in the repeater's view container.
11 *
12 * @template T The type for the embedded view's $implicit property.
13 */
14export interface _ViewRepeaterItemContext<T> {
15 $implicit?: T;
16}
17/**
18 * The arguments needed to construct an embedded view for an item in a view
19 * container.
20 *
21 * @template C The type for the context passed to each embedded view.
22 */
23export interface _ViewRepeaterItemInsertArgs<C> {
24 templateRef: TemplateRef<C>;
25 context?: C;
26 index?: number;
27}
28/**
29 * A factory that derives the embedded view context for an item in a view
30 * container.
31 *
32 * @template T The type for the embedded view's $implicit property.
33 * @template R The type for the item in each IterableDiffer change record.
34 * @template C The type for the context passed to each embedded view.
35 */
36export declare type _ViewRepeaterItemContextFactory<T, R, C extends _ViewRepeaterItemContext<T>> = (record: IterableChangeRecord<R>, adjustedPreviousIndex: number | null, currentIndex: number | null) => _ViewRepeaterItemInsertArgs<C>;
37/**
38 * Extracts the value of an item from an {@link IterableChangeRecord}.
39 *
40 * @template T The type for the embedded view's $implicit property.
41 * @template R The type for the item in each IterableDiffer change record.
42 */
43export declare type _ViewRepeaterItemValueResolver<T, R> = (record: IterableChangeRecord<R>) => T;
44/** Indicates how a view was changed by a {@link _ViewRepeater}. */
45export declare const enum _ViewRepeaterOperation {
46 /** The content of an existing view was replaced with another item. */
47 REPLACED = 0,
48 /** A new view was created with `createEmbeddedView`. */
49 INSERTED = 1,
50 /** The position of a view changed, but the content remains the same. */
51 MOVED = 2,
52 /** A view was detached from the view container. */
53 REMOVED = 3
54}
55/**
56 * Meta data describing the state of a view after it was updated by a
57 * {@link _ViewRepeater}.
58 *
59 * @template R The type for the item in each IterableDiffer change record.
60 * @template C The type for the context passed to each embedded view.
61 */
62export interface _ViewRepeaterItemChange<R, C> {
63 /** The view's context after it was changed. */
64 context?: C;
65 /** Indicates how the view was changed. */
66 operation: _ViewRepeaterOperation;
67 /** The view's corresponding change record. */
68 record: IterableChangeRecord<R>;
69}
70/**
71 * Type for a callback to be executed after a view has changed.
72 *
73 * @template R The type for the item in each IterableDiffer change record.
74 * @template C The type for the context passed to each embedded view.
75 */
76export declare type _ViewRepeaterItemChanged<R, C> = (change: _ViewRepeaterItemChange<R, C>) => void;
77/**
78 * Describes a strategy for rendering items in a {@link ViewContainerRef}.
79 *
80 * @template T The type for the embedded view's $implicit property.
81 * @template R The type for the item in each IterableDiffer change record.
82 * @template C The type for the context passed to each embedded view.
83 */
84export interface _ViewRepeater<T, R, C extends _ViewRepeaterItemContext<T>> {
85 applyChanges(changes: IterableChanges<R>, viewContainerRef: ViewContainerRef, itemContextFactory: _ViewRepeaterItemContextFactory<T, R, C>, itemValueResolver: _ViewRepeaterItemValueResolver<T, R>, itemViewChanged?: _ViewRepeaterItemChanged<R, C>): void;
86 detach(): void;
87}
88/**
89 * Injection token for {@link _ViewRepeater}. This token is for use by Angular Material only.
90 * @docs-private
91 */
92export declare const _VIEW_REPEATER_STRATEGY: InjectionToken<_ViewRepeater<unknown, unknown, _ViewRepeaterItemContext<unknown>>>;
Note: See TracBrowser for help on using the repository browser.