@symbiote-native/angular 0.7.0 → 0.8.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 (158) hide show
  1. package/README.md +3 -3
  2. package/build/angular/bootstrap.js +1 -1
  3. package/build/angular/bootstrap.js.map +1 -1
  4. package/build/angular/components/activity-indicator/index.android.js +7 -2
  5. package/build/angular/components/activity-indicator/index.android.js.map +1 -1
  6. package/build/angular/components/activity-indicator/index.ios.js +3 -1
  7. package/build/angular/components/activity-indicator/index.ios.js.map +1 -1
  8. package/build/angular/components/activity-indicator/shared.d.ts +1 -1
  9. package/build/angular/components/activity-indicator/shared.js +1 -1
  10. package/build/angular/components/activity-indicator/shared.js.map +1 -1
  11. package/build/angular/components/button.js +13 -5
  12. package/build/angular/components/button.js.map +1 -1
  13. package/build/angular/components/flat-list/index.d.ts +1 -1
  14. package/build/angular/components/flat-list/index.js +47 -14
  15. package/build/angular/components/flat-list/index.js.map +1 -1
  16. package/build/angular/components/image/index.android.js +4 -2
  17. package/build/angular/components/image/index.android.js.map +1 -1
  18. package/build/angular/components/image/index.ios.js +4 -2
  19. package/build/angular/components/image/index.ios.js.map +1 -1
  20. package/build/angular/components/image/shared.js +18 -6
  21. package/build/angular/components/image/shared.js.map +1 -1
  22. package/build/angular/components/image-background.js +22 -8
  23. package/build/angular/components/image-background.js.map +1 -1
  24. package/build/angular/components/input-accessory-view/index.js +7 -2
  25. package/build/angular/components/input-accessory-view/index.js.map +1 -1
  26. package/build/angular/components/keyboard-avoiding-view/index.d.ts +1 -0
  27. package/build/angular/components/keyboard-avoiding-view/index.js +39 -9
  28. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
  29. package/build/angular/components/modal/index.js +7 -2
  30. package/build/angular/components/modal/index.js.map +1 -1
  31. package/build/angular/components/pressable/index.d.ts +1 -1
  32. package/build/angular/components/pressable/index.js +6 -2
  33. package/build/angular/components/pressable/index.js.map +1 -1
  34. package/build/angular/components/refresh-control/index.js +3 -1
  35. package/build/angular/components/refresh-control/index.js.map +1 -1
  36. package/build/angular/components/safe-area-view/index.js +3 -1
  37. package/build/angular/components/safe-area-view/index.js.map +1 -1
  38. package/build/angular/components/scroll-view/index.android.js +44 -14
  39. package/build/angular/components/scroll-view/index.android.js.map +1 -1
  40. package/build/angular/components/scroll-view/index.ios.js +13 -5
  41. package/build/angular/components/scroll-view/index.ios.js.map +1 -1
  42. package/build/angular/components/scroll-view/projection.d.ts +32 -0
  43. package/build/angular/components/scroll-view/projection.js +212 -47
  44. package/build/angular/components/scroll-view/projection.js.map +1 -1
  45. package/build/angular/components/scroll-view/shared.js +28 -7
  46. package/build/angular/components/scroll-view/shared.js.map +1 -1
  47. package/build/angular/components/scroll-view/sticky-header.js +7 -3
  48. package/build/angular/components/scroll-view/sticky-header.js.map +1 -1
  49. package/build/angular/components/section-list/index.d.ts +6 -1
  50. package/build/angular/components/section-list/index.js +63 -18
  51. package/build/angular/components/section-list/index.js.map +1 -1
  52. package/build/angular/components/switch/index.android.js +17 -3
  53. package/build/angular/components/switch/index.android.js.map +1 -1
  54. package/build/angular/components/switch/index.ios.js +17 -3
  55. package/build/angular/components/switch/index.ios.js.map +1 -1
  56. package/build/angular/components/switch/shared.d.ts +1 -1
  57. package/build/angular/components/switch/shared.js +5 -2
  58. package/build/angular/components/switch/shared.js.map +1 -1
  59. package/build/angular/components/text-input.d.ts +1 -1
  60. package/build/angular/components/text-input.js +25 -5
  61. package/build/angular/components/text-input.js.map +1 -1
  62. package/build/angular/components/touchable/index.d.ts +29 -7
  63. package/build/angular/components/touchable/index.js +246 -69
  64. package/build/angular/components/touchable/index.js.map +1 -1
  65. package/build/angular/components/touchable-native-feedback/index.js +2 -2
  66. package/build/angular/components/touchable-native-feedback/index.js.map +1 -1
  67. package/build/angular/components/virtualized-list/directives.js +4 -0
  68. package/build/angular/components/virtualized-list/directives.js.map +1 -1
  69. package/build/angular/components/virtualized-list/index.d.ts +5 -2
  70. package/build/angular/components/virtualized-list/index.js +197 -60
  71. package/build/angular/components/virtualized-list/index.js.map +1 -1
  72. package/build/angular/components/virtualized-section-list/directives.js.map +1 -1
  73. package/build/angular/components/virtualized-section-list/index.d.ts +18 -1
  74. package/build/angular/components/virtualized-section-list/index.js +90 -21
  75. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  76. package/build/angular/components.d.ts +1 -1
  77. package/build/angular/components.js.map +1 -1
  78. package/build/angular/create-portal/index.js +5 -1
  79. package/build/angular/create-portal/index.js.map +1 -1
  80. package/build/angular/create-tunnel/index.js.map +1 -1
  81. package/build/angular/descriptor-to-angular/index.js +3 -1
  82. package/build/angular/descriptor-to-angular/index.js.map +1 -1
  83. package/build/angular/diagnostics.d.ts +33 -0
  84. package/build/angular/diagnostics.js +82 -0
  85. package/build/angular/diagnostics.js.map +1 -0
  86. package/build/angular/host-instance/index.js +1 -1
  87. package/build/angular/host-instance/index.js.map +1 -1
  88. package/build/angular/index.d.ts +5 -2
  89. package/build/angular/index.js +15 -1
  90. package/build/angular/index.js.map +1 -1
  91. package/build/angular/modules/animated/create-animated-component.js +27 -9
  92. package/build/angular/modules/animated/create-animated-component.js.map +1 -1
  93. package/build/angular/modules/app-registry/index.js.map +1 -1
  94. package/build/angular/modules/status-bar/index.js +1 -1
  95. package/build/angular/modules/status-bar/index.js.map +1 -1
  96. package/build/angular/primitives/index.d.ts +19 -2
  97. package/build/angular/primitives/index.js +39 -3
  98. package/build/angular/primitives/index.js.map +1 -1
  99. package/build/angular/primitives/shared.d.ts +9 -1
  100. package/build/angular/primitives/shared.js +49 -3
  101. package/build/angular/primitives/shared.js.map +1 -1
  102. package/build/angular/render/index.js +48 -5
  103. package/build/angular/render/index.js.map +1 -1
  104. package/build/angular/renderer/index.d.ts +1 -0
  105. package/build/angular/renderer/index.js +37 -2
  106. package/build/angular/renderer/index.js.map +1 -1
  107. package/build/angular/services/color-scheme.service.js.map +1 -1
  108. package/build/angular/services/window-dimensions.service.js +1 -1
  109. package/build/angular/services/window-dimensions.service.js.map +1 -1
  110. package/package.json +5 -5
  111. package/src/bootstrap.ts +4 -1
  112. package/src/components/activity-indicator/index.android.ts +7 -2
  113. package/src/components/activity-indicator/index.ios.ts +3 -1
  114. package/src/components/activity-indicator/shared.ts +32 -13
  115. package/src/components/button.ts +19 -6
  116. package/src/components/flat-list/index.ts +91 -29
  117. package/src/components/image/index.android.ts +9 -2
  118. package/src/components/image/index.ios.ts +9 -2
  119. package/src/components/image/shared.ts +58 -19
  120. package/src/components/image-background.ts +29 -10
  121. package/src/components/input-accessory-view/index.ts +27 -10
  122. package/src/components/keyboard-avoiding-view/index.ts +55 -15
  123. package/src/components/modal/index.ts +22 -8
  124. package/src/components/pressable/index.ts +51 -21
  125. package/src/components/refresh-control/index.ts +22 -8
  126. package/src/components/safe-area-view/index.ts +16 -7
  127. package/src/components/scroll-view/index.android.ts +31 -9
  128. package/src/components/scroll-view/index.ios.ts +17 -4
  129. package/src/components/scroll-view/projection.ts +290 -63
  130. package/src/components/scroll-view/shared.ts +93 -26
  131. package/src/components/scroll-view/sticky-header.ts +25 -8
  132. package/src/components/section-list/index.ts +61 -19
  133. package/src/components/switch/index.android.ts +14 -3
  134. package/src/components/switch/index.ios.ts +14 -3
  135. package/src/components/switch/shared.ts +15 -4
  136. package/src/components/text-input.ts +45 -13
  137. package/src/components/touchable/index.ts +296 -72
  138. package/src/components/touchable-native-feedback/index.ts +32 -10
  139. package/src/components/virtualized-list/directives.ts +19 -5
  140. package/src/components/virtualized-list/index.ts +274 -72
  141. package/src/components/virtualized-section-list/directives.ts +6 -3
  142. package/src/components/virtualized-section-list/index.ts +146 -34
  143. package/src/components.ts +4 -1
  144. package/src/create-portal/index.ts +8 -2
  145. package/src/create-tunnel/index.ts +3 -1
  146. package/src/descriptor-to-angular/index.ts +29 -8
  147. package/src/diagnostics.ts +138 -0
  148. package/src/host-instance/index.ts +9 -3
  149. package/src/index.ts +31 -2
  150. package/src/modules/animated/create-animated-component.ts +44 -15
  151. package/src/modules/app-registry/index.ts +3 -1
  152. package/src/modules/status-bar/index.ts +13 -4
  153. package/src/primitives/index.ts +46 -2
  154. package/src/primitives/shared.ts +70 -9
  155. package/src/render/index.ts +56 -6
  156. package/src/renderer/index.ts +76 -14
  157. package/src/services/color-scheme.service.ts +3 -1
  158. package/src/services/window-dimensions.service.ts +11 -4
