@symbiote-native/angular 3.1.2 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/angular/accessibility-events.d.ts +12 -0
- package/build/angular/accessibility-events.js +28 -0
- package/build/angular/accessibility-events.js.map +1 -0
- package/build/angular/accessibility-inputs.d.ts +40 -0
- package/build/angular/accessibility-inputs.js +130 -0
- package/build/angular/accessibility-inputs.js.map +1 -0
- package/build/angular/bootstrap.d.ts +3 -1
- package/build/angular/bootstrap.js +4 -1
- package/build/angular/bootstrap.js.map +1 -1
- package/build/angular/components/flat-list/flat-list-template.d.ts +1 -0
- package/build/angular/components/flat-list/flat-list-template.js +158 -0
- package/build/angular/components/flat-list/flat-list-template.js.map +1 -0
- package/build/angular/components/flat-list/index.d.ts +6 -61
- package/build/angular/components/flat-list/index.js +26 -463
- package/build/angular/components/flat-list/index.js.map +1 -1
- package/build/angular/components/keyboard-avoiding-view/index.d.ts +4 -40
- package/build/angular/components/keyboard-avoiding-view/index.js +7 -131
- package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
- package/build/angular/components/modal/index.d.ts +5 -41
- package/build/angular/components/modal/index.js +8 -133
- package/build/angular/components/modal/index.js.map +1 -1
- package/build/angular/components/section-list/index.d.ts +4 -51
- package/build/angular/components/section-list/index.js +18 -335
- package/build/angular/components/section-list/index.js.map +1 -1
- package/build/angular/components/virtualized-list/cell-registry.d.ts +35 -0
- package/build/angular/components/virtualized-list/cell-registry.js +133 -0
- package/build/angular/components/virtualized-list/cell-registry.js.map +1 -0
- package/build/angular/components/virtualized-list/index.d.ts +18 -253
- package/build/angular/components/virtualized-list/index.js +112 -1178
- package/build/angular/components/virtualized-list/index.js.map +1 -1
- package/build/angular/components/virtualized-list/list-a11y-forward.d.ts +1 -0
- package/build/angular/components/virtualized-list/list-a11y-forward.js +42 -0
- package/build/angular/components/virtualized-list/list-a11y-forward.js.map +1 -0
- package/build/angular/components/virtualized-list/list-bags.d.ts +32 -0
- package/build/angular/components/virtualized-list/list-bags.js +120 -0
- package/build/angular/components/virtualized-list/list-bags.js.map +1 -0
- package/build/angular/components/virtualized-list/list-effects.d.ts +31 -0
- package/build/angular/components/virtualized-list/list-effects.js +83 -0
- package/build/angular/components/virtualized-list/list-effects.js.map +1 -0
- package/build/angular/components/virtualized-list/list-events.d.ts +17 -0
- package/build/angular/components/virtualized-list/list-events.js +34 -0
- package/build/angular/components/virtualized-list/list-events.js.map +1 -0
- package/build/angular/components/virtualized-list/list-handle.d.ts +35 -0
- package/build/angular/components/virtualized-list/list-handle.js +61 -0
- package/build/angular/components/virtualized-list/list-handle.js.map +1 -0
- package/build/angular/components/virtualized-list/list-inputs.d.ts +78 -0
- package/build/angular/components/virtualized-list/list-inputs.js +150 -0
- package/build/angular/components/virtualized-list/list-inputs.js.map +1 -0
- package/build/angular/components/virtualized-list/list-props.d.ts +58 -0
- package/build/angular/components/virtualized-list/list-props.js +3 -0
- package/build/angular/components/virtualized-list/list-props.js.map +1 -0
- package/build/angular/components/virtualized-list/list-styles.d.ts +23 -0
- package/build/angular/components/virtualized-list/list-styles.js +26 -0
- package/build/angular/components/virtualized-list/list-styles.js.map +1 -0
- package/build/angular/components/virtualized-list/list-template.d.ts +1 -0
- package/build/angular/components/virtualized-list/list-template.js +176 -0
- package/build/angular/components/virtualized-list/list-template.js.map +1 -0
- package/build/angular/components/virtualized-section-list/index.d.ts +13 -70
- package/build/angular/components/virtualized-section-list/index.js +22 -455
- package/build/angular/components/virtualized-section-list/index.js.map +1 -1
- package/build/angular/components/virtualized-section-list/section-list-template.d.ts +1 -0
- package/build/angular/components/virtualized-section-list/section-list-template.js +107 -0
- package/build/angular/components/virtualized-section-list/section-list-template.js.map +1 -0
- package/build/angular/finalization-registry.d.ts +4 -0
- package/build/angular/finalization-registry.js +17 -0
- package/build/angular/finalization-registry.js.map +1 -0
- package/build/angular/index.d.ts +5 -1
- package/build/angular/index.js +5 -1
- package/build/angular/index.js.map +1 -1
- package/build/angular/native-view-base.d.ts +19 -0
- package/build/angular/native-view-base.js +48 -0
- package/build/angular/native-view-base.js.map +1 -0
- package/build/angular/render/index.d.ts +2 -1
- package/build/angular/render/index.js +46 -73
- package/build/angular/render/index.js.map +1 -1
- package/build/angular/services/connect-watched-signal.d.ts +2 -0
- package/build/angular/services/connect-watched-signal.js +9 -0
- package/build/angular/services/connect-watched-signal.js.map +1 -0
- package/build/angular/services/create-event-value-hook.d.ts +3 -0
- package/build/angular/services/create-event-value-hook.js +17 -0
- package/build/angular/services/create-event-value-hook.js.map +1 -0
- package/build/angular/services/create-resource-hook.d.ts +7 -0
- package/build/angular/services/create-resource-hook.js +20 -0
- package/build/angular/services/create-resource-hook.js.map +1 -0
- package/build/angular/services/index.d.ts +4 -0
- package/build/angular/services/index.js +4 -0
- package/build/angular/services/index.js.map +1 -1
- package/build/angular/services/permissions-service-base.d.ts +14 -0
- package/build/angular/services/permissions-service-base.js +38 -0
- package/build/angular/services/permissions-service-base.js.map +1 -0
- package/package.json +6 -6
- package/src/accessibility-events.ts +13 -0
- package/src/accessibility-inputs.ts +89 -0
- package/src/bootstrap.ts +6 -2
- package/src/components/flat-list/flat-list-template.ts +159 -0
- package/src/components/flat-list/index.ts +30 -307
- package/src/components/keyboard-avoiding-view/index.ts +4 -78
- package/src/components/modal/index.ts +7 -80
- package/src/components/section-list/index.ts +21 -172
- package/src/components/virtualized-list/cell-registry.ts +199 -0
- package/src/components/virtualized-list/index.ts +145 -1181
- package/src/components/virtualized-list/list-a11y-forward.ts +42 -0
- package/src/components/virtualized-list/list-bags.ts +142 -0
- package/src/components/virtualized-list/list-effects.ts +116 -0
- package/src/components/virtualized-list/list-events.ts +31 -0
- package/src/components/virtualized-list/list-handle.ts +92 -0
- package/src/components/virtualized-list/list-inputs.ts +149 -0
- package/src/components/virtualized-list/list-props.ts +81 -0
- package/src/components/virtualized-list/list-styles.ts +62 -0
- package/src/components/virtualized-list/list-template.ts +175 -0
- package/src/components/virtualized-section-list/index.ts +40 -351
- package/src/components/virtualized-section-list/section-list-template.ts +108 -0
- package/src/finalization-registry.ts +18 -0
- package/src/index.ts +12 -1
- package/src/native-view-base.ts +51 -0
- package/src/render/index.ts +76 -77
- package/src/services/connect-watched-signal.ts +15 -0
- package/src/services/create-event-value-hook.ts +24 -0
- package/src/services/create-resource-hook.ts +32 -0
- package/src/services/index.ts +4 -0
- package/src/services/permissions-service-base.ts +46 -0
|
@@ -1,42 +1,15 @@
|
|
|
1
|
-
// FlatList, the
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
// (chunkIntoRows / rowKeyExtractor / expandRowViewability / row-separator unwrap) is shared
|
|
6
|
-
// verbatim from @symbiote-native/components, same as React/Vue's FlatLists.
|
|
7
|
-
//
|
|
8
|
-
// TEMPLATE FORWARDING — both column paths RE-STAMP; neither uses a bare `<ng-content>` passthrough.
|
|
9
|
-
// Angular's @ContentChild does NOT resolve a directive across a SECOND `<ng-content>` re-projection
|
|
10
|
-
// hop (only what's projected directly onto the querying component's own tag) — a bare
|
|
11
|
-
// `<VirtualizedList ...><ng-content></ng-content></VirtualizedList>` left VirtualizedList's own
|
|
12
|
-
// itemDir/headerDir/etc. undefined, rendering every cell empty (confirmed device bug, see
|
|
13
|
-
// flat-list.test.ts). Fixed for both column modes:
|
|
14
|
-
// * Single column (numColumns <= 1): FlatList captures the app's `<ng-template vListItem>` (and
|
|
15
|
-
// vListHeader/vListFooter/vListEmpty/vListSeparator) with its OWN @ContentChild — a single,
|
|
16
|
-
// direct projection hop, which always resolves. The per-cell item and separator templates go
|
|
17
|
-
// straight in through VirtualizedList's `[itemTemplate]`/`[itemSeparatorTemplate]`, so a cell
|
|
18
|
-
// is ONE outlet deep (a re-stamp doubled every cell's embedded views); the once-per-list
|
|
19
|
-
// header/footer/empty slots are still re-stamped.
|
|
20
|
-
// * Multi column (numColumns > 1): same re-stamp, but the app's vListItem is typed for ItemT
|
|
21
|
-
// while the virtualized stream is rows (IRow<ItemT>), so a plain passthrough couldn't work
|
|
22
|
-
// regardless. The row vListItem lays out the N columns side by side (each cell stamps the
|
|
23
|
-
// app's item template via VListOutletDirective with context {item, index: row.startIndex +
|
|
24
|
-
// column, separators}), the row vListSeparator unwraps the flanking rows to their last/first
|
|
25
|
-
// item, and onViewableItemsChanged is wrapped with expandRowViewability so the caller still
|
|
26
|
-
// sees per-item visibility — mirrors how Vue's FlatList intercepts renderItem with renderRow.
|
|
27
|
-
//
|
|
28
|
-
// The imperative handle (scrollToIndex / scrollToOffset / scrollToEnd / scrollToItem /
|
|
29
|
-
// recordInteraction / flashScrollIndicators / getScroll* / getNativeScrollRef) is RN's FlatList
|
|
30
|
-
// surface, delegated straight to the inner VirtualizedList (@ViewChild). The element-returning
|
|
31
|
-
// props (renderItem / ItemSeparatorComponent / List{Header,Footer,Empty}Component) are templates
|
|
32
|
-
// in Angular, so they're absent from IFlatListProps per the per-adapter children/render split;
|
|
33
|
-
// everything else mirrors IVirtualizedListProps.
|
|
34
|
-
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild, inject, } from '@angular/core';
|
|
1
|
+
// FlatList, the convenience surface over VirtualizedList: a plain `data` array, and `numColumns`
|
|
2
|
+
// packing items into rows so the virtualized stream is rows, not items. The row shaping is shared
|
|
3
|
+
// with the React and Vue FlatLists, windowing and the scroll handle come from VirtualizedList
|
|
4
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, inject, } from '@angular/core';
|
|
35
5
|
import { SINGLE_COLUMN, chunkIntoRows, expandRowViewability, firstItemOfRow, lastItemOfRow, removeClippedSubviewsOrDefault, rowKeyExtractor, } from '@symbiote-native/components';
|
|
36
6
|
import { Platform, dlog, flattenStyle, resolveClassName, } from '@symbiote-native/engine';
|
|
37
7
|
import { VirtualizedList, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from '../virtualized-list';
|
|
38
8
|
import { VListOutletDirective } from '../virtualized-list/directives';
|
|
9
|
+
import { ListInputsBase } from '../virtualized-list/list-inputs';
|
|
10
|
+
import { provideGateDemand } from '../../gate-demand';
|
|
39
11
|
import { stableAnchorStyle, SymbioteStyleInputDirective, ViewHost, } from '../../primitives';
|
|
12
|
+
import { FLAT_LIST_TEMPLATE } from './flat-list-template';
|
|
40
13
|
import * as i0 from "@angular/core";
|
|
41
14
|
import * as i1 from "../../primitives/shared";
|
|
42
15
|
function isRecord(value) {
|
|
@@ -52,52 +25,35 @@ function isSeparators(value) {
|
|
|
52
25
|
typeof value['highlight'] === 'function' &&
|
|
53
26
|
typeof value['unhighlight'] === 'function');
|
|
54
27
|
}
|
|
55
|
-
//
|
|
56
|
-
// always supplies a real one, so in practice the live handle flows through.
|
|
28
|
+
// A fallback for a row whose separators handle is absent, `VirtualizedList` always supplies one
|
|
57
29
|
const NOOP_SEPARATORS = {
|
|
58
30
|
highlight: () => undefined,
|
|
59
31
|
unhighlight: () => undefined,
|
|
60
32
|
updateProps: () => undefined,
|
|
61
33
|
};
|
|
62
34
|
export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from '../virtualized-list';
|
|
63
|
-
export class FlatList {
|
|
35
|
+
export class FlatList extends ListInputsBase {
|
|
64
36
|
constructor() {
|
|
65
|
-
|
|
66
|
-
// `
|
|
67
|
-
// the template's `(endReached)="endReached.emit($event)"` style forwarding above).
|
|
68
|
-
this.endReached = new EventEmitter();
|
|
69
|
-
this.startReached = new EventEmitter();
|
|
70
|
-
this.refresh = new EventEmitter();
|
|
71
|
-
this.viewableItemsChanged = new EventEmitter();
|
|
72
|
-
this.scrollToIndexFailed = new EventEmitter();
|
|
73
|
-
// This component's OWN host — the non-painting anchor `class="..."` at the use site resolves
|
|
74
|
-
// onto (see anchorHostStyle's doc comment) — NOT `listRef` above, which targets the real inner
|
|
75
|
-
// `<VirtualizedList>` one level down (itself its own separate anchor host).
|
|
37
|
+
super(...arguments);
|
|
38
|
+
// This component's own host, the anchor `class="..."` resolves onto, not the inner list's
|
|
76
39
|
this.elementRef = inject(ElementRef);
|
|
77
|
-
// --- derived view state (recomputed in ngOnChanges, stable identity across CD) ---
|
|
78
40
|
this.rows = [];
|
|
79
|
-
//
|
|
80
|
-
// regular @Input() property write), which only understands a flat object — an array (RN's
|
|
81
|
-
// own `style={[a, b]}` composition idiom) crashes deep inside Angular's styling engine. So
|
|
82
|
-
// every style value this component stamps onto a template `[style]=` binding is flattened
|
|
83
|
-
// via the engine's own flattenStyle first, here at the source rather than at each call site.
|
|
41
|
+
// `[style]` compiles to an instruction that takes a flat object only, so styles are flattened
|
|
84
42
|
this.rowStyle = flattenStyle([{ flexDirection: 'row' }]);
|
|
85
43
|
this.columnCellStyle = { flex: 1 };
|
|
86
44
|
this.resolvedStyle = undefined;
|
|
87
|
-
// ---- single-column data adaptation (plain array -> getItem/getItemCount) ----
|
|
88
45
|
this.getFlatItem = (_data, index) => this.data[index];
|
|
89
46
|
this.getFlatCount = (_data) => this.data.length;
|
|
90
|
-
//
|
|
47
|
+
// With several columns the virtualized stream is rows
|
|
91
48
|
this.getRow = (_data, index) => this.rows[index];
|
|
92
49
|
this.getRowCount = (_data) => this.rows.length;
|
|
93
50
|
this.rowKey = (row, _index) => rowKeyExtractor(row, this.keyExtractor);
|
|
94
|
-
//
|
|
95
|
-
// visibility, not row-level (shared expandRowViewability), matching Vue.
|
|
51
|
+
// Row viewability expands back to per-item tokens, so the caller sees items, not rows
|
|
96
52
|
this.rowViewableItemsChanged = (info) => {
|
|
97
53
|
this.viewableItemsChanged.emit(expandRowViewability(info, this.keyExtractor));
|
|
98
54
|
};
|
|
99
55
|
}
|
|
100
|
-
//
|
|
56
|
+
// The list always gets a value here, defaulted per platform
|
|
101
57
|
get resolvedRemoveClippedSubviews() {
|
|
102
58
|
return removeClippedSubviewsOrDefault(this.removeClippedSubviews, Platform.OS);
|
|
103
59
|
}
|
|
@@ -107,18 +63,14 @@ export class FlatList {
|
|
|
107
63
|
get isMultiColumn() {
|
|
108
64
|
return this.columns > SINGLE_COLUMN;
|
|
109
65
|
}
|
|
110
|
-
// ngDoCheck
|
|
111
|
-
//
|
|
112
|
-
// canary). stableAnchorStyle, not a bare flattenStyle, keeps `resolvedStyle`'s reference stable
|
|
113
|
-
// across ticks that changed nothing - a fresh object every tick defeats VirtualizedList's own
|
|
114
|
-
// dedup gate and free-runs CD (see stableAnchorStyle's doc comment).
|
|
66
|
+
// `ngDoCheck`, not `ngOnChanges`: a bare `class=` never becomes an input and would freeze the
|
|
67
|
+
// merge. `stableAnchorStyle` keeps the reference steady so the inner list's dedup gate holds
|
|
115
68
|
ngDoCheck() {
|
|
116
69
|
this.resolvedStyle = stableAnchorStyle(this.elementRef, this.style, this.resolvedStyle);
|
|
117
70
|
}
|
|
118
71
|
ngOnChanges(changes) {
|
|
119
72
|
if (changes['columnWrapperStyle'] !== undefined) {
|
|
120
|
-
// A class-name string resolves through the shared registry before flattenStyle
|
|
121
|
-
// only understands style objects/arrays.
|
|
73
|
+
// A class-name string resolves through the shared registry before `flattenStyle`
|
|
122
74
|
const resolvedColumnWrapperStyle = typeof this.columnWrapperStyle === 'string'
|
|
123
75
|
? resolveClassName(this.columnWrapperStyle)
|
|
124
76
|
: this.columnWrapperStyle;
|
|
@@ -146,10 +98,8 @@ export class FlatList {
|
|
|
146
98
|
},
|
|
147
99
|
}));
|
|
148
100
|
}
|
|
149
|
-
//
|
|
150
|
-
//
|
|
151
|
-
// multi-column FlatList. Args arrive `unknown` from the template's `let` bindings (Angular cannot
|
|
152
|
-
// type a generic structural directive's context), narrowed here — no `as`.
|
|
101
|
+
// Every item shares the row's separators handle and carries its absolute index. The arguments
|
|
102
|
+
// arrive `unknown` from the template's `let` bindings and are narrowed here
|
|
153
103
|
rowCells(row, separators) {
|
|
154
104
|
if (!isRow(row))
|
|
155
105
|
return [];
|
|
@@ -162,9 +112,7 @@ export class FlatList {
|
|
|
162
112
|
return { key, context: { $implicit: item, index, separators: handle } };
|
|
163
113
|
});
|
|
164
114
|
}
|
|
165
|
-
// The divider between rows shows real items
|
|
166
|
-
// app's separator template, typed on ItemT, sees items rather than the IRow wrapper. Args arrive
|
|
167
|
-
// `unknown` from the template's `let` bindings, narrowed here.
|
|
115
|
+
// The divider between rows shows real items, so the app's separator template sees items
|
|
168
116
|
rowSeparatorContext(highlighted, leadingRow, trailingRow) {
|
|
169
117
|
const isHighlighted = highlighted === true;
|
|
170
118
|
return {
|
|
@@ -178,7 +126,6 @@ export class FlatList {
|
|
|
178
126
|
: undefined,
|
|
179
127
|
};
|
|
180
128
|
}
|
|
181
|
-
// ---- imperative handle (RN FlatList surface) — delegates to the inner VirtualizedList ----
|
|
182
129
|
scrollToOffset(params) {
|
|
183
130
|
this.listRef?.scrollToOffset(params);
|
|
184
131
|
}
|
|
@@ -209,163 +156,15 @@ export class FlatList {
|
|
|
209
156
|
recordInteraction() {
|
|
210
157
|
this.listRef?.recordInteraction();
|
|
211
158
|
}
|
|
212
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FlatList, deps:
|
|
213
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FlatList, isStandalone: true, selector: "FlatList", inputs: { data: "data", testID: "testID", numColumns: "numColumns", columnWrapperStyle: "columnWrapperStyle", keyExtractor: "keyExtractor", getItemLayout: "getItemLayout", horizontal: "horizontal", inverted: "inverted", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", viewabilityConfig: "viewabilityConfig", viewabilityConfigCallbackPairs: "viewabilityConfigCallbackPairs", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", stickyHeaderIndices: "stickyHeaderIndices", maintainVisibleContentPosition: "maintainVisibleContentPosition", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", scrollEventThrottle: "scrollEventThrottle", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", keyboardDismissMode: "keyboardDismissMode", removeClippedSubviews: "removeClippedSubviews", nestedScrollEnabled: "nestedScrollEnabled", style: "style", contentContainerStyle: "contentContainerStyle" }, outputs: { endReached: "endReached", startReached: "startReached", refresh: "refresh", viewableItemsChanged: "viewableItemsChanged", scrollToIndexFailed: "scrollToIndexFailed" }, queries: [{ propertyName: "itemDir", first: true, predicate: VListItemDirective, descendants: true }, { propertyName: "headerDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "footerDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "emptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "separatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "listRef", first: true, predicate: VirtualizedList, descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
|
|
214
|
-
@if (isMultiColumn) {
|
|
215
|
-
<VirtualizedList
|
|
216
|
-
[data]="rows"
|
|
217
|
-
[getItem]="getRow"
|
|
218
|
-
[getItemCount]="getRowCount"
|
|
219
|
-
[keyExtractor]="rowKey"
|
|
220
|
-
[getItemLayout]="getItemLayout"
|
|
221
|
-
[horizontal]="horizontal"
|
|
222
|
-
[inverted]="inverted"
|
|
223
|
-
[extraData]="extraData"
|
|
224
|
-
(endReached)="endReached.emit($event)"
|
|
225
|
-
[onEndReachedThreshold]="onEndReachedThreshold"
|
|
226
|
-
(startReached)="startReached.emit($event)"
|
|
227
|
-
[onStartReachedThreshold]="onStartReachedThreshold"
|
|
228
|
-
(refresh)="refresh.emit()"
|
|
229
|
-
[refreshRequested]="refresh.observed"
|
|
230
|
-
[refreshing]="refreshing"
|
|
231
|
-
[progressViewOffset]="progressViewOffset"
|
|
232
|
-
(viewableItemsChanged)="rowViewableItemsChanged($event)"
|
|
233
|
-
[viewabilityConfig]="viewabilityConfig"
|
|
234
|
-
[viewabilityConfigCallbackPairs]="rowViewabilityPairs"
|
|
235
|
-
(scrollToIndexFailed)="scrollToIndexFailed.emit($event)"
|
|
236
|
-
[initialNumToRender]="initialNumToRender"
|
|
237
|
-
[initialScrollIndex]="initialScrollIndex"
|
|
238
|
-
[maxToRenderPerBatch]="maxToRenderPerBatch"
|
|
239
|
-
[updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
|
|
240
|
-
[windowSize]="windowSize"
|
|
241
|
-
[stickyHeaderIndices]="stickyHeaderIndices"
|
|
242
|
-
[maintainVisibleContentPosition]="maintainVisibleContentPosition"
|
|
243
|
-
[onScroll]="onScroll"
|
|
244
|
-
[onScrollBeginDrag]="onScrollBeginDrag"
|
|
245
|
-
[onScrollEndDrag]="onScrollEndDrag"
|
|
246
|
-
[onMomentumScrollBegin]="onMomentumScrollBegin"
|
|
247
|
-
[onMomentumScrollEnd]="onMomentumScrollEnd"
|
|
248
|
-
[scrollEventThrottle]="scrollEventThrottle"
|
|
249
|
-
[keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
|
|
250
|
-
[keyboardDismissMode]="keyboardDismissMode"
|
|
251
|
-
[removeClippedSubviews]="resolvedRemoveClippedSubviews"
|
|
252
|
-
[nestedScrollEnabled]="nestedScrollEnabled"
|
|
253
|
-
[testID]="testID"
|
|
254
|
-
[style]="resolvedStyle"
|
|
255
|
-
[contentContainerStyle]="contentContainerStyle"
|
|
256
|
-
>
|
|
257
|
-
<ng-template vListItem let-row let-separators="separators">
|
|
258
|
-
<view [style]="rowStyle">
|
|
259
|
-
@for (cell of rowCells(row, separators); track cell.key) {
|
|
260
|
-
<view [style]="columnCellStyle">
|
|
261
|
-
<ng-container
|
|
262
|
-
[vListOutlet]="itemDir?.templateRef"
|
|
263
|
-
[vListOutletContext]="cell.context"
|
|
264
|
-
></ng-container>
|
|
265
|
-
</view>
|
|
266
|
-
}
|
|
267
|
-
</view>
|
|
268
|
-
</ng-template>
|
|
269
|
-
@if (headerDir !== undefined) {
|
|
270
|
-
<ng-template vListHeader>
|
|
271
|
-
<ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
|
|
272
|
-
</ng-template>
|
|
273
|
-
}
|
|
274
|
-
@if (footerDir !== undefined) {
|
|
275
|
-
<ng-template vListFooter>
|
|
276
|
-
<ng-container [vListOutlet]="footerDir.templateRef"></ng-container>
|
|
277
|
-
</ng-template>
|
|
278
|
-
}
|
|
279
|
-
@if (emptyDir !== undefined) {
|
|
280
|
-
<ng-template vListEmpty>
|
|
281
|
-
<ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
|
|
282
|
-
</ng-template>
|
|
283
|
-
}
|
|
284
|
-
@if (separatorDir !== undefined) {
|
|
285
|
-
<ng-template
|
|
286
|
-
vListSeparator
|
|
287
|
-
let-highlighted="highlighted"
|
|
288
|
-
let-leadingItem="leadingItem"
|
|
289
|
-
let-trailingItem="trailingItem"
|
|
290
|
-
>
|
|
291
|
-
<ng-container
|
|
292
|
-
[vListOutlet]="separatorDir.templateRef"
|
|
293
|
-
[vListOutletContext]="
|
|
294
|
-
rowSeparatorContext(highlighted, leadingItem, trailingItem)
|
|
295
|
-
"
|
|
296
|
-
></ng-container>
|
|
297
|
-
</ng-template>
|
|
298
|
-
}
|
|
299
|
-
</VirtualizedList>
|
|
300
|
-
} @else {
|
|
301
|
-
<VirtualizedList
|
|
302
|
-
[data]="data"
|
|
303
|
-
[getItem]="getFlatItem"
|
|
304
|
-
[getItemCount]="getFlatCount"
|
|
305
|
-
[keyExtractor]="keyExtractor"
|
|
306
|
-
[getItemLayout]="getItemLayout"
|
|
307
|
-
[horizontal]="horizontal"
|
|
308
|
-
[inverted]="inverted"
|
|
309
|
-
[extraData]="extraData"
|
|
310
|
-
(endReached)="endReached.emit($event)"
|
|
311
|
-
[onEndReachedThreshold]="onEndReachedThreshold"
|
|
312
|
-
(startReached)="startReached.emit($event)"
|
|
313
|
-
[onStartReachedThreshold]="onStartReachedThreshold"
|
|
314
|
-
(refresh)="refresh.emit()"
|
|
315
|
-
[refreshRequested]="refresh.observed"
|
|
316
|
-
[refreshing]="refreshing"
|
|
317
|
-
[progressViewOffset]="progressViewOffset"
|
|
318
|
-
(viewableItemsChanged)="viewableItemsChanged.emit($event)"
|
|
319
|
-
[viewabilityConfig]="viewabilityConfig"
|
|
320
|
-
[viewabilityConfigCallbackPairs]="viewabilityConfigCallbackPairs"
|
|
321
|
-
(scrollToIndexFailed)="scrollToIndexFailed.emit($event)"
|
|
322
|
-
[initialNumToRender]="initialNumToRender"
|
|
323
|
-
[initialScrollIndex]="initialScrollIndex"
|
|
324
|
-
[maxToRenderPerBatch]="maxToRenderPerBatch"
|
|
325
|
-
[updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
|
|
326
|
-
[windowSize]="windowSize"
|
|
327
|
-
[stickyHeaderIndices]="stickyHeaderIndices"
|
|
328
|
-
[maintainVisibleContentPosition]="maintainVisibleContentPosition"
|
|
329
|
-
[onScroll]="onScroll"
|
|
330
|
-
[onScrollBeginDrag]="onScrollBeginDrag"
|
|
331
|
-
[onScrollEndDrag]="onScrollEndDrag"
|
|
332
|
-
[onMomentumScrollBegin]="onMomentumScrollBegin"
|
|
333
|
-
[onMomentumScrollEnd]="onMomentumScrollEnd"
|
|
334
|
-
[scrollEventThrottle]="scrollEventThrottle"
|
|
335
|
-
[keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
|
|
336
|
-
[keyboardDismissMode]="keyboardDismissMode"
|
|
337
|
-
[removeClippedSubviews]="resolvedRemoveClippedSubviews"
|
|
338
|
-
[nestedScrollEnabled]="nestedScrollEnabled"
|
|
339
|
-
[testID]="testID"
|
|
340
|
-
[style]="resolvedStyle"
|
|
341
|
-
[contentContainerStyle]="contentContainerStyle"
|
|
342
|
-
[itemTemplate]="itemDir?.templateRef"
|
|
343
|
-
[itemSeparatorTemplate]="separatorDir?.templateRef"
|
|
344
|
-
>
|
|
345
|
-
@if (headerDir !== undefined) {
|
|
346
|
-
<ng-template vListHeader>
|
|
347
|
-
<ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
|
|
348
|
-
</ng-template>
|
|
349
|
-
}
|
|
350
|
-
@if (footerDir !== undefined) {
|
|
351
|
-
<ng-template vListFooter>
|
|
352
|
-
<ng-container [vListOutlet]="footerDir.templateRef"></ng-container>
|
|
353
|
-
</ng-template>
|
|
354
|
-
}
|
|
355
|
-
@if (emptyDir !== undefined) {
|
|
356
|
-
<ng-template vListEmpty>
|
|
357
|
-
<ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
|
|
358
|
-
</ng-template>
|
|
359
|
-
}
|
|
360
|
-
</VirtualizedList>
|
|
361
|
-
}
|
|
362
|
-
`, isInline: true, dependencies: [{ kind: "component", type: VirtualizedList, selector: "VirtualizedList", inputs: ["data", "getItem", "getItemCount", "keyExtractor", "getItemLayout", "horizontal", "inverted", "extraData", "onEndReachedThreshold", "onStartReachedThreshold", "refreshing", "progressViewOffset", "refreshRequested", "viewabilityConfig", "viewabilityConfigCallbackPairs", "initialNumToRender", "initialScrollIndex", "maxToRenderPerBatch", "updateCellsBatchingPeriod", "windowSize", "stickyHeaderIndices", "maintainVisibleContentPosition", "onScroll", "onScrollBeginDrag", "onScrollEndDrag", "onMomentumScrollBegin", "onMomentumScrollEnd", "scrollEventThrottle", "keyboardShouldPersistTaps", "keyboardDismissMode", "removeClippedSubviews", "nestedScrollEnabled", "style", "contentContainerStyle", "testID", "nativeID", "accessible", "accessibilityLabel", "accessibilityHint", "accessibilityRole", "accessibilityState", "accessibilityValue", "accessibilityActions", "accessibilityLabelledBy", "importantForAccessibility", "accessibilityLiveRegion", "screenReaderFocusable", "accessibilityViewIsModal", "accessibilityElementsHidden", "accessibilityIgnoresInvertColors", "accessibilityLanguage", "accessibilityRespondsToUserInteraction", "accessibilityShowsLargeContentViewer", "accessibilityLargeContentTitle", "role", "ariaLabel", "ariaLabelledBy", "ariaLive", "ariaHidden", "ariaBusy", "ariaChecked", "ariaDisabled", "ariaExpanded", "ariaSelected", "ariaModal", "ariaValueMax", "ariaValueMin", "ariaValueNow", "ariaValueText", "itemTemplate", "itemSeparatorTemplate"], outputs: ["endReached", "startReached", "refresh", "viewableItemsChanged", "scrollToIndexFailed", "accessibilityAction", "accessibilityTap", "magicTap", "accessibilityEscape"] }, { kind: "directive", type: VListItemDirective, selector: "[vListItem]" }, { kind: "directive", type: VListHeaderDirective, selector: "[vListHeader]" }, { kind: "directive", type: VListFooterDirective, selector: "[vListFooter]" }, { kind: "directive", type: VListEmptyDirective, selector: "[vListEmpty]" }, { kind: "directive", type: VListSeparatorDirective, selector: "[vListSeparator]" }, { kind: "directive", type: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext"] }, { kind: "component", type: ViewHost, selector: "view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FlatList, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FlatList, isStandalone: true, selector: "FlatList", inputs: { data: "data", numColumns: "numColumns", columnWrapperStyle: "columnWrapperStyle" }, viewQueries: [{ propertyName: "listRef", first: true, predicate: VirtualizedList, descendants: true }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: "\n @if (isMultiColumn) {\n <VirtualizedList\n [data]=\"rows\"\n [getItem]=\"getRow\"\n [getItemCount]=\"getRowCount\"\n [keyExtractor]=\"rowKey\"\n [getItemLayout]=\"getItemLayout\"\n [horizontal]=\"horizontal\"\n [inverted]=\"inverted\"\n [extraData]=\"extraData\"\n (endReached)=\"endReached.emit($event)\"\n [onEndReachedThreshold]=\"onEndReachedThreshold\"\n (startReached)=\"startReached.emit($event)\"\n [onStartReachedThreshold]=\"onStartReachedThreshold\"\n (refresh)=\"refresh.emit()\"\n [refreshRequested]=\"refresh.observed\"\n [refreshing]=\"refreshing\"\n [progressViewOffset]=\"progressViewOffset\"\n (viewableItemsChanged)=\"rowViewableItemsChanged($event)\"\n [viewabilityConfig]=\"viewabilityConfig\"\n [viewabilityConfigCallbackPairs]=\"rowViewabilityPairs\"\n (scrollToIndexFailed)=\"scrollToIndexFailed.emit($event)\"\n [initialNumToRender]=\"initialNumToRender\"\n [initialScrollIndex]=\"initialScrollIndex\"\n [maxToRenderPerBatch]=\"maxToRenderPerBatch\"\n [updateCellsBatchingPeriod]=\"updateCellsBatchingPeriod\"\n [windowSize]=\"windowSize\"\n [stickyHeaderIndices]=\"stickyHeaderIndices\"\n [maintainVisibleContentPosition]=\"maintainVisibleContentPosition\"\n [onScroll]=\"onScroll\"\n [onScrollBeginDrag]=\"onScrollBeginDrag\"\n [onScrollEndDrag]=\"onScrollEndDrag\"\n [onMomentumScrollBegin]=\"onMomentumScrollBegin\"\n [onMomentumScrollEnd]=\"onMomentumScrollEnd\"\n [scrollEventThrottle]=\"scrollEventThrottle\"\n [keyboardShouldPersistTaps]=\"keyboardShouldPersistTaps\"\n [keyboardDismissMode]=\"keyboardDismissMode\"\n [removeClippedSubviews]=\"resolvedRemoveClippedSubviews\"\n [nestedScrollEnabled]=\"nestedScrollEnabled\"\n [testID]=\"testID\"\n [nativeID]=\"nativeID\"\n [style]=\"resolvedStyle\"\n [contentContainerStyle]=\"contentContainerStyle\"\n \n [accessible]=\"accessible\"\n [accessibilityLabel]=\"accessibilityLabel\"\n [accessibilityHint]=\"accessibilityHint\"\n [accessibilityRole]=\"accessibilityRole\"\n [accessibilityState]=\"accessibilityState\"\n [accessibilityValue]=\"accessibilityValue\"\n [accessibilityActions]=\"accessibilityActions\"\n [accessibilityLabelledBy]=\"accessibilityLabelledBy\"\n [importantForAccessibility]=\"importantForAccessibility\"\n [accessibilityLiveRegion]=\"accessibilityLiveRegion\"\n [screenReaderFocusable]=\"screenReaderFocusable\"\n [accessibilityViewIsModal]=\"accessibilityViewIsModal\"\n [accessibilityElementsHidden]=\"accessibilityElementsHidden\"\n [accessibilityIgnoresInvertColors]=\"accessibilityIgnoresInvertColors\"\n [accessibilityLanguage]=\"accessibilityLanguage\"\n [accessibilityRespondsToUserInteraction]=\"accessibilityRespondsToUserInteraction\"\n [accessibilityShowsLargeContentViewer]=\"accessibilityShowsLargeContentViewer\"\n [accessibilityLargeContentTitle]=\"accessibilityLargeContentTitle\"\n (accessibilityAction)=\"accessibilityAction.emit($event)\"\n (accessibilityTap)=\"accessibilityTap.emit($event)\"\n (magicTap)=\"magicTap.emit($event)\"\n (accessibilityEscape)=\"accessibilityEscape.emit($event)\"\n [role]=\"role\"\n [aria-label]=\"ariaLabel\"\n [aria-labelledby]=\"ariaLabelledBy\"\n [aria-live]=\"ariaLive\"\n [aria-hidden]=\"ariaHidden\"\n [aria-busy]=\"ariaBusy\"\n [aria-checked]=\"ariaChecked\"\n [aria-disabled]=\"ariaDisabled\"\n [aria-expanded]=\"ariaExpanded\"\n [aria-selected]=\"ariaSelected\"\n [aria-modal]=\"ariaModal\"\n [aria-valuemax]=\"ariaValueMax\"\n [aria-valuemin]=\"ariaValueMin\"\n [aria-valuenow]=\"ariaValueNow\"\n [aria-valuetext]=\"ariaValueText\"\n\n >\n <ng-template vListItem let-row let-separators=\"separators\">\n <view [style]=\"rowStyle\">\n @for (cell of rowCells(row, separators); track cell.key) {\n <view [style]=\"columnCellStyle\">\n <ng-container\n [vListOutlet]=\"itemDir?.templateRef\"\n [vListOutletContext]=\"cell.context\"\n ></ng-container>\n </view>\n }\n </view>\n </ng-template>\n @if (headerDir !== undefined) {\n <ng-template vListHeader>\n <ng-container [vListOutlet]=\"headerDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (footerDir !== undefined) {\n <ng-template vListFooter>\n <ng-container [vListOutlet]=\"footerDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (emptyDir !== undefined) {\n <ng-template vListEmpty>\n <ng-container [vListOutlet]=\"emptyDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (separatorDir !== undefined) {\n <ng-template\n vListSeparator\n let-highlighted=\"highlighted\"\n let-leadingItem=\"leadingItem\"\n let-trailingItem=\"trailingItem\"\n >\n <ng-container\n [vListOutlet]=\"separatorDir.templateRef\"\n [vListOutletContext]=\"\n rowSeparatorContext(highlighted, leadingItem, trailingItem)\n \"\n ></ng-container>\n </ng-template>\n }\n </VirtualizedList>\n } @else {\n <VirtualizedList\n [data]=\"data\"\n [getItem]=\"getFlatItem\"\n [getItemCount]=\"getFlatCount\"\n [keyExtractor]=\"keyExtractor\"\n [getItemLayout]=\"getItemLayout\"\n [horizontal]=\"horizontal\"\n [inverted]=\"inverted\"\n [extraData]=\"extraData\"\n (endReached)=\"endReached.emit($event)\"\n [onEndReachedThreshold]=\"onEndReachedThreshold\"\n (startReached)=\"startReached.emit($event)\"\n [onStartReachedThreshold]=\"onStartReachedThreshold\"\n (refresh)=\"refresh.emit()\"\n [refreshRequested]=\"refresh.observed\"\n [refreshing]=\"refreshing\"\n [progressViewOffset]=\"progressViewOffset\"\n (viewableItemsChanged)=\"viewableItemsChanged.emit($event)\"\n [viewabilityConfig]=\"viewabilityConfig\"\n [viewabilityConfigCallbackPairs]=\"viewabilityConfigCallbackPairs\"\n (scrollToIndexFailed)=\"scrollToIndexFailed.emit($event)\"\n [initialNumToRender]=\"initialNumToRender\"\n [initialScrollIndex]=\"initialScrollIndex\"\n [maxToRenderPerBatch]=\"maxToRenderPerBatch\"\n [updateCellsBatchingPeriod]=\"updateCellsBatchingPeriod\"\n [windowSize]=\"windowSize\"\n [stickyHeaderIndices]=\"stickyHeaderIndices\"\n [maintainVisibleContentPosition]=\"maintainVisibleContentPosition\"\n [onScroll]=\"onScroll\"\n [onScrollBeginDrag]=\"onScrollBeginDrag\"\n [onScrollEndDrag]=\"onScrollEndDrag\"\n [onMomentumScrollBegin]=\"onMomentumScrollBegin\"\n [onMomentumScrollEnd]=\"onMomentumScrollEnd\"\n [scrollEventThrottle]=\"scrollEventThrottle\"\n [keyboardShouldPersistTaps]=\"keyboardShouldPersistTaps\"\n [keyboardDismissMode]=\"keyboardDismissMode\"\n [removeClippedSubviews]=\"resolvedRemoveClippedSubviews\"\n [nestedScrollEnabled]=\"nestedScrollEnabled\"\n [testID]=\"testID\"\n [nativeID]=\"nativeID\"\n [style]=\"resolvedStyle\"\n [contentContainerStyle]=\"contentContainerStyle\"\n [itemTemplate]=\"itemDir?.templateRef\"\n [itemSeparatorTemplate]=\"separatorDir?.templateRef\"\n \n [accessible]=\"accessible\"\n [accessibilityLabel]=\"accessibilityLabel\"\n [accessibilityHint]=\"accessibilityHint\"\n [accessibilityRole]=\"accessibilityRole\"\n [accessibilityState]=\"accessibilityState\"\n [accessibilityValue]=\"accessibilityValue\"\n [accessibilityActions]=\"accessibilityActions\"\n [accessibilityLabelledBy]=\"accessibilityLabelledBy\"\n [importantForAccessibility]=\"importantForAccessibility\"\n [accessibilityLiveRegion]=\"accessibilityLiveRegion\"\n [screenReaderFocusable]=\"screenReaderFocusable\"\n [accessibilityViewIsModal]=\"accessibilityViewIsModal\"\n [accessibilityElementsHidden]=\"accessibilityElementsHidden\"\n [accessibilityIgnoresInvertColors]=\"accessibilityIgnoresInvertColors\"\n [accessibilityLanguage]=\"accessibilityLanguage\"\n [accessibilityRespondsToUserInteraction]=\"accessibilityRespondsToUserInteraction\"\n [accessibilityShowsLargeContentViewer]=\"accessibilityShowsLargeContentViewer\"\n [accessibilityLargeContentTitle]=\"accessibilityLargeContentTitle\"\n (accessibilityAction)=\"accessibilityAction.emit($event)\"\n (accessibilityTap)=\"accessibilityTap.emit($event)\"\n (magicTap)=\"magicTap.emit($event)\"\n (accessibilityEscape)=\"accessibilityEscape.emit($event)\"\n [role]=\"role\"\n [aria-label]=\"ariaLabel\"\n [aria-labelledby]=\"ariaLabelledBy\"\n [aria-live]=\"ariaLive\"\n [aria-hidden]=\"ariaHidden\"\n [aria-busy]=\"ariaBusy\"\n [aria-checked]=\"ariaChecked\"\n [aria-disabled]=\"ariaDisabled\"\n [aria-expanded]=\"ariaExpanded\"\n [aria-selected]=\"ariaSelected\"\n [aria-modal]=\"ariaModal\"\n [aria-valuemax]=\"ariaValueMax\"\n [aria-valuemin]=\"ariaValueMin\"\n [aria-valuenow]=\"ariaValueNow\"\n [aria-valuetext]=\"ariaValueText\"\n\n >\n @if (headerDir !== undefined) {\n <ng-template vListHeader>\n <ng-container [vListOutlet]=\"headerDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (footerDir !== undefined) {\n <ng-template vListFooter>\n <ng-container [vListOutlet]=\"footerDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (emptyDir !== undefined) {\n <ng-template vListEmpty>\n <ng-container [vListOutlet]=\"emptyDir.templateRef\"></ng-container>\n </ng-template>\n }\n </VirtualizedList>\n }\n", isInline: true, dependencies: [{ kind: "component", type: VirtualizedList, selector: "VirtualizedList" }, { kind: "directive", type: VListItemDirective, selector: "[vListItem]" }, { kind: "directive", type: VListHeaderDirective, selector: "[vListHeader]" }, { kind: "directive", type: VListFooterDirective, selector: "[vListFooter]" }, { kind: "directive", type: VListEmptyDirective, selector: "[vListEmpty]" }, { kind: "directive", type: VListSeparatorDirective, selector: "[vListSeparator]" }, { kind: "directive", type: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext"] }, { kind: "component", type: ViewHost, selector: "view" }], viewProviders: [provideGateDemand(() => FlatList)], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
363
161
|
}
|
|
364
162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FlatList, decorators: [{
|
|
365
163
|
type: Component,
|
|
366
164
|
args: [{
|
|
367
165
|
selector: 'FlatList',
|
|
368
166
|
standalone: true,
|
|
167
|
+
viewProviders: [provideGateDemand(() => FlatList)],
|
|
369
168
|
hostDirectives: [
|
|
370
169
|
{ directive: SymbioteStyleInputDirective, inputs: ['style'] },
|
|
371
170
|
],
|
|
@@ -381,251 +180,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
381
180
|
ViewHost,
|
|
382
181
|
],
|
|
383
182
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
384
|
-
template:
|
|
385
|
-
@if (isMultiColumn) {
|
|
386
|
-
<VirtualizedList
|
|
387
|
-
[data]="rows"
|
|
388
|
-
[getItem]="getRow"
|
|
389
|
-
[getItemCount]="getRowCount"
|
|
390
|
-
[keyExtractor]="rowKey"
|
|
391
|
-
[getItemLayout]="getItemLayout"
|
|
392
|
-
[horizontal]="horizontal"
|
|
393
|
-
[inverted]="inverted"
|
|
394
|
-
[extraData]="extraData"
|
|
395
|
-
(endReached)="endReached.emit($event)"
|
|
396
|
-
[onEndReachedThreshold]="onEndReachedThreshold"
|
|
397
|
-
(startReached)="startReached.emit($event)"
|
|
398
|
-
[onStartReachedThreshold]="onStartReachedThreshold"
|
|
399
|
-
(refresh)="refresh.emit()"
|
|
400
|
-
[refreshRequested]="refresh.observed"
|
|
401
|
-
[refreshing]="refreshing"
|
|
402
|
-
[progressViewOffset]="progressViewOffset"
|
|
403
|
-
(viewableItemsChanged)="rowViewableItemsChanged($event)"
|
|
404
|
-
[viewabilityConfig]="viewabilityConfig"
|
|
405
|
-
[viewabilityConfigCallbackPairs]="rowViewabilityPairs"
|
|
406
|
-
(scrollToIndexFailed)="scrollToIndexFailed.emit($event)"
|
|
407
|
-
[initialNumToRender]="initialNumToRender"
|
|
408
|
-
[initialScrollIndex]="initialScrollIndex"
|
|
409
|
-
[maxToRenderPerBatch]="maxToRenderPerBatch"
|
|
410
|
-
[updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
|
|
411
|
-
[windowSize]="windowSize"
|
|
412
|
-
[stickyHeaderIndices]="stickyHeaderIndices"
|
|
413
|
-
[maintainVisibleContentPosition]="maintainVisibleContentPosition"
|
|
414
|
-
[onScroll]="onScroll"
|
|
415
|
-
[onScrollBeginDrag]="onScrollBeginDrag"
|
|
416
|
-
[onScrollEndDrag]="onScrollEndDrag"
|
|
417
|
-
[onMomentumScrollBegin]="onMomentumScrollBegin"
|
|
418
|
-
[onMomentumScrollEnd]="onMomentumScrollEnd"
|
|
419
|
-
[scrollEventThrottle]="scrollEventThrottle"
|
|
420
|
-
[keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
|
|
421
|
-
[keyboardDismissMode]="keyboardDismissMode"
|
|
422
|
-
[removeClippedSubviews]="resolvedRemoveClippedSubviews"
|
|
423
|
-
[nestedScrollEnabled]="nestedScrollEnabled"
|
|
424
|
-
[testID]="testID"
|
|
425
|
-
[style]="resolvedStyle"
|
|
426
|
-
[contentContainerStyle]="contentContainerStyle"
|
|
427
|
-
>
|
|
428
|
-
<ng-template vListItem let-row let-separators="separators">
|
|
429
|
-
<view [style]="rowStyle">
|
|
430
|
-
@for (cell of rowCells(row, separators); track cell.key) {
|
|
431
|
-
<view [style]="columnCellStyle">
|
|
432
|
-
<ng-container
|
|
433
|
-
[vListOutlet]="itemDir?.templateRef"
|
|
434
|
-
[vListOutletContext]="cell.context"
|
|
435
|
-
></ng-container>
|
|
436
|
-
</view>
|
|
437
|
-
}
|
|
438
|
-
</view>
|
|
439
|
-
</ng-template>
|
|
440
|
-
@if (headerDir !== undefined) {
|
|
441
|
-
<ng-template vListHeader>
|
|
442
|
-
<ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
|
|
443
|
-
</ng-template>
|
|
444
|
-
}
|
|
445
|
-
@if (footerDir !== undefined) {
|
|
446
|
-
<ng-template vListFooter>
|
|
447
|
-
<ng-container [vListOutlet]="footerDir.templateRef"></ng-container>
|
|
448
|
-
</ng-template>
|
|
449
|
-
}
|
|
450
|
-
@if (emptyDir !== undefined) {
|
|
451
|
-
<ng-template vListEmpty>
|
|
452
|
-
<ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
|
|
453
|
-
</ng-template>
|
|
454
|
-
}
|
|
455
|
-
@if (separatorDir !== undefined) {
|
|
456
|
-
<ng-template
|
|
457
|
-
vListSeparator
|
|
458
|
-
let-highlighted="highlighted"
|
|
459
|
-
let-leadingItem="leadingItem"
|
|
460
|
-
let-trailingItem="trailingItem"
|
|
461
|
-
>
|
|
462
|
-
<ng-container
|
|
463
|
-
[vListOutlet]="separatorDir.templateRef"
|
|
464
|
-
[vListOutletContext]="
|
|
465
|
-
rowSeparatorContext(highlighted, leadingItem, trailingItem)
|
|
466
|
-
"
|
|
467
|
-
></ng-container>
|
|
468
|
-
</ng-template>
|
|
469
|
-
}
|
|
470
|
-
</VirtualizedList>
|
|
471
|
-
} @else {
|
|
472
|
-
<VirtualizedList
|
|
473
|
-
[data]="data"
|
|
474
|
-
[getItem]="getFlatItem"
|
|
475
|
-
[getItemCount]="getFlatCount"
|
|
476
|
-
[keyExtractor]="keyExtractor"
|
|
477
|
-
[getItemLayout]="getItemLayout"
|
|
478
|
-
[horizontal]="horizontal"
|
|
479
|
-
[inverted]="inverted"
|
|
480
|
-
[extraData]="extraData"
|
|
481
|
-
(endReached)="endReached.emit($event)"
|
|
482
|
-
[onEndReachedThreshold]="onEndReachedThreshold"
|
|
483
|
-
(startReached)="startReached.emit($event)"
|
|
484
|
-
[onStartReachedThreshold]="onStartReachedThreshold"
|
|
485
|
-
(refresh)="refresh.emit()"
|
|
486
|
-
[refreshRequested]="refresh.observed"
|
|
487
|
-
[refreshing]="refreshing"
|
|
488
|
-
[progressViewOffset]="progressViewOffset"
|
|
489
|
-
(viewableItemsChanged)="viewableItemsChanged.emit($event)"
|
|
490
|
-
[viewabilityConfig]="viewabilityConfig"
|
|
491
|
-
[viewabilityConfigCallbackPairs]="viewabilityConfigCallbackPairs"
|
|
492
|
-
(scrollToIndexFailed)="scrollToIndexFailed.emit($event)"
|
|
493
|
-
[initialNumToRender]="initialNumToRender"
|
|
494
|
-
[initialScrollIndex]="initialScrollIndex"
|
|
495
|
-
[maxToRenderPerBatch]="maxToRenderPerBatch"
|
|
496
|
-
[updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
|
|
497
|
-
[windowSize]="windowSize"
|
|
498
|
-
[stickyHeaderIndices]="stickyHeaderIndices"
|
|
499
|
-
[maintainVisibleContentPosition]="maintainVisibleContentPosition"
|
|
500
|
-
[onScroll]="onScroll"
|
|
501
|
-
[onScrollBeginDrag]="onScrollBeginDrag"
|
|
502
|
-
[onScrollEndDrag]="onScrollEndDrag"
|
|
503
|
-
[onMomentumScrollBegin]="onMomentumScrollBegin"
|
|
504
|
-
[onMomentumScrollEnd]="onMomentumScrollEnd"
|
|
505
|
-
[scrollEventThrottle]="scrollEventThrottle"
|
|
506
|
-
[keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
|
|
507
|
-
[keyboardDismissMode]="keyboardDismissMode"
|
|
508
|
-
[removeClippedSubviews]="resolvedRemoveClippedSubviews"
|
|
509
|
-
[nestedScrollEnabled]="nestedScrollEnabled"
|
|
510
|
-
[testID]="testID"
|
|
511
|
-
[style]="resolvedStyle"
|
|
512
|
-
[contentContainerStyle]="contentContainerStyle"
|
|
513
|
-
[itemTemplate]="itemDir?.templateRef"
|
|
514
|
-
[itemSeparatorTemplate]="separatorDir?.templateRef"
|
|
515
|
-
>
|
|
516
|
-
@if (headerDir !== undefined) {
|
|
517
|
-
<ng-template vListHeader>
|
|
518
|
-
<ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
|
|
519
|
-
</ng-template>
|
|
520
|
-
}
|
|
521
|
-
@if (footerDir !== undefined) {
|
|
522
|
-
<ng-template vListFooter>
|
|
523
|
-
<ng-container [vListOutlet]="footerDir.templateRef"></ng-container>
|
|
524
|
-
</ng-template>
|
|
525
|
-
}
|
|
526
|
-
@if (emptyDir !== undefined) {
|
|
527
|
-
<ng-template vListEmpty>
|
|
528
|
-
<ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
|
|
529
|
-
</ng-template>
|
|
530
|
-
}
|
|
531
|
-
</VirtualizedList>
|
|
532
|
-
}
|
|
533
|
-
`,
|
|
183
|
+
template: FLAT_LIST_TEMPLATE,
|
|
534
184
|
}]
|
|
535
|
-
}], propDecorators: {
|
|
536
|
-
type: Output
|
|
537
|
-
}], startReached: [{
|
|
538
|
-
type: Output
|
|
539
|
-
}], refresh: [{
|
|
540
|
-
type: Output
|
|
541
|
-
}], viewableItemsChanged: [{
|
|
542
|
-
type: Output
|
|
543
|
-
}], scrollToIndexFailed: [{
|
|
544
|
-
type: Output
|
|
545
|
-
}], data: [{
|
|
185
|
+
}], propDecorators: { data: [{
|
|
546
186
|
type: Input,
|
|
547
187
|
args: [{ required: true }]
|
|
548
|
-
}], testID: [{
|
|
549
|
-
type: Input
|
|
550
188
|
}], numColumns: [{
|
|
551
189
|
type: Input
|
|
552
190
|
}], columnWrapperStyle: [{
|
|
553
191
|
type: Input
|
|
554
|
-
}], keyExtractor: [{
|
|
555
|
-
type: Input
|
|
556
|
-
}], getItemLayout: [{
|
|
557
|
-
type: Input
|
|
558
|
-
}], horizontal: [{
|
|
559
|
-
type: Input
|
|
560
|
-
}], inverted: [{
|
|
561
|
-
type: Input
|
|
562
|
-
}], extraData: [{
|
|
563
|
-
type: Input
|
|
564
|
-
}], onEndReachedThreshold: [{
|
|
565
|
-
type: Input
|
|
566
|
-
}], onStartReachedThreshold: [{
|
|
567
|
-
type: Input
|
|
568
|
-
}], refreshing: [{
|
|
569
|
-
type: Input
|
|
570
|
-
}], progressViewOffset: [{
|
|
571
|
-
type: Input
|
|
572
|
-
}], viewabilityConfig: [{
|
|
573
|
-
type: Input
|
|
574
|
-
}], viewabilityConfigCallbackPairs: [{
|
|
575
|
-
type: Input
|
|
576
|
-
}], initialNumToRender: [{
|
|
577
|
-
type: Input
|
|
578
|
-
}], initialScrollIndex: [{
|
|
579
|
-
type: Input
|
|
580
|
-
}], maxToRenderPerBatch: [{
|
|
581
|
-
type: Input
|
|
582
|
-
}], updateCellsBatchingPeriod: [{
|
|
583
|
-
type: Input
|
|
584
|
-
}], windowSize: [{
|
|
585
|
-
type: Input
|
|
586
|
-
}], stickyHeaderIndices: [{
|
|
587
|
-
type: Input
|
|
588
|
-
}], maintainVisibleContentPosition: [{
|
|
589
|
-
type: Input
|
|
590
|
-
}], onScroll: [{
|
|
591
|
-
type: Input
|
|
592
|
-
}], onScrollBeginDrag: [{
|
|
593
|
-
type: Input
|
|
594
|
-
}], onScrollEndDrag: [{
|
|
595
|
-
type: Input
|
|
596
|
-
}], onMomentumScrollBegin: [{
|
|
597
|
-
type: Input
|
|
598
|
-
}], onMomentumScrollEnd: [{
|
|
599
|
-
type: Input
|
|
600
|
-
}], scrollEventThrottle: [{
|
|
601
|
-
type: Input
|
|
602
|
-
}], keyboardShouldPersistTaps: [{
|
|
603
|
-
type: Input
|
|
604
|
-
}], keyboardDismissMode: [{
|
|
605
|
-
type: Input
|
|
606
|
-
}], removeClippedSubviews: [{
|
|
607
|
-
type: Input
|
|
608
|
-
}], nestedScrollEnabled: [{
|
|
609
|
-
type: Input
|
|
610
|
-
}], style: [{
|
|
611
|
-
type: Input
|
|
612
|
-
}], contentContainerStyle: [{
|
|
613
|
-
type: Input
|
|
614
|
-
}], itemDir: [{
|
|
615
|
-
type: ContentChild,
|
|
616
|
-
args: [VListItemDirective]
|
|
617
|
-
}], headerDir: [{
|
|
618
|
-
type: ContentChild,
|
|
619
|
-
args: [VListHeaderDirective]
|
|
620
|
-
}], footerDir: [{
|
|
621
|
-
type: ContentChild,
|
|
622
|
-
args: [VListFooterDirective]
|
|
623
|
-
}], emptyDir: [{
|
|
624
|
-
type: ContentChild,
|
|
625
|
-
args: [VListEmptyDirective]
|
|
626
|
-
}], separatorDir: [{
|
|
627
|
-
type: ContentChild,
|
|
628
|
-
args: [VListSeparatorDirective]
|
|
629
192
|
}], listRef: [{
|
|
630
193
|
type: ViewChild,
|
|
631
194
|
args: [VirtualizedList]
|