@symbiote-native/angular 3.1.3 → 3.3.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 (165) hide show
  1. package/babel-register-composed.cjs +1 -0
  2. package/build/angular/accessibility-events.d.ts +12 -0
  3. package/build/angular/accessibility-events.js +28 -0
  4. package/build/angular/accessibility-events.js.map +1 -0
  5. package/build/angular/accessibility-inputs.d.ts +40 -0
  6. package/build/angular/accessibility-inputs.js +130 -0
  7. package/build/angular/accessibility-inputs.js.map +1 -0
  8. package/build/angular/bootstrap.d.ts +3 -1
  9. package/build/angular/bootstrap.js +4 -1
  10. package/build/angular/bootstrap.js.map +1 -1
  11. package/build/angular/components/checkbox-props.d.ts +2 -0
  12. package/build/angular/components/checkbox-props.js +2 -0
  13. package/build/angular/components/checkbox-props.js.map +1 -0
  14. package/build/angular/components/flat-list/flat-list-template.d.ts +1 -0
  15. package/build/angular/components/flat-list/flat-list-template.js +158 -0
  16. package/build/angular/components/flat-list/flat-list-template.js.map +1 -0
  17. package/build/angular/components/flat-list/index.d.ts +6 -61
  18. package/build/angular/components/flat-list/index.js +26 -463
  19. package/build/angular/components/flat-list/index.js.map +1 -1
  20. package/build/angular/components/keyboard-avoiding-view/index.d.ts +4 -40
  21. package/build/angular/components/keyboard-avoiding-view/index.js +7 -131
  22. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
  23. package/build/angular/components/modal/index.d.ts +5 -41
  24. package/build/angular/components/modal/index.js +8 -133
  25. package/build/angular/components/modal/index.js.map +1 -1
  26. package/build/angular/components/section-list/index.d.ts +4 -51
  27. package/build/angular/components/section-list/index.js +18 -335
  28. package/build/angular/components/section-list/index.js.map +1 -1
  29. package/build/angular/components/virtualized-list/cell-registry.d.ts +35 -0
  30. package/build/angular/components/virtualized-list/cell-registry.js +133 -0
  31. package/build/angular/components/virtualized-list/cell-registry.js.map +1 -0
  32. package/build/angular/components/virtualized-list/index.d.ts +18 -253
  33. package/build/angular/components/virtualized-list/index.js +112 -1178
  34. package/build/angular/components/virtualized-list/index.js.map +1 -1
  35. package/build/angular/components/virtualized-list/list-a11y-forward.d.ts +1 -0
  36. package/build/angular/components/virtualized-list/list-a11y-forward.js +42 -0
  37. package/build/angular/components/virtualized-list/list-a11y-forward.js.map +1 -0
  38. package/build/angular/components/virtualized-list/list-bags.d.ts +32 -0
  39. package/build/angular/components/virtualized-list/list-bags.js +120 -0
  40. package/build/angular/components/virtualized-list/list-bags.js.map +1 -0
  41. package/build/angular/components/virtualized-list/list-effects.d.ts +31 -0
  42. package/build/angular/components/virtualized-list/list-effects.js +83 -0
  43. package/build/angular/components/virtualized-list/list-effects.js.map +1 -0
  44. package/build/angular/components/virtualized-list/list-events.d.ts +17 -0
  45. package/build/angular/components/virtualized-list/list-events.js +34 -0
  46. package/build/angular/components/virtualized-list/list-events.js.map +1 -0
  47. package/build/angular/components/virtualized-list/list-handle.d.ts +35 -0
  48. package/build/angular/components/virtualized-list/list-handle.js +61 -0
  49. package/build/angular/components/virtualized-list/list-handle.js.map +1 -0
  50. package/build/angular/components/virtualized-list/list-inputs.d.ts +78 -0
  51. package/build/angular/components/virtualized-list/list-inputs.js +150 -0
  52. package/build/angular/components/virtualized-list/list-inputs.js.map +1 -0
  53. package/build/angular/components/virtualized-list/list-props.d.ts +58 -0
  54. package/build/angular/components/virtualized-list/list-props.js +3 -0
  55. package/build/angular/components/virtualized-list/list-props.js.map +1 -0
  56. package/build/angular/components/virtualized-list/list-styles.d.ts +23 -0
  57. package/build/angular/components/virtualized-list/list-styles.js +26 -0
  58. package/build/angular/components/virtualized-list/list-styles.js.map +1 -0
  59. package/build/angular/components/virtualized-list/list-template.d.ts +1 -0
  60. package/build/angular/components/virtualized-list/list-template.js +176 -0
  61. package/build/angular/components/virtualized-list/list-template.js.map +1 -0
  62. package/build/angular/components/virtualized-section-list/index.d.ts +13 -70
  63. package/build/angular/components/virtualized-section-list/index.js +22 -455
  64. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  65. package/build/angular/components/virtualized-section-list/section-list-template.d.ts +1 -0
  66. package/build/angular/components/virtualized-section-list/section-list-template.js +107 -0
  67. package/build/angular/components/virtualized-section-list/section-list-template.js.map +1 -0
  68. package/build/angular/components.d.ts +1 -0
  69. package/build/angular/components.js.map +1 -1
  70. package/build/angular/descriptor-to-angular/descriptor-host.d.ts +8 -0
  71. package/build/angular/descriptor-to-angular/descriptor-host.js +38 -0
  72. package/build/angular/descriptor-to-angular/descriptor-host.js.map +1 -0
  73. package/build/angular/descriptor-to-angular/index.d.ts +1 -0
  74. package/build/angular/descriptor-to-angular/index.js +4 -0
  75. package/build/angular/descriptor-to-angular/index.js.map +1 -1
  76. package/build/angular/element-base.d.ts +153 -0
  77. package/build/angular/element-base.js +272 -0
  78. package/build/angular/element-base.js.map +1 -0
  79. package/build/angular/elements-controls.d.ts +165 -0
  80. package/build/angular/elements-controls.js +382 -0
  81. package/build/angular/elements-controls.js.map +1 -0
  82. package/build/angular/elements-layout.d.ts +122 -0
  83. package/build/angular/elements-layout.js +242 -0
  84. package/build/angular/elements-layout.js.map +1 -0
  85. package/build/angular/elements-press.d.ts +96 -0
  86. package/build/angular/elements-press.js +227 -0
  87. package/build/angular/elements-press.js.map +1 -0
  88. package/build/angular/elements.d.ts +6 -516
  89. package/build/angular/elements.js +8 -1091
  90. package/build/angular/elements.js.map +1 -1
  91. package/build/angular/finalization-registry.d.ts +4 -0
  92. package/build/angular/finalization-registry.js +17 -0
  93. package/build/angular/finalization-registry.js.map +1 -0
  94. package/build/angular/host-instance/index.d.ts +2 -0
  95. package/build/angular/host-instance/index.js +4 -4
  96. package/build/angular/host-instance/index.js.map +1 -1
  97. package/build/angular/index.d.ts +9 -4
  98. package/build/angular/index.js +8 -3
  99. package/build/angular/index.js.map +1 -1
  100. package/build/angular/native-view-base.d.ts +27 -0
  101. package/build/angular/native-view-base.js +69 -0
  102. package/build/angular/native-view-base.js.map +1 -0
  103. package/build/angular/render/index.d.ts +2 -1
  104. package/build/angular/render/index.js +46 -73
  105. package/build/angular/render/index.js.map +1 -1
  106. package/build/angular/services/connect-watched-signal.d.ts +2 -0
  107. package/build/angular/services/connect-watched-signal.js +9 -0
  108. package/build/angular/services/connect-watched-signal.js.map +1 -0
  109. package/build/angular/services/create-event-value-hook.d.ts +3 -0
  110. package/build/angular/services/create-event-value-hook.js +17 -0
  111. package/build/angular/services/create-event-value-hook.js.map +1 -0
  112. package/build/angular/services/create-resource-hook.d.ts +7 -0
  113. package/build/angular/services/create-resource-hook.js +20 -0
  114. package/build/angular/services/create-resource-hook.js.map +1 -0
  115. package/build/angular/services/index.d.ts +5 -0
  116. package/build/angular/services/index.js +5 -0
  117. package/build/angular/services/index.js.map +1 -1
  118. package/build/angular/services/inject-event.d.ts +6 -0
  119. package/build/angular/services/inject-event.js +24 -0
  120. package/build/angular/services/inject-event.js.map +1 -0
  121. package/build/angular/services/permissions-service-base.d.ts +14 -0
  122. package/build/angular/services/permissions-service-base.js +38 -0
  123. package/build/angular/services/permissions-service-base.js.map +1 -0
  124. package/package.json +6 -6
  125. package/src/accessibility-events.ts +13 -0
  126. package/src/accessibility-inputs.ts +89 -0
  127. package/src/bootstrap.ts +6 -2
  128. package/src/components/checkbox-props.ts +12 -0
  129. package/src/components/flat-list/flat-list-template.ts +159 -0
  130. package/src/components/flat-list/index.ts +30 -307
  131. package/src/components/keyboard-avoiding-view/index.ts +4 -78
  132. package/src/components/modal/index.ts +7 -80
  133. package/src/components/section-list/index.ts +21 -172
  134. package/src/components/virtualized-list/cell-registry.ts +199 -0
  135. package/src/components/virtualized-list/index.ts +145 -1181
  136. package/src/components/virtualized-list/list-a11y-forward.ts +42 -0
  137. package/src/components/virtualized-list/list-bags.ts +142 -0
  138. package/src/components/virtualized-list/list-effects.ts +116 -0
  139. package/src/components/virtualized-list/list-events.ts +31 -0
  140. package/src/components/virtualized-list/list-handle.ts +92 -0
  141. package/src/components/virtualized-list/list-inputs.ts +149 -0
  142. package/src/components/virtualized-list/list-props.ts +81 -0
  143. package/src/components/virtualized-list/list-styles.ts +62 -0
  144. package/src/components/virtualized-list/list-template.ts +175 -0
  145. package/src/components/virtualized-section-list/index.ts +40 -351
  146. package/src/components/virtualized-section-list/section-list-template.ts +108 -0
  147. package/src/components.ts +1 -0
  148. package/src/descriptor-to-angular/descriptor-host.ts +27 -0
  149. package/src/descriptor-to-angular/index.ts +5 -0
  150. package/src/element-base.ts +272 -0
  151. package/src/elements-controls.ts +282 -0
  152. package/src/elements-layout.ts +141 -0
  153. package/src/elements-press.ts +145 -0
  154. package/src/elements.ts +73 -788
  155. package/src/finalization-registry.ts +18 -0
  156. package/src/host-instance/index.ts +4 -4
  157. package/src/index.ts +18 -2
  158. package/src/native-view-base.ts +86 -0
  159. package/src/render/index.ts +76 -77
  160. package/src/services/connect-watched-signal.ts +15 -0
  161. package/src/services/create-event-value-hook.ts +24 -0
  162. package/src/services/create-resource-hook.ts +32 -0
  163. package/src/services/index.ts +5 -0
  164. package/src/services/inject-event.ts +52 -0
  165. package/src/services/permissions-service-base.ts +46 -0
