@symbiote-native/angular 0.6.2 → 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/bin/symbiote-angular-dev.cjs +20 -19
- package/build/angular/anchor-host-registry.js +2 -2
- package/build/angular/anchor-host-registry.js.map +1 -1
- package/build/angular/bootstrap.js +1 -1
- package/build/angular/bootstrap.js.map +1 -1
- package/build/angular/components/activity-indicator/index.android.d.ts +2 -1
- package/build/angular/components/activity-indicator/index.android.js +12 -4
- package/build/angular/components/activity-indicator/index.android.js.map +1 -1
- package/build/angular/components/activity-indicator/index.ios.d.ts +2 -1
- package/build/angular/components/activity-indicator/index.ios.js +8 -3
- 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 +4 -4
- package/build/angular/components/activity-indicator/shared.js.map +1 -1
- package/build/angular/components/button.d.ts +4 -2
- package/build/angular/components/button.js +41 -22
- package/build/angular/components/button.js.map +1 -1
- package/build/angular/components/flat-list/index.d.ts +6 -4
- package/build/angular/components/flat-list/index.js +80 -50
- package/build/angular/components/flat-list/index.js.map +1 -1
- package/build/angular/components/image/index.android.d.ts +8 -3
- package/build/angular/components/image/index.android.js +42 -10
- package/build/angular/components/image/index.android.js.map +1 -1
- package/build/angular/components/image/index.ios.d.ts +8 -3
- package/build/angular/components/image/index.ios.js +42 -10
- package/build/angular/components/image/index.ios.js.map +1 -1
- package/build/angular/components/image/shared.d.ts +4 -1
- package/build/angular/components/image/shared.js +51 -8
- package/build/angular/components/image/shared.js.map +1 -1
- package/build/angular/components/image-background.d.ts +2 -1
- package/build/angular/components/image-background.js +26 -10
- package/build/angular/components/image-background.js.map +1 -1
- package/build/angular/components/input-accessory-view/index.d.ts +9 -4
- package/build/angular/components/input-accessory-view/index.js +49 -10
- package/build/angular/components/input-accessory-view/index.js.map +1 -1
- package/build/angular/components/keyboard-avoiding-view/index.d.ts +3 -1
- package/build/angular/components/keyboard-avoiding-view/index.js +44 -12
- package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
- package/build/angular/components/modal/index.d.ts +11 -8
- package/build/angular/components/modal/index.js +51 -29
- package/build/angular/components/modal/index.js.map +1 -1
- package/build/angular/components/pressable/index.d.ts +12 -6
- package/build/angular/components/pressable/index.js +66 -13
- package/build/angular/components/pressable/index.js.map +1 -1
- package/build/angular/components/refresh-control/index.d.ts +8 -4
- package/build/angular/components/refresh-control/index.js +54 -16
- package/build/angular/components/refresh-control/index.js.map +1 -1
- package/build/angular/components/safe-area-view/index.d.ts +9 -4
- package/build/angular/components/safe-area-view/index.js +48 -9
- package/build/angular/components/safe-area-view/index.js.map +1 -1
- package/build/angular/components/scroll-view/index.android.d.ts +2 -3
- package/build/angular/components/scroll-view/index.android.js +88 -61
- package/build/angular/components/scroll-view/index.android.js.map +1 -1
- package/build/angular/components/scroll-view/index.ios.d.ts +2 -3
- package/build/angular/components/scroll-view/index.ios.js +24 -18
- package/build/angular/components/scroll-view/index.ios.js.map +1 -1
- package/build/angular/components/scroll-view/projection.d.ts +35 -0
- package/build/angular/components/scroll-view/projection.js +279 -53
- package/build/angular/components/scroll-view/projection.js.map +1 -1
- package/build/angular/components/scroll-view/shared.d.ts +14 -5
- package/build/angular/components/scroll-view/shared.js +225 -75
- package/build/angular/components/scroll-view/shared.js.map +1 -1
- package/build/angular/components/scroll-view/sticky-header.js +21 -22
- package/build/angular/components/scroll-view/sticky-header.js.map +1 -1
- package/build/angular/components/section-list/index.d.ts +7 -1
- package/build/angular/components/section-list/index.js +91 -54
- package/build/angular/components/section-list/index.js.map +1 -1
- package/build/angular/components/switch/index.android.d.ts +7 -3
- package/build/angular/components/switch/index.android.js +52 -10
- package/build/angular/components/switch/index.android.js.map +1 -1
- package/build/angular/components/switch/index.ios.d.ts +7 -3
- package/build/angular/components/switch/index.ios.js +52 -10
- package/build/angular/components/switch/index.ios.js.map +1 -1
- package/build/angular/components/switch/shared.d.ts +13 -4
- package/build/angular/components/switch/shared.js +71 -7
- package/build/angular/components/switch/shared.js.map +1 -1
- package/build/angular/components/text-input.d.ts +11 -3
- package/build/angular/components/text-input.js +68 -8
- package/build/angular/components/text-input.js.map +1 -1
- package/build/angular/components/touchable/index.d.ts +40 -9
- package/build/angular/components/touchable/index.js +303 -67
- package/build/angular/components/touchable/index.js.map +1 -1
- package/build/angular/components/touchable-native-feedback/index.d.ts +6 -3
- package/build/angular/components/touchable-native-feedback/index.js +63 -27
- package/build/angular/components/touchable-native-feedback/index.js.map +1 -1
- package/build/angular/components/virtualized-list/directives.js +22 -18
- package/build/angular/components/virtualized-list/directives.js.map +1 -1
- package/build/angular/components/virtualized-list/index.d.ts +15 -4
- package/build/angular/components/virtualized-list/index.js +326 -94
- package/build/angular/components/virtualized-list/index.js.map +1 -1
- package/build/angular/components/virtualized-section-list/directives.js +12 -12
- package/build/angular/components/virtualized-section-list/directives.js.map +1 -1
- package/build/angular/components/virtualized-section-list/index.d.ts +19 -1
- package/build/angular/components/virtualized-section-list/index.js +93 -22
- package/build/angular/components/virtualized-section-list/index.js.map +1 -1
- package/build/angular/components.d.ts +2 -2
- package/build/angular/components.js +5 -0
- package/build/angular/components.js.map +1 -1
- package/build/angular/create-portal/index.js +34 -36
- package/build/angular/create-portal/index.js.map +1 -1
- package/build/angular/create-tunnel/index.js +19 -22
- package/build/angular/create-tunnel/index.js.map +1 -1
- package/build/angular/descriptor-to-angular/index.js +6 -4
- 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 +9 -4
- package/build/angular/index.js +17 -3
- package/build/angular/index.js.map +1 -1
- package/build/angular/modules/animated/animated-leaf-binder.d.ts +1 -7
- package/build/angular/modules/animated/animated-leaf-binder.js +22 -72
- package/build/angular/modules/animated/animated-leaf-binder.js.map +1 -1
- package/build/angular/modules/animated/create-animated-component.d.ts +11 -6
- package/build/angular/modules/animated/create-animated-component.js +106 -55
- package/build/angular/modules/animated/create-animated-component.js.map +1 -1
- package/build/angular/modules/status-bar/index.js +4 -4
- package/build/angular/modules/status-bar/index.js.map +1 -1
- package/build/angular/primitives/index.d.ts +20 -3
- package/build/angular/primitives/index.js +84 -48
- package/build/angular/primitives/index.js.map +1 -1
- package/build/angular/primitives/shared.d.ts +48 -2
- package/build/angular/primitives/shared.js +158 -11
- package/build/angular/primitives/shared.js.map +1 -1
- package/build/angular/render/index.js +69 -38
- 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 +3 -3
- package/build/angular/services/color-scheme.service.js.map +1 -1
- package/build/angular/services/window-dimensions.service.js +4 -4
- package/build/angular/services/window-dimensions.service.js.map +1 -1
- package/package.json +10 -8
- package/src/anchor-host-registry.ts +2 -2
- package/src/bootstrap.ts +4 -1
- package/src/components/activity-indicator/index.android.ts +8 -1
- package/src/components/activity-indicator/index.ios.ts +4 -0
- package/src/components/activity-indicator/shared.ts +32 -13
- package/src/components/button.ts +46 -19
- package/src/components/flat-list/index.ts +122 -62
- package/src/components/image/index.android.ts +58 -7
- package/src/components/image/index.ios.ts +58 -7
- package/src/components/image/shared.ts +92 -21
- package/src/components/image-background.ts +29 -9
- package/src/components/input-accessory-view/index.ts +67 -12
- package/src/components/keyboard-avoiding-view/index.ts +61 -15
- package/src/components/modal/index.ts +72 -33
- package/src/components/pressable/index.ts +117 -28
- package/src/components/refresh-control/index.ts +74 -18
- package/src/components/safe-area-view/index.ts +64 -10
- package/src/components/scroll-view/index.android.ts +62 -47
- package/src/components/scroll-view/index.ios.ts +19 -17
- package/src/components/scroll-view/projection.ts +363 -64
- package/src/components/scroll-view/shared.ts +312 -90
- package/src/components/scroll-view/sticky-header.ts +36 -24
- package/src/components/section-list/index.ts +86 -53
- package/src/components/switch/index.android.ts +60 -8
- package/src/components/switch/index.ios.ts +60 -8
- package/src/components/switch/shared.ts +93 -6
- package/src/components/text-input.ts +95 -13
- package/src/components/touchable/index.ts +348 -64
- package/src/components/touchable-native-feedback/index.ts +94 -31
- package/src/components/virtualized-list/directives.ts +19 -5
- package/src/components/virtualized-list/index.ts +380 -85
- package/src/components/virtualized-section-list/directives.ts +6 -3
- package/src/components/virtualized-section-list/index.ts +146 -33
- package/src/components.ts +9 -1
- package/src/create-portal/index.ts +31 -31
- package/src/create-tunnel/index.ts +16 -17
- 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 +61 -3
- package/src/modules/animated/animated-leaf-binder.ts +28 -77
- package/src/modules/animated/create-animated-component.ts +115 -47
- package/src/modules/app-registry/index.ts +9 -9
- package/src/modules/status-bar/index.ts +13 -4
- package/src/primitives/index.ts +47 -2
- package/src/primitives/shared.ts +170 -10
- package/src/render/index.ts +77 -39
- 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
- package/build/angular/modules/animated/animated-leaf-binder/index.d.ts +0 -14
- package/build/angular/modules/animated/animated-leaf-binder/index.js +0 -91
- package/build/angular/modules/animated/animated-leaf-binder/index.js.map +0 -1
- package/src/modules/animated/animated-leaf-binder/index.ts +0 -101
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
// Sticky headers:
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// interpolation math (computeStickyInterpolation) lives framework-agnostic in @symbiote-native/components
|
|
9
|
-
// this file holds the Angular component shell, the layout state, and the interpolation
|
|
10
|
-
// build, sharing the math verbatim with React/Vue. Angular supplies only the lifecycle (inputs +
|
|
11
|
-
// manual change detection instead of useState/useEffect or refs/watch).
|
|
1
|
+
// Sticky headers: RN does stickiness PURELY IN JS (ScrollView.js / ScrollViewStickyHeader.js).
|
|
2
|
+
// A single `_scrollAnimatedValue` an Animated.event drives from `onScroll` feeds each flagged
|
|
3
|
+
// header's translateY through an interpolation that pins it to the top (or bottom, inverted)
|
|
4
|
+
// until the next header collides with it — the native Fabric scroll view does NOT honor
|
|
5
|
+
// `stickyHeaderIndices` on its own. The interpolation math (computeStickyInterpolation) lives
|
|
6
|
+
// framework-agnostic in @symbiote-native/components, shared verbatim with React/Vue; this file
|
|
7
|
+
// holds the Angular component shell, layout state, and interpolation build.
|
|
12
8
|
//
|
|
13
9
|
// This is the public sticky-header WRAPPER for explicit composition. ScrollView also auto-wraps
|
|
14
|
-
// projected
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
// custom component classes.
|
|
10
|
+
// projected children named by stickyHeaderIndices through its projection bridge (projection.ts),
|
|
11
|
+
// because Angular templates cannot map <ng-content> children directly; that auto path
|
|
12
|
+
// intentionally reuses this built-in wrapper rather than instantiating arbitrary component types.
|
|
18
13
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, inject, } from '@angular/core';
|
|
19
14
|
import { AnimatedValue, Platform, dlog, } from '@symbiote-native/engine';
|
|
20
15
|
import { createInitialStickyState, readLayoutNumber, reduceSticky, STICKY_HEADER_Z_INDEX, } from '@symbiote-native/components';
|
|
@@ -80,7 +75,10 @@ export class ScrollViewStickyHeader {
|
|
|
80
75
|
// anchor style first so the fixed transform/zIndex below still wins on conflict.
|
|
81
76
|
return [
|
|
82
77
|
anchorHostStyle(this.elementRef),
|
|
83
|
-
{
|
|
78
|
+
{
|
|
79
|
+
transform: [{ translateY: this.animatedTranslateY }],
|
|
80
|
+
zIndex: STICKY_HEADER_Z_INDEX,
|
|
81
|
+
},
|
|
84
82
|
];
|
|
85
83
|
}
|
|
86
84
|
// Stable reference (bound once) so AnimatedView's directive does not re-wire the layout listener
|
|
@@ -120,7 +118,8 @@ export class ScrollViewStickyHeader {
|
|
|
120
118
|
case 'rebuild-interpolation': {
|
|
121
119
|
// Detach the old listener, build a fresh interpolation onto the shared scroll value, and
|
|
122
120
|
// wire the settled-value listener (symbiote is always Fabric; RN attaches it only there).
|
|
123
|
-
if (this.interpolation !== undefined &&
|
|
121
|
+
if (this.interpolation !== undefined &&
|
|
122
|
+
this.listenerId !== undefined) {
|
|
124
123
|
this.interpolation.removeListener(this.listenerId);
|
|
125
124
|
this.listenerId = undefined;
|
|
126
125
|
}
|
|
@@ -131,7 +130,7 @@ export class ScrollViewStickyHeader {
|
|
|
131
130
|
this.listenerId = next.addListener(this.animatedValueListener);
|
|
132
131
|
this.interpolation = next;
|
|
133
132
|
this.animatedTranslateY = next;
|
|
134
|
-
dlog(`
|
|
133
|
+
dlog(`STICKY[header] interpolation measured=${this.state.measured} y=${this.state.layoutY}`);
|
|
135
134
|
break;
|
|
136
135
|
}
|
|
137
136
|
case 'schedule-debounce':
|
|
@@ -169,7 +168,7 @@ export class ScrollViewStickyHeader {
|
|
|
169
168
|
this.layout.emit(event);
|
|
170
169
|
this.changeDetector.markForCheck();
|
|
171
170
|
}
|
|
172
|
-
animatedValueListener = ({ value }) => {
|
|
171
|
+
animatedValueListener = ({ value, }) => {
|
|
173
172
|
if (typeof value === 'number')
|
|
174
173
|
this.dispatch({ kind: 'animated-tick', value });
|
|
175
174
|
};
|
|
@@ -183,8 +182,8 @@ export class ScrollViewStickyHeader {
|
|
|
183
182
|
this.debounceTimer = undefined;
|
|
184
183
|
}
|
|
185
184
|
}
|
|
186
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
187
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.
|
|
185
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollViewStickyHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
186
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: ScrollViewStickyHeader, isStandalone: true, selector: "ScrollViewStickyHeader, symbiote-sticky-header", inputs: { scrollAnimatedValue: "scrollAnimatedValue", nextHeaderLayoutY: "nextHeaderLayoutY", inverted: "inverted", scrollViewHeight: "scrollViewHeight" }, outputs: { layout: "layout" }, usesOnChanges: true, ngImport: i0, template: `
|
|
188
187
|
<AnimatedView
|
|
189
188
|
[style]="headerStyle"
|
|
190
189
|
[animatedProps]="headerAnimatedProps"
|
|
@@ -194,7 +193,7 @@ export class ScrollViewStickyHeader {
|
|
|
194
193
|
</AnimatedView>
|
|
195
194
|
`, isInline: true, dependencies: [{ kind: "component", type: AnimatedView, selector: "AnimatedView, symbiote-animated-view", inputs: ["style", "animatedProps", "passthroughAnimatedPropExplicitValues"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
196
195
|
}
|
|
197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollViewStickyHeader, decorators: [{
|
|
198
197
|
type: Component,
|
|
199
198
|
args: [{
|
|
200
199
|
selector: 'ScrollViewStickyHeader, symbiote-sticky-header',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sticky-header.js","sourceRoot":"","sources":["../../../../src/components/scroll-view/sticky-header.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sticky-header.js","sourceRoot":"","sources":["../../../../src/components/scroll-view/sticky-header.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { type IStyleProp, type ISymbioteEvent, type ISymbioteNode, type IViewSty
|
|
|
4
4
|
import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, type IVListSeparatorContext } from '../virtualized-list';
|
|
5
5
|
import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, type IVirtualizedSectionListProps } from '../virtualized-section-list';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../primitives/shared";
|
|
7
8
|
export type { ISection } from '@symbiote-native/components';
|
|
8
9
|
export type ISectionListHandle = IVirtualizedSectionListHandle;
|
|
9
10
|
export { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from '../virtualized-section-list';
|
|
@@ -13,6 +14,11 @@ export type ISectionListInputs<ItemT> = Omit<ISectionListProps<ItemT>, 'onEndRea
|
|
|
13
14
|
export declare class SectionList<ItemT = unknown> implements ISectionListInputs<ItemT>, IVirtualizedSectionListHandle {
|
|
14
15
|
sections: ReadonlyArray<ISection<ItemT>>;
|
|
15
16
|
keyExtractor?: (item: ItemT, index: number) => string;
|
|
17
|
+
getItemLayout?: (data: ReadonlyArray<ISection<ItemT>> | null, index: number) => {
|
|
18
|
+
length: number;
|
|
19
|
+
offset: number;
|
|
20
|
+
index: number;
|
|
21
|
+
};
|
|
16
22
|
stickySectionHeadersEnabled?: boolean;
|
|
17
23
|
extraData?: unknown;
|
|
18
24
|
readonly endReached: EventEmitter<{
|
|
@@ -112,5 +118,5 @@ export declare class SectionList<ItemT = unknown> implements ISectionListInputs<
|
|
|
112
118
|
getScrollNode(): ISymbioteNode | null;
|
|
113
119
|
recordInteraction(): void;
|
|
114
120
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionList<any>, never>;
|
|
115
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SectionList<any>, "SectionList", never, { "sections": { "alias": "sections"; "required": true; }; "keyExtractor": { "alias": "keyExtractor"; "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; }; "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; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "accessibilityViewIsModal": { "alias": "accessibilityViewIsModal"; "required": false; }; "accessibilityElementsHidden": { "alias": "accessibilityElementsHidden"; "required": false; }; "accessibilityIgnoresInvertColors": { "alias": "accessibilityIgnoresInvertColors"; "required": false; }; "accessibilityLanguage": { "alias": "accessibilityLanguage"; "required": false; }; "accessibilityRespondsToUserInteraction": { "alias": "accessibilityRespondsToUserInteraction"; "required": false; }; "accessibilityShowsLargeContentViewer": { "alias": "accessibilityShowsLargeContentViewer"; "required": false; }; "accessibilityLargeContentTitle": { "alias": "accessibilityLargeContentTitle"; "required": false; }; "role": { "alias": "role"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLive": { "alias": "ariaLive"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "ariaBusy": { "alias": "ariaBusy"; "required": false; }; "ariaChecked": { "alias": "ariaChecked"; "required": false; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; }; "ariaModal": { "alias": "ariaModal"; "required": false; }; "ariaValueMax": { "alias": "ariaValueMax"; "required": false; }; "ariaValueMin": { "alias": "ariaValueMin"; "required": false; }; "ariaValueNow": { "alias": "ariaValueNow"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, ["sectionItemDir", "sectionHeaderDir", "sectionFooterDir", "sectionSeparatorDir", "listHeaderDir", "listFooterDir", "listEmptyDir", "itemSeparatorDir"], never, true,
|
|
121
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SectionList<any>, "SectionList", 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; }; "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; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "accessibilityViewIsModal": { "alias": "accessibilityViewIsModal"; "required": false; }; "accessibilityElementsHidden": { "alias": "accessibilityElementsHidden"; "required": false; }; "accessibilityIgnoresInvertColors": { "alias": "accessibilityIgnoresInvertColors"; "required": false; }; "accessibilityLanguage": { "alias": "accessibilityLanguage"; "required": false; }; "accessibilityRespondsToUserInteraction": { "alias": "accessibilityRespondsToUserInteraction"; "required": false; }; "accessibilityShowsLargeContentViewer": { "alias": "accessibilityShowsLargeContentViewer"; "required": false; }; "accessibilityLargeContentTitle": { "alias": "accessibilityLargeContentTitle"; "required": false; }; "role": { "alias": "role"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLive": { "alias": "ariaLive"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "ariaBusy": { "alias": "ariaBusy"; "required": false; }; "ariaChecked": { "alias": "ariaChecked"; "required": false; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; }; "ariaModal": { "alias": "ariaModal"; "required": false; }; "ariaValueMax": { "alias": "ariaValueMax"; "required": false; }; "ariaValueMin": { "alias": "ariaValueMin"; "required": false; }; "ariaValueNow": { "alias": "ariaValueNow"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, ["sectionItemDir", "sectionHeaderDir", "sectionFooterDir", "sectionSeparatorDir", "listHeaderDir", "listFooterDir", "listEmptyDir", "itemSeparatorDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
|
|
116
122
|
}
|
|
@@ -1,40 +1,35 @@
|
|
|
1
1
|
// SectionList, the Angular public list-of-sections component. A thin convenience surface over
|
|
2
2
|
// VirtualizedSectionList, mirroring RN's layering (SectionList -> VirtualizedSectionList ->
|
|
3
3
|
// VirtualizedList). All section-flattening / windowing / sticky-header / imperative-scroll logic
|
|
4
|
-
// lives below; this layer re-exposes the same surface under the SectionList name and
|
|
5
|
-
// handle
|
|
6
|
-
// adapters/vue/src/components/section-list/index.ts.
|
|
4
|
+
// lives below; this layer re-exposes the same surface under the SectionList name and delegates
|
|
5
|
+
// the handle to the inner VirtualizedSectionList.
|
|
7
6
|
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
// each prop unchanged (undefined included) and the default lands one layer down; double-applying
|
|
14
|
-
// here would fight VSL. Vue spreads $attrs to do this in one line — Angular has no attrs-spread, so
|
|
15
|
-
// every prop is forwarded as an explicit @Input binding, except the seven list-lifecycle events
|
|
7
|
+
// SectionList is a PURE FORWARDER: its public prop surface IS VirtualizedSectionList's (RN layers
|
|
8
|
+
// them one-for-one), and the SectionList-flavour defaults (stickySectionHeadersEnabled per
|
|
9
|
+
// Platform.OS, the section entry keyExtractor) already live INSIDE VirtualizedSectionList — double-
|
|
10
|
+
// applying them here would fight it. Angular has no attrs-spread (unlike Vue's $attrs), so every
|
|
11
|
+
// prop is forwarded as an explicit @Input binding, except the seven list-lifecycle events
|
|
16
12
|
// (endReached/startReached/refresh/accessibilityAction/accessibilityTap/magicTap/
|
|
17
13
|
// accessibilityEscape), which are real @Output() EventEmitters re-emitted via a listener binding.
|
|
18
14
|
//
|
|
19
|
-
// TEMPLATE FORWARDING — RE-STAMP, the same pattern FlatList's single-column branch
|
|
20
|
-
//
|
|
21
|
-
// VirtualizedSectionList's own @ContentChild resolve directives across
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
// templateRef + context through VListOutletDirective, exactly mirroring how VirtualizedSectionList
|
|
30
|
-
// itself re-stamps its own captured directives onto its inner VirtualizedList.
|
|
15
|
+
// TEMPLATE FORWARDING — RE-STAMP, the same pattern FlatList's single-column branch uses (see
|
|
16
|
+
// flat-list/index.ts). A bare `<ng-content></ng-content>` passthrough does NOT let
|
|
17
|
+
// VirtualizedSectionList's own @ContentChild resolve directives across a SECOND projection hop —
|
|
18
|
+
// Angular's content queries resolve only against what was projected directly onto the querying
|
|
19
|
+
// component's OWN tag. So SectionList captures the app's `<ng-template vSectionItem>` /
|
|
20
|
+
// vSectionHeader / vSectionFooter / vSectionSeparator / vListHeader / vListFooter / vListEmpty /
|
|
21
|
+
// vListSeparator with its OWN @ContentChild (a single, direct hop — always resolves) and
|
|
22
|
+
// re-authors equivalent `<ng-template>`s on `<VirtualizedSectionList>`, forwarding the captured
|
|
23
|
+
// templateRef + context through VListOutletDirective — mirroring how VirtualizedSectionList itself
|
|
24
|
+
// re-stamps its own captured directives onto its inner VirtualizedList.
|
|
31
25
|
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild, inject, } from '@angular/core';
|
|
32
26
|
import {} from '@symbiote-native/engine';
|
|
33
27
|
import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, } from '../virtualized-list';
|
|
34
28
|
import { VListOutletDirective } from '../virtualized-list/directives';
|
|
35
|
-
import { stableAnchorStyle } from '../../primitives';
|
|
29
|
+
import { stableAnchorStyle, SymbioteStyleInputDirective, } from '../../primitives';
|
|
36
30
|
import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, VirtualizedSectionList, } from '../virtualized-section-list';
|
|
37
31
|
import * as i0 from "@angular/core";
|
|
32
|
+
import * as i1 from "../../primitives/shared";
|
|
38
33
|
// Angular cannot preserve VListSeparatorDirective<ItemT>'s type parameter across this re-stamp
|
|
39
34
|
// reuse (the directive is matched structurally in SectionList's own template with no explicit type
|
|
40
35
|
// argument to pin ItemT to, so `let-leadingItem`/`let-trailingItem` arrive typed `unknown`) — even
|
|
@@ -53,6 +48,9 @@ export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListS
|
|
|
53
48
|
export class SectionList {
|
|
54
49
|
sections;
|
|
55
50
|
keyExtractor;
|
|
51
|
+
// Passed through FLAT (sections array + flat entry index); VirtualizedSectionList owns the
|
|
52
|
+
// sections-vs-entries wrapper - see its entryItemLayout getter.
|
|
53
|
+
getItemLayout;
|
|
56
54
|
stickySectionHeadersEnabled;
|
|
57
55
|
extraData;
|
|
58
56
|
endReached = new EventEmitter();
|
|
@@ -81,18 +79,14 @@ export class SectionList {
|
|
|
81
79
|
contentContainerStyle;
|
|
82
80
|
testID;
|
|
83
81
|
nativeID;
|
|
84
|
-
// Bound to
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
// style` — defeats VirtualizedList's `ngDoCheck` dedup gate and free-runs change detection
|
|
93
|
-
// forever (the exact bug `stableAnchorStyle` exists to prevent, see its doc comment and the
|
|
94
|
-
// `flat-list-array-style.test.ts` regression it fixes). `cachedResolvedStyle` is the getter's own
|
|
95
|
-
// persisted "previous" value across reads, since a getter has no natural field to compare against.
|
|
82
|
+
// Bound to `[style]="resolvedStyle"`, which Angular compiles to ɵɵstyleMap — it only
|
|
83
|
+
// understands a flat object, never an array (RN's `style={[a, b]}` idiom crashes deep inside
|
|
84
|
+
// Angular's styling engine), so this flattens `style` first, merging in this component's OWN
|
|
85
|
+
// anchor's class-derived style via anchorHostStyle (`elementRef` here is SectionList's own
|
|
86
|
+
// host, not `list`'s inner VirtualizedSectionList). A plain `flattenStyle([...])` would
|
|
87
|
+
// allocate a fresh object on every CD check, defeating VirtualizedList's `ngDoCheck` dedup gate
|
|
88
|
+
// and free-running change detection forever — the bug `stableAnchorStyle` exists to prevent
|
|
89
|
+
// (see its doc comment). `cachedResolvedStyle` is the getter's own persisted "previous" value.
|
|
96
90
|
cachedResolvedStyle;
|
|
97
91
|
get resolvedStyle() {
|
|
98
92
|
this.cachedResolvedStyle = stableAnchorStyle(this.elementRef, this.style, this.cachedResolvedStyle);
|
|
@@ -186,11 +180,12 @@ export class SectionList {
|
|
|
186
180
|
recordInteraction() {
|
|
187
181
|
this.list?.recordInteraction();
|
|
188
182
|
}
|
|
189
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
190
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
183
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SectionList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
184
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SectionList, isStandalone: true, selector: "SectionList", inputs: { sections: "sections", keyExtractor: "keyExtractor", getItemLayout: "getItemLayout", stickySectionHeadersEnabled: "stickySectionHeadersEnabled", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", 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", style: "style", contentContainerStyle: "contentContainerStyle", 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", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaLive: "ariaLive", ariaHidden: "ariaHidden", ariaBusy: "ariaBusy", ariaChecked: "ariaChecked", ariaDisabled: "ariaDisabled", ariaExpanded: "ariaExpanded", ariaSelected: "ariaSelected", ariaModal: "ariaModal", ariaValueMax: "ariaValueMax", ariaValueMin: "ariaValueMin", ariaValueNow: "ariaValueNow", ariaValueText: "ariaValueText" }, outputs: { endReached: "endReached", startReached: "startReached", refresh: "refresh", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, 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: VirtualizedSectionList, descendants: true }], hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
|
|
191
185
|
<VirtualizedSectionList
|
|
192
186
|
[sections]="sections"
|
|
193
187
|
[keyExtractor]="keyExtractor"
|
|
188
|
+
[getItemLayout]="getItemLayout"
|
|
194
189
|
[stickySectionHeadersEnabled]="stickySectionHeadersEnabled"
|
|
195
190
|
[extraData]="extraData"
|
|
196
191
|
(endReached)="endReached.emit($event)"
|
|
@@ -235,8 +230,12 @@ export class SectionList {
|
|
|
235
230
|
[accessibilityElementsHidden]="accessibilityElementsHidden"
|
|
236
231
|
[accessibilityIgnoresInvertColors]="accessibilityIgnoresInvertColors"
|
|
237
232
|
[accessibilityLanguage]="accessibilityLanguage"
|
|
238
|
-
[accessibilityRespondsToUserInteraction]="
|
|
239
|
-
|
|
233
|
+
[accessibilityRespondsToUserInteraction]="
|
|
234
|
+
accessibilityRespondsToUserInteraction
|
|
235
|
+
"
|
|
236
|
+
[accessibilityShowsLargeContentViewer]="
|
|
237
|
+
accessibilityShowsLargeContentViewer
|
|
238
|
+
"
|
|
240
239
|
[accessibilityLargeContentTitle]="accessibilityLargeContentTitle"
|
|
241
240
|
(accessibilityAction)="accessibilityAction.emit($event)"
|
|
242
241
|
(accessibilityTap)="accessibilityTap.emit($event)"
|
|
@@ -267,7 +266,13 @@ export class SectionList {
|
|
|
267
266
|
>
|
|
268
267
|
<ng-container
|
|
269
268
|
[vListOutlet]="sectionItemDir?.templateRef"
|
|
270
|
-
[vListOutletContext]="{
|
|
269
|
+
[vListOutletContext]="{
|
|
270
|
+
$implicit: item,
|
|
271
|
+
item,
|
|
272
|
+
index,
|
|
273
|
+
section,
|
|
274
|
+
separators,
|
|
275
|
+
}"
|
|
271
276
|
></ng-container>
|
|
272
277
|
</ng-template>
|
|
273
278
|
@if (sectionHeaderDir !== undefined) {
|
|
@@ -288,17 +293,23 @@ export class SectionList {
|
|
|
288
293
|
}
|
|
289
294
|
@if (sectionSeparatorDir !== undefined) {
|
|
290
295
|
<ng-template vSectionSeparator>
|
|
291
|
-
<ng-container
|
|
296
|
+
<ng-container
|
|
297
|
+
[vListOutlet]="sectionSeparatorDir.templateRef"
|
|
298
|
+
></ng-container>
|
|
292
299
|
</ng-template>
|
|
293
300
|
}
|
|
294
301
|
@if (listHeaderDir !== undefined) {
|
|
295
302
|
<ng-template vListHeader>
|
|
296
|
-
<ng-container
|
|
303
|
+
<ng-container
|
|
304
|
+
[vListOutlet]="listHeaderDir.templateRef"
|
|
305
|
+
></ng-container>
|
|
297
306
|
</ng-template>
|
|
298
307
|
}
|
|
299
308
|
@if (listFooterDir !== undefined) {
|
|
300
309
|
<ng-template vListFooter>
|
|
301
|
-
<ng-container
|
|
310
|
+
<ng-container
|
|
311
|
+
[vListOutlet]="listFooterDir.templateRef"
|
|
312
|
+
></ng-container>
|
|
302
313
|
</ng-template>
|
|
303
314
|
}
|
|
304
315
|
@if (listEmptyDir !== undefined) {
|
|
@@ -315,18 +326,23 @@ export class SectionList {
|
|
|
315
326
|
>
|
|
316
327
|
<ng-container
|
|
317
328
|
[vListOutlet]="itemSeparatorDir.templateRef"
|
|
318
|
-
[vListOutletContext]="
|
|
329
|
+
[vListOutletContext]="
|
|
330
|
+
itemSeparatorContext(highlighted, leadingItem, trailingItem)
|
|
331
|
+
"
|
|
319
332
|
></ng-container>
|
|
320
333
|
</ng-template>
|
|
321
334
|
}
|
|
322
335
|
</VirtualizedSectionList>
|
|
323
|
-
`, isInline: true, dependencies: [{ kind: "component", type: VirtualizedSectionList, selector: "VirtualizedSectionList", inputs: ["sections", "keyExtractor", "stickySectionHeadersEnabled", "extraData", "onEndReachedThreshold", "onStartReachedThreshold", "refreshing", "progressViewOffset", "refreshRequested", "initialNumToRender", "initialScrollIndex", "maxToRenderPerBatch", "updateCellsBatchingPeriod", "windowSize", "inverted", "maintainVisibleContentPosition", "onScroll", "onScrollBeginDrag", "onScrollEndDrag", "onMomentumScrollBegin", "onMomentumScrollEnd", "scrollEventThrottle", "keyboardShouldPersistTaps", "keyboardDismissMode", "style", "contentContainerStyle", "testID", "nativeID", "accessible", "accessibilityLabel", "accessibilityHint", "accessibilityRole", "accessibilityState", "accessibilityValue", "accessibilityActions", "accessibilityLabelledBy", "importantForAccessibility", "accessibilityLiveRegion", "screenReaderFocusable", "accessibilityViewIsModal", "accessibilityElementsHidden", "accessibilityIgnoresInvertColors", "accessibilityLanguage", "accessibilityRespondsToUserInteraction", "accessibilityShowsLargeContentViewer", "accessibilityLargeContentTitle", "role", "ariaLabel", "ariaLabelledBy", "ariaLive", "ariaHidden", "ariaBusy", "ariaChecked", "ariaDisabled", "ariaExpanded", "ariaSelected", "ariaModal", "ariaValueMax", "ariaValueMin", "ariaValueNow", "ariaValueText"], outputs: ["endReached", "startReached", "refresh", "accessibilityAction", "accessibilityTap", "magicTap", "accessibilityEscape"] }, { kind: "directive", type: VSectionItemDirective, selector: "[vSectionItem]" }, { kind: "directive", type: VSectionHeaderDirective, selector: "[vSectionHeader]" }, { kind: "directive", type: VSectionFooterDirective, selector: "[vSectionFooter]" }, { kind: "directive", type: VSectionSeparatorDirective, selector: "[vSectionSeparator]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
336
|
+
`, isInline: true, dependencies: [{ kind: "component", type: VirtualizedSectionList, selector: "VirtualizedSectionList", inputs: ["sections", "keyExtractor", "getItemLayout", "stickySectionHeadersEnabled", "extraData", "onEndReachedThreshold", "onStartReachedThreshold", "refreshing", "progressViewOffset", "refreshRequested", "initialNumToRender", "initialScrollIndex", "maxToRenderPerBatch", "updateCellsBatchingPeriod", "windowSize", "inverted", "maintainVisibleContentPosition", "onScroll", "onScrollBeginDrag", "onScrollEndDrag", "onMomentumScrollBegin", "onMomentumScrollEnd", "scrollEventThrottle", "keyboardShouldPersistTaps", "keyboardDismissMode", "style", "contentContainerStyle", "testID", "nativeID", "accessible", "accessibilityLabel", "accessibilityHint", "accessibilityRole", "accessibilityState", "accessibilityValue", "accessibilityActions", "accessibilityLabelledBy", "importantForAccessibility", "accessibilityLiveRegion", "screenReaderFocusable", "accessibilityViewIsModal", "accessibilityElementsHidden", "accessibilityIgnoresInvertColors", "accessibilityLanguage", "accessibilityRespondsToUserInteraction", "accessibilityShowsLargeContentViewer", "accessibilityLargeContentTitle", "role", "ariaLabel", "ariaLabelledBy", "ariaLive", "ariaHidden", "ariaBusy", "ariaChecked", "ariaDisabled", "ariaExpanded", "ariaSelected", "ariaModal", "ariaValueMax", "ariaValueMin", "ariaValueNow", "ariaValueText"], outputs: ["endReached", "startReached", "refresh", "accessibilityAction", "accessibilityTap", "magicTap", "accessibilityEscape"] }, { kind: "directive", type: VSectionItemDirective, selector: "[vSectionItem]" }, { kind: "directive", type: VSectionHeaderDirective, selector: "[vSectionHeader]" }, { kind: "directive", type: VSectionFooterDirective, selector: "[vSectionFooter]" }, { kind: "directive", type: VSectionSeparatorDirective, selector: "[vSectionSeparator]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
324
337
|
}
|
|
325
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SectionList, decorators: [{
|
|
326
339
|
type: Component,
|
|
327
340
|
args: [{
|
|
328
341
|
selector: 'SectionList',
|
|
329
342
|
standalone: true,
|
|
343
|
+
hostDirectives: [
|
|
344
|
+
{ directive: SymbioteStyleInputDirective, inputs: ['style'] },
|
|
345
|
+
],
|
|
330
346
|
imports: [
|
|
331
347
|
VirtualizedSectionList,
|
|
332
348
|
VSectionItemDirective,
|
|
@@ -344,6 +360,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
344
360
|
<VirtualizedSectionList
|
|
345
361
|
[sections]="sections"
|
|
346
362
|
[keyExtractor]="keyExtractor"
|
|
363
|
+
[getItemLayout]="getItemLayout"
|
|
347
364
|
[stickySectionHeadersEnabled]="stickySectionHeadersEnabled"
|
|
348
365
|
[extraData]="extraData"
|
|
349
366
|
(endReached)="endReached.emit($event)"
|
|
@@ -388,8 +405,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
388
405
|
[accessibilityElementsHidden]="accessibilityElementsHidden"
|
|
389
406
|
[accessibilityIgnoresInvertColors]="accessibilityIgnoresInvertColors"
|
|
390
407
|
[accessibilityLanguage]="accessibilityLanguage"
|
|
391
|
-
[accessibilityRespondsToUserInteraction]="
|
|
392
|
-
|
|
408
|
+
[accessibilityRespondsToUserInteraction]="
|
|
409
|
+
accessibilityRespondsToUserInteraction
|
|
410
|
+
"
|
|
411
|
+
[accessibilityShowsLargeContentViewer]="
|
|
412
|
+
accessibilityShowsLargeContentViewer
|
|
413
|
+
"
|
|
393
414
|
[accessibilityLargeContentTitle]="accessibilityLargeContentTitle"
|
|
394
415
|
(accessibilityAction)="accessibilityAction.emit($event)"
|
|
395
416
|
(accessibilityTap)="accessibilityTap.emit($event)"
|
|
@@ -420,7 +441,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
420
441
|
>
|
|
421
442
|
<ng-container
|
|
422
443
|
[vListOutlet]="sectionItemDir?.templateRef"
|
|
423
|
-
[vListOutletContext]="{
|
|
444
|
+
[vListOutletContext]="{
|
|
445
|
+
$implicit: item,
|
|
446
|
+
item,
|
|
447
|
+
index,
|
|
448
|
+
section,
|
|
449
|
+
separators,
|
|
450
|
+
}"
|
|
424
451
|
></ng-container>
|
|
425
452
|
</ng-template>
|
|
426
453
|
@if (sectionHeaderDir !== undefined) {
|
|
@@ -441,17 +468,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
441
468
|
}
|
|
442
469
|
@if (sectionSeparatorDir !== undefined) {
|
|
443
470
|
<ng-template vSectionSeparator>
|
|
444
|
-
<ng-container
|
|
471
|
+
<ng-container
|
|
472
|
+
[vListOutlet]="sectionSeparatorDir.templateRef"
|
|
473
|
+
></ng-container>
|
|
445
474
|
</ng-template>
|
|
446
475
|
}
|
|
447
476
|
@if (listHeaderDir !== undefined) {
|
|
448
477
|
<ng-template vListHeader>
|
|
449
|
-
<ng-container
|
|
478
|
+
<ng-container
|
|
479
|
+
[vListOutlet]="listHeaderDir.templateRef"
|
|
480
|
+
></ng-container>
|
|
450
481
|
</ng-template>
|
|
451
482
|
}
|
|
452
483
|
@if (listFooterDir !== undefined) {
|
|
453
484
|
<ng-template vListFooter>
|
|
454
|
-
<ng-container
|
|
485
|
+
<ng-container
|
|
486
|
+
[vListOutlet]="listFooterDir.templateRef"
|
|
487
|
+
></ng-container>
|
|
455
488
|
</ng-template>
|
|
456
489
|
}
|
|
457
490
|
@if (listEmptyDir !== undefined) {
|
|
@@ -468,7 +501,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
468
501
|
>
|
|
469
502
|
<ng-container
|
|
470
503
|
[vListOutlet]="itemSeparatorDir.templateRef"
|
|
471
|
-
[vListOutletContext]="
|
|
504
|
+
[vListOutletContext]="
|
|
505
|
+
itemSeparatorContext(highlighted, leadingItem, trailingItem)
|
|
506
|
+
"
|
|
472
507
|
></ng-container>
|
|
473
508
|
</ng-template>
|
|
474
509
|
}
|
|
@@ -480,6 +515,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
480
515
|
args: [{ required: true }]
|
|
481
516
|
}], keyExtractor: [{
|
|
482
517
|
type: Input
|
|
518
|
+
}], getItemLayout: [{
|
|
519
|
+
type: Input
|
|
483
520
|
}], stickySectionHeadersEnabled: [{
|
|
484
521
|
type: Input
|
|
485
522
|
}], extraData: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/section-list/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,4FAA4F;AAC5F,iGAAiG;AACjG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/section-list/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { type DoCheck } from '@angular/core';
|
|
1
2
|
import { SwitchBase } from './shared';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../primitives/shared";
|
|
3
5
|
export type { ISwitchProps, ISwitchTrackColor } from './shared';
|
|
4
|
-
export declare class Switch extends SwitchBase {
|
|
6
|
+
export declare class Switch extends SwitchBase implements DoCheck {
|
|
5
7
|
private readonly elementRef;
|
|
6
8
|
protected readonly platform: {
|
|
7
9
|
snapBackCommand: string;
|
|
@@ -14,7 +16,9 @@ export declare class Switch extends SwitchBase {
|
|
|
14
16
|
trackTintColor: string | undefined;
|
|
15
17
|
};
|
|
16
18
|
};
|
|
17
|
-
|
|
19
|
+
private readonly anchorStyle;
|
|
20
|
+
ngDoCheck(): void;
|
|
21
|
+
protected buildHostProps(): Record<string, unknown>;
|
|
18
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<Switch, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Switch, "Switch", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "trackColor": { "alias": "trackColor"; "required": false; }; "thumbColor": { "alias": "thumbColor"; "required": false; }; "ios_backgroundColor": { "alias": "ios_backgroundColor"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "role": { "alias": "role"; "required": false; }; "aria-label": { "alias": "aria-label"; "required": false; }; "aria-disabled": { "alias": "aria-disabled"; "required": false; }; "aria-checked": { "alias": "aria-checked"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, never, never, true,
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Switch, "Switch", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "trackColor": { "alias": "trackColor"; "required": false; }; "thumbColor": { "alias": "thumbColor"; "required": false; }; "ios_backgroundColor": { "alias": "ios_backgroundColor"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "role": { "alias": "role"; "required": false; }; "aria-label": { "alias": "aria-label"; "required": false; }; "aria-disabled": { "alias": "aria-disabled"; "required": false; }; "aria-checked": { "alias": "aria-checked"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, never, never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
|
|
20
24
|
}
|