@symbiote-native/angular 0.5.0 → 0.6.1

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.
Files changed (151) hide show
  1. package/babel-register-composed.cjs +11 -3
  2. package/build/angular/anchor-host-registry.d.ts +2 -0
  3. package/build/angular/anchor-host-registry.js +84 -0
  4. package/build/angular/anchor-host-registry.js.map +1 -0
  5. package/build/angular/components/input-accessory-view/index.d.ts +2 -1
  6. package/build/angular/components/input-accessory-view/index.js +28 -39
  7. package/build/angular/components/input-accessory-view/index.js.map +1 -1
  8. package/build/angular/components/scroll-view/projection.js +70 -48
  9. package/build/angular/components/scroll-view/projection.js.map +1 -1
  10. package/build/angular/components/scroll-view/shared.js +28 -25
  11. package/build/angular/components/scroll-view/shared.js.map +1 -1
  12. package/build/angular/components/scroll-view/sticky-header.d.ts +6 -7
  13. package/build/angular/components/scroll-view/sticky-header.js +82 -65
  14. package/build/angular/components/scroll-view/sticky-header.js.map +1 -1
  15. package/build/angular/components/touchable/index.d.ts +2 -5
  16. package/build/angular/components/touchable/index.js +36 -56
  17. package/build/angular/components/touchable/index.js.map +1 -1
  18. package/build/angular/components/virtualized-list/index.d.ts +5 -20
  19. package/build/angular/components/virtualized-list/index.js +145 -275
  20. package/build/angular/components/virtualized-list/index.js.map +1 -1
  21. package/build/angular/components/virtualized-section-list/index.js +2 -4
  22. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  23. package/build/angular/index.d.ts +2 -1
  24. package/build/angular/index.js +6 -1
  25. package/build/angular/index.js.map +1 -1
  26. package/build/angular/renderer/index.d.ts +0 -1
  27. package/build/angular/renderer/index.js +5 -60
  28. package/build/angular/renderer/index.js.map +1 -1
  29. package/package.json +9 -7
  30. package/src/__tests__/responder-nested-cd.test.ts +1 -1
  31. package/src/anchor-host-registry.ts +88 -0
  32. package/src/components/input-accessory-view/index.ts +30 -39
  33. package/src/components/scroll-view/projection.ts +76 -46
  34. package/src/components/scroll-view/shared.ts +27 -19
  35. package/src/components/scroll-view/sticky-header.ts +89 -64
  36. package/src/components/touchable/index.ts +52 -66
  37. package/src/components/virtualized-list/index.ts +157 -368
  38. package/src/components/virtualized-section-list/index.ts +6 -3
  39. package/src/index.ts +6 -1
  40. package/src/renderer/index.ts +5 -63
  41. package/src/renderer/renderer.test.ts +2 -1
  42. package/build/bootstrap.d.ts +0 -7
  43. package/build/bootstrap.js +0 -14
  44. package/build/components/activity-indicator/index.android.d.ts +0 -9
  45. package/build/components/activity-indicator/index.android.js +0 -64
  46. package/build/components/activity-indicator/index.d.ts +0 -1
  47. package/build/components/activity-indicator/index.ios.d.ts +0 -5
  48. package/build/components/activity-indicator/index.ios.js +0 -64
  49. package/build/components/activity-indicator/index.js +0 -3
  50. package/build/components/activity-indicator/shared.d.ts +0 -64
  51. package/build/components/activity-indicator/shared.js +0 -424
  52. package/build/components/button.d.ts +0 -60
  53. package/build/components/button.js +0 -456
  54. package/build/components/flat-list/index.d.ts +0 -119
  55. package/build/components/flat-list/index.js +0 -691
  56. package/build/components/image/index.android.d.ts +0 -7
  57. package/build/components/image/index.android.js +0 -88
  58. package/build/components/image/index.d.ts +0 -1
  59. package/build/components/image/index.ios.d.ts +0 -7
  60. package/build/components/image/index.ios.js +0 -88
  61. package/build/components/image/index.js +0 -2
  62. package/build/components/image/shared.d.ts +0 -101
  63. package/build/components/image/shared.js +0 -405
  64. package/build/components/image-background.d.ts +0 -78
  65. package/build/components/image-background.js +0 -583
  66. package/build/components/input-accessory-view/index.d.ts +0 -56
  67. package/build/components/input-accessory-view/index.js +0 -403
  68. package/build/components/keyboard-avoiding-view/index.d.ts +0 -79
  69. package/build/components/keyboard-avoiding-view/index.js +0 -504
  70. package/build/components/modal/index.d.ts +0 -89
  71. package/build/components/modal/index.js +0 -529
  72. package/build/components/pressable/index.d.ts +0 -120
  73. package/build/components/pressable/index.js +0 -639
  74. package/build/components/refresh-control/index.d.ts +0 -83
  75. package/build/components/refresh-control/index.js +0 -509
  76. package/build/components/safe-area-view/index.d.ts +0 -54
  77. package/build/components/safe-area-view/index.js +0 -388
  78. package/build/components/scroll-view/index.android.d.ts +0 -16
  79. package/build/components/scroll-view/index.android.js +0 -228
  80. package/build/components/scroll-view/index.d.ts +0 -3
  81. package/build/components/scroll-view/index.ios.d.ts +0 -6
  82. package/build/components/scroll-view/index.ios.js +0 -113
  83. package/build/components/scroll-view/index.js +0 -5
  84. package/build/components/scroll-view/projection.d.ts +0 -32
  85. package/build/components/scroll-view/projection.js +0 -311
  86. package/build/components/scroll-view/shared.d.ts +0 -225
  87. package/build/components/scroll-view/shared.js +0 -757
  88. package/build/components/scroll-view/sticky-header.d.ts +0 -38
  89. package/build/components/scroll-view/sticky-header.js +0 -257
  90. package/build/components/section-list/index.d.ts +0 -113
  91. package/build/components/section-list/index.js +0 -768
  92. package/build/components/switch/index.android.d.ts +0 -17
  93. package/build/components/switch/index.android.js +0 -107
  94. package/build/components/switch/index.d.ts +0 -1
  95. package/build/components/switch/index.ios.d.ts +0 -16
  96. package/build/components/switch/index.ios.js +0 -106
  97. package/build/components/switch/index.js +0 -3
  98. package/build/components/switch/shared.d.ts +0 -37
  99. package/build/components/switch/shared.js +0 -176
  100. package/build/components/text-input.d.ts +0 -150
  101. package/build/components/text-input.js +0 -821
  102. package/build/components/touchable/index.d.ts +0 -241
  103. package/build/components/touchable/index.js +0 -1672
  104. package/build/components/touchable-native-feedback/index.d.ts +0 -80
  105. package/build/components/touchable-native-feedback/index.js +0 -545
  106. package/build/components/virtualized-list/directives.d.ts +0 -41
  107. package/build/components/virtualized-list/directives.js +0 -249
  108. package/build/components/virtualized-list/index.d.ts +0 -265
  109. package/build/components/virtualized-list/index.js +0 -1343
  110. package/build/components/virtualized-section-list/directives.d.ts +0 -28
  111. package/build/components/virtualized-section-list/directives.js +0 -148
  112. package/build/components/virtualized-section-list/index.d.ts +0 -175
  113. package/build/components/virtualized-section-list/index.js +0 -854
  114. package/build/components.d.ts +0 -39
  115. package/build/components.js +0 -37
  116. package/build/create-portal/index.d.ts +0 -17
  117. package/build/create-portal/index.js +0 -128
  118. package/build/create-tunnel/index.d.ts +0 -29
  119. package/build/create-tunnel/index.js +0 -181
  120. package/build/descriptor-to-angular/index.d.ts +0 -19
  121. package/build/descriptor-to-angular/index.js +0 -186
  122. package/build/host-instance/index.d.ts +0 -2
  123. package/build/host-instance/index.js +0 -36
  124. package/build/index.d.ts +0 -21
  125. package/build/index.js +0 -40
  126. package/build/modules/animated/animated-leaf-binder/index.d.ts +0 -14
  127. package/build/modules/animated/animated-leaf-binder/index.js +0 -90
  128. package/build/modules/animated/animated-leaf-binder.d.ts +0 -14
  129. package/build/modules/animated/animated-leaf-binder.js +0 -90
  130. package/build/modules/animated/create-animated-component.d.ts +0 -48
  131. package/build/modules/animated/create-animated-component.js +0 -425
  132. package/build/modules/animated/index.d.ts +0 -51
  133. package/build/modules/animated/index.js +0 -58
  134. package/build/modules/app-registry/index.d.ts +0 -7
  135. package/build/modules/app-registry/index.js +0 -22
  136. package/build/modules/status-bar/index.d.ts +0 -17
  137. package/build/modules/status-bar/index.js +0 -121
  138. package/build/primitives/index.d.ts +0 -32
  139. package/build/primitives/index.js +0 -386
  140. package/build/primitives/shared.d.ts +0 -83
  141. package/build/primitives/shared.js +0 -230
  142. package/build/render/index.d.ts +0 -11
  143. package/build/render/index.js +0 -170
  144. package/build/renderer/index.d.ts +0 -38
  145. package/build/renderer/index.js +0 -355
  146. package/build/services/color-scheme.service.d.ts +0 -13
  147. package/build/services/color-scheme.service.js +0 -72
  148. package/build/services/index.d.ts +0 -2
  149. package/build/services/index.js +0 -2
  150. package/build/services/window-dimensions.service.d.ts +0 -13
  151. package/build/services/window-dimensions.service.js +0 -83
