@symbiote-native/angular 0.6.1 → 0.7.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 (206) hide show
  1. package/README.md +1 -1
  2. package/bin/symbiote-angular-dev.cjs +20 -19
  3. package/build/angular/anchor-host-registry.js +2 -2
  4. package/build/angular/anchor-host-registry.js.map +1 -1
  5. package/build/angular/components/activity-indicator/index.android.d.ts +2 -1
  6. package/build/angular/components/activity-indicator/index.android.js +6 -3
  7. package/build/angular/components/activity-indicator/index.android.js.map +1 -1
  8. package/build/angular/components/activity-indicator/index.ios.d.ts +2 -1
  9. package/build/angular/components/activity-indicator/index.ios.js +6 -3
  10. package/build/angular/components/activity-indicator/index.ios.js.map +1 -1
  11. package/build/angular/components/activity-indicator/shared.js +3 -3
  12. package/build/angular/components/button.d.ts +4 -2
  13. package/build/angular/components/button.js +28 -17
  14. package/build/angular/components/button.js.map +1 -1
  15. package/build/angular/components/flat-list/index.d.ts +5 -3
  16. package/build/angular/components/flat-list/index.js +35 -38
  17. package/build/angular/components/flat-list/index.js.map +1 -1
  18. package/build/angular/components/image/index.android.d.ts +8 -3
  19. package/build/angular/components/image/index.android.js +39 -9
  20. package/build/angular/components/image/index.android.js.map +1 -1
  21. package/build/angular/components/image/index.ios.d.ts +8 -3
  22. package/build/angular/components/image/index.ios.js +39 -9
  23. package/build/angular/components/image/index.ios.js.map +1 -1
  24. package/build/angular/components/image/shared.d.ts +4 -1
  25. package/build/angular/components/image/shared.js +33 -2
  26. package/build/angular/components/image/shared.js.map +1 -1
  27. package/build/angular/components/image-background.d.ts +2 -1
  28. package/build/angular/components/image-background.js +6 -4
  29. package/build/angular/components/image-background.js.map +1 -1
  30. package/build/angular/components/input-accessory-view/index.d.ts +9 -4
  31. package/build/angular/components/input-accessory-view/index.js +43 -9
  32. package/build/angular/components/input-accessory-view/index.js.map +1 -1
  33. package/build/angular/components/keyboard-avoiding-view/index.d.ts +2 -1
  34. package/build/angular/components/keyboard-avoiding-view/index.js +6 -4
  35. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
  36. package/build/angular/components/modal/index.d.ts +11 -8
  37. package/build/angular/components/modal/index.js +45 -28
  38. package/build/angular/components/modal/index.js.map +1 -1
  39. package/build/angular/components/pressable/index.d.ts +11 -5
  40. package/build/angular/components/pressable/index.js +61 -12
  41. package/build/angular/components/pressable/index.js.map +1 -1
  42. package/build/angular/components/refresh-control/index.d.ts +8 -4
  43. package/build/angular/components/refresh-control/index.js +52 -16
  44. package/build/angular/components/refresh-control/index.js.map +1 -1
  45. package/build/angular/components/safe-area-view/index.d.ts +9 -4
  46. package/build/angular/components/safe-area-view/index.js +46 -9
  47. package/build/angular/components/safe-area-view/index.js.map +1 -1
  48. package/build/angular/components/scroll-view/index.android.d.ts +2 -3
  49. package/build/angular/components/scroll-view/index.android.js +49 -52
  50. package/build/angular/components/scroll-view/index.android.js.map +1 -1
  51. package/build/angular/components/scroll-view/index.ios.d.ts +2 -3
  52. package/build/angular/components/scroll-view/index.ios.js +15 -17
  53. package/build/angular/components/scroll-view/index.ios.js.map +1 -1
  54. package/build/angular/components/scroll-view/projection.d.ts +3 -0
  55. package/build/angular/components/scroll-view/projection.js +68 -7
  56. package/build/angular/components/scroll-view/projection.js.map +1 -1
  57. package/build/angular/components/scroll-view/shared.d.ts +14 -5
  58. package/build/angular/components/scroll-view/shared.js +198 -69
  59. package/build/angular/components/scroll-view/shared.js.map +1 -1
  60. package/build/angular/components/scroll-view/sticky-header.js +14 -19
  61. package/build/angular/components/scroll-view/sticky-header.js.map +1 -1
  62. package/build/angular/components/section-list/index.d.ts +2 -1
  63. package/build/angular/components/section-list/index.js +31 -39
  64. package/build/angular/components/section-list/index.js.map +1 -1
  65. package/build/angular/components/switch/index.android.d.ts +7 -3
  66. package/build/angular/components/switch/index.android.js +38 -10
  67. package/build/angular/components/switch/index.android.js.map +1 -1
  68. package/build/angular/components/switch/index.ios.d.ts +7 -3
  69. package/build/angular/components/switch/index.ios.js +38 -10
  70. package/build/angular/components/switch/index.ios.js.map +1 -1
  71. package/build/angular/components/switch/shared.d.ts +12 -3
  72. package/build/angular/components/switch/shared.js +66 -5
  73. package/build/angular/components/switch/shared.js.map +1 -1
  74. package/build/angular/components/text-input.d.ts +10 -2
  75. package/build/angular/components/text-input.js +46 -6
  76. package/build/angular/components/text-input.js.map +1 -1
  77. package/build/angular/components/touchable/index.d.ts +17 -8
  78. package/build/angular/components/touchable/index.js +78 -19
  79. package/build/angular/components/touchable/index.js.map +1 -1
  80. package/build/angular/components/touchable-native-feedback/index.d.ts +6 -3
  81. package/build/angular/components/touchable-native-feedback/index.js +61 -25
  82. package/build/angular/components/touchable-native-feedback/index.js.map +1 -1
  83. package/build/angular/components/virtualized-list/directives.js +18 -18
  84. package/build/angular/components/virtualized-list/index.d.ts +12 -4
  85. package/build/angular/components/virtualized-list/index.js +163 -68
  86. package/build/angular/components/virtualized-list/index.js.map +1 -1
  87. package/build/angular/components/virtualized-section-list/directives.js +12 -12
  88. package/build/angular/components/virtualized-section-list/index.d.ts +2 -1
  89. package/build/angular/components/virtualized-section-list/index.js +6 -4
  90. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  91. package/build/angular/components.d.ts +1 -1
  92. package/build/angular/components.js +5 -0
  93. package/build/angular/components.js.map +1 -1
  94. package/build/angular/create-portal/index.js +29 -35
  95. package/build/angular/create-portal/index.js.map +1 -1
  96. package/build/angular/create-tunnel/index.js +19 -22
  97. package/build/angular/create-tunnel/index.js.map +1 -1
  98. package/build/angular/descriptor-to-angular/index.js +3 -3
  99. package/build/angular/index.d.ts +4 -2
  100. package/build/angular/index.js +2 -2
  101. package/build/angular/index.js.map +1 -1
  102. package/build/angular/modules/animated/animated-leaf-binder.d.ts +1 -7
  103. package/build/angular/modules/animated/animated-leaf-binder.js +22 -72
  104. package/build/angular/modules/animated/animated-leaf-binder.js.map +1 -1
  105. package/build/angular/modules/animated/create-animated-component.d.ts +11 -6
  106. package/build/angular/modules/animated/create-animated-component.js +83 -50
  107. package/build/angular/modules/animated/create-animated-component.js.map +1 -1
  108. package/build/angular/modules/app-registry/index.js.map +1 -1
  109. package/build/angular/modules/status-bar/index.js +3 -3
  110. package/build/angular/primitives/index.d.ts +1 -1
  111. package/build/angular/primitives/index.js +46 -46
  112. package/build/angular/primitives/index.js.map +1 -1
  113. package/build/angular/primitives/shared.d.ts +39 -1
  114. package/build/angular/primitives/shared.js +110 -9
  115. package/build/angular/primitives/shared.js.map +1 -1
  116. package/build/angular/render/index.js +23 -35
  117. package/build/angular/render/index.js.map +1 -1
  118. package/build/angular/services/color-scheme.service.js +3 -3
  119. package/build/angular/services/window-dimensions.service.js +3 -3
  120. package/package.json +13 -8
  121. package/src/anchor-host-registry.ts +2 -2
  122. package/src/components/activity-indicator/index.android.ts +2 -0
  123. package/src/components/activity-indicator/index.ios.ts +2 -0
  124. package/src/components/button.ts +28 -14
  125. package/src/components/flat-list/index.ts +34 -36
  126. package/src/components/image/index.android.ts +50 -6
  127. package/src/components/image/index.ios.ts +50 -6
  128. package/src/components/image/shared.ts +34 -2
  129. package/src/components/image-background.ts +2 -1
  130. package/src/components/input-accessory-view/index.ts +42 -4
  131. package/src/components/keyboard-avoiding-view/index.ts +7 -1
  132. package/src/components/modal/index.ts +51 -26
  133. package/src/components/pressable/index.ts +67 -8
  134. package/src/components/refresh-control/index.ts +54 -12
  135. package/src/components/safe-area-view/index.ts +50 -5
  136. package/src/components/scroll-view/index.android.ts +34 -41
  137. package/src/components/scroll-view/index.ios.ts +10 -21
  138. package/src/components/scroll-view/projection.ts +79 -7
  139. package/src/components/scroll-view/shared.ts +223 -68
  140. package/src/components/scroll-view/sticky-header.ts +11 -16
  141. package/src/components/section-list/index.ts +27 -36
  142. package/src/components/switch/index.android.ts +48 -7
  143. package/src/components/switch/index.ios.ts +48 -7
  144. package/src/components/switch/shared.ts +79 -3
  145. package/src/components/text-input.ts +52 -2
  146. package/src/components/touchable/index.ts +76 -16
  147. package/src/components/touchable-native-feedback/index.ts +62 -21
  148. package/src/components/virtualized-list/index.ts +137 -44
  149. package/src/components/virtualized-section-list/index.ts +2 -1
  150. package/src/components.ts +5 -0
  151. package/src/create-portal/index.ts +23 -29
  152. package/src/create-tunnel/index.ts +13 -16
  153. package/src/index.ts +30 -1
  154. package/src/modules/animated/animated-leaf-binder.ts +28 -77
  155. package/src/modules/animated/create-animated-component.ts +75 -36
  156. package/src/modules/app-registry/index.ts +6 -8
  157. package/src/primitives/index.ts +1 -0
  158. package/src/primitives/shared.ts +102 -3
  159. package/src/render/index.ts +23 -35
  160. package/build/angular/modules/animated/animated-leaf-binder/index.d.ts +0 -14
  161. package/build/angular/modules/animated/animated-leaf-binder/index.js +0 -91
  162. package/build/angular/modules/animated/animated-leaf-binder/index.js.map +0 -1
  163. package/src/__tests__/responder-change-detection.test.ts +0 -102
  164. package/src/__tests__/responder-nested-cd.test.ts +0 -113
  165. package/src/angular-gaps.test.ts +0 -142
  166. package/src/angular-imports.test.ts +0 -100
  167. package/src/components/activity-indicator/activity-indicator-class-style.test.ts +0 -44
  168. package/src/components/activity-indicator/activity-indicator.test.ts +0 -131
  169. package/src/components/flat-list/column-wrapper-style-class.test.ts +0 -116
  170. package/src/components/flat-list/flat-list-array-style.test.ts +0 -131
  171. package/src/components/flat-list/flat-list-class-style.test.ts +0 -74
  172. package/src/components/flat-list/flat-list-scroll-containment.test.ts +0 -107
  173. package/src/components/flat-list/flat-list.test.ts +0 -99
  174. package/src/components/image/image-class-style.test.ts +0 -46
  175. package/src/components/image-background-class-style.test.ts +0 -48
  176. package/src/components/image-background-style-class.test.ts +0 -79
  177. package/src/components/input-accessory-view/input-accessory-view.test.ts +0 -43
  178. package/src/components/keyboard-avoiding-view/keyboard-avoiding-view.test.ts +0 -54
  179. package/src/components/modal/modal.test.ts +0 -43
  180. package/src/components/pressable/pressable.test.ts +0 -85
  181. package/src/components/refresh-control/refresh-control.test.ts +0 -41
  182. package/src/components/safe-area-view/safe-area-view.test.ts +0 -43
  183. package/src/components/scroll-view/android-scroll-view-axis-projection.test.ts +0 -123
  184. package/src/components/scroll-view/content-container-style-class.test.ts +0 -75
  185. package/src/components/scroll-view/scroll-view-class-style.test.ts +0 -134
  186. package/src/components/scroll-view/scroll-view-projection.test.ts +0 -194
  187. package/src/components/switch/android-switch-class.test.ts +0 -42
  188. package/src/components/switch/switch.test.ts +0 -92
  189. package/src/components/text-input-class-style.test.ts +0 -54
  190. package/src/components/touchable/touchable.test.ts +0 -102
  191. package/src/components/touchable-native-feedback/touchable-native-feedback.test.ts +0 -49
  192. package/src/components/virtualized-list/virtualized-list-class-style.test.ts +0 -76
  193. package/src/components/virtualized-section-list/virtualized-section-list-class-style.test.ts +0 -60
  194. package/src/create-portal/create-portal.test.ts +0 -90
  195. package/src/create-tunnel/create-tunnel.test.ts +0 -120
  196. package/src/descriptor-to-angular/descriptor-outlet.test.ts +0 -94
  197. package/src/host-instance/host-instance.test.ts +0 -49
  198. package/src/modules/animated/animated-leaf-binder/animated-leaf-binder.test.ts +0 -116
  199. package/src/modules/animated/animated-leaf-binder/index.ts +0 -101
  200. package/src/modules/animated/animated-leaf-binder.test.ts +0 -116
  201. package/src/modules/animated/animated-scroll-view.test.ts +0 -102
  202. package/src/modules/app-registry/app-registry.test.ts +0 -106
  203. package/src/modules/status-bar/status-bar.test.ts +0 -50
  204. package/src/render/render.test.ts +0 -147
  205. package/src/renderer/renderer.test.ts +0 -203
  206. package/src/services/services.test.ts +0 -163
