@symbiote-native/angular 3.2.0 → 3.4.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.
Files changed (207) hide show
  1. package/babel-register-composed.cjs +2 -0
  2. package/build/angular/accessibility-inputs.d.ts +2 -1
  3. package/build/angular/accessibility-inputs.js +4 -1
  4. package/build/angular/accessibility-inputs.js.map +1 -1
  5. package/build/angular/callback-host.d.ts +1 -1
  6. package/build/angular/callback-host.js +57 -9
  7. package/build/angular/callback-host.js.map +1 -1
  8. package/build/angular/components/checkbox-props.d.ts +2 -0
  9. package/build/angular/components/checkbox-props.js +2 -0
  10. package/build/angular/components/checkbox-props.js.map +1 -0
  11. package/build/angular/components/flat-list/flat-list-handle.d.ts +35 -0
  12. package/build/angular/components/flat-list/flat-list-handle.js +48 -0
  13. package/build/angular/components/flat-list/flat-list-handle.js.map +1 -0
  14. package/build/angular/components/flat-list/flat-list-template.d.ts +1 -1
  15. package/build/angular/components/flat-list/flat-list-template.js +16 -0
  16. package/build/angular/components/flat-list/flat-list-template.js.map +1 -1
  17. package/build/angular/components/flat-list/index.d.ts +6 -30
  18. package/build/angular/components/flat-list/index.js +6 -36
  19. package/build/angular/components/flat-list/index.js.map +1 -1
  20. package/build/angular/components/image-inputs.d.ts +4 -0
  21. package/build/angular/components/image-inputs.js +81 -0
  22. package/build/angular/components/image-inputs.js.map +1 -0
  23. package/build/angular/components/image-props-resolve.d.ts +3 -0
  24. package/build/angular/components/image-props-resolve.js +133 -0
  25. package/build/angular/components/image-props-resolve.js.map +1 -0
  26. package/build/angular/components/image-shared.d.ts +8 -6
  27. package/build/angular/components/image-shared.js +23 -212
  28. package/build/angular/components/image-shared.js.map +1 -1
  29. package/build/angular/components/input-accessory-view-props.d.ts +4 -4
  30. package/build/angular/components/keyboard-avoiding-view/index.d.ts +3 -6
  31. package/build/angular/components/keyboard-avoiding-view/index.js +29 -56
  32. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
  33. package/build/angular/components/layout-conformance-props.d.ts +4 -0
  34. package/build/angular/components/layout-conformance-props.js +2 -0
  35. package/build/angular/components/layout-conformance-props.js.map +1 -0
  36. package/build/angular/components/modal/index.d.ts +6 -5
  37. package/build/angular/components/modal/index.js +17 -2
  38. package/build/angular/components/modal/index.js.map +1 -1
  39. package/build/angular/components/refresh-control-props.d.ts +7 -7
  40. package/build/angular/components/scroll-view-props.d.ts +8 -5
  41. package/build/angular/components/section-list/index.d.ts +17 -8
  42. package/build/angular/components/section-list/index.js +37 -28
  43. package/build/angular/components/section-list/index.js.map +1 -1
  44. package/build/angular/components/touchable-props.d.ts +2 -2
  45. package/build/angular/components/virtualized-list/cell-renderer-context.d.ts +12 -0
  46. package/build/angular/components/virtualized-list/cell-renderer-context.js +16 -0
  47. package/build/angular/components/virtualized-list/cell-renderer-context.js.map +1 -0
  48. package/build/angular/components/virtualized-list/directives.d.ts +26 -6
  49. package/build/angular/components/virtualized-list/directives.js +59 -5
  50. package/build/angular/components/virtualized-list/directives.js.map +1 -1
  51. package/build/angular/components/virtualized-list/index.d.ts +19 -15
  52. package/build/angular/components/virtualized-list/index.js +91 -61
  53. package/build/angular/components/virtualized-list/index.js.map +1 -1
  54. package/build/angular/components/virtualized-list/list-bags.d.ts +5 -1
  55. package/build/angular/components/virtualized-list/list-bags.js +31 -19
  56. package/build/angular/components/virtualized-list/list-bags.js.map +1 -1
  57. package/build/angular/components/virtualized-list/list-effects.d.ts +2 -2
  58. package/build/angular/components/virtualized-list/list-effects.js +17 -27
  59. package/build/angular/components/virtualized-list/list-effects.js.map +1 -1
  60. package/build/angular/components/virtualized-list/list-handle.d.ts +4 -1
  61. package/build/angular/components/virtualized-list/list-handle.js +13 -3
  62. package/build/angular/components/virtualized-list/list-handle.js.map +1 -1
  63. package/build/angular/components/virtualized-list/list-inputs.d.ts +19 -5
  64. package/build/angular/components/virtualized-list/list-inputs.js +47 -4
  65. package/build/angular/components/virtualized-list/list-inputs.js.map +1 -1
  66. package/build/angular/components/virtualized-list/list-props.d.ts +9 -3
  67. package/build/angular/components/virtualized-list/list-rows.d.ts +25 -0
  68. package/build/angular/components/virtualized-list/list-rows.js +25 -0
  69. package/build/angular/components/virtualized-list/list-rows.js.map +1 -0
  70. package/build/angular/components/virtualized-list/list-styles.d.ts +4 -0
  71. package/build/angular/components/virtualized-list/list-styles.js +10 -2
  72. package/build/angular/components/virtualized-list/list-styles.js.map +1 -1
  73. package/build/angular/components/virtualized-list/list-template.d.ts +1 -1
  74. package/build/angular/components/virtualized-list/list-template.js +159 -73
  75. package/build/angular/components/virtualized-list/list-template.js.map +1 -1
  76. package/build/angular/components/virtualized-list/nested-scope.d.ts +6 -0
  77. package/build/angular/components/virtualized-list/nested-scope.js +17 -0
  78. package/build/angular/components/virtualized-list/nested-scope.js.map +1 -0
  79. package/build/angular/components/virtualized-section-list/directives.d.ts +21 -9
  80. package/build/angular/components/virtualized-section-list/directives.js +8 -28
  81. package/build/angular/components/virtualized-section-list/directives.js.map +1 -1
  82. package/build/angular/components/virtualized-section-list/index.d.ts +39 -60
  83. package/build/angular/components/virtualized-section-list/index.js +67 -33
  84. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  85. package/build/angular/components/virtualized-section-list/section-cell.d.ts +29 -0
  86. package/build/angular/components/virtualized-section-list/section-cell.js +82 -0
  87. package/build/angular/components/virtualized-section-list/section-cell.js.map +1 -0
  88. package/build/angular/components/virtualized-section-list/section-list-props.d.ts +56 -0
  89. package/build/angular/components/virtualized-section-list/section-list-props.js +3 -0
  90. package/build/angular/components/virtualized-section-list/section-list-props.js.map +1 -0
  91. package/build/angular/components/virtualized-section-list/section-list-template.d.ts +1 -1
  92. package/build/angular/components/virtualized-section-list/section-list-template.js +34 -26
  93. package/build/angular/components/virtualized-section-list/section-list-template.js.map +1 -1
  94. package/build/angular/components.d.ts +8 -3
  95. package/build/angular/components.js +2 -1
  96. package/build/angular/components.js.map +1 -1
  97. package/build/angular/descriptor-to-angular/descriptor-host.d.ts +8 -0
  98. package/build/angular/descriptor-to-angular/descriptor-host.js +38 -0
  99. package/build/angular/descriptor-to-angular/descriptor-host.js.map +1 -0
  100. package/build/angular/descriptor-to-angular/index.d.ts +1 -0
  101. package/build/angular/descriptor-to-angular/index.js +4 -0
  102. package/build/angular/descriptor-to-angular/index.js.map +1 -1
  103. package/build/angular/element-base.d.ts +169 -0
  104. package/build/angular/element-base.js +304 -0
  105. package/build/angular/element-base.js.map +1 -0
  106. package/build/angular/element-props.d.ts +7 -7
  107. package/build/angular/element-text-input-native.d.ts +27 -0
  108. package/build/angular/element-text-input-native.js +52 -0
  109. package/build/angular/element-text-input-native.js.map +1 -0
  110. package/build/angular/elements-controls.d.ts +171 -0
  111. package/build/angular/elements-controls.js +394 -0
  112. package/build/angular/elements-controls.js.map +1 -0
  113. package/build/angular/elements-layout.d.ts +139 -0
  114. package/build/angular/elements-layout.js +276 -0
  115. package/build/angular/elements-layout.js.map +1 -0
  116. package/build/angular/elements-press.d.ts +103 -0
  117. package/build/angular/elements-press.js +239 -0
  118. package/build/angular/elements-press.js.map +1 -0
  119. package/build/angular/elements.d.ts +6 -516
  120. package/build/angular/elements.js +9 -1091
  121. package/build/angular/elements.js.map +1 -1
  122. package/build/angular/host-instance/index.d.ts +2 -0
  123. package/build/angular/host-instance/index.js +4 -4
  124. package/build/angular/host-instance/index.js.map +1 -1
  125. package/build/angular/index.d.ts +17 -9
  126. package/build/angular/index.js +24 -27
  127. package/build/angular/index.js.map +1 -1
  128. package/build/angular/modules/animated/create-animated-component.d.ts +1 -1
  129. package/build/angular/modules/animated/create-animated-component.js +1 -1
  130. package/build/angular/modules/animated/create-animated-component.js.map +1 -1
  131. package/build/angular/modules/animated/index.d.ts +54 -41
  132. package/build/angular/modules/animated/index.js +2 -26
  133. package/build/angular/modules/animated/index.js.map +1 -1
  134. package/build/angular/modules/app-registry/index.d.ts +3 -3
  135. package/build/angular/modules/app-registry/index.js +2 -2
  136. package/build/angular/modules/app-registry/index.js.map +1 -1
  137. package/build/angular/modules/status-bar/index.d.ts +9 -5
  138. package/build/angular/modules/status-bar/index.js +21 -10
  139. package/build/angular/modules/status-bar/index.js.map +1 -1
  140. package/build/angular/native-view-base.d.ts +10 -2
  141. package/build/angular/native-view-base.js +23 -2
  142. package/build/angular/native-view-base.js.map +1 -1
  143. package/build/angular/primitives/index.d.ts +4 -0
  144. package/build/angular/primitives/index.js +12 -0
  145. package/build/angular/primitives/index.js.map +1 -1
  146. package/build/angular/services/color-scheme.service.d.ts +1 -1
  147. package/build/angular/services/index.d.ts +1 -0
  148. package/build/angular/services/index.js +1 -0
  149. package/build/angular/services/index.js.map +1 -1
  150. package/build/angular/services/inject-event.d.ts +6 -0
  151. package/build/angular/services/inject-event.js +24 -0
  152. package/build/angular/services/inject-event.js.map +1 -0
  153. package/package.json +6 -6
  154. package/src/accessibility-inputs.ts +3 -0
  155. package/src/callback-host.ts +56 -8
  156. package/src/components/checkbox-props.ts +12 -0
  157. package/src/components/flat-list/flat-list-handle.ts +64 -0
  158. package/src/components/flat-list/flat-list-template.ts +16 -0
  159. package/src/components/flat-list/index.ts +6 -48
  160. package/src/components/image-inputs.ts +94 -0
  161. package/src/components/image-props-resolve.ts +172 -0
  162. package/src/components/image-shared.ts +26 -291
  163. package/src/components/input-accessory-view-props.ts +12 -8
  164. package/src/components/keyboard-avoiding-view/index.ts +39 -79
  165. package/src/components/layout-conformance-props.ts +8 -0
  166. package/src/components/modal/index.ts +42 -20
  167. package/src/components/refresh-control-props.ts +29 -25
  168. package/src/components/scroll-view-props.ts +84 -76
  169. package/src/components/section-list/index.ts +34 -37
  170. package/src/components/touchable-props.ts +6 -2
  171. package/src/components/virtualized-list/cell-renderer-context.ts +36 -0
  172. package/src/components/virtualized-list/directives.ts +84 -8
  173. package/src/components/virtualized-list/index.ts +118 -85
  174. package/src/components/virtualized-list/list-bags.ts +38 -19
  175. package/src/components/virtualized-list/list-effects.ts +20 -32
  176. package/src/components/virtualized-list/list-handle.ts +17 -4
  177. package/src/components/virtualized-list/list-inputs.ts +47 -0
  178. package/src/components/virtualized-list/list-props.ts +57 -50
  179. package/src/components/virtualized-list/list-rows.ts +66 -0
  180. package/src/components/virtualized-list/list-styles.ts +30 -1
  181. package/src/components/virtualized-list/list-template.ts +159 -73
  182. package/src/components/virtualized-list/nested-scope.ts +22 -0
  183. package/src/components/virtualized-section-list/directives.ts +41 -40
  184. package/src/components/virtualized-section-list/index.ts +114 -118
  185. package/src/components/virtualized-section-list/section-cell.ts +109 -0
  186. package/src/components/virtualized-section-list/section-list-props.ts +79 -0
  187. package/src/components/virtualized-section-list/section-list-template.ts +34 -26
  188. package/src/components.ts +9 -0
  189. package/src/descriptor-to-angular/descriptor-host.ts +27 -0
  190. package/src/descriptor-to-angular/index.ts +5 -0
  191. package/src/element-base.ts +289 -0
  192. package/src/element-props.ts +35 -33
  193. package/src/element-text-input-native.ts +31 -0
  194. package/src/elements-controls.ts +290 -0
  195. package/src/elements-layout.ts +168 -0
  196. package/src/elements-press.ts +153 -0
  197. package/src/elements.ts +76 -788
  198. package/src/host-instance/index.ts +4 -4
  199. package/src/index.ts +78 -23
  200. package/src/modules/animated/index.ts +2 -47
  201. package/src/modules/app-registry/index.ts +3 -1
  202. package/src/modules/status-bar/index.ts +24 -11
  203. package/src/native-view-base.ts +37 -2
  204. package/src/primitives/index.ts +7 -0
  205. package/src/services/color-scheme.service.ts +1 -1
  206. package/src/services/index.ts +1 -0
  207. package/src/services/inject-event.ts +52 -0