@@ -21,7 +21,7 @@
21
21
  // Metro picks this on an Android host; no Platform.OS read.
22
22
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, Input, TemplateRef, ViewContainerRef, inject, } from '@angular/core';
23
23
  import { HorizontalScrollContentView, HorizontalScrollView, RefreshControlHost, ScrollContentView, ScrollViewHost, SymbioteHostPropsDirective, SymbioteStyleInputDirective, } from '../../primitives';
24
- import { ScrollViewBase, ScrollViewProjectionDirective, SCROLL_VIEW_INPUTS } from './shared';
24
+ import { ScrollViewBase, ScrollViewProjectionDirective, SCROLL_VIEW_INPUTS, } from './shared';
25
25
  import * as i0 from "@angular/core";
26
26
  import * as i1 from "../../primitives/shared";
27
27
  // Minimal local twin of `@angular/common`'s NgTemplateOutlet (this adapter deliberately has no
@@ -98,17 +98,24 @@ export class ScrollView extends ScrollViewBase {
98
98
  [symbioteHostProps]="contentProps()"
99
99
  [symbioteScrollViewProjection]="projectionController"
100
100
  >
101
- <ng-container [symbioteTemplateOutlet]="sharedContent"></ng-container>
101
+ <ng-container
102
+ [symbioteTemplateOutlet]="sharedContent"
103
+ ></ng-container>
102
104
  </symbiote-horizontal-scroll-content>
103
105
  </symbiote-horizontal-scroll-view>
104
106
  </symbiote-refresh-control>
105
107
  } @else {
106
- <symbiote-horizontal-scroll-view #host="symbioteHost" [symbioteHostProps]="scrollProps()">
108
+ <symbiote-horizontal-scroll-view
109
+ #host="symbioteHost"
110
+ [symbioteHostProps]="scrollProps()"
111
+ >
107
112
  <symbiote-horizontal-scroll-content
108
113
  [symbioteHostProps]="contentProps()"
109
114
  [symbioteScrollViewProjection]="projectionController"
110
115
  >
111
- <ng-container [symbioteTemplateOutlet]="sharedContent"></ng-container>
116
+ <ng-container
117
+ [symbioteTemplateOutlet]="sharedContent"
118
+ ></ng-container>
112
119
  </symbiote-horizontal-scroll-content>
113
120
  </symbiote-horizontal-scroll-view>
114
121
  }
