@symbiote-native/navigation 2.0.3 → 2.1.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/drawer/index.js +6 -4
- package/build/angular/stack/index.d.ts +2 -0
- package/build/angular/stack/index.js +23 -3
- package/build/angular/tabs/index.d.ts +1 -1
- package/build/angular/tabs/index.js +20 -7
- package/build/core/index.d.ts +2 -1
- package/build/core/index.js +5 -1
- package/build/core/stack-router-state/index.d.ts +2 -0
- package/build/core/stack-router-state/index.js +44 -0
- package/build/core/tab-router-state/index.d.ts +1 -0
- package/build/core/tab-router-state/index.js +19 -0
- package/build/react/drawer/index.js +23 -13
- package/build/react/stack/index.js +13 -2
- package/build/react/tabs/index.js +23 -9
- package/build/svelte/attachments.d.ts +5 -0
- package/build/svelte/attachments.js +61 -0
- package/build/svelte/descriptor-subtree.d.ts +3 -0
- package/build/svelte/descriptor-subtree.js +37 -0
- package/build/svelte/drawer/drawer-props.d.ts +14 -0
- package/build/svelte/drawer/drawer-props.js +3 -0
- package/build/svelte/drawer/index.d.ts +10 -0
- package/build/svelte/drawer/index.js +6 -0
- package/build/svelte/drawer/index.svelte +421 -0
- package/build/svelte/drawer/index.svelte.d.ts +10 -0
- package/build/svelte/drawer-screen-props.d.ts +13 -0
- package/build/svelte/drawer-screen-props.js +4 -0
- package/build/svelte/drawer-screen.svelte +24 -0
- package/build/svelte/drawer-screen.svelte.d.ts +4 -0
- package/build/svelte/index.d.ts +21 -0
- package/build/svelte/index.js +20 -0
- package/build/svelte/linking.svelte.d.ts +2 -0
- package/build/svelte/linking.svelte.js +55 -0
- package/build/svelte/navigation-context.d.ts +14 -0
- package/build/svelte/navigation-context.js +44 -0
- package/build/svelte/navigation-scope.svelte +24 -0
- package/build/svelte/navigation-scope.svelte.d.ts +9 -0
- package/build/svelte/registry-host.d.ts +1 -0
- package/build/svelte/registry-host.js +26 -0
- package/build/svelte/runes/index.d.ts +12 -0
- package/build/svelte/runes/index.js +12 -0
- package/build/svelte/runes/use-drawer-navigation.svelte.d.ts +6 -0
- package/build/svelte/runes/use-drawer-navigation.svelte.js +19 -0
- package/build/svelte/runes/use-focus-effect.svelte.d.ts +1 -0
- package/build/svelte/runes/use-focus-effect.svelte.js +31 -0
- package/build/svelte/runes/use-is-focused.svelte.d.ts +3 -0
- package/build/svelte/runes/use-is-focused.svelte.js +34 -0
- package/build/svelte/runes/use-navigation-state.svelte.d.ts +4 -0
- package/build/svelte/runes/use-navigation-state.svelte.js +39 -0
- package/build/svelte/runes/use-navigation.svelte.d.ts +9 -0
- package/build/svelte/runes/use-navigation.svelte.js +22 -0
- package/build/svelte/runes/use-route.svelte.d.ts +4 -0
- package/build/svelte/runes/use-route.svelte.js +12 -0
- package/build/svelte/runes/use-stack-navigation.svelte.d.ts +6 -0
- package/build/svelte/runes/use-stack-navigation.svelte.js +22 -0
- package/build/svelte/runes/use-tab-navigation.svelte.d.ts +6 -0
- package/build/svelte/runes/use-tab-navigation.svelte.js +19 -0
- package/build/svelte/screen-props.d.ts +21 -0
- package/build/svelte/screen-props.js +6 -0
- package/build/svelte/screen-registry.d.ts +17 -0
- package/build/svelte/screen-registry.js +57 -0
- package/build/svelte/screen.svelte +28 -0
- package/build/svelte/screen.svelte.d.ts +4 -0
- package/build/svelte/stack/index.d.ts +14 -0
- package/build/svelte/stack/index.js +7 -0
- package/build/svelte/stack/index.svelte +224 -0
- package/build/svelte/stack/index.svelte.d.ts +15 -0
- package/build/svelte/stack/stack-props.d.ts +20 -0
- package/build/svelte/stack/stack-props.js +4 -0
- package/build/svelte/stack/stack-screen.svelte +148 -0
- package/build/svelte/stack/stack-screen.svelte.d.ts +4 -0
- package/build/svelte/tab-screen-props.d.ts +13 -0
- package/build/svelte/tab-screen-props.js +4 -0
- package/build/svelte/tab-screen.svelte +26 -0
- package/build/svelte/tab-screen.svelte.d.ts +4 -0
- package/build/svelte/tabs/index.d.ts +8 -0
- package/build/svelte/tabs/index.js +6 -0
- package/build/svelte/tabs/index.svelte +247 -0
- package/build/svelte/tabs/index.svelte.d.ts +8 -0
- package/build/svelte/tabs/tab-props.d.ts +7 -0
- package/build/svelte/tabs/tab-props.js +3 -0
- package/build/vue/drawer/index.js +6 -5
- package/build/vue/stack/index.js +26 -12
- package/build/vue/tabs/index.js +48 -35
- package/build-ngc/angular/drawer/index.js +9 -7
- package/build-ngc/angular/drawer/index.js.map +1 -1
- package/build-ngc/angular/drawer-screen.directive.js +3 -3
- package/build-ngc/angular/navigation-context.service.js +3 -3
- package/build-ngc/angular/navigation-scope.directive.js +3 -3
- package/build-ngc/angular/screen.directive.js +3 -3
- package/build-ngc/angular/search-bar-ref.directive.js +3 -3
- package/build-ngc/angular/stack/index.d.ts +2 -0
- package/build-ngc/angular/stack/index.js +26 -6
- package/build-ngc/angular/stack/index.js.map +1 -1
- package/build-ngc/angular/tab-screen.directive.js +3 -3
- package/build-ngc/angular/tabs/index.d.ts +1 -1
- package/build-ngc/angular/tabs/index.js +23 -10
- package/build-ngc/angular/tabs/index.js.map +1 -1
- package/build-ngc/core/index.d.ts +2 -1
- package/build-ngc/core/index.js +5 -1
- package/build-ngc/core/index.js.map +1 -1
- package/build-ngc/core/stack-router-state/index.d.ts +2 -0
- package/build-ngc/core/stack-router-state/index.js +45 -0
- package/build-ngc/core/stack-router-state/index.js.map +1 -0
- package/build-ngc/core/tab-router-state/index.d.ts +1 -0
- package/build-ngc/core/tab-router-state/index.js +19 -0
- package/build-ngc/core/tab-router-state/index.js.map +1 -1
- package/package.json +28 -14
- package/src/angular/drawer/index.ts +6 -4
- package/src/angular/stack/index.ts +23 -2
- package/src/angular/tabs/index.ts +19 -5
- package/src/core/index.ts +11 -1
- package/src/core/stack-router-state/index.ts +49 -0
- package/src/core/tab-router-state/index.ts +25 -0
- package/src/react/drawer/index.ts +28 -13
- package/src/react/stack/index.ts +15 -1
- package/src/react/tabs/index.ts +43 -10
- package/src/svelte/attachments.ts +68 -0
- package/src/svelte/descriptor-subtree.ts +49 -0
- package/src/svelte/drawer/drawer-props.ts +28 -0
- package/src/svelte/drawer/index.svelte +421 -0
- package/src/svelte/drawer/index.ts +10 -0
- package/src/svelte/drawer-screen-props.ts +20 -0
- package/src/svelte/drawer-screen.svelte +24 -0
- package/src/svelte/fabric-tree.test-helper.ts +61 -0
- package/src/svelte/index.ts +71 -0
- package/src/svelte/linking.svelte.ts +66 -0
- package/src/svelte/navigation-context.ts +62 -0
- package/src/svelte/navigation-scope.svelte +24 -0
- package/src/svelte/registry-host.ts +26 -0
- package/src/svelte/runes/index.ts +17 -0
- package/src/svelte/runes/use-drawer-navigation.svelte.ts +29 -0
- package/src/svelte/runes/use-focus-effect.svelte.ts +35 -0
- package/src/svelte/runes/use-is-focused.svelte.ts +38 -0
- package/src/svelte/runes/use-navigation-state.svelte.ts +46 -0
- package/src/svelte/runes/use-navigation.svelte.ts +39 -0
- package/src/svelte/runes/use-route.svelte.ts +16 -0
- package/src/svelte/runes/use-stack-navigation.svelte.ts +32 -0
- package/src/svelte/runes/use-tab-navigation.svelte.ts +29 -0
- package/src/svelte/screen-props.ts +45 -0
- package/src/svelte/screen-registry.ts +92 -0
- package/src/svelte/screen.svelte +28 -0
- package/src/svelte/stack/index.svelte +224 -0
- package/src/svelte/stack/index.ts +11 -0
- package/src/svelte/stack/stack-props.ts +31 -0
- package/src/svelte/stack/stack-screen.svelte +148 -0
- package/src/svelte/svelte-ambient.d.ts +6 -0
- package/src/svelte/svelte-compile.test-helper.ts +143 -0
- package/src/svelte/tab-screen-props.ts +20 -0
- package/src/svelte/tab-screen.svelte +26 -0
- package/src/svelte/tabs/index.svelte +247 -0
- package/src/svelte/tabs/index.ts +10 -0
- package/src/svelte/tabs/tab-props.ts +13 -0
- package/src/vue/drawer/index.ts +6 -5
- package/src/vue/stack/index.ts +28 -11
- package/src/vue/tabs/index.ts +68 -65
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
// Tab, the Svelte lifecycle half. The focused-index router (tab-router-state) and the tab-bar
|
|
3
|
+
// Descriptor builder (render-tabs) live in @symbiote-native/navigation core, shared verbatim
|
|
4
|
+
// with the React/Vue/Angular entries; here Svelte supplies the lifecycle - `$state.raw` for the
|
|
5
|
+
// router (its twin of useReducer), a module counter for route-key generation, `export
|
|
6
|
+
// function`s for the jumpTo/setParams handle - plus the Descriptor bridge for the tab-bar leaf.
|
|
7
|
+
// Unlike Stack, a bottom-tabs bar is a PURE-JS UI: it paints ordinary `symbiote-view`/
|
|
8
|
+
// `symbiote-text` primitives via the shared render fn, so there is no react-native-screens
|
|
9
|
+
// ViewConfig to register here - Tab needs no `../../register` import.
|
|
10
|
+
//
|
|
11
|
+
// Screens are discovered through the context collector (../screen-registry.ts), not by reading
|
|
12
|
+
// `children` - see stack/index.svelte's header for why, and ../registry-host.ts for where the
|
|
13
|
+
// markers are rendered.
|
|
14
|
+
let tabInstanceCounter = 0;
|
|
15
|
+
|
|
16
|
+
const TAB_ROOT_PROPS: Record<string, unknown> = { style: { flex: 1 } };
|
|
17
|
+
const TAB_CONTENT_PROPS: Record<string, unknown> = { style: { flex: 1 } };
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<script lang="ts">
|
|
21
|
+
import type { Component } from 'svelte';
|
|
22
|
+
import { onDestroy, tick } from 'svelte';
|
|
23
|
+
import { dlog } from '@symbiote-native/engine';
|
|
24
|
+
import type { ShimElement } from '@symbiote-native/svelte/native-view-bridge';
|
|
25
|
+
import {
|
|
26
|
+
NAVIGATION_EVENT_BLUR,
|
|
27
|
+
NAVIGATION_EVENT_FOCUS,
|
|
28
|
+
createInitialTabState,
|
|
29
|
+
createNavigationEmitter,
|
|
30
|
+
diffFocusedRoute,
|
|
31
|
+
isFocusedRoute,
|
|
32
|
+
reconcileTabRoutes,
|
|
33
|
+
renderTabBar,
|
|
34
|
+
tabRouterReducer,
|
|
35
|
+
} from '../../core';
|
|
36
|
+
import type {
|
|
37
|
+
IDescriptor,
|
|
38
|
+
INavigationEmitter,
|
|
39
|
+
IRoute,
|
|
40
|
+
ITabBarItemView,
|
|
41
|
+
ITabNavigatorHandle,
|
|
42
|
+
ITabOptions,
|
|
43
|
+
ITabRouterAction,
|
|
44
|
+
ITabRouterState,
|
|
45
|
+
} from '../../core';
|
|
46
|
+
import { createDescriptorSubtreeSync } from '../descriptor-subtree';
|
|
47
|
+
import { getNavigationScope } from '../navigation-context';
|
|
48
|
+
import type { INavigationScopeValue } from '../navigation-context';
|
|
49
|
+
import NavigationScope from '../navigation-scope.svelte';
|
|
50
|
+
import { SCREEN_REGISTRY_HOST_PROPS } from '../registry-host';
|
|
51
|
+
import { setScreenCollector, toRegistry, withoutScreen } from '../screen-registry';
|
|
52
|
+
import type { IRegisteredScreen } from '../screen-registry';
|
|
53
|
+
import type { ITabScreenProps } from '../tab-screen-props';
|
|
54
|
+
import type { ITabProps } from './tab-props';
|
|
55
|
+
|
|
56
|
+
let { initialRouteName, screenOptions, children }: ITabProps = $props();
|
|
57
|
+
|
|
58
|
+
// Read BEFORE this Tab establishes its own per-screen NavigationScope - becomes the `parent`
|
|
59
|
+
// link a nested screen's useNavigation().getParent() walks. undefined at the nesting root.
|
|
60
|
+
const parentScope = getNavigationScope();
|
|
61
|
+
|
|
62
|
+
const routeIdPrefix = `tab-${(tabInstanceCounter += 1)}`;
|
|
63
|
+
|
|
64
|
+
let screens = $state.raw<IRegisteredScreen<ITabScreenProps['options']>[]>([]);
|
|
65
|
+
setScreenCollector<ITabScreenProps['options']>({
|
|
66
|
+
kind: 'tab',
|
|
67
|
+
register: screen => {
|
|
68
|
+
screens = [...screens, screen];
|
|
69
|
+
},
|
|
70
|
+
unregister: screen => {
|
|
71
|
+
screens = withoutScreen(screens, screen);
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
const registry = $derived(toRegistry(screens));
|
|
76
|
+
|
|
77
|
+
// A tab's route list is a PROJECTION of the registry, not navigation history the way Stack's
|
|
78
|
+
// is: a marker registering or unregistering must add or drop its tab. Unlike Stack, a route key
|
|
79
|
+
// here is derived from the route NAME rather than an incrementing sequence, so re-deriving this
|
|
80
|
+
// list on every registry change re-keys nothing.
|
|
81
|
+
const registeredRoutes = $derived.by<IRoute<unknown>[]>(() =>
|
|
82
|
+
[...registry.entries()].map(([name, entry]) => ({
|
|
83
|
+
key: `${routeIdPrefix}-${name}`,
|
|
84
|
+
name,
|
|
85
|
+
params: entry.initialParams,
|
|
86
|
+
})),
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
// The dispatched half is the only STATE here; the registry half is re-derived and reconciled
|
|
90
|
+
// against it on every change (reconcileTabRoutes, core - it is what preserves each surviving
|
|
91
|
+
// route's key/params and keeps the focus on the same route NAME). Nothing needs memoizing
|
|
92
|
+
// inside the derivation, so there is no state write during a derivation to avoid in the first
|
|
93
|
+
// place. Until something dispatches there is nothing to reconcile against, hence the seed.
|
|
94
|
+
let dispatchedState = $state.raw<ITabRouterState | null>(null);
|
|
95
|
+
|
|
96
|
+
const state = $derived.by<ITabRouterState>(() => {
|
|
97
|
+
if (registeredRoutes.length === 0) dlog('Tab: no <Tab.Screen> children registered');
|
|
98
|
+
const dispatched = dispatchedState;
|
|
99
|
+
return dispatched === null
|
|
100
|
+
? createInitialTabState(registeredRoutes, initialRouteName)
|
|
101
|
+
: reconcileTabRoutes(dispatched, registeredRoutes);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
function dispatch(action: ITabRouterAction): void {
|
|
105
|
+
dispatchedState = tabRouterReducer(state, action);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export function jumpTo(name: string, params?: unknown): void {
|
|
109
|
+
dispatch({ type: 'jumpTo', name, params });
|
|
110
|
+
}
|
|
111
|
+
export function setParams(params: unknown, key: string): void {
|
|
112
|
+
dispatch({ type: 'setParams', key, params });
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const handle: ITabNavigatorHandle = { jumpTo, setParams };
|
|
116
|
+
|
|
117
|
+
// One emitter per route.key, created lazily and cached for the navigator's whole lifetime -
|
|
118
|
+
// mirrors Stack's own `emitters` map. This decouples emitter IDENTITY (stable, looked up by
|
|
119
|
+
// key, read below when a route's NavigationScope is built) from emit TIMING (must wait until
|
|
120
|
+
// the focused screen has actually mounted and subscribed).
|
|
121
|
+
const emitters = new Map<string, INavigationEmitter>();
|
|
122
|
+
function emitterFor(routeKey: string): INavigationEmitter {
|
|
123
|
+
let emitter = emitters.get(routeKey);
|
|
124
|
+
if (emitter === undefined) {
|
|
125
|
+
emitter = createNavigationEmitter();
|
|
126
|
+
emitters.set(routeKey, emitter);
|
|
127
|
+
}
|
|
128
|
+
return emitter;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Tab paints its own bar in pure JS - there is no native onAppear/onDisappear to hook (unlike
|
|
132
|
+
// Stack's RNSScreen), so focus/blur is synthesized here. Keyed on the route KEY (not the route
|
|
133
|
+
// object) so a setParams-only change doesn't spuriously re-fire focus/blur.
|
|
134
|
+
//
|
|
135
|
+
// The bookkeeping updates immediately, but the actual emit is deferred to `tick()` - Svelte's
|
|
136
|
+
// twin of Vue's nextTick, and needed for the same reason: the newly-focused screen's own
|
|
137
|
+
// `$effect`s (its useIsFocused/useFocusEffect subscriptions) are created during THIS flush,
|
|
138
|
+
// after this effect was, so emitting synchronously here would reach zero subscribers.
|
|
139
|
+
let previousFocusedKey: string | undefined;
|
|
140
|
+
$effect(() => {
|
|
141
|
+
const nextKey = state.routes[state.index]?.key;
|
|
142
|
+
const { blurKey, focusKey } = diffFocusedRoute(previousFocusedKey, nextKey);
|
|
143
|
+
if (blurKey === undefined && focusKey === undefined) return;
|
|
144
|
+
previousFocusedKey = nextKey;
|
|
145
|
+
void tick().then(() => {
|
|
146
|
+
if (blurKey !== undefined) {
|
|
147
|
+
dlog(`Tab: route "${blurKey}" blurred at t=${Date.now()}`);
|
|
148
|
+
emitterFor(blurKey).emit(NAVIGATION_EVENT_BLUR);
|
|
149
|
+
}
|
|
150
|
+
if (focusKey !== undefined) {
|
|
151
|
+
dlog(`Tab: route "${focusKey}" focused at t=${Date.now()}`);
|
|
152
|
+
emitterFor(focusKey).emit(NAVIGATION_EVENT_FOCUS);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
onDestroy(() => {
|
|
158
|
+
if (previousFocusedKey !== undefined) {
|
|
159
|
+
emitterFor(previousFocusedKey).emit(NAVIGATION_EVENT_BLUR);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
function resolveTabOptions(
|
|
164
|
+
entry: IRegisteredScreen<ITabScreenProps['options']> | undefined,
|
|
165
|
+
route: IRoute<unknown>,
|
|
166
|
+
): ITabOptions {
|
|
167
|
+
const own =
|
|
168
|
+
entry === undefined
|
|
169
|
+
? undefined
|
|
170
|
+
: typeof entry.options === 'function'
|
|
171
|
+
? entry.options({ route, navigation: handle })
|
|
172
|
+
: entry.options;
|
|
173
|
+
return { ...screenOptions, ...own };
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const items = $derived.by<ITabBarItemView[]>(() =>
|
|
177
|
+
state.routes.map((route, index) => {
|
|
178
|
+
const entry = registry.get(route.name);
|
|
179
|
+
const focused = isFocusedRoute(index, state.index);
|
|
180
|
+
if (entry === undefined) {
|
|
181
|
+
dlog(`Tab: no screen registered for route name "${route.name}"`);
|
|
182
|
+
return { key: route.key, focused, label: route.name, passthrough: {} };
|
|
183
|
+
}
|
|
184
|
+
const options = resolveTabOptions(entry, route);
|
|
185
|
+
return {
|
|
186
|
+
key: route.key,
|
|
187
|
+
focused,
|
|
188
|
+
label: options.tabBarLabel ?? options.title ?? route.name,
|
|
189
|
+
icon: options.tabBarIcon,
|
|
190
|
+
badge: options.tabBarBadge,
|
|
191
|
+
activeTintColor: options.tabBarActiveTintColor,
|
|
192
|
+
inactiveTintColor: options.tabBarInactiveTintColor,
|
|
193
|
+
passthrough: {
|
|
194
|
+
onPress: () => jumpTo(route.name),
|
|
195
|
+
accessibilityRole: 'tab',
|
|
196
|
+
accessibilityState: { selected: focused },
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
}),
|
|
200
|
+
);
|
|
201
|
+
|
|
202
|
+
const focusedRoute = $derived(state.routes[state.index]);
|
|
203
|
+
const focusedOptions = $derived(
|
|
204
|
+
focusedRoute === undefined
|
|
205
|
+
? screenOptions
|
|
206
|
+
: resolveTabOptions(registry.get(focusedRoute.name), focusedRoute),
|
|
207
|
+
);
|
|
208
|
+
|
|
209
|
+
const tabBar = $derived.by<IDescriptor>(() =>
|
|
210
|
+
renderTabBar({ items, style: focusedOptions?.tabBarStyle, passthrough: {} }),
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
// Only the focused route's screen is ever mounted (unlike Stack, which keeps every pushed route
|
|
214
|
+
// alive), so a fresh NavigationScope per focus change is sufficient - the previous screen's
|
|
215
|
+
// whole subtree (and any listeners it registered) is torn down by an ordinary unmount when
|
|
216
|
+
// focus moves on.
|
|
217
|
+
const focusedScreen = $derived.by<{ scope: INavigationScopeValue; component: Component } | undefined>(
|
|
218
|
+
() => {
|
|
219
|
+
if (focusedRoute === undefined) return undefined;
|
|
220
|
+
const entry = registry.get(focusedRoute.name);
|
|
221
|
+
if (entry === undefined) return undefined;
|
|
222
|
+
return {
|
|
223
|
+
component: entry.component,
|
|
224
|
+
scope: {
|
|
225
|
+
route: focusedRoute,
|
|
226
|
+
navigation: handle,
|
|
227
|
+
emitter: emitterFor(focusedRoute.key),
|
|
228
|
+
parent: parentScope?.current,
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
},
|
|
232
|
+
);
|
|
233
|
+
|
|
234
|
+
// The bar's ROOT stays a literal template tag (so `bind:this` has a statically known tag) and
|
|
235
|
+
// only its children go through the Descriptor bridge - the uniform shape every Svelte component
|
|
236
|
+
// consuming a `render-*.ts` uses (svelte-adapter-dom-shim skill §19). The item count varies with
|
|
237
|
+
// the registry, hence the shape-change-tolerant wrapper rather than the raw bridge.
|
|
238
|
+
let tabBarHost = $state.raw<ShimElement | null>(null);
|
|
239
|
+
const syncTabBarChildren = createDescriptorSubtreeSync();
|
|
240
|
+
$effect(() => {
|
|
241
|
+
const host = tabBarHost;
|
|
242
|
+
const barChildren = tabBar.children;
|
|
243
|
+
syncTabBarChildren(host, barChildren);
|
|
244
|
+
});
|
|
245
|
+
</script>
|
|
246
|
+
|
|
247
|
+
<symbiote-view p={TAB_ROOT_PROPS}><symbiote-text p={SCREEN_REGISTRY_HOST_PROPS}>{@render children?.()}</symbiote-text><symbiote-view p={TAB_CONTENT_PROPS}>{#if focusedScreen !== undefined}{@const FocusedComponent = focusedScreen.component}<NavigationScope value={focusedScreen.scope}><FocusedComponent /></NavigationScope>{/if}</symbiote-view><symbiote-view p={tabBar.props} bind:this={tabBarHost}></symbiote-view></symbiote-view>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Component } from 'svelte';
|
|
2
|
+
import type { ITabProps } from './tab-props';
|
|
3
|
+
declare const Index: Component<ITabProps, {
|
|
4
|
+
jumpTo: (name: string, params?: unknown) => void;
|
|
5
|
+
setParams: (params: unknown, key: string) => void;
|
|
6
|
+
}, "">;
|
|
7
|
+
type Index = ReturnType<typeof Index>;
|
|
8
|
+
export default Index;
|
|
@@ -166,13 +166,14 @@ const DrawerImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose })
|
|
|
166
166
|
dispatch({ type: 'toggleDrawer' });
|
|
167
167
|
},
|
|
168
168
|
jumpTo: (name) => {
|
|
169
|
-
//
|
|
170
|
-
//
|
|
171
|
-
//
|
|
172
|
-
//
|
|
169
|
+
// Both sides of the dispatch, because an unregistered name is a documented reducer no-op
|
|
170
|
+
// that hands the SAME state back: animating off the pre-dispatch snapshot alone would
|
|
171
|
+
// slide the panel shut while the router still says isOpen. The ref's `.value` mutates
|
|
172
|
+
// SYNCHRONOUSLY inside dispatch (unlike React's isOpenRef, refreshed only at the top of
|
|
173
|
+
// the next render), so the second read is already the reducer's own answer.
|
|
173
174
|
const wasOpen = state.value.isOpen;
|
|
174
175
|
dispatch({ type: 'jumpTo', name });
|
|
175
|
-
if (wasOpen)
|
|
176
|
+
if (wasOpen && !state.value.isOpen)
|
|
176
177
|
animateProgressTo(false);
|
|
177
178
|
},
|
|
178
179
|
};
|
package/build/vue/stack/index.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { defineComponent, h, shallowRef, useId } from '@vue/runtime-core';
|
|
13
13
|
import { descriptorToVue, normalizeVueAttrs } from '@symbiote-native/vue';
|
|
14
14
|
import { Platform, debugNodeId, dlog, isSymbioteNode } from '@symbiote-native/engine';
|
|
15
|
-
import { NAVIGATION_EVENT_BLUR, NAVIGATION_EVENT_FOCUS, NAVIGATION_EVENT_STATE, RNS_SCREEN_CONTENT_WRAPPER_VIEW_NAME, RNS_SCREEN_STACK_VIEW_NAME, RNS_SCREEN_VIEW_NAME, SCREEN_ON_APPEAR, SCREEN_ON_DISAPPEAR, SCREEN_ON_DISMISSED, SCREEN_ON_HEADER_BACK_BUTTON_CLICKED, SCREEN_ON_WILL_APPEAR, SCREEN_ON_WILL_DISAPPEAR, STACK_ON_FINISH_TRANSITIONING, buildSearchBarHandle, buildSearchBarPassthrough, computeActivityState, createInitialNavigatorState, createNavigationEmitter, isRecord, navigatorReducer, resolveScreenRenderPlan, resolveStackProps, } from '../../core/index.js';
|
|
15
|
+
import { NAVIGATION_EVENT_BLUR, NAVIGATION_EVENT_FOCUS, NAVIGATION_EVENT_STATE, RNS_SCREEN_CONTENT_WRAPPER_VIEW_NAME, RNS_SCREEN_STACK_VIEW_NAME, RNS_SCREEN_VIEW_NAME, SCREEN_ON_APPEAR, SCREEN_ON_DISAPPEAR, SCREEN_ON_DISMISSED, SCREEN_ON_HEADER_BACK_BUTTON_CLICKED, SCREEN_ON_WILL_APPEAR, SCREEN_ON_WILL_DISAPPEAR, STACK_ON_FINISH_TRANSITIONING, buildSearchBarHandle, buildSearchBarPassthrough, computeActivityState, createInitialNavigatorState, createNavigationEmitter, isRecord, navigatorReducer, reconcileStackRoutes, resolveScreenRenderPlan, resolveStackProps, } from '../../core/index.js';
|
|
16
16
|
import { NavigationScope, injectNavigationScope } from '../navigation-context.js';
|
|
17
17
|
import { Screen } from '../screen.js';
|
|
18
18
|
// backTitleVisible defaults to `true` on both platforms per the codegen spec's own default
|
|
@@ -106,8 +106,20 @@ const StackImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose }) =
|
|
|
106
106
|
initialState = createInitialNavigatorState(createRoute(initialRouteName, initialRegistry.get(initialRouteName)?.initialParams));
|
|
107
107
|
}
|
|
108
108
|
const state = shallowRef(initialState);
|
|
109
|
+
// The screen names the render pass below last saw in the slot. A PLAIN local, not a ref: it is
|
|
110
|
+
// a cache of what was just rendered, never a reactive source, so refreshing it from inside the
|
|
111
|
+
// render closure is not a state write during render (which would re-trigger the very render
|
|
112
|
+
// effect that produced it).
|
|
113
|
+
let registeredNames = [];
|
|
114
|
+
// A <Stack.Screen> marker can vanish from the slot while its route is still in the pushed
|
|
115
|
+
// history, which would leave that entry with nothing to render (reconcileStackRoutes' header).
|
|
116
|
+
// Reconciling on READ rather than writing the ref keeps the repair out of the render pass; the
|
|
117
|
+
// dispatch below then persists it, so the next push builds on the pruned history.
|
|
118
|
+
function currentState() {
|
|
119
|
+
return reconcileStackRoutes(state.value, registeredNames);
|
|
120
|
+
}
|
|
109
121
|
function dispatch(action) {
|
|
110
|
-
state.value = navigatorReducer(
|
|
122
|
+
state.value = navigatorReducer(currentState(), action);
|
|
111
123
|
}
|
|
112
124
|
const handle = {
|
|
113
125
|
push: (name, params) => dispatch({ type: 'push', route: createRoute(name, params) }),
|
|
@@ -117,7 +129,7 @@ const StackImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose }) =
|
|
|
117
129
|
replace: (name, params) => dispatch({ type: 'replace', route: createRoute(name, params) }),
|
|
118
130
|
setParams: (params, key) => dispatch({ type: 'setParams', key, params }),
|
|
119
131
|
reset: nextState => dispatch({ type: 'reset', state: nextState }),
|
|
120
|
-
canGoBack: () =>
|
|
132
|
+
canGoBack: () => currentState().routes.length > 1,
|
|
121
133
|
};
|
|
122
134
|
expose(handle);
|
|
123
135
|
// Broadcasts the router state to every still-live route's emitter (useNavigationState's
|
|
@@ -126,18 +138,20 @@ const StackImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose }) =
|
|
|
126
138
|
// useEffect, which must be deferred past render to avoid a descendant setState-during-render):
|
|
127
139
|
// Vue's provide/inject + shallowRef.value writes are safe to perform directly inside the
|
|
128
140
|
// render closure below, so the broadcast happens right there, once per render.
|
|
129
|
-
function broadcastState() {
|
|
130
|
-
for (const route of
|
|
131
|
-
emitterFor(route.key).emit(NAVIGATION_EVENT_STATE,
|
|
141
|
+
function broadcastState(current) {
|
|
142
|
+
for (const route of current.routes) {
|
|
143
|
+
emitterFor(route.key).emit(NAVIGATION_EVENT_STATE, current);
|
|
132
144
|
}
|
|
133
145
|
for (const routeKey of emitters.keys()) {
|
|
134
|
-
if (!
|
|
146
|
+
if (!current.routes.some(route => route.key === routeKey))
|
|
135
147
|
emitters.delete(routeKey);
|
|
136
148
|
}
|
|
137
149
|
}
|
|
138
150
|
return () => {
|
|
139
|
-
broadcastState();
|
|
140
151
|
const registry = collectRegistry(slots.default?.() ?? []);
|
|
152
|
+
registeredNames = [...registry.keys()];
|
|
153
|
+
const current = currentState();
|
|
154
|
+
broadcastState(current);
|
|
141
155
|
const screenOptions = asScreenOptions(attrs.screenOptions);
|
|
142
156
|
// Investigation instrumentation (flicker-on-focus bug): STACK_ON_FINISH_TRANSITIONING is
|
|
143
157
|
// the native signal that the WHOLE push/pop animation has finished (as opposed to
|
|
@@ -149,7 +163,7 @@ const StackImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose }) =
|
|
|
149
163
|
[STACK_ON_FINISH_TRANSITIONING]: () => dlog(`Stack: onFinishTransitioning at t=${Date.now()}`),
|
|
150
164
|
},
|
|
151
165
|
});
|
|
152
|
-
const children =
|
|
166
|
+
const children = current.routes.map((route, index) => {
|
|
153
167
|
const entry = registry.get(route.name);
|
|
154
168
|
if (entry === undefined) {
|
|
155
169
|
dlog(`Stack: no screen registered for route name "${route.name}"`);
|
|
@@ -157,18 +171,18 @@ const StackImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose }) =
|
|
|
157
171
|
}
|
|
158
172
|
const screenOptionsArgs = { route, navigation: handle };
|
|
159
173
|
const mergedOptions = resolveScreenOptions(entry, screenOptionsArgs, screenOptions);
|
|
160
|
-
const activityState = computeActivityState(index,
|
|
174
|
+
const activityState = computeActivityState(index, current.routes.length);
|
|
161
175
|
// Investigation instrumentation (flicker-on-focus bug): fires on EVERY Stack render, not
|
|
162
176
|
// just on transitions, so the log stream shows whether a route's activityState/index ever
|
|
163
177
|
// changes outside of a push/pop dispatch. Kept behind DEBUG, never removed.
|
|
164
|
-
dlog(`Stack: render route "${route.name}" index=${index}/${
|
|
178
|
+
dlog(`Stack: render route "${route.name}" index=${index}/${current.routes.length - 1} ` +
|
|
165
179
|
`activityState=${activityState} at t=${Date.now()}`);
|
|
166
180
|
const routeEmitter = emitterFor(route.key);
|
|
167
181
|
const searchBarOptions = mergedOptions.headerSearchBarOptions;
|
|
168
182
|
const plan = resolveScreenRenderPlan({
|
|
169
183
|
screenId: route.key,
|
|
170
184
|
index,
|
|
171
|
-
routeCount:
|
|
185
|
+
routeCount: current.routes.length,
|
|
172
186
|
options: mergedOptions,
|
|
173
187
|
platform: NAVIGATOR_PLATFORM,
|
|
174
188
|
isAndroid: Platform.OS === 'android',
|
package/build/vue/tabs/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// Tab, the Vue lifecycle half. The focused-index router (tab-router-state) and the tab-bar
|
|
2
2
|
// Descriptor builder (render-tabs) live in @symbiote-native/navigation core, shared verbatim with
|
|
3
|
-
// the React/Angular adapters; here Vue supplies the lifecycle - a
|
|
4
|
-
// (Vue's twin of useReducer), useId for route-key generation, expose() for the
|
|
5
|
-
// handle - plus the descriptor bridge for the tab-bar leaf,
|
|
3
|
+
// the React/Angular adapters; here Vue supplies the lifecycle - a shallowRef for the dispatched
|
|
4
|
+
// router state (Vue's twin of useReducer), useId for route-key generation, expose() for the
|
|
5
|
+
// jumpTo/setParams handle - plus the descriptor bridge for the tab-bar leaf, like Stack's header
|
|
6
6
|
// config (stack.ts). Unlike Stack, a bottom-tabs bar is a PURE-JS UI: it paints ordinary
|
|
7
7
|
// `symbiote-view`/`symbiote-text` primitives via the shared render fn, so there is no
|
|
8
8
|
// react-native-screens ViewConfig to register here - Tab needs no `../register` import.
|
|
9
|
-
import { defineComponent, h, nextTick,
|
|
9
|
+
import { defineComponent, h, nextTick, onUnmounted, shallowRef, useId } from '@vue/runtime-core';
|
|
10
10
|
import { descriptorToVue, normalizeVueAttrs } from '@symbiote-native/vue';
|
|
11
11
|
import { dlog } from '@symbiote-native/engine';
|
|
12
|
-
import { NAVIGATION_EVENT_BLUR, NAVIGATION_EVENT_FOCUS, createInitialTabState, createNavigationEmitter, diffFocusedRoute, isFocusedRoute, isRecord, renderTabBar, tabRouterReducer, } from '../../core/index.js';
|
|
12
|
+
import { NAVIGATION_EVENT_BLUR, NAVIGATION_EVENT_FOCUS, createInitialTabState, createNavigationEmitter, diffFocusedRoute, isFocusedRoute, isRecord, reconcileTabRoutes, renderTabBar, tabRouterReducer, } from '../../core/index.js';
|
|
13
13
|
import { NavigationScope, injectNavigationScope } from '../navigation-context.js';
|
|
14
14
|
import { TabScreen } from '../tab-screen.js';
|
|
15
15
|
function asString(value) {
|
|
@@ -73,23 +73,33 @@ const TabImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose }) =>
|
|
|
73
73
|
const initialRoutes = buildRoutes(initialRegistry);
|
|
74
74
|
if (initialRoutes.length === 0)
|
|
75
75
|
dlog('Tab: no <Tab.Screen> children registered');
|
|
76
|
-
|
|
76
|
+
// A <Tab.Screen> can appear or disappear after mount (a marker behind a v-if, a data-driven
|
|
77
|
+
// screen list), so the route list is re-collected from the slot on every render and the
|
|
78
|
+
// DISPATCHED state is reconciled against it (reconcileTabRoutes, core - it preserves each
|
|
79
|
+
// surviving route's key and accumulated params and keeps focus on the same route NAME) rather
|
|
80
|
+
// than staying frozen at whatever setup() first saw. Slot vnodes are not reactive state, so
|
|
81
|
+
// the render fn is the only place that can observe the registry change: the reconciliation
|
|
82
|
+
// happens there, as a pure local, and never writes back - a state write inside a derivation is
|
|
83
|
+
// an error in Vue, not a style choice. `null` means nothing has dispatched yet, which is what
|
|
84
|
+
// keeps initialRouteName honored when the markers arrive after the first render.
|
|
85
|
+
const dispatchedState = shallowRef(null);
|
|
86
|
+
// Non-reactive cache of the route list the last render derived: dispatch() reduces over the
|
|
87
|
+
// RECONCILED state, so it needs the same list that paint used. A ref here would be a reactive
|
|
88
|
+
// write from the render fn, exactly what the comment above rules out.
|
|
89
|
+
let latestRoutes = initialRoutes;
|
|
90
|
+
function resolveState(routes) {
|
|
91
|
+
const dispatched = dispatchedState.value;
|
|
92
|
+
return dispatched === null
|
|
93
|
+
? createInitialTabState(routes, asString(attrs.initialRouteName))
|
|
94
|
+
: reconcileTabRoutes(dispatched, routes);
|
|
95
|
+
}
|
|
77
96
|
function dispatch(action) {
|
|
78
|
-
|
|
97
|
+
dispatchedState.value = tabRouterReducer(resolveState(latestRoutes), action);
|
|
79
98
|
}
|
|
80
99
|
const jumpTo = (name, params) => dispatch({ type: 'jumpTo', name, params });
|
|
81
100
|
const setParams = (params, key) => dispatch({ type: 'setParams', key, params });
|
|
82
101
|
const handle = { jumpTo, setParams };
|
|
83
102
|
expose(handle);
|
|
84
|
-
// Tab paints its own bar in pure JS - there is no native onAppear/onDisappear to hook (unlike
|
|
85
|
-
// Stack's RNSScreen), so focus/blur is synthesized here: emit 'focus' once the newly-focused
|
|
86
|
-
// route's content has mounted, 'blur' when it's about to be replaced or Tab itself unmounts.
|
|
87
|
-
// Keyed on the route KEY (not the route object) so a setParams-only change (new route object,
|
|
88
|
-
// same key) doesn't spuriously re-fire focus/blur - mirrors tabs.ts's React twin exactly,
|
|
89
|
-
// just expressed as a `watch` over the focused key instead of a useEffect dependency array.
|
|
90
|
-
function focusedKeyOf(current) {
|
|
91
|
-
return current.routes[current.index]?.key;
|
|
92
|
-
}
|
|
93
103
|
// One emitter per route.key, created lazily and cached for the navigator's whole lifetime -
|
|
94
104
|
// mirrors stack.ts's own `emitters` map. This decouples emitter IDENTITY (stable, looked up
|
|
95
105
|
// by key, read by the render closure below when it builds a route's NavigationScope) from
|
|
@@ -112,24 +122,23 @@ const TabImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose }) =>
|
|
|
112
122
|
// Stack's RNSScreen), so focus/blur is synthesized here: emit 'focus' once the newly-focused
|
|
113
123
|
// route's content has mounted, 'blur' when it's about to be replaced or Tab itself unmounts.
|
|
114
124
|
// Keyed on the route KEY (not the route object) so a setParams-only change (new route object,
|
|
115
|
-
// same key) doesn't spuriously re-fire focus/blur
|
|
116
|
-
//
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
});
|
|
125
|
+
// same key) doesn't spuriously re-fire focus/blur.
|
|
126
|
+
//
|
|
127
|
+
// Driven from the render pass rather than a `watch` because the focused key follows the
|
|
128
|
+
// SLOT-collected route list too - a marker disappearing can move focus, and slot vnodes are
|
|
129
|
+
// not reactive state, so no watcher source can see that; only a render can. The diff therefore
|
|
130
|
+
// lives where the state is derived, and stays a plain local, never a reactive write.
|
|
131
|
+
//
|
|
124
132
|
// The bookkeeping (which key is focused) updates immediately so the render closure below
|
|
125
133
|
// always reads the right route; the actual emit is deferred to nextTick(), which resolves
|
|
126
134
|
// only after the CURRENT flush cycle fully drains - including the newly-focused screen's own
|
|
127
|
-
// onMounted (subscribing its useIsFocused/useFocusEffect listeners).
|
|
128
|
-
//
|
|
129
|
-
// effect, not after an arbitrary sibling
|
|
130
|
-
//
|
|
131
|
-
|
|
132
|
-
|
|
135
|
+
// onMounted (subscribing its useIsFocused/useFocusEffect listeners). Emitting inline would
|
|
136
|
+
// reach zero subscribers; flush:'post' would not have been enough either, since it only
|
|
137
|
+
// orders a callback after THIS component's own render effect, not after an arbitrary sibling
|
|
138
|
+
// post-flush job (a just-mounted child's onMounted) queued after it in the same batch.
|
|
139
|
+
let focusedRouteKey;
|
|
140
|
+
function syncFocus(current) {
|
|
141
|
+
const nextKey = current.routes[current.index]?.key;
|
|
133
142
|
const { blurKey, focusKey } = diffFocusedRoute(focusedRouteKey, nextKey);
|
|
134
143
|
if (blurKey === undefined && focusKey === undefined)
|
|
135
144
|
return;
|
|
@@ -144,7 +153,7 @@ const TabImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose }) =>
|
|
|
144
153
|
emitterFor(focusKey).emit(NAVIGATION_EVENT_FOCUS);
|
|
145
154
|
}
|
|
146
155
|
});
|
|
147
|
-
}
|
|
156
|
+
}
|
|
148
157
|
onUnmounted(() => {
|
|
149
158
|
if (focusedRouteKey !== undefined)
|
|
150
159
|
emitterFor(focusedRouteKey).emit(NAVIGATION_EVENT_BLUR);
|
|
@@ -154,10 +163,14 @@ const TabImpl = defineComponent((_props, { attrs: rawAttrs, slots, expose }) =>
|
|
|
154
163
|
const screenOptions = asTabOptions(attrs.screenOptions);
|
|
155
164
|
if (registry.size === 0)
|
|
156
165
|
dlog('Tab: no <Tab.Screen> children registered');
|
|
157
|
-
const
|
|
158
|
-
|
|
166
|
+
const routes = buildRoutes(registry);
|
|
167
|
+
latestRoutes = routes;
|
|
168
|
+
const state = resolveState(routes);
|
|
169
|
+
syncFocus(state);
|
|
170
|
+
const focusedRoute = state.routes[state.index];
|
|
171
|
+
const items = state.routes.map((route, index) => {
|
|
159
172
|
const entry = registry.get(route.name);
|
|
160
|
-
const focused = isFocusedRoute(index, state.
|
|
173
|
+
const focused = isFocusedRoute(index, state.index);
|
|
161
174
|
if (entry === undefined) {
|
|
162
175
|
dlog(`Tab: no screen registered for route name "${route.name}"`);
|
|
163
176
|
return { key: route.key, focused, label: route.name, passthrough: {} };
|
|
@@ -83,12 +83,14 @@ export class Drawer {
|
|
|
83
83
|
this.dispatch({ type: 'toggleDrawer' });
|
|
84
84
|
};
|
|
85
85
|
jumpTo = (name) => {
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
86
|
+
// Both sides of the dispatch, mirroring vue/drawer/index.ts's jumpTo: an unregistered name is
|
|
87
|
+
// a documented reducer no-op that hands the SAME state back, so animating off the pre-dispatch
|
|
88
|
+
// snapshot alone would slide the panel shut while the router still says isOpen. The signal is
|
|
89
|
+
// set synchronously inside dispatch, so the second read is already the reducer's own answer.
|
|
89
90
|
const wasOpen = this.stateSignal()?.isOpen ?? false;
|
|
90
91
|
this.dispatch({ type: 'jumpTo', name });
|
|
91
|
-
|
|
92
|
+
const isOpenNow = this.stateSignal()?.isOpen ?? false;
|
|
93
|
+
if (wasOpen && !isOpenNow)
|
|
92
94
|
this.animateProgressTo(false);
|
|
93
95
|
};
|
|
94
96
|
panResponder = PanResponder.create({
|
|
@@ -346,8 +348,8 @@ export class Drawer {
|
|
|
346
348
|
}
|
|
347
349
|
return { $implicit: { state: currentState, descriptors, navigation: this } };
|
|
348
350
|
}
|
|
349
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
350
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
351
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Drawer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
352
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: Drawer, isStandalone: true, selector: "Drawer", inputs: { initialRouteName: "initialRouteName", drawerStyle: "drawerStyle", drawerType: "drawerType", drawerPosition: "drawerPosition", drawerWidth: "drawerWidth", overlayColor: "overlayColor", swipeEnabled: "swipeEnabled", swipeEdgeWidth: "swipeEdgeWidth", swipeMinDistance: "swipeMinDistance", swipeMinVelocity: "swipeMinVelocity" }, queries: [{ propertyName: "drawerContentTemplate", first: true, predicate: ["drawerContent"], descendants: true, read: TemplateRef }, { propertyName: "drawerScreenChildren", predicate: DrawerScreenDirective }], usesOnChanges: true, ngImport: i0, template: `
|
|
351
353
|
@if (state(); as currentState) {
|
|
352
354
|
<View [style]="rootStyle()" [symbioteHostProps]="rootPanHandlers()">
|
|
353
355
|
@for (slot of slotOrder(); track slot) {
|
|
@@ -391,7 +393,7 @@ export class Drawer {
|
|
|
391
393
|
}
|
|
392
394
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NavigationScopeDirective, selector: "[symbioteNavigationScope]", inputs: ["symbioteNavigationScope", "navigation", "emitter"] }, { kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }, { kind: "component", type: View, selector: "symbiote-view, View" }, { kind: "component", type: AnimatedView, selector: "AnimatedView, symbiote-animated-view", inputs: ["style", "animatedProps", "passthroughAnimatedPropExplicitValues"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
393
395
|
}
|
|
394
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
396
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Drawer, decorators: [{
|
|
395
397
|
type: Component,
|
|
396
398
|
args: [{
|
|
397
399
|
selector: 'Drawer',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/drawer/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/drawer/index.ts"],"names":[],"mappings":"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"}
|