@symbiote-native/angular 0.1.0 → 0.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/README.md +17 -4
- package/build/angular/bootstrap.d.ts +7 -0
- package/build/angular/bootstrap.js +15 -0
- package/build/angular/bootstrap.js.map +1 -0
- package/build/bootstrap.d.ts +7 -0
- package/build/bootstrap.js +14 -0
- package/package.json +11 -6
- package/src/bootstrap.ts +26 -0
- package/build/angular/components/drawer-layout-android/index.android.d.ts +0 -34
- package/build/angular/components/drawer-layout-android/index.android.js +0 -291
- package/build/angular/components/drawer-layout-android/index.android.js.map +0 -1
- package/build/angular/components/drawer-layout-android/index.d.ts +0 -11
- package/build/angular/components/drawer-layout-android/index.js +0 -109
- package/build/angular/components/drawer-layout-android/index.js.map +0 -1
- package/build/angular/components/drawer-layout-android/shared.d.ts +0 -74
- package/build/angular/components/drawer-layout-android/shared.js +0 -138
- package/build/angular/components/drawer-layout-android/shared.js.map +0 -1
- package/build/components/drawer-layout-android/index.android.d.ts +0 -29
- package/build/components/drawer-layout-android/index.android.js +0 -326
- package/build/components/drawer-layout-android/index.d.ts +0 -8
- package/build/components/drawer-layout-android/index.js +0 -145
- package/build/components/drawer-layout-android/shared.d.ts +0 -71
- package/build/components/drawer-layout-android/shared.js +0 -205
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @symbiote-native/angular
|
|
2
2
|
|
|
3
|
-
The **Angular adapter** for [
|
|
3
|
+
The **Angular adapter** for [SymbioteNative](../../README.md) — render real native iOS/Android views
|
|
4
4
|
from Angular, on the *same* untouched core as React and Vue, with React Native's own renderer
|
|
5
5
|
never in the path. It is a `Renderer2`/`RendererFactory2` whose calls map onto the engine's
|
|
6
6
|
four-call mutation API; `@symbiote-native/engine` does the clone-on-write commit into Fabric.
|
|
@@ -11,11 +11,24 @@ already-validated engine with zero changes to it.
|
|
|
11
11
|
|
|
12
12
|
<div align="center">
|
|
13
13
|
|
|
14
|
-

|
|
15
15
|
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
|
-
> New to
|
|
18
|
+
> New to SymbioteNative? The [root README](../../README.md) has the architecture.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install @symbiote-native/angular react-native @angular/core
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
`react-native` and `@angular/core` (**>=20**, for stable zoneless change detection) stay your app's
|
|
29
|
+
own top-level dependencies. There's no `create-symbiote` scaffolder yet, so the AOT pipeline
|
|
30
|
+
(`ngc --watch` alongside Metro — see [Run it](#run-it)) and the Metro config come from
|
|
31
|
+
[`examples/angular`](../../examples/angular) rather than a generator.
|
|
19
32
|
|
|
20
33
|
---
|
|
21
34
|
|
|
@@ -143,5 +156,5 @@ pnpm e2e:test:ios # run the canary journeys on the iOS simulator
|
|
|
143
156
|
# …or the android equivalents: e2e:build:android / e2e:test:android
|
|
144
157
|
```
|
|
145
158
|
|
|
146
|
-
Why these come for free — a
|
|
159
|
+
Why these come for free — a SymbioteNative app is a stock RN app underneath, so RN's whole testing
|
|
147
160
|
ecosystem applies unchanged. See [Testing](../../README.md#testing).
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Type } from '@angular/core';
|
|
2
|
+
import { type IBootstrapHostOptions } from '@symbiote-native/components/bootstrap';
|
|
3
|
+
export type { IBootstrapHostOptions } from '@symbiote-native/components/bootstrap';
|
|
4
|
+
export type IBootstrapApplicationOptions = IBootstrapHostOptions & {
|
|
5
|
+
appName: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function bootstrapApplication(AppComponent: Type<unknown>, options: IBootstrapApplicationOptions): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Zero-config app entry, the Angular twin of adapters/react/src/bootstrap.ts. Lives OUTSIDE the
|
|
2
|
+
// package's main barrel — see that file's header for why anything importing react-native must
|
|
3
|
+
// stay there. No @Component/@Directive decorators here, so unlike the package's main "." entry
|
|
4
|
+
// this needs no ngc/AOT build step and can stay a plain source reference.
|
|
5
|
+
import { AppRegistry as RNAppRegistry } from 'react-native';
|
|
6
|
+
import { bootstrapHost } from '@symbiote-native/components/bootstrap';
|
|
7
|
+
import { AppRegistry, setHostRegistrar } from './modules/app-registry';
|
|
8
|
+
// Mirrors real Angular's bootstrapApplication(RootComponent, config) idiom.
|
|
9
|
+
export function bootstrapApplication(AppComponent, options) {
|
|
10
|
+
const { appName, ...bootstrapOptions } = options;
|
|
11
|
+
bootstrapHost(bootstrapOptions);
|
|
12
|
+
setHostRegistrar(RNAppRegistry);
|
|
13
|
+
AppRegistry.registerComponent(appName, () => AppComponent);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,8FAA8F;AAC9F,+FAA+F;AAC/F,0EAA0E;AAE1E,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,aAAa,EAA8B,MAAM,uCAAuC,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQvE,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAClC,YAA2B,EAC3B,OAAqC;IAErC,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC;IACjD,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChC,WAAW,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Type } from '@angular/core';
|
|
2
|
+
import { type IBootstrapHostOptions } from '@symbiote-native/components/bootstrap';
|
|
3
|
+
export type { IBootstrapHostOptions } from '@symbiote-native/components/bootstrap';
|
|
4
|
+
export type IBootstrapApplicationOptions = IBootstrapHostOptions & {
|
|
5
|
+
appName: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function bootstrapApplication(AppComponent: Type<unknown>, options: IBootstrapApplicationOptions): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Zero-config app entry, the Angular twin of adapters/react/src/bootstrap.ts. Lives OUTSIDE the
|
|
2
|
+
// package's main barrel — see that file's header for why anything importing react-native must
|
|
3
|
+
// stay there. No @Component/@Directive decorators here, so unlike the package's main "." entry
|
|
4
|
+
// this needs no ngc/AOT build step and can stay a plain source reference.
|
|
5
|
+
import { AppRegistry as RNAppRegistry } from 'react-native';
|
|
6
|
+
import { bootstrapHost } from '@symbiote-native/components/bootstrap';
|
|
7
|
+
import { AppRegistry, setHostRegistrar } from './modules/app-registry';
|
|
8
|
+
// Mirrors real Angular's bootstrapApplication(RootComponent, config) idiom.
|
|
9
|
+
export function bootstrapApplication(AppComponent, options) {
|
|
10
|
+
const { appName, ...bootstrapOptions } = options;
|
|
11
|
+
bootstrapHost(bootstrapOptions);
|
|
12
|
+
setHostRegistrar(RNAppRegistry);
|
|
13
|
+
AppRegistry.registerComponent(appName, () => AppComponent);
|
|
14
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@symbiote-native/angular",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "SymbioteNative's Angular adapter — a Renderer2/RendererFactory2 with DOM-less bootstrap driving real native iOS/Android views through the same engine as the other adapters.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/OneEyed1366/symbiote-native.git",
|
|
@@ -22,6 +22,11 @@
|
|
|
22
22
|
"react-native": "./build/angular/index.js",
|
|
23
23
|
"default": "./src/index.ts"
|
|
24
24
|
},
|
|
25
|
+
"./bootstrap": {
|
|
26
|
+
"types": "./build/angular/bootstrap.d.ts",
|
|
27
|
+
"react-native": "./build/angular/bootstrap.js",
|
|
28
|
+
"default": "./src/bootstrap.ts"
|
|
29
|
+
},
|
|
25
30
|
"./metro-css-parser": "./metro-css-parser.cjs"
|
|
26
31
|
},
|
|
27
32
|
"files": [
|
|
@@ -33,9 +38,9 @@
|
|
|
33
38
|
"access": "public"
|
|
34
39
|
},
|
|
35
40
|
"dependencies": {
|
|
36
|
-
"@symbiote-native/
|
|
37
|
-
"@symbiote-native/
|
|
38
|
-
"@symbiote-native/
|
|
41
|
+
"@symbiote-native/engine": "0.1.1",
|
|
42
|
+
"@symbiote-native/css-parser": "0.1.1",
|
|
43
|
+
"@symbiote-native/components": "0.2.0"
|
|
39
44
|
},
|
|
40
45
|
"peerDependencies": {
|
|
41
46
|
"@angular/core": ">=20",
|
|
@@ -47,7 +52,7 @@
|
|
|
47
52
|
"@angular/core": "^22",
|
|
48
53
|
"@types/node": "^26.0.0",
|
|
49
54
|
"typescript": "~6.0.0",
|
|
50
|
-
"@symbiote-native/test-utils": "0.
|
|
55
|
+
"@symbiote-native/test-utils": "0.1.1"
|
|
51
56
|
},
|
|
52
57
|
"scripts": {
|
|
53
58
|
"ng:build": "ngc -p tsconfig.angular.json",
|
package/src/bootstrap.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Zero-config app entry, the Angular twin of adapters/react/src/bootstrap.ts. Lives OUTSIDE the
|
|
2
|
+
// package's main barrel — see that file's header for why anything importing react-native must
|
|
3
|
+
// stay there. No @Component/@Directive decorators here, so unlike the package's main "." entry
|
|
4
|
+
// this needs no ngc/AOT build step and can stay a plain source reference.
|
|
5
|
+
|
|
6
|
+
import { AppRegistry as RNAppRegistry } from 'react-native';
|
|
7
|
+
import type { Type } from '@angular/core';
|
|
8
|
+
import { bootstrapHost, type IBootstrapHostOptions } from '@symbiote-native/components/bootstrap';
|
|
9
|
+
import { AppRegistry, setHostRegistrar } from './modules/app-registry';
|
|
10
|
+
|
|
11
|
+
export type { IBootstrapHostOptions } from '@symbiote-native/components/bootstrap';
|
|
12
|
+
|
|
13
|
+
export type IBootstrapApplicationOptions = IBootstrapHostOptions & {
|
|
14
|
+
appName: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// Mirrors real Angular's bootstrapApplication(RootComponent, config) idiom.
|
|
18
|
+
export function bootstrapApplication(
|
|
19
|
+
AppComponent: Type<unknown>,
|
|
20
|
+
options: IBootstrapApplicationOptions,
|
|
21
|
+
): void {
|
|
22
|
+
const { appName, ...bootstrapOptions } = options;
|
|
23
|
+
bootstrapHost(bootstrapOptions);
|
|
24
|
+
setHostRegistrar(RNAppRegistry);
|
|
25
|
+
AppRegistry.registerComponent(appName, () => AppComponent);
|
|
26
|
+
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { type IDrawerLayoutAndroidHandle } from '@symbiote/components';
|
|
3
|
-
import { type ISymbioteEvent, type IViewStyle } from '@symbiote/engine';
|
|
4
|
-
import { DrawerLayoutAndroidBase } from './shared';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export type { IDrawerPosition, IDrawerLockMode, IKeyboardDismissMode, IDrawerState, IDrawerSlideEvent, IDrawerLayoutAndroidHandle, } from './shared';
|
|
7
|
-
export type { IAngularDrawerLayoutAndroidProps } from './shared';
|
|
8
|
-
export declare class AndroidDrawerLayoutHost {
|
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AndroidDrawerLayoutHost, never>;
|
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AndroidDrawerLayoutHost, "AndroidDrawerLayout", never, {}, {}, never, ["*"], true, never>;
|
|
11
|
-
}
|
|
12
|
-
export declare class DrawerLayoutAndroid extends DrawerLayoutAndroidBase implements IDrawerLayoutAndroidHandle {
|
|
13
|
-
private hostElement?;
|
|
14
|
-
private drawerOpened;
|
|
15
|
-
private readonly changeDetector;
|
|
16
|
-
private cachedResolved;
|
|
17
|
-
private cachedResolvedKey;
|
|
18
|
-
private get resolved();
|
|
19
|
-
get hostProps(): Record<string, unknown>;
|
|
20
|
-
get contentWrapperStyle(): Readonly<IViewStyle>;
|
|
21
|
-
get navigationWrapperStyle(): IViewStyle;
|
|
22
|
-
get navigationPointerEvents(): 'auto' | 'none';
|
|
23
|
-
handleDrawerOpen(): void;
|
|
24
|
-
handleDrawerClose(): void;
|
|
25
|
-
handleDrawerSlide(event: unknown): void;
|
|
26
|
-
handleDrawerStateChanged(event: unknown): void;
|
|
27
|
-
emit(emitter: EventEmitter<ISymbioteEvent>, event: unknown): void;
|
|
28
|
-
openDrawer(): void;
|
|
29
|
-
closeDrawer(): void;
|
|
30
|
-
private dispatchDrawer;
|
|
31
|
-
private get hostNode();
|
|
32
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DrawerLayoutAndroid, never>;
|
|
33
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DrawerLayoutAndroid, "DrawerLayoutAndroid", never, { "drawerWidth": { "alias": "drawerWidth"; "required": false; }; "drawerPosition": { "alias": "drawerPosition"; "required": false; }; "drawerLockMode": { "alias": "drawerLockMode"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "drawerBackgroundColor": { "alias": "drawerBackgroundColor"; "required": false; }; "statusBarBackgroundColor": { "alias": "statusBarBackgroundColor"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "accessibilityElementsHidden": { "alias": "accessibilityElementsHidden"; "required": false; }; "accessibilityViewIsModal": { "alias": "accessibilityViewIsModal"; "required": false; }; "accessibilityIgnoresInvertColors": { "alias": "accessibilityIgnoresInvertColors"; "required": false; }; "accessibilityLanguage": { "alias": "accessibilityLanguage"; "required": false; }; "accessibilityRespondsToUserInteraction": { "alias": "accessibilityRespondsToUserInteraction"; "required": false; }; "accessibilityShowsLargeContentViewer": { "alias": "accessibilityShowsLargeContentViewer"; "required": false; }; "accessibilityLargeContentTitle": { "alias": "accessibilityLargeContentTitle"; "required": false; }; "role": { "alias": "role"; "required": false; }; "aria-label": { "alias": "aria-label"; "required": false; }; "aria-labelledby": { "alias": "aria-labelledby"; "required": false; }; "aria-live": { "alias": "aria-live"; "required": false; }; "aria-hidden": { "alias": "aria-hidden"; "required": false; }; "aria-busy": { "alias": "aria-busy"; "required": false; }; "aria-checked": { "alias": "aria-checked"; "required": false; }; "aria-disabled": { "alias": "aria-disabled"; "required": false; }; "aria-expanded": { "alias": "aria-expanded"; "required": false; }; "aria-selected": { "alias": "aria-selected"; "required": false; }; "aria-modal": { "alias": "aria-modal"; "required": false; }; "aria-valuemax": { "alias": "aria-valuemax"; "required": false; }; "aria-valuemin": { "alias": "aria-valuemin"; "required": false; }; "aria-valuenow": { "alias": "aria-valuenow"; "required": false; }; "aria-valuetext": { "alias": "aria-valuetext"; "required": false; }; }, { "drawerOpen": "drawerOpen"; "drawerClose": "drawerClose"; "drawerSlide": "drawerSlide"; "drawerStateChanged": "drawerStateChanged"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*", "[drawerNavigationView]"], true, never>;
|
|
34
|
-
}
|
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
// DrawerLayoutAndroid on Android: the real build, the Angular twin of the React/Vue
|
|
2
|
-
// index.android.ts. AndroidDrawerLayout is an ordinary Fabric host node committing through the
|
|
3
|
-
// same childSet as the rest of the tree (no per-library glue; the engine derives its events from
|
|
4
|
-
// the ViewConfig, so we render the RAW Fabric name 'AndroidDrawerLayout'). The platform-invariant
|
|
5
|
-
// math — the host prop bag + the content/navigation wrapper styles, the slide/state event
|
|
6
|
-
// normalization, the imperative open/close command NAMES — lives in @symbiote/components, shared
|
|
7
|
-
// verbatim with React/Vue; here Angular supplies only the lifecycle: a `drawerOpened` flag gates
|
|
8
|
-
// the navigation wrapper's pointerEvents, the host node is read by IDENTITY through a #host
|
|
9
|
-
// ViewChild for the imperative commands, and the four (drawer*) events fold into the typed
|
|
10
|
-
// callbacks.
|
|
11
|
-
//
|
|
12
|
-
// Child order matches RN exactly: content FIRST, navigation SECOND. Content is the DEFAULT
|
|
13
|
-
// <ng-content>; the drawer panel is the `[drawerNavigationView]` slot (the Angular twin of React's
|
|
14
|
-
// renderNavigationView / Vue's navigationView slot). Metro picks this file on an Android host; no
|
|
15
|
-
// Platform.OS read. device-verify-pending: the AndroidDrawerLayout name + openDrawer/closeDrawer
|
|
16
|
-
// commands are RN-source-confirmed, not yet exercised on a real Android host.
|
|
17
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, EventEmitter, inject, ViewChild, } from '@angular/core';
|
|
18
|
-
import { CLOSE_DRAWER_COMMAND, OPEN_DRAWER_COMMAND, offsetFromSlide, resolveAccessibilityProps, resolveDrawerLayout, stateFromChange, } from '@symbiote/components';
|
|
19
|
-
import { dispatchViewCommand, dlog, isSymbioteNode, whenCommitted, } from '@symbiote/engine';
|
|
20
|
-
import { DrawerLayoutAndroidBase } from './shared';
|
|
21
|
-
import { SymbioteHostPropsDirective, ViewHost } from '../../primitives';
|
|
22
|
-
import * as i0 from "@angular/core";
|
|
23
|
-
// Angular infers an `(event)` binding's $event as the DOM Event for a custom-schema element,
|
|
24
|
-
// so each handler enters as `unknown` and is narrowed here before reaching a typed callback.
|
|
25
|
-
function isSymbioteEvent(value) {
|
|
26
|
-
return typeof value === 'object' && value !== null && 'nativeEvent' in value;
|
|
27
|
-
}
|
|
28
|
-
// Element-wise reference comparison for the `resolved` memoization key (below). Primitives
|
|
29
|
-
// compare by value here; style/accessibility objects compare by reference, matching how the
|
|
30
|
-
// rest of this codebase treats prop identity (a caller passing a fresh-but-equal style object
|
|
31
|
-
// every render already looks "changed" everywhere else, so this is not a new assumption).
|
|
32
|
-
function sameShallowKey(a, b) {
|
|
33
|
-
if (b === undefined || a.length !== b.length)
|
|
34
|
-
return false;
|
|
35
|
-
for (let i = 0; i < a.length; i += 1) {
|
|
36
|
-
if (a[i] !== b[i])
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
// The raw Fabric host element. Its selector MUST equal DRAWER_VIEW_NAME ('AndroidDrawerLayout',
|
|
42
|
-
// core/components/src/state/drawer-layout-android.ts). A no-hyphen UNKNOWN tag fails Angular's
|
|
43
|
-
// CUSTOM_ELEMENTS_SCHEMA check (the schema only permits hyphenated custom elements); declaring it
|
|
44
|
-
// as a matched standalone component lifts that restriction, and the renderer still hands the
|
|
45
|
-
// literal tag name to the engine — descriptorFor passes any non-`symbiote-*` name through
|
|
46
|
-
// untouched, so it lands as the AndroidDrawerLayout Fabric view. The main component must be added
|
|
47
|
-
// to the engine's ANCHOR_HOST_COMPONENTS (its own bookkeeping host must not paint); this real host
|
|
48
|
-
// must NOT be in that set.
|
|
49
|
-
export class AndroidDrawerLayoutHost {
|
|
50
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AndroidDrawerLayoutHost, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: AndroidDrawerLayoutHost, isStandalone: true, selector: "AndroidDrawerLayout", ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
52
|
-
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AndroidDrawerLayoutHost, decorators: [{
|
|
54
|
-
type: Component,
|
|
55
|
-
args: [{
|
|
56
|
-
selector: 'AndroidDrawerLayout',
|
|
57
|
-
standalone: true,
|
|
58
|
-
template: '<ng-content></ng-content>',
|
|
59
|
-
}]
|
|
60
|
-
}] });
|
|
61
|
-
export class DrawerLayoutAndroid extends DrawerLayoutAndroidBase {
|
|
62
|
-
// {read: ElementRef} hands back the host element (the engine node), NOT the host component
|
|
63
|
-
// instance, so the imperative commands resolve it by IDENTITY against the engine mirror.
|
|
64
|
-
hostElement;
|
|
65
|
-
// Gates the navigation wrapper's pointerEvents (RN _onDrawerOpen/_onDrawerClose setState):
|
|
66
|
-
// closed -> 'none' so the off-screen drawer never intercepts touches; open -> 'auto'.
|
|
67
|
-
drawerOpened = false;
|
|
68
|
-
changeDetector = inject(ChangeDetectorRef);
|
|
69
|
-
// Memoized against the last-seen inputs: AndroidDrawerLayout's native ViewManager
|
|
70
|
-
// (ReactDrawerLayoutManager) enforces a hard 2-child cap with no re-add tolerance — unlike
|
|
71
|
-
// ordinary Fabric views. `resolved` is read FOUR times per template evaluation (once per
|
|
72
|
-
// getter below), and without memoization each read rebuilds fresh hostProps/navigationWrapper-
|
|
73
|
-
// Style objects even when nothing actually changed, so an UNRELATED markForCheck (e.g. the
|
|
74
|
-
// native `(drawerOpen)`/`(drawerClose)` events calling it in handleDrawerOpen/handleDrawerClose)
|
|
75
|
-
// forces the engine to reclone this subtree on every CD pass. Caching on the actual input
|
|
76
|
-
// values (not just drawerOpened) keeps the returned prop/style objects referentially STABLE
|
|
77
|
-
// across a CD pass that touches this component but changes none of its inputs, which is the
|
|
78
|
-
// one thing on the JS side we control to reduce how often this subtree gets re-committed.
|
|
79
|
-
cachedResolved;
|
|
80
|
-
cachedResolvedKey;
|
|
81
|
-
// resolveDrawerLayout owns the host prop bag + the two wrapper styles + the pointerEvents gate
|
|
82
|
-
// (shared with React/Vue); the four getters below read the resolved tree it returns.
|
|
83
|
-
get resolved() {
|
|
84
|
-
const passthrough = resolveAccessibilityProps(this.accessibilityInputs());
|
|
85
|
-
const key = [
|
|
86
|
-
this.drawerWidth,
|
|
87
|
-
this.drawerPosition,
|
|
88
|
-
this.drawerLockMode,
|
|
89
|
-
this.keyboardDismissMode,
|
|
90
|
-
this.drawerBackgroundColor,
|
|
91
|
-
this.statusBarBackgroundColor,
|
|
92
|
-
this.drawerOpened,
|
|
93
|
-
this.style,
|
|
94
|
-
...Object.values(passthrough),
|
|
95
|
-
];
|
|
96
|
-
if (this.cachedResolved !== undefined && sameShallowKey(key, this.cachedResolvedKey)) {
|
|
97
|
-
return this.cachedResolved;
|
|
98
|
-
}
|
|
99
|
-
const resolved = resolveDrawerLayout({
|
|
100
|
-
drawerWidth: this.drawerWidth,
|
|
101
|
-
drawerPosition: this.drawerPosition,
|
|
102
|
-
drawerLockMode: this.drawerLockMode,
|
|
103
|
-
keyboardDismissMode: this.keyboardDismissMode,
|
|
104
|
-
drawerBackgroundColor: this.drawerBackgroundColor,
|
|
105
|
-
statusBarBackgroundColor: this.statusBarBackgroundColor,
|
|
106
|
-
drawerOpened: this.drawerOpened,
|
|
107
|
-
style: this.style,
|
|
108
|
-
// The drawer renders a raw host node (not the View FC), so nothing else folds aria-*/role —
|
|
109
|
-
// resolve them into accessibility* here before passing through.
|
|
110
|
-
passthrough,
|
|
111
|
-
});
|
|
112
|
-
this.cachedResolved = resolved;
|
|
113
|
-
this.cachedResolvedKey = key;
|
|
114
|
-
return resolved;
|
|
115
|
-
}
|
|
116
|
-
get hostProps() {
|
|
117
|
-
return this.resolved.hostProps;
|
|
118
|
-
}
|
|
119
|
-
get contentWrapperStyle() {
|
|
120
|
-
return this.resolved.contentWrapperStyle;
|
|
121
|
-
}
|
|
122
|
-
get navigationWrapperStyle() {
|
|
123
|
-
return this.resolved.navigationWrapperStyle;
|
|
124
|
-
}
|
|
125
|
-
get navigationPointerEvents() {
|
|
126
|
-
return this.resolved.navigationPointerEvents;
|
|
127
|
-
}
|
|
128
|
-
handleDrawerOpen() {
|
|
129
|
-
dlog('Angular DrawerLayoutAndroid onDrawerOpen');
|
|
130
|
-
this.drawerOpened = true;
|
|
131
|
-
this.drawerOpen.emit();
|
|
132
|
-
this.changeDetector.markForCheck();
|
|
133
|
-
}
|
|
134
|
-
handleDrawerClose() {
|
|
135
|
-
dlog('Angular DrawerLayoutAndroid onDrawerClose');
|
|
136
|
-
this.drawerOpened = false;
|
|
137
|
-
this.drawerClose.emit();
|
|
138
|
-
this.changeDetector.markForCheck();
|
|
139
|
-
}
|
|
140
|
-
handleDrawerSlide(event) {
|
|
141
|
-
if (!isSymbioteEvent(event))
|
|
142
|
-
return;
|
|
143
|
-
this.drawerSlide.emit({ offset: offsetFromSlide(event) });
|
|
144
|
-
}
|
|
145
|
-
handleDrawerStateChanged(event) {
|
|
146
|
-
if (!isSymbioteEvent(event))
|
|
147
|
-
return;
|
|
148
|
-
this.drawerStateChanged.emit(stateFromChange(event));
|
|
149
|
-
}
|
|
150
|
-
emit(emitter, event) {
|
|
151
|
-
if (isSymbioteEvent(event))
|
|
152
|
-
emitter.emit(event);
|
|
153
|
-
}
|
|
154
|
-
// The component instance IS the imperative handle (RN's DrawerLayoutAndroidMethods): a parent
|
|
155
|
-
// calls @ViewChild(DrawerLayoutAndroid).openDrawer().
|
|
156
|
-
openDrawer() {
|
|
157
|
-
this.dispatchDrawer(OPEN_DRAWER_COMMAND);
|
|
158
|
-
}
|
|
159
|
-
closeDrawer() {
|
|
160
|
-
this.dispatchDrawer(CLOSE_DRAWER_COMMAND);
|
|
161
|
-
}
|
|
162
|
-
dispatchDrawer(command) {
|
|
163
|
-
const node = this.hostNode;
|
|
164
|
-
if (node === null) {
|
|
165
|
-
dlog(`Angular DrawerLayoutAndroid ${command} no-op: no committed host node`);
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
// whenCommitted defers until the node has a Fabric tag. Angular coalesces commits on a
|
|
169
|
-
// microtask (renderer.requestCommit), so an imperative call right after creation can precede
|
|
170
|
-
// the commit and otherwise no-op — the same async-commit gotcha as Switch's snap-back.
|
|
171
|
-
whenCommitted(node, () => dispatchViewCommand(node, command, []));
|
|
172
|
-
}
|
|
173
|
-
get hostNode() {
|
|
174
|
-
const native = this.hostElement?.nativeElement;
|
|
175
|
-
return isSymbioteNode(native) ? native : null;
|
|
176
|
-
}
|
|
177
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DrawerLayoutAndroid, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
178
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: DrawerLayoutAndroid, isStandalone: true, selector: "DrawerLayoutAndroid", inputs: { drawerWidth: "drawerWidth", drawerPosition: "drawerPosition", drawerLockMode: "drawerLockMode", keyboardDismissMode: "keyboardDismissMode", drawerBackgroundColor: "drawerBackgroundColor", statusBarBackgroundColor: "statusBarBackgroundColor", style: "style", nativeID: "nativeID", testID: "testID", accessible: "accessible", accessibilityLabel: "accessibilityLabel", accessibilityHint: "accessibilityHint", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityActions: "accessibilityActions", accessibilityLabelledBy: "accessibilityLabelledBy", importantForAccessibility: "importantForAccessibility", accessibilityLiveRegion: "accessibilityLiveRegion", screenReaderFocusable: "screenReaderFocusable", accessibilityElementsHidden: "accessibilityElementsHidden", accessibilityViewIsModal: "accessibilityViewIsModal", accessibilityIgnoresInvertColors: "accessibilityIgnoresInvertColors", accessibilityLanguage: "accessibilityLanguage", accessibilityRespondsToUserInteraction: "accessibilityRespondsToUserInteraction", accessibilityShowsLargeContentViewer: "accessibilityShowsLargeContentViewer", accessibilityLargeContentTitle: "accessibilityLargeContentTitle", role: "role", "aria-label": "aria-label", "aria-labelledby": "aria-labelledby", "aria-live": "aria-live", "aria-hidden": "aria-hidden", "aria-busy": "aria-busy", "aria-checked": "aria-checked", "aria-disabled": "aria-disabled", "aria-expanded": "aria-expanded", "aria-selected": "aria-selected", "aria-modal": "aria-modal", "aria-valuemax": "aria-valuemax", "aria-valuemin": "aria-valuemin", "aria-valuenow": "aria-valuenow", "aria-valuetext": "aria-valuetext" }, outputs: { drawerOpen: "drawerOpen", drawerClose: "drawerClose", drawerSlide: "drawerSlide", drawerStateChanged: "drawerStateChanged", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, viewQueries: [{ propertyName: "hostElement", first: true, predicate: ["host"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
|
|
179
|
-
<AndroidDrawerLayout
|
|
180
|
-
#host
|
|
181
|
-
[symbioteHostProps]="hostProps"
|
|
182
|
-
(drawerOpen)="handleDrawerOpen()"
|
|
183
|
-
(drawerClose)="handleDrawerClose()"
|
|
184
|
-
(drawerSlide)="handleDrawerSlide($event)"
|
|
185
|
-
(drawerStateChanged)="handleDrawerStateChanged($event)"
|
|
186
|
-
(accessibilityAction)="emit(accessibilityAction, $event)"
|
|
187
|
-
(accessibilityTap)="emit(accessibilityTap, $event)"
|
|
188
|
-
(magicTap)="emit(magicTap, $event)"
|
|
189
|
-
(accessibilityEscape)="emit(accessibilityEscape, $event)"
|
|
190
|
-
>
|
|
191
|
-
<symbiote-view [style]="contentWrapperStyle">
|
|
192
|
-
<ng-content></ng-content>
|
|
193
|
-
</symbiote-view>
|
|
194
|
-
<symbiote-view [style]="navigationWrapperStyle" [pointerEvents]="navigationPointerEvents">
|
|
195
|
-
<ng-content select="[drawerNavigationView]"></ng-content>
|
|
196
|
-
</symbiote-view>
|
|
197
|
-
</AndroidDrawerLayout>
|
|
198
|
-
`, isInline: true, dependencies: [{ kind: "component", type: AndroidDrawerLayoutHost, selector: "AndroidDrawerLayout" }, { kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }, { kind: "component", type: ViewHost, selector: "symbiote-view, View" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
199
|
-
}
|
|
200
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DrawerLayoutAndroid, decorators: [{
|
|
201
|
-
type: Component,
|
|
202
|
-
args: [{
|
|
203
|
-
selector: 'DrawerLayoutAndroid',
|
|
204
|
-
standalone: true,
|
|
205
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
206
|
-
imports: [AndroidDrawerLayoutHost, SymbioteHostPropsDirective, ViewHost],
|
|
207
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
208
|
-
inputs: [
|
|
209
|
-
'drawerWidth',
|
|
210
|
-
'drawerPosition',
|
|
211
|
-
'drawerLockMode',
|
|
212
|
-
'keyboardDismissMode',
|
|
213
|
-
'drawerBackgroundColor',
|
|
214
|
-
'statusBarBackgroundColor',
|
|
215
|
-
'style',
|
|
216
|
-
'nativeID',
|
|
217
|
-
'testID',
|
|
218
|
-
'accessible',
|
|
219
|
-
'accessibilityLabel',
|
|
220
|
-
'accessibilityHint',
|
|
221
|
-
'accessibilityRole',
|
|
222
|
-
'accessibilityState',
|
|
223
|
-
'accessibilityValue',
|
|
224
|
-
'accessibilityActions',
|
|
225
|
-
'accessibilityLabelledBy',
|
|
226
|
-
'importantForAccessibility',
|
|
227
|
-
'accessibilityLiveRegion',
|
|
228
|
-
'screenReaderFocusable',
|
|
229
|
-
'accessibilityElementsHidden',
|
|
230
|
-
'accessibilityViewIsModal',
|
|
231
|
-
'accessibilityIgnoresInvertColors',
|
|
232
|
-
'accessibilityLanguage',
|
|
233
|
-
'accessibilityRespondsToUserInteraction',
|
|
234
|
-
'accessibilityShowsLargeContentViewer',
|
|
235
|
-
'accessibilityLargeContentTitle',
|
|
236
|
-
'role',
|
|
237
|
-
'aria-label',
|
|
238
|
-
'aria-labelledby',
|
|
239
|
-
'aria-live',
|
|
240
|
-
'aria-hidden',
|
|
241
|
-
'aria-busy',
|
|
242
|
-
'aria-checked',
|
|
243
|
-
'aria-disabled',
|
|
244
|
-
'aria-expanded',
|
|
245
|
-
'aria-selected',
|
|
246
|
-
'aria-modal',
|
|
247
|
-
'aria-valuemax',
|
|
248
|
-
'aria-valuemin',
|
|
249
|
-
'aria-valuenow',
|
|
250
|
-
'aria-valuetext',
|
|
251
|
-
],
|
|
252
|
-
// The Switch precedent: fields decorated with @Output() on the shared base class
|
|
253
|
-
// (DrawerLayoutAndroidBase) still need their names re-declared here for Angular's
|
|
254
|
-
// component metadata to expose them as outputs of THIS concrete class.
|
|
255
|
-
outputs: [
|
|
256
|
-
'drawerOpen',
|
|
257
|
-
'drawerClose',
|
|
258
|
-
'drawerSlide',
|
|
259
|
-
'drawerStateChanged',
|
|
260
|
-
'accessibilityAction',
|
|
261
|
-
'accessibilityTap',
|
|
262
|
-
'magicTap',
|
|
263
|
-
'accessibilityEscape',
|
|
264
|
-
],
|
|
265
|
-
template: `
|
|
266
|
-
<AndroidDrawerLayout
|
|
267
|
-
#host
|
|
268
|
-
[symbioteHostProps]="hostProps"
|
|
269
|
-
(drawerOpen)="handleDrawerOpen()"
|
|
270
|
-
(drawerClose)="handleDrawerClose()"
|
|
271
|
-
(drawerSlide)="handleDrawerSlide($event)"
|
|
272
|
-
(drawerStateChanged)="handleDrawerStateChanged($event)"
|
|
273
|
-
(accessibilityAction)="emit(accessibilityAction, $event)"
|
|
274
|
-
(accessibilityTap)="emit(accessibilityTap, $event)"
|
|
275
|
-
(magicTap)="emit(magicTap, $event)"
|
|
276
|
-
(accessibilityEscape)="emit(accessibilityEscape, $event)"
|
|
277
|
-
>
|
|
278
|
-
<symbiote-view [style]="contentWrapperStyle">
|
|
279
|
-
<ng-content></ng-content>
|
|
280
|
-
</symbiote-view>
|
|
281
|
-
<symbiote-view [style]="navigationWrapperStyle" [pointerEvents]="navigationPointerEvents">
|
|
282
|
-
<ng-content select="[drawerNavigationView]"></ng-content>
|
|
283
|
-
</symbiote-view>
|
|
284
|
-
</AndroidDrawerLayout>
|
|
285
|
-
`,
|
|
286
|
-
}]
|
|
287
|
-
}], propDecorators: { hostElement: [{
|
|
288
|
-
type: ViewChild,
|
|
289
|
-
args: ['host', { read: ElementRef }]
|
|
290
|
-
}] } });
|
|
291
|
-
//# sourceMappingURL=index.android.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../src/components/drawer-layout-android/index.android.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { IDrawerLayoutAndroidHandle } from '@symbiote/components';
|
|
2
|
-
import { DrawerLayoutAndroidBase } from './shared';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export type { IDrawerPosition, IDrawerLockMode, IKeyboardDismissMode, IDrawerState, IDrawerSlideEvent, IDrawerLayoutAndroidHandle, } from './shared';
|
|
5
|
-
export type { IAngularDrawerLayoutAndroidProps } from './shared';
|
|
6
|
-
export declare class DrawerLayoutAndroid extends DrawerLayoutAndroidBase implements IDrawerLayoutAndroidHandle {
|
|
7
|
-
openDrawer(): void;
|
|
8
|
-
closeDrawer(): void;
|
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DrawerLayoutAndroid, never>;
|
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DrawerLayoutAndroid, "DrawerLayoutAndroid", never, { "drawerWidth": { "alias": "drawerWidth"; "required": false; }; "drawerPosition": { "alias": "drawerPosition"; "required": false; }; "drawerLockMode": { "alias": "drawerLockMode"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "drawerBackgroundColor": { "alias": "drawerBackgroundColor"; "required": false; }; "statusBarBackgroundColor": { "alias": "statusBarBackgroundColor"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "accessibilityElementsHidden": { "alias": "accessibilityElementsHidden"; "required": false; }; "accessibilityViewIsModal": { "alias": "accessibilityViewIsModal"; "required": false; }; "accessibilityIgnoresInvertColors": { "alias": "accessibilityIgnoresInvertColors"; "required": false; }; "accessibilityLanguage": { "alias": "accessibilityLanguage"; "required": false; }; "accessibilityRespondsToUserInteraction": { "alias": "accessibilityRespondsToUserInteraction"; "required": false; }; "accessibilityShowsLargeContentViewer": { "alias": "accessibilityShowsLargeContentViewer"; "required": false; }; "accessibilityLargeContentTitle": { "alias": "accessibilityLargeContentTitle"; "required": false; }; "role": { "alias": "role"; "required": false; }; "aria-label": { "alias": "aria-label"; "required": false; }; "aria-labelledby": { "alias": "aria-labelledby"; "required": false; }; "aria-live": { "alias": "aria-live"; "required": false; }; "aria-hidden": { "alias": "aria-hidden"; "required": false; }; "aria-busy": { "alias": "aria-busy"; "required": false; }; "aria-checked": { "alias": "aria-checked"; "required": false; }; "aria-disabled": { "alias": "aria-disabled"; "required": false; }; "aria-expanded": { "alias": "aria-expanded"; "required": false; }; "aria-selected": { "alias": "aria-selected"; "required": false; }; "aria-modal": { "alias": "aria-modal"; "required": false; }; "aria-valuemax": { "alias": "aria-valuemax"; "required": false; }; "aria-valuemin": { "alias": "aria-valuemin"; "required": false; }; "aria-valuenow": { "alias": "aria-valuenow"; "required": false; }; "aria-valuetext": { "alias": "aria-valuetext"; "required": false; }; }, { "drawerOpen": "drawerOpen"; "drawerClose": "drawerClose"; "drawerSlide": "drawerSlide"; "drawerStateChanged": "drawerStateChanged"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*", "[drawerNavigationView]"], true, never>;
|
|
11
|
-
}
|