@symbiote-native/angular 3.2.0 → 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 (57) hide show
  1. package/babel-register-composed.cjs +1 -0
  2. package/build/angular/components/checkbox-props.d.ts +2 -0
  3. package/build/angular/components/checkbox-props.js +2 -0
  4. package/build/angular/components/checkbox-props.js.map +1 -0
  5. package/build/angular/components.d.ts +1 -0
  6. package/build/angular/components.js.map +1 -1
  7. package/build/angular/descriptor-to-angular/descriptor-host.d.ts +8 -0
  8. package/build/angular/descriptor-to-angular/descriptor-host.js +38 -0
  9. package/build/angular/descriptor-to-angular/descriptor-host.js.map +1 -0
  10. package/build/angular/descriptor-to-angular/index.d.ts +1 -0
  11. package/build/angular/descriptor-to-angular/index.js +4 -0
  12. package/build/angular/descriptor-to-angular/index.js.map +1 -1
  13. package/build/angular/element-base.d.ts +153 -0
  14. package/build/angular/element-base.js +272 -0
  15. package/build/angular/element-base.js.map +1 -0
  16. package/build/angular/elements-controls.d.ts +165 -0
  17. package/build/angular/elements-controls.js +382 -0
  18. package/build/angular/elements-controls.js.map +1 -0
  19. package/build/angular/elements-layout.d.ts +122 -0
  20. package/build/angular/elements-layout.js +242 -0
  21. package/build/angular/elements-layout.js.map +1 -0
  22. package/build/angular/elements-press.d.ts +96 -0
  23. package/build/angular/elements-press.js +227 -0
  24. package/build/angular/elements-press.js.map +1 -0
  25. package/build/angular/elements.d.ts +6 -516
  26. package/build/angular/elements.js +8 -1091
  27. package/build/angular/elements.js.map +1 -1
  28. package/build/angular/host-instance/index.d.ts +2 -0
  29. package/build/angular/host-instance/index.js +4 -4
  30. package/build/angular/host-instance/index.js.map +1 -1
  31. package/build/angular/index.d.ts +5 -4
  32. package/build/angular/index.js +4 -3
  33. package/build/angular/index.js.map +1 -1
  34. package/build/angular/native-view-base.d.ts +10 -2
  35. package/build/angular/native-view-base.js +23 -2
  36. package/build/angular/native-view-base.js.map +1 -1
  37. package/build/angular/services/index.d.ts +1 -0
  38. package/build/angular/services/index.js +1 -0
  39. package/build/angular/services/index.js.map +1 -1
  40. package/build/angular/services/inject-event.d.ts +6 -0
  41. package/build/angular/services/inject-event.js +24 -0
  42. package/build/angular/services/inject-event.js.map +1 -0
  43. package/package.json +6 -6
  44. package/src/components/checkbox-props.ts +12 -0
  45. package/src/components.ts +1 -0
  46. package/src/descriptor-to-angular/descriptor-host.ts +27 -0
  47. package/src/descriptor-to-angular/index.ts +5 -0
  48. package/src/element-base.ts +272 -0
  49. package/src/elements-controls.ts +282 -0
  50. package/src/elements-layout.ts +141 -0
  51. package/src/elements-press.ts +145 -0
  52. package/src/elements.ts +73 -788
  53. package/src/host-instance/index.ts +4 -4
  54. package/src/index.ts +6 -1
  55. package/src/native-view-base.ts +37 -2
  56. package/src/services/index.ts +1 -0
  57. package/src/services/inject-event.ts +52 -0