@@ -1,61 +1,27 @@
1
- import { type DoCheck } from '@angular/core';
2
- import { type IAccessibilityProps, type IAriaProps, type ISection, type ISectionEntry, type ISeparators, type IScrollViewHandle, type IVirtualizedSectionListHandle } from '@symbiote-native/components';
1
+ import { type DoCheck, type TemplateRef } from '@angular/core';
2
+ import { type IInnerViewRef, type ISectionEntry, type ISeparators, type IScrollViewHandle, type IVirtualizedSectionListHandle } from '@symbiote-native/components';
3
3
  import { type IStyleProp, type ISymbioteEvent, type ISymbioteNode, type IViewStyle } from '@symbiote-native/engine';
4
- import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, type IVListSeparatorContext } from '../virtualized-list';
4
+ import { VListCellDirective, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, type IVListCellContext } from '../virtualized-list';
5
5
  import { ListEventsBase } from '../virtualized-list/list-events';
6
- import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, type IVSectionContext, type IVSectionItemContext } from './directives';
6
+ import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, type ISection, type IVSectionContext, type IVSectionItemContext } from './directives';
7
+ import { type ISeparatorSlot } from './section-cell';
8
+ import type { IItemLayout, IVirtualizedSectionListInputs } from './section-list-props';
7
9
  import * as i0 from "@angular/core";
8
10
  import * as i1 from "../../primitives/shared";
9
- export type { ISection } from '@symbiote-native/components';
10
11
  export type { IVirtualizedSectionListHandle } from '@symbiote-native/components';
