@symbiote-native/angular 3.1.2 → 3.2.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/build/angular/accessibility-events.d.ts +12 -0
- package/build/angular/accessibility-events.js +28 -0
- package/build/angular/accessibility-events.js.map +1 -0
- package/build/angular/accessibility-inputs.d.ts +40 -0
- package/build/angular/accessibility-inputs.js +130 -0
- package/build/angular/accessibility-inputs.js.map +1 -0
- package/build/angular/bootstrap.d.ts +3 -1
- package/build/angular/bootstrap.js +4 -1
- package/build/angular/bootstrap.js.map +1 -1
- package/build/angular/components/flat-list/flat-list-template.d.ts +1 -0
- package/build/angular/components/flat-list/flat-list-template.js +158 -0
- package/build/angular/components/flat-list/flat-list-template.js.map +1 -0
- package/build/angular/components/flat-list/index.d.ts +6 -61
- package/build/angular/components/flat-list/index.js +26 -463
- package/build/angular/components/flat-list/index.js.map +1 -1
- package/build/angular/components/keyboard-avoiding-view/index.d.ts +4 -40
- package/build/angular/components/keyboard-avoiding-view/index.js +7 -131
- package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
- package/build/angular/components/modal/index.d.ts +5 -41
- package/build/angular/components/modal/index.js +8 -133
- package/build/angular/components/modal/index.js.map +1 -1
- package/build/angular/components/section-list/index.d.ts +4 -51
- package/build/angular/components/section-list/index.js +18 -335
- package/build/angular/components/section-list/index.js.map +1 -1
- package/build/angular/components/virtualized-list/cell-registry.d.ts +35 -0
- package/build/angular/components/virtualized-list/cell-registry.js +133 -0
- package/build/angular/components/virtualized-list/cell-registry.js.map +1 -0
- package/build/angular/components/virtualized-list/index.d.ts +18 -253
- package/build/angular/components/virtualized-list/index.js +112 -1178
- package/build/angular/components/virtualized-list/index.js.map +1 -1
- package/build/angular/components/virtualized-list/list-a11y-forward.d.ts +1 -0
- package/build/angular/components/virtualized-list/list-a11y-forward.js +42 -0
- package/build/angular/components/virtualized-list/list-a11y-forward.js.map +1 -0
- package/build/angular/components/virtualized-list/list-bags.d.ts +32 -0
- package/build/angular/components/virtualized-list/list-bags.js +120 -0
- package/build/angular/components/virtualized-list/list-bags.js.map +1 -0
- package/build/angular/components/virtualized-list/list-effects.d.ts +31 -0
- package/build/angular/components/virtualized-list/list-effects.js +83 -0
- package/build/angular/components/virtualized-list/list-effects.js.map +1 -0
- package/build/angular/components/virtualized-list/list-events.d.ts +17 -0
- package/build/angular/components/virtualized-list/list-events.js +34 -0
- package/build/angular/components/virtualized-list/list-events.js.map +1 -0
- package/build/angular/components/virtualized-list/list-handle.d.ts +35 -0
- package/build/angular/components/virtualized-list/list-handle.js +61 -0
- package/build/angular/components/virtualized-list/list-handle.js.map +1 -0
- package/build/angular/components/virtualized-list/list-inputs.d.ts +78 -0
- package/build/angular/components/virtualized-list/list-inputs.js +150 -0
- package/build/angular/components/virtualized-list/list-inputs.js.map +1 -0
- package/build/angular/components/virtualized-list/list-props.d.ts +58 -0
- package/build/angular/components/virtualized-list/list-props.js +3 -0
- package/build/angular/components/virtualized-list/list-props.js.map +1 -0
- package/build/angular/components/virtualized-list/list-styles.d.ts +23 -0
- package/build/angular/components/virtualized-list/list-styles.js +26 -0
- package/build/angular/components/virtualized-list/list-styles.js.map +1 -0
- package/build/angular/components/virtualized-list/list-template.d.ts +1 -0
- package/build/angular/components/virtualized-list/list-template.js +176 -0
- package/build/angular/components/virtualized-list/list-template.js.map +1 -0
- package/build/angular/components/virtualized-section-list/index.d.ts +13 -70
- package/build/angular/components/virtualized-section-list/index.js +22 -455
- package/build/angular/components/virtualized-section-list/index.js.map +1 -1
- package/build/angular/components/virtualized-section-list/section-list-template.d.ts +1 -0
- package/build/angular/components/virtualized-section-list/section-list-template.js +107 -0
- package/build/angular/components/virtualized-section-list/section-list-template.js.map +1 -0
- package/build/angular/finalization-registry.d.ts +4 -0
- package/build/angular/finalization-registry.js +17 -0
- package/build/angular/finalization-registry.js.map +1 -0
- package/build/angular/index.d.ts +5 -1
- package/build/angular/index.js +5 -1
- package/build/angular/index.js.map +1 -1
- package/build/angular/native-view-base.d.ts +19 -0
- package/build/angular/native-view-base.js +48 -0
- package/build/angular/native-view-base.js.map +1 -0
- package/build/angular/render/index.d.ts +2 -1
- package/build/angular/render/index.js +46 -73
- package/build/angular/render/index.js.map +1 -1
- package/build/angular/services/connect-watched-signal.d.ts +2 -0
- package/build/angular/services/connect-watched-signal.js +9 -0
- package/build/angular/services/connect-watched-signal.js.map +1 -0
- package/build/angular/services/create-event-value-hook.d.ts +3 -0
- package/build/angular/services/create-event-value-hook.js +17 -0
- package/build/angular/services/create-event-value-hook.js.map +1 -0
- package/build/angular/services/create-resource-hook.d.ts +7 -0
- package/build/angular/services/create-resource-hook.js +20 -0
- package/build/angular/services/create-resource-hook.js.map +1 -0
- package/build/angular/services/index.d.ts +4 -0
- package/build/angular/services/index.js +4 -0
- package/build/angular/services/index.js.map +1 -1
- package/build/angular/services/permissions-service-base.d.ts +14 -0
- package/build/angular/services/permissions-service-base.js +38 -0
- package/build/angular/services/permissions-service-base.js.map +1 -0
- package/package.json +6 -6
- package/src/accessibility-events.ts +13 -0
- package/src/accessibility-inputs.ts +89 -0
- package/src/bootstrap.ts +6 -2
- package/src/components/flat-list/flat-list-template.ts +159 -0
- package/src/components/flat-list/index.ts +30 -307
- package/src/components/keyboard-avoiding-view/index.ts +4 -78
- package/src/components/modal/index.ts +7 -80
- package/src/components/section-list/index.ts +21 -172
- package/src/components/virtualized-list/cell-registry.ts +199 -0
- package/src/components/virtualized-list/index.ts +145 -1181
- package/src/components/virtualized-list/list-a11y-forward.ts +42 -0
- package/src/components/virtualized-list/list-bags.ts +142 -0
- package/src/components/virtualized-list/list-effects.ts +116 -0
- package/src/components/virtualized-list/list-events.ts +31 -0
- package/src/components/virtualized-list/list-handle.ts +92 -0
- package/src/components/virtualized-list/list-inputs.ts +149 -0
- package/src/components/virtualized-list/list-props.ts +81 -0
- package/src/components/virtualized-list/list-styles.ts +62 -0
- package/src/components/virtualized-list/list-template.ts +175 -0
- package/src/components/virtualized-section-list/index.ts +40 -351
- package/src/components/virtualized-section-list/section-list-template.ts +108 -0
- package/src/finalization-registry.ts +18 -0
- package/src/index.ts +12 -1
- package/src/native-view-base.ts +51 -0
- package/src/render/index.ts +76 -77
- package/src/services/connect-watched-signal.ts +15 -0
- package/src/services/create-event-value-hook.ts +24 -0
- package/src/services/create-resource-hook.ts +32 -0
- package/src/services/index.ts +4 -0
- package/src/services/permissions-service-base.ts +46 -0
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { IAccessibilityProps, IAccessibilityStateValue, IAriaProps, IScrollViewHandle, ISection, IVirtualizedSectionListHandle } from '@symbiote-native/components';
|
|
1
|
+
import type { IScrollViewHandle, ISection, IVirtualizedSectionListHandle } from '@symbiote-native/components';
|
|
3
2
|
import { type IStyleProp, type ISymbioteEvent, type ISymbioteNode, type IViewStyle } from '@symbiote-native/engine';
|
|
4
3
|
import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, type IVListSeparatorContext } from '../virtualized-list';
|
|
4
|
+
import { ListEventsBase } from '../virtualized-list/list-events';
|
|
5
5
|
import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, type IVirtualizedSectionListProps } from '../virtualized-section-list';
|
|
6
|
-
import { type IGatedAccessibilityEvent } from '../../gate-demand';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
import * as i1 from "../../primitives/shared";
|
|
9
8
|
export type { ISection } from '@symbiote-native/components';
|
|
@@ -12,7 +11,7 @@ export { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective
|
|
|
12
11
|
export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, } from '../virtualized-list';
|
|
13
12
|
export type ISectionListProps<ItemT> = IVirtualizedSectionListProps<ItemT>;
|
|
14
13
|
export type ISectionListInputs<ItemT> = Omit<ISectionListProps<ItemT>, 'onEndReached' | 'onStartReached' | 'onRefresh' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
|
|
15
|
-
export declare class SectionList<ItemT = unknown> implements ISectionListInputs<ItemT>, IVirtualizedSectionListHandle {
|
|
14
|
+
export declare class SectionList<ItemT = unknown> extends ListEventsBase implements ISectionListInputs<ItemT>, IVirtualizedSectionListHandle {
|
|
16
15
|
sections: ReadonlyArray<ISection<ItemT>>;
|
|
17
16
|
keyExtractor?: (item: ItemT, index: number) => string;
|
|
18
17
|
getItemLayout?: (data: ReadonlyArray<ISection<ItemT>> | null, index: number) => {
|
|
@@ -22,15 +21,8 @@ export declare class SectionList<ItemT = unknown> implements ISectionListInputs<
|
|
|
22
21
|
};
|
|
23
22
|
stickySectionHeadersEnabled?: boolean;
|
|
24
23
|
extraData?: unknown;
|
|
25
|
-
readonly endReached: EventEmitter<{
|
|
26
|
-
distanceFromEnd: number;
|
|
27
|
-
}>;
|
|
28
24
|
onEndReachedThreshold?: number;
|
|
29
|
-
readonly startReached: EventEmitter<{
|
|
30
|
-
distanceFromStart: number;
|
|
31
|
-
}>;
|
|
32
25
|
onStartReachedThreshold?: number;
|
|
33
|
-
readonly refresh: EventEmitter<void>;
|
|
34
26
|
refreshing?: boolean | null;
|
|
35
27
|
progressViewOffset?: number;
|
|
36
28
|
initialNumToRender?: number;
|
|
@@ -59,45 +51,6 @@ export declare class SectionList<ItemT = unknown> implements ISectionListInputs<
|
|
|
59
51
|
nativeID?: string;
|
|
60
52
|
private cachedResolvedStyle;
|
|
61
53
|
get resolvedStyle(): IViewStyle;
|
|
62
|
-
accessible?: boolean;
|
|
63
|
-
accessibilityLabel?: string;
|
|
64
|
-
accessibilityHint?: string;
|
|
65
|
-
accessibilityRole?: IAccessibilityProps['accessibilityRole'];
|
|
66
|
-
accessibilityState?: IAccessibilityStateValue;
|
|
67
|
-
accessibilityValue?: IAccessibilityProps['accessibilityValue'];
|
|
68
|
-
accessibilityActions?: IAccessibilityProps['accessibilityActions'];
|
|
69
|
-
accessibilityLabelledBy?: string | string[];
|
|
70
|
-
importantForAccessibility?: IAccessibilityProps['importantForAccessibility'];
|
|
71
|
-
accessibilityLiveRegion?: IAccessibilityProps['accessibilityLiveRegion'];
|
|
72
|
-
screenReaderFocusable?: boolean;
|
|
73
|
-
accessibilityViewIsModal?: boolean;
|
|
74
|
-
accessibilityElementsHidden?: boolean;
|
|
75
|
-
accessibilityIgnoresInvertColors?: boolean;
|
|
76
|
-
accessibilityLanguage?: string;
|
|
77
|
-
accessibilityRespondsToUserInteraction?: boolean;
|
|
78
|
-
accessibilityShowsLargeContentViewer?: boolean;
|
|
79
|
-
accessibilityLargeContentTitle?: string;
|
|
80
|
-
readonly accessibilityAction: EventEmitter<ISymbioteEvent>;
|
|
81
|
-
readonly accessibilityTap: EventEmitter<ISymbioteEvent>;
|
|
82
|
-
readonly magicTap: EventEmitter<ISymbioteEvent>;
|
|
83
|
-
readonly accessibilityEscape: EventEmitter<ISymbioteEvent>;
|
|
84
|
-
private readonly gateDemandAbove;
|
|
85
|
-
wantsGate(name: IGatedAccessibilityEvent): boolean;
|
|
86
|
-
role?: IAriaProps['role'];
|
|
87
|
-
ariaLabel?: string;
|
|
88
|
-
ariaLabelledBy?: string;
|
|
89
|
-
ariaLive?: IAriaProps['aria-live'];
|
|
90
|
-
ariaHidden?: boolean;
|
|
91
|
-
ariaBusy?: boolean;
|
|
92
|
-
ariaChecked?: boolean | 'mixed';
|
|
93
|
-
ariaDisabled?: boolean;
|
|
94
|
-
ariaExpanded?: boolean;
|
|
95
|
-
ariaSelected?: boolean;
|
|
96
|
-
ariaModal?: boolean;
|
|
97
|
-
ariaValueMax?: number;
|
|
98
|
-
ariaValueMin?: number;
|
|
99
|
-
ariaValueNow?: number;
|
|
100
|
-
ariaValueText?: string;
|
|
101
54
|
sectionItemDir?: VSectionItemDirective<ItemT>;
|
|
102
55
|
sectionHeaderDir?: VSectionHeaderDirective<ItemT>;
|
|
103
56
|
sectionFooterDir?: VSectionFooterDirective<ItemT>;
|
|
@@ -123,5 +76,5 @@ export declare class SectionList<ItemT = unknown> implements ISectionListInputs<
|
|
|
123
76
|
getScrollNode(): ISymbioteNode | null;
|
|
124
77
|
recordInteraction(): void;
|
|
125
78
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionList<any>, never>;
|
|
126
|
-
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; }; "removeClippedSubviews": { "alias": "removeClippedSubviews"; "required": false; }; "nestedScrollEnabled": { "alias": "nestedScrollEnabled"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; };
|
|
79
|
+
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; }; "removeClippedSubviews": { "alias": "removeClippedSubviews"; "required": false; }; "nestedScrollEnabled": { "alias": "nestedScrollEnabled"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; }, {}, ["sectionItemDir", "sectionHeaderDir", "sectionFooterDir", "sectionSeparatorDir", "listHeaderDir", "listFooterDir", "listEmptyDir", "itemSeparatorDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
|
|
127
80
|
}
|
|
@@ -1,79 +1,37 @@
|
|
|
1
|
-
// SectionList,
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
// the handle to the inner VirtualizedSectionList.
|
|
6
|
-
//
|
|
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
|
|
12
|
-
// (endReached/startReached/refresh/accessibilityAction/accessibilityTap/magicTap/
|
|
13
|
-
// accessibilityEscape), which are real @Output() EventEmitters re-emitted via a listener binding.
|
|
14
|
-
//
|
|
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.
|
|
25
|
-
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild, inject, } from '@angular/core';
|
|
1
|
+
// SectionList, a pure forwarder over VirtualizedSectionList, mirroring RN's layering
|
|
2
|
+
// A content query does not resolve across a second `<ng-content>` hop, so the app's templates are
|
|
3
|
+
// captured here and re-stamped onto the inner list
|
|
4
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, Input, ViewChild, inject, } from '@angular/core';
|
|
26
5
|
import {} from '@symbiote-native/engine';
|
|
27
6
|
import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, } from '../virtualized-list';
|
|
28
7
|
import { VListOutletDirective } from '../virtualized-list/directives';
|
|
8
|
+
import { LIST_ACCESSIBILITY_FORWARD } from '../virtualized-list/list-a11y-forward';
|
|
9
|
+
import { ListEventsBase } from '../virtualized-list/list-events';
|
|
10
|
+
import { provideGateDemand } from '../../gate-demand';
|
|
29
11
|
import { stableAnchorStyle, SymbioteStyleInputDirective, } from '../../primitives';
|
|
30
12
|
import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, VirtualizedSectionList, } from '../virtualized-section-list';
|
|
31
|
-
import { gateWanted, injectGateDemandAbove, provideGateDemand, } from '../../gate-demand';
|
|
32
13
|
import * as i0 from "@angular/core";
|
|
33
14
|
import * as i1 from "../../primitives/shared";
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
// argument to pin ItemT to, so `let-leadingItem`/`let-trailingItem` arrive typed `unknown`) — even
|
|
37
|
-
// though VirtualizedSectionList's own unwrap always supplies a real ItemT value. The narrowest
|
|
38
|
-
// possible I/O-boundary cast for that gap; not a general-purpose unknown-to-T narrowing (mirrors
|
|
39
|
-
// flat-list/index.ts's identical asItem helper).
|
|
15
|
+
// The separator context arrives typed `unknown`, the directive is matched structurally in the
|
|
16
|
+
// template with no type argument to pin the item type. The narrowest cast for that gap
|
|
40
17
|
function asItem(value) {
|
|
41
18
|
return value;
|
|
42
19
|
}
|
|
43
|
-
// Re-
|
|
44
|
-
// from '@symbiote-native/angular' gets the full `<ng-template vSection*>` / `vList*` authoring surface
|
|
45
|
-
// alongside SectionList (mirrors how virtualized-section-list/index re-exports the section ones and
|
|
46
|
-
// FlatList re-exports the list-level ones).
|
|
20
|
+
// Re-exported so app code gets the whole `vSection*` and `vList*` authoring surface from here
|
|
47
21
|
export { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from '../virtualized-section-list';
|
|
48
22
|
export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, } from '../virtualized-list';
|
|
49
|
-
export class SectionList {
|
|
23
|
+
export class SectionList extends ListEventsBase {
|
|
50
24
|
constructor() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.refresh = new EventEmitter();
|
|
54
|
-
this.accessibilityAction = new EventEmitter();
|
|
55
|
-
this.accessibilityTap = new EventEmitter();
|
|
56
|
-
this.magicTap = new EventEmitter();
|
|
57
|
-
this.accessibilityEscape = new EventEmitter();
|
|
58
|
-
// This wrapper binds the four gated accessibility events on the component it renders, which
|
|
59
|
-
// Angular forces to be unconditional and which would light that component's gates on every
|
|
60
|
-
// instance. It answers for them instead — see `gate-demand.ts`.
|
|
61
|
-
this.gateDemandAbove = injectGateDemandAbove();
|
|
62
|
-
// This component's OWN host — the non-painting anchor `class="..."` at the use site resolves
|
|
63
|
-
// onto (see anchorHostStyle's doc comment) — NOT `list` above, which targets the real inner
|
|
64
|
-
// `<VirtualizedSectionList>` one level down (itself its own separate anchor host).
|
|
25
|
+
super(...arguments);
|
|
26
|
+
// This component's own host, the anchor `class="..."` resolves onto, not the inner list's
|
|
65
27
|
this.elementRef = inject(ElementRef);
|
|
66
28
|
}
|
|
67
29
|
get resolvedStyle() {
|
|
68
30
|
this.cachedResolvedStyle = stableAnchorStyle(this.elementRef, this.style, this.cachedResolvedStyle);
|
|
69
31
|
return this.cachedResolvedStyle;
|
|
70
32
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
// The item separator context: leadingItem/trailingItem arrive `unknown` from the template's `let`
|
|
75
|
-
// bindings (see the asItem boundary comment above), already-unwrapped real items (no envelope to
|
|
76
|
-
// narrow through, unlike a section header/footer entry).
|
|
33
|
+
// The leading and trailing items arrive `unknown` from the template's `let` bindings, already
|
|
34
|
+
// unwrapped to real items
|
|
77
35
|
itemSeparatorContext(highlighted, leadingItem, trailingItem) {
|
|
78
36
|
const isHighlighted = highlighted === true;
|
|
79
37
|
return {
|
|
@@ -83,7 +41,6 @@ export class SectionList {
|
|
|
83
41
|
trailingItem: asItem(trailingItem),
|
|
84
42
|
};
|
|
85
43
|
}
|
|
86
|
-
// ---- imperative handle (the shared IVirtualizedSectionListHandle surface) — delegates down ----
|
|
87
44
|
scrollToLocation(params) {
|
|
88
45
|
this.list?.scrollToLocation(params);
|
|
89
46
|
}
|
|
@@ -105,162 +62,8 @@ export class SectionList {
|
|
|
105
62
|
recordInteraction() {
|
|
106
63
|
this.list?.recordInteraction();
|
|
107
64
|
}
|
|
108
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SectionList, deps:
|
|
109
|
-
static { this.ɵ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", removeClippedSubviews: "removeClippedSubviews", nestedScrollEnabled: "nestedScrollEnabled", 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: `
|
|
110
|
-
<VirtualizedSectionList
|
|
111
|
-
[sections]="sections"
|
|
112
|
-
[keyExtractor]="keyExtractor"
|
|
113
|
-
[getItemLayout]="getItemLayout"
|
|
114
|
-
[stickySectionHeadersEnabled]="stickySectionHeadersEnabled"
|
|
115
|
-
[extraData]="extraData"
|
|
116
|
-
(endReached)="endReached.emit($event)"
|
|
117
|
-
[onEndReachedThreshold]="onEndReachedThreshold"
|
|
118
|
-
(startReached)="startReached.emit($event)"
|
|
119
|
-
[onStartReachedThreshold]="onStartReachedThreshold"
|
|
120
|
-
(refresh)="refresh.emit()"
|
|
121
|
-
[refreshRequested]="refresh.observed"
|
|
122
|
-
[refreshing]="refreshing"
|
|
123
|
-
[progressViewOffset]="progressViewOffset"
|
|
124
|
-
[initialNumToRender]="initialNumToRender"
|
|
125
|
-
[initialScrollIndex]="initialScrollIndex"
|
|
126
|
-
[maxToRenderPerBatch]="maxToRenderPerBatch"
|
|
127
|
-
[updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
|
|
128
|
-
[windowSize]="windowSize"
|
|
129
|
-
[inverted]="inverted"
|
|
130
|
-
[maintainVisibleContentPosition]="maintainVisibleContentPosition"
|
|
131
|
-
[onScroll]="onScroll"
|
|
132
|
-
[onScrollBeginDrag]="onScrollBeginDrag"
|
|
133
|
-
[onScrollEndDrag]="onScrollEndDrag"
|
|
134
|
-
[onMomentumScrollBegin]="onMomentumScrollBegin"
|
|
135
|
-
[onMomentumScrollEnd]="onMomentumScrollEnd"
|
|
136
|
-
[scrollEventThrottle]="scrollEventThrottle"
|
|
137
|
-
[keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
|
|
138
|
-
[keyboardDismissMode]="keyboardDismissMode"
|
|
139
|
-
[removeClippedSubviews]="removeClippedSubviews"
|
|
140
|
-
[nestedScrollEnabled]="nestedScrollEnabled"
|
|
141
|
-
[style]="resolvedStyle"
|
|
142
|
-
[contentContainerStyle]="contentContainerStyle"
|
|
143
|
-
[testID]="testID"
|
|
144
|
-
[nativeID]="nativeID"
|
|
145
|
-
[accessible]="accessible"
|
|
146
|
-
[accessibilityLabel]="accessibilityLabel"
|
|
147
|
-
[accessibilityHint]="accessibilityHint"
|
|
148
|
-
[accessibilityRole]="accessibilityRole"
|
|
149
|
-
[accessibilityState]="accessibilityState"
|
|
150
|
-
[accessibilityValue]="accessibilityValue"
|
|
151
|
-
[accessibilityActions]="accessibilityActions"
|
|
152
|
-
[accessibilityLabelledBy]="accessibilityLabelledBy"
|
|
153
|
-
[importantForAccessibility]="importantForAccessibility"
|
|
154
|
-
[accessibilityLiveRegion]="accessibilityLiveRegion"
|
|
155
|
-
[screenReaderFocusable]="screenReaderFocusable"
|
|
156
|
-
[accessibilityViewIsModal]="accessibilityViewIsModal"
|
|
157
|
-
[accessibilityElementsHidden]="accessibilityElementsHidden"
|
|
158
|
-
[accessibilityIgnoresInvertColors]="accessibilityIgnoresInvertColors"
|
|
159
|
-
[accessibilityLanguage]="accessibilityLanguage"
|
|
160
|
-
[accessibilityRespondsToUserInteraction]="
|
|
161
|
-
accessibilityRespondsToUserInteraction
|
|
162
|
-
"
|
|
163
|
-
[accessibilityShowsLargeContentViewer]="
|
|
164
|
-
accessibilityShowsLargeContentViewer
|
|
165
|
-
"
|
|
166
|
-
[accessibilityLargeContentTitle]="accessibilityLargeContentTitle"
|
|
167
|
-
(accessibilityAction)="accessibilityAction.emit($event)"
|
|
168
|
-
(accessibilityTap)="accessibilityTap.emit($event)"
|
|
169
|
-
(magicTap)="magicTap.emit($event)"
|
|
170
|
-
(accessibilityEscape)="accessibilityEscape.emit($event)"
|
|
171
|
-
[role]="role"
|
|
172
|
-
[ariaLabel]="ariaLabel"
|
|
173
|
-
[ariaLabelledBy]="ariaLabelledBy"
|
|
174
|
-
[ariaLive]="ariaLive"
|
|
175
|
-
[ariaHidden]="ariaHidden"
|
|
176
|
-
[ariaBusy]="ariaBusy"
|
|
177
|
-
[ariaChecked]="ariaChecked"
|
|
178
|
-
[ariaDisabled]="ariaDisabled"
|
|
179
|
-
[ariaExpanded]="ariaExpanded"
|
|
180
|
-
[ariaSelected]="ariaSelected"
|
|
181
|
-
[ariaModal]="ariaModal"
|
|
182
|
-
[ariaValueMax]="ariaValueMax"
|
|
183
|
-
[ariaValueMin]="ariaValueMin"
|
|
184
|
-
[ariaValueNow]="ariaValueNow"
|
|
185
|
-
[ariaValueText]="ariaValueText"
|
|
186
|
-
>
|
|
187
|
-
<ng-template
|
|
188
|
-
vSectionItem
|
|
189
|
-
let-item
|
|
190
|
-
let-index="index"
|
|
191
|
-
let-section="section"
|
|
192
|
-
let-separators="separators"
|
|
193
|
-
>
|
|
194
|
-
<ng-container
|
|
195
|
-
[vListOutlet]="sectionItemDir?.templateRef"
|
|
196
|
-
[vListOutletContext]="{
|
|
197
|
-
$implicit: item,
|
|
198
|
-
item,
|
|
199
|
-
index,
|
|
200
|
-
section,
|
|
201
|
-
separators,
|
|
202
|
-
}"
|
|
203
|
-
></ng-container>
|
|
204
|
-
</ng-template>
|
|
205
|
-
@if (sectionHeaderDir !== undefined) {
|
|
206
|
-
<ng-template vSectionHeader let-section>
|
|
207
|
-
<ng-container
|
|
208
|
-
[vListOutlet]="sectionHeaderDir.templateRef"
|
|
209
|
-
[vListOutletContext]="{ $implicit: section, section }"
|
|
210
|
-
></ng-container>
|
|
211
|
-
</ng-template>
|
|
212
|
-
}
|
|
213
|
-
@if (sectionFooterDir !== undefined) {
|
|
214
|
-
<ng-template vSectionFooter let-section>
|
|
215
|
-
<ng-container
|
|
216
|
-
[vListOutlet]="sectionFooterDir.templateRef"
|
|
217
|
-
[vListOutletContext]="{ $implicit: section, section }"
|
|
218
|
-
></ng-container>
|
|
219
|
-
</ng-template>
|
|
220
|
-
}
|
|
221
|
-
@if (sectionSeparatorDir !== undefined) {
|
|
222
|
-
<ng-template vSectionSeparator>
|
|
223
|
-
<ng-container
|
|
224
|
-
[vListOutlet]="sectionSeparatorDir.templateRef"
|
|
225
|
-
></ng-container>
|
|
226
|
-
</ng-template>
|
|
227
|
-
}
|
|
228
|
-
@if (listHeaderDir !== undefined) {
|
|
229
|
-
<ng-template vListHeader>
|
|
230
|
-
<ng-container
|
|
231
|
-
[vListOutlet]="listHeaderDir.templateRef"
|
|
232
|
-
></ng-container>
|
|
233
|
-
</ng-template>
|
|
234
|
-
}
|
|
235
|
-
@if (listFooterDir !== undefined) {
|
|
236
|
-
<ng-template vListFooter>
|
|
237
|
-
<ng-container
|
|
238
|
-
[vListOutlet]="listFooterDir.templateRef"
|
|
239
|
-
></ng-container>
|
|
240
|
-
</ng-template>
|
|
241
|
-
}
|
|
242
|
-
@if (listEmptyDir !== undefined) {
|
|
243
|
-
<ng-template vListEmpty>
|
|
244
|
-
<ng-container [vListOutlet]="listEmptyDir.templateRef"></ng-container>
|
|
245
|
-
</ng-template>
|
|
246
|
-
}
|
|
247
|
-
@if (itemSeparatorDir !== undefined) {
|
|
248
|
-
<ng-template
|
|
249
|
-
vListSeparator
|
|
250
|
-
let-highlighted="highlighted"
|
|
251
|
-
let-leadingItem="leadingItem"
|
|
252
|
-
let-trailingItem="trailingItem"
|
|
253
|
-
>
|
|
254
|
-
<ng-container
|
|
255
|
-
[vListOutlet]="itemSeparatorDir.templateRef"
|
|
256
|
-
[vListOutletContext]="
|
|
257
|
-
itemSeparatorContext(highlighted, leadingItem, trailingItem)
|
|
258
|
-
"
|
|
259
|
-
></ng-container>
|
|
260
|
-
</ng-template>
|
|
261
|
-
}
|
|
262
|
-
</VirtualizedSectionList>
|
|
263
|
-
`, 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", "removeClippedSubviews", "nestedScrollEnabled", "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"] }], viewProviders: [provideGateDemand(() => SectionList)], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SectionList, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵ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", removeClippedSubviews: "removeClippedSubviews", nestedScrollEnabled: "nestedScrollEnabled", style: "style", contentContainerStyle: "contentContainerStyle", testID: "testID", nativeID: "nativeID" }, queries: [{ propertyName: "sectionItemDir", first: true, predicate: VSectionItemDirective, descendants: true }, { propertyName: "sectionHeaderDir", first: true, predicate: VSectionHeaderDirective, descendants: true }, { propertyName: "sectionFooterDir", first: true, predicate: VSectionFooterDirective, descendants: true }, { propertyName: "sectionSeparatorDir", first: true, predicate: VSectionSeparatorDirective, descendants: true }, { propertyName: "listHeaderDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "listFooterDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "listEmptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "itemSeparatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "list", first: true, predicate: VirtualizedSectionList, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: "\n <VirtualizedSectionList\n [sections]=\"sections\"\n [keyExtractor]=\"keyExtractor\"\n [getItemLayout]=\"getItemLayout\"\n [stickySectionHeadersEnabled]=\"stickySectionHeadersEnabled\"\n [extraData]=\"extraData\"\n (endReached)=\"endReached.emit($event)\"\n [onEndReachedThreshold]=\"onEndReachedThreshold\"\n (startReached)=\"startReached.emit($event)\"\n [onStartReachedThreshold]=\"onStartReachedThreshold\"\n (refresh)=\"refresh.emit()\"\n [refreshRequested]=\"refresh.observed\"\n [refreshing]=\"refreshing\"\n [progressViewOffset]=\"progressViewOffset\"\n [initialNumToRender]=\"initialNumToRender\"\n [initialScrollIndex]=\"initialScrollIndex\"\n [maxToRenderPerBatch]=\"maxToRenderPerBatch\"\n [updateCellsBatchingPeriod]=\"updateCellsBatchingPeriod\"\n [windowSize]=\"windowSize\"\n [inverted]=\"inverted\"\n [maintainVisibleContentPosition]=\"maintainVisibleContentPosition\"\n [onScroll]=\"onScroll\"\n [onScrollBeginDrag]=\"onScrollBeginDrag\"\n [onScrollEndDrag]=\"onScrollEndDrag\"\n [onMomentumScrollBegin]=\"onMomentumScrollBegin\"\n [onMomentumScrollEnd]=\"onMomentumScrollEnd\"\n [scrollEventThrottle]=\"scrollEventThrottle\"\n [keyboardShouldPersistTaps]=\"keyboardShouldPersistTaps\"\n [keyboardDismissMode]=\"keyboardDismissMode\"\n [removeClippedSubviews]=\"removeClippedSubviews\"\n [nestedScrollEnabled]=\"nestedScrollEnabled\"\n [style]=\"resolvedStyle\"\n [contentContainerStyle]=\"contentContainerStyle\"\n [testID]=\"testID\"\n [nativeID]=\"nativeID\"\n \n [accessible]=\"accessible\"\n [accessibilityLabel]=\"accessibilityLabel\"\n [accessibilityHint]=\"accessibilityHint\"\n [accessibilityRole]=\"accessibilityRole\"\n [accessibilityState]=\"accessibilityState\"\n [accessibilityValue]=\"accessibilityValue\"\n [accessibilityActions]=\"accessibilityActions\"\n [accessibilityLabelledBy]=\"accessibilityLabelledBy\"\n [importantForAccessibility]=\"importantForAccessibility\"\n [accessibilityLiveRegion]=\"accessibilityLiveRegion\"\n [screenReaderFocusable]=\"screenReaderFocusable\"\n [accessibilityViewIsModal]=\"accessibilityViewIsModal\"\n [accessibilityElementsHidden]=\"accessibilityElementsHidden\"\n [accessibilityIgnoresInvertColors]=\"accessibilityIgnoresInvertColors\"\n [accessibilityLanguage]=\"accessibilityLanguage\"\n [accessibilityRespondsToUserInteraction]=\"accessibilityRespondsToUserInteraction\"\n [accessibilityShowsLargeContentViewer]=\"accessibilityShowsLargeContentViewer\"\n [accessibilityLargeContentTitle]=\"accessibilityLargeContentTitle\"\n (accessibilityAction)=\"accessibilityAction.emit($event)\"\n (accessibilityTap)=\"accessibilityTap.emit($event)\"\n (magicTap)=\"magicTap.emit($event)\"\n (accessibilityEscape)=\"accessibilityEscape.emit($event)\"\n [role]=\"role\"\n [aria-label]=\"ariaLabel\"\n [aria-labelledby]=\"ariaLabelledBy\"\n [aria-live]=\"ariaLive\"\n [aria-hidden]=\"ariaHidden\"\n [aria-busy]=\"ariaBusy\"\n [aria-checked]=\"ariaChecked\"\n [aria-disabled]=\"ariaDisabled\"\n [aria-expanded]=\"ariaExpanded\"\n [aria-selected]=\"ariaSelected\"\n [aria-modal]=\"ariaModal\"\n [aria-valuemax]=\"ariaValueMax\"\n [aria-valuemin]=\"ariaValueMin\"\n [aria-valuenow]=\"ariaValueNow\"\n [aria-valuetext]=\"ariaValueText\"\n\n >\n <ng-template\n vSectionItem\n let-item\n let-index=\"index\"\n let-section=\"section\"\n let-separators=\"separators\"\n >\n <ng-container\n [vListOutlet]=\"sectionItemDir?.templateRef\"\n [vListOutletContext]=\"{\n $implicit: item,\n item,\n index,\n section,\n separators,\n }\"\n ></ng-container>\n </ng-template>\n @if (sectionHeaderDir !== undefined) {\n <ng-template vSectionHeader let-section>\n <ng-container\n [vListOutlet]=\"sectionHeaderDir.templateRef\"\n [vListOutletContext]=\"{ $implicit: section, section }\"\n ></ng-container>\n </ng-template>\n }\n @if (sectionFooterDir !== undefined) {\n <ng-template vSectionFooter let-section>\n <ng-container\n [vListOutlet]=\"sectionFooterDir.templateRef\"\n [vListOutletContext]=\"{ $implicit: section, section }\"\n ></ng-container>\n </ng-template>\n }\n @if (sectionSeparatorDir !== undefined) {\n <ng-template vSectionSeparator>\n <ng-container\n [vListOutlet]=\"sectionSeparatorDir.templateRef\"\n ></ng-container>\n </ng-template>\n }\n @if (listHeaderDir !== undefined) {\n <ng-template vListHeader>\n <ng-container\n [vListOutlet]=\"listHeaderDir.templateRef\"\n ></ng-container>\n </ng-template>\n }\n @if (listFooterDir !== undefined) {\n <ng-template vListFooter>\n <ng-container\n [vListOutlet]=\"listFooterDir.templateRef\"\n ></ng-container>\n </ng-template>\n }\n @if (listEmptyDir !== undefined) {\n <ng-template vListEmpty>\n <ng-container [vListOutlet]=\"listEmptyDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (itemSeparatorDir !== undefined) {\n <ng-template\n vListSeparator\n let-highlighted=\"highlighted\"\n let-leadingItem=\"leadingItem\"\n let-trailingItem=\"trailingItem\"\n >\n <ng-container\n [vListOutlet]=\"itemSeparatorDir.templateRef\"\n [vListOutletContext]=\"\n itemSeparatorContext(highlighted, leadingItem, trailingItem)\n \"\n ></ng-container>\n </ng-template>\n }\n </VirtualizedSectionList>\n ", 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", "removeClippedSubviews", "nestedScrollEnabled", "style", "contentContainerStyle", "testID", "nativeID"] }, { 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"] }], viewProviders: [provideGateDemand(() => SectionList)], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
264
67
|
}
|
|
265
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SectionList, decorators: [{
|
|
266
69
|
type: Component,
|
|
@@ -320,47 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
320
123
|
[contentContainerStyle]="contentContainerStyle"
|
|
321
124
|
[testID]="testID"
|
|
322
125
|
[nativeID]="nativeID"
|
|
323
|
-
|
|
324
|
-
[accessibilityLabel]="accessibilityLabel"
|
|
325
|
-
[accessibilityHint]="accessibilityHint"
|
|
326
|
-
[accessibilityRole]="accessibilityRole"
|
|
327
|
-
[accessibilityState]="accessibilityState"
|
|
328
|
-
[accessibilityValue]="accessibilityValue"
|
|
329
|
-
[accessibilityActions]="accessibilityActions"
|
|
330
|
-
[accessibilityLabelledBy]="accessibilityLabelledBy"
|
|
331
|
-
[importantForAccessibility]="importantForAccessibility"
|
|
332
|
-
[accessibilityLiveRegion]="accessibilityLiveRegion"
|
|
333
|
-
[screenReaderFocusable]="screenReaderFocusable"
|
|
334
|
-
[accessibilityViewIsModal]="accessibilityViewIsModal"
|
|
335
|
-
[accessibilityElementsHidden]="accessibilityElementsHidden"
|
|
336
|
-
[accessibilityIgnoresInvertColors]="accessibilityIgnoresInvertColors"
|
|
337
|
-
[accessibilityLanguage]="accessibilityLanguage"
|
|
338
|
-
[accessibilityRespondsToUserInteraction]="
|
|
339
|
-
accessibilityRespondsToUserInteraction
|
|
340
|
-
"
|
|
341
|
-
[accessibilityShowsLargeContentViewer]="
|
|
342
|
-
accessibilityShowsLargeContentViewer
|
|
343
|
-
"
|
|
344
|
-
[accessibilityLargeContentTitle]="accessibilityLargeContentTitle"
|
|
345
|
-
(accessibilityAction)="accessibilityAction.emit($event)"
|
|
346
|
-
(accessibilityTap)="accessibilityTap.emit($event)"
|
|
347
|
-
(magicTap)="magicTap.emit($event)"
|
|
348
|
-
(accessibilityEscape)="accessibilityEscape.emit($event)"
|
|
349
|
-
[role]="role"
|
|
350
|
-
[ariaLabel]="ariaLabel"
|
|
351
|
-
[ariaLabelledBy]="ariaLabelledBy"
|
|
352
|
-
[ariaLive]="ariaLive"
|
|
353
|
-
[ariaHidden]="ariaHidden"
|
|
354
|
-
[ariaBusy]="ariaBusy"
|
|
355
|
-
[ariaChecked]="ariaChecked"
|
|
356
|
-
[ariaDisabled]="ariaDisabled"
|
|
357
|
-
[ariaExpanded]="ariaExpanded"
|
|
358
|
-
[ariaSelected]="ariaSelected"
|
|
359
|
-
[ariaModal]="ariaModal"
|
|
360
|
-
[ariaValueMax]="ariaValueMax"
|
|
361
|
-
[ariaValueMin]="ariaValueMin"
|
|
362
|
-
[ariaValueNow]="ariaValueNow"
|
|
363
|
-
[ariaValueText]="ariaValueText"
|
|
126
|
+
${LIST_ACCESSIBILITY_FORWARD}
|
|
364
127
|
>
|
|
365
128
|
<ng-template
|
|
366
129
|
vSectionItem
|
|
@@ -451,16 +214,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
451
214
|
type: Input
|
|
452
215
|
}], extraData: [{
|
|
453
216
|
type: Input
|
|
454
|
-
}], endReached: [{
|
|
455
|
-
type: Output
|
|
456
217
|
}], onEndReachedThreshold: [{
|
|
457
218
|
type: Input
|
|
458
|
-
}], startReached: [{
|
|
459
|
-
type: Output
|
|
460
219
|
}], onStartReachedThreshold: [{
|
|
461
220
|
type: Input
|
|
462
|
-
}], refresh: [{
|
|
463
|
-
type: Output
|
|
464
221
|
}], refreshing: [{
|
|
465
222
|
type: Input
|
|
466
223
|
}], progressViewOffset: [{
|
|
@@ -507,80 +264,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
507
264
|
type: Input
|
|
508
265
|
}], nativeID: [{
|
|
509
266
|
type: Input
|
|
510
|
-
}], accessible: [{
|
|
511
|
-
type: Input
|
|
512
|
-
}], accessibilityLabel: [{
|
|
513
|
-
type: Input
|
|
514
|
-
}], accessibilityHint: [{
|
|
515
|
-
type: Input
|
|
516
|
-
}], accessibilityRole: [{
|
|
517
|
-
type: Input
|
|
518
|
-
}], accessibilityState: [{
|
|
519
|
-
type: Input
|
|
520
|
-
}], accessibilityValue: [{
|
|
521
|
-
type: Input
|
|
522
|
-
}], accessibilityActions: [{
|
|
523
|
-
type: Input
|
|
524
|
-
}], accessibilityLabelledBy: [{
|
|
525
|
-
type: Input
|
|
526
|
-
}], importantForAccessibility: [{
|
|
527
|
-
type: Input
|
|
528
|
-
}], accessibilityLiveRegion: [{
|
|
529
|
-
type: Input
|
|
530
|
-
}], screenReaderFocusable: [{
|
|
531
|
-
type: Input
|
|
532
|
-
}], accessibilityViewIsModal: [{
|
|
533
|
-
type: Input
|
|
534
|
-
}], accessibilityElementsHidden: [{
|
|
535
|
-
type: Input
|
|
536
|
-
}], accessibilityIgnoresInvertColors: [{
|
|
537
|
-
type: Input
|
|
538
|
-
}], accessibilityLanguage: [{
|
|
539
|
-
type: Input
|
|
540
|
-
}], accessibilityRespondsToUserInteraction: [{
|
|
541
|
-
type: Input
|
|
542
|
-
}], accessibilityShowsLargeContentViewer: [{
|
|
543
|
-
type: Input
|
|
544
|
-
}], accessibilityLargeContentTitle: [{
|
|
545
|
-
type: Input
|
|
546
|
-
}], accessibilityAction: [{
|
|
547
|
-
type: Output
|
|
548
|
-
}], accessibilityTap: [{
|
|
549
|
-
type: Output
|
|
550
|
-
}], magicTap: [{
|
|
551
|
-
type: Output
|
|
552
|
-
}], accessibilityEscape: [{
|
|
553
|
-
type: Output
|
|
554
|
-
}], role: [{
|
|
555
|
-
type: Input
|
|
556
|
-
}], ariaLabel: [{
|
|
557
|
-
type: Input
|
|
558
|
-
}], ariaLabelledBy: [{
|
|
559
|
-
type: Input
|
|
560
|
-
}], ariaLive: [{
|
|
561
|
-
type: Input
|
|
562
|
-
}], ariaHidden: [{
|
|
563
|
-
type: Input
|
|
564
|
-
}], ariaBusy: [{
|
|
565
|
-
type: Input
|
|
566
|
-
}], ariaChecked: [{
|
|
567
|
-
type: Input
|
|
568
|
-
}], ariaDisabled: [{
|
|
569
|
-
type: Input
|
|
570
|
-
}], ariaExpanded: [{
|
|
571
|
-
type: Input
|
|
572
|
-
}], ariaSelected: [{
|
|
573
|
-
type: Input
|
|
574
|
-
}], ariaModal: [{
|
|
575
|
-
type: Input
|
|
576
|
-
}], ariaValueMax: [{
|
|
577
|
-
type: Input
|
|
578
|
-
}], ariaValueMin: [{
|
|
579
|
-
type: Input
|
|
580
|
-
}], ariaValueNow: [{
|
|
581
|
-
type: Input
|
|
582
|
-
}], ariaValueText: [{
|
|
583
|
-
type: Input
|
|
584
267
|
}], sectionItemDir: [{
|
|
585
268
|
type: ContentChild,
|
|
586
269
|
args: [VSectionItemDirective]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/section-list/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/section-list/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type ISymbioteEvent } from '@symbiote-native/engine';
|
|
2
|
+
import type { IVListItemContext, IVListSeparatorContext } from './directives';
|
|
3
|
+
export interface IWindowCell<ItemT> {
|
|
4
|
+
key: string;
|
|
5
|
+
index: number;
|
|
6
|
+
context: IVListItemContext<ItemT>;
|
|
7
|
+
measure: (event: ISymbioteEvent) => void;
|
|
8
|
+
separatorContext?: IVListSeparatorContext<ItemT>;
|
|
9
|
+
isSticky: boolean;
|
|
10
|
+
}
|
|
11
|
+
export type ICellHost<ItemT> = {
|
|
12
|
+
itemAt: (index: number) => ItemT;
|
|
13
|
+
itemCount: () => number;
|
|
14
|
+
isHorizontal: () => boolean;
|
|
15
|
+
markForCheck: () => void;
|
|
16
|
+
measured: (index: number, length: number, offset: number | undefined) => void;
|
|
17
|
+
};
|
|
18
|
+
export declare class CellRegistry<ItemT> {
|
|
19
|
+
private readonly host;
|
|
20
|
+
private contexts;
|
|
21
|
+
private nextContexts;
|
|
22
|
+
private epoch;
|
|
23
|
+
private readonly separatorOverrides;
|
|
24
|
+
private readonly measures;
|
|
25
|
+
constructor(host: ICellHost<ItemT>);
|
|
26
|
+
beginPass(epoch: unknown[]): void;
|
|
27
|
+
clear(): void;
|
|
28
|
+
endPass(): void;
|
|
29
|
+
windowCell(index: number, key: string, includeSeparator: boolean, isSticky: boolean): IWindowCell<ItemT>;
|
|
30
|
+
private contextFor;
|
|
31
|
+
private separatorContextFor;
|
|
32
|
+
private measureFor;
|
|
33
|
+
private mergeSeparator;
|
|
34
|
+
private makeSeparators;
|
|
35
|
+
}
|