@@ -127,17 +134,24 @@ export class ScrollView extends ScrollViewBase {
127
134
  [symbioteHostProps]="contentProps()"
128
135
  [symbioteScrollViewProjection]="projectionController"
129
136
  >
130
- <ng-container [symbioteTemplateOutlet]="sharedContent"></ng-container>
137
+ <ng-container
138
+ [symbioteTemplateOutlet]="sharedContent"
139
+ ></ng-container>
131
140
  </symbiote-scroll-content>
132
141
  </symbiote-scroll-view>
133
142
  </symbiote-refresh-control>
134
143
  } @else {
135
- <symbiote-scroll-view #host="symbioteHost" [symbioteHostProps]="scrollProps()">
144
+ <symbiote-scroll-view
145
+ #host="symbioteHost"
146
+ [symbioteHostProps]="scrollProps()"
147
+ >
136
148
  <symbiote-scroll-content
137
149
  [symbioteHostProps]="contentProps()"
138
150
  [symbioteScrollViewProjection]="projectionController"
139
151
  >
140
- <ng-container [symbioteTemplateOutlet]="sharedContent"></ng-container>
152
+ <ng-container
153
+ [symbioteTemplateOutlet]="sharedContent"
154
+ ></ng-container>
141
155
  </symbiote-scroll-content>
142
156
  </symbiote-scroll-view>
143
157
  }
