@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.
Files changed (207) hide show
  1. package/babel-register-composed.cjs +2 -0
  2. package/build/angular/accessibility-inputs.d.ts +2 -1
  3. package/build/angular/accessibility-inputs.js +4 -1
  4. package/build/angular/accessibility-inputs.js.map +1 -1
  5. package/build/angular/callback-host.d.ts +1 -1
  6. package/build/angular/callback-host.js +57 -9
  7. package/build/angular/callback-host.js.map +1 -1
  8. package/build/angular/components/checkbox-props.d.ts +2 -0
  9. package/build/angular/components/checkbox-props.js +2 -0
  10. package/build/angular/components/checkbox-props.js.map +1 -0
  11. package/build/angular/components/flat-list/flat-list-handle.d.ts +35 -0
  12. package/build/angular/components/flat-list/flat-list-handle.js +48 -0
  13. package/build/angular/components/flat-list/flat-list-handle.js.map +1 -0
  14. package/build/angular/components/flat-list/flat-list-template.d.ts +1 -1
  15. package/build/angular/components/flat-list/flat-list-template.js +16 -0
  16. package/build/angular/components/flat-list/flat-list-template.js.map +1 -1
  17. package/build/angular/components/flat-list/index.d.ts +6 -30
  18. package/build/angular/components/flat-list/index.js +6 -36
  19. package/build/angular/components/flat-list/index.js.map +1 -1
  20. package/build/angular/components/image-inputs.d.ts +4 -0
  21. package/build/angular/components/image-inputs.js +81 -0
  22. package/build/angular/components/image-inputs.js.map +1 -0
  23. package/build/angular/components/image-props-resolve.d.ts +3 -0
  24. package/build/angular/components/image-props-resolve.js +133 -0
  25. package/build/angular/components/image-props-resolve.js.map +1 -0
  26. package/build/angular/components/image-shared.d.ts +8 -6
  27. package/build/angular/components/image-shared.js +23 -212
  28. package/build/angular/components/image-shared.js.map +1 -1
  29. package/build/angular/components/input-accessory-view-props.d.ts +4 -4
  30. package/build/angular/components/keyboard-avoiding-view/index.d.ts +3 -6
  31. package/build/angular/components/keyboard-avoiding-view/index.js +29 -56
  32. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
  33. package/build/angular/components/layout-conformance-props.d.ts +4 -0
  34. package/build/angular/components/layout-conformance-props.js +2 -0
  35. package/build/angular/components/layout-conformance-props.js.map +1 -0
  36. package/build/angular/components/modal/index.d.ts +6 -5
  37. package/build/angular/components/modal/index.js +17 -2
  38. package/build/angular/components/modal/index.js.map +1 -1
  39. package/build/angular/components/refresh-control-props.d.ts +7 -7
  40. package/build/angular/components/scroll-view-props.d.ts +8 -5
  41. package/build/angular/components/section-list/index.d.ts +17 -8
  42. package/build/angular/components/section-list/index.js +37 -28
  43. package/build/angular/components/section-list/index.js.map +1 -1
  44. package/build/angular/components/touchable-props.d.ts +2 -2
  45. package/build/angular/components/virtualized-list/cell-renderer-context.d.ts +12 -0
  46. package/build/angular/components/virtualized-list/cell-renderer-context.js +16 -0
  47. package/build/angular/components/virtualized-list/cell-renderer-context.js.map +1 -0
  48. package/build/angular/components/virtualized-list/directives.d.ts +26 -6
  49. package/build/angular/components/virtualized-list/directives.js +59 -5
  50. package/build/angular/components/virtualized-list/directives.js.map +1 -1
  51. package/build/angular/components/virtualized-list/index.d.ts +19 -15
  52. package/build/angular/components/virtualized-list/index.js +91 -61
  53. package/build/angular/components/virtualized-list/index.js.map +1 -1
  54. package/build/angular/components/virtualized-list/list-bags.d.ts +5 -1
  55. package/build/angular/components/virtualized-list/list-bags.js +31 -19
  56. package/build/angular/components/virtualized-list/list-bags.js.map +1 -1
  57. package/build/angular/components/virtualized-list/list-effects.d.ts +2 -2
  58. package/build/angular/components/virtualized-list/list-effects.js +17 -27
  59. package/build/angular/components/virtualized-list/list-effects.js.map +1 -1
  60. package/build/angular/components/virtualized-list/list-handle.d.ts +4 -1
  61. package/build/angular/components/virtualized-list/list-handle.js +13 -3
  62. package/build/angular/components/virtualized-list/list-handle.js.map +1 -1
  63. package/build/angular/components/virtualized-list/list-inputs.d.ts +19 -5
  64. package/build/angular/components/virtualized-list/list-inputs.js +47 -4
  65. package/build/angular/components/virtualized-list/list-inputs.js.map +1 -1
  66. package/build/angular/components/virtualized-list/list-props.d.ts +9 -3
  67. package/build/angular/components/virtualized-list/list-rows.d.ts +25 -0
  68. package/build/angular/components/virtualized-list/list-rows.js +25 -0
  69. package/build/angular/components/virtualized-list/list-rows.js.map +1 -0
  70. package/build/angular/components/virtualized-list/list-styles.d.ts +4 -0
  71. package/build/angular/components/virtualized-list/list-styles.js +10 -2
  72. package/build/angular/components/virtualized-list/list-styles.js.map +1 -1
  73. package/build/angular/components/virtualized-list/list-template.d.ts +1 -1
  74. package/build/angular/components/virtualized-list/list-template.js +159 -73
  75. package/build/angular/components/virtualized-list/list-template.js.map +1 -1
  76. package/build/angular/components/virtualized-list/nested-scope.d.ts +6 -0
  77. package/build/angular/components/virtualized-list/nested-scope.js +17 -0
  78. package/build/angular/components/virtualized-list/nested-scope.js.map +1 -0
  79. package/build/angular/components/virtualized-section-list/directives.d.ts +21 -9
  80. package/build/angular/components/virtualized-section-list/directives.js +8 -28
  81. package/build/angular/components/virtualized-section-list/directives.js.map +1 -1
  82. package/build/angular/components/virtualized-section-list/index.d.ts +39 -60
  83. package/build/angular/components/virtualized-section-list/index.js +67 -33
  84. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  85. package/build/angular/components/virtualized-section-list/section-cell.d.ts +29 -0
  86. package/build/angular/components/virtualized-section-list/section-cell.js +82 -0
  87. package/build/angular/components/virtualized-section-list/section-cell.js.map +1 -0
  88. package/build/angular/components/virtualized-section-list/section-list-props.d.ts +56 -0
  89. package/build/angular/components/virtualized-section-list/section-list-props.js +3 -0
  90. package/build/angular/components/virtualized-section-list/section-list-props.js.map +1 -0
  91. package/build/angular/components/virtualized-section-list/section-list-template.d.ts +1 -1
  92. package/build/angular/components/virtualized-section-list/section-list-template.js +34 -26
  93. package/build/angular/components/virtualized-section-list/section-list-template.js.map +1 -1
  94. package/build/angular/components.d.ts +8 -3
  95. package/build/angular/components.js +2 -1
  96. package/build/angular/components.js.map +1 -1
  97. package/build/angular/descriptor-to-angular/descriptor-host.d.ts +8 -0
  98. package/build/angular/descriptor-to-angular/descriptor-host.js +38 -0
  99. package/build/angular/descriptor-to-angular/descriptor-host.js.map +1 -0
  100. package/build/angular/descriptor-to-angular/index.d.ts +1 -0
  101. package/build/angular/descriptor-to-angular/index.js +4 -0
  102. package/build/angular/descriptor-to-angular/index.js.map +1 -1
  103. package/build/angular/element-base.d.ts +169 -0
  104. package/build/angular/element-base.js +304 -0
  105. package/build/angular/element-base.js.map +1 -0
  106. package/build/angular/element-props.d.ts +7 -7
  107. package/build/angular/element-text-input-native.d.ts +27 -0
  108. package/build/angular/element-text-input-native.js +52 -0
  109. package/build/angular/element-text-input-native.js.map +1 -0
  110. package/build/angular/elements-controls.d.ts +171 -0
  111. package/build/angular/elements-controls.js +394 -0
  112. package/build/angular/elements-controls.js.map +1 -0
  113. package/build/angular/elements-layout.d.ts +139 -0
  114. package/build/angular/elements-layout.js +276 -0
  115. package/build/angular/elements-layout.js.map +1 -0
  116. package/build/angular/elements-press.d.ts +103 -0
  117. package/build/angular/elements-press.js +239 -0
  118. package/build/angular/elements-press.js.map +1 -0
  119. package/build/angular/elements.d.ts +6 -516
  120. package/build/angular/elements.js +9 -1091
  121. package/build/angular/elements.js.map +1 -1
  122. package/build/angular/host-instance/index.d.ts +2 -0
  123. package/build/angular/host-instance/index.js +4 -4
  124. package/build/angular/host-instance/index.js.map +1 -1
  125. package/build/angular/index.d.ts +17 -9
  126. package/build/angular/index.js +24 -27
  127. package/build/angular/index.js.map +1 -1
  128. package/build/angular/modules/animated/create-animated-component.d.ts +1 -1
  129. package/build/angular/modules/animated/create-animated-component.js +1 -1
  130. package/build/angular/modules/animated/create-animated-component.js.map +1 -1
  131. package/build/angular/modules/animated/index.d.ts +54 -41
  132. package/build/angular/modules/animated/index.js +2 -26
  133. package/build/angular/modules/animated/index.js.map +1 -1
  134. package/build/angular/modules/app-registry/index.d.ts +3 -3
  135. package/build/angular/modules/app-registry/index.js +2 -2
  136. package/build/angular/modules/app-registry/index.js.map +1 -1
  137. package/build/angular/modules/status-bar/index.d.ts +9 -5
  138. package/build/angular/modules/status-bar/index.js +21 -10
  139. package/build/angular/modules/status-bar/index.js.map +1 -1
  140. package/build/angular/native-view-base.d.ts +10 -2
  141. package/build/angular/native-view-base.js +23 -2
  142. package/build/angular/native-view-base.js.map +1 -1
  143. package/build/angular/primitives/index.d.ts +4 -0
  144. package/build/angular/primitives/index.js +12 -0
  145. package/build/angular/primitives/index.js.map +1 -1
  146. package/build/angular/services/color-scheme.service.d.ts +1 -1
  147. package/build/angular/services/index.d.ts +1 -0
  148. package/build/angular/services/index.js +1 -0
  149. package/build/angular/services/index.js.map +1 -1
  150. package/build/angular/services/inject-event.d.ts +6 -0
  151. package/build/angular/services/inject-event.js +24 -0
  152. package/build/angular/services/inject-event.js.map +1 -0
  153. package/package.json +6 -6
  154. package/src/accessibility-inputs.ts +3 -0
  155. package/src/callback-host.ts +56 -8
  156. package/src/components/checkbox-props.ts +12 -0
  157. package/src/components/flat-list/flat-list-handle.ts +64 -0
  158. package/src/components/flat-list/flat-list-template.ts +16 -0
  159. package/src/components/flat-list/index.ts +6 -48
  160. package/src/components/image-inputs.ts +94 -0
  161. package/src/components/image-props-resolve.ts +172 -0
  162. package/src/components/image-shared.ts +26 -291
  163. package/src/components/input-accessory-view-props.ts +12 -8
  164. package/src/components/keyboard-avoiding-view/index.ts +39 -79
  165. package/src/components/layout-conformance-props.ts +8 -0
  166. package/src/components/modal/index.ts +42 -20
  167. package/src/components/refresh-control-props.ts +29 -25
  168. package/src/components/scroll-view-props.ts +84 -76
  169. package/src/components/section-list/index.ts +34 -37
  170. package/src/components/touchable-props.ts +6 -2
  171. package/src/components/virtualized-list/cell-renderer-context.ts +36 -0
  172. package/src/components/virtualized-list/directives.ts +84 -8
  173. package/src/components/virtualized-list/index.ts +118 -85
  174. package/src/components/virtualized-list/list-bags.ts +38 -19
  175. package/src/components/virtualized-list/list-effects.ts +20 -32
  176. package/src/components/virtualized-list/list-handle.ts +17 -4
  177. package/src/components/virtualized-list/list-inputs.ts +47 -0
  178. package/src/components/virtualized-list/list-props.ts +57 -50
  179. package/src/components/virtualized-list/list-rows.ts +66 -0
  180. package/src/components/virtualized-list/list-styles.ts +30 -1
  181. package/src/components/virtualized-list/list-template.ts +159 -73
  182. package/src/components/virtualized-list/nested-scope.ts +22 -0
  183. package/src/components/virtualized-section-list/directives.ts +41 -40
  184. package/src/components/virtualized-section-list/index.ts +114 -118
  185. package/src/components/virtualized-section-list/section-cell.ts +109 -0
  186. package/src/components/virtualized-section-list/section-list-props.ts +79 -0
  187. package/src/components/virtualized-section-list/section-list-template.ts +34 -26
  188. package/src/components.ts +9 -0
  189. package/src/descriptor-to-angular/descriptor-host.ts +27 -0
  190. package/src/descriptor-to-angular/index.ts +5 -0
  191. package/src/element-base.ts +289 -0
  192. package/src/element-props.ts +35 -33
  193. package/src/element-text-input-native.ts +31 -0
  194. package/src/elements-controls.ts +290 -0
  195. package/src/elements-layout.ts +168 -0
  196. package/src/elements-press.ts +153 -0
  197. package/src/elements.ts +76 -788
  198. package/src/host-instance/index.ts +4 -4
  199. package/src/index.ts +78 -23
  200. package/src/modules/animated/index.ts +2 -47
  201. package/src/modules/app-registry/index.ts +3 -1
  202. package/src/modules/status-bar/index.ts +24 -11
  203. package/src/native-view-base.ts +37 -2
  204. package/src/primitives/index.ts +7 -0
  205. package/src/services/color-scheme.service.ts +1 -1
  206. package/src/services/index.ts +1 -0
  207. 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,GAGL,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,gBAAgB,EAAE,CAAC"}
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 SimpleChanges } from '@angular/core';
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
- ngOnChanges(_changes: SimpleChanges): void;
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 Angular lifecycle half. The native StatusBarManager driving, the imperative
2
- // statics, and the Android bar-height constant all live in @symbiote-native/engine, shared verbatim with
3
- // React and Vue; Metro selects the engine's platform variant. Angular supplies only the
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 { applyStatusBarProps, statusBarImperative, statusBarCurrentHeight, } from '@symbiote-native/engine';
5
+ import { createStatusBarEntry, statusBarImperative, statusBarCurrentHeight, } from '@symbiote-native/engine';
9
6
  import * as i0 from "@angular/core";
