@symbiote-native/angular 3.2.0 → 3.4.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/babel-register-composed.cjs +2 -0
- package/build/angular/accessibility-inputs.d.ts +2 -1
- package/build/angular/accessibility-inputs.js +4 -1
- package/build/angular/accessibility-inputs.js.map +1 -1
- package/build/angular/callback-host.d.ts +1 -1
- package/build/angular/callback-host.js +57 -9
- package/build/angular/callback-host.js.map +1 -1
- package/build/angular/components/checkbox-props.d.ts +2 -0
- package/build/angular/components/checkbox-props.js +2 -0
- package/build/angular/components/checkbox-props.js.map +1 -0
- package/build/angular/components/flat-list/flat-list-handle.d.ts +35 -0
- package/build/angular/components/flat-list/flat-list-handle.js +48 -0
- package/build/angular/components/flat-list/flat-list-handle.js.map +1 -0
- package/build/angular/components/flat-list/flat-list-template.d.ts +1 -1
- package/build/angular/components/flat-list/flat-list-template.js +16 -0
- package/build/angular/components/flat-list/flat-list-template.js.map +1 -1
- package/build/angular/components/flat-list/index.d.ts +6 -30
- package/build/angular/components/flat-list/index.js +6 -36
- package/build/angular/components/flat-list/index.js.map +1 -1
- package/build/angular/components/image-inputs.d.ts +4 -0
- package/build/angular/components/image-inputs.js +81 -0
- package/build/angular/components/image-inputs.js.map +1 -0
- package/build/angular/components/image-props-resolve.d.ts +3 -0
- package/build/angular/components/image-props-resolve.js +133 -0
- package/build/angular/components/image-props-resolve.js.map +1 -0
- package/build/angular/components/image-shared.d.ts +8 -6
- package/build/angular/components/image-shared.js +23 -212
- package/build/angular/components/image-shared.js.map +1 -1
- package/build/angular/components/input-accessory-view-props.d.ts +4 -4
- package/build/angular/components/keyboard-avoiding-view/index.d.ts +3 -6
- package/build/angular/components/keyboard-avoiding-view/index.js +29 -56
- package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
- package/build/angular/components/layout-conformance-props.d.ts +4 -0
- package/build/angular/components/layout-conformance-props.js +2 -0
- package/build/angular/components/layout-conformance-props.js.map +1 -0
- package/build/angular/components/modal/index.d.ts +6 -5
- package/build/angular/components/modal/index.js +17 -2
- package/build/angular/components/modal/index.js.map +1 -1
- package/build/angular/components/refresh-control-props.d.ts +7 -7
- package/build/angular/components/scroll-view-props.d.ts +8 -5
- package/build/angular/components/section-list/index.d.ts +17 -8
- package/build/angular/components/section-list/index.js +37 -28
- package/build/angular/components/section-list/index.js.map +1 -1
- package/build/angular/components/touchable-props.d.ts +2 -2
- package/build/angular/components/virtualized-list/cell-renderer-context.d.ts +12 -0
- package/build/angular/components/virtualized-list/cell-renderer-context.js +16 -0
- package/build/angular/components/virtualized-list/cell-renderer-context.js.map +1 -0
- package/build/angular/components/virtualized-list/directives.d.ts +26 -6
- package/build/angular/components/virtualized-list/directives.js +59 -5
- package/build/angular/components/virtualized-list/directives.js.map +1 -1
- package/build/angular/components/virtualized-list/index.d.ts +19 -15
- package/build/angular/components/virtualized-list/index.js +91 -61
- package/build/angular/components/virtualized-list/index.js.map +1 -1
- package/build/angular/components/virtualized-list/list-bags.d.ts +5 -1
- package/build/angular/components/virtualized-list/list-bags.js +31 -19
- package/build/angular/components/virtualized-list/list-bags.js.map +1 -1
- package/build/angular/components/virtualized-list/list-effects.d.ts +2 -2
- package/build/angular/components/virtualized-list/list-effects.js +17 -27
- package/build/angular/components/virtualized-list/list-effects.js.map +1 -1
- package/build/angular/components/virtualized-list/list-handle.d.ts +4 -1
- package/build/angular/components/virtualized-list/list-handle.js +13 -3
- package/build/angular/components/virtualized-list/list-handle.js.map +1 -1
- package/build/angular/components/virtualized-list/list-inputs.d.ts +19 -5
- package/build/angular/components/virtualized-list/list-inputs.js +47 -4
- package/build/angular/components/virtualized-list/list-inputs.js.map +1 -1
- package/build/angular/components/virtualized-list/list-props.d.ts +9 -3
- package/build/angular/components/virtualized-list/list-rows.d.ts +25 -0
- package/build/angular/components/virtualized-list/list-rows.js +25 -0
- package/build/angular/components/virtualized-list/list-rows.js.map +1 -0
- package/build/angular/components/virtualized-list/list-styles.d.ts +4 -0
- package/build/angular/components/virtualized-list/list-styles.js +10 -2
- package/build/angular/components/virtualized-list/list-styles.js.map +1 -1
- package/build/angular/components/virtualized-list/list-template.d.ts +1 -1
- package/build/angular/components/virtualized-list/list-template.js +159 -73
- package/build/angular/components/virtualized-list/list-template.js.map +1 -1
- package/build/angular/components/virtualized-list/nested-scope.d.ts +6 -0
- package/build/angular/components/virtualized-list/nested-scope.js +17 -0
- package/build/angular/components/virtualized-list/nested-scope.js.map +1 -0
- package/build/angular/components/virtualized-section-list/directives.d.ts +21 -9
- package/build/angular/components/virtualized-section-list/directives.js +8 -28
- package/build/angular/components/virtualized-section-list/directives.js.map +1 -1
- package/build/angular/components/virtualized-section-list/index.d.ts +39 -60
- package/build/angular/components/virtualized-section-list/index.js +67 -33
- package/build/angular/components/virtualized-section-list/index.js.map +1 -1
- package/build/angular/components/virtualized-section-list/section-cell.d.ts +29 -0
- package/build/angular/components/virtualized-section-list/section-cell.js +82 -0
- package/build/angular/components/virtualized-section-list/section-cell.js.map +1 -0
- package/build/angular/components/virtualized-section-list/section-list-props.d.ts +56 -0
- package/build/angular/components/virtualized-section-list/section-list-props.js +3 -0
- package/build/angular/components/virtualized-section-list/section-list-props.js.map +1 -0
- package/build/angular/components/virtualized-section-list/section-list-template.d.ts +1 -1
- package/build/angular/components/virtualized-section-list/section-list-template.js +34 -26
- package/build/angular/components/virtualized-section-list/section-list-template.js.map +1 -1
- package/build/angular/components.d.ts +8 -3
- package/build/angular/components.js +2 -1
- package/build/angular/components.js.map +1 -1
- package/build/angular/descriptor-to-angular/descriptor-host.d.ts +8 -0
- package/build/angular/descriptor-to-angular/descriptor-host.js +38 -0
- package/build/angular/descriptor-to-angular/descriptor-host.js.map +1 -0
- package/build/angular/descriptor-to-angular/index.d.ts +1 -0
- package/build/angular/descriptor-to-angular/index.js +4 -0
- package/build/angular/descriptor-to-angular/index.js.map +1 -1
- package/build/angular/element-base.d.ts +169 -0
- package/build/angular/element-base.js +304 -0
- package/build/angular/element-base.js.map +1 -0
- package/build/angular/element-props.d.ts +7 -7
- package/build/angular/element-text-input-native.d.ts +27 -0
- package/build/angular/element-text-input-native.js +52 -0
- package/build/angular/element-text-input-native.js.map +1 -0
- package/build/angular/elements-controls.d.ts +171 -0
- package/build/angular/elements-controls.js +394 -0
- package/build/angular/elements-controls.js.map +1 -0
- package/build/angular/elements-layout.d.ts +139 -0
- package/build/angular/elements-layout.js +276 -0
- package/build/angular/elements-layout.js.map +1 -0
- package/build/angular/elements-press.d.ts +103 -0
- package/build/angular/elements-press.js +239 -0
- package/build/angular/elements-press.js.map +1 -0
- package/build/angular/elements.d.ts +6 -516
- package/build/angular/elements.js +9 -1091
- package/build/angular/elements.js.map +1 -1
- package/build/angular/host-instance/index.d.ts +2 -0
- package/build/angular/host-instance/index.js +4 -4
- package/build/angular/host-instance/index.js.map +1 -1
- package/build/angular/index.d.ts +17 -9
- package/build/angular/index.js +24 -27
- package/build/angular/index.js.map +1 -1
- package/build/angular/modules/animated/create-animated-component.d.ts +1 -1
- package/build/angular/modules/animated/create-animated-component.js +1 -1
- package/build/angular/modules/animated/create-animated-component.js.map +1 -1
- package/build/angular/modules/animated/index.d.ts +54 -41
- package/build/angular/modules/animated/index.js +2 -26
- package/build/angular/modules/animated/index.js.map +1 -1
- package/build/angular/modules/app-registry/index.d.ts +3 -3
- package/build/angular/modules/app-registry/index.js +2 -2
- package/build/angular/modules/app-registry/index.js.map +1 -1
- package/build/angular/modules/status-bar/index.d.ts +9 -5
- package/build/angular/modules/status-bar/index.js +21 -10
- package/build/angular/modules/status-bar/index.js.map +1 -1
- package/build/angular/native-view-base.d.ts +10 -2
- package/build/angular/native-view-base.js +23 -2
- package/build/angular/native-view-base.js.map +1 -1
- package/build/angular/primitives/index.d.ts +4 -0
- package/build/angular/primitives/index.js +12 -0
- package/build/angular/primitives/index.js.map +1 -1
- package/build/angular/services/color-scheme.service.d.ts +1 -1
- package/build/angular/services/index.d.ts +1 -0
- package/build/angular/services/index.js +1 -0
- package/build/angular/services/index.js.map +1 -1
- package/build/angular/services/inject-event.d.ts +6 -0
- package/build/angular/services/inject-event.js +24 -0
- package/build/angular/services/inject-event.js.map +1 -0
- package/package.json +6 -6
- package/src/accessibility-inputs.ts +3 -0
- package/src/callback-host.ts +56 -8
- package/src/components/checkbox-props.ts +12 -0
- package/src/components/flat-list/flat-list-handle.ts +64 -0
- package/src/components/flat-list/flat-list-template.ts +16 -0
- package/src/components/flat-list/index.ts +6 -48
- package/src/components/image-inputs.ts +94 -0
- package/src/components/image-props-resolve.ts +172 -0
- package/src/components/image-shared.ts +26 -291
- package/src/components/input-accessory-view-props.ts +12 -8
- package/src/components/keyboard-avoiding-view/index.ts +39 -79
- package/src/components/layout-conformance-props.ts +8 -0
- package/src/components/modal/index.ts +42 -20
- package/src/components/refresh-control-props.ts +29 -25
- package/src/components/scroll-view-props.ts +84 -76
- package/src/components/section-list/index.ts +34 -37
- package/src/components/touchable-props.ts +6 -2
- package/src/components/virtualized-list/cell-renderer-context.ts +36 -0
- package/src/components/virtualized-list/directives.ts +84 -8
- package/src/components/virtualized-list/index.ts +118 -85
- package/src/components/virtualized-list/list-bags.ts +38 -19
- package/src/components/virtualized-list/list-effects.ts +20 -32
- package/src/components/virtualized-list/list-handle.ts +17 -4
- package/src/components/virtualized-list/list-inputs.ts +47 -0
- package/src/components/virtualized-list/list-props.ts +57 -50
- package/src/components/virtualized-list/list-rows.ts +66 -0
- package/src/components/virtualized-list/list-styles.ts +30 -1
- package/src/components/virtualized-list/list-template.ts +159 -73
- package/src/components/virtualized-list/nested-scope.ts +22 -0
- package/src/components/virtualized-section-list/directives.ts +41 -40
- package/src/components/virtualized-section-list/index.ts +114 -118
- package/src/components/virtualized-section-list/section-cell.ts +109 -0
- package/src/components/virtualized-section-list/section-list-props.ts +79 -0
- package/src/components/virtualized-section-list/section-list-template.ts +34 -26
- package/src/components.ts +9 -0
- package/src/descriptor-to-angular/descriptor-host.ts +27 -0
- package/src/descriptor-to-angular/index.ts +5 -0
- package/src/element-base.ts +289 -0
- package/src/element-props.ts +35 -33
- package/src/element-text-input-native.ts +31 -0
- package/src/elements-controls.ts +290 -0
- package/src/elements-layout.ts +168 -0
- package/src/elements-press.ts +153 -0
- package/src/elements.ts +76 -788
- package/src/host-instance/index.ts +4 -4
- package/src/index.ts +78 -23
- package/src/modules/animated/index.ts +2 -47
- package/src/modules/app-registry/index.ts +3 -1
- package/src/modules/status-bar/index.ts +24 -11
- package/src/native-view-base.ts +37 -2
- package/src/primitives/index.ts +7 -0
- package/src/services/color-scheme.service.ts +1 -1
- package/src/services/index.ts +1 -0
- package/src/services/inject-event.ts +52 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/app-registry/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,qDAAqD;AACrD,gFAAgF;AAChF,kGAAkG;AAClG,yFAAyF;AACzF,iFAAiF;AACjF,2FAA2F;AAG3F,OAAO,EACL,iBAAiB,EACjB,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/app-registry/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,qDAAqD;AACrD,gFAAgF;AAChF,kGAAkG;AAClG,yFAAyF;AACzF,iFAAiF;AACjF,2FAA2F;AAG3F,OAAO,EACL,iBAAiB,EACjB,IAAI,EACJ,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAcrC,SAAS,WAAW,CAClB,iBAAqC,EACrC,2BAAwE;IAExE,OAAO,aAAa,CAAC,EAAE;QACrB,IAAI,CAAC,oCAAoC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1E,oFAAoF;QACpF,6CAA6C;QAC7C,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE;YAChD,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,gBAAgB,EAAE,2BAA2B,EAAE,EAAE,CAAC,aAAa,CAAC;SACjE,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,iBAAiB,CAGzD,WAAW,CAAC,CAAC;AAEf,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import { type OnChanges, type
|
|
2
|
-
import { type IColorValue, type IStatusBarStyle } from '@symbiote-native/engine';
|
|
1
|
+
import { type OnChanges, type OnDestroy, type OnInit } from '@angular/core';
|
|
2
|
+
import { type IColorValue, type IStatusBarAnimation, type IStatusBarStyle } from '@symbiote-native/engine';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export type { IStatusBarProps, IStatusBarStyle } from '@symbiote-native/engine';
|
|
5
|
-
declare class StatusBarComponent implements OnChanges {
|
|
5
|
+
declare class StatusBarComponent implements OnInit, OnChanges, OnDestroy {
|
|
6
6
|
barStyle?: IStatusBarStyle;
|
|
7
7
|
hidden?: boolean;
|
|
8
8
|
animated?: boolean;
|
|
9
|
+
showHideTransition?: IStatusBarAnimation;
|
|
9
10
|
networkActivityIndicatorVisible?: boolean;
|
|
10
11
|
backgroundColor?: IColorValue;
|
|
11
12
|
translucent?: boolean;
|
|
12
|
-
|
|
13
|
+
private readonly entry;
|
|
14
|
+
ngOnInit(): void;
|
|
15
|
+
ngOnChanges(): void;
|
|
16
|
+
ngOnDestroy(): void;
|
|
13
17
|
private buildProps;
|
|
14
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<StatusBarComponent, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StatusBarComponent, "StatusBar", never, { "barStyle": { "alias": "barStyle"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; "networkActivityIndicatorVisible": { "alias": "networkActivityIndicatorVisible"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "translucent": { "alias": "translucent"; "required": false; }; }, {}, never, never, true, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StatusBarComponent, "StatusBar", never, { "barStyle": { "alias": "barStyle"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; "showHideTransition": { "alias": "showHideTransition"; "required": false; }; "networkActivityIndicatorVisible": { "alias": "networkActivityIndicatorVisible"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "translucent": { "alias": "translucent"; "required": false; }; }, {}, never, never, true, never>;
|
|
16
20
|
}
|
|
17
21
|
declare const StatusBarWithStatics: typeof StatusBarComponent & import("@symbiote-native/engine").IStatusBarImperative;
|
|
18
22
|
export declare const StatusBar: typeof StatusBarWithStatics & {
|
|
@@ -1,28 +1,37 @@
|
|
|
1
|
-
// StatusBar, the
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// declarative shape: a component that renders nothing and re-applies the props through
|
|
5
|
-
// ngOnChanges on mount + every prop change. Imperative statics are attached to the component
|
|
6
|
-
// object the same way RN does.
|
|
1
|
+
// Angular half of StatusBar, the props stack, statics and Android bar-height constant live in
|
|
2
|
+
// @symbiote-native/engine. It renders nothing, keeps one stack entry through `ngOnChanges` and
|
|
3
|
+
// releases it in `ngOnDestroy`
|
|
7
4
|
import { Component, Input, } from '@angular/core';
|
|
8
|
-
import {
|
|
5
|
+
import { createStatusBarEntry, statusBarImperative, statusBarCurrentHeight, } from '@symbiote-native/engine';
|
|
9
6
|
import * as i0 from "@angular/core";
|
|
10
7
|
class StatusBarComponent {
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
constructor() {
|
|
9
|
+
this.entry = createStatusBarEntry();
|
|
10
|
+
}
|
|
11
|
+
// `ngOnChanges` never runs without bound inputs, the bar still takes its place in the stack
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this.entry.apply(this.buildProps());
|
|
14
|
+
}
|
|
15
|
+
ngOnChanges() {
|
|
16
|
+
this.entry.apply(this.buildProps());
|
|
17
|
+
}
|
|
18
|
+
// Popping restores what the stack held below this entry
|
|
19
|
+
ngOnDestroy() {
|
|
20
|
+
this.entry.release();
|
|
13
21
|
}
|
|
14
22
|
buildProps() {
|
|
15
23
|
return {
|
|
16
24
|
barStyle: this.barStyle,
|
|
17
25
|
hidden: this.hidden,
|
|
18
26
|
animated: this.animated,
|
|
27
|
+
showHideTransition: this.showHideTransition,
|
|
19
28
|
networkActivityIndicatorVisible: this.networkActivityIndicatorVisible,
|
|
20
29
|
backgroundColor: this.backgroundColor,
|
|
21
30
|
translucent: this.translucent,
|
|
22
31
|
};
|
|
23
32
|
}
|
|
24
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: StatusBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: StatusBarComponent, isStandalone: true, selector: "StatusBar", inputs: { barStyle: "barStyle", hidden: "hidden", animated: "animated", networkActivityIndicatorVisible: "networkActivityIndicatorVisible", backgroundColor: "backgroundColor", translucent: "translucent" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: StatusBarComponent, isStandalone: true, selector: "StatusBar", inputs: { barStyle: "barStyle", hidden: "hidden", animated: "animated", showHideTransition: "showHideTransition", networkActivityIndicatorVisible: "networkActivityIndicatorVisible", backgroundColor: "backgroundColor", translucent: "translucent" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
|
|
26
35
|
}
|
|
27
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: StatusBarComponent, decorators: [{
|
|
28
37
|
type: Component,
|
|
@@ -37,6 +46,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
37
46
|
type: Input
|
|
38
47
|
}], animated: [{
|
|
39
48
|
type: Input
|
|
49
|
+
}], showHideTransition: [{
|
|
50
|
+
type: Input
|
|
40
51
|
}], networkActivityIndicatorVisible: [{
|
|
41
52
|
type: Input
|
|
42
53
|
}], backgroundColor: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/status-bar/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/status-bar/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+FAA+F;AAC/F,+BAA+B;AAE/B,OAAO,EACL,SAAS,EACT,KAAK,GAIN,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,GAKvB,MAAM,yBAAyB,CAAC;;AAIjC,MAKM,kBAAkB;IALxB;QAcmB,UAAK,GAAG,oBAAoB,EAAE,CAAC;KA2BjD;IAzBC,4FAA4F;IAC5F,QAAQ;QACN,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,wDAAwD;IACxD,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEO,UAAU;QAChB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,+BAA+B,EAAE,IAAI,CAAC,+BAA+B;YACrE,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC;8GAnCG,kBAAkB;kGAAlB,kBAAkB,kVAFZ,EAAE;;2FAER,kBAAkB;kBALvB,SAAS;mBAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,EAAE;iBACb;;sBAEE,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;AA+BR,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CACxC,kBAAkB,EAClB,mBAAmB,CACpB,CAAC;AAEF,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,eAAe,EAAE;IAC3D,GAAG,EAAE,sBAAsB;IAC3B,UAAU,EAAE,IAAI;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAElB,oBAAoB,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import type { OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
1
3
|
import type { IDescriptor } from '@symbiote-native/components';
|
|
2
|
-
import type { IStyleProp, ISymbioteEvent, IViewStyle } from '@symbiote-native/engine';
|
|
4
|
+
import type { IStyleProp, ISymbioteEvent, ISymbioteNode, IViewStyle } from '@symbiote-native/engine';
|
|
3
5
|
import { AccessibilityInputsBase } from './accessibility-inputs';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare abstract class NativeViewBase extends AccessibilityInputsBase {
|
|
7
|
+
export declare abstract class NativeViewBase extends AccessibilityInputsBase implements OnChanges, OnDestroy {
|
|
6
8
|
style?: IStyleProp<IViewStyle>;
|
|
7
9
|
testID?: string;
|
|
8
10
|
nativeID?: string;
|
|
@@ -11,6 +13,12 @@ export declare abstract class NativeViewBase extends AccessibilityInputsBase {
|
|
|
11
13
|
onMagicTap?: (event: ISymbioteEvent) => void;
|
|
12
14
|
onAccessibilityEscape?: (event: ISymbioteEvent) => void;
|
|
13
15
|
private readonly elementRef;
|
|
16
|
+
protected readonly changeDetector: ChangeDetectorRef;
|
|
17
|
+
private readonly nativeOutlet?;
|
|
18
|
+
protected hostNode(): ISymbioteNode | null;
|
|
19
|
+
protected disposeView(): void;
|
|
20
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
21
|
+
ngOnDestroy(): void;
|
|
14
22
|
protected abstract readonly propNames: readonly string[];
|
|
15
23
|
protected abstract renderView(props: object): IDescriptor | null;
|
|
16
24
|
get descriptor(): IDescriptor | null;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Directive, ElementRef, inject, Input } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, Directive, ElementRef, inject, Input, ViewChild, } from '@angular/core';
|
|
2
2
|
import { resolveAccessibilityProps } from '@symbiote-native/components';
|
|
3
3
|
import { AccessibilityInputsBase } from './accessibility-inputs';
|
|
4
|
+
import { DescriptorOutlet } from './descriptor-to-angular';
|
|
5
|
+
import { hostNodeOf } from './host-instance';
|
|
4
6
|
import { anchorStyleProp } from './primitives/shared';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
// Shared shell of a component that paints one Expo native view: the common inputs, the anchor
|
|
@@ -10,6 +12,22 @@ export class NativeViewBase extends AccessibilityInputsBase {
|
|
|
10
12
|
super(...arguments);
|
|
11
13
|
// This component's own `ElementRef`, the anchor a `class="..."` at the use site lands on
|
|
12
14
|
this.elementRef = inject(ElementRef);
|
|
15
|
+
this.changeDetector = inject(ChangeDetectorRef);
|
|
16
|
+
}
|
|
17
|
+
// The committed host node of the native view, for a component that calls its view functions
|
|
18
|
+
hostNode() {
|
|
19
|
+
return hostNodeOf(this.nativeOutlet?.rootNode);
|
|
20
|
+
}
|
|
21
|
+
// Hook for a component that holds more than its native node, runs once when it is destroyed
|
|
22
|
+
disposeView() { }
|
|
23
|
+
// A `[style]` binding reaches the `style` input without dirtying an OnPush view, a plain
|
|
24
|
+
// `[prop]` does. A subclass with its own `ngOnChanges` calls this one first
|
|
25
|
+
ngOnChanges(changes) {
|
|
26
|
+
if ('style' in changes)
|
|
27
|
+
this.changeDetector.markForCheck();
|
|
28
|
+
}
|
|
29
|
+
ngOnDestroy() {
|
|
30
|
+
this.disposeView();
|
|
13
31
|
}
|
|
14
32
|
get descriptor() {
|
|
15
33
|
return this.renderView(resolveAccessibilityProps({
|
|
@@ -26,7 +44,7 @@ export class NativeViewBase extends AccessibilityInputsBase {
|
|
|
26
44
|
}));
|
|
27
45
|
}
|
|
28
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NativeViewBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NativeViewBase, isStandalone: true, inputs: { style: "style", testID: "testID", nativeID: "nativeID", onLayout: "onLayout", onAccessibilityTap: "onAccessibilityTap", onMagicTap: "onMagicTap", onAccessibilityEscape: "onAccessibilityEscape" }, usesInheritance: true, ngImport: i0 }); }
|
|
47
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NativeViewBase, isStandalone: true, inputs: { style: "style", testID: "testID", nativeID: "nativeID", onLayout: "onLayout", onAccessibilityTap: "onAccessibilityTap", onMagicTap: "onMagicTap", onAccessibilityEscape: "onAccessibilityEscape" }, viewQueries: [{ propertyName: "nativeOutlet", first: true, predicate: DescriptorOutlet, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
|
|
30
48
|
}
|
|
31
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NativeViewBase, decorators: [{
|
|
32
50
|
type: Directive
|
|
@@ -44,5 +62,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
44
62
|
type: Input
|
|
45
63
|
}], onAccessibilityEscape: [{
|
|
46
64
|
type: Input
|
|
65
|
+
}], nativeOutlet: [{
|
|
66
|
+
type: ViewChild,
|
|
67
|
+
args: [DescriptorOutlet]
|
|
47
68
|
}] } });
|
|
48
69
|
//# sourceMappingURL=native-view-base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-view-base.js","sourceRoot":"","sources":["../../src/native-view-base.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"native-view-base.js","sourceRoot":"","sources":["../../src/native-view-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,MAAM,EACN,KAAK,EACL,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAQxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAEtD,8FAA8F;AAC9F,2FAA2F;AAE3F,MAAM,OAAgB,cACpB,SAAQ,uBAAuB;IAFjC;;QAaE,yFAAyF;QACxE,eAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,mBAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;KA8C/D;IA1CC,4FAA4F;IAClF,QAAQ;QAChB,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,4FAA4F;IAClF,WAAW,KAAU,CAAC;IAEhC,yFAAyF;IACzF,4EAA4E;IAC5E,WAAW,CAAC,OAAsB;QAChC,IAAI,OAAO,IAAI,OAAO;YAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAC7D,CAAC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CACpB,yBAAyB,CAAC;YACxB,GAAG,IAAI,CAAC,uBAAuB,EAAE;YACjC,GAAG,MAAM,CAAC,WAAW,CACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAC5D;YACD,+DAA+D;YAC/D,KAAK,EAAE,CAAC,eAAe,CAAa,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;YACjE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;SAClD,CAAC,CACH,CAAC;IACJ,CAAC;8GA3DmB,cAAc;kGAAd,cAAc,0SAgBvB,gBAAgB;;2FAhBP,cAAc;kBADnC,SAAS;;sBAKP,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBAML,SAAS;uBAAC,gBAAgB"}
|
|
@@ -49,6 +49,10 @@ export declare class SafeAreaViewHost extends SymbiotePrimitiveHost {
|
|
|
49
49
|
static ɵfac: i0.ɵɵFactoryDeclaration<SafeAreaViewHost, never>;
|
|
50
50
|
static ɵcmp: i0.ɵɵComponentDeclaration<SafeAreaViewHost, "safe-area-view", never, {}, {}, never, ["*"], true, never>;
|
|
51
51
|
}
|
|
52
|
+
export declare class LayoutConformanceHost extends SymbiotePrimitiveHost {
|
|
53
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LayoutConformanceHost, never>;
|
|
54
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LayoutConformanceHost, "layout-conformance", never, {}, {}, never, ["*"], true, never>;
|
|
55
|
+
}
|
|
52
56
|
export declare class ModalHost extends SymbiotePrimitiveHost {
|
|
53
57
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModalHost, never>;
|
|
54
58
|
static ɵcmp: i0.ɵɵComponentDeclaration<ModalHost, "modal", never, {}, {}, never, ["*"], true, never>;
|
|
@@ -155,6 +155,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
155
155
|
template: '<ng-content></ng-content>',
|
|
156
156
|
}]
|
|
157
157
|
}] });
|
|
158
|
+
export class LayoutConformanceHost extends SymbiotePrimitiveHost {
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LayoutConformanceHost, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: LayoutConformanceHost, isStandalone: true, selector: "layout-conformance", usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
161
|
+
}
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LayoutConformanceHost, decorators: [{
|
|
163
|
+
type: Component,
|
|
164
|
+
args: [{
|
|
165
|
+
selector: 'layout-conformance',
|
|
166
|
+
standalone: true,
|
|
167
|
+
template: '<ng-content></ng-content>',
|
|
168
|
+
}]
|
|
169
|
+
}] });
|
|
158
170
|
export class ModalHost extends SymbiotePrimitiveHost {
|
|
159
171
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ModalHost, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
172
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: ModalHost, isStandalone: true, selector: "modal", usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/primitives/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/primitives/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
* State and lifecycle live in DI, not in a function closure.
|
|
10
10
|
*/
|
|
11
11
|
export declare class ColorSchemeService {
|
|
12
|
-
readonly colorScheme: import("@angular/core").WritableSignal<IColorSchemeName | null>;
|
|
12
|
+
readonly colorScheme: import("@angular/core").WritableSignal<IColorSchemeName | null | undefined>;
|
|
13
13
|
constructor();
|
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColorSchemeService, never>;
|
|
15
15
|
static ɵprov: i0.ɵɵInjectableDeclaration<ColorSchemeService>;
|
|
@@ -2,5 +2,6 @@ export { ColorSchemeService } from './color-scheme.service';
|
|
|
2
2
|
export { WindowDimensionsService } from './window-dimensions.service';
|
|
3
3
|
export { createResourceHook } from './create-resource-hook';
|
|
4
4
|
export { createEventValueHook } from './create-event-value-hook';
|
|
5
|
+
export { injectEvent, injectEventListener } from './inject-event';
|
|
5
6
|
export { connectWatchedSignal } from './connect-watched-signal';
|
|
6
7
|
export { PermissionsServiceBase } from './permissions-service-base';
|
|
@@ -2,6 +2,7 @@ export { ColorSchemeService } from './color-scheme.service';
|
|
|
2
2
|
export { WindowDimensionsService } from './window-dimensions.service';
|
|
3
3
|
export { createResourceHook } from './create-resource-hook';
|
|
4
4
|
export { createEventValueHook } from './create-event-value-hook';
|
|
5
|
+
export { injectEvent, injectEventListener } from './inject-event';
|
|
5
6
|
export { connectWatchedSignal } from './connect-watched-signal';
|
|
6
7
|
export { PermissionsServiceBase } from './permissions-service-base';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Signal } from '@angular/core';
|
|
2
|
+
import type { IEventEmitterOf, IEventName, IEventPayload, IEventsMap } from '@symbiote-native/engine';
|
|
3
|
+
/** Calls the listener for each event, the latest one, and stops with the injection context */
|
|
4
|
+
export declare function injectEventListener<TEventsMap extends IEventsMap, TName extends IEventName<TEventsMap>>(emitter: () => IEventEmitterOf<TEventsMap>, eventName: () => TName, listener: () => TEventsMap[TName]): void;
|
|
5
|
+
/** The payload of the last event, `initialValue` (or `null`) until the first one */
|
|
6
|
+
export declare function injectEvent<TEventsMap extends IEventsMap, TName extends IEventName<TEventsMap>>(emitter: () => IEventEmitterOf<TEventsMap>, eventName: () => TName, initialValue?: IEventPayload<TEventsMap, TName> | null): Signal<IEventPayload<TEventsMap, TName> | null>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Angular twins of `useEvent` and `useEventListener` of the `expo` package, for any emitter
|
|
2
|
+
import { effect, signal, untracked } from '@angular/core';
|
|
3
|
+
import { bindEventListener } from '@symbiote-native/engine';
|
|
4
|
+
/** Calls the listener for each event, the latest one, and stops with the injection context */
|
|
5
|
+
export function injectEventListener(emitter, eventName, listener) {
|
|
6
|
+
effect(onCleanup => {
|
|
7
|
+
const source = emitter();
|
|
8
|
+
const name = eventName();
|
|
9
|
+
// The listener is read at each event, a new one is not a new subscription
|
|
10
|
+
onCleanup(bindEventListener(source, name, () => untracked(listener)));
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
/** The payload of the last event, `initialValue` (or `null`) until the first one */
|
|
14
|
+
export function injectEvent(emitter, eventName, initialValue = null) {
|
|
15
|
+
const event = signal(initialValue, /* @ts-ignore */
|
|
16
|
+
...(ngDevMode ? [{ debugName: "event" }] : /* istanbul ignore next */ []));
|
|
17
|
+
effect(onCleanup => {
|
|
18
|
+
const source = emitter();
|
|
19
|
+
const name = eventName();
|
|
20
|
+
onCleanup(bindEventListener(source, name, () => (next) => event.set(next)));
|
|
21
|
+
});
|
|
22
|
+
return event.asReadonly();
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=inject-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-event.js","sourceRoot":"","sources":["../../../src/services/inject-event.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAE5F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQ5D,8FAA8F;AAC9F,MAAM,UAAU,mBAAmB,CAIjC,OAA0C,EAC1C,SAAsB,EACtB,QAAiC;IAEjC,MAAM,CAAC,SAAS,CAAC,EAAE;QACjB,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;QACzB,0EAA0E;QAC1E,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,WAAW,CAIzB,OAA0C,EAC1C,SAAsB,EACtB,eAAwD,IAAI;IAE5D,MAAM,KAAK,GAAG,MAAM,CAA0C,YAAY;8EAAC,CAAC;IAC5E,MAAM,CAAC,SAAS,CAAC,EAAE;QACjB,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;QACzB,SAAS,CACP,iBAAiB,CACf,MAAM,EACN,IAAI,EACJ,GAAG,EAAE,CAAC,CAAC,IAAsC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAClE,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;AAC5B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@symbiote-native/angular",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
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
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"@angular/compiler-cli": "~22.0.8",
|
|
68
68
|
"@react-native/typescript-config": "0.86.0",
|
|
69
|
-
"@symbiote-native/components": "3.
|
|
70
|
-
"@symbiote-native/css-parser": "0.
|
|
69
|
+
"@symbiote-native/components": "3.3.0",
|
|
70
|
+
"@symbiote-native/css-parser": "0.6.0"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
73
|
"@angular/core": ">=20",
|
|
74
74
|
"@angular/forms": ">=20",
|
|
75
75
|
"react-native": ">=0.86",
|
|
76
|
-
"@symbiote-native/engine": "^1.
|
|
76
|
+
"@symbiote-native/engine": "^1.7.0"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@angular/compiler": "~22.0.8",
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
"@types/babel__core": "^7.20.5",
|
|
84
84
|
"@types/node": "^26.0.0",
|
|
85
85
|
"typescript": "~6.0.0",
|
|
86
|
-
"@symbiote-native/engine": "1.
|
|
87
|
-
"@symbiote-native/test-utils": "0.
|
|
86
|
+
"@symbiote-native/engine": "1.7.0",
|
|
87
|
+
"@symbiote-native/test-utils": "0.5.0"
|
|
88
88
|
},
|
|
89
89
|
"scripts": {
|
|
90
90
|
"clean": "rm -rf build",
|
|
@@ -16,6 +16,8 @@ export abstract class AccessibilityInputsBase {
|
|
|
16
16
|
@Input() accessibilityState?: IAccessibilityStateValue;
|
|
17
17
|
@Input() accessibilityValue?: IAccessibilityProps['accessibilityValue'];
|
|
18
18
|
@Input() accessibilityActions?: IAccessibilityProps['accessibilityActions'];
|
|
19
|
+
@Input()
|
|
20
|
+
experimental_accessibilityOrder?: IAccessibilityProps['experimental_accessibilityOrder'];
|
|
19
21
|
@Input() accessibilityLabelledBy?: string | string[];
|
|
20
22
|
@Input()
|
|
21
23
|
importantForAccessibility?: IAccessibilityProps['importantForAccessibility'];
|
|
@@ -56,6 +58,7 @@ export abstract class AccessibilityInputsBase {
|
|
|
56
58
|
accessibilityState: this.accessibilityState,
|
|
57
59
|
accessibilityValue: this.accessibilityValue,
|
|
58
60
|
accessibilityActions: this.accessibilityActions,
|
|
61
|
+
experimental_accessibilityOrder: this.experimental_accessibilityOrder,
|
|
59
62
|
accessibilityLabelledBy: this.accessibilityLabelledBy,
|
|
60
63
|
importantForAccessibility: this.importantForAccessibility,
|
|
61
64
|
accessibilityLiveRegion: this.accessibilityLiveRegion,
|
package/src/callback-host.ts
CHANGED
|
@@ -40,14 +40,25 @@ const CALLBACK_INPUTS = [
|
|
|
40
40
|
'onAccessibilityEscape',
|
|
41
41
|
'onAccessibilityTap',
|
|
42
42
|
'onBlur',
|
|
43
|
+
'onBlurCapture',
|
|
43
44
|
'onChangeText',
|
|
45
|
+
'onClickCapture',
|
|
44
46
|
'onContentSizeChange',
|
|
45
47
|
'onEndEditing',
|
|
46
48
|
'onError',
|
|
47
49
|
'onFocus',
|
|
50
|
+
'onFocusCapture',
|
|
48
51
|
'onHoverIn',
|
|
49
52
|
'onHoverOut',
|
|
53
|
+
'onKeyDown',
|
|
54
|
+
'onKeyDownCapture',
|
|
50
55
|
'onKeyPress',
|
|
56
|
+
'onKeyUp',
|
|
57
|
+
'onKeyUpCapture',
|
|
58
|
+
'onKeyboardDidHide',
|
|
59
|
+
'onKeyboardDidShow',
|
|
60
|
+
'onKeyboardWillHide',
|
|
61
|
+
'onKeyboardWillShow',
|
|
51
62
|
'onLayout',
|
|
52
63
|
'onLoad',
|
|
53
64
|
'onLoadEnd',
|
|
@@ -73,6 +84,7 @@ const CALLBACK_INPUTS = [
|
|
|
73
84
|
'onResponderStart',
|
|
74
85
|
'onResponderTerminate',
|
|
75
86
|
'onResponderTerminationRequest',
|
|
87
|
+
'onScrollAnimationEnd',
|
|
76
88
|
'onScrollBeginDrag',
|
|
77
89
|
'onScrollEndDrag',
|
|
78
90
|
'onScrollToTop',
|
|
@@ -80,6 +92,14 @@ const CALLBACK_INPUTS = [
|
|
|
80
92
|
'onStartShouldSetResponder',
|
|
81
93
|
'onStartShouldSetResponderCapture',
|
|
82
94
|
'onSubmitEditing',
|
|
95
|
+
'onTouchCancel',
|
|
96
|
+
'onTouchCancelCapture',
|
|
97
|
+
'onTouchEnd',
|
|
98
|
+
'onTouchEndCapture',
|
|
99
|
+
'onTouchMove',
|
|
100
|
+
'onTouchMoveCapture',
|
|
101
|
+
'onTouchStart',
|
|
102
|
+
'onTouchStartCapture',
|
|
83
103
|
'onValueChange',
|
|
84
104
|
] as const;
|
|
85
105
|
|
|
@@ -95,15 +115,19 @@ const CALLBACK_INPUTS = [
|
|
|
95
115
|
*/
|
|
96
116
|
export const CALLBACK_ATTRIBUTE_SELECTOR =
|
|
97
117
|
'[onAccessibilityAction],[onAccessibilityEscape],[onAccessibilityTap],[onBlur],' +
|
|
98
|
-
'[
|
|
99
|
-
'[
|
|
118
|
+
'[onBlurCapture],[onChangeText],[onClickCapture],[onContentSizeChange],[onEndEditing],[onError],' +
|
|
119
|
+
'[onFocus],[onFocusCapture],[onHoverIn],[onHoverOut],' +
|
|
120
|
+
'[onKeyDown],[onKeyDownCapture],[onKeyPress],[onKeyUp],[onKeyUpCapture],' +
|
|
121
|
+
'[onKeyboardDidHide],[onKeyboardDidShow],[onKeyboardWillHide],[onKeyboardWillShow],' +
|
|
122
|
+
'[onLayout],[onLoad],[onLoadEnd],[onLoadStart],[onLongPress],[onMagicTap],' +
|
|
100
123
|
'[onMomentumScrollBegin],[onMomentumScrollEnd],[onMoveShouldSetResponder],' +
|
|
101
124
|
'[onMoveShouldSetResponderCapture],[onPartialLoad],[onPress],[onPressIn],[onPressMove],' +
|
|
102
125
|
'[onPressOut],[onProgress],[onRefresh],[onResponderEnd],[onResponderGrant],[onResponderMove],' +
|
|
103
126
|
'[onResponderReject],[onResponderRelease],[onResponderStart],[onResponderTerminate],' +
|
|
104
|
-
'[onResponderTerminationRequest],[onScrollBeginDrag],[onScrollEndDrag],[onScrollToTop],' +
|
|
127
|
+
'[onResponderTerminationRequest],[onScrollAnimationEnd],[onScrollBeginDrag],[onScrollEndDrag],[onScrollToTop],' +
|
|
105
128
|
'[onSelectionChange],[onStartShouldSetResponder],[onStartShouldSetResponderCapture],' +
|
|
106
|
-
'[onSubmitEditing],[
|
|
129
|
+
'[onSubmitEditing],[onTouchCancel],[onTouchCancelCapture],[onTouchEnd],[onTouchEndCapture],' +
|
|
130
|
+
'[onTouchMove],[onTouchMoveCapture],[onTouchStart],[onTouchStartCapture],[onValueChange]';
|
|
107
131
|
|
|
108
132
|
/** Exported for the guard alone — the decorator below must spell its own list for ngtsc. */
|
|
109
133
|
export const CALLBACK_INPUT_NAMES: readonly string[] = CALLBACK_INPUTS;
|
|
@@ -111,15 +135,19 @@ export const CALLBACK_INPUT_NAMES: readonly string[] = CALLBACK_INPUTS;
|
|
|
111
135
|
@Directive({
|
|
112
136
|
selector:
|
|
113
137
|
'[onAccessibilityAction],[onAccessibilityEscape],[onAccessibilityTap],[onBlur],' +
|
|
114
|
-
'[
|
|
115
|
-
'[
|
|
138
|
+
'[onBlurCapture],[onClickCapture],[onContentSizeChange],[onEndEditing],[onError],' +
|
|
139
|
+
'[onFocus],[onFocusCapture],[onHoverIn],[onHoverOut],' +
|
|
140
|
+
'[onKeyDown],[onKeyDownCapture],[onKeyPress],[onKeyUp],[onKeyUpCapture],' +
|
|
141
|
+
'[onKeyboardDidHide],[onKeyboardDidShow],[onKeyboardWillHide],' +
|
|
142
|
+
'[onKeyboardWillShow],[onLayout],[onLoad],[onLoadEnd],[onLoadStart],[onLongPress],[onMagicTap],' +
|
|
116
143
|
'[onMomentumScrollBegin],[onMomentumScrollEnd],[onMoveShouldSetResponder],' +
|
|
117
144
|
'[onMoveShouldSetResponderCapture],[onPartialLoad],[onPress],[onPressIn],[onPressMove],' +
|
|
118
145
|
'[onPressOut],[onProgress],[onRefresh],[onResponderEnd],[onResponderGrant],[onResponderMove],' +
|
|
119
146
|
'[onResponderReject],[onResponderRelease],[onResponderStart],[onResponderTerminate],' +
|
|
120
|
-
'[onResponderTerminationRequest],[onScrollBeginDrag],[onScrollEndDrag],[onScrollToTop],' +
|
|
147
|
+
'[onResponderTerminationRequest],[onScrollAnimationEnd],[onScrollBeginDrag],[onScrollEndDrag],[onScrollToTop],' +
|
|
121
148
|
'[onSelectionChange],[onStartShouldSetResponder],[onStartShouldSetResponderCapture],' +
|
|
122
|
-
'[onSubmitEditing],[
|
|
149
|
+
'[onSubmitEditing],[onTouchCancel],[onTouchCancelCapture],[onTouchEnd],[onTouchEndCapture],' +
|
|
150
|
+
'[onTouchMove],[onTouchMoveCapture],[onTouchStart],[onTouchStartCapture],[onValueChange]',
|
|
123
151
|
// DECLARED, and this is not an optimisation — it is what makes withholding the tag directives
|
|
124
152
|
// possible at all. `ɵɵproperty` on an element no directive claimed ends in `setDomProperty`, which
|
|
125
153
|
// runs `validateAgainstEventProperties` and THROWS NG0306 on any name beginning with `on`
|
|
@@ -136,13 +164,24 @@ export const CALLBACK_INPUT_NAMES: readonly string[] = CALLBACK_INPUTS;
|
|
|
136
164
|
'onAccessibilityEscape',
|
|
137
165
|
'onAccessibilityTap',
|
|
138
166
|
'onBlur',
|
|
167
|
+
'onBlurCapture',
|
|
168
|
+
'onClickCapture',
|
|
139
169
|
'onContentSizeChange',
|
|
140
170
|
'onEndEditing',
|
|
141
171
|
'onError',
|
|
142
172
|
'onFocus',
|
|
173
|
+
'onFocusCapture',
|
|
143
174
|
'onHoverIn',
|
|
144
175
|
'onHoverOut',
|
|
176
|
+
'onKeyDown',
|
|
177
|
+
'onKeyDownCapture',
|
|
145
178
|
'onKeyPress',
|
|
179
|
+
'onKeyUp',
|
|
180
|
+
'onKeyUpCapture',
|
|
181
|
+
'onKeyboardDidHide',
|
|
182
|
+
'onKeyboardDidShow',
|
|
183
|
+
'onKeyboardWillHide',
|
|
184
|
+
'onKeyboardWillShow',
|
|
146
185
|
'onLayout',
|
|
147
186
|
'onLoad',
|
|
148
187
|
'onLoadEnd',
|
|
@@ -168,6 +207,7 @@ export const CALLBACK_INPUT_NAMES: readonly string[] = CALLBACK_INPUTS;
|
|
|
168
207
|
'onResponderStart',
|
|
169
208
|
'onResponderTerminate',
|
|
170
209
|
'onResponderTerminationRequest',
|
|
210
|
+
'onScrollAnimationEnd',
|
|
171
211
|
'onScrollBeginDrag',
|
|
172
212
|
'onScrollEndDrag',
|
|
173
213
|
'onScrollToTop',
|
|
@@ -175,6 +215,14 @@ export const CALLBACK_INPUT_NAMES: readonly string[] = CALLBACK_INPUTS;
|
|
|
175
215
|
'onStartShouldSetResponder',
|
|
176
216
|
'onStartShouldSetResponderCapture',
|
|
177
217
|
'onSubmitEditing',
|
|
218
|
+
'onTouchCancel',
|
|
219
|
+
'onTouchCancelCapture',
|
|
220
|
+
'onTouchEnd',
|
|
221
|
+
'onTouchEndCapture',
|
|
222
|
+
'onTouchMove',
|
|
223
|
+
'onTouchMoveCapture',
|
|
224
|
+
'onTouchStart',
|
|
225
|
+
'onTouchStartCapture',
|
|
178
226
|
'onValueChange',
|
|
179
227
|
],
|
|
180
228
|
standalone: true,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Пропсы `<checkbox>` для Angular, компонента нет, тег матчит `CheckboxElement`
|
|
2
|
+
// Убраны a11y-колбэки (в Angular это outputs) и `onChange`, который upstream тоже никогда не зовёт
|
|
3
|
+
import type { ICheckboxProps as ICoreCheckboxProps } from '@symbiote-native/components';
|
|
4
|
+
|
|
5
|
+
export type ICheckboxProps = Omit<
|
|
6
|
+
ICoreCheckboxProps,
|
|
7
|
+
| 'onChange'
|
|
8
|
+
| 'onAccessibilityAction'
|
|
9
|
+
| 'onAccessibilityTap'
|
|
10
|
+
| 'onMagicTap'
|
|
11
|
+
| 'onAccessibilityEscape'
|
|
12
|
+
>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// The imperative scroll surface of the list, handed through to the list inside it
|
|
2
|
+
|
|
3
|
+
import { Directive } from '@angular/core';
|
|
4
|
+
import type {
|
|
5
|
+
IScrollViewHandle,
|
|
6
|
+
IVirtualizedListHandle,
|
|
7
|
+
} from '@symbiote-native/components';
|
|
8
|
+
import type { ISymbioteNode } from '@symbiote-native/engine';
|
|
9
|
+
import { ListInputsBase } from '../virtualized-list/list-inputs';
|
|
10
|
+
|
|
11
|
+
@Directive()
|
|
12
|
+
export abstract class FlatListHandleBase<ItemT>
|
|
13
|
+
extends ListInputsBase<ItemT>
|
|
14
|
+
implements IVirtualizedListHandle
|
|
15
|
+
{
|
|
16
|
+
// The composed inner list, whichever branch rendered, its instance is the scroll handle
|
|
17
|
+
protected abstract readonly listRef?: IVirtualizedListHandle;
|
|
18
|
+
|
|
19
|
+
scrollToOffset(params: { offset: number; animated?: boolean }): void {
|
|
20
|
+
this.listRef?.scrollToOffset(params);
|
|
21
|
+
}
|
|
22
|
+
scrollToIndex(params: {
|
|
23
|
+
index: number;
|
|
24
|
+
animated?: boolean;
|
|
25
|
+
viewOffset?: number;
|
|
26
|
+
viewPosition?: number;
|
|
27
|
+
}): void {
|
|
28
|
+
this.listRef?.scrollToIndex(params);
|
|
29
|
+
}
|
|
30
|
+
scrollToItem(params: {
|
|
31
|
+
item: unknown;
|
|
32
|
+
animated?: boolean;
|
|
33
|
+
viewPosition?: number;
|
|
34
|
+
}): void {
|
|
35
|
+
this.listRef?.scrollToItem(params);
|
|
36
|
+
}
|
|
37
|
+
scrollToEnd(params?: { animated?: boolean }): void {
|
|
38
|
+
this.listRef?.scrollToEnd(params);
|
|
39
|
+
}
|
|
40
|
+
flashScrollIndicators(): void {
|
|
41
|
+
this.listRef?.flashScrollIndicators();
|
|
42
|
+
}
|
|
43
|
+
getNativeScrollRef(): ISymbioteNode | null {
|
|
44
|
+
return this.listRef?.getNativeScrollRef() ?? null;
|
|
45
|
+
}
|
|
46
|
+
getScrollableNode(): IScrollViewHandle | null {
|
|
47
|
+
return this.listRef?.getScrollableNode() ?? null;
|
|
48
|
+
}
|
|
49
|
+
getScrollResponder(): IScrollViewHandle | null {
|
|
50
|
+
return this.listRef?.getScrollResponder() ?? null;
|
|
51
|
+
}
|
|
52
|
+
getScrollNode(): ISymbioteNode | null {
|
|
53
|
+
return this.listRef?.getScrollNode() ?? null;
|
|
54
|
+
}
|
|
55
|
+
getScrollRef(): ISymbioteNode | null {
|
|
56
|
+
return this.listRef?.getScrollRef() ?? null;
|
|
57
|
+
}
|
|
58
|
+
recordInteraction(): void {
|
|
59
|
+
this.listRef?.recordInteraction();
|
|
60
|
+
}
|
|
61
|
+
setNativeProps(props: Record<string, unknown>): void {
|
|
62
|
+
this.listRef?.setNativeProps(props);
|
|
63
|
+
}
|
|
64
|
+
}
|