@@ -149,7 +163,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
149
163
  args: [{
150
164
  selector: 'ScrollView',
151
165
  standalone: true,
152
- hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
166
+ hostDirectives: [
167
+ { directive: SymbioteStyleInputDirective, inputs: ['style'] },
168
+ ],
153
169
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
154
170
  imports: [
155
171
  ScrollViewHost,
@@ -182,17 +198,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
182
198
  [symbioteHostProps]="contentProps()"
183
199
  [symbioteScrollViewProjection]="projectionController"
184
200
  >
185
- <ng-container [symbioteTemplateOutlet]="sharedContent"></ng-container>
201
+ <ng-container
202
+ [symbioteTemplateOutlet]="sharedContent"
203
+ ></ng-container>
186
204
  </symbiote-horizontal-scroll-content>
187
205
  </symbiote-horizontal-scroll-view>
188
206
  </symbiote-refresh-control>
189
207
  } @else {
190
- <symbiote-horizontal-scroll-view #host="symbioteHost" [symbioteHostProps]="scrollProps()">
208
+ <symbiote-horizontal-scroll-view
209
+ #host="symbioteHost"
210
+ [symbioteHostProps]="scrollProps()"
211
+ >
191
212
  <symbiote-horizontal-scroll-content
192
213
  [symbioteHostProps]="contentProps()"
193
214
  [symbioteScrollViewProjection]="projectionController"
194
215
  >
195
- <ng-container [symbioteTemplateOutlet]="sharedContent"></ng-container>
216
+ <ng-container
217
+ [symbioteTemplateOutlet]="sharedContent"
218
+ ></ng-container>
196
219
  </symbiote-horizontal-scroll-content>
197
220
  </symbiote-horizontal-scroll-view>
198
221
  }
@@ -211,17 +234,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
211
234
  [symbioteHostProps]="contentProps()"
212
235
  [symbioteScrollViewProjection]="projectionController"
213
236
  >
214
- <ng-container [symbioteTemplateOutlet]="sharedContent"></ng-container>
237
+ <ng-container
238
+ [symbioteTemplateOutlet]="sharedContent"
239
+ ></ng-container>
215
240
  </symbiote-scroll-content>
216
241
  </symbiote-scroll-view>
217
242
  </symbiote-refresh-control>
218
243
  } @else {
219
- <symbiote-scroll-view #host="symbioteHost" [symbioteHostProps]="scrollProps()">
244
+ <symbiote-scroll-view
245
+ #host="symbioteHost"
246
+ [symbioteHostProps]="scrollProps()"
247
+ >
220
248
  <symbiote-scroll-content
221
249
  [symbioteHostProps]="contentProps()"
222
250
  [symbioteScrollViewProjection]="projectionController"
223
251
  >
224
- <ng-container [symbioteTemplateOutlet]="sharedContent"></ng-container>
252
+ <ng-container
253
+ [symbioteTemplateOutlet]="sharedContent"
254
+ ></ng-container>
225
255
  </symbiote-scroll-content>
226
256
  </symbiote-scroll-view>
227
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../src/components/scroll-view/index.android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../src/components/scroll-view/index.android.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,9 @@
15
15
  // conditionally include <ng-content> with @if, @for, or @switch"). Symptom here was axis-specific:
16
16
  // a horizontal FlatList's cells landed outside the ScrollView entirely. Fix: single unconditional
17
17
  // `<ng-content>` call site.
18
- import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component } from '@angular/core';
18
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, } from '@angular/core';
19
19
  import { RefreshControlHost, ScrollContentView, ScrollViewHost, SymbioteHostPropsDirective, SymbioteStyleInputDirective, } from '../../primitives';