@@ -4,6 +4,7 @@ import { type IStyleProp, type ISymbioteEvent, type ISymbioteNode, type IViewSty
4
4
  import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, type IVListSeparatorContext } from '../virtualized-list';
5
5
  import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, type IVirtualizedSectionListProps } from '../virtualized-section-list';
6
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "../../primitives/shared";
7
8
  export type { ISection } from '@symbiote-native/components';
8
9
  export type ISectionListHandle = IVirtualizedSectionListHandle;
9
10
  export { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from '../virtualized-section-list';
@@ -112,5 +113,5 @@ export declare class SectionList<ItemT = unknown> implements ISectionListInputs<
112
113
  getScrollNode(): ISymbioteNode | null;
113
114
  recordInteraction(): void;
114
115
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionList<any>, never>;
115
- static ɵcmp: i0.ɵɵComponentDeclaration<SectionList<any>, "SectionList", never, { "sections": { "alias": "sections"; "required": true; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "stickySectionHeadersEnabled": { "alias": "stickySectionHeadersEnabled"; "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; }; "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; }; "inverted": { "alias": "inverted"; "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; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "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": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLive": { "alias": "ariaLive"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "ariaBusy": { "alias": "ariaBusy"; "required": false; }; "ariaChecked": { "alias": "ariaChecked"; "required": false; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; }; "ariaModal": { "alias": "ariaModal"; "required": false; }; "ariaValueMax": { "alias": "ariaValueMax"; "required": false; }; "ariaValueMin": { "alias": "ariaValueMin"; "required": false; }; "ariaValueNow": { "alias": "ariaValueNow"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, ["sectionItemDir", "sectionHeaderDir", "sectionFooterDir", "sectionSeparatorDir", "listHeaderDir", "listFooterDir", "listEmptyDir", "itemSeparatorDir"], never, true, never>;
116
+ static ɵcmp: i0.ɵɵComponentDeclaration<SectionList<any>, "SectionList", never, { "sections": { "alias": "sections"; "required": true; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "stickySectionHeadersEnabled": { "alias": "stickySectionHeadersEnabled"; "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; }; "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; }; "inverted": { "alias": "inverted"; "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; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "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": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLive": { "alias": "ariaLive"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "ariaBusy": { "alias": "ariaBusy"; "required": false; }; "ariaChecked": { "alias": "ariaChecked"; "required": false; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; }; "ariaModal": { "alias": "ariaModal"; "required": false; }; "ariaValueMax": { "alias": "ariaValueMax"; "required": false; }; "ariaValueMin": { "alias": "ariaValueMin"; "required": false; }; "ariaValueNow": { "alias": "ariaValueNow"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, ["sectionItemDir", "sectionHeaderDir", "sectionFooterDir", "sectionSeparatorDir", "listHeaderDir", "listFooterDir", "listEmptyDir", "itemSeparatorDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
116
117
  }
@@ -1,40 +1,35 @@
1
1
  // SectionList, the Angular public list-of-sections component. A thin convenience surface over
2
2
  // VirtualizedSectionList, mirroring RN's layering (SectionList -> VirtualizedSectionList ->
3
3
  // VirtualizedList). All section-flattening / windowing / sticky-header / imperative-scroll logic
4
- // lives below; this layer re-exposes the same surface under the SectionList name and re-exposes the
5
- // handle (delegating to the inner VirtualizedSectionList). The Angular twin of
6
- // adapters/vue/src/components/section-list/index.ts.
4
+ // lives below; this layer re-exposes the same surface under the SectionList name and delegates
5
+ // the handle to the inner VirtualizedSectionList.
7
6
  //
8
- // As in the Vue twin, SectionList is a PURE FORWARDER: its public prop surface IS
9
- // VirtualizedSectionList's (RN layers them one-for-one), and the SectionList-flavour defaults
10
- // (stickySectionHeadersEnabled per Platform.OS, the section entry keyExtractor) already live INSIDE
11
- // VirtualizedSectionList it applies `stickySectionHeadersEnabled ?? (Platform.OS === 'ios')` in
12
- // its ngDoCheck and routes keyExtractor through the shared sectionEntryKey. So SectionList forwards
13
- // each prop unchanged (undefined included) and the default lands one layer down; double-applying
14
- // here would fight VSL. Vue spreads $attrs to do this in one line — Angular has no attrs-spread, so
15
- // every prop is forwarded as an explicit @Input binding, except the seven list-lifecycle events
7
+ // SectionList is a PURE FORWARDER: its public prop surface IS VirtualizedSectionList's (RN layers
8
+ // them one-for-one), and the SectionList-flavour defaults (stickySectionHeadersEnabled per
9
+ // Platform.OS, the section entry keyExtractor) already live INSIDE VirtualizedSectionList — double-
10
+ // applying them here would fight it. Angular has no attrs-spread (unlike Vue's $attrs), so every
11
+ // prop is forwarded as an explicit @Input binding, except the seven list-lifecycle events
16
12
  // (endReached/startReached/refresh/accessibilityAction/accessibilityTap/magicTap/
17
13
  // accessibilityEscape), which are real @Output() EventEmitters re-emitted via a listener binding.
18
14
  //
19
- // TEMPLATE FORWARDING — RE-STAMP, the same pattern FlatList's single-column branch was fixed to use
20
- // (see flat-list/index.ts). A bare `<ng-content></ng-content>` passthrough does NOT let
21
- // VirtualizedSectionList's own @ContentChild resolve directives across the SECOND projection hop
22
- // (SectionList's own `<ng-content>` re-projecting content that was actually authored on `<SectionList>`
23
- // by the app, one level further out) — Angular's content queries resolve against what was projected
24
- // directly onto the querying component's OWN tag, not transitively through a nested `<ng-content>`
25
- // relay. So SectionList captures the app's `<ng-template vSectionItem>` / vSectionHeader /
26
- // vSectionFooter / vSectionSeparator / vListHeader / vListFooter / vListEmpty / vListSeparator with
27
- // its OWN @ContentChild (a single, direct projection hop this always resolves) and re-authors
28
- // equivalent `<ng-template>`s on `<VirtualizedSectionList>`, each forwarding the captured
29
- // templateRef + context through VListOutletDirective, exactly mirroring how VirtualizedSectionList
30
- // itself re-stamps its own captured directives onto its inner VirtualizedList.
15
+ // TEMPLATE FORWARDING — RE-STAMP, the same pattern FlatList's single-column branch uses (see
16
+ // flat-list/index.ts). A bare `<ng-content></ng-content>` passthrough does NOT let
17
+ // VirtualizedSectionList's own @ContentChild resolve directives across a SECOND projection hop
18
+ // Angular's content queries resolve only against what was projected directly onto the querying
19
+ // component's OWN tag. So SectionList captures the app's `<ng-template vSectionItem>` /
20
+ // vSectionHeader / vSectionFooter / vSectionSeparator / vListHeader / vListFooter / vListEmpty /
21
+ // vListSeparator with its OWN @ContentChild (a single, direct hop always resolves) and
22
+ // re-authors equivalent `<ng-template>`s on `<VirtualizedSectionList>`, forwarding the captured
23
+ // templateRef + context through VListOutletDirectivemirroring how VirtualizedSectionList itself
24
+ // re-stamps its own captured directives onto its inner VirtualizedList.
31
25
  import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild, inject, } from '@angular/core';
32
26
  import {} from '@symbiote-native/engine';
33
27
  import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, } from '../virtualized-list';
34
28
  import { VListOutletDirective } from '../virtualized-list/directives';
35
- import { stableAnchorStyle } from '../../primitives';
29
+ import { stableAnchorStyle, SymbioteStyleInputDirective } from '../../primitives';
36
30
  import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, VirtualizedSectionList, } from '../virtualized-section-list';
37
31
  import * as i0 from "@angular/core";
32
+ import * as i1 from "../../primitives/shared";
38
33
  // Angular cannot preserve VListSeparatorDirective<ItemT>'s type parameter across this re-stamp
39
34
  // reuse (the directive is matched structurally in SectionList's own template with no explicit type
40
35
  // argument to pin ItemT to, so `let-leadingItem`/`let-trailingItem` arrive typed `unknown`) — even
@@ -81,18 +76,14 @@ export class SectionList {
81
76
  contentContainerStyle;
82
77
  testID;
83
78
  nativeID;
84
- // Bound to the template's `[style]="resolvedStyle"`, which Angular compiles to the built-in
85
- // ɵɵstyleMap instruction — it only understands a flat object, never an array (RN's own
86
- // `style={[a, b]}` composition idiom crashes deep inside Angular's styling engine), so this
87
- // flattens `style` via the engine's own flattenStyle before it ever reaches that binding.
88
- // anchorHostStyle merges in this component's OWN anchor's class-derived style (see its doc
89
- // comment) `elementRef` below is SectionList's OWN host, not `list`'s inner VirtualizedSectionList.
90
- // A plain `flattenStyle([...])` here would allocate a FRESH object on every getter read (every CD
91
- // check), which bound onto the nested VirtualizedSectionList/VirtualizedList's own `@Input()
92
- // style` — defeats VirtualizedList's `ngDoCheck` dedup gate and free-runs change detection
93
- // forever (the exact bug `stableAnchorStyle` exists to prevent, see its doc comment and the
94
- // `flat-list-array-style.test.ts` regression it fixes). `cachedResolvedStyle` is the getter's own
95
- // persisted "previous" value across reads, since a getter has no natural field to compare against.
79
+ // Bound to `[style]="resolvedStyle"`, which Angular compiles to ɵɵstyleMap — it only
80
+ // understands a flat object, never an array (RN's `style={[a, b]}` idiom crashes deep inside
81
+ // Angular's styling engine), so this flattens `style` first, merging in this component's OWN
82
+ // anchor's class-derived style via anchorHostStyle (`elementRef` here is SectionList's own
83
+ // host, not `list`'s inner VirtualizedSectionList). A plain `flattenStyle([...])` would
84
+ // allocate a fresh object on every CD check, defeating VirtualizedList's `ngDoCheck` dedup gate
85
+ // and free-running change detection forever the bug `stableAnchorStyle` exists to prevent
86
+ // (see its doc comment). `cachedResolvedStyle` is the getter's own persisted "previous" value.
96
87
  cachedResolvedStyle;
97
88
  get resolvedStyle() {
98
89
  this.cachedResolvedStyle = stableAnchorStyle(this.elementRef, this.style, this.cachedResolvedStyle);
@@ -186,8 +177,8 @@ export class SectionList {
186
177
  recordInteraction() {
187
178
  this.list?.recordInteraction();
188
179
  }
189
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SectionList, deps: [], target: i0.ɵɵFactoryTarget.Component });
190
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SectionList, isStandalone: true, selector: "SectionList", inputs: { sections: "sections", keyExtractor: "keyExtractor", stickySectionHeadersEnabled: "stickySectionHeadersEnabled", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", inverted: "inverted", maintainVisibleContentPosition: "maintainVisibleContentPosition", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", scrollEventThrottle: "scrollEventThrottle", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", keyboardDismissMode: "keyboardDismissMode", style: "style", contentContainerStyle: "contentContainerStyle", testID: "testID", nativeID: "nativeID", 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: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaLive: "ariaLive", ariaHidden: "ariaHidden", ariaBusy: "ariaBusy", ariaChecked: "ariaChecked", ariaDisabled: "ariaDisabled", ariaExpanded: "ariaExpanded", ariaSelected: "ariaSelected", ariaModal: "ariaModal", ariaValueMax: "ariaValueMax", ariaValueMin: "ariaValueMin", ariaValueNow: "ariaValueNow", ariaValueText: "ariaValueText" }, outputs: { endReached: "endReached", startReached: "startReached", refresh: "refresh", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, queries: [{ propertyName: "sectionItemDir", first: true, predicate: VSectionItemDirective, descendants: true }, { propertyName: "sectionHeaderDir", first: true, predicate: VSectionHeaderDirective, descendants: true }, { propertyName: "sectionFooterDir", first: true, predicate: VSectionFooterDirective, descendants: true }, { propertyName: "sectionSeparatorDir", first: true, predicate: VSectionSeparatorDirective, descendants: true }, { propertyName: "listHeaderDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "listFooterDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "listEmptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "itemSeparatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "list", first: true, predicate: VirtualizedSectionList, descendants: true }], ngImport: i0, template: `
180
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SectionList, deps: [], target: i0.ɵɵFactoryTarget.Component });
181
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SectionList, isStandalone: true, selector: "SectionList", inputs: { sections: "sections", keyExtractor: "keyExtractor", stickySectionHeadersEnabled: "stickySectionHeadersEnabled", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", inverted: "inverted", maintainVisibleContentPosition: "maintainVisibleContentPosition", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", scrollEventThrottle: "scrollEventThrottle", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", keyboardDismissMode: "keyboardDismissMode", style: "style", contentContainerStyle: "contentContainerStyle", testID: "testID", nativeID: "nativeID", 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: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaLive: "ariaLive", ariaHidden: "ariaHidden", ariaBusy: "ariaBusy", ariaChecked: "ariaChecked", ariaDisabled: "ariaDisabled", ariaExpanded: "ariaExpanded", ariaSelected: "ariaSelected", ariaModal: "ariaModal", ariaValueMax: "ariaValueMax", ariaValueMin: "ariaValueMin", ariaValueNow: "ariaValueNow", ariaValueText: "ariaValueText" }, outputs: { endReached: "endReached", startReached: "startReached", refresh: "refresh", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, queries: [{ propertyName: "sectionItemDir", first: true, predicate: VSectionItemDirective, descendants: true }, { propertyName: "sectionHeaderDir", first: true, predicate: VSectionHeaderDirective, descendants: true }, { propertyName: "sectionFooterDir", first: true, predicate: VSectionFooterDirective, descendants: true }, { propertyName: "sectionSeparatorDir", first: true, predicate: VSectionSeparatorDirective, descendants: true }, { propertyName: "listHeaderDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "listFooterDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "listEmptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "itemSeparatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "list", first: true, predicate: VirtualizedSectionList, descendants: true }], hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
191
182
  <VirtualizedSectionList
192
183
  [sections]="sections"
193
184
  [keyExtractor]="keyExtractor"
@@ -322,11 +313,12 @@ export class SectionList {
322
313
  </VirtualizedSectionList>
323
314
  `, isInline: true, dependencies: [{ kind: "component", type: VirtualizedSectionList, selector: "VirtualizedSectionList", inputs: ["sections", "keyExtractor", "stickySectionHeadersEnabled", "extraData", "onEndReachedThreshold", "onStartReachedThreshold", "refreshing", "progressViewOffset", "refreshRequested", "initialNumToRender", "initialScrollIndex", "maxToRenderPerBatch", "updateCellsBatchingPeriod", "windowSize", "inverted", "maintainVisibleContentPosition", "onScroll", "onScrollBeginDrag", "onScrollEndDrag", "onMomentumScrollBegin", "onMomentumScrollEnd", "scrollEventThrottle", "keyboardShouldPersistTaps", "keyboardDismissMode", "style", "contentContainerStyle", "testID", "nativeID", "accessible", "accessibilityLabel", "accessibilityHint", "accessibilityRole", "accessibilityState", "accessibilityValue", "accessibilityActions", "accessibilityLabelledBy", "importantForAccessibility", "accessibilityLiveRegion", "screenReaderFocusable", "accessibilityViewIsModal", "accessibilityElementsHidden", "accessibilityIgnoresInvertColors", "accessibilityLanguage", "accessibilityRespondsToUserInteraction", "accessibilityShowsLargeContentViewer", "accessibilityLargeContentTitle", "role", "ariaLabel", "ariaLabelledBy", "ariaLive", "ariaHidden", "ariaBusy", "ariaChecked", "ariaDisabled", "ariaExpanded", "ariaSelected", "ariaModal", "ariaValueMax", "ariaValueMin", "ariaValueNow", "ariaValueText"], outputs: ["endReached", "startReached", "refresh", "accessibilityAction", "accessibilityTap", "magicTap", "accessibilityEscape"] }, { kind: "directive", type: VSectionItemDirective, selector: "[vSectionItem]" }, { kind: "directive", type: VSectionHeaderDirective, selector: "[vSectionHeader]" }, { kind: "directive", type: VSectionFooterDirective, selector: "[vSectionFooter]" }, { kind: "directive", type: VSectionSeparatorDirective, selector: "[vSectionSeparator]" }, { kind: "directive", type: VListHeaderDirective, selector: "[vListHeader]" }, { kind: "directive", type: VListFooterDirective, selector: "[vListFooter]" }, { kind: "directive", type: VListEmptyDirective, selector: "[vListEmpty]" }, { kind: "directive", type: VListSeparatorDirective, selector: "[vListSeparator]" }, { kind: "directive", type: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
324
315
  }
325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SectionList, decorators: [{
316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SectionList, decorators: [{
326
317
  type: Component,
327
318
  args: [{
328
319
  selector: 'SectionList',
329
320
  standalone: true,
321
+ hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
330
322
  imports: [
331
323
  VirtualizedSectionList,
332
324
  VSectionItemDirective,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/section-list/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/section-list/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import { type DoCheck } from '@angular/core';
1
2
  import { SwitchBase } from './shared';
2
3
  import * as i0 from "@angular/core";
4
+ import * as i1 from "../../primitives/shared";
3
5
  export type { ISwitchProps, ISwitchTrackColor } from './shared';
4
- export declare class Switch extends SwitchBase {
6
+ export declare class Switch extends SwitchBase implements DoCheck {
5
7
  private readonly elementRef;
6
8
  protected readonly platform: {
7
9
  snapBackCommand: string;
@@ -14,7 +16,9 @@ export declare class Switch extends SwitchBase {
14
16
  trackTintColor: string | undefined;
15
17
  };
16
18
  };
17
- get hostProps(): Record<string, unknown>;
19
+ private readonly anchorStyle;
20
+ ngDoCheck(): void;
21
+ protected buildHostProps(): Record<string, unknown>;
18
22
  static ɵfac: i0.ɵɵFactoryDeclaration<Switch, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<Switch, "Switch", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "trackColor": { "alias": "trackColor"; "required": false; }; "thumbColor": { "alias": "thumbColor"; "required": false; }; "ios_backgroundColor": { "alias": "ios_backgroundColor"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "role": { "alias": "role"; "required": false; }; "aria-label": { "alias": "aria-label"; "required": false; }; "aria-disabled": { "alias": "aria-disabled"; "required": false; }; "aria-checked": { "alias": "aria-checked"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, never, never, true, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<Switch, "Switch", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "trackColor": { "alias": "trackColor"; "required": false; }; "thumbColor": { "alias": "thumbColor"; "required": false; }; "ios_backgroundColor": { "alias": "ios_backgroundColor"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "role": { "alias": "role"; "required": false; }; "aria-label": { "alias": "aria-label"; "required": false; }; "aria-disabled": { "alias": "aria-disabled"; "required": false; }; "aria-checked": { "alias": "aria-checked"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, never, never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
20
24
  }
@@ -1,7 +1,9 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, Component, ElementRef, inject } from '@angular/core';
2
- import { anchorHostStyle, SwitchHost, SymbioteHostPropsDirective } from '../../primitives';
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, ElementRef, forwardRef, inject, signal, } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { anchorHostStyle, SwitchHost, SymbioteHostPropsDirective, SymbioteStyleInputDirective, } from '../../primitives';
3
4
  import { SwitchBase } from './shared';
4
5
  import * as i0 from "@angular/core";
6
+ import * as i1 from "../../primitives/shared";
5
7
  export class Switch extends SwitchBase {
6
8
  // This component's OWN host — the non-painting anchor `class="..."` at the use site resolves
7
9
  // onto (see anchorHostStyle's doc comment) — NOT the <symbiote-switch> leaf one level down.
@@ -14,29 +16,55 @@ export class Switch extends SwitchBase {
14
16
  trackTintColor: value ? trackColor?.true : trackColor?.false,
15
17
  }),
16
18
  };
19
+ // The anchor's class-derived style is written by the renderer's addClass/removeClass and never
20
+ // reaches Angular's input pipeline (a bare `class="x"` never appears in SimpleChanges — see
21
+ // anchorHostStyle's doc comment), so SwitchBase's inputsRevision cannot see it. Hence its own
22
+ // signal: a plain field read inside a computed() would be untracked and the bag would go stale
23
+ // the moment a `[class.x]`/`[ngClass]` toggled.
24
+ //
25
+ // ngDoCheck is the right cadence: render3's callHooks flushes a node's pre-order hooks at the
26
+ // next `ɵɵadvance` past it (or in refreshView's post-template flush), i.e. AFTER the declaring
27
+ // template's ɵɵclassProp wrote the class onto this element and BEFORE this component's own view
28
+ // refreshes — the exact window a class poll needs. callHooks also runs under
29
+ // setActiveConsumer(null), so the write registers no dependency on the caller's view (no NG0600).
30
+ // commitClassStyle allocates a fresh style array only when a token actually moved, so signal.set's
31
+ // own Object.is check makes an unchanged poll a no-op that dirties nothing.
32
+ //
33
+ // Known gap, shared with every other component polling this way (Pressable, SafeAreaView,
34
+ // TouchableNativeFeedback): `[ngClass]` applies its tokens from NgClass's OWN ngDoCheck, and a
35
+ // node's hooks flush in registration order with the component's first, so an [ngClass] flip lands
36
+ // one pass after this poll reads it. `class=` and `[class.x]` are written by the declaring
37
+ // template's styling instructions and so are always current here.
38
+ anchorStyle = signal(undefined, /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "anchorStyle" }] : /* istanbul ignore next */ []));
40
+ ngDoCheck() {
41
+ this.anchorStyle.set(anchorHostStyle(this.elementRef));
42
+ }
17
43
  // The anchor's class-derived style goes first, then whatever SwitchBase already resolved
18
44
  // (its own explicit `style` @Input plus the ios_backgroundColor fold), so an explicit [style]
19
45
  // still beats the ambient class.
20
- get hostProps() {
21
- const props = super.hostProps;
22
- return { ...props, style: [anchorHostStyle(this.elementRef), props['style']] };
46
+ buildHostProps() {
47
+ const props = super.buildHostProps();
48
+ return { ...props, style: [this.anchorStyle(), props['style']] };
23
49
  }
24
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Switch, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: Switch, isStandalone: true, selector: "Switch", inputs: { value: "value", disabled: "disabled", trackColor: "trackColor", thumbColor: "thumbColor", ios_backgroundColor: "ios_backgroundColor", style: "style", nativeID: "nativeID", testID: "testID", accessibilityLabel: "accessibilityLabel", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityHint: "accessibilityHint", accessible: "accessible", role: "role", "aria-label": "aria-label", "aria-disabled": "aria-disabled", "aria-checked": "aria-checked" }, outputs: { valueChange: "valueChange", change: "change" }, usesInheritance: true, ngImport: i0, template: `
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Switch, deps: null, target: i0.ɵɵFactoryTarget.Component });
51
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: Switch, isStandalone: true, selector: "Switch", inputs: { value: "value", disabled: "disabled", trackColor: "trackColor", thumbColor: "thumbColor", ios_backgroundColor: "ios_backgroundColor", style: "style", nativeID: "nativeID", testID: "testID", accessibilityLabel: "accessibilityLabel", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityHint: "accessibilityHint", accessible: "accessible", role: "role", "aria-label": "aria-label", "aria-disabled": "aria-disabled", "aria-checked": "aria-checked" }, outputs: { valueChange: "valueChange", change: "change" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Switch), multi: true }], usesInheritance: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
26
52
  <symbiote-switch
27
53
  #nativeSwitch="symbioteHost"
28
- [symbioteHostProps]="hostProps"
54
+ [symbioteHostProps]="hostProps()"
29
55
  (change)="handleChange($event, nativeSwitch)"
30
56
  />
31
57
  `, isInline: true, dependencies: [{ kind: "component", type: SwitchHost, selector: "symbiote-switch" }, { kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }] });
32
58
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Switch, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Switch, decorators: [{
34
60
  type: Component,
35
61
  args: [{
36
62
  selector: 'Switch',
37
63
  standalone: true,
64
+ hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
38
65
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
39
66
  imports: [SwitchHost, SymbioteHostPropsDirective],
67
+ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Switch), multi: true }],
40
68
  inputs: [
41
69
  'value',
42
70
  'disabled',
@@ -61,7 +89,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
61
89
  template: `
62
90
  <symbiote-switch
63
91
  #nativeSwitch="symbioteHost"
64
- [symbioteHostProps]="hostProps"
92
+ [symbioteHostProps]="hostProps()"
65
93
  (change)="handleChange($event, nativeSwitch)"
66
94
  />
67
95
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../src/components/switch/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;;AAqCtC,MAAM,OAAO,MAAO,SAAQ,UAAU;IACpC,6FAA6F;IAC7F,4FAA4F;IAC3E,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAE9B,QAAQ,GAAG;QAC5B,eAAe,EAAE,gBAAgB;QACjC,eAAe,EAAE,CAAC,KAAc,EAAE,UAA8C,EAAE,EAAE,CAAC,CAAC;YACpF,kBAAkB,EAAE,UAAU,EAAE,KAAK;YACrC,iBAAiB,EAAE,UAAU,EAAE,IAAI;YACnC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK;SAC7D,CAAC;KACH,CAAC;IAEF,yFAAyF;IACzF,8FAA8F;IAC9F,iCAAiC;IACjC,IAAa,SAAS;QACpB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;QAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IACjF,CAAC;uGApBU,MAAM;2FAAN,MAAM,krBARP;;;;;;GAMT,4DA5BS,UAAU,4DAAE,0BAA0B;;2FA8BrC,MAAM;kBAlClB,SAAS;mBAAC;oBACT,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,UAAU,EAAE,0BAA0B,CAAC;oBACjD,MAAM,EAAE;wBACN,OAAO;wBACP,UAAU;wBACV,YAAY;wBACZ,YAAY;wBACZ,qBAAqB;wBACrB,OAAO;wBACP,UAAU;wBACV,QAAQ;wBACR,oBAAoB;wBACpB,mBAAmB;wBACnB,oBAAoB;wBACpB,oBAAoB;wBACpB,mBAAmB;wBACnB,YAAY;wBACZ,MAAM;wBACN,YAAY;wBACZ,eAAe;wBACf,cAAc;qBACf;oBACD,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;oBAClC,QAAQ,EAAE;;;;;;GAMT;iBACF"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../src/components/switch/index.android.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import { type DoCheck } from '@angular/core';
1
2
  import { SwitchBase } from './shared';
2
3
  import * as i0 from "@angular/core";
4
+ import * as i1 from "../../primitives/shared";
3
5
  export type { ISwitchProps, ISwitchTrackColor } from './shared';
4
- export declare class Switch extends SwitchBase {
6
+ export declare class Switch extends SwitchBase implements DoCheck {
5
7
  private readonly elementRef;
6
8
  protected readonly platform: {
7
9
  snapBackCommand: string;
@@ -13,7 +15,9 @@ export declare class Switch extends SwitchBase {
13
15
  tintColor: string | undefined;
14
16
  };
15
17
  };
16
- get hostProps(): Record<string, unknown>;
18
+ private readonly anchorStyle;
19
+ ngDoCheck(): void;
20
+ protected buildHostProps(): Record<string, unknown>;
17
21
  static ɵfac: i0.ɵɵFactoryDeclaration<Switch, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<Switch, "Switch", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "trackColor": { "alias": "trackColor"; "required": false; }; "thumbColor": { "alias": "thumbColor"; "required": false; }; "ios_backgroundColor": { "alias": "ios_backgroundColor"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "role": { "alias": "role"; "required": false; }; "aria-label": { "alias": "aria-label"; "required": false; }; "aria-disabled": { "alias": "aria-disabled"; "required": false; }; "aria-checked": { "alias": "aria-checked"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, never, never, true, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<Switch, "Switch", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "trackColor": { "alias": "trackColor"; "required": false; }; "thumbColor": { "alias": "thumbColor"; "required": false; }; "ios_backgroundColor": { "alias": "ios_backgroundColor"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "role": { "alias": "role"; "required": false; }; "aria-label": { "alias": "aria-label"; "required": false; }; "aria-disabled": { "alias": "aria-disabled"; "required": false; }; "aria-checked": { "alias": "aria-checked"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, never, never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
19
23
  }
@@ -1,7 +1,9 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, Component, ElementRef, inject } from '@angular/core';
2
- import { anchorHostStyle, SwitchHost, SymbioteHostPropsDirective } from '../../primitives';
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, ElementRef, forwardRef, inject, signal, } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { anchorHostStyle, SwitchHost, SymbioteHostPropsDirective, SymbioteStyleInputDirective, } from '../../primitives';
3
4
  import { SwitchBase } from './shared';
4
5
  import * as i0 from "@angular/core";
6
+ import * as i1 from "../../primitives/shared";
5
7
  export class Switch extends SwitchBase {
6
8
  // This component's OWN host — the non-painting anchor `class="..."` at the use site resolves
7
9
  // onto (see anchorHostStyle's doc comment) — NOT the <symbiote-switch> leaf one level down.
@@ -13,29 +15,55 @@ export class Switch extends SwitchBase {
13
15
  tintColor: trackColor?.false,
14
16
  }),
15
17
  };
18
+ // The anchor's class-derived style is written by the renderer's addClass/removeClass and never
19
+ // reaches Angular's input pipeline (a bare `class="x"` never appears in SimpleChanges — see
20
+ // anchorHostStyle's doc comment), so SwitchBase's inputsRevision cannot see it. Hence its own
21
+ // signal: a plain field read inside a computed() would be untracked and the bag would go stale
22
+ // the moment a `[class.x]`/`[ngClass]` toggled.
23
+ //
24
+ // ngDoCheck is the right cadence: render3's callHooks flushes a node's pre-order hooks at the
25
+ // next `ɵɵadvance` past it (or in refreshView's post-template flush), i.e. AFTER the declaring
26
+ // template's ɵɵclassProp wrote the class onto this element and BEFORE this component's own view
27
+ // refreshes — the exact window a class poll needs. callHooks also runs under
28
+ // setActiveConsumer(null), so the write registers no dependency on the caller's view (no NG0600).
29
+ // commitClassStyle allocates a fresh style array only when a token actually moved, so signal.set's
30
+ // own Object.is check makes an unchanged poll a no-op that dirties nothing.
31
+ //
32
+ // Known gap, shared with every other component polling this way (Pressable, SafeAreaView,
33
+ // TouchableNativeFeedback): `[ngClass]` applies its tokens from NgClass's OWN ngDoCheck, and a
34
+ // node's hooks flush in registration order with the component's first, so an [ngClass] flip lands
35
+ // one pass after this poll reads it. `class=` and `[class.x]` are written by the declaring
36
+ // template's styling instructions and so are always current here.
37
+ anchorStyle = signal(undefined, /* @ts-ignore */
38
+ ...(ngDevMode ? [{ debugName: "anchorStyle" }] : /* istanbul ignore next */ []));
39
+ ngDoCheck() {
40
+ this.anchorStyle.set(anchorHostStyle(this.elementRef));
41
+ }
16
42
  // The anchor's class-derived style goes first, then whatever SwitchBase already resolved
17
43
  // (its own explicit `style` @Input plus the ios_backgroundColor fold), so an explicit [style]
18
44
  // still beats the ambient class.
19
- get hostProps() {
20
- const props = super.hostProps;
21
- return { ...props, style: [anchorHostStyle(this.elementRef), props['style']] };
45
+ buildHostProps() {
46
+ const props = super.buildHostProps();
47
+ return { ...props, style: [this.anchorStyle(), props['style']] };
22
48
  }
23
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Switch, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: Switch, isStandalone: true, selector: "Switch", inputs: { value: "value", disabled: "disabled", trackColor: "trackColor", thumbColor: "thumbColor", ios_backgroundColor: "ios_backgroundColor", style: "style", nativeID: "nativeID", testID: "testID", accessibilityLabel: "accessibilityLabel", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityHint: "accessibilityHint", accessible: "accessible", role: "role", "aria-label": "aria-label", "aria-disabled": "aria-disabled", "aria-checked": "aria-checked" }, outputs: { valueChange: "valueChange", change: "change" }, usesInheritance: true, ngImport: i0, template: `
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Switch, deps: null, target: i0.ɵɵFactoryTarget.Component });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: Switch, isStandalone: true, selector: "Switch", inputs: { value: "value", disabled: "disabled", trackColor: "trackColor", thumbColor: "thumbColor", ios_backgroundColor: "ios_backgroundColor", style: "style", nativeID: "nativeID", testID: "testID", accessibilityLabel: "accessibilityLabel", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityHint: "accessibilityHint", accessible: "accessible", role: "role", "aria-label": "aria-label", "aria-disabled": "aria-disabled", "aria-checked": "aria-checked" }, outputs: { valueChange: "valueChange", change: "change" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Switch), multi: true }], usesInheritance: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
25
51
  <symbiote-switch
26
52
  #nativeSwitch="symbioteHost"
27
- [symbioteHostProps]="hostProps"
53
+ [symbioteHostProps]="hostProps()"
28
54
  (change)="handleChange($event, nativeSwitch)"
29
55
  />
30
56
  `, isInline: true, dependencies: [{ kind: "component", type: SwitchHost, selector: "symbiote-switch" }, { kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }] });
31
57
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Switch, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Switch, decorators: [{
33
59
  type: Component,
34
60
  args: [{
35
61
  selector: 'Switch',
36
62
  standalone: true,
63
+ hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
37
64
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
38
65
  imports: [SwitchHost, SymbioteHostPropsDirective],
66
+ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Switch), multi: true }],
39
67
  inputs: [
40
68
  'value',
41
69
  'disabled',
@@ -60,7 +88,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
60
88
  template: `
61
89
  <symbiote-switch
62
90
  #nativeSwitch="symbioteHost"
63
- [symbioteHostProps]="hostProps"
91
+ [symbioteHostProps]="hostProps()"
64
92
  (change)="handleChange($event, nativeSwitch)"
65
93
  />
66
94
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../src/components/switch/index.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;;AAqCtC,MAAM,OAAO,MAAO,SAAQ,UAAU;IACpC,6FAA6F;IAC7F,4FAA4F;IAC3E,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAE9B,QAAQ,GAAG;QAC5B,eAAe,EAAE,UAAU;QAC3B,eAAe,EAAE,CAAC,MAAe,EAAE,UAA8C,EAAE,EAAE,CAAC,CAAC;YACrF,WAAW,EAAE,UAAU,EAAE,IAAI;YAC7B,SAAS,EAAE,UAAU,EAAE,KAAK;SAC7B,CAAC;KACH,CAAC;IAEF,yFAAyF;IACzF,8FAA8F;IAC9F,iCAAiC;IACjC,IAAa,SAAS;QACpB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;QAC9B,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IACjF,CAAC;uGAnBU,MAAM;2FAAN,MAAM,krBARP;;;;;;GAMT,4DA5BS,UAAU,4DAAE,0BAA0B;;2FA8BrC,MAAM;kBAlClB,SAAS;mBAAC;oBACT,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,UAAU,EAAE,0BAA0B,CAAC;oBACjD,MAAM,EAAE;wBACN,OAAO;wBACP,UAAU;wBACV,YAAY;wBACZ,YAAY;wBACZ,qBAAqB;wBACrB,OAAO;wBACP,UAAU;wBACV,QAAQ;wBACR,oBAAoB;wBACpB,mBAAmB;wBACnB,oBAAoB;wBACpB,oBAAoB;wBACpB,mBAAmB;wBACnB,YAAY;wBACZ,MAAM;wBACN,YAAY;wBACZ,eAAe;wBACf,cAAc;qBACf;oBACD,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;oBAClC,QAAQ,EAAE;;;;;;GAMT;iBACF"}
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../src/components/switch/index.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,UAAU,EACV,MAAM,EACN,MAAM,GAEP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,UAAU,EACV,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;;;AAuCtC,MAAM,OAAO,MAAO,SAAQ,UAAU;IACpC,6FAA6F;IAC7F,4FAA4F;IAC3E,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAE9B,QAAQ,GAAG;QAC5B,eAAe,EAAE,UAAU;QAC3B,eAAe,EAAE,CAAC,MAAe,EAAE,UAA8C,EAAE,EAAE,CAAC,CAAC;YACrF,WAAW,EAAE,UAAU,EAAE,IAAI;YAC7B,SAAS,EAAE,UAAU,EAAE,KAAK;SAC7B,CAAC;KACH,CAAC;IAEF,+FAA+F;IAC/F,4FAA4F;IAC5F,8FAA8F;IAC9F,+FAA+F;IAC/F,gDAAgD;IAChD,EAAE;IACF,8FAA8F;IAC9F,+FAA+F;IAC/F,gGAAgG;IAChG,6EAA6E;IAC7E,kGAAkG;IAClG,mGAAmG;IACnG,4EAA4E;IAC5E,EAAE;IACF,0FAA0F;IAC1F,+FAA+F;IAC/F,kGAAkG;IAClG,2FAA2F;IAC3F,kEAAkE;IACjD,WAAW,GAAG,MAAM,CAAU,SAAS;oFAAC,CAAC;IAE1D,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,yFAAyF;IACzF,8FAA8F;IAC9F,iCAAiC;IACd,cAAc;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACrC,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;uGA5CU,MAAM;2FAAN,MAAM,8oBA9BN,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,8IAsBrF;;;;;;GAMT,4DA7BS,UAAU,4DAAE,0BAA0B;;2FA+BrC,MAAM;kBApClB,SAAS;mBAAC;oBACT,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/E,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,UAAU,EAAE,0BAA0B,CAAC;oBACjD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oBAC/F,MAAM,EAAE;wBACN,OAAO;wBACP,UAAU;wBACV,YAAY;wBACZ,YAAY;wBACZ,qBAAqB;wBACrB,OAAO;wBACP,UAAU;wBACV,QAAQ;wBACR,oBAAoB;wBACpB,mBAAmB;wBACnB,oBAAoB;wBACpB,oBAAoB;wBACpB,mBAAmB;wBACnB,YAAY;wBACZ,MAAM;wBACN,YAAY;wBACZ,eAAe;wBACf,cAAc;qBACf;oBACD,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;oBAClC,QAAQ,EAAE;;;;;;GAMT;iBACF"}
@@ -1,4 +1,5 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter, type OnChanges } from '@angular/core';
2
+ import type { ControlValueAccessor } from '@angular/forms';
2
3
  import type { ISwitchPlatform, ISwitchProps, ISwitchTrackColor } from '@symbiote-native/components';
3
4
  import { type ISymbioteEvent, type IStyleProp, type IViewStyle } from '@symbiote-native/engine';
4
5
  import * as i0 from "@angular/core";
@@ -8,7 +9,7 @@ type ISwitchHostPlatform = ISwitchPlatform & {
8
9
  snapBackCommand: string;
9
10
  };
10
11
  type IHostProps = Record<string, unknown>;
11
- export declare abstract class SwitchBase implements ISwitchInputs {
12
+ export declare abstract class SwitchBase implements ISwitchInputs, ControlValueAccessor, OnChanges {
12
13
  readonly valueChange: EventEmitter<boolean>;
13
14
  readonly change: EventEmitter<ISymbioteEvent>;
14
15
  value: boolean | undefined;
@@ -31,9 +32,17 @@ export declare abstract class SwitchBase implements ISwitchInputs {
31
32
  'aria-checked': boolean | 'mixed' | undefined;
32
33
  protected abstract readonly platform: ISwitchHostPlatform;
33
34
  private switchState;
34
- get hostProps(): IHostProps;
35
+ private readonly changeDetector;
36
+ private readonly inputsRevision;
37
+ ngOnChanges(): void;
38
+ readonly hostProps: import("@angular/core").Signal<IHostProps>;
39
+ protected buildHostProps(): IHostProps;
35
40
  handleChange(event: unknown, node: unknown): void;
36
41
  private snapBackIfNeeded;
42
+ writeValue(value: boolean | null): void;
43
+ registerOnChange(fn: (value: boolean) => void): void;
44
+ registerOnTouched(fn: () => void): void;
45
+ setDisabledState(isDisabled: boolean): void;
37
46
  private inputProps;
38
47
  static ɵfac: i0.ɵɵFactoryDeclaration<SwitchBase, never>;
39
48
  static ɵdir: i0.ɵɵDirectiveDeclaration<SwitchBase, never, never, {}, { "valueChange": "valueChange"; "change": "change"; }, never, never, true, never>;