@@ -1,691 +0,0 @@
1
- // FlatList, the Angular convenience surface over VirtualizedList. It takes a plain `data` array
2
- // and derives getItem/getItemCount; numColumns packs items into rows (each row a flex-row of N
3
- // columns), so the virtualized stream is rows, not items (RN's FlatList). All windowing /
4
- // viewability / batching / imperative scrolling are inherited from VirtualizedList; the data
5
- // shaping (chunkIntoRows / rowKeyExtractor / expandRowViewability / row-separator unwrap) is shared
6
- // verbatim from @symbiote-native/components, exactly as the React and Vue FlatLists reuse it. This is the
7
- // Angular twin of adapters/vue/src/components/flat-list/index.ts.
8
- //
9
- // TEMPLATE FORWARDING — both paths RE-STAMP; neither uses a bare `<ng-content>` passthrough.
10
- // Angular's @ContentChild does NOT resolve a directive across a SECOND `<ng-content>` re-projection
11
- // hop (it only sees what was projected directly onto the querying component's own tag) — a bare
12
- // `<VirtualizedList ...><ng-content></ng-content></VirtualizedList>` here left VirtualizedList's own
13
- // itemDir/headerDir/etc. undefined, so every cell rendered empty (a real, confirmed device bug — see
14
- // flat-list.test.ts). Fixed for both column modes the same way:
15
- // * Single column (numColumns <= 1): FlatList captures the app's `<ng-template vListItem>` (and
16
- // vListHeader/vListFooter/vListEmpty/vListSeparator) with its OWN @ContentChild — a single,
17
- // direct projection hop, which always resolves — then re-authors equivalent `<ng-template>`s on
18
- // `<VirtualizedList>`, each forwarding the captured templateRef + context through
19
- // VListOutletDirective. Item/index/separators pass through 1:1 (no row wrapping).
20
- // * Multi column (numColumns > 1): the 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 even if
22
- // the projection issue didn't exist. The row vListItem lays out the N columns side by side (each
23
- // cell stamps the app's item template via VListOutletDirective with the per-item context {item,
24
- // index: row.startIndex + column, separators}), the row vListSeparator unwraps the flanking rows
25
- // to their last/first item, and onViewableItemsChanged is wrapped with expandRowViewability so the
26
- // caller still sees per-item visibility. This mirrors exactly how Vue's FlatList intercepts
27
- // renderItem with renderRow.
28
- //
29
- // The imperative handle (scrollToIndex / scrollToOffset / scrollToEnd / scrollToItem /
30
- // recordInteraction / flashScrollIndicators / getScroll* / getNativeScrollRef) is RN's FlatList
31
- // surface; FlatList re-exposes it by delegating to the inner VirtualizedList (@ViewChild). The
32
- // element-returning props (renderItem / ItemSeparatorComponent / List{Header,Footer,Empty}Component)
33
- // are templates in Angular, so they are absent from IFlatListProps, per the per-adapter
34
- // children/render prop split; everything agnostic mirrors IVirtualizedListProps.
35
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
36
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
37
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
38
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
39
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
40
- var _, done = false;
41
- for (var i = decorators.length - 1; i >= 0; i--) {
42
- var context = {};
43
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
44
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
45
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
46
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
47
- if (kind === "accessor") {
48
- if (result === void 0) continue;
49
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
50
- if (_ = accept(result.get)) descriptor.get = _;
51
- if (_ = accept(result.set)) descriptor.set = _;
52
- if (_ = accept(result.init)) initializers.unshift(_);
53
- }
54
- else if (_ = accept(result)) {
55
- if (kind === "field") initializers.unshift(_);
56
- else descriptor[key] = _;
57
- }
58
- }
59
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
60
- done = true;
61
- };
62
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
63
- var useValue = arguments.length > 2;
64
- for (var i = 0; i < initializers.length; i++) {
65
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
66
- }
67
- return useValue ? value : void 0;
68
- };
69
- import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild, inject, } from '@angular/core';
70
- import { SINGLE_COLUMN, chunkIntoRows, expandRowViewability, firstItemOfRow, lastItemOfRow, rowKeyExtractor, } from '@symbiote-native/components';
71
- import { dlog, flattenStyle, resolveClassName, } from '@symbiote-native/engine';
72
- import { VirtualizedList, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from '../virtualized-list';
73
- import { VListOutletDirective } from '../virtualized-list/directives';
74
- import { stableAnchorStyle, ViewHost } from '../../primitives';
75
- function isRecord(value) {
76
- return typeof value === 'object' && value !== null;
77
- }
78
- function isRow(value) {
79
- return (isRecord(value) && Array.isArray(value['items']) && typeof value['startIndex'] === 'number');
80
- }
81
- function isSeparators(value) {
82
- return (isRecord(value) &&
83
- typeof value['highlight'] === 'function' &&
84
- typeof value['unhighlight'] === 'function');
85
- }
86
- // Used only as a type-safe fallback if a row's separators handle is ever absent; VirtualizedList
87
- // always supplies a real one, so in practice the live handle flows through.
88
- const NOOP_SEPARATORS = {
89
- highlight: () => undefined,
90
- unhighlight: () => undefined,
91
- updateProps: () => undefined,
92
- };
93
- // Angular cannot preserve VListSeparatorDirective<ItemT>'s type parameter across this re-stamp
94
- // reuse (the directive is matched structurally in FlatList's own template with no explicit type
95
- // argument to pin ItemT to, so `let-leadingItem`/`let-trailingItem` arrive typed `unknown`) — even
96
- // though VirtualizedList's own buildSeparatorContext always supplies a real ItemT value. The
97
- // narrowest possible I/O-boundary cast for that gap; not a general-purpose unknown-to-T narrowing.
98
- function asItem(value) {
99
- return value;
100
- }
101
- export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from '../virtualized-list';
102
- let FlatList = (() => {
103
- let _classDecorators = [Component({
104
- selector: 'FlatList',
105
- standalone: true,
106
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
107
- imports: [
108
- VirtualizedList,
109
- VListItemDirective,
110
- VListHeaderDirective,
111
- VListFooterDirective,
112
- VListEmptyDirective,
113
- VListSeparatorDirective,
114
- VListOutletDirective,
115
- ViewHost,
116
- ],
117
- changeDetection: ChangeDetectionStrategy.OnPush,
118
- template: `
119
- @if (isMultiColumn) {
120
- <VirtualizedList
121
- [data]="rows"
122
- [getItem]="getRow"
123
- [getItemCount]="getRowCount"
124
- [keyExtractor]="rowKey"
125
- [getItemLayout]="getItemLayout"
126
- [horizontal]="horizontal"
127
- [inverted]="inverted"
128
- [extraData]="extraData"
129
- (endReached)="endReached.emit($event)"
130
- [onEndReachedThreshold]="onEndReachedThreshold"
131
- (startReached)="startReached.emit($event)"
132
- [onStartReachedThreshold]="onStartReachedThreshold"
133
- (refresh)="refresh.emit()"
134
- [refreshRequested]="refresh.observed"
135
- [refreshing]="refreshing"
136
- [progressViewOffset]="progressViewOffset"
137
- (viewableItemsChanged)="rowViewableItemsChanged($event)"
138
- [viewabilityConfig]="viewabilityConfig"
139
- [viewabilityConfigCallbackPairs]="rowViewabilityPairs"
140
- (scrollToIndexFailed)="scrollToIndexFailed.emit($event)"
141
- [initialNumToRender]="initialNumToRender"
142
- [initialScrollIndex]="initialScrollIndex"
143
- [maxToRenderPerBatch]="maxToRenderPerBatch"
144
- [updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
145
- [windowSize]="windowSize"
146
- [stickyHeaderIndices]="stickyHeaderIndices"
147
- [maintainVisibleContentPosition]="maintainVisibleContentPosition"
148
- [onScroll]="onScroll"
149
- [onScrollBeginDrag]="onScrollBeginDrag"
150
- [onScrollEndDrag]="onScrollEndDrag"
151
- [onMomentumScrollBegin]="onMomentumScrollBegin"
152
- [onMomentumScrollEnd]="onMomentumScrollEnd"
153
- [scrollEventThrottle]="scrollEventThrottle"
154
- [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
155
- [keyboardDismissMode]="keyboardDismissMode"
156
- [style]="resolvedStyle"
157
- [contentContainerStyle]="contentContainerStyle"
158
- >
159
- <ng-template vListItem let-row let-separators="separators">
160
- <symbiote-view [style]="rowStyle">
161
- @for (cell of rowCells(row, separators); track cell.key) {
162
- <symbiote-view [style]="columnCellStyle">
163
- <ng-container
164
- [vListOutlet]="itemDir?.templateRef"
165
- [vListOutletContext]="cell.context"
166
- ></ng-container>
167
- </symbiote-view>
168
- }
169
- </symbiote-view>
170
- </ng-template>
171
- @if (headerDir !== undefined) {
172
- <ng-template vListHeader>
173
- <ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
174
- </ng-template>
175
- }
176
- @if (footerDir !== undefined) {
177
- <ng-template vListFooter>
178
- <ng-container [vListOutlet]="footerDir.templateRef"></ng-container>
179
- </ng-template>
180
- }
181
- @if (emptyDir !== undefined) {
182
- <ng-template vListEmpty>
183
- <ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
184
- </ng-template>
185
- }
186
- @if (separatorDir !== undefined) {
187
- <ng-template
188
- vListSeparator
189
- let-highlighted="highlighted"
190
- let-leadingItem="leadingItem"
191
- let-trailingItem="trailingItem"
192
- >
193
- <ng-container
194
- [vListOutlet]="separatorDir.templateRef"
195
- [vListOutletContext]="rowSeparatorContext(highlighted, leadingItem, trailingItem)"
196
- ></ng-container>
197
- </ng-template>
198
- }
199
- </VirtualizedList>
200
- } @else {
201
- <VirtualizedList
202
- [data]="data"
203
- [getItem]="getFlatItem"
204
- [getItemCount]="getFlatCount"
205
- [keyExtractor]="keyExtractor"
206
- [getItemLayout]="getItemLayout"
207
- [horizontal]="horizontal"
208
- [inverted]="inverted"
209
- [extraData]="extraData"
210
- (endReached)="endReached.emit($event)"
211
- [onEndReachedThreshold]="onEndReachedThreshold"
212
- (startReached)="startReached.emit($event)"
213
- [onStartReachedThreshold]="onStartReachedThreshold"
214
- (refresh)="refresh.emit()"
215
- [refreshRequested]="refresh.observed"
216
- [refreshing]="refreshing"
217
- [progressViewOffset]="progressViewOffset"
218
- (viewableItemsChanged)="viewableItemsChanged.emit($event)"
219
- [viewabilityConfig]="viewabilityConfig"
220
- [viewabilityConfigCallbackPairs]="viewabilityConfigCallbackPairs"
221
- (scrollToIndexFailed)="scrollToIndexFailed.emit($event)"
222
- [initialNumToRender]="initialNumToRender"
223
- [initialScrollIndex]="initialScrollIndex"
224
- [maxToRenderPerBatch]="maxToRenderPerBatch"
225
- [updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
226
- [windowSize]="windowSize"
227
- [stickyHeaderIndices]="stickyHeaderIndices"
228
- [maintainVisibleContentPosition]="maintainVisibleContentPosition"
229
- [onScroll]="onScroll"
230
- [onScrollBeginDrag]="onScrollBeginDrag"
231
- [onScrollEndDrag]="onScrollEndDrag"
232
- [onMomentumScrollBegin]="onMomentumScrollBegin"
233
- [onMomentumScrollEnd]="onMomentumScrollEnd"
234
- [scrollEventThrottle]="scrollEventThrottle"
235
- [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
236
- [keyboardDismissMode]="keyboardDismissMode"
237
- [style]="resolvedStyle"
238
- [contentContainerStyle]="contentContainerStyle"
239
- >
240
- <ng-template vListItem let-item let-index="index" let-separators="separators">
241
- <ng-container
242
- [vListOutlet]="itemDir?.templateRef"
243
- [vListOutletContext]="{ $implicit: item, index, separators }"
244
- ></ng-container>
245
- </ng-template>
246
- @if (headerDir !== undefined) {
247
- <ng-template vListHeader>
248
- <ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
249
- </ng-template>
250
- }
251
- @if (footerDir !== undefined) {
252
- <ng-template vListFooter>
253
- <ng-container [vListOutlet]="footerDir.templateRef"></ng-container>
254
- </ng-template>
255
- }
256
- @if (emptyDir !== undefined) {
257
- <ng-template vListEmpty>
258
- <ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
259
- </ng-template>
260
- }
261
- @if (separatorDir !== undefined) {
262
- <ng-template
263
- vListSeparator
264
- let-highlighted="highlighted"
265
- let-leadingItem="leadingItem"
266
- let-trailingItem="trailingItem"
267
- >
268
- <ng-container
269
- [vListOutlet]="separatorDir.templateRef"
270
- [vListOutletContext]="itemSeparatorContext(highlighted, leadingItem, trailingItem)"
271
- ></ng-container>
272
- </ng-template>
273
- }
274
- </VirtualizedList>
275
- }
276
- `,
277
- })];
278
- let _classDescriptor;
279
- let _classExtraInitializers = [];
280
- let _classThis;
281
- let _endReached_decorators;
282
- let _endReached_initializers = [];
283
- let _endReached_extraInitializers = [];
284
- let _startReached_decorators;
285
- let _startReached_initializers = [];
286
- let _startReached_extraInitializers = [];
287
- let _refresh_decorators;
288
- let _refresh_initializers = [];
289
- let _refresh_extraInitializers = [];
290
- let _viewableItemsChanged_decorators;
291
- let _viewableItemsChanged_initializers = [];
292
- let _viewableItemsChanged_extraInitializers = [];
293
- let _scrollToIndexFailed_decorators;
294
- let _scrollToIndexFailed_initializers = [];
295
- let _scrollToIndexFailed_extraInitializers = [];
296
- let _data_decorators;
297
- let _data_initializers = [];
298
- let _data_extraInitializers = [];
299
- let _numColumns_decorators;
300
- let _numColumns_initializers = [];
301
- let _numColumns_extraInitializers = [];
302
- let _columnWrapperStyle_decorators;
303
- let _columnWrapperStyle_initializers = [];
304
- let _columnWrapperStyle_extraInitializers = [];
305
- let _keyExtractor_decorators;
306
- let _keyExtractor_initializers = [];
307
- let _keyExtractor_extraInitializers = [];
308
- let _getItemLayout_decorators;
309
- let _getItemLayout_initializers = [];
310
- let _getItemLayout_extraInitializers = [];
311
- let _horizontal_decorators;
312
- let _horizontal_initializers = [];
313
- let _horizontal_extraInitializers = [];
314
- let _inverted_decorators;
315
- let _inverted_initializers = [];
316
- let _inverted_extraInitializers = [];
317
- let _extraData_decorators;
318
- let _extraData_initializers = [];
319
- let _extraData_extraInitializers = [];
320
- let _onEndReachedThreshold_decorators;
321
- let _onEndReachedThreshold_initializers = [];
322
- let _onEndReachedThreshold_extraInitializers = [];
323
- let _onStartReachedThreshold_decorators;
324
- let _onStartReachedThreshold_initializers = [];
325
- let _onStartReachedThreshold_extraInitializers = [];
326
- let _refreshing_decorators;
327
- let _refreshing_initializers = [];
328
- let _refreshing_extraInitializers = [];
329
- let _progressViewOffset_decorators;
330
- let _progressViewOffset_initializers = [];
331
- let _progressViewOffset_extraInitializers = [];
332
- let _viewabilityConfig_decorators;
333
- let _viewabilityConfig_initializers = [];
334
- let _viewabilityConfig_extraInitializers = [];
335
- let _viewabilityConfigCallbackPairs_decorators;
336
- let _viewabilityConfigCallbackPairs_initializers = [];
337
- let _viewabilityConfigCallbackPairs_extraInitializers = [];
338
- let _initialNumToRender_decorators;
339
- let _initialNumToRender_initializers = [];
340
- let _initialNumToRender_extraInitializers = [];
341
- let _initialScrollIndex_decorators;
342
- let _initialScrollIndex_initializers = [];
343
- let _initialScrollIndex_extraInitializers = [];
344
- let _maxToRenderPerBatch_decorators;
345
- let _maxToRenderPerBatch_initializers = [];
346
- let _maxToRenderPerBatch_extraInitializers = [];
347
- let _updateCellsBatchingPeriod_decorators;
348
- let _updateCellsBatchingPeriod_initializers = [];
349
- let _updateCellsBatchingPeriod_extraInitializers = [];
350
- let _windowSize_decorators;
351
- let _windowSize_initializers = [];
352
- let _windowSize_extraInitializers = [];
353
- let _stickyHeaderIndices_decorators;
354
- let _stickyHeaderIndices_initializers = [];
355
- let _stickyHeaderIndices_extraInitializers = [];
356
- let _maintainVisibleContentPosition_decorators;
357
- let _maintainVisibleContentPosition_initializers = [];
358
- let _maintainVisibleContentPosition_extraInitializers = [];
359
- let _onScroll_decorators;
360
- let _onScroll_initializers = [];
361
- let _onScroll_extraInitializers = [];
362
- let _onScrollBeginDrag_decorators;
363
- let _onScrollBeginDrag_initializers = [];
364
- let _onScrollBeginDrag_extraInitializers = [];
365
- let _onScrollEndDrag_decorators;
366
- let _onScrollEndDrag_initializers = [];
367
- let _onScrollEndDrag_extraInitializers = [];
368
- let _onMomentumScrollBegin_decorators;
369
- let _onMomentumScrollBegin_initializers = [];
370
- let _onMomentumScrollBegin_extraInitializers = [];
371
- let _onMomentumScrollEnd_decorators;
372
- let _onMomentumScrollEnd_initializers = [];
373
- let _onMomentumScrollEnd_extraInitializers = [];
374
- let _scrollEventThrottle_decorators;
375
- let _scrollEventThrottle_initializers = [];
376
- let _scrollEventThrottle_extraInitializers = [];
377
- let _keyboardShouldPersistTaps_decorators;
378
- let _keyboardShouldPersistTaps_initializers = [];
379
- let _keyboardShouldPersistTaps_extraInitializers = [];
380
- let _keyboardDismissMode_decorators;
381
- let _keyboardDismissMode_initializers = [];
382
- let _keyboardDismissMode_extraInitializers = [];
383
- let _style_decorators;
384
- let _style_initializers = [];
385
- let _style_extraInitializers = [];
386
- let _contentContainerStyle_decorators;
387
- let _contentContainerStyle_initializers = [];
388
- let _contentContainerStyle_extraInitializers = [];
389
- let _itemDir_decorators;
390
- let _itemDir_initializers = [];
391
- let _itemDir_extraInitializers = [];
392
- let _headerDir_decorators;
393
- let _headerDir_initializers = [];
394
- let _headerDir_extraInitializers = [];
395
- let _footerDir_decorators;
396
- let _footerDir_initializers = [];
397
- let _footerDir_extraInitializers = [];
398
- let _emptyDir_decorators;
399
- let _emptyDir_initializers = [];
400
- let _emptyDir_extraInitializers = [];
401
- let _separatorDir_decorators;
402
- let _separatorDir_initializers = [];
403
- let _separatorDir_extraInitializers = [];
404
- let _listRef_decorators;
405
- let _listRef_initializers = [];
406
- let _listRef_extraInitializers = [];
407
- var FlatList = class {
408
- static { _classThis = this; }
409
- static {
410
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
411
- _endReached_decorators = [Output()];
412
- _startReached_decorators = [Output()];
413
- _refresh_decorators = [Output()];
414
- _viewableItemsChanged_decorators = [Output()];
415
- _scrollToIndexFailed_decorators = [Output()];
416
- _data_decorators = [Input({ required: true })];
417
- _numColumns_decorators = [Input()];
418
- _columnWrapperStyle_decorators = [Input()];
419
- _keyExtractor_decorators = [Input()];
420
- _getItemLayout_decorators = [Input()];
421
- _horizontal_decorators = [Input()];
422
- _inverted_decorators = [Input()];
423
- _extraData_decorators = [Input()];
424
- _onEndReachedThreshold_decorators = [Input()];
425
- _onStartReachedThreshold_decorators = [Input()];
426
- _refreshing_decorators = [Input()];
427
- _progressViewOffset_decorators = [Input()];
428
- _viewabilityConfig_decorators = [Input()];
429
- _viewabilityConfigCallbackPairs_decorators = [Input()];
430
- _initialNumToRender_decorators = [Input()];
431
- _initialScrollIndex_decorators = [Input()];
432
- _maxToRenderPerBatch_decorators = [Input()];
433
- _updateCellsBatchingPeriod_decorators = [Input()];
434
- _windowSize_decorators = [Input()];
435
- _stickyHeaderIndices_decorators = [Input()];
436
- _maintainVisibleContentPosition_decorators = [Input()];
437
- _onScroll_decorators = [Input()];
438
- _onScrollBeginDrag_decorators = [Input()];
439
- _onScrollEndDrag_decorators = [Input()];
440
- _onMomentumScrollBegin_decorators = [Input()];
441
- _onMomentumScrollEnd_decorators = [Input()];
442
- _scrollEventThrottle_decorators = [Input()];
443
- _keyboardShouldPersistTaps_decorators = [Input()];
444
- _keyboardDismissMode_decorators = [Input()];
445
- _style_decorators = [Input()];
446
- _contentContainerStyle_decorators = [Input()];
447
- _itemDir_decorators = [ContentChild(VListItemDirective)];
448
- _headerDir_decorators = [ContentChild(VListHeaderDirective)];
449
- _footerDir_decorators = [ContentChild(VListFooterDirective)];
450
- _emptyDir_decorators = [ContentChild(VListEmptyDirective)];
451
- _separatorDir_decorators = [ContentChild(VListSeparatorDirective)];
452
- _listRef_decorators = [ViewChild(VirtualizedList)];
453
- __esDecorate(null, null, _endReached_decorators, { kind: "field", name: "endReached", static: false, private: false, access: { has: obj => "endReached" in obj, get: obj => obj.endReached, set: (obj, value) => { obj.endReached = value; } }, metadata: _metadata }, _endReached_initializers, _endReached_extraInitializers);
454
- __esDecorate(null, null, _startReached_decorators, { kind: "field", name: "startReached", static: false, private: false, access: { has: obj => "startReached" in obj, get: obj => obj.startReached, set: (obj, value) => { obj.startReached = value; } }, metadata: _metadata }, _startReached_initializers, _startReached_extraInitializers);
455
- __esDecorate(null, null, _refresh_decorators, { kind: "field", name: "refresh", static: false, private: false, access: { has: obj => "refresh" in obj, get: obj => obj.refresh, set: (obj, value) => { obj.refresh = value; } }, metadata: _metadata }, _refresh_initializers, _refresh_extraInitializers);
456
- __esDecorate(null, null, _viewableItemsChanged_decorators, { kind: "field", name: "viewableItemsChanged", static: false, private: false, access: { has: obj => "viewableItemsChanged" in obj, get: obj => obj.viewableItemsChanged, set: (obj, value) => { obj.viewableItemsChanged = value; } }, metadata: _metadata }, _viewableItemsChanged_initializers, _viewableItemsChanged_extraInitializers);
457
- __esDecorate(null, null, _scrollToIndexFailed_decorators, { kind: "field", name: "scrollToIndexFailed", static: false, private: false, access: { has: obj => "scrollToIndexFailed" in obj, get: obj => obj.scrollToIndexFailed, set: (obj, value) => { obj.scrollToIndexFailed = value; } }, metadata: _metadata }, _scrollToIndexFailed_initializers, _scrollToIndexFailed_extraInitializers);
458
- __esDecorate(null, null, _data_decorators, { kind: "field", name: "data", static: false, private: false, access: { has: obj => "data" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);
459
- __esDecorate(null, null, _numColumns_decorators, { kind: "field", name: "numColumns", static: false, private: false, access: { has: obj => "numColumns" in obj, get: obj => obj.numColumns, set: (obj, value) => { obj.numColumns = value; } }, metadata: _metadata }, _numColumns_initializers, _numColumns_extraInitializers);
460
- __esDecorate(null, null, _columnWrapperStyle_decorators, { kind: "field", name: "columnWrapperStyle", static: false, private: false, access: { has: obj => "columnWrapperStyle" in obj, get: obj => obj.columnWrapperStyle, set: (obj, value) => { obj.columnWrapperStyle = value; } }, metadata: _metadata }, _columnWrapperStyle_initializers, _columnWrapperStyle_extraInitializers);
461
- __esDecorate(null, null, _keyExtractor_decorators, { kind: "field", name: "keyExtractor", static: false, private: false, access: { has: obj => "keyExtractor" in obj, get: obj => obj.keyExtractor, set: (obj, value) => { obj.keyExtractor = value; } }, metadata: _metadata }, _keyExtractor_initializers, _keyExtractor_extraInitializers);
462
- __esDecorate(null, null, _getItemLayout_decorators, { kind: "field", name: "getItemLayout", static: false, private: false, access: { has: obj => "getItemLayout" in obj, get: obj => obj.getItemLayout, set: (obj, value) => { obj.getItemLayout = value; } }, metadata: _metadata }, _getItemLayout_initializers, _getItemLayout_extraInitializers);
463
- __esDecorate(null, null, _horizontal_decorators, { kind: "field", name: "horizontal", static: false, private: false, access: { has: obj => "horizontal" in obj, get: obj => obj.horizontal, set: (obj, value) => { obj.horizontal = value; } }, metadata: _metadata }, _horizontal_initializers, _horizontal_extraInitializers);
464
- __esDecorate(null, null, _inverted_decorators, { kind: "field", name: "inverted", static: false, private: false, access: { has: obj => "inverted" in obj, get: obj => obj.inverted, set: (obj, value) => { obj.inverted = value; } }, metadata: _metadata }, _inverted_initializers, _inverted_extraInitializers);
465
- __esDecorate(null, null, _extraData_decorators, { kind: "field", name: "extraData", static: false, private: false, access: { has: obj => "extraData" in obj, get: obj => obj.extraData, set: (obj, value) => { obj.extraData = value; } }, metadata: _metadata }, _extraData_initializers, _extraData_extraInitializers);
466
- __esDecorate(null, null, _onEndReachedThreshold_decorators, { kind: "field", name: "onEndReachedThreshold", static: false, private: false, access: { has: obj => "onEndReachedThreshold" in obj, get: obj => obj.onEndReachedThreshold, set: (obj, value) => { obj.onEndReachedThreshold = value; } }, metadata: _metadata }, _onEndReachedThreshold_initializers, _onEndReachedThreshold_extraInitializers);
467
- __esDecorate(null, null, _onStartReachedThreshold_decorators, { kind: "field", name: "onStartReachedThreshold", static: false, private: false, access: { has: obj => "onStartReachedThreshold" in obj, get: obj => obj.onStartReachedThreshold, set: (obj, value) => { obj.onStartReachedThreshold = value; } }, metadata: _metadata }, _onStartReachedThreshold_initializers, _onStartReachedThreshold_extraInitializers);
468
- __esDecorate(null, null, _refreshing_decorators, { kind: "field", name: "refreshing", static: false, private: false, access: { has: obj => "refreshing" in obj, get: obj => obj.refreshing, set: (obj, value) => { obj.refreshing = value; } }, metadata: _metadata }, _refreshing_initializers, _refreshing_extraInitializers);
469
- __esDecorate(null, null, _progressViewOffset_decorators, { kind: "field", name: "progressViewOffset", static: false, private: false, access: { has: obj => "progressViewOffset" in obj, get: obj => obj.progressViewOffset, set: (obj, value) => { obj.progressViewOffset = value; } }, metadata: _metadata }, _progressViewOffset_initializers, _progressViewOffset_extraInitializers);
470
- __esDecorate(null, null, _viewabilityConfig_decorators, { kind: "field", name: "viewabilityConfig", static: false, private: false, access: { has: obj => "viewabilityConfig" in obj, get: obj => obj.viewabilityConfig, set: (obj, value) => { obj.viewabilityConfig = value; } }, metadata: _metadata }, _viewabilityConfig_initializers, _viewabilityConfig_extraInitializers);
471
- __esDecorate(null, null, _viewabilityConfigCallbackPairs_decorators, { kind: "field", name: "viewabilityConfigCallbackPairs", static: false, private: false, access: { has: obj => "viewabilityConfigCallbackPairs" in obj, get: obj => obj.viewabilityConfigCallbackPairs, set: (obj, value) => { obj.viewabilityConfigCallbackPairs = value; } }, metadata: _metadata }, _viewabilityConfigCallbackPairs_initializers, _viewabilityConfigCallbackPairs_extraInitializers);
472
- __esDecorate(null, null, _initialNumToRender_decorators, { kind: "field", name: "initialNumToRender", static: false, private: false, access: { has: obj => "initialNumToRender" in obj, get: obj => obj.initialNumToRender, set: (obj, value) => { obj.initialNumToRender = value; } }, metadata: _metadata }, _initialNumToRender_initializers, _initialNumToRender_extraInitializers);
473
- __esDecorate(null, null, _initialScrollIndex_decorators, { kind: "field", name: "initialScrollIndex", static: false, private: false, access: { has: obj => "initialScrollIndex" in obj, get: obj => obj.initialScrollIndex, set: (obj, value) => { obj.initialScrollIndex = value; } }, metadata: _metadata }, _initialScrollIndex_initializers, _initialScrollIndex_extraInitializers);
474
- __esDecorate(null, null, _maxToRenderPerBatch_decorators, { kind: "field", name: "maxToRenderPerBatch", static: false, private: false, access: { has: obj => "maxToRenderPerBatch" in obj, get: obj => obj.maxToRenderPerBatch, set: (obj, value) => { obj.maxToRenderPerBatch = value; } }, metadata: _metadata }, _maxToRenderPerBatch_initializers, _maxToRenderPerBatch_extraInitializers);
475
- __esDecorate(null, null, _updateCellsBatchingPeriod_decorators, { kind: "field", name: "updateCellsBatchingPeriod", static: false, private: false, access: { has: obj => "updateCellsBatchingPeriod" in obj, get: obj => obj.updateCellsBatchingPeriod, set: (obj, value) => { obj.updateCellsBatchingPeriod = value; } }, metadata: _metadata }, _updateCellsBatchingPeriod_initializers, _updateCellsBatchingPeriod_extraInitializers);
476
- __esDecorate(null, null, _windowSize_decorators, { kind: "field", name: "windowSize", static: false, private: false, access: { has: obj => "windowSize" in obj, get: obj => obj.windowSize, set: (obj, value) => { obj.windowSize = value; } }, metadata: _metadata }, _windowSize_initializers, _windowSize_extraInitializers);
477
- __esDecorate(null, null, _stickyHeaderIndices_decorators, { kind: "field", name: "stickyHeaderIndices", static: false, private: false, access: { has: obj => "stickyHeaderIndices" in obj, get: obj => obj.stickyHeaderIndices, set: (obj, value) => { obj.stickyHeaderIndices = value; } }, metadata: _metadata }, _stickyHeaderIndices_initializers, _stickyHeaderIndices_extraInitializers);
478
- __esDecorate(null, null, _maintainVisibleContentPosition_decorators, { kind: "field", name: "maintainVisibleContentPosition", static: false, private: false, access: { has: obj => "maintainVisibleContentPosition" in obj, get: obj => obj.maintainVisibleContentPosition, set: (obj, value) => { obj.maintainVisibleContentPosition = value; } }, metadata: _metadata }, _maintainVisibleContentPosition_initializers, _maintainVisibleContentPosition_extraInitializers);
479
- __esDecorate(null, null, _onScroll_decorators, { kind: "field", name: "onScroll", static: false, private: false, access: { has: obj => "onScroll" in obj, get: obj => obj.onScroll, set: (obj, value) => { obj.onScroll = value; } }, metadata: _metadata }, _onScroll_initializers, _onScroll_extraInitializers);
480
- __esDecorate(null, null, _onScrollBeginDrag_decorators, { kind: "field", name: "onScrollBeginDrag", static: false, private: false, access: { has: obj => "onScrollBeginDrag" in obj, get: obj => obj.onScrollBeginDrag, set: (obj, value) => { obj.onScrollBeginDrag = value; } }, metadata: _metadata }, _onScrollBeginDrag_initializers, _onScrollBeginDrag_extraInitializers);
481
- __esDecorate(null, null, _onScrollEndDrag_decorators, { kind: "field", name: "onScrollEndDrag", static: false, private: false, access: { has: obj => "onScrollEndDrag" in obj, get: obj => obj.onScrollEndDrag, set: (obj, value) => { obj.onScrollEndDrag = value; } }, metadata: _metadata }, _onScrollEndDrag_initializers, _onScrollEndDrag_extraInitializers);
482
- __esDecorate(null, null, _onMomentumScrollBegin_decorators, { kind: "field", name: "onMomentumScrollBegin", static: false, private: false, access: { has: obj => "onMomentumScrollBegin" in obj, get: obj => obj.onMomentumScrollBegin, set: (obj, value) => { obj.onMomentumScrollBegin = value; } }, metadata: _metadata }, _onMomentumScrollBegin_initializers, _onMomentumScrollBegin_extraInitializers);
483
- __esDecorate(null, null, _onMomentumScrollEnd_decorators, { kind: "field", name: "onMomentumScrollEnd", static: false, private: false, access: { has: obj => "onMomentumScrollEnd" in obj, get: obj => obj.onMomentumScrollEnd, set: (obj, value) => { obj.onMomentumScrollEnd = value; } }, metadata: _metadata }, _onMomentumScrollEnd_initializers, _onMomentumScrollEnd_extraInitializers);
484
- __esDecorate(null, null, _scrollEventThrottle_decorators, { kind: "field", name: "scrollEventThrottle", static: false, private: false, access: { has: obj => "scrollEventThrottle" in obj, get: obj => obj.scrollEventThrottle, set: (obj, value) => { obj.scrollEventThrottle = value; } }, metadata: _metadata }, _scrollEventThrottle_initializers, _scrollEventThrottle_extraInitializers);
485
- __esDecorate(null, null, _keyboardShouldPersistTaps_decorators, { kind: "field", name: "keyboardShouldPersistTaps", static: false, private: false, access: { has: obj => "keyboardShouldPersistTaps" in obj, get: obj => obj.keyboardShouldPersistTaps, set: (obj, value) => { obj.keyboardShouldPersistTaps = value; } }, metadata: _metadata }, _keyboardShouldPersistTaps_initializers, _keyboardShouldPersistTaps_extraInitializers);
486
- __esDecorate(null, null, _keyboardDismissMode_decorators, { kind: "field", name: "keyboardDismissMode", static: false, private: false, access: { has: obj => "keyboardDismissMode" in obj, get: obj => obj.keyboardDismissMode, set: (obj, value) => { obj.keyboardDismissMode = value; } }, metadata: _metadata }, _keyboardDismissMode_initializers, _keyboardDismissMode_extraInitializers);
487
- __esDecorate(null, null, _style_decorators, { kind: "field", name: "style", static: false, private: false, access: { has: obj => "style" in obj, get: obj => obj.style, set: (obj, value) => { obj.style = value; } }, metadata: _metadata }, _style_initializers, _style_extraInitializers);
488
- __esDecorate(null, null, _contentContainerStyle_decorators, { kind: "field", name: "contentContainerStyle", static: false, private: false, access: { has: obj => "contentContainerStyle" in obj, get: obj => obj.contentContainerStyle, set: (obj, value) => { obj.contentContainerStyle = value; } }, metadata: _metadata }, _contentContainerStyle_initializers, _contentContainerStyle_extraInitializers);
489
- __esDecorate(null, null, _itemDir_decorators, { kind: "field", name: "itemDir", static: false, private: false, access: { has: obj => "itemDir" in obj, get: obj => obj.itemDir, set: (obj, value) => { obj.itemDir = value; } }, metadata: _metadata }, _itemDir_initializers, _itemDir_extraInitializers);
490
- __esDecorate(null, null, _headerDir_decorators, { kind: "field", name: "headerDir", static: false, private: false, access: { has: obj => "headerDir" in obj, get: obj => obj.headerDir, set: (obj, value) => { obj.headerDir = value; } }, metadata: _metadata }, _headerDir_initializers, _headerDir_extraInitializers);
491
- __esDecorate(null, null, _footerDir_decorators, { kind: "field", name: "footerDir", static: false, private: false, access: { has: obj => "footerDir" in obj, get: obj => obj.footerDir, set: (obj, value) => { obj.footerDir = value; } }, metadata: _metadata }, _footerDir_initializers, _footerDir_extraInitializers);
492
- __esDecorate(null, null, _emptyDir_decorators, { kind: "field", name: "emptyDir", static: false, private: false, access: { has: obj => "emptyDir" in obj, get: obj => obj.emptyDir, set: (obj, value) => { obj.emptyDir = value; } }, metadata: _metadata }, _emptyDir_initializers, _emptyDir_extraInitializers);
493
- __esDecorate(null, null, _separatorDir_decorators, { kind: "field", name: "separatorDir", static: false, private: false, access: { has: obj => "separatorDir" in obj, get: obj => obj.separatorDir, set: (obj, value) => { obj.separatorDir = value; } }, metadata: _metadata }, _separatorDir_initializers, _separatorDir_extraInitializers);
494
- __esDecorate(null, null, _listRef_decorators, { kind: "field", name: "listRef", static: false, private: false, access: { has: obj => "listRef" in obj, get: obj => obj.listRef, set: (obj, value) => { obj.listRef = value; } }, metadata: _metadata }, _listRef_initializers, _listRef_extraInitializers);
495
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
496
- FlatList = _classThis = _classDescriptor.value;
497
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
498
- __runInitializers(_classThis, _classExtraInitializers);
499
- }
500
- // The list's edge/viewability/failure events as real Angular events: `(endReached)="…"`, not
501
- // `[onEndReached]="…"` — re-emitted straight from the inner VirtualizedList's own @Output()s (see
502
- // the template's `(endReached)="endReached.emit($event)"` style forwarding above).
503
- endReached = __runInitializers(this, _endReached_initializers, new EventEmitter());
504
- startReached = (__runInitializers(this, _endReached_extraInitializers), __runInitializers(this, _startReached_initializers, new EventEmitter()));
505
- refresh = (__runInitializers(this, _startReached_extraInitializers), __runInitializers(this, _refresh_initializers, new EventEmitter()));
506
- viewableItemsChanged = (__runInitializers(this, _refresh_extraInitializers), __runInitializers(this, _viewableItemsChanged_initializers, new EventEmitter()));
507
- scrollToIndexFailed = (__runInitializers(this, _viewableItemsChanged_extraInitializers), __runInitializers(this, _scrollToIndexFailed_initializers, new EventEmitter()));
508
- data = (__runInitializers(this, _scrollToIndexFailed_extraInitializers), __runInitializers(this, _data_initializers, void 0));
509
- numColumns = (__runInitializers(this, _data_extraInitializers), __runInitializers(this, _numColumns_initializers, void 0));
510
- columnWrapperStyle = (__runInitializers(this, _numColumns_extraInitializers), __runInitializers(this, _columnWrapperStyle_initializers, void 0));
511
- keyExtractor = (__runInitializers(this, _columnWrapperStyle_extraInitializers), __runInitializers(this, _keyExtractor_initializers, void 0));
512
- getItemLayout = (__runInitializers(this, _keyExtractor_extraInitializers), __runInitializers(this, _getItemLayout_initializers, void 0));
513
- horizontal = (__runInitializers(this, _getItemLayout_extraInitializers), __runInitializers(this, _horizontal_initializers, void 0));
514
- inverted = (__runInitializers(this, _horizontal_extraInitializers), __runInitializers(this, _inverted_initializers, void 0));
515
- extraData = (__runInitializers(this, _inverted_extraInitializers), __runInitializers(this, _extraData_initializers, void 0));
516
- onEndReachedThreshold = (__runInitializers(this, _extraData_extraInitializers), __runInitializers(this, _onEndReachedThreshold_initializers, void 0));
517
- onStartReachedThreshold = (__runInitializers(this, _onEndReachedThreshold_extraInitializers), __runInitializers(this, _onStartReachedThreshold_initializers, void 0));
518
- refreshing = (__runInitializers(this, _onStartReachedThreshold_extraInitializers), __runInitializers(this, _refreshing_initializers, void 0));
519
- progressViewOffset = (__runInitializers(this, _refreshing_extraInitializers), __runInitializers(this, _progressViewOffset_initializers, void 0));
520
- viewabilityConfig = (__runInitializers(this, _progressViewOffset_extraInitializers), __runInitializers(this, _viewabilityConfig_initializers, void 0));
521
- viewabilityConfigCallbackPairs = (__runInitializers(this, _viewabilityConfig_extraInitializers), __runInitializers(this, _viewabilityConfigCallbackPairs_initializers, void 0));
522
- initialNumToRender = (__runInitializers(this, _viewabilityConfigCallbackPairs_extraInitializers), __runInitializers(this, _initialNumToRender_initializers, void 0));
523
- initialScrollIndex = (__runInitializers(this, _initialNumToRender_extraInitializers), __runInitializers(this, _initialScrollIndex_initializers, void 0));
524
- maxToRenderPerBatch = (__runInitializers(this, _initialScrollIndex_extraInitializers), __runInitializers(this, _maxToRenderPerBatch_initializers, void 0));
525
- updateCellsBatchingPeriod = (__runInitializers(this, _maxToRenderPerBatch_extraInitializers), __runInitializers(this, _updateCellsBatchingPeriod_initializers, void 0));
526
- windowSize = (__runInitializers(this, _updateCellsBatchingPeriod_extraInitializers), __runInitializers(this, _windowSize_initializers, void 0));
527
- stickyHeaderIndices = (__runInitializers(this, _windowSize_extraInitializers), __runInitializers(this, _stickyHeaderIndices_initializers, void 0));
528
- maintainVisibleContentPosition = (__runInitializers(this, _stickyHeaderIndices_extraInitializers), __runInitializers(this, _maintainVisibleContentPosition_initializers, void 0));
529
- onScroll = (__runInitializers(this, _maintainVisibleContentPosition_extraInitializers), __runInitializers(this, _onScroll_initializers, void 0));
530
- onScrollBeginDrag = (__runInitializers(this, _onScroll_extraInitializers), __runInitializers(this, _onScrollBeginDrag_initializers, void 0));
531
- onScrollEndDrag = (__runInitializers(this, _onScrollBeginDrag_extraInitializers), __runInitializers(this, _onScrollEndDrag_initializers, void 0));
532
- onMomentumScrollBegin = (__runInitializers(this, _onScrollEndDrag_extraInitializers), __runInitializers(this, _onMomentumScrollBegin_initializers, void 0));
533
- onMomentumScrollEnd = (__runInitializers(this, _onMomentumScrollBegin_extraInitializers), __runInitializers(this, _onMomentumScrollEnd_initializers, void 0));
534
- scrollEventThrottle = (__runInitializers(this, _onMomentumScrollEnd_extraInitializers), __runInitializers(this, _scrollEventThrottle_initializers, void 0));
535
- keyboardShouldPersistTaps = (__runInitializers(this, _scrollEventThrottle_extraInitializers), __runInitializers(this, _keyboardShouldPersistTaps_initializers, void 0));
536
- keyboardDismissMode = (__runInitializers(this, _keyboardShouldPersistTaps_extraInitializers), __runInitializers(this, _keyboardDismissMode_initializers, void 0));
537
- style = (__runInitializers(this, _keyboardDismissMode_extraInitializers), __runInitializers(this, _style_initializers, void 0));
538
- contentContainerStyle = (__runInitializers(this, _style_extraInitializers), __runInitializers(this, _contentContainerStyle_initializers, void 0));
539
- // The app's cell + slot templates, captured for the multi-column re-stamp path. In the
540
- // single-column path they are ALSO projected through <ng-content> to the inner list and these
541
- // captures stay unused (the inner list's own @ContentChild resolves them across the projection).
542
- itemDir = (__runInitializers(this, _contentContainerStyle_extraInitializers), __runInitializers(this, _itemDir_initializers, void 0));
543
- headerDir = (__runInitializers(this, _itemDir_extraInitializers), __runInitializers(this, _headerDir_initializers, void 0));
544
- footerDir = (__runInitializers(this, _headerDir_extraInitializers), __runInitializers(this, _footerDir_initializers, void 0));
545
- emptyDir = (__runInitializers(this, _footerDir_extraInitializers), __runInitializers(this, _emptyDir_initializers, void 0));
546
- separatorDir = (__runInitializers(this, _emptyDir_extraInitializers), __runInitializers(this, _separatorDir_initializers, void 0));
547
- // The composed inner list (whichever numColumns branch rendered). Its instance IS the
548
- // IVirtualizedListHandle, so FlatList's handle delegates straight to it.
549
- listRef = (__runInitializers(this, _separatorDir_extraInitializers), __runInitializers(this, _listRef_initializers, void 0));
550
- // This component's OWN host — the non-painting anchor `class="..."` at the use site resolves
551
- // onto (see anchorHostStyle's doc comment) — NOT `listRef` above, which targets the real inner
552
- // `<VirtualizedList>` one level down (itself its own separate anchor host).
553
- elementRef = (__runInitializers(this, _listRef_extraInitializers), inject(ElementRef));
554
- // --- derived view state (recomputed in ngOnChanges, stable identity across CD) ---
555
- rows = [];
556
- // Angular's [style]="…" binding compiles to the built-in ɵɵstyleMap instruction (NOT a
557
- // regular @Input() property write), which only understands a flat object — an array (RN's
558
- // own `style={[a, b]}` composition idiom) crashes deep inside Angular's styling engine. So
559
- // every style value this component stamps onto a template `[style]=` binding is flattened
560
- // via the engine's own flattenStyle first, here at the source rather than at each call site.
561
- rowStyle = flattenStyle([{ flexDirection: 'row' }]);
562
- rowViewabilityPairs;
563
- columnCellStyle = { flex: 1 };
564
- resolvedStyle = undefined;
565
- get columns() {
566
- return this.numColumns ?? SINGLE_COLUMN;
567
- }
568
- get isMultiColumn() {
569
- return this.columns > SINGLE_COLUMN;
570
- }
571
- ngOnChanges(changes) {
572
- // Recomputed on EVERY ngOnChanges call, not gated on `changes['style']`: a class= on the
573
- // FlatList use site (no matching [style] binding at all) never appears in `changes`, so a
574
- // guard here would permanently skip picking up anchorHostStyle for that (the actual bug-report
575
- // shape) — ngOnChanges still fires at least once at mount via the required `data` @Input(), and
576
- // by then the anchor's class-derived style is already resolved synchronously (routeProp runs
577
- // inline from Renderer2.addClass, before this component's own lifecycle hooks). stableAnchorStyle
578
- // (not a bare flattenStyle) keeps `resolvedStyle`'s REFERENCE stable across ticks where nothing
579
- // actually changed — `[style]="resolvedStyle"` binds onto VirtualizedList's own `@Input() style`,
580
- // which feeds its `ngDoCheck` dedup gate; a fresh object every tick would defeat that gate and
581
- // free-run change detection forever (see stableAnchorStyle's doc comment).
582
- this.resolvedStyle = stableAnchorStyle(this.elementRef, this.style, this.resolvedStyle);
583
- if (changes['columnWrapperStyle'] !== undefined) {
584
- // A class-name string resolves through the shared registry before flattenStyle, which
585
- // only understands style objects/arrays.
586
- const resolvedColumnWrapperStyle = typeof this.columnWrapperStyle === 'string'
587
- ? resolveClassName(this.columnWrapperStyle)
588
- : this.columnWrapperStyle;
589
- this.rowStyle = flattenStyle([{ flexDirection: 'row' }, resolvedColumnWrapperStyle]);
590
- }
591
- if (changes['data'] !== undefined || changes['numColumns'] !== undefined) {
592
- this.rows = this.isMultiColumn ? chunkIntoRows(this.data, this.columns) : [];
593
- dlog(`Angular FlatList over ${this.data?.length ?? 0} items, ${this.columns} column(s)`);
594
- }
595
- if (changes['viewabilityConfigCallbackPairs'] !== undefined ||
596
- changes['numColumns'] !== undefined) {
597
- this.rowViewabilityPairs = this.buildRowViewabilityPairs();
598
- }
599
- }
600
- // ---- single-column data adaptation (plain array -> getItem/getItemCount) ----
601
- getFlatItem = (_data, index) => this.data[index];
602
- getFlatCount = (_data) => this.data.length;
603
- // ---- multi-column data adaptation (the virtualized stream is rows) ----
604
- getRow = (_data, index) => this.rows[index];
605
- getRowCount = (_data) => this.rows.length;
606
- rowKey = (row, _index) => rowKeyExtractor(row);
607
- // Viewability over rows expands back to per-item tokens, so the caller sees item-level
608
- // visibility, not row-level (shared expandRowViewability), matching Vue.
609
- rowViewableItemsChanged = (info) => {
610
- this.viewableItemsChanged.emit(expandRowViewability(info, this.keyExtractor));
611
- };
612
- buildRowViewabilityPairs() {
613
- return this.viewabilityConfigCallbackPairs?.map(pair => ({
614
- viewabilityConfig: pair.viewabilityConfig,
615
- onViewableItemsChanged: (rowInfo) => {
616
- pair.onViewableItemsChanged?.(expandRowViewability(rowInfo, this.keyExtractor));
617
- },
618
- }));
619
- }
620
- // Lay out one row's N columns: every item shares the row's separators handle (the divider sits
621
- // between rows, not columns) and carries its absolute index (row.startIndex + column), like RN's
622
- // multi-column FlatList. Args arrive `unknown` from the template's `let` bindings (Angular cannot
623
- // type a generic structural directive's context), narrowed here — no `as`.
624
- rowCells(row, separators) {
625
- if (!isRow(row))
626
- return [];
627
- const handle = isSeparators(separators) ? separators : NOOP_SEPARATORS;
628
- return row.items.map((item, column) => {
629
- const index = row.startIndex + column;
630
- const key = this.keyExtractor ? this.keyExtractor(item, index) : String(index);
631
- return { key, context: { $implicit: item, index, separators: handle } };
632
- });
633
- }
634
- // The divider between rows shows real items (last of the row above, first of the row below), so the
635
- // app's separator template, typed on ItemT, sees items rather than the IRow wrapper. Args arrive
636
- // `unknown` from the template's `let` bindings, narrowed here.
637
- rowSeparatorContext(highlighted, leadingRow, trailingRow) {
638
- const isHighlighted = highlighted === true;
639
- return {
640
- $implicit: isHighlighted,
641
- highlighted: isHighlighted,
642
- leadingItem: isRow(leadingRow) ? lastItemOfRow(leadingRow) : undefined,
643
- trailingItem: isRow(trailingRow) ? firstItemOfRow(trailingRow) : undefined,
644
- };
645
- }
646
- // Single-column separator context: leadingItem/trailingItem are already real items (no row
647
- // wrapper to narrow through — see the asItem boundary comment above).
648
- itemSeparatorContext(highlighted, leadingItem, trailingItem) {
649
- const isHighlighted = highlighted === true;
650
- return {
651
- $implicit: isHighlighted,
652
- highlighted: isHighlighted,
653
- leadingItem: asItem(leadingItem),
654
- trailingItem: asItem(trailingItem),
655
- };
656
- }
657
- // ---- imperative handle (RN FlatList surface) — delegates to the inner VirtualizedList ----
658
- scrollToOffset(params) {
659
- this.listRef?.scrollToOffset(params);
660
- }
661
- scrollToIndex(params) {
662
- this.listRef?.scrollToIndex(params);
663
- }
664
- scrollToItem(params) {
665
- this.listRef?.scrollToItem(params);
666
- }
667
- scrollToEnd(params) {
668
- this.listRef?.scrollToEnd(params);
669
- }
670
- flashScrollIndicators() {
671
- this.listRef?.flashScrollIndicators();
672
- }
673
- getNativeScrollRef() {
674
- return this.listRef?.getNativeScrollRef() ?? null;
675
- }
676
- getScrollableNode() {
677
- return this.listRef?.getScrollableNode() ?? null;
678
- }
679
- getScrollResponder() {
680
- return this.listRef?.getScrollResponder() ?? null;
681
- }
682
- getScrollNode() {
683
- return this.listRef?.getScrollNode() ?? null;
684
- }
685
- recordInteraction() {
686
- this.listRef?.recordInteraction();
687
- }
688
- };
689
- return FlatList = _classThis;
690
- })();
691
- export { FlatList };