20
- import { ScrollViewBase, ScrollViewProjectionDirective, SCROLL_VIEW_INPUTS } from './shared';
20
+ import { ScrollViewBase, ScrollViewProjectionDirective, SCROLL_VIEW_INPUTS, } from './shared';
21
21
  import * as i0 from "@angular/core";
22
22
  import * as i1 from "../../primitives/shared";
23
23
  // The symbiote-* host elements are imported as standalone components; the props directive is
@@ -29,7 +29,10 @@ import * as i1 from "../../primitives/shared";
29
29
  export class ScrollView extends ScrollViewBase {
30
30
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollView, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
31
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: ScrollView, isStandalone: true, selector: "ScrollView", inputs: { style: "style", contentContainerStyle: "contentContainerStyle", horizontal: "horizontal", scrollEnabled: "scrollEnabled", showsVerticalScrollIndicator: "showsVerticalScrollIndicator", showsHorizontalScrollIndicator: "showsHorizontalScrollIndicator", pagingEnabled: "pagingEnabled", bounces: "bounces", decelerationRate: "decelerationRate", scrollEventThrottle: "scrollEventThrottle", contentInset: "contentInset", contentOffset: "contentOffset", removeClippedSubviews: "removeClippedSubviews", snapToInterval: "snapToInterval", snapToOffsets: "snapToOffsets", snapToAlignment: "snapToAlignment", snapToStart: "snapToStart", snapToEnd: "snapToEnd", disableIntervalMomentum: "disableIntervalMomentum", stickyHeaderIndices: "stickyHeaderIndices", invertStickyHeaders: "invertStickyHeaders", StickyHeaderComponent: "StickyHeaderComponent", keyboardDismissMode: "keyboardDismissMode", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", maintainVisibleContentPosition: "maintainVisibleContentPosition", alwaysBounceHorizontal: "alwaysBounceHorizontal", alwaysBounceVertical: "alwaysBounceVertical", centerContent: "centerContent", scrollIndicatorInsets: "scrollIndicatorInsets", indicatorStyle: "indicatorStyle", directionalLockEnabled: "directionalLockEnabled", automaticallyAdjustKeyboardInsets: "automaticallyAdjustKeyboardInsets", contentInsetAdjustmentBehavior: "contentInsetAdjustmentBehavior", minimumZoomScale: "minimumZoomScale", maximumZoomScale: "maximumZoomScale", zoomScale: "zoomScale", bouncesZoom: "bouncesZoom", pinchGestureEnabled: "pinchGestureEnabled", nestedScrollEnabled: "nestedScrollEnabled", overScrollMode: "overScrollMode", fadingEdgeLength: "fadingEdgeLength", persistentScrollbar: "persistentScrollbar", endFillColor: "endFillColor", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", testID: "testID", nativeID: "nativeID", accessible: "accessible", accessibilityLabel: "accessibilityLabel", accessibilityHint: "accessibilityHint", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityActions: "accessibilityActions", accessibilityLabelledBy: "accessibilityLabelledBy", importantForAccessibility: "importantForAccessibility", accessibilityLiveRegion: "accessibilityLiveRegion", screenReaderFocusable: "screenReaderFocusable", accessibilityViewIsModal: "accessibilityViewIsModal", accessibilityElementsHidden: "accessibilityElementsHidden", accessibilityIgnoresInvertColors: "accessibilityIgnoresInvertColors", accessibilityLanguage: "accessibilityLanguage", accessibilityRespondsToUserInteraction: "accessibilityRespondsToUserInteraction", accessibilityShowsLargeContentViewer: "accessibilityShowsLargeContentViewer", accessibilityLargeContentTitle: "accessibilityLargeContentTitle", role: "role", "aria-label": "aria-label", "aria-labelledby": "aria-labelledby", "aria-live": "aria-live", "aria-hidden": "aria-hidden", "aria-busy": "aria-busy", "aria-checked": "aria-checked", "aria-disabled": "aria-disabled", "aria-expanded": "aria-expanded", "aria-selected": "aria-selected", "aria-modal": "aria-modal", "aria-valuemax": "aria-valuemax", "aria-valuemin": "aria-valuemin", "aria-valuenow": "aria-valuenow", "aria-valuetext": "aria-valuetext" }, usesInheritance: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
32
- <symbiote-scroll-view #host="symbioteHost" [symbioteHostProps]="scrollProps()">
32
+ <symbiote-scroll-view
33
+ #host="symbioteHost"
34
+ [symbioteHostProps]="scrollProps()"
35
+ >
33
36
  @if (hasProjectedRefreshControl) {
34
37
  <symbiote-refresh-control
35
38
  #refreshHost="symbioteHost"
@@ -51,7 +54,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
51
54
  args: [{
52
55
  selector: 'ScrollView',
53
56
  standalone: true,
54
- hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
57
+ hostDirectives: [
58
+ { directive: SymbioteStyleInputDirective, inputs: ['style'] },
59
+ ],
55
60
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
56
61
  imports: [
57
62
  ScrollViewHost,
@@ -63,7 +68,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
63
68
  changeDetection: ChangeDetectionStrategy.OnPush,
64
69
  inputs: SCROLL_VIEW_INPUTS,
65
70
  template: `
66
- <symbiote-scroll-view #host="symbioteHost" [symbioteHostProps]="scrollProps()">
71
+ <symbiote-scroll-view
72
+ #host="symbioteHost"
73
+ [symbioteHostProps]="scrollProps()"
74
+ >
67
75
  @if (hasProjectedRefreshControl) {
68
76
  <symbiote-refresh-control
69
77
  #refreshHost="symbioteHost"
@@ -1 +1 @@
1
- {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../src/components/scroll-view/index.ios.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,oGAAoG;AACpG,oGAAoG;AACpG,gGAAgG;AAChG,gGAAgG;AAChG,EAAE;AACF,+FAA+F;AAC/F,8FAA8F;AAC9F,iGAAiG;AACjG,kGAAkG;AAClG,6FAA6F;AAC7F,gGAAgG;AAChG,2FAA2F;AAC3F,6FAA6F;AAC7F,mGAAmG;AACnG,kGAAkG;AAClG,4BAA4B;AAE5B,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;;;AAG7F,6FAA6F;AAC7F,+FAA+F;AAiC/F,iGAAiG;AACjG,6FAA6F;AAC7F,mGAAmG;AACnG,oDAAoD;AACpD,MAAM,OAAO,UAAW,SAAQ,cAAc;uGAAjC,UAAU;2FAAV,UAAU,4gHAtBX;;;;;;;;;;;;;;;;GAgBT,4DAxBC,cAAc,iEACd,iBAAiB,oEACjB,kBAAkB,qEAClB,0BAA0B,2HAC1B,6BAA6B;;2FA0BpB,UAAU;kBApCtB,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/E,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE;wBACP,cAAc;wBACd,iBAAiB;wBACjB,kBAAkB;wBAClB,0BAA0B;wBAC1B,6BAA6B;qBAC9B;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,MAAM,EAAE,kBAAkB;oBAC1B,QAAQ,EAAE;;;;;;;;;;;;;;;;GAgBT;iBACF"}
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../src/components/scroll-view/index.ios.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,oGAAoG;AACpG,oGAAoG;AACpG,gGAAgG;AAChG,gGAAgG;AAChG,EAAE;AACF,+FAA+F;AAC/F,8FAA8F;AAC9F,iGAAiG;AACjG,kGAAkG;AAClG,6FAA6F;AAC7F,gGAAgG;AAChG,2FAA2F;AAC3F,6FAA6F;AAC7F,mGAAmG;AACnG,kGAAkG;AAClG,4BAA4B;AAE5B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,UAAU,CAAC;;;AAGlB,6FAA6F;AAC7F,+FAA+F;AAsC/F,iGAAiG;AACjG,6FAA6F;AAC7F,mGAAmG;AACnG,oDAAoD;AACpD,MAAM,OAAO,UAAW,SAAQ,cAAc;uGAAjC,UAAU;2FAAV,UAAU,4gHAzBX;;;;;;;;;;;;;;;;;;;GAmBT,4DA3BC,cAAc,iEACd,iBAAiB,oEACjB,kBAAkB,qEAClB,0BAA0B,2HAC1B,6BAA6B;;2FA6BpB,UAAU;kBAzCtB,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE;wBACd,EAAE,SAAS,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;qBAC9D;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE;wBACP,cAAc;wBACd,iBAAiB;wBACjB,kBAAkB;wBAClB,0BAA0B;wBAC1B,6BAA6B;qBAC9B;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,MAAM,EAAE,kBAAkB;oBAC1B,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;GAmBT;iBACF"}
@@ -1,6 +1,13 @@
1
1
  import { type AnimatedValue, type ISymbioteNode } from '@symbiote-native/engine';
2
2
  type IInsert = (parent: ISymbioteNode, child: ISymbioteNode, beforeChild?: ISymbioteNode) => void;
3
3
  type IRemove = (parent: ISymbioteNode, child: ISymbioteNode) => void;
4
+ /**
5
+ * Run every sticky reconcile owed by this change-detection pass. Wired to the renderer factory's
6
+ * `end()`, which Angular calls at the end of `ApplicationRef.tick` — after both channels that feed
7
+ * a projection controller have written (children through the renderer, `stickyHeaderIndices` through
8
+ * an `@Input`), and before the surface's microtask-coalesced commit runs.
9
+ */
10
+ export declare function flushScrollViewProjections(): void;
4
11
  export interface IScrollViewProjectionConfig {
5
12
  stickyHeaderIndices: readonly number[] | undefined;
6
13
  invertStickyHeaders: boolean | undefined;
@@ -16,8 +23,32 @@ export declare class ScrollViewProjectionController {
16
23
  private readonly headerLayoutYs;
17
24
  private readonly instanceId;
18
25
  private reconcileSeq;
26
+ private isReconcilePending;
27
+ private shouldNotifyAll;
19
28
  constructor(config: IScrollViewProjectionConfig);
20
29
  update(config: IScrollViewProjectionConfig): void;
30
+ /**
31
+ * Coalesce every reconcile request of one change-detection pass into a SINGLE walk.
32
+ *
33
+ * Cost is half the reason: the walk is O(records), so running it per projected mutation makes
34
+ * mounting M children O(M^2) - 801 children on the benchmark screen's PATH A. Correctness is the
35
+ * worse half. A windowed list feeds the controller through TWO channels that land at different
36
+ * moments in the same pass: children arrive through the renderer (insert/remove), while
37
+ * `stickyHeaderIndices` arrive as an ordinary `@Input` via `update()` from ngOnChanges. Reconciling
38
+ * on each mutation therefore guarantees at least one walk matching the NEW children against the
39
+ * OLD indices - and those indices are positions in the rendered child array
40
+ * (`stickyChildPositions`), which shift by 1-3 the moment VirtualizedList grows a leading spacer or
41
+ * a forced sticky cell. Every mismatch re-labels a header and re-parents engine nodes for nothing.
42
+ *
43
+ * The flush point is `RendererFactory2.end()`: the end of the pass, still SYNCHRONOUS. It must not
44
+ * be a microtask - engine mutations only `markDirty`, the commit is microtask-coalesced by the
45
+ * surface, and a reconcile queued after that commit mutates a tree nobody commits again. Headless
46
+ * the sticky wrapper then never reaches Fabric at all (six tests caught exactly this); on device it
47
+ * lands a frame late or not at all. `end()` runs inside `ApplicationRef.tick`, so it precedes every
48
+ * microtask queued during the pass.
49
+ */
50
+ private scheduleReconcile;
51
+ flushReconcile(): void;
21
52
  bindContentNode(node: ISymbioteNode): void;
22
53
  appendProjectedChild(parent: ISymbioteNode, child: ISymbioteNode, insert: IInsert): void;
23
54
  insertProjectedChild(parent: ISymbioteNode, child: ISymbioteNode, beforeChild: ISymbioteNode | null, insert: IInsert): void;
@@ -28,6 +59,7 @@ export declare class ScrollViewProjectionController {
28
59
  private reconcileStickyRecords;
29
60
  private dropRecord;
30
61
  private wrapRecord;
62
+ private nextDirectAfter;
31
63
  private unwrapRecord;
32
64
  }
33
65
  export declare function getScrollViewProjection(node: ISymbioteNode): ScrollViewProjectionController | undefined;