@@ -26,6 +26,7 @@ const PRIMITIVE_SELECTORS = new Set([
26
26
  // The second anchor-backed primitive, same shape (TouchableWithoutFeedback.js:286).
27
27
  'touchable-without-feedback',
28
28
  'button',
29
+ 'checkbox',
29
30
  'text',
30
31
  'image',
31
32
  // The box RN wraps the background image in — the tag an app writes. The image itself is built by
@@ -0,0 +1,12 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import type { ISymbioteEvent } from '@symbiote-native/engine';
3
+ import { AccessibilityInputsBase } from './accessibility-inputs';
4
+ import * as i0 from "@angular/core";
5
+ export declare abstract class AccessibilityEventsBase extends AccessibilityInputsBase {
6
+ readonly accessibilityAction: EventEmitter<ISymbioteEvent>;
7
+ readonly accessibilityTap: EventEmitter<ISymbioteEvent>;
8
+ readonly magicTap: EventEmitter<ISymbioteEvent>;
9
+ readonly accessibilityEscape: EventEmitter<ISymbioteEvent>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<AccessibilityEventsBase, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AccessibilityEventsBase, never, never, {}, { "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, never, true, never>;
12
+ }
@@ -0,0 +1,28 @@
1
+ import { Directive, EventEmitter, Output } from '@angular/core';
2
+ import { AccessibilityInputsBase } from './accessibility-inputs';
3
+ import * as i0 from "@angular/core";
4
+ // The four accessibility callbacks as real Angular events, for components that expose them as
5
+ // outputs rather than inputs
6
+ export class AccessibilityEventsBase extends AccessibilityInputsBase {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.accessibilityAction = new EventEmitter();
10
+ this.accessibilityTap = new EventEmitter();
11
+ this.magicTap = new EventEmitter();
12
+ this.accessibilityEscape = new EventEmitter();
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AccessibilityEventsBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: AccessibilityEventsBase, isStandalone: true, outputs: { accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, usesInheritance: true, ngImport: i0 }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AccessibilityEventsBase, decorators: [{
18
+ type: Directive
19
+ }], propDecorators: { accessibilityAction: [{
20
+ type: Output
21
+ }], accessibilityTap: [{
22
+ type: Output
23
+ }], magicTap: [{
24
+ type: Output
25
+ }], accessibilityEscape: [{
26
+ type: Output
27
+ }] } });
28
+ //# sourceMappingURL=accessibility-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility-events.js","sourceRoot":"","sources":["../../src/accessibility-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;;AAEjE,8FAA8F;AAC9F,6BAA6B;AAE7B,MAAM,OAAgB,uBAAwB,SAAQ,uBAAuB;IAD7E;;QAEqB,wBAAmB,GAAG,IAAI,YAAY,EAAkB,CAAC;QACzD,qBAAgB,GAAG,IAAI,YAAY,EAAkB,CAAC;QACtD,aAAQ,GAAG,IAAI,YAAY,EAAkB,CAAC;QAC9C,wBAAmB,GAAG,IAAI,YAAY,EAAkB,CAAC;KAC7E;8GALqB,uBAAuB;kGAAvB,uBAAuB;;2FAAvB,uBAAuB;kBAD5C,SAAS;;sBAEP,MAAM;;sBACN,MAAM;;sBACN,MAAM;;sBACN,MAAM"}
@@ -0,0 +1,40 @@
1
+ import type { IAccessibilityProps, IAccessibilityStateValue, IAriaProps } from '@symbiote-native/components';
2
+ import * as i0 from "@angular/core";
3
+ export declare abstract class AccessibilityInputsBase {
4
+ accessible?: boolean;
5
+ accessibilityLabel?: string;
6
+ accessibilityHint?: string;
7
+ accessibilityRole?: IAccessibilityProps['accessibilityRole'];
8
+ accessibilityState?: IAccessibilityStateValue;
9
+ accessibilityValue?: IAccessibilityProps['accessibilityValue'];
10
+ accessibilityActions?: IAccessibilityProps['accessibilityActions'];
11
+ accessibilityLabelledBy?: string | string[];
12
+ importantForAccessibility?: IAccessibilityProps['importantForAccessibility'];
13
+ accessibilityLiveRegion?: IAccessibilityProps['accessibilityLiveRegion'];
14
+ screenReaderFocusable?: boolean;
15
+ accessibilityViewIsModal?: boolean;
16
+ accessibilityElementsHidden?: boolean;
17
+ accessibilityIgnoresInvertColors?: boolean;
18
+ accessibilityLanguage?: string;
19
+ accessibilityRespondsToUserInteraction?: boolean;
20
+ accessibilityShowsLargeContentViewer?: boolean;
21
+ accessibilityLargeContentTitle?: string;
22
+ role?: IAriaProps['role'];
23
+ ariaLabel?: string;
24
+ ariaLabelledBy?: string;
25
+ ariaLive?: IAriaProps['aria-live'];
26
+ ariaHidden?: boolean;
27
+ ariaBusy?: boolean;
28
+ ariaChecked?: boolean | 'mixed';
29
+ ariaDisabled?: boolean;
30
+ ariaExpanded?: boolean;
31
+ ariaSelected?: boolean;
32
+ ariaModal?: boolean;
33
+ ariaValueMax?: number;
34
+ ariaValueMin?: number;
35
+ ariaValueNow?: number;
36
+ ariaValueText?: string;
37
+ protected accessibilityInputProps(): IAccessibilityProps & IAriaProps;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<AccessibilityInputsBase, never>;
39
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AccessibilityInputsBase, never, never, { "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "accessibilityViewIsModal": { "alias": "accessibilityViewIsModal"; "required": false; }; "accessibilityElementsHidden": { "alias": "accessibilityElementsHidden"; "required": false; }; "accessibilityIgnoresInvertColors": { "alias": "accessibilityIgnoresInvertColors"; "required": false; }; "accessibilityLanguage": { "alias": "accessibilityLanguage"; "required": false; }; "accessibilityRespondsToUserInteraction": { "alias": "accessibilityRespondsToUserInteraction"; "required": false; }; "accessibilityShowsLargeContentViewer": { "alias": "accessibilityShowsLargeContentViewer"; "required": false; }; "accessibilityLargeContentTitle": { "alias": "accessibilityLargeContentTitle"; "required": false; }; "role": { "alias": "role"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; }; "ariaLive": { "alias": "aria-live"; "required": false; }; "ariaHidden": { "alias": "aria-hidden"; "required": false; }; "ariaBusy": { "alias": "aria-busy"; "required": false; }; "ariaChecked": { "alias": "aria-checked"; "required": false; }; "ariaDisabled": { "alias": "aria-disabled"; "required": false; }; "ariaExpanded": { "alias": "aria-expanded"; "required": false; }; "ariaSelected": { "alias": "aria-selected"; "required": false; }; "ariaModal": { "alias": "aria-modal"; "required": false; }; "ariaValueMax": { "alias": "aria-valuemax"; "required": false; }; "ariaValueMin": { "alias": "aria-valuemin"; "required": false; }; "ariaValueNow": { "alias": "aria-valuenow"; "required": false; }; "ariaValueText": { "alias": "aria-valuetext"; "required": false; }; }, {}, never, never, true, never>;
40
+ }
@@ -0,0 +1,130 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ // Inputs are declared statically, so view-shaped components extend this instead of repeating them
4
+ // The `on*` accessibility callbacks stay per component: some take inputs, others outputs
5
+ export class AccessibilityInputsBase {
6
+ // The bag the shared fold takes, the aria inputs under their web names
7
+ accessibilityInputProps() {
8
+ return {
9
+ accessible: this.accessible,
10
+ accessibilityLabel: this.accessibilityLabel,
11
+ accessibilityHint: this.accessibilityHint,
12
+ accessibilityRole: this.accessibilityRole,
13
+ accessibilityState: this.accessibilityState,
14
+ accessibilityValue: this.accessibilityValue,
15
+ accessibilityActions: this.accessibilityActions,
16
+ accessibilityLabelledBy: this.accessibilityLabelledBy,
17
+ importantForAccessibility: this.importantForAccessibility,
18
+ accessibilityLiveRegion: this.accessibilityLiveRegion,
19
+ screenReaderFocusable: this.screenReaderFocusable,
20
+ accessibilityViewIsModal: this.accessibilityViewIsModal,
21
+ accessibilityElementsHidden: this.accessibilityElementsHidden,
22
+ accessibilityIgnoresInvertColors: this.accessibilityIgnoresInvertColors,
23
+ accessibilityLanguage: this.accessibilityLanguage,
24
+ accessibilityRespondsToUserInteraction: this.accessibilityRespondsToUserInteraction,
25
+ accessibilityShowsLargeContentViewer: this.accessibilityShowsLargeContentViewer,
26
+ accessibilityLargeContentTitle: this.accessibilityLargeContentTitle,
27
+ role: this.role,
28
+ 'aria-label': this.ariaLabel,
29
+ 'aria-labelledby': this.ariaLabelledBy,
30
+ 'aria-live': this.ariaLive,
31
+ 'aria-hidden': this.ariaHidden,
32
+ 'aria-busy': this.ariaBusy,
33
+ 'aria-checked': this.ariaChecked,
34
+ 'aria-disabled': this.ariaDisabled,
35
+ 'aria-expanded': this.ariaExpanded,
36
+ 'aria-selected': this.ariaSelected,
37
+ 'aria-modal': this.ariaModal,
38
+ 'aria-valuemax': this.ariaValueMax,
39
+ 'aria-valuemin': this.ariaValueMin,
40
+ 'aria-valuenow': this.ariaValueNow,
41
+ 'aria-valuetext': this.ariaValueText,
42
+ };
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AccessibilityInputsBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: AccessibilityInputsBase, isStandalone: true, inputs: { accessible: "accessible", accessibilityLabel: "accessibilityLabel", accessibilityHint: "accessibilityHint", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityActions: "accessibilityActions", accessibilityLabelledBy: "accessibilityLabelledBy", importantForAccessibility: "importantForAccessibility", accessibilityLiveRegion: "accessibilityLiveRegion", screenReaderFocusable: "screenReaderFocusable", accessibilityViewIsModal: "accessibilityViewIsModal", accessibilityElementsHidden: "accessibilityElementsHidden", accessibilityIgnoresInvertColors: "accessibilityIgnoresInvertColors", accessibilityLanguage: "accessibilityLanguage", accessibilityRespondsToUserInteraction: "accessibilityRespondsToUserInteraction", accessibilityShowsLargeContentViewer: "accessibilityShowsLargeContentViewer", accessibilityLargeContentTitle: "accessibilityLargeContentTitle", role: "role", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledBy: ["aria-labelledby", "ariaLabelledBy"], ariaLive: ["aria-live", "ariaLive"], ariaHidden: ["aria-hidden", "ariaHidden"], ariaBusy: ["aria-busy", "ariaBusy"], ariaChecked: ["aria-checked", "ariaChecked"], ariaDisabled: ["aria-disabled", "ariaDisabled"], ariaExpanded: ["aria-expanded", "ariaExpanded"], ariaSelected: ["aria-selected", "ariaSelected"], ariaModal: ["aria-modal", "ariaModal"], ariaValueMax: ["aria-valuemax", "ariaValueMax"], ariaValueMin: ["aria-valuemin", "ariaValueMin"], ariaValueNow: ["aria-valuenow", "ariaValueNow"], ariaValueText: ["aria-valuetext", "ariaValueText"] }, ngImport: i0 }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AccessibilityInputsBase, decorators: [{
48
+ type: Directive
49
+ }], propDecorators: { accessible: [{
50
+ type: Input
51
+ }], accessibilityLabel: [{
52
+ type: Input
53
+ }], accessibilityHint: [{
54
+ type: Input
55
+ }], accessibilityRole: [{
56
+ type: Input
57
+ }], accessibilityState: [{
58
+ type: Input
59
+ }], accessibilityValue: [{
60
+ type: Input
61
+ }], accessibilityActions: [{
62
+ type: Input
63
+ }], accessibilityLabelledBy: [{
64
+ type: Input
65
+ }], importantForAccessibility: [{
66
+ type: Input
67
+ }], accessibilityLiveRegion: [{
68
+ type: Input
69
+ }], screenReaderFocusable: [{
70
+ type: Input
71
+ }], accessibilityViewIsModal: [{
72
+ type: Input
73
+ }], accessibilityElementsHidden: [{
74
+ type: Input
75
+ }], accessibilityIgnoresInvertColors: [{
76
+ type: Input
77
+ }], accessibilityLanguage: [{
78
+ type: Input
79
+ }], accessibilityRespondsToUserInteraction: [{
80
+ type: Input
81
+ }], accessibilityShowsLargeContentViewer: [{
82
+ type: Input
83
+ }], accessibilityLargeContentTitle: [{
84
+ type: Input
85
+ }], role: [{
86
+ type: Input
87
+ }], ariaLabel: [{
88
+ type: Input,
89
+ args: ['aria-label']
90
+ }], ariaLabelledBy: [{
91
+ type: Input,
92
+ args: ['aria-labelledby']
93
+ }], ariaLive: [{
94
+ type: Input,
95
+ args: ['aria-live']
96
+ }], ariaHidden: [{
97
+ type: Input,
98
+ args: ['aria-hidden']
99
+ }], ariaBusy: [{
100
+ type: Input,
101
+ args: ['aria-busy']
102
+ }], ariaChecked: [{
103
+ type: Input,
104
+ args: ['aria-checked']
105
+ }], ariaDisabled: [{
106
+ type: Input,
107
+ args: ['aria-disabled']
108
+ }], ariaExpanded: [{
109
+ type: Input,
110
+ args: ['aria-expanded']
111
+ }], ariaSelected: [{
112
+ type: Input,
113
+ args: ['aria-selected']
114
+ }], ariaModal: [{
115
+ type: Input,
116
+ args: ['aria-modal']
117
+ }], ariaValueMax: [{
118
+ type: Input,
119
+ args: ['aria-valuemax']
120
+ }], ariaValueMin: [{
121
+ type: Input,
122
+ args: ['aria-valuemin']
123
+ }], ariaValueNow: [{
124
+ type: Input,
125
+ args: ['aria-valuenow']
126
+ }], ariaValueText: [{
127
+ type: Input,
128
+ args: ['aria-valuetext']
129
+ }] } });
130
+ //# sourceMappingURL=accessibility-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility-inputs.js","sourceRoot":"","sources":["../../src/accessibility-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;AAOjD,kGAAkG;AAClG,yFAAyF;AAEzF,MAAM,OAAgB,uBAAuB;IAsC3C,uEAAuE;IAC7D,uBAAuB;QAC/B,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;YACzD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;YACvD,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;YAC7D,gCAAgC,EAAE,IAAI,CAAC,gCAAgC;YACvE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,sCAAsC,EACpC,IAAI,CAAC,sCAAsC;YAC7C,oCAAoC,EAClC,IAAI,CAAC,oCAAoC;YAC3C,8BAA8B,EAAE,IAAI,CAAC,8BAA8B;YACnE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,SAAS;YAC5B,iBAAiB,EAAE,IAAI,CAAC,cAAc;YACtC,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,aAAa,EAAE,IAAI,CAAC,UAAU;YAC9B,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,cAAc,EAAE,IAAI,CAAC,WAAW;YAChC,eAAe,EAAE,IAAI,CAAC,YAAY;YAClC,eAAe,EAAE,IAAI,CAAC,YAAY;YAClC,eAAe,EAAE,IAAI,CAAC,YAAY;YAClC,YAAY,EAAE,IAAI,CAAC,SAAS;YAC5B,eAAe,EAAE,IAAI,CAAC,YAAY;YAClC,eAAe,EAAE,IAAI,CAAC,YAAY;YAClC,eAAe,EAAE,IAAI,CAAC,YAAY;YAClC,gBAAgB,EAAE,IAAI,CAAC,aAAa;SACrC,CAAC;IACJ,CAAC;8GA7EmB,uBAAuB;kGAAvB,uBAAuB;;2FAAvB,uBAAuB;kBAD5C,SAAS;;sBAEP,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBAEL,KAAK;;sBAEL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBAEL,KAAK;;sBACL,KAAK;uBAAC,YAAY;;sBAClB,KAAK;uBAAC,iBAAiB;;sBACvB,KAAK;uBAAC,WAAW;;sBACjB,KAAK;uBAAC,aAAa;;sBACnB,KAAK;uBAAC,WAAW;;sBACjB,KAAK;uBAAC,cAAc;;sBACpB,KAAK;uBAAC,eAAe;;sBACrB,KAAK;uBAAC,eAAe;;sBACrB,KAAK;uBAAC,eAAe;;sBACrB,KAAK;uBAAC,YAAY;;sBAClB,KAAK;uBAAC,eAAe;;sBACrB,KAAK;uBAAC,eAAe;;sBACrB,KAAK;uBAAC,eAAe;;sBACrB,KAAK;uBAAC,gBAAgB"}
@@ -1,7 +1,9 @@
1
- import type { Type } from '@angular/core';
1
+ import './finalization-registry';
2
+ import type { EnvironmentProviders, Provider, Type } from '@angular/core';
2
3
  import { type IBootstrapHostOptions } from '@symbiote-native/components/bootstrap';
3
4
  export type { IBootstrapHostOptions } from '@symbiote-native/components/bootstrap';
4
5
  export type IBootstrapApplicationOptions = IBootstrapHostOptions & {
5
6
  appName: string;
7
+ providers?: (Provider | EnvironmentProviders)[];
6
8
  };
7
9
  export declare function bootstrapApplication(AppComponent: Type<unknown>, options: IBootstrapApplicationOptions): void;
@@ -2,12 +2,15 @@
2
2
  // package's main barrel — see that file's header for why anything importing react-native must
3
3
  // stay there. No @Component/@Directive decorators here, so unlike the package's main "." entry
4
4
  // this needs no ngc/AOT build step and can stay a plain source reference.
5
+ import './finalization-registry';
5
6
  import { AppRegistry as RNAppRegistry } from 'react-native';
6
7
  import { bootstrapHost, } from '@symbiote-native/components/bootstrap';
7
8
  import { AppRegistry, setHostRegistrar } from './modules/app-registry';
9
+ import { setRootProviders } from './render';
8
10
  // Mirrors real Angular's bootstrapApplication(RootComponent, config) idiom.
9
11
  export function bootstrapApplication(AppComponent, options) {
10
- const { appName, ...bootstrapOptions } = options;
12
+ const { appName, providers = [], ...bootstrapOptions } = options;
13
+ setRootProviders(providers);
11
14
  bootstrapHost(bootstrapOptions);
12
15
  setHostRegistrar(RNAppRegistry);
13
16
  AppRegistry.registerComponent(appName, () => AppComponent);
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,8FAA8F;AAC9F,+FAA+F;AAC/F,0EAA0E;AAE1E,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EACL,aAAa,GAEd,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQvE,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAClC,YAA2B,EAC3B,OAAqC;IAErC,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC;IACjD,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChC,WAAW,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,8FAA8F;AAC9F,+FAA+F;AAC/F,0EAA0E;AAE1E,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EACL,aAAa,GAEd,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAS5C,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAClC,YAA2B,EAC3B,OAAqC;IAErC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC;IACjE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC5B,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChC,WAAW,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ICheckboxProps as ICoreCheckboxProps } from '@symbiote-native/components';
2
+ export type ICheckboxProps = Omit<ICoreCheckboxProps, 'onChange' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=checkbox-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-props.js","sourceRoot":"","sources":["../../../src/components/checkbox-props.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare const FLAT_LIST_TEMPLATE = "\n @if (isMultiColumn) {\n <VirtualizedList\n [data]=\"rows\"\n [getItem]=\"getRow\"\n [getItemCount]=\"getRowCount\"\n [keyExtractor]=\"rowKey\"\n [getItemLayout]=\"getItemLayout\"\n [horizontal]=\"horizontal\"\n [inverted]=\"inverted\"\n [extraData]=\"extraData\"\n (endReached)=\"endReached.emit($event)\"\n [onEndReachedThreshold]=\"onEndReachedThreshold\"\n (startReached)=\"startReached.emit($event)\"\n [onStartReachedThreshold]=\"onStartReachedThreshold\"\n (refresh)=\"refresh.emit()\"\n [refreshRequested]=\"refresh.observed\"\n [refreshing]=\"refreshing\"\n [progressViewOffset]=\"progressViewOffset\"\n (viewableItemsChanged)=\"rowViewableItemsChanged($event)\"\n [viewabilityConfig]=\"viewabilityConfig\"\n [viewabilityConfigCallbackPairs]=\"rowViewabilityPairs\"\n (scrollToIndexFailed)=\"scrollToIndexFailed.emit($event)\"\n [initialNumToRender]=\"initialNumToRender\"\n [initialScrollIndex]=\"initialScrollIndex\"\n [maxToRenderPerBatch]=\"maxToRenderPerBatch\"\n [updateCellsBatchingPeriod]=\"updateCellsBatchingPeriod\"\n [windowSize]=\"windowSize\"\n [stickyHeaderIndices]=\"stickyHeaderIndices\"\n [maintainVisibleContentPosition]=\"maintainVisibleContentPosition\"\n [onScroll]=\"onScroll\"\n [onScrollBeginDrag]=\"onScrollBeginDrag\"\n [onScrollEndDrag]=\"onScrollEndDrag\"\n [onMomentumScrollBegin]=\"onMomentumScrollBegin\"\n [onMomentumScrollEnd]=\"onMomentumScrollEnd\"\n [scrollEventThrottle]=\"scrollEventThrottle\"\n [keyboardShouldPersistTaps]=\"keyboardShouldPersistTaps\"\n [keyboardDismissMode]=\"keyboardDismissMode\"\n [removeClippedSubviews]=\"resolvedRemoveClippedSubviews\"\n [nestedScrollEnabled]=\"nestedScrollEnabled\"\n [testID]=\"testID\"\n [nativeID]=\"nativeID\"\n [style]=\"resolvedStyle\"\n [contentContainerStyle]=\"contentContainerStyle\"\n \n [accessible]=\"accessible\"\n [accessibilityLabel]=\"accessibilityLabel\"\n [accessibilityHint]=\"accessibilityHint\"\n [accessibilityRole]=\"accessibilityRole\"\n [accessibilityState]=\"accessibilityState\"\n [accessibilityValue]=\"accessibilityValue\"\n [accessibilityActions]=\"accessibilityActions\"\n [accessibilityLabelledBy]=\"accessibilityLabelledBy\"\n [importantForAccessibility]=\"importantForAccessibility\"\n [accessibilityLiveRegion]=\"accessibilityLiveRegion\"\n [screenReaderFocusable]=\"screenReaderFocusable\"\n [accessibilityViewIsModal]=\"accessibilityViewIsModal\"\n [accessibilityElementsHidden]=\"accessibilityElementsHidden\"\n [accessibilityIgnoresInvertColors]=\"accessibilityIgnoresInvertColors\"\n [accessibilityLanguage]=\"accessibilityLanguage\"\n [accessibilityRespondsToUserInteraction]=\"accessibilityRespondsToUserInteraction\"\n [accessibilityShowsLargeContentViewer]=\"accessibilityShowsLargeContentViewer\"\n [accessibilityLargeContentTitle]=\"accessibilityLargeContentTitle\"\n (accessibilityAction)=\"accessibilityAction.emit($event)\"\n (accessibilityTap)=\"accessibilityTap.emit($event)\"\n (magicTap)=\"magicTap.emit($event)\"\n (accessibilityEscape)=\"accessibilityEscape.emit($event)\"\n [role]=\"role\"\n [aria-label]=\"ariaLabel\"\n [aria-labelledby]=\"ariaLabelledBy\"\n [aria-live]=\"ariaLive\"\n [aria-hidden]=\"ariaHidden\"\n [aria-busy]=\"ariaBusy\"\n [aria-checked]=\"ariaChecked\"\n [aria-disabled]=\"ariaDisabled\"\n [aria-expanded]=\"ariaExpanded\"\n [aria-selected]=\"ariaSelected\"\n [aria-modal]=\"ariaModal\"\n [aria-valuemax]=\"ariaValueMax\"\n [aria-valuemin]=\"ariaValueMin\"\n [aria-valuenow]=\"ariaValueNow\"\n [aria-valuetext]=\"ariaValueText\"\n\n >\n <ng-template vListItem let-row let-separators=\"separators\">\n <view [style]=\"rowStyle\">\n @for (cell of rowCells(row, separators); track cell.key) {\n <view [style]=\"columnCellStyle\">\n <ng-container\n [vListOutlet]=\"itemDir?.templateRef\"\n [vListOutletContext]=\"cell.context\"\n ></ng-container>\n </view>\n }\n </view>\n </ng-template>\n @if (headerDir !== undefined) {\n <ng-template vListHeader>\n <ng-container [vListOutlet]=\"headerDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (footerDir !== undefined) {\n <ng-template vListFooter>\n <ng-container [vListOutlet]=\"footerDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (emptyDir !== undefined) {\n <ng-template vListEmpty>\n <ng-container [vListOutlet]=\"emptyDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (separatorDir !== undefined) {\n <ng-template\n vListSeparator\n let-highlighted=\"highlighted\"\n let-leadingItem=\"leadingItem\"\n let-trailingItem=\"trailingItem\"\n >\n <ng-container\n [vListOutlet]=\"separatorDir.templateRef\"\n [vListOutletContext]=\"\n rowSeparatorContext(highlighted, leadingItem, trailingItem)\n \"\n ></ng-container>\n </ng-template>\n }\n </VirtualizedList>\n } @else {\n <VirtualizedList\n [data]=\"data\"\n [getItem]=\"getFlatItem\"\n [getItemCount]=\"getFlatCount\"\n [keyExtractor]=\"keyExtractor\"\n [getItemLayout]=\"getItemLayout\"\n [horizontal]=\"horizontal\"\n [inverted]=\"inverted\"\n [extraData]=\"extraData\"\n (endReached)=\"endReached.emit($event)\"\n [onEndReachedThreshold]=\"onEndReachedThreshold\"\n (startReached)=\"startReached.emit($event)\"\n [onStartReachedThreshold]=\"onStartReachedThreshold\"\n (refresh)=\"refresh.emit()\"\n [refreshRequested]=\"refresh.observed\"\n [refreshing]=\"refreshing\"\n [progressViewOffset]=\"progressViewOffset\"\n (viewableItemsChanged)=\"viewableItemsChanged.emit($event)\"\n [viewabilityConfig]=\"viewabilityConfig\"\n [viewabilityConfigCallbackPairs]=\"viewabilityConfigCallbackPairs\"\n (scrollToIndexFailed)=\"scrollToIndexFailed.emit($event)\"\n [initialNumToRender]=\"initialNumToRender\"\n [initialScrollIndex]=\"initialScrollIndex\"\n [maxToRenderPerBatch]=\"maxToRenderPerBatch\"\n [updateCellsBatchingPeriod]=\"updateCellsBatchingPeriod\"\n [windowSize]=\"windowSize\"\n [stickyHeaderIndices]=\"stickyHeaderIndices\"\n [maintainVisibleContentPosition]=\"maintainVisibleContentPosition\"\n [onScroll]=\"onScroll\"\n [onScrollBeginDrag]=\"onScrollBeginDrag\"\n [onScrollEndDrag]=\"onScrollEndDrag\"\n [onMomentumScrollBegin]=\"onMomentumScrollBegin\"\n [onMomentumScrollEnd]=\"onMomentumScrollEnd\"\n [scrollEventThrottle]=\"scrollEventThrottle\"\n [keyboardShouldPersistTaps]=\"keyboardShouldPersistTaps\"\n [keyboardDismissMode]=\"keyboardDismissMode\"\n [removeClippedSubviews]=\"resolvedRemoveClippedSubviews\"\n [nestedScrollEnabled]=\"nestedScrollEnabled\"\n [testID]=\"testID\"\n [nativeID]=\"nativeID\"\n [style]=\"resolvedStyle\"\n [contentContainerStyle]=\"contentContainerStyle\"\n [itemTemplate]=\"itemDir?.templateRef\"\n [itemSeparatorTemplate]=\"separatorDir?.templateRef\"\n \n [accessible]=\"accessible\"\n [accessibilityLabel]=\"accessibilityLabel\"\n [accessibilityHint]=\"accessibilityHint\"\n [accessibilityRole]=\"accessibilityRole\"\n [accessibilityState]=\"accessibilityState\"\n [accessibilityValue]=\"accessibilityValue\"\n [accessibilityActions]=\"accessibilityActions\"\n [accessibilityLabelledBy]=\"accessibilityLabelledBy\"\n [importantForAccessibility]=\"importantForAccessibility\"\n [accessibilityLiveRegion]=\"accessibilityLiveRegion\"\n [screenReaderFocusable]=\"screenReaderFocusable\"\n [accessibilityViewIsModal]=\"accessibilityViewIsModal\"\n [accessibilityElementsHidden]=\"accessibilityElementsHidden\"\n [accessibilityIgnoresInvertColors]=\"accessibilityIgnoresInvertColors\"\n [accessibilityLanguage]=\"accessibilityLanguage\"\n [accessibilityRespondsToUserInteraction]=\"accessibilityRespondsToUserInteraction\"\n [accessibilityShowsLargeContentViewer]=\"accessibilityShowsLargeContentViewer\"\n [accessibilityLargeContentTitle]=\"accessibilityLargeContentTitle\"\n (accessibilityAction)=\"accessibilityAction.emit($event)\"\n (accessibilityTap)=\"accessibilityTap.emit($event)\"\n (magicTap)=\"magicTap.emit($event)\"\n (accessibilityEscape)=\"accessibilityEscape.emit($event)\"\n [role]=\"role\"\n [aria-label]=\"ariaLabel\"\n [aria-labelledby]=\"ariaLabelledBy\"\n [aria-live]=\"ariaLive\"\n [aria-hidden]=\"ariaHidden\"\n [aria-busy]=\"ariaBusy\"\n [aria-checked]=\"ariaChecked\"\n [aria-disabled]=\"ariaDisabled\"\n [aria-expanded]=\"ariaExpanded\"\n [aria-selected]=\"ariaSelected\"\n [aria-modal]=\"ariaModal\"\n [aria-valuemax]=\"ariaValueMax\"\n [aria-valuemin]=\"ariaValueMin\"\n [aria-valuenow]=\"ariaValueNow\"\n [aria-valuetext]=\"ariaValueText\"\n\n >\n @if (headerDir !== undefined) {\n <ng-template vListHeader>\n <ng-container [vListOutlet]=\"headerDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (footerDir !== undefined) {\n <ng-template vListFooter>\n <ng-container [vListOutlet]=\"footerDir.templateRef\"></ng-container>\n </ng-template>\n }\n @if (emptyDir !== undefined) {\n <ng-template vListEmpty>\n <ng-container [vListOutlet]=\"emptyDir.templateRef\"></ng-container>\n </ng-template>\n }\n </VirtualizedList>\n }\n";
@@ -0,0 +1,158 @@
1
+ // A content query does not resolve across a second `<ng-content>` hop, so both branches re-stamp
2
+ // the app's templates instead of projecting them (see `flat-list.test.ts`)
3
+ import { LIST_ACCESSIBILITY_FORWARD } from '../virtualized-list/list-a11y-forward';
4
+ export const FLAT_LIST_TEMPLATE = `
5
+ @if (isMultiColumn) {
6
+ <VirtualizedList
7
+ [data]="rows"
8
+ [getItem]="getRow"
9
+ [getItemCount]="getRowCount"
10
+ [keyExtractor]="rowKey"
11
+ [getItemLayout]="getItemLayout"
12
+ [horizontal]="horizontal"
13
+ [inverted]="inverted"
14
+ [extraData]="extraData"
15
+ (endReached)="endReached.emit($event)"
16
+ [onEndReachedThreshold]="onEndReachedThreshold"
17
+ (startReached)="startReached.emit($event)"
18
+ [onStartReachedThreshold]="onStartReachedThreshold"
19
+ (refresh)="refresh.emit()"
20
+ [refreshRequested]="refresh.observed"
21
+ [refreshing]="refreshing"
22
+ [progressViewOffset]="progressViewOffset"
23
+ (viewableItemsChanged)="rowViewableItemsChanged($event)"
24
+ [viewabilityConfig]="viewabilityConfig"
25
+ [viewabilityConfigCallbackPairs]="rowViewabilityPairs"
26
+ (scrollToIndexFailed)="scrollToIndexFailed.emit($event)"
27
+ [initialNumToRender]="initialNumToRender"
28
+ [initialScrollIndex]="initialScrollIndex"
29
+ [maxToRenderPerBatch]="maxToRenderPerBatch"
30
+ [updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
31
+ [windowSize]="windowSize"
32
+ [stickyHeaderIndices]="stickyHeaderIndices"
33
+ [maintainVisibleContentPosition]="maintainVisibleContentPosition"
34
+ [onScroll]="onScroll"
35
+ [onScrollBeginDrag]="onScrollBeginDrag"
36
+ [onScrollEndDrag]="onScrollEndDrag"
37
+ [onMomentumScrollBegin]="onMomentumScrollBegin"
38
+ [onMomentumScrollEnd]="onMomentumScrollEnd"
39
+ [scrollEventThrottle]="scrollEventThrottle"
40
+ [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
41
+ [keyboardDismissMode]="keyboardDismissMode"
42
+ [removeClippedSubviews]="resolvedRemoveClippedSubviews"
43
+ [nestedScrollEnabled]="nestedScrollEnabled"
44
+ [testID]="testID"
45
+ [nativeID]="nativeID"
46
+ [style]="resolvedStyle"
47
+ [contentContainerStyle]="contentContainerStyle"
48
+ ${LIST_ACCESSIBILITY_FORWARD}
49
+ >
50
+ <ng-template vListItem let-row let-separators="separators">
51
+ <view [style]="rowStyle">
52
+ @for (cell of rowCells(row, separators); track cell.key) {
53
+ <view [style]="columnCellStyle">
54
+ <ng-container
55
+ [vListOutlet]="itemDir?.templateRef"
56
+ [vListOutletContext]="cell.context"
57
+ ></ng-container>
58
+ </view>
59
+ }
60
+ </view>
61
+ </ng-template>
62
+ @if (headerDir !== undefined) {
63
+ <ng-template vListHeader>
64
+ <ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
65
+ </ng-template>
66
+ }
67
+ @if (footerDir !== undefined) {
68
+ <ng-template vListFooter>
69
+ <ng-container [vListOutlet]="footerDir.templateRef"></ng-container>
70
+ </ng-template>
71
+ }
72
+ @if (emptyDir !== undefined) {
73
+ <ng-template vListEmpty>
74
+ <ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
75
+ </ng-template>
76
+ }
77
+ @if (separatorDir !== undefined) {
78
+ <ng-template
79
+ vListSeparator
80
+ let-highlighted="highlighted"
81
+ let-leadingItem="leadingItem"
82
+ let-trailingItem="trailingItem"
83
+ >
84
+ <ng-container
85
+ [vListOutlet]="separatorDir.templateRef"
86
+ [vListOutletContext]="
87
+ rowSeparatorContext(highlighted, leadingItem, trailingItem)
88
+ "
89
+ ></ng-container>
90
+ </ng-template>
91
+ }
92
+ </VirtualizedList>
93
+ } @else {
94
+ <VirtualizedList
95
+ [data]="data"
96
+ [getItem]="getFlatItem"
97
+ [getItemCount]="getFlatCount"
98
+ [keyExtractor]="keyExtractor"
99
+ [getItemLayout]="getItemLayout"
100
+ [horizontal]="horizontal"
101
+ [inverted]="inverted"
102
+ [extraData]="extraData"
103
+ (endReached)="endReached.emit($event)"
104
+ [onEndReachedThreshold]="onEndReachedThreshold"
105
+ (startReached)="startReached.emit($event)"
106
+ [onStartReachedThreshold]="onStartReachedThreshold"
107
+ (refresh)="refresh.emit()"
108
+ [refreshRequested]="refresh.observed"
109
+ [refreshing]="refreshing"
110
+ [progressViewOffset]="progressViewOffset"
111
+ (viewableItemsChanged)="viewableItemsChanged.emit($event)"
112
+ [viewabilityConfig]="viewabilityConfig"
113
+ [viewabilityConfigCallbackPairs]="viewabilityConfigCallbackPairs"
114
+ (scrollToIndexFailed)="scrollToIndexFailed.emit($event)"
115
+ [initialNumToRender]="initialNumToRender"
116
+ [initialScrollIndex]="initialScrollIndex"
117
+ [maxToRenderPerBatch]="maxToRenderPerBatch"
118
+ [updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
119
+ [windowSize]="windowSize"
120
+ [stickyHeaderIndices]="stickyHeaderIndices"
121
+ [maintainVisibleContentPosition]="maintainVisibleContentPosition"
122
+ [onScroll]="onScroll"
123
+ [onScrollBeginDrag]="onScrollBeginDrag"
124
+ [onScrollEndDrag]="onScrollEndDrag"
125
+ [onMomentumScrollBegin]="onMomentumScrollBegin"
126
+ [onMomentumScrollEnd]="onMomentumScrollEnd"
127
+ [scrollEventThrottle]="scrollEventThrottle"
128
+ [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
129
+ [keyboardDismissMode]="keyboardDismissMode"
130
+ [removeClippedSubviews]="resolvedRemoveClippedSubviews"
131
+ [nestedScrollEnabled]="nestedScrollEnabled"
132
+ [testID]="testID"
133
+ [nativeID]="nativeID"
134
+ [style]="resolvedStyle"
135
+ [contentContainerStyle]="contentContainerStyle"
136
+ [itemTemplate]="itemDir?.templateRef"
137
+ [itemSeparatorTemplate]="separatorDir?.templateRef"
138
+ ${LIST_ACCESSIBILITY_FORWARD}
139
+ >
140
+ @if (headerDir !== undefined) {
141
+ <ng-template vListHeader>
142
+ <ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
143
+ </ng-template>
144
+ }
145
+ @if (footerDir !== undefined) {
146
+ <ng-template vListFooter>
147
+ <ng-container [vListOutlet]="footerDir.templateRef"></ng-container>
148
+ </ng-template>
149
+ }
150
+ @if (emptyDir !== undefined) {
151
+ <ng-template vListEmpty>
152
+ <ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
153
+ </ng-template>
154
+ }
155
+ </VirtualizedList>
156
+ }
157
+ `;
158
+ //# sourceMappingURL=flat-list-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flat-list-template.js","sourceRoot":"","sources":["../../../../src/components/flat-list/flat-list-template.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,2EAA2E;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4C1B,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA0F1B,0BAA0B;;;;;;;;;;;;;;;;;;;CAmBjC,CAAC"}
@@ -1,7 +1,8 @@
1
- import { EventEmitter, type DoCheck, type OnChanges, type SimpleChanges } from '@angular/core';
1
+ import { type DoCheck, type OnChanges, type SimpleChanges } from '@angular/core';
2
2
  import { type IRow, type IScrollViewHandle, type IViewabilityConfigCallbackPair, type IViewableItemsChangedInfo, type IVirtualizedListHandle } from '@symbiote-native/components';
3
3
  import { type IStyleProp, type ISymbioteNode, type IViewStyle } from '@symbiote-native/engine';
4
- import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, type IVirtualizedListProps, type IVListItemContext, type IVListSeparatorContext } from '../virtualized-list';
4
+ import { type IVirtualizedListProps, type IVListItemContext, type IVListSeparatorContext } from '../virtualized-list';
5
+ import { ListInputsBase } from '../virtualized-list/list-inputs';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../../primitives/shared";
7
8
  export type { ISeparators, IViewableItemsChangedInfo, IViewabilityConfigCallbackPair, IVirtualizedListHandle, } from '@symbiote-native/components';
@@ -13,68 +14,12 @@ export type IFlatListProps<ItemT> = Omit<IVirtualizedListProps<ItemT>, 'data' |
13
14
  numColumns?: number;
14
15
  columnWrapperStyle?: IStyleProp<IViewStyle> | string;
15
16
  };