10
7
  class StatusBarComponent {
11
- ngOnChanges(_changes) {
12
- applyStatusBarProps(this.buildProps());
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,6FAA6F;AAC7F,yGAAyG;AACzG,wFAAwF;AACxF,uFAAuF;AACvF,6FAA6F;AAC7F,+BAA+B;AAE/B,OAAO,EACL,SAAS,EACT,KAAK,GAGN,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GAIvB,MAAM,yBAAyB,CAAC;;AAIjC,MAKM,kBAAkB;IAQtB,WAAW,CAAC,QAAuB;QACjC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,UAAU;QAChB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,+BAA+B,EAAE,IAAI,CAAC,+BAA+B;YACrE,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC;8GArBG,kBAAkB;kGAAlB,kBAAkB,wSAFZ,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;;AAkBR,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
+ {"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,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAOxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAEtD,8FAA8F;AAC9F,2FAA2F;AAE3F,MAAM,OAAgB,cAAe,SAAQ,uBAAuB;IADpE;;QAUE,yFAAyF;QACxE,eAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;KA0BlD;IAlBC,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;8GAnCmB,cAAc;kGAAd,cAAc;;2FAAd,cAAc;kBADnC,SAAS;;sBAEP,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK"}
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.2.0",
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.1.4",
70
- "@symbiote-native/css-parser": "0.5.3"
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.5.0"
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.5.0",
87
- "@symbiote-native/test-utils": "0.4.6"
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,
@@ -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
- '[onChangeText],[onContentSizeChange],[onEndEditing],[onError],[onFocus],[onHoverIn],[onHoverOut],' +
99
- '[onKeyPress],[onLayout],[onLoad],[onLoadEnd],[onLoadStart],[onLongPress],[onMagicTap],' +
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],[onValueChange]';
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
- '[onContentSizeChange],[onEndEditing],[onError],[onFocus],[onHoverIn],[onHoverOut],' +
115
- '[onKeyPress],[onLayout],[onLoad],[onLoadEnd],[onLoadStart],[onLongPress],[onMagicTap],' +
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],[onValueChange]',
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
+ }