11
12
  export { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from './directives';
12
- export type { IVSectionContext, IVSectionItemContext } from './directives';
13
- type IItemLayout = {
14
- length: number;
15
- offset: number;
16
- index: number;
13
+ export type { ISection, IVSectionContext, IVSectionItemContext, IVSectionSeparatorContext, } from './directives';
14
+ type IEntry<ItemT> = ISectionEntry<ItemT, ISection<ItemT>>;
15
+ export type ICellPlan<ItemT> = {
16
+ cellKey: string;
17
+ prevCellKey: string | undefined;
18
+ hasLeading: boolean;
19
+ hasTrailing: boolean;
20
+ itemTemplate: TemplateRef<IVSectionItemContext<ItemT>> | undefined;
21
+ first: ISeparatorSlot<ItemT>;
22
+ second: ISeparatorSlot<ItemT>;
17
23
  };
18
- export interface IVirtualizedSectionListProps<ItemT> extends IAccessibilityProps, IAriaProps {
19
- sections: ReadonlyArray<ISection<ItemT>>;
20
- keyExtractor?: (item: ItemT, index: number) => string;
21
- getItemLayout?: (data: ReadonlyArray<ISection<ItemT>> | null, index: number) => IItemLayout;
22
- stickySectionHeadersEnabled?: boolean;
23
- extraData?: unknown;
24
- onEndReached?: (info: {
25
- distanceFromEnd: number;
26
- }) => void;
27
- onEndReachedThreshold?: number;
28
- onStartReached?: (info: {
29
- distanceFromStart: number;
30
- }) => void;
31
- onStartReachedThreshold?: number;
32
- onRefresh?: () => void;
33
- refreshing?: boolean | null;
34
- progressViewOffset?: number;
35
- initialNumToRender?: number;
36
- initialScrollIndex?: number;
37
- maxToRenderPerBatch?: number;
38
- updateCellsBatchingPeriod?: number;
39
- windowSize?: number;
40
- inverted?: boolean;
41
- maintainVisibleContentPosition?: {
42
- minIndexForVisible: number;
43
- autoscrollToTopThreshold?: number;
44
- };
45
- onScroll?: (event: ISymbioteEvent) => void;
46
- onScrollBeginDrag?: (event: ISymbioteEvent) => void;
47
- onScrollEndDrag?: (event: ISymbioteEvent) => void;
48
- onMomentumScrollBegin?: (event: ISymbioteEvent) => void;
49
- onMomentumScrollEnd?: (event: ISymbioteEvent) => void;
50
- scrollEventThrottle?: number;
51
- keyboardShouldPersistTaps?: boolean | 'always' | 'never' | 'handled';
52
- keyboardDismissMode?: 'none' | 'on-drag' | 'interactive';
53
- removeClippedSubviews?: boolean;
54
- nestedScrollEnabled?: boolean;
55
- style?: IStyleProp<IViewStyle>;
56
- contentContainerStyle?: IStyleProp<IViewStyle>;
57
- }
58
- export type IVirtualizedSectionListInputs<ItemT> = Omit<IVirtualizedSectionListProps<ItemT>, 'onEndReached' | 'onStartReached' | 'onRefresh' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
24
+ export type { IVirtualizedSectionListInputs, IVirtualizedSectionListProps, } from './section-list-props';
59
25
  export declare class VirtualizedSectionList<ItemT = unknown> extends ListEventsBase implements IVirtualizedSectionListInputs<ItemT>, IVirtualizedSectionListHandle, DoCheck {
60
26
  sections: ReadonlyArray<ISection<ItemT>>;
61
27
  keyExtractor?: (item: ItemT, index: number) => string;
@@ -72,7 +38,9 @@ export declare class VirtualizedSectionList<ItemT = unknown> extends ListEventsB
72
38
  maxToRenderPerBatch?: number;
73
39
  updateCellsBatchingPeriod?: number;
74
40
  windowSize?: number;
41
+ disableVirtualization?: boolean;
75
42
  inverted?: boolean;
43
+ horizontal?: boolean;
76
44
  maintainVisibleContentPosition?: {
77
45
  minIndexForVisible: number;
78
46
  autoscrollToTopThreshold?: number;
@@ -82,13 +50,18 @@ export declare class VirtualizedSectionList<ItemT = unknown> extends ListEventsB
82
50
  onScrollEndDrag?: (event: ISymbioteEvent) => void;
83
51
  onMomentumScrollBegin?: (event: ISymbioteEvent) => void;
84
52
  onMomentumScrollEnd?: (event: ISymbioteEvent) => void;
53
+ onContentSizeChange?: (width: number, height: number) => void;
85
54
  scrollEventThrottle?: number;
86
55
  keyboardShouldPersistTaps?: boolean | 'always' | 'never' | 'handled';
87
56
  keyboardDismissMode?: 'none' | 'on-drag' | 'interactive';
88
57
  removeClippedSubviews?: boolean;
89
58
  nestedScrollEnabled?: boolean;
59
+ stickyHeaderHiddenOnScroll?: boolean;
60
+ innerViewRef?: IInnerViewRef;
90
61
  style?: IStyleProp<IViewStyle>;
91
62
  contentContainerStyle?: IStyleProp<IViewStyle>;
63
+ listHeaderComponentStyle?: IStyleProp<IViewStyle>;
64
+ listFooterComponentStyle?: IStyleProp<IViewStyle>;
92
65
  testID?: string;
93
66
  nativeID?: string;
94
67
  private cachedResolvedStyle;
@@ -96,23 +69,26 @@ export declare class VirtualizedSectionList<ItemT = unknown> extends ListEventsB
96
69
  sectionItemDir?: VSectionItemDirective<ItemT>;
97
70
  sectionHeaderDir?: VSectionHeaderDirective<ItemT>;
98
71
  sectionFooterDir?: VSectionFooterDirective<ItemT>;
99
- sectionSeparatorDir?: VSectionSeparatorDirective;
72
+ sectionSeparatorDir?: VSectionSeparatorDirective<ItemT>;
100
73
  listHeaderDir?: VListHeaderDirective;
101
74
  listFooterDir?: VListFooterDirective;
102
75
  listEmptyDir?: VListEmptyDirective;
103
76
  itemSeparatorDir?: VListSeparatorDirective<ItemT>;
77
+ cellDir?: VListCellDirective;
78
+ cellRendererTemplate?: TemplateRef<IVListCellContext>;
79
+ get cellRendererTpl(): TemplateRef<IVListCellContext> | undefined;
104
80
  private list?;
105
81
  private readonly elementRef;
106
- flatEntries: ISectionEntry<ItemT>[];
82
+ flatEntries: IEntry<ItemT>[];
107
83
  stickyHeaderIndices: number[] | undefined;
84
+ readonly board: import("@symbiote-native/components").ISeparatorBoard<Record<string, unknown>>;
108
85
  private headerIndices;
109
86
  private lastSectionsRef;
110
- private lastHasSectionSeparator;
111
87
  private readonly cdr;
112
88
  ngDoCheck(): void;
113
- getEntry: (_source: unknown, index: number) => ISectionEntry<ItemT>;
89
+ getEntry: (_source: unknown, index: number) => IEntry<ItemT>;
114
90
  getEntryCount: () => number;
115
- entryKeyExtractor: (entry: ISectionEntry<ItemT>, index: number) => string;
91
+ entryKeyExtractor: (entry: IEntry<ItemT>) => string;
116
92
  private cachedEntryItemLayout?;
117
93
  private lastGetItemLayout?;
118
94
  get entryItemLayout(): ((data: unknown, index: number) => IItemLayout) | undefined;
@@ -124,10 +100,11 @@ export declare class VirtualizedSectionList<ItemT = unknown> extends ListEventsB
124
100
  }) => void) | undefined;
125
101
  get resolvedOnRefresh(): (() => void) | undefined;
126
102
  private isEntry;
127
- entryKind(value: unknown): ISectionEntry<ItemT>['kind'] | 'unknown';
103
+ entryKind(value: unknown): IEntry<ItemT>['kind'] | 'unknown';
128
104
  sectionContextOf(value: unknown): IVSectionContext<ItemT> | undefined;
129
105
  itemContextOf(value: unknown, separators: ISeparators): IVSectionItemContext<ItemT> | undefined;
130
- itemSeparatorContextOf(highlighted: unknown, leadingItem: unknown, trailingItem: unknown): IVListSeparatorContext<ItemT>;
106
+ private slotFor;
107
+ cellPlanOf(value: unknown, index: number): ICellPlan<ItemT> | undefined;
131
108
  scrollToLocation(params: {
132
109
  sectionIndex: number;
133
110
  itemIndex: number;
@@ -136,11 +113,13 @@ export declare class VirtualizedSectionList<ItemT = unknown> extends ListEventsB
136
113
  animated?: boolean;
137
114
  }): void;
138
115
  flashScrollIndicators(): void;
139
- getNativeScrollRef(): IScrollViewHandle | null;
116
+ getNativeScrollRef(): ISymbioteNode | null;
140
117
  getScrollableNode(): IScrollViewHandle | null;
141
118
  getScrollResponder(): IScrollViewHandle | null;
142
119
  getScrollNode(): ISymbioteNode | null;
120
+ getScrollRef(): ISymbioteNode | null;
143
121
  recordInteraction(): void;
122
+ setNativeProps(props: Record<string, unknown>): void;
144
123
  static ɵfac: i0.ɵɵFactoryDeclaration<VirtualizedSectionList<any>, never>;
145
- static ɵcmp: i0.ɵɵComponentDeclaration<VirtualizedSectionList<any>, "VirtualizedSectionList", never, { "sections": { "alias": "sections"; "required": true; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "getItemLayout": { "alias": "getItemLayout"; "required": false; }; "stickySectionHeadersEnabled": { "alias": "stickySectionHeadersEnabled"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "onEndReachedThreshold": { "alias": "onEndReachedThreshold"; "required": false; }; "onStartReachedThreshold": { "alias": "onStartReachedThreshold"; "required": false; }; "refreshing": { "alias": "refreshing"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "refreshRequested": { "alias": "refreshRequested"; "required": false; }; "initialNumToRender": { "alias": "initialNumToRender"; "required": false; }; "initialScrollIndex": { "alias": "initialScrollIndex"; "required": false; }; "maxToRenderPerBatch": { "alias": "maxToRenderPerBatch"; "required": false; }; "updateCellsBatchingPeriod": { "alias": "updateCellsBatchingPeriod"; "required": false; }; "windowSize": { "alias": "windowSize"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "maintainVisibleContentPosition": { "alias": "maintainVisibleContentPosition"; "required": false; }; "onScroll": { "alias": "onScroll"; "required": false; }; "onScrollBeginDrag": { "alias": "onScrollBeginDrag"; "required": false; }; "onScrollEndDrag": { "alias": "onScrollEndDrag"; "required": false; }; "onMomentumScrollBegin": { "alias": "onMomentumScrollBegin"; "required": false; }; "onMomentumScrollEnd": { "alias": "onMomentumScrollEnd"; "required": false; }; "scrollEventThrottle": { "alias": "scrollEventThrottle"; "required": false; }; "keyboardShouldPersistTaps": { "alias": "keyboardShouldPersistTaps"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "removeClippedSubviews": { "alias": "removeClippedSubviews"; "required": false; }; "nestedScrollEnabled": { "alias": "nestedScrollEnabled"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; }, {}, ["sectionItemDir", "sectionHeaderDir", "sectionFooterDir", "sectionSeparatorDir", "listHeaderDir", "listFooterDir", "listEmptyDir", "itemSeparatorDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
124
+ static ɵcmp: i0.ɵɵComponentDeclaration<VirtualizedSectionList<any>, "VirtualizedSectionList", never, { "sections": { "alias": "sections"; "required": true; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "getItemLayout": { "alias": "getItemLayout"; "required": false; }; "stickySectionHeadersEnabled": { "alias": "stickySectionHeadersEnabled"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "onEndReachedThreshold": { "alias": "onEndReachedThreshold"; "required": false; }; "onStartReachedThreshold": { "alias": "onStartReachedThreshold"; "required": false; }; "refreshing": { "alias": "refreshing"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "refreshRequested": { "alias": "refreshRequested"; "required": false; }; "initialNumToRender": { "alias": "initialNumToRender"; "required": false; }; "initialScrollIndex": { "alias": "initialScrollIndex"; "required": false; }; "maxToRenderPerBatch": { "alias": "maxToRenderPerBatch"; "required": false; }; "updateCellsBatchingPeriod": { "alias": "updateCellsBatchingPeriod"; "required": false; }; "windowSize": { "alias": "windowSize"; "required": false; }; "disableVirtualization": { "alias": "disableVirtualization"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "maintainVisibleContentPosition": { "alias": "maintainVisibleContentPosition"; "required": false; }; "onScroll": { "alias": "onScroll"; "required": false; }; "onScrollBeginDrag": { "alias": "onScrollBeginDrag"; "required": false; }; "onScrollEndDrag": { "alias": "onScrollEndDrag"; "required": false; }; "onMomentumScrollBegin": { "alias": "onMomentumScrollBegin"; "required": false; }; "onMomentumScrollEnd": { "alias": "onMomentumScrollEnd"; "required": false; }; "onContentSizeChange": { "alias": "onContentSizeChange"; "required": false; }; "scrollEventThrottle": { "alias": "scrollEventThrottle"; "required": false; }; "keyboardShouldPersistTaps": { "alias": "keyboardShouldPersistTaps"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "removeClippedSubviews": { "alias": "removeClippedSubviews"; "required": false; }; "nestedScrollEnabled": { "alias": "nestedScrollEnabled"; "required": false; }; "stickyHeaderHiddenOnScroll": { "alias": "stickyHeaderHiddenOnScroll"; "required": false; }; "innerViewRef": { "alias": "innerViewRef"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; "listHeaderComponentStyle": { "alias": "listHeaderComponentStyle"; "required": false; }; "listFooterComponentStyle": { "alias": "listFooterComponentStyle"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "cellRendererTemplate": { "alias": "cellRendererTemplate"; "required": false; }; }, {}, ["sectionItemDir", "sectionHeaderDir", "sectionFooterDir", "sectionSeparatorDir", "listHeaderDir", "listFooterDir", "listEmptyDir", "itemSeparatorDir", "cellDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
146
125
  }
@@ -2,14 +2,15 @@
2
2
  // Flattening, entry keying and `scrollToLocation` are shared from `@symbiote-native/components`
3
3
  // This file is the Angular lifecycle and the per-entry template dispatch
4
4
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, Input, ViewChild, inject, } from '@angular/core';
5
- import { flattenSections, resolveStickySectionHeaders, scrollLocationToFlatIndex, sectionEntryKey, unwrapEntryItem, } from '@symbiote-native/components';
5
+ import { cellGapsFor, createSeparatorBoard, flattenSections, resolveStickySectionHeaders, resolveScrollLocation, SECTION_ENTRY_KIND, SEPARATOR_GAP_KIND, SEPARATOR_SIDE, sectionEntryKey, } from '@symbiote-native/components';
6
6
  import { Platform, dlog, } from '@symbiote-native/engine';
7
- import { VirtualizedList, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from '../virtualized-list';
7
+ import { VirtualizedList, VListCellDirective, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from '../virtualized-list';
8
8
  import { VListOutletDirective } from '../virtualized-list/directives';
9
9
  import { ListEventsBase } from '../virtualized-list/list-events';
10
10
  import { provideGateDemand } from '../../gate-demand';
11
11
  import { stableAnchorStyle, SymbioteStyleInputDirective, } from '../../primitives';
12
12
  import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from './directives';
13
+ import { VSectionCellDirective } from './section-cell';
13
14
  import { VIRTUALIZED_SECTION_LIST_TEMPLATE } from './section-list-template';
14
15
  import * as i0 from "@angular/core";
15
16
  import * as i1 from "../../primitives/shared";
@@ -21,31 +22,30 @@ export class VirtualizedSectionList extends ListEventsBase {
21
22
  this.elementRef = inject(ElementRef);
22
23
  this.flatEntries = [];
23
24
  this.stickyHeaderIndices = undefined;
25
+ this.board = createSeparatorBoard();
24
26
  // Flat positions of every section header, so `scrollToLocation` skips re-deriving the layout
25
27
  this.headerIndices = [];
26
- // Memo guards, the inner list marks for check on every scroll tick and re-runs `ngDoCheck`
28
+ // Memo guard, the inner list marks for check on every scroll tick and re-runs `ngDoCheck`
27
29
  this.lastSectionsRef = null;
28
- this.lastHasSectionSeparator = false;
29
30
  this.cdr = inject(ChangeDetectorRef);
30
31
  // Stable arrow fields, so the bindings to the inner list keep a constant identity
31
32
  this.getEntry = (_source, index) => this.flatEntries[index];
32
33
  this.getEntryCount = () => this.flatEntries.length;
33
- this.entryKeyExtractor = (entry, index) => sectionEntryKey(entry, index, this.keyExtractor);
34
+ this.entryKeyExtractor = (entry) => sectionEntryKey(entry, this.keyExtractor);
34
35
  }
35
36
  get resolvedStyle() {
36
37
  this.cachedResolvedStyle = stableAnchorStyle(this.elementRef, this.style, this.cachedResolvedStyle);
37
38
  return this.cachedResolvedStyle;
38
39
  }
40
+ get cellRendererTpl() {
41
+ return this.cellRendererTemplate ?? this.cellDir?.templateRef;
42
+ }
39
43
  ngDoCheck() {
40
- const hasSectionSeparator = this.sectionSeparatorDir !== undefined;
41
- if (this.sections === this.lastSectionsRef &&
42
- hasSectionSeparator === this.lastHasSectionSeparator) {
44
+ if (this.sections === this.lastSectionsRef)
43
45
  return;
44
- }
45
46
  this.lastSectionsRef = this.sections;
46
- this.lastHasSectionSeparator = hasSectionSeparator;
47
47
  const sections = this.sections ?? [];
48
- const { entries, headerIndices } = flattenSections(sections, hasSectionSeparator);
48
+ const { entries, headerIndices } = flattenSections(sections);
49
49
  this.flatEntries = entries;
50
50
  this.headerIndices = headerIndices;
51
51
  // RN sticks section headers by default only on iOS
@@ -104,34 +104,43 @@ export class VirtualizedSectionList extends ListEventsBase {
104
104
  separators,
105
105
  };
106
106
  }
107
- // The inner separator context carries flattened entries, unwrapped back to real items so the
108
- // app's separator, typed on the item, never sees an envelope
109
- itemSeparatorContextOf(highlighted, leadingItem, trailingItem) {
107
+ // The separator template for a gap: the section one, or the item one where a section's own
108
+ // template beats the list's
109
+ slotFor(gap, side) {
110
+ if (gap.props === undefined)
111
+ return { template: undefined, gap, side };
112
+ const template = gap.kind === SEPARATOR_GAP_KIND.section
113
+ ? this.sectionSeparatorDir?.templateRef
114
+ : (gap.props.section.separator ?? this.itemSeparatorDir?.templateRef);
115
+ return { template, gap, side };
116
+ }
117
+ cellPlanOf(value, index) {
118
+ if (!this.isEntry(value) || value.kind !== SECTION_ENTRY_KIND.item)
119
+ return undefined;
120
+ const gaps = cellGapsFor(this.flatEntries, index);
121
+ const leading = this.slotFor(gaps.leading, SEPARATOR_SIDE.leading);
122
+ const trailing = this.slotFor(gaps.trailing, SEPARATOR_SIDE.trailing);
123
+ const previous = this.flatEntries[index - 1];
124
+ const isInverted = this.inverted === true;
110
125
  return {
111
- $implicit: highlighted === true,
112
- highlighted: highlighted === true,
113
- leadingItem: this.isEntry(leadingItem)
114
- ? unwrapEntryItem(leadingItem)
115
- : undefined,
116
- trailingItem: this.isEntry(trailingItem)
117
- ? unwrapEntryItem(trailingItem)
118
- : undefined,
126
+ cellKey: this.entryKeyExtractor(value),
127
+ prevCellKey: previous === undefined ? undefined : this.entryKeyExtractor(previous),
128
+ hasLeading: leading.template !== undefined,
129
+ hasTrailing: trailing.template !== undefined,
130
+ itemTemplate: value.section.item ?? this.sectionItemDir?.templateRef,
131
+ first: isInverted ? trailing : leading,
132
+ second: isInverted ? leading : trailing,
119
133
  };
120
134
  }
121
135
  scrollToLocation(params) {
122
- const flatIndex = scrollLocationToFlatIndex(this.headerIndices, params.sectionIndex, params.itemIndex);
123
- if (flatIndex === undefined) {
136
+ const target = resolveScrollLocation(this.headerIndices, this.stickyHeaderIndices, params);
137
+ if (target === undefined) {
124
138
  dlog(`Angular VirtualizedSectionList scrollToLocation: section ${params.sectionIndex} out of range`);
125
139
  return;
126
140
  }
127
141
  dlog(`Angular VirtualizedSectionList scrollToLocation section=${params.sectionIndex} ` +
128
- `item=${params.itemIndex} -> flat ${flatIndex}`);
129
- this.list?.scrollToIndex({
130
- index: flatIndex,
131
- viewOffset: params.viewOffset,
132
- viewPosition: params.viewPosition,
133
- animated: params.animated,
134
- });
142
+ `item=${params.itemIndex} -> flat ${target.index}`);
143
+ this.list?.scrollToIndex(target);
135
144
  }
136
145
  flashScrollIndicators() {
137
146
  this.list?.flashScrollIndicators();
@@ -148,11 +157,17 @@ export class VirtualizedSectionList extends ListEventsBase {
148
157
  getScrollNode() {
149
158
  return this.list?.getScrollNode() ?? null;
150
159
  }
160
+ getScrollRef() {
161
+ return this.list?.getScrollRef() ?? null;
162
+ }
151
163
  recordInteraction() {
152
164
  this.list?.recordInteraction();
153
165
  }
166
+ setNativeProps(props) {
167
+ this.list?.setNativeProps(props);
168
+ }
154
169
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VirtualizedSectionList, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: VirtualizedSectionList, isStandalone: true, selector: "VirtualizedSectionList", inputs: { sections: "sections", keyExtractor: "keyExtractor", getItemLayout: "getItemLayout", stickySectionHeadersEnabled: "stickySectionHeadersEnabled", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", refreshRequested: "refreshRequested", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", inverted: "inverted", 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", testID: "testID", nativeID: "nativeID" }, queries: [{ propertyName: "sectionItemDir", first: true, predicate: VSectionItemDirective, descendants: true }, { propertyName: "sectionHeaderDir", first: true, predicate: VSectionHeaderDirective, descendants: true }, { propertyName: "sectionFooterDir", first: true, predicate: VSectionFooterDirective, descendants: true }, { propertyName: "sectionSeparatorDir", first: true, predicate: VSectionSeparatorDirective, descendants: true }, { propertyName: "listHeaderDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "listFooterDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "listEmptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "itemSeparatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "list", first: true, predicate: VirtualizedList, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: "\n <VirtualizedList\n [data]=\"flatEntries\"\n [getItem]=\"getEntry\"\n [getItemCount]=\"getEntryCount\"\n [keyExtractor]=\"entryKeyExtractor\"\n [getItemLayout]=\"entryItemLayout\"\n [stickyHeaderIndices]=\"stickyHeaderIndices\"\n [extraData]=\"extraData\"\n [inverted]=\"inverted\"\n [refreshing]=\"refreshing\"\n [progressViewOffset]=\"progressViewOffset\"\n [refreshRequested]=\"refreshRequested ?? refresh.observed\"\n (refresh)=\"resolvedOnRefresh?.()\"\n (endReached)=\"resolvedOnEndReached?.($event)\"\n [onEndReachedThreshold]=\"onEndReachedThreshold\"\n (startReached)=\"resolvedOnStartReached?.($event)\"\n [onStartReachedThreshold]=\"onStartReachedThreshold\"\n [initialNumToRender]=\"initialNumToRender\"\n [initialScrollIndex]=\"initialScrollIndex\"\n [maxToRenderPerBatch]=\"maxToRenderPerBatch\"\n [updateCellsBatchingPeriod]=\"updateCellsBatchingPeriod\"\n [windowSize]=\"windowSize\"\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]=\"removeClippedSubviews\"\n [nestedScrollEnabled]=\"nestedScrollEnabled\"\n [style]=\"resolvedStyle\"\n [contentContainerStyle]=\"contentContainerStyle\"\n [testID]=\"testID\"\n [nativeID]=\"nativeID\"\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 <!-- The single synthesized cell template: dispatch per flattened entry tag -->\n <ng-template vListItem let-entry let-separators=\"separators\">\n @switch (entryKind(entry)) {\n @case ('header') {\n <ng-container\n [vListOutlet]=\"sectionHeaderDir?.templateRef\"\n [vListOutletContext]=\"sectionContextOf(entry)\"\n ></ng-container>\n }\n @case ('footer') {\n <ng-container\n [vListOutlet]=\"sectionFooterDir?.templateRef\"\n [vListOutletContext]=\"sectionContextOf(entry)\"\n ></ng-container>\n }\n @case ('section-separator') {\n <ng-container\n [vListOutlet]=\"sectionSeparatorDir?.templateRef\"\n ></ng-container>\n }\n @case ('item') {\n <ng-container\n [vListOutlet]=\"sectionItemDir?.templateRef\"\n [vListOutletContext]=\"itemContextOf(entry, separators)\"\n ></ng-container>\n }\n }\n </ng-template>\n\n <!-- List-level slots: forward the app's directives to the inner list -->\n @if (listHeaderDir !== undefined) {\n <ng-template vListHeader>\n <ng-container [vListOutlet]=\"listHeaderDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (listFooterDir !== undefined) {\n <ng-template vListFooter>\n <ng-container [vListOutlet]=\"listFooterDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (listEmptyDir !== undefined) {\n <ng-template vListEmpty>\n <ng-container [vListOutlet]=\"listEmptyDir.templateRef\"></ng-container>\n </ng-template>\n }\n <!-- Item separator: unwrap each flattened entry back to its item -->\n @if (itemSeparatorDir !== undefined) {\n <ng-template\n vListSeparator\n let-highlighted\n let-leadingItem=\"leadingItem\"\n let-trailingItem=\"trailingItem\"\n >\n <ng-container\n [vListOutlet]=\"itemSeparatorDir.templateRef\"\n [vListOutletContext]=\"\n itemSeparatorContextOf(highlighted, leadingItem, trailingItem)\n \"\n ></ng-container>\n </ng-template>\n }\n </VirtualizedList>\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"] }], viewProviders: [provideGateDemand(() => VirtualizedSectionList)], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: VirtualizedSectionList, isStandalone: true, selector: "VirtualizedSectionList", inputs: { sections: "sections", keyExtractor: "keyExtractor", getItemLayout: "getItemLayout", stickySectionHeadersEnabled: "stickySectionHeadersEnabled", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", refreshRequested: "refreshRequested", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", disableVirtualization: "disableVirtualization", inverted: "inverted", horizontal: "horizontal", maintainVisibleContentPosition: "maintainVisibleContentPosition", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", onContentSizeChange: "onContentSizeChange", scrollEventThrottle: "scrollEventThrottle", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", keyboardDismissMode: "keyboardDismissMode", removeClippedSubviews: "removeClippedSubviews", nestedScrollEnabled: "nestedScrollEnabled", stickyHeaderHiddenOnScroll: "stickyHeaderHiddenOnScroll", innerViewRef: "innerViewRef", style: "style", contentContainerStyle: "contentContainerStyle", listHeaderComponentStyle: "listHeaderComponentStyle", listFooterComponentStyle: "listFooterComponentStyle", testID: "testID", nativeID: "nativeID", cellRendererTemplate: "cellRendererTemplate" }, queries: [{ propertyName: "sectionItemDir", first: true, predicate: VSectionItemDirective, descendants: true }, { propertyName: "sectionHeaderDir", first: true, predicate: VSectionHeaderDirective, descendants: true }, { propertyName: "sectionFooterDir", first: true, predicate: VSectionFooterDirective, descendants: true }, { propertyName: "sectionSeparatorDir", first: true, predicate: VSectionSeparatorDirective, descendants: true }, { propertyName: "listHeaderDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "listFooterDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "listEmptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "itemSeparatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }, { propertyName: "cellDir", first: true, predicate: VListCellDirective, descendants: true }], viewQueries: [{ propertyName: "list", first: true, predicate: VirtualizedList, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: "\n <VirtualizedList\n [data]=\"flatEntries\"\n [getItem]=\"getEntry\"\n [getItemCount]=\"getEntryCount\"\n [keyExtractor]=\"entryKeyExtractor\"\n [getItemLayout]=\"entryItemLayout\"\n [stickyHeaderIndices]=\"stickyHeaderIndices\"\n [extraData]=\"extraData\"\n [inverted]=\"inverted\"\n [horizontal]=\"horizontal\"\n [refreshing]=\"refreshing\"\n [progressViewOffset]=\"progressViewOffset\"\n [refreshRequested]=\"refreshRequested ?? refresh.observed\"\n (refresh)=\"resolvedOnRefresh?.()\"\n (endReached)=\"resolvedOnEndReached?.($event)\"\n [onEndReachedThreshold]=\"onEndReachedThreshold\"\n (startReached)=\"resolvedOnStartReached?.($event)\"\n [onStartReachedThreshold]=\"onStartReachedThreshold\"\n [initialNumToRender]=\"initialNumToRender\"\n [initialScrollIndex]=\"initialScrollIndex\"\n [maxToRenderPerBatch]=\"maxToRenderPerBatch\"\n [updateCellsBatchingPeriod]=\"updateCellsBatchingPeriod\"\n [windowSize]=\"windowSize\"\n [disableVirtualization]=\"disableVirtualization\"\n [maintainVisibleContentPosition]=\"maintainVisibleContentPosition\"\n [onScroll]=\"onScroll\"\n [onScrollBeginDrag]=\"onScrollBeginDrag\"\n [onScrollEndDrag]=\"onScrollEndDrag\"\n [onMomentumScrollBegin]=\"onMomentumScrollBegin\"\n [onMomentumScrollEnd]=\"onMomentumScrollEnd\"\n [onContentSizeChange]=\"onContentSizeChange\"\n [scrollEventThrottle]=\"scrollEventThrottle\"\n [keyboardShouldPersistTaps]=\"keyboardShouldPersistTaps\"\n [keyboardDismissMode]=\"keyboardDismissMode\"\n [removeClippedSubviews]=\"removeClippedSubviews\"\n [nestedScrollEnabled]=\"nestedScrollEnabled\"\n [stickyHeaderHiddenOnScroll]=\"stickyHeaderHiddenOnScroll\"\n [innerViewRef]=\"innerViewRef\"\n [style]=\"resolvedStyle\"\n [contentContainerStyle]=\"contentContainerStyle\"\n [listHeaderComponentStyle]=\"listHeaderComponentStyle\"\n [listFooterComponentStyle]=\"listFooterComponentStyle\"\n [cellRendererTemplate]=\"cellRendererTpl\"\n [testID]=\"testID\"\n [nativeID]=\"nativeID\"\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 <!-- The single synthesized cell template: dispatch per flattened entry tag -->\n <ng-template vListItem let-entry let-index=\"index\">\n @switch (entryKind(entry)) {\n @case ('header') {\n <ng-container\n [vListOutlet]=\"sectionHeaderDir?.templateRef\"\n [vListOutletContext]=\"sectionContextOf(entry)\"\n ></ng-container>\n }\n @case ('footer') {\n <ng-container\n [vListOutlet]=\"sectionFooterDir?.templateRef\"\n [vListOutletContext]=\"sectionContextOf(entry)\"\n ></ng-container>\n }\n @case ('item') {\n @let plan = cellPlanOf(entry, index);\n @if (plan !== undefined) {\n <ng-container\n vSectionCell\n #cell=\"vSectionCell\"\n [board]=\"board\"\n [cellKey]=\"plan.cellKey\"\n [prevCellKey]=\"plan.prevCellKey\"\n [hasLeading]=\"plan.hasLeading\"\n [hasTrailing]=\"plan.hasTrailing\"\n >\n <ng-container\n [vListOutlet]=\"plan.first.template\"\n [vListOutletContext]=\"cell.contextOf(plan.first)\"\n ></ng-container>\n <ng-container\n [vListOutlet]=\"plan.itemTemplate\"\n [vListOutletContext]=\"itemContextOf(entry, cell.separators)\"\n ></ng-container>\n <ng-container\n [vListOutlet]=\"plan.second.template\"\n [vListOutletContext]=\"cell.contextOf(plan.second)\"\n ></ng-container>\n </ng-container>\n }\n }\n }\n </ng-template>\n\n <!-- List-level slots: forward the app's directives to the inner list -->\n @if (listHeaderDir !== undefined) {\n <ng-template vListHeader>\n <ng-container [vListOutlet]=\"listHeaderDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (listFooterDir !== undefined) {\n <ng-template vListFooter>\n <ng-container [vListOutlet]=\"listFooterDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (listEmptyDir !== undefined) {\n <ng-template vListEmpty>\n <ng-container [vListOutlet]=\"listEmptyDir.templateRef\"></ng-container>\n </ng-template>\n }\n </VirtualizedList>\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: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext", "vListOutletComponent"] }, { kind: "directive", type: VSectionCellDirective, selector: "[vSectionCell]", inputs: ["board", "cellKey", "prevCellKey", "hasLeading", "hasTrailing"], exportAs: ["vSectionCell"] }], viewProviders: [provideGateDemand(() => VirtualizedSectionList)], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
156
171
  }
157
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VirtualizedSectionList, decorators: [{
158
173
  type: Component,
@@ -169,8 +184,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
169
184
  VListHeaderDirective,
170
185
  VListFooterDirective,
171
186
  VListEmptyDirective,
172
- VListSeparatorDirective,
173
187
  VListOutletDirective,
188
+ VSectionCellDirective,
174
189
  ],
175
190
  changeDetection: ChangeDetectionStrategy.OnPush,
176
191
  template: VIRTUALIZED_SECTION_LIST_TEMPLATE,
@@ -206,8 +221,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
206
221
  type: Input
207
222
  }], windowSize: [{
208
223
  type: Input
224
+ }], disableVirtualization: [{
225
+ type: Input
209
226
  }], inverted: [{
210
227
  type: Input
228
+ }], horizontal: [{
229
+ type: Input
211
230
  }], maintainVisibleContentPosition: [{
212
231
  type: Input
213
232
  }], onScroll: [{
@@ -220,6 +239,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
220
239
  type: Input
221
240
  }], onMomentumScrollEnd: [{
222
241
  type: Input
242
+ }], onContentSizeChange: [{
243
+ type: Input
223
244
  }], scrollEventThrottle: [{
224
245
  type: Input
225
246
  }], keyboardShouldPersistTaps: [{
@@ -230,10 +251,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
230
251
  type: Input
231
252
  }], nestedScrollEnabled: [{
232
253
  type: Input
254
+ }], stickyHeaderHiddenOnScroll: [{
255
+ type: Input
256
+ }], innerViewRef: [{
257
+ type: Input
233
258
  }], style: [{
234
259
  type: Input
235
260
  }], contentContainerStyle: [{
236
261
  type: Input
262
+ }], listHeaderComponentStyle: [{
263
+ type: Input
264
+ }], listFooterComponentStyle: [{
265
+ type: Input
237
266
  }], testID: [{
238
267
  type: Input
239
268
  }], nativeID: [{
@@ -262,6 +291,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
262
291
  }], itemSeparatorDir: [{
263
292
  type: ContentChild,
264
293
  args: [VListSeparatorDirective]
294
+ }], cellDir: [{
295
+ type: ContentChild,
296
+ args: [VListCellDirective]
297
+ }], cellRendererTemplate: [{
298
+ type: Input
265
299
  }], list: [{
266
300
  type: ViewChild,
267
301
  args: [VirtualizedList]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/virtualized-section-list/index.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,gGAAgG;AAChG,yEAAyE;AAEzE,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,KAAK,EACL,SAAS,EACT,MAAM,GAEP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,eAAe,GAQhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,QAAQ,EACR,IAAI,GAKL,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,GAG3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;;;AAI5E,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAiFtB,MAAM,OAAO,sBACX,SAAQ,cAAc;IApBxB;;QAoGE,0FAA0F;QACzE,eAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEjD,gBAAW,GAA2B,EAAE,CAAC;QACzC,wBAAmB,GAAyB,SAAS,CAAC;QAEtD,6FAA6F;QACrF,kBAAa,GAAa,EAAE,CAAC;QACrC,2FAA2F;QACnF,oBAAe,GAA0C,IAAI,CAAC;QAC9D,4BAAuB,GAAG,KAAK,CAAC;QAEvB,QAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAkCjD,kFAAkF;QAClF,aAAQ,GAAG,CAAC,OAAgB,EAAE,KAAa,EAAwB,EAAE,CACnE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,kBAAa,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACtD,sBAAiB,GAAG,CAAC,KAA2B,EAAE,KAAa,EAAU,EAAE,CACzE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KA8IpD;IAhOC,IAAI,aAAa;QACf,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAC1C,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,mBAAmB,CACzB,CAAC;QACF,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAsCD,SAAS;QACP,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,KAAK,SAAS,CAAC;QACnE,IACE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe;YACtC,mBAAmB,KAAK,IAAI,CAAC,uBAAuB,EACpD,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,uBAAuB,GAAG,mBAAmB,CAAC;QAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACrC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,eAAe,CAChD,QAAQ,EACR,mBAAmB,CACpB,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,mDAAmD;QACnD,IAAI,CAAC,mBAAmB,GAAG,2BAA2B,CACpD,IAAI,CAAC,2BAA2B,EAChC,aAAa,EACb,QAAQ,CAAC,EAAE,CACZ,CAAC;QAEF,IAAI,CACF,mCAAmC,QAAQ,CAAC,MAAM,0BAA0B,OAAO,CAAC,MAAM,UAAU,CACrG,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1B,CAAC;IAcD,IAAI,eAAe;QAEjB,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACzC,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACvC,IAAI,CAAC,qBAAqB;gBACxB,aAAa,KAAK,SAAS;oBACzB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,CAAC,QAAiB,EAAE,KAAa,EAAe,EAAE,CAChD,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,0FAA0F;IAC1F,4FAA4F;IAC5F,IAAI,oBAAoB;QAEtB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ;YAC7B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,IAAI,sBAAsB;QAExB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ;YAC/B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IAED,4FAA4F;IACpF,OAAO,CAAC,KAAc;QAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC;IACxE,CAAC;IAED,SAAS,CAAC,KAAc;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,CAAC;IAED,gBAAgB,CAAC,KAAc;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC;IAED,aAAa,CACX,KAAc,EACd,UAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QACpE,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,SAAS;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU;SACX,CAAC;IACJ,CAAC;IAED,6FAA6F;IAC7F,6DAA6D;IAC7D,sBAAsB,CACpB,WAAoB,EACpB,WAAoB,EACpB,YAAqB;QAErB,OAAO;YACL,SAAS,EAAE,WAAW,KAAK,IAAI;YAC/B,WAAW,EAAE,WAAW,KAAK,IAAI;YACjC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBACpC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC;gBAC9B,CAAC,CAAC,SAAS;YACb,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBACtC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC;gBAC/B,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,MAMhB;QACC,MAAM,SAAS,GAAG,yBAAyB,CACzC,IAAI,CAAC,aAAa,EAClB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,SAAS,CACjB,CAAC;QACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CACF,4DAA4D,MAAM,CAAC,YAAY,eAAe,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CACF,2DAA2D,MAAM,CAAC,YAAY,GAAG;YAC/E,QAAQ,MAAM,CAAC,SAAS,YAAY,SAAS,EAAE,CAClD,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;YACvB,KAAK,EAAE,SAAS;YAChB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC;IACrC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IACjC,CAAC;8GAjRU,sBAAsB;kGAAtB,sBAAsB,4zCA4DnB,qBAAqB,mFAErB,uBAAuB,mFAEvB,uBAAuB,sFAEvB,0BAA0B,gFAI1B,oBAAoB,gFACpB,oBAAoB,+EACpB,mBAAmB,mFACnB,uBAAuB,sFAI1B,eAAe,4wLAxFxB,eAAe,4DACf,kBAAkB,wDAClB,oBAAoB,0DACpB,oBAAoB,0DACpB,mBAAmB,yDACnB,uBAAuB,6DACvB,oBAAoB,8FAXP,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAC;;2FAgBrD,sBAAsB;kBAnBlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,wBAAwB;oBAClC,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;oBAChE,cAAc,EAAE;wBACd,EAAE,SAAS,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;qBAC9D;oBACD,OAAO,EAAE;wBACP,eAAe;wBACf,kBAAkB;wBAClB,oBAAoB;wBACpB,oBAAoB;wBACpB,mBAAmB;wBACnB,uBAAuB;wBACvB,oBAAoB;qBACrB;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,iCAAiC;iBAC5C;;sBAQE,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;;sBACL,KAAK;;sBAIL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBAGL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBAIL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBAeL,YAAY;uBAAC,qBAAqB;;sBAElC,YAAY;uBAAC,uBAAuB;;sBAEpC,YAAY;uBAAC,uBAAuB;;sBAEpC,YAAY;uBAAC,0BAA0B;;sBAIvC,YAAY;uBAAC,oBAAoB;;sBACjC,YAAY;uBAAC,oBAAoB;;sBACjC,YAAY;uBAAC,mBAAmB;;sBAChC,YAAY;uBAAC,uBAAuB;;sBAIpC,SAAS;uBAAC,eAAe"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/virtualized-section-list/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type OnChanges, type OnDestroy, type SimpleChanges, type TemplateRef } from '@angular/core';
2
+ import { type ICellSeparatorState, type ISeparatorBoard, type ISeparatorGap, type ISeparators, type ISeparatorSide } from '@symbiote-native/components';
3
+ import type { IVListSeparatorContext } from '../virtualized-list';
4
+ import type { ISection } from './directives';
5
+ import * as i0 from "@angular/core";
6
+ export type ISeparatorSlot<ItemT> = {
7
+ template: TemplateRef<IVListSeparatorContext<ItemT>> | undefined;
8
+ gap: ISeparatorGap<ItemT, ISection<ItemT>>;
9
+ side: ISeparatorSide;
10
+ };
11
+ export declare function separatorContextOf<ItemT>(slot: ISeparatorSlot<ItemT>, state: ICellSeparatorState<Record<string, unknown>>): IVListSeparatorContext<ItemT> | undefined;
12
+ export declare class VSectionCellDirective implements OnChanges, OnDestroy {
13
+ board: ISeparatorBoard<Record<string, unknown>>;
14
+ cellKey: string;
15
+ prevCellKey?: string;
16
+ hasLeading: boolean;
17
+ hasTrailing: boolean;
18
+ private readonly cdr;
19
+ private unsubscribe;
20
+ private subscribedKey;
21
+ private cachedSeparators;
22
+ get separators(): ISeparators;
23
+ contextOf<ItemT>(slot: ISeparatorSlot<ItemT>): IVListSeparatorContext<ItemT> | undefined;
24
+ ngOnChanges(changes: SimpleChanges): void;
25
+ ngOnDestroy(): void;
26
+ private detach;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<VSectionCellDirective, never>;
28
+ static ɵdir: i0.ɵɵDirectiveDeclaration<VSectionCellDirective, "[vSectionCell]", ["vSectionCell"], { "board": { "alias": "board"; "required": true; }; "cellKey": { "alias": "cellKey"; "required": true; }; "prevCellKey": { "alias": "prevCellKey"; "required": false; }; "hasLeading": { "alias": "hasLeading"; "required": false; }; "hasTrailing": { "alias": "hasTrailing"; "required": false; }; }, {}, never, never, true, never>;
29
+ }
@@ -0,0 +1,82 @@
1
+ // An item cell with its separators around it, as in RN's `ItemWithSeparator`
2
+ // The state of those separators lives in a board shared by all cells, т.к. `highlight()` also
3
+ // lights the previous cell's one, this directive ties one cell to its key in that board
4
+ import { ChangeDetectorRef, Directive, Input, inject, } from '@angular/core';
5
+ import { createCellSeparators, SEPARATOR_SIDE, } from '@symbiote-native/components';
6
+ import * as i0 from "@angular/core";
7
+ // The separator props RN passes, the app's `updateProps` overrides laid over them
8
+ export function separatorContextOf(slot, state) {
9
+ if (slot.template === undefined || slot.gap.props === undefined)
10
+ return undefined;
11
+ const isLeading = slot.side === SEPARATOR_SIDE.leading;
12
+ const override = isLeading ? state.leadingOverride : state.trailingOverride;
13
+ const isHighlighted = isLeading
14
+ ? state.leadingHighlighted
15
+ : state.trailingHighlighted;
16
+ const bag = {
17
+ $implicit: isHighlighted,
18
+ highlighted: isHighlighted,
19
+ ...slot.gap.props,
20
+ ...override,
21
+ };
22
+ return { ...bag, props: bag };
23
+ }
24
+ export class VSectionCellDirective {
25
+ constructor() {
26
+ this.hasLeading = false;
27
+ this.hasTrailing = false;
28
+ this.cdr = inject(ChangeDetectorRef);
29
+ }
30
+ get separators() {
31
+ this.cachedSeparators ??= createCellSeparators(this.board, () => ({
32
+ cellKey: this.cellKey,
33
+ prevCellKey: this.prevCellKey,
34
+ has: { leading: this.hasLeading, trailing: this.hasTrailing },
35
+ }));
36
+ return this.cachedSeparators;
37
+ }
38
+ contextOf(slot) {
39
+ return separatorContextOf(slot, this.board.read(this.cellKey));
40
+ }
41
+ ngOnChanges(changes) {
42
+ if (changes['cellKey'] === undefined && changes['board'] === undefined)
43
+ return;
44
+ this.detach();
45
+ this.subscribedKey = this.cellKey;
46
+ this.unsubscribe = this.board.subscribe(this.cellKey, () => this.cdr.markForCheck());
47
+ }
48
+ ngOnDestroy() {
49
+ this.detach();
50
+ }
51
+ // A recycled cell starts clean, as a remounted RN cell does
52
+ detach() {
53
+ this.unsubscribe?.();
54
+ if (this.subscribedKey !== undefined)
55
+ this.board.release(this.subscribedKey);
56
+ this.unsubscribe = undefined;
57
+ this.subscribedKey = undefined;
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VSectionCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: VSectionCellDirective, isStandalone: true, selector: "[vSectionCell]", inputs: { board: "board", cellKey: "cellKey", prevCellKey: "prevCellKey", hasLeading: "hasLeading", hasTrailing: "hasTrailing" }, exportAs: ["vSectionCell"], usesOnChanges: true, ngImport: i0 }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VSectionCellDirective, decorators: [{
63
+ type: Directive,
64
+ args: [{
65
+ selector: '[vSectionCell]',
66
+ exportAs: 'vSectionCell',
67
+ standalone: true,
68
+ }]
69
+ }], propDecorators: { board: [{
70
+ type: Input,
71
+ args: [{ required: true }]
72
+ }], cellKey: [{
73
+ type: Input,
74
+ args: [{ required: true }]
75
+ }], prevCellKey: [{
76
+ type: Input
77
+ }], hasLeading: [{
78
+ type: Input
79
+ }], hasTrailing: [{
80
+ type: Input
81
+ }] } });
82
+ //# sourceMappingURL=section-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-cell.js","sourceRoot":"","sources":["../../../../src/components/virtualized-section-list/section-cell.ts"],"names":[],"mappings":"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"}