@@ -0,0 +1,227 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { SymbioteElement } from './element-base';
3
+ import * as i0 from "@angular/core";
4
+ // BOTH SPELLINGS ON THE SEVEN DASHLESS TAGS, and it is a correctness fix rather than a convenience.
5
+ //
6
+ // The renderer has always mapped `symbiote-view` onto `view` (`PRIMITIVE_SELECTOR_ALIAS`), because
7
+ // `CUSTOM_ELEMENTS_SCHEMA` admits an unknown element only when the name carries a hyphen — so the
8
+ // hyphenated form is the spelling an app WITHOUT these directives has to use. It is the same tag and
9
+ // commits the same node.
10
+ //
11
+ // It was not the same tag HERE. A selector of `view` alone meant an app that imports
12
+ // `SYMBIOTE_ELEMENTS` and writes `<symbiote-view>` matched nothing: no type check on its props, no
13
+ // declared inputs, none of `SymbioteElement`'s forwarding or callback wrapping — silently, with the
14
+ // tree still looking right. Measured, that shape also ran ~8.6 us per element FASTER, which is what
15
+ // made it look like an optimization instead of a hole (`angular-directive-cost.itest.ts`).
16
+ //
17
+ // Only the seven dashless tags need it: `hyphenatedIntrinsicAliases` skips any tag that already
18
+ // carries a dash, so `symbiote-scroll-view` resolves nowhere on either side and the two halves agree
19
+ // already.
20
+ export class ViewElement extends SymbioteElement {
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ViewElement, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: ViewElement, isStandalone: true, selector: "view, symbiote-view", usesInheritance: true, ngImport: i0 }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ViewElement, decorators: [{
25
+ type: Directive,
26
+ args: [{ selector: 'view, symbiote-view', standalone: true }]
27
+ }] });
28
+ export class PressableElement extends SymbioteElement {
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PressableElement, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
30
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: PressableElement, isStandalone: true, selector: "pressable, symbiote-pressable", inputs: { disabled: "disabled", cancelable: "cancelable", blockNativeResponder: "blockNativeResponder", delayLongPress: "delayLongPress", delayHoverIn: "delayHoverIn", delayHoverOut: "delayHoverOut", onHoverIn: "onHoverIn", onHoverOut: "onHoverOut", pressRetentionOffset: "pressRetentionOffset", unstable_pressDelay: "unstable_pressDelay", android_ripple: "android_ripple", testOnly_pressed: "testOnly_pressed", android_disableSound: "android_disableSound", hasTVPreferredFocus: "hasTVPreferredFocus", nextFocusDown: "nextFocusDown", nextFocusForward: "nextFocusForward", nextFocusLeft: "nextFocusLeft", nextFocusRight: "nextFocusRight", nextFocusUp: "nextFocusUp" }, usesInheritance: true, ngImport: i0 }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PressableElement, decorators: [{
33
+ type: Directive,
34
+ args: [{ selector: 'pressable, symbiote-pressable', standalone: true }]
35
+ }], propDecorators: { disabled: [{
36
+ type: Input
37
+ }], cancelable: [{
38
+ type: Input
39
+ }], blockNativeResponder: [{
40
+ type: Input
41
+ }], delayLongPress: [{
42
+ type: Input
43
+ }], delayHoverIn: [{
44
+ type: Input
45
+ }], delayHoverOut: [{
46
+ type: Input
47
+ }], onHoverIn: [{
48
+ type: Input
49
+ }], onHoverOut: [{
50
+ type: Input
51
+ }], pressRetentionOffset: [{
52
+ type: Input
53
+ }], unstable_pressDelay: [{
54
+ type: Input
55
+ }], android_ripple: [{
56
+ type: Input
57
+ }], testOnly_pressed: [{
58
+ type: Input
59
+ }], android_disableSound: [{
60
+ type: Input
61
+ }], hasTVPreferredFocus: [{
62
+ type: Input
63
+ }], nextFocusDown: [{
64
+ type: Input
65
+ }], nextFocusForward: [{
66
+ type: Input
67
+ }], nextFocusLeft: [{
68
+ type: Input
69
+ }], nextFocusRight: [{
70
+ type: Input
71
+ }], nextFocusUp: [{
72
+ type: Input
73
+ }] } });
74
+ // RN's TouchableOpacity is a Pressable that also fades, and both halves are on the engine node —
75
+ // so it takes the same inputs and adds only the fade's own knob.
76
+ export class TouchableOpacityElement extends PressableElement {
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TouchableOpacityElement, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
78
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: TouchableOpacityElement, isStandalone: true, selector: "touchable-opacity", inputs: { activeOpacity: "activeOpacity", delayPressIn: "delayPressIn", delayPressOut: "delayPressOut", minPressDuration: "minPressDuration" }, usesInheritance: true, ngImport: i0 }); }
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TouchableOpacityElement, decorators: [{
81
+ type: Directive,
82
+ args: [{ selector: 'touchable-opacity', standalone: true }]
83
+ }], propDecorators: { activeOpacity: [{
84
+ type: Input
85
+ }], delayPressIn: [{
86
+ type: Input
87
+ }], delayPressOut: [{
88
+ type: Input
89
+ }], minPressDuration: [{
90
+ type: Input
91
+ }] } });
92
+ // RN's TouchableHighlight is a Pressable that swaps its own background while pressed
93
+ // (TouchableHighlight.js), and the underlay machine runs on the engine node — so the tag takes the
94
+ // press surface plus the two knobs that describe the underlay. `onShowUnderlay`/`onHideUnderlay`
95
+ // need no @Input: they are events, bound as `(showUnderlay)` through the renderer's own listen.
96
+ export class TouchableHighlightElement extends PressableElement {
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TouchableHighlightElement, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
98
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: TouchableHighlightElement, isStandalone: true, selector: "touchable-highlight", inputs: { activeOpacity: "activeOpacity", underlayColor: "underlayColor", delayPressIn: "delayPressIn", delayPressOut: "delayPressOut", minPressDuration: "minPressDuration", touchSoundDisabled: "touchSoundDisabled" }, usesInheritance: true, ngImport: i0 }); }
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TouchableHighlightElement, decorators: [{
101
+ type: Directive,
102
+ args: [{ selector: 'touchable-highlight', standalone: true }]
103
+ }], propDecorators: { activeOpacity: [{
104
+ type: Input
105
+ }], underlayColor: [{
106
+ type: Input
107
+ }], delayPressIn: [{
108
+ type: Input
109
+ }], delayPressOut: [{
110
+ type: Input
111
+ }], minPressDuration: [{
112
+ type: Input
113
+ }], touchSoundDisabled: [{
114
+ type: Input
115
+ }] } });
116
+ // RN's TouchableNativeFeedback is a Pressable that CLONES onto its single child instead of
117
+ // rendering anything (TouchableNativeFeedback.js:339) — so the tag takes the press surface plus the
118
+ // two props that pick the Android ripple drawable. The tag itself commits no native view; the
119
+ // behavior configures the child, which is why `elements.test.ts` reads it as an anchor.
120
+ export class TouchableNativeFeedbackElement extends PressableElement {
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TouchableNativeFeedbackElement, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
122
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: TouchableNativeFeedbackElement, isStandalone: true, selector: "touchable-native-feedback", inputs: { background: "background", useForeground: "useForeground", touchSoundDisabled: "touchSoundDisabled" }, usesInheritance: true, ngImport: i0 }); }
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TouchableNativeFeedbackElement, decorators: [{
125
+ type: Directive,
126
+ args: [{ selector: 'touchable-native-feedback', standalone: true }]
127
+ }], propDecorators: { background: [{
128
+ type: Input
129
+ }], useForeground: [{
130
+ type: Input
131
+ }], touchSoundDisabled: [{
132
+ type: Input
133
+ }] } });
134
+ // RN's TouchableWithoutFeedback clones onto its single child the same way
135
+ // (TouchableWithoutFeedback.js:286) and installs no drawable, so it takes the press surface plus the
136
+ // three timing knobs it forwards to Pressability (:186-190) and nothing else. Like the tag above it
137
+ // commits no native view; `elements.test.ts` reads it as an anchor.
138
+ export class TouchableWithoutFeedbackElement extends PressableElement {
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TouchableWithoutFeedbackElement, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
140
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: TouchableWithoutFeedbackElement, isStandalone: true, selector: "touchable-without-feedback", inputs: { delayPressIn: "delayPressIn", delayPressOut: "delayPressOut", minPressDuration: "minPressDuration", touchSoundDisabled: "touchSoundDisabled" }, usesInheritance: true, ngImport: i0 }); }
141
+ }
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TouchableWithoutFeedbackElement, decorators: [{
143
+ type: Directive,
144
+ args: [{ selector: 'touchable-without-feedback', standalone: true }]
145
+ }], propDecorators: { delayPressIn: [{
146
+ type: Input
147
+ }], delayPressOut: [{
148
+ type: Input
149
+ }], minPressDuration: [{
150
+ type: Input
151
+ }], touchSoundDisabled: [{
152
+ type: Input
153
+ }] } });
154
+ // RN's Button IS a TouchableOpacity (Button.js:384), and the behavior builds the view and the
155
+ // label under it — so the tag takes the touchable's surface plus the four props Button owns. There
156
+ // is no `style`: RN's Button has no such prop, and the label/background come from `color`.
157
+ export class ButtonElement extends TouchableOpacityElement {
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ButtonElement, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
159
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: ButtonElement, isStandalone: true, selector: "button, symbiote-button", inputs: { title: "title", color: "color", touchSoundDisabled: "touchSoundDisabled" }, usesInheritance: true, ngImport: i0 }); }
160
+ }
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ButtonElement, decorators: [{
162
+ type: Directive,
163
+ args: [{ selector: 'button, symbiote-button', standalone: true }]
164
+ }], propDecorators: { title: [{
165
+ type: Input
166
+ }], color: [{
167
+ type: Input
168
+ }], touchSoundDisabled: [{
169
+ type: Input
170
+ }] } });
171
+ // expo-checkbox: View-like box plus the toggle on the engine node, поэтому только свои пять полей
172
+ // Нет `(valueChange)`: тоггл зовёт `onValueChange` как проп, он не engine-событие с read-back
173
+ export class CheckboxElement extends SymbioteElement {
174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CheckboxElement, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
175
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: CheckboxElement, isStandalone: true, selector: "checkbox, symbiote-checkbox", inputs: { value: "value", disabled: "disabled", color: "color", onValueChange: "onValueChange" }, usesInheritance: true, ngImport: i0 }); }
176
+ }
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CheckboxElement, decorators: [{
178
+ type: Directive,
179
+ args: [{ selector: 'checkbox, symbiote-checkbox', standalone: true }]
180
+ }], propDecorators: { value: [{
181
+ type: Input
182
+ }], disabled: [{
183
+ type: Input
184
+ }], color: [{
185
+ type: Input
186
+ }], onValueChange: [{
187
+ type: Input
188
+ }] } });
189
+ export class TextElement extends SymbioteElement {
190
+ constructor() {
191
+ super(...arguments);
192
+ // Narrows the inherited input to a TEXT style so `fontSize`/`fontWeight` type-check here. The
193
+ // initializer is what TS2612 asks for to accept a redeclaration as deliberate; `declare` would
194
+ // be the other answer and cannot carry a decorator.
195
+ this.style = undefined;
196
+ this.styleProp = undefined;
197
+ }
198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TextElement, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
199
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: TextElement, isStandalone: true, selector: "text, symbiote-text", inputs: { style: "style", styleProp: "styleProp", numberOfLines: "numberOfLines", ellipsizeMode: "ellipsizeMode", selectable: "selectable", adjustsFontSizeToFit: "adjustsFontSizeToFit", minimumFontScale: "minimumFontScale", allowFontScaling: "allowFontScaling", maxFontSizeMultiplier: "maxFontSizeMultiplier", selectionColor: "selectionColor", disabled: "disabled" }, usesInheritance: true, ngImport: i0 }); }
200
+ }
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TextElement, decorators: [{
202
+ type: Directive,
203
+ args: [{ selector: 'text, symbiote-text', standalone: true }]
204
+ }], propDecorators: { style: [{
205
+ type: Input
206
+ }], styleProp: [{
207
+ type: Input
208
+ }], numberOfLines: [{
209
+ type: Input
210
+ }], ellipsizeMode: [{
211
+ type: Input
212
+ }], selectable: [{
213
+ type: Input
214
+ }], adjustsFontSizeToFit: [{
215
+ type: Input
216
+ }], minimumFontScale: [{
217
+ type: Input
218
+ }], allowFontScaling: [{
219
+ type: Input
220
+ }], maxFontSizeMultiplier: [{
221
+ type: Input
222
+ }], selectionColor: [{
223
+ type: Input
224
+ }], disabled: [{
225
+ type: Input
226
+ }] } });
227
+ //# sourceMappingURL=elements-press.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements-press.js","sourceRoot":"","sources":["../../src/elements-press.ts"],"names":[],"mappings":"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"}