@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.
- package/README.md +3 -3
- package/build/angular/bootstrap.js +1 -1
- package/build/angular/bootstrap.js.map +1 -1
- package/build/angular/components/activity-indicator/index.android.js +7 -2
- package/build/angular/components/activity-indicator/index.android.js.map +1 -1
- package/build/angular/components/activity-indicator/index.ios.js +3 -1
- package/build/angular/components/activity-indicator/index.ios.js.map +1 -1
- package/build/angular/components/activity-indicator/shared.d.ts +1 -1
- package/build/angular/components/activity-indicator/shared.js +1 -1
- package/build/angular/components/activity-indicator/shared.js.map +1 -1
- package/build/angular/components/button.js +13 -5
- package/build/angular/components/button.js.map +1 -1
- package/build/angular/components/flat-list/index.d.ts +1 -1
- package/build/angular/components/flat-list/index.js +47 -14
- package/build/angular/components/flat-list/index.js.map +1 -1
- package/build/angular/components/image/index.android.js +4 -2
- package/build/angular/components/image/index.android.js.map +1 -1
- package/build/angular/components/image/index.ios.js +4 -2
- package/build/angular/components/image/index.ios.js.map +1 -1
- package/build/angular/components/image/shared.js +18 -6
- package/build/angular/components/image/shared.js.map +1 -1
- package/build/angular/components/image-background.js +22 -8
- package/build/angular/components/image-background.js.map +1 -1
- package/build/angular/components/input-accessory-view/index.js +7 -2
- package/build/angular/components/input-accessory-view/index.js.map +1 -1
- package/build/angular/components/keyboard-avoiding-view/index.d.ts +1 -0
- package/build/angular/components/keyboard-avoiding-view/index.js +39 -9
- package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
- package/build/angular/components/modal/index.js +7 -2
- package/build/angular/components/modal/index.js.map +1 -1
- package/build/angular/components/pressable/index.d.ts +1 -1
- package/build/angular/components/pressable/index.js +6 -2
- package/build/angular/components/pressable/index.js.map +1 -1
- package/build/angular/components/refresh-control/index.js +3 -1
- package/build/angular/components/refresh-control/index.js.map +1 -1
- package/build/angular/components/safe-area-view/index.js +3 -1
- package/build/angular/components/safe-area-view/index.js.map +1 -1
- package/build/angular/components/scroll-view/index.android.js +44 -14
- package/build/angular/components/scroll-view/index.android.js.map +1 -1
- package/build/angular/components/scroll-view/index.ios.js +13 -5
- package/build/angular/components/scroll-view/index.ios.js.map +1 -1
- package/build/angular/components/scroll-view/projection.d.ts +32 -0
- package/build/angular/components/scroll-view/projection.js +212 -47
- package/build/angular/components/scroll-view/projection.js.map +1 -1
- package/build/angular/components/scroll-view/shared.js +28 -7
- package/build/angular/components/scroll-view/shared.js.map +1 -1
- package/build/angular/components/scroll-view/sticky-header.js +7 -3
- package/build/angular/components/scroll-view/sticky-header.js.map +1 -1
- package/build/angular/components/section-list/index.d.ts +6 -1
- package/build/angular/components/section-list/index.js +63 -18
- package/build/angular/components/section-list/index.js.map +1 -1
- package/build/angular/components/switch/index.android.js +17 -3
- package/build/angular/components/switch/index.android.js.map +1 -1
- package/build/angular/components/switch/index.ios.js +17 -3
- package/build/angular/components/switch/index.ios.js.map +1 -1
- package/build/angular/components/switch/shared.d.ts +1 -1
- package/build/angular/components/switch/shared.js +5 -2
- package/build/angular/components/switch/shared.js.map +1 -1
- package/build/angular/components/text-input.d.ts +1 -1
- package/build/angular/components/text-input.js +25 -5
- package/build/angular/components/text-input.js.map +1 -1
- package/build/angular/components/touchable/index.d.ts +29 -7
- package/build/angular/components/touchable/index.js +246 -69
- package/build/angular/components/touchable/index.js.map +1 -1
- package/build/angular/components/touchable-native-feedback/index.js +2 -2
- package/build/angular/components/touchable-native-feedback/index.js.map +1 -1
- package/build/angular/components/virtualized-list/directives.js +4 -0
- package/build/angular/components/virtualized-list/directives.js.map +1 -1
- package/build/angular/components/virtualized-list/index.d.ts +5 -2
- package/build/angular/components/virtualized-list/index.js +197 -60
- package/build/angular/components/virtualized-list/index.js.map +1 -1
- package/build/angular/components/virtualized-section-list/directives.js.map +1 -1
- package/build/angular/components/virtualized-section-list/index.d.ts +18 -1
- package/build/angular/components/virtualized-section-list/index.js +90 -21
- package/build/angular/components/virtualized-section-list/index.js.map +1 -1
- package/build/angular/components.d.ts +1 -1
- package/build/angular/components.js.map +1 -1
- package/build/angular/create-portal/index.js +5 -1
- package/build/angular/create-portal/index.js.map +1 -1
- package/build/angular/create-tunnel/index.js.map +1 -1
- package/build/angular/descriptor-to-angular/index.js +3 -1
- package/build/angular/descriptor-to-angular/index.js.map +1 -1
- package/build/angular/diagnostics.d.ts +33 -0
- package/build/angular/diagnostics.js +82 -0
- package/build/angular/diagnostics.js.map +1 -0
- package/build/angular/host-instance/index.js +1 -1
- package/build/angular/host-instance/index.js.map +1 -1
- package/build/angular/index.d.ts +5 -2
- package/build/angular/index.js +15 -1
- package/build/angular/index.js.map +1 -1
- package/build/angular/modules/animated/create-animated-component.js +27 -9
- package/build/angular/modules/animated/create-animated-component.js.map +1 -1
- package/build/angular/modules/app-registry/index.js.map +1 -1
- package/build/angular/modules/status-bar/index.js +1 -1
- package/build/angular/modules/status-bar/index.js.map +1 -1
- package/build/angular/primitives/index.d.ts +19 -2
- package/build/angular/primitives/index.js +39 -3
- package/build/angular/primitives/index.js.map +1 -1
- package/build/angular/primitives/shared.d.ts +9 -1
- package/build/angular/primitives/shared.js +49 -3
- package/build/angular/primitives/shared.js.map +1 -1
- package/build/angular/render/index.js +48 -5
- package/build/angular/render/index.js.map +1 -1
- package/build/angular/renderer/index.d.ts +1 -0
- package/build/angular/renderer/index.js +37 -2
- package/build/angular/renderer/index.js.map +1 -1
- package/build/angular/services/color-scheme.service.js.map +1 -1
- package/build/angular/services/window-dimensions.service.js +1 -1
- package/build/angular/services/window-dimensions.service.js.map +1 -1
- package/package.json +5 -5
- package/src/bootstrap.ts +4 -1
- package/src/components/activity-indicator/index.android.ts +7 -2
- package/src/components/activity-indicator/index.ios.ts +3 -1
- package/src/components/activity-indicator/shared.ts +32 -13
- package/src/components/button.ts +19 -6
- package/src/components/flat-list/index.ts +91 -29
- package/src/components/image/index.android.ts +9 -2
- package/src/components/image/index.ios.ts +9 -2
- package/src/components/image/shared.ts +58 -19
- package/src/components/image-background.ts +29 -10
- package/src/components/input-accessory-view/index.ts +27 -10
- package/src/components/keyboard-avoiding-view/index.ts +55 -15
- package/src/components/modal/index.ts +22 -8
- package/src/components/pressable/index.ts +51 -21
- package/src/components/refresh-control/index.ts +22 -8
- package/src/components/safe-area-view/index.ts +16 -7
- package/src/components/scroll-view/index.android.ts +31 -9
- package/src/components/scroll-view/index.ios.ts +17 -4
- package/src/components/scroll-view/projection.ts +290 -63
- package/src/components/scroll-view/shared.ts +93 -26
- package/src/components/scroll-view/sticky-header.ts +25 -8
- package/src/components/section-list/index.ts +61 -19
- package/src/components/switch/index.android.ts +14 -3
- package/src/components/switch/index.ios.ts +14 -3
- package/src/components/switch/shared.ts +15 -4
- package/src/components/text-input.ts +45 -13
- package/src/components/touchable/index.ts +296 -72
- package/src/components/touchable-native-feedback/index.ts +32 -10
- package/src/components/virtualized-list/directives.ts +19 -5
- package/src/components/virtualized-list/index.ts +274 -72
- package/src/components/virtualized-section-list/directives.ts +6 -3
- package/src/components/virtualized-section-list/index.ts +146 -34
- package/src/components.ts +4 -1
- package/src/create-portal/index.ts +8 -2
- package/src/create-tunnel/index.ts +3 -1
- package/src/descriptor-to-angular/index.ts +29 -8
- package/src/diagnostics.ts +138 -0
- package/src/host-instance/index.ts +9 -3
- package/src/index.ts +31 -2
- package/src/modules/animated/create-animated-component.ts +44 -15
- package/src/modules/app-registry/index.ts +3 -1
- package/src/modules/status-bar/index.ts +13 -4
- package/src/primitives/index.ts +46 -2
- package/src/primitives/shared.ts +70 -9
- package/src/render/index.ts +56 -6
- package/src/renderer/index.ts +76 -14
- package/src/services/color-scheme.service.ts +3 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: [
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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":"AAAA,iGAAiG;AACjG,iGAAiG;AACjG,+FAA+F;AAC/F,mGAAmG;AACnG,+FAA+F;AAC/F,2EAA2E;AAC3E,EAAE;AACF,qFAAqF;AACrF,mGAAmG;AACnG,6FAA6F;AAC7F,yFAAyF;AACzF,mGAAmG;AACnG,kGAAkG;AAClG,mGAAmG;AACnG,wEAAwE;AACxE,+FAA+F;AAC/F,kGAAkG;AAClG,gEAAgE;AAChE,4FAA4F;AAC5F,EAAE;AACF,4DAA4D;AAE5D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,MAAM,GAIP,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
|
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
|
|
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: [
|
|
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
|
|
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,
|
|
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;
|