16
- export type IFlatListInputs<ItemT> = Omit<IFlatListProps<ItemT>, 'onEndReached' | 'onStartReached' | 'onRefresh' | 'onViewableItemsChanged' | 'onScrollToIndexFailed'>;
17
- export declare class FlatList<ItemT = unknown> implements IFlatListInputs<ItemT>, IVirtualizedListHandle, DoCheck, OnChanges {
18
- readonly endReached: EventEmitter<{
19
- distanceFromEnd: number;
20
- }>;
21
- readonly startReached: EventEmitter<{
22
- distanceFromStart: number;
23
- }>;
24
- readonly refresh: EventEmitter<void>;
25
- readonly viewableItemsChanged: EventEmitter<IViewableItemsChangedInfo<ItemT>>;
26
- readonly scrollToIndexFailed: EventEmitter<{
27
- index: number;
28
- highestMeasuredFrameIndex: number;
29
- averageItemLength: number;
30
- }>;
17
+ export type IFlatListInputs<ItemT> = Omit<IFlatListProps<ItemT>, 'onEndReached' | 'onStartReached' | 'onRefresh' | 'onViewableItemsChanged' | 'onScrollToIndexFailed' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
18
+ export declare class FlatList<ItemT = unknown> extends ListInputsBase<ItemT> implements IFlatListInputs<ItemT>, IVirtualizedListHandle, DoCheck, OnChanges {
31
19
  data: readonly ItemT[];
32
- testID?: string;
33
20
  numColumns?: number;
34
21
  columnWrapperStyle?: IStyleProp<IViewStyle> | string;
35
- keyExtractor?: (item: ItemT, index: number) => string;
36
- getItemLayout?: (data: unknown, index: number) => {
37
- length: number;
38
- offset: number;
39
- index: number;
40
- };
41
- horizontal?: boolean;
42
- inverted?: boolean;
43
- extraData?: unknown;
44
- onEndReachedThreshold?: number;
45
- onStartReachedThreshold?: number;
46
- refreshing?: boolean | null;
47
- progressViewOffset?: number;
48
- viewabilityConfig?: IVirtualizedListProps<ItemT>['viewabilityConfig'];
49
- viewabilityConfigCallbackPairs?: IViewabilityConfigCallbackPair<ItemT>[];
50
- initialNumToRender?: number;
51
- initialScrollIndex?: number;
52
- maxToRenderPerBatch?: number;
53
- updateCellsBatchingPeriod?: number;
54
- windowSize?: number;
55
- stickyHeaderIndices?: number[];
56
- maintainVisibleContentPosition?: {
57
- minIndexForVisible: number;
58
- autoscrollToTopThreshold?: number;
59
- };
60
- onScroll?: IVirtualizedListProps<ItemT>['onScroll'];
61
- onScrollBeginDrag?: IVirtualizedListProps<ItemT>['onScrollBeginDrag'];
62
- onScrollEndDrag?: IVirtualizedListProps<ItemT>['onScrollEndDrag'];
63
- onMomentumScrollBegin?: IVirtualizedListProps<ItemT>['onMomentumScrollBegin'];
64
- onMomentumScrollEnd?: IVirtualizedListProps<ItemT>['onMomentumScrollEnd'];
65
- scrollEventThrottle?: number;
66
- keyboardShouldPersistTaps?: boolean | 'always' | 'never' | 'handled';
67
- keyboardDismissMode?: 'none' | 'on-drag' | 'interactive';
68
- removeClippedSubviews?: boolean;
69
- nestedScrollEnabled?: boolean;
70
- style?: IStyleProp<IViewStyle>;
71
- contentContainerStyle?: IStyleProp<IViewStyle>;
72
22
  get resolvedRemoveClippedSubviews(): boolean;
73
- itemDir?: VListItemDirective<ItemT>;
74
- headerDir?: VListHeaderDirective;
75
- footerDir?: VListFooterDirective;
76
- emptyDir?: VListEmptyDirective;
77
- separatorDir?: VListSeparatorDirective<ItemT>;
78
23
  private listRef?;
79
24
  private readonly elementRef;
80
25
  rows: IRow<ItemT>[];
@@ -123,5 +68,5 @@ export declare class FlatList<ItemT = unknown> implements IFlatListInputs<ItemT>
123
68
  getScrollNode(): ISymbioteNode | null;
124
69
  recordInteraction(): void;
125
70
  static ɵfac: i0.ɵɵFactoryDeclaration<FlatList<any>, never>;
126
- static ɵcmp: i0.ɵɵComponentDeclaration<FlatList<any>, "FlatList", never, { "data": { "alias": "data"; "required": true; }; "testID": { "alias": "testID"; "required": false; }; "numColumns": { "alias": "numColumns"; "required": false; }; "columnWrapperStyle": { "alias": "columnWrapperStyle"; "required": false; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "getItemLayout": { "alias": "getItemLayout"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "onEndReachedThreshold": { "alias": "onEndReachedThreshold"; "required": false; }; "onStartReachedThreshold": { "alias": "onStartReachedThreshold"; "required": false; }; "refreshing": { "alias": "refreshing"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "viewabilityConfig": { "alias": "viewabilityConfig"; "required": false; }; "viewabilityConfigCallbackPairs": { "alias": "viewabilityConfigCallbackPairs"; "required": false; }; "initialNumToRender": { "alias": "initialNumToRender"; "required": false; }; "initialScrollIndex": { "alias": "initialScrollIndex"; "required": false; }; "maxToRenderPerBatch": { "alias": "maxToRenderPerBatch"; "required": false; }; "updateCellsBatchingPeriod": { "alias": "updateCellsBatchingPeriod"; "required": false; }; "windowSize": { "alias": "windowSize"; "required": false; }; "stickyHeaderIndices": { "alias": "stickyHeaderIndices"; "required": false; }; "maintainVisibleContentPosition": { "alias": "maintainVisibleContentPosition"; "required": false; }; "onScroll": { "alias": "onScroll"; "required": false; }; "onScrollBeginDrag": { "alias": "onScrollBeginDrag"; "required": false; }; "onScrollEndDrag": { "alias": "onScrollEndDrag"; "required": false; }; "onMomentumScrollBegin": { "alias": "onMomentumScrollBegin"; "required": false; }; "onMomentumScrollEnd": { "alias": "onMomentumScrollEnd"; "required": false; }; "scrollEventThrottle": { "alias": "scrollEventThrottle"; "required": false; }; "keyboardShouldPersistTaps": { "alias": "keyboardShouldPersistTaps"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "removeClippedSubviews": { "alias": "removeClippedSubviews"; "required": false; }; "nestedScrollEnabled": { "alias": "nestedScrollEnabled"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "viewableItemsChanged": "viewableItemsChanged"; "scrollToIndexFailed": "scrollToIndexFailed"; }, ["itemDir", "headerDir", "footerDir", "emptyDir", "separatorDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
71
+ static ɵcmp: i0.ɵɵComponentDeclaration<FlatList<any>, "FlatList", never, { "data": { "alias": "data"; "required": true; }; "numColumns": { "alias": "numColumns"; "required": false; }; "columnWrapperStyle": { "alias": "columnWrapperStyle"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
127
72
  }