@nativescript/core 8.5.0-alpha.2 → 8.5.0-alpha.4

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 (84) hide show
  1. package/file-system/file-system-access.android.d.ts +13 -0
  2. package/file-system/file-system-access.android.js +141 -0
  3. package/file-system/file-system-access.android.js.map +1 -1
  4. package/file-system/file-system-access.d.ts +12 -0
  5. package/file-system/file-system-access.ios.d.ts +7 -0
  6. package/file-system/file-system-access.ios.js +56 -0
  7. package/file-system/file-system-access.ios.js.map +1 -1
  8. package/package.json +1 -1
  9. package/platforms/android/widgets-release.aar +0 -0
  10. package/ui/core/view/index.android.js +1 -22
  11. package/ui/core/view/index.android.js.map +1 -1
  12. package/ui/core/view/index.ios.js +28 -12
  13. package/ui/core/view/index.ios.js.map +1 -1
  14. package/ui/core/view/view-common.d.ts +4 -0
  15. package/ui/core/view/view-common.js +26 -12
  16. package/ui/core/view/view-common.js.map +1 -1
  17. package/ui/core/view/view-helper/index.ios.d.ts +10 -0
  18. package/ui/core/view/view-helper/index.ios.js +99 -40
  19. package/ui/core/view/view-helper/index.ios.js.map +1 -1
  20. package/ui/frame/fragment.transitions.d.ts +0 -4
  21. package/ui/frame/frame-common.d.ts +2 -2
  22. package/ui/frame/frame-common.js.map +1 -1
  23. package/ui/frame/index.android.js +2 -4
  24. package/ui/frame/index.android.js.map +1 -1
  25. package/ui/frame/index.ios.js +58 -9
  26. package/ui/frame/index.ios.js.map +1 -1
  27. package/ui/index.d.ts +3 -0
  28. package/ui/index.js +2 -0
  29. package/ui/index.js.map +1 -1
  30. package/ui/page/index.ios.d.ts +4 -1
  31. package/ui/page/index.ios.js +81 -56
  32. package/ui/page/index.ios.js.map +1 -1
  33. package/ui/styling/background.ios.js +3 -0
  34. package/ui/styling/background.ios.js.map +1 -1
  35. package/ui/transition/fade-transition.d.ts +1 -3
  36. package/ui/transition/fade-transition.ios.d.ts +14 -1
  37. package/ui/transition/fade-transition.ios.js +60 -26
  38. package/ui/transition/fade-transition.ios.js.map +1 -1
  39. package/ui/transition/index.android.d.ts +0 -3
  40. package/ui/transition/index.android.js +0 -5
  41. package/ui/transition/index.android.js.map +1 -1
  42. package/ui/transition/index.d.ts +28 -9
  43. package/ui/transition/index.ios.d.ts +0 -3
  44. package/ui/transition/index.ios.js +0 -33
  45. package/ui/transition/index.ios.js.map +1 -1
  46. package/ui/transition/modal-transition.android.d.ts +3 -4
  47. package/ui/transition/modal-transition.android.js +4 -51
  48. package/ui/transition/modal-transition.android.js.map +1 -1
  49. package/ui/transition/modal-transition.ios.d.ts +11 -17
  50. package/ui/transition/modal-transition.ios.js +116 -206
  51. package/ui/transition/modal-transition.ios.js.map +1 -1
  52. package/ui/transition/page-transition.android.d.ts +4 -4
  53. package/ui/transition/page-transition.android.js +44 -33
  54. package/ui/transition/page-transition.android.js.map +1 -1
  55. package/ui/transition/page-transition.ios.d.ts +26 -17
  56. package/ui/transition/page-transition.ios.js +169 -187
  57. package/ui/transition/page-transition.ios.js.map +1 -1
  58. package/ui/transition/shared-transition-helper.android.d.ts +4 -0
  59. package/ui/transition/shared-transition-helper.android.js +6 -0
  60. package/ui/transition/shared-transition-helper.android.js.map +1 -0
  61. package/ui/transition/shared-transition-helper.d.ts +10 -0
  62. package/ui/transition/shared-transition-helper.ios.d.ts +9 -0
  63. package/ui/transition/shared-transition-helper.ios.js +429 -0
  64. package/ui/transition/shared-transition-helper.ios.js.map +1 -0
  65. package/ui/transition/shared-transition.d.ts +120 -13
  66. package/ui/transition/shared-transition.js +91 -11
  67. package/ui/transition/shared-transition.js.map +1 -1
  68. package/ui/transition/slide-transition.android.d.ts +1 -1
  69. package/ui/transition/slide-transition.android.js +1 -1
  70. package/ui/transition/slide-transition.android.js.map +1 -1
  71. package/ui/transition/slide-transition.d.ts +1 -1
  72. package/ui/transition/slide-transition.ios.d.ts +15 -2
  73. package/ui/transition/slide-transition.ios.js +86 -52
  74. package/ui/transition/slide-transition.ios.js.map +1 -1
  75. package/utils/native-helper.d.ts +35 -0
  76. package/utils/native-helper.ios.d.ts +13 -0
  77. package/utils/native-helper.ios.js +73 -0
  78. package/utils/native-helper.ios.js.map +1 -1
  79. package/utils/number-utils.d.ts +10 -0
  80. package/utils/number-utils.js +12 -0
  81. package/utils/number-utils.js.map +1 -1
  82. package/ui/frame/fragment.transitions.ios.d.ts +0 -2
  83. package/ui/frame/fragment.transitions.ios.js +0 -71
  84. package/ui/frame/fragment.transitions.ios.js.map +0 -1
@@ -0,0 +1,429 @@
1
+ import { getPageStartDefaultsForType, getRectFromProps, getSpringFromProps, SharedTransition, SharedTransitionAnimationType } from './shared-transition';
2
+ import { isNumber } from '../../utils/types';
3
+ import { Screen } from '../../platform';
4
+ import { iOSNativeHelper } from '../../utils/native-helper';
5
+ export class SharedTransitionHelper {
6
+ static animate(state, transitionContext, type) {
7
+ const transition = state.instance;
8
+ setTimeout(() => {
9
+ // Run on next tick
10
+ // ensures that existing UI state finishes before snapshotting
11
+ // (eg, button touch up state)
12
+ switch (state.activeType) {
13
+ case SharedTransitionAnimationType.present: {
14
+ // console.log('-- Transition present --');
15
+ SharedTransition.events().notify({
16
+ eventName: SharedTransition.startedEvent,
17
+ });
18
+ if (type === 'modal') {
19
+ transitionContext.containerView.addSubview(transition.presented.view);
20
+ }
21
+ else if (type === 'page') {
22
+ transitionContext.containerView.insertSubviewAboveSubview(transition.presented.view, transition.presenting.view);
23
+ }
24
+ transition.presented.view.layoutIfNeeded();
25
+ const { sharedElements, presented, presenting } = SharedTransition.getSharedElements(state.page, state.toPage);
26
+ if (SharedTransition.DEBUG) {
27
+ console.log(' ModalTransition: Present');
28
+ console.log(`1. Found sharedTransitionTags to animate:`, sharedElements.map((v) => v.sharedTransitionTag));
29
+ console.log(`2. Take snapshots of shared elements and position them based on presenting view:`);
30
+ }
31
+ const pageStart = state.pageStart;
32
+ const startFrame = getRectFromProps(pageStart, getPageStartDefaultsForType(type));
33
+ const pageEnd = state.pageEnd;
34
+ const pageEndIndependentTags = Object.keys(pageEnd?.sharedTransitionTags || {});
35
+ // console.log('pageEndIndependentTags:', pageEndIndependentTags);
36
+ for (const presentingView of sharedElements) {
37
+ if (!transition.sharedElements) {
38
+ transition.sharedElements = {
39
+ presented: [],
40
+ presenting: [],
41
+ independent: [],
42
+ };
43
+ }
44
+ const presentingSharedElement = presentingView.ios;
45
+ // console.log('fromTarget instanceof UIImageView:', fromTarget instanceof UIImageView)
46
+ // TODO: discuss whether we should check if UIImage/UIImageView type to always snapshot images or if other view types could be duped/added vs. snapshotted
47
+ // Note: snapshot may be most efficient/simple
48
+ // console.log('---> ', presentingView.sharedTransitionTag, ': ', presentingSharedElement)
49
+ const presentedView = presented.find((v) => v.sharedTransitionTag === presentingView.sharedTransitionTag);
50
+ const presentedSharedElement = presentedView.ios;
51
+ const snapshot = UIImageView.alloc().init();
52
+ // treat images differently...
53
+ if (presentedSharedElement instanceof UIImageView) {
54
+ // in case the image is loaded async, we need to update the snapshot when it changes
55
+ // todo: remove listener on transition end
56
+ presentedView.on('imageSourceChange', () => {
57
+ snapshot.image = iOSNativeHelper.snapshotView(presentedSharedElement, Screen.mainScreen.scale);
58
+ snapshot.tintColor = presentedSharedElement.tintColor;
59
+ });
60
+ snapshot.tintColor = presentedSharedElement.tintColor;
61
+ snapshot.contentMode = presentedSharedElement.contentMode;
62
+ }
63
+ iOSNativeHelper.copyLayerProperties(snapshot, presentingSharedElement);
64
+ snapshot.clipsToBounds = true;
65
+ // console.log('---> snapshot: ', snapshot);
66
+ const startFrame = presentingSharedElement.convertRectToView(presentingSharedElement.bounds, transitionContext.containerView);
67
+ const endFrame = presentedSharedElement.convertRectToView(presentedSharedElement.bounds, transitionContext.containerView);
68
+ snapshot.frame = startFrame;
69
+ if (SharedTransition.DEBUG) {
70
+ console.log('---> ', presentingView.sharedTransitionTag, ' frame:', iOSNativeHelper.printCGRect(snapshot.frame));
71
+ }
72
+ transition.sharedElements.presenting.push({
73
+ view: presentingView,
74
+ startFrame,
75
+ endFrame,
76
+ snapshot,
77
+ startOpacity: presentingView.opacity,
78
+ endOpacity: presentedView.opacity,
79
+ });
80
+ transition.sharedElements.presented.push({
81
+ view: presentedView,
82
+ startFrame: endFrame,
83
+ endFrame: startFrame,
84
+ startOpacity: presentedView.opacity,
85
+ endOpacity: presentingView.opacity,
86
+ });
87
+ // set initial opacity to match the source view opacity
88
+ snapshot.alpha = presentingView.opacity;
89
+ // hide both while animating within the transition context
90
+ presentingView.opacity = 0;
91
+ presentedView.opacity = 0;
92
+ // add snapshot to animate
93
+ transitionContext.containerView.addSubview(snapshot);
94
+ }
95
+ for (const tag of pageEndIndependentTags) {
96
+ // only consider start when there's a matching end
97
+ const pageStartIndependentProps = pageStart?.sharedTransitionTags[tag];
98
+ console.log('start:', tag, pageStartIndependentProps);
99
+ const pageEndIndependentProps = pageEnd?.sharedTransitionTags[tag];
100
+ let independentView = presenting.find((v) => v.sharedTransitionTag === tag);
101
+ let isPresented = false;
102
+ if (!independentView) {
103
+ independentView = presented.find((v) => v.sharedTransitionTag === tag);
104
+ if (!independentView) {
105
+ break;
106
+ }
107
+ isPresented = true;
108
+ }
109
+ const independentSharedElement = independentView.ios;
110
+ let snapshot;
111
+ // if (isPresented) {
112
+ // snapshot = UIImageView.alloc().init();
113
+ // } else {
114
+ snapshot = UIImageView.alloc().initWithImage(iOSNativeHelper.snapshotView(independentSharedElement, Screen.mainScreen.scale));
115
+ // }
116
+ if (independentSharedElement instanceof UIImageView) {
117
+ // in case the image is loaded async, we need to update the snapshot when it changes
118
+ // todo: remove listener on transition end
119
+ // if (isPresented) {
120
+ // independentView.on('imageSourceChange', () => {
121
+ // snapshot.image = iOSNativeHelper.snapshotView(independentSharedElement, Screen.mainScreen.scale);
122
+ // snapshot.tintColor = independentSharedElement.tintColor;
123
+ // });
124
+ // }
125
+ snapshot.tintColor = independentSharedElement.tintColor;
126
+ snapshot.contentMode = independentSharedElement.contentMode;
127
+ }
128
+ snapshot.clipsToBounds = true;
129
+ const startFrame = independentSharedElement.convertRectToView(independentSharedElement.bounds, transitionContext.containerView);
130
+ const startFrameRect = getRectFromProps(pageStartIndependentProps);
131
+ // adjust for any specified start positions
132
+ const startFrameAdjusted = CGRectMake(startFrame.origin.x + startFrameRect.x, startFrame.origin.y + startFrameRect.y, startFrame.size.width, startFrame.size.height);
133
+ console.log('startFrameAdjusted:', tag, iOSNativeHelper.printCGRect(startFrameAdjusted));
134
+ // if (pageStartIndependentProps?.scale) {
135
+ // snapshot.transform = CGAffineTransformConcat(CGAffineTransformMakeTranslation(startFrameAdjusted.origin.x, startFrameAdjusted.origin.y), CGAffineTransformMakeScale(pageStartIndependentProps.scale.x, pageStartIndependentProps.scale.y))
136
+ // } else {
137
+ snapshot.frame = startFrame; //startFrameAdjusted;
138
+ // }
139
+ if (SharedTransition.DEBUG) {
140
+ console.log('---> ', independentView.sharedTransitionTag, ' frame:', iOSNativeHelper.printCGRect(snapshot.frame));
141
+ }
142
+ const endFrameRect = getRectFromProps(pageEndIndependentProps);
143
+ const endFrame = CGRectMake(startFrame.origin.x + endFrameRect.x, startFrame.origin.y + endFrameRect.y, startFrame.size.width, startFrame.size.height);
144
+ console.log('endFrame:', tag, iOSNativeHelper.printCGRect(endFrame));
145
+ transition.sharedElements.independent.push({
146
+ view: independentView,
147
+ isPresented,
148
+ startFrame,
149
+ snapshot,
150
+ endFrame,
151
+ startTransform: independentSharedElement.transform,
152
+ scale: pageEndIndependentProps.scale,
153
+ startOpacity: independentView.opacity,
154
+ endOpacity: isNumber(pageEndIndependentProps.opacity) ? pageEndIndependentProps.opacity : 0,
155
+ });
156
+ independentView.opacity = 0;
157
+ // add snapshot to animate
158
+ transitionContext.containerView.addSubview(snapshot);
159
+ }
160
+ // Important: always set after above shared element positions have had their start positions set
161
+ transition.presented.view.alpha = isNumber(pageStart?.opacity) ? pageStart?.opacity : 0;
162
+ transition.presented.view.frame = CGRectMake(startFrame.x, startFrame.y, startFrame.width, startFrame.height);
163
+ const cleanupPresent = () => {
164
+ for (const presented of transition.sharedElements.presented) {
165
+ presented.view.opacity = presented.startOpacity;
166
+ }
167
+ for (const presenting of transition.sharedElements.presenting) {
168
+ presenting.snapshot.removeFromSuperview();
169
+ }
170
+ for (const independent of transition.sharedElements.independent) {
171
+ independent.snapshot.removeFromSuperview();
172
+ if (independent.isPresented) {
173
+ independent.view.opacity = independent.startOpacity;
174
+ }
175
+ }
176
+ SharedTransition.updateState(transition.id, {
177
+ activeType: SharedTransitionAnimationType.dismiss,
178
+ });
179
+ if (type === 'page') {
180
+ transition.presenting.view.removeFromSuperview();
181
+ }
182
+ transitionContext.completeTransition(true);
183
+ SharedTransition.events().notify({
184
+ eventName: SharedTransition.finishedEvent,
185
+ });
186
+ };
187
+ const animateProperties = () => {
188
+ if (SharedTransition.DEBUG) {
189
+ console.log('3. Animating shared elements:');
190
+ }
191
+ transition.presented.view.alpha = isNumber(pageEnd?.opacity) ? pageEnd?.opacity : 1;
192
+ const endFrame = getRectFromProps(pageEnd);
193
+ transition.presented.view.frame = CGRectMake(endFrame.x, endFrame.y, endFrame.width, endFrame.height);
194
+ // animate page properties to the following:
195
+ // https://stackoverflow.com/a/27997678/1418981
196
+ // In order to have proper layout. Seems mostly needed when presenting.
197
+ // For instance during presentation, destination view doesn't account navigation bar height.
198
+ // Not sure if best to leave all the time?
199
+ // owner.presented.view.setNeedsLayout();
200
+ // owner.presented.view.layoutIfNeeded();
201
+ for (const presented of transition.sharedElements.presented) {
202
+ const presentingMatch = transition.sharedElements.presenting.find((v) => v.view.sharedTransitionTag === presented.view.sharedTransitionTag);
203
+ // Workaround wrong origin due ongoing layout process.
204
+ const updatedEndFrame = presented.view.ios.convertRectToView(presented.view.ios.bounds, transitionContext.containerView);
205
+ const correctedEndFrame = CGRectMake(updatedEndFrame.origin.x, updatedEndFrame.origin.y, presentingMatch.endFrame.size.width, presentingMatch.endFrame.size.height);
206
+ presentingMatch.snapshot.frame = correctedEndFrame;
207
+ // apply view and layer properties to the snapshot view to match the source/presented view
208
+ iOSNativeHelper.copyLayerProperties(presentingMatch.snapshot, presented.view.ios);
209
+ // create a snapshot of the presented view
210
+ presentingMatch.snapshot.image = iOSNativeHelper.snapshotView(presented.view.ios, Screen.mainScreen.scale);
211
+ // apply correct alpha
212
+ presentingMatch.snapshot.alpha = presentingMatch.endOpacity;
213
+ if (SharedTransition.DEBUG) {
214
+ console.log(`---> ${presentingMatch.view.sharedTransitionTag} animate to: `, iOSNativeHelper.printCGRect(correctedEndFrame));
215
+ }
216
+ }
217
+ for (const independent of transition.sharedElements.independent) {
218
+ let endFrame = independent.endFrame;
219
+ // if (independent.isPresented) {
220
+ // const updatedEndFrame = independent.view.ios.convertRectToView(independent.view.ios.bounds, transitionContext.containerView);
221
+ // endFrame = CGRectMake(updatedEndFrame.origin.x, updatedEndFrame.origin.y, independent.endFrame.size.width, independent.endFrame.size.height);
222
+ // }
223
+ if (independent.scale) {
224
+ independent.snapshot.transform = CGAffineTransformConcat(CGAffineTransformMakeTranslation(endFrame.origin.x, endFrame.origin.y), CGAffineTransformMakeScale(independent.scale.x, independent.scale.y));
225
+ }
226
+ else {
227
+ independent.snapshot.frame = endFrame;
228
+ }
229
+ independent.snapshot.alpha = independent.endOpacity;
230
+ if (SharedTransition.DEBUG) {
231
+ console.log(`---> ${independent.view.sharedTransitionTag} animate to: `, iOSNativeHelper.printCGRect(independent.endFrame));
232
+ }
233
+ }
234
+ };
235
+ if (isNumber(pageEnd?.duration)) {
236
+ // override spring and use only linear animation
237
+ UIView.animateWithDurationAnimationsCompletion(pageEnd?.duration / 1000, () => {
238
+ animateProperties();
239
+ }, () => {
240
+ cleanupPresent();
241
+ });
242
+ }
243
+ else {
244
+ iOSNativeHelper.animateWithSpring({
245
+ ...getSpringFromProps(pageEnd?.spring),
246
+ animations: () => {
247
+ animateProperties();
248
+ },
249
+ completion: () => {
250
+ cleanupPresent();
251
+ },
252
+ });
253
+ }
254
+ break;
255
+ }
256
+ case SharedTransitionAnimationType.dismiss: {
257
+ // console.log('-- Transition dismiss --');
258
+ SharedTransition.events().notify({
259
+ eventName: SharedTransition.startedEvent,
260
+ });
261
+ if (type === 'page') {
262
+ transitionContext.containerView.insertSubviewBelowSubview(transition.presenting.view, transition.presented.view);
263
+ }
264
+ // console.log('transitionContext.containerView.subviews.count:', transitionContext.containerView.subviews.count);
265
+ if (SharedTransition.DEBUG) {
266
+ console.log(' ModalTransition: Dismiss');
267
+ console.log(`1. Dismiss sharedTransitionTags to animate:`, transition.sharedElements.presented.map((p) => p.view.sharedTransitionTag));
268
+ console.log(`2. Add back previously stored sharedElements to dismiss:`);
269
+ }
270
+ for (const p of transition.sharedElements.presented) {
271
+ p.view.opacity = 0;
272
+ }
273
+ for (const p of transition.sharedElements.presenting) {
274
+ p.snapshot.alpha = p.endOpacity;
275
+ transitionContext.containerView.addSubview(p.snapshot);
276
+ }
277
+ for (const independent of transition.sharedElements.independent) {
278
+ independent.snapshot.alpha = independent.endOpacity;
279
+ transitionContext.containerView.addSubview(independent.snapshot);
280
+ }
281
+ const pageReturn = state.pageReturn;
282
+ const cleanupDismiss = () => {
283
+ for (const presenting of transition.sharedElements.presenting) {
284
+ presenting.view.opacity = presenting.startOpacity;
285
+ presenting.snapshot.removeFromSuperview();
286
+ }
287
+ for (const independent of transition.sharedElements.independent) {
288
+ independent.view.opacity = independent.startOpacity;
289
+ independent.snapshot.removeFromSuperview();
290
+ }
291
+ SharedTransition.finishState(transition.id);
292
+ transition.sharedElements = null;
293
+ transitionContext.completeTransition(true);
294
+ SharedTransition.events().notify({
295
+ eventName: SharedTransition.finishedEvent,
296
+ });
297
+ };
298
+ const animateProperties = () => {
299
+ if (SharedTransition.DEBUG) {
300
+ console.log('3. Dismissing shared elements:');
301
+ }
302
+ transition.presented.view.alpha = isNumber(pageReturn?.opacity) ? pageReturn?.opacity : 0;
303
+ const endFrame = getRectFromProps(pageReturn, getPageStartDefaultsForType(type));
304
+ transition.presented.view.frame = CGRectMake(endFrame.x, endFrame.y, endFrame.width, endFrame.height);
305
+ for (const presenting of transition.sharedElements.presenting) {
306
+ iOSNativeHelper.copyLayerProperties(presenting.snapshot, presenting.view.ios);
307
+ presenting.snapshot.frame = presenting.startFrame;
308
+ presenting.snapshot.alpha = presenting.startOpacity;
309
+ if (SharedTransition.DEBUG) {
310
+ console.log(`---> ${presenting.view.sharedTransitionTag} animate to: `, iOSNativeHelper.printCGRect(presenting.startFrame));
311
+ }
312
+ }
313
+ for (const independent of transition.sharedElements.independent) {
314
+ independent.snapshot.alpha = independent.startOpacity;
315
+ if (independent.scale) {
316
+ independent.snapshot.transform = independent.startTransform;
317
+ }
318
+ else {
319
+ independent.snapshot.frame = independent.startFrame;
320
+ }
321
+ if (SharedTransition.DEBUG) {
322
+ console.log(`---> ${independent.view.sharedTransitionTag} animate to: `, iOSNativeHelper.printCGRect(independent.startFrame));
323
+ }
324
+ }
325
+ };
326
+ if (isNumber(pageReturn?.duration)) {
327
+ // override spring and use only linear animation
328
+ UIView.animateWithDurationAnimationsCompletion(pageReturn?.duration / 1000, () => {
329
+ animateProperties();
330
+ }, () => {
331
+ cleanupDismiss();
332
+ });
333
+ }
334
+ else {
335
+ iOSNativeHelper.animateWithSpring({
336
+ ...getSpringFromProps(pageReturn?.spring),
337
+ animations: () => {
338
+ animateProperties();
339
+ },
340
+ completion: () => {
341
+ cleanupDismiss();
342
+ },
343
+ });
344
+ }
345
+ break;
346
+ }
347
+ }
348
+ });
349
+ }
350
+ static interactiveStart(state, interactiveState, type) {
351
+ SharedTransition.events().notify({
352
+ eventName: SharedTransition.startedEvent,
353
+ });
354
+ switch (type) {
355
+ case 'page':
356
+ interactiveState.transitionContext.containerView.insertSubviewBelowSubview(state.instance.presenting.view, state.instance.presented.view);
357
+ break;
358
+ }
359
+ }
360
+ static interactiveUpdate(state, interactiveState, type, percent) {
361
+ if (!interactiveState.added) {
362
+ interactiveState.added = true;
363
+ for (const p of state.instance.sharedElements.presented) {
364
+ p.view.opacity = 0;
365
+ }
366
+ for (const p of state.instance.sharedElements.presenting) {
367
+ p.snapshot.alpha = p.endOpacity;
368
+ interactiveState.transitionContext.containerView.addSubview(p.snapshot);
369
+ }
370
+ const pageStart = state.pageStart;
371
+ const startFrame = getRectFromProps(pageStart, getPageStartDefaultsForType(type));
372
+ interactiveState.propertyAnimator = UIViewPropertyAnimator.alloc().initWithDurationDampingRatioAnimations(1, 1, () => {
373
+ for (const p of state.instance.sharedElements.presenting) {
374
+ p.snapshot.frame = p.startFrame;
375
+ iOSNativeHelper.copyLayerProperties(p.snapshot, p.view.ios);
376
+ p.snapshot.alpha = 1;
377
+ }
378
+ state.instance.presented.view.alpha = isNumber(state.pageReturn?.opacity) ? state.pageReturn?.opacity : 0;
379
+ state.instance.presented.view.frame = CGRectMake(startFrame.x, startFrame.y, state.instance.presented.view.bounds.size.width, state.instance.presented.view.bounds.size.height);
380
+ });
381
+ }
382
+ interactiveState.propertyAnimator.fractionComplete = percent;
383
+ }
384
+ static interactiveCancel(state, interactiveState, type) {
385
+ if (state.instance && interactiveState.added && interactiveState.propertyAnimator) {
386
+ interactiveState.propertyAnimator.reversed = true;
387
+ const duration = isNumber(state.pageStart?.duration) ? state.pageStart?.duration / 1000 : 0.35;
388
+ interactiveState.propertyAnimator.continueAnimationWithTimingParametersDurationFactor(null, duration);
389
+ setTimeout(() => {
390
+ for (const p of state.instance.sharedElements.presented) {
391
+ p.view.opacity = 1;
392
+ }
393
+ for (const p of state.instance.sharedElements.presenting) {
394
+ p.snapshot.removeFromSuperview();
395
+ }
396
+ state.instance.presented.view.alpha = 1;
397
+ interactiveState.propertyAnimator = null;
398
+ interactiveState.added = false;
399
+ interactiveState.transitionContext.cancelInteractiveTransition();
400
+ interactiveState.transitionContext.completeTransition(false);
401
+ SharedTransition.events().notify({
402
+ eventName: SharedTransition.cancelledEvent,
403
+ });
404
+ }, duration * 1000);
405
+ }
406
+ }
407
+ static interactiveFinish(state, interactiveState, type) {
408
+ if (state.instance && interactiveState.added && interactiveState.propertyAnimator) {
409
+ interactiveState.propertyAnimator.reversed = false;
410
+ const duration = isNumber(state.pageReturn?.duration) ? state.pageReturn?.duration / 1000 : 0.35;
411
+ interactiveState.propertyAnimator.continueAnimationWithTimingParametersDurationFactor(null, duration);
412
+ setTimeout(() => {
413
+ for (const presenting of state.instance.sharedElements.presenting) {
414
+ presenting.view.opacity = presenting.startOpacity;
415
+ presenting.snapshot.removeFromSuperview();
416
+ }
417
+ SharedTransition.finishState(state.instance.id);
418
+ interactiveState.propertyAnimator = null;
419
+ interactiveState.added = false;
420
+ interactiveState.transitionContext.finishInteractiveTransition();
421
+ interactiveState.transitionContext.completeTransition(true);
422
+ SharedTransition.events().notify({
423
+ eventName: SharedTransition.finishedEvent,
424
+ });
425
+ }, duration * 1000);
426
+ }
427
+ }
428
+ }
429
+ //# sourceMappingURL=shared-transition-helper.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-transition-helper.ios.js","sourceRoot":"","sources":["../../../../../packages/core/ui/transition/shared-transition-helper.ios.ts"],"names":[],"mappings":"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"}
@@ -1,65 +1,172 @@
1
1
  import type { Transition } from '.';
2
+ import { Observable } from '../../data/observable';
2
3
  import { ViewBase } from '../core/view-base';
3
4
  import type { View } from '../core/view';
5
+ import type { PanGestureEventData } from '../gestures';
4
6
  export declare const DEFAULT_DURATION = 0.35;
7
+ export declare const DEFAULT_SPRING: {
8
+ tension: number;
9
+ friction: number;
10
+ mass: number;
11
+ velocity: number;
12
+ delay: number;
13
+ };
5
14
  export declare enum SharedTransitionAnimationType {
6
15
  present = 0,
7
16
  dismiss = 1
8
17
  }
9
- export interface SharedTransitionConfig {
18
+ export interface SharedTransitionInteractiveOptions {
10
19
  /**
11
- * Page which will start the transition
20
+ * When the pan exceeds this percentage and you let go, finish the transition.
21
+ * Default 0.5
12
22
  */
13
- page?: ViewBase;
23
+ finishThreshold?: number;
14
24
  /**
15
- * Preconfigured transition or your own custom configured one
25
+ * You can create your own percent formula used for determing the interactive value.
26
+ * By default, we handle this via a formula like this for an interactive page back transition:
27
+ * - return eventData.deltaX / (eventData.ios.view.bounds.size.width / 2);
28
+ * @param eventData PanGestureEventData
29
+ * @returns The percentage value to be used as the finish/cancel threshold
30
+ */
31
+ percentFormula?: (eventData: PanGestureEventData) => number;
32
+ }
33
+ export interface SharedTransitionConfig {
34
+ /**
35
+ * Preconfigured transition or your own custom configured one.
16
36
  */
17
37
  instance?: Transition;
38
+ /**
39
+ * Interactive transition settings. (iOS only at the moment)
40
+ */
41
+ interactive?: {
42
+ /**
43
+ * Whether you want to allow interactive dismissal.
44
+ * Defaults to using 'pan' gesture for dismissal however you can customize your own.
45
+ */
46
+ dismiss?: SharedTransitionInteractiveOptions;
47
+ };
18
48
  /**
19
49
  * View settings to start your transition.
20
50
  */
21
- toPageStart?: SharedTransitionPageProperties;
51
+ pageStart?: SharedTransitionPageProperties;
22
52
  /**
23
53
  * View settings to end your transition.
24
54
  */
25
- toPageEnd?: SharedTransitionPageProperties;
55
+ pageEnd?: SharedTransitionPageProperties;
26
56
  /**
27
57
  * View settings to end your transition for the 'from' (aka outgoing or dismissed) page.
28
58
  */
29
- fromPageEnd?: SharedTransitionPageProperties;
59
+ pageReturn?: SharedTransitionPageProperties;
30
60
  }
31
61
  export interface SharedTransitionState extends SharedTransitionConfig {
62
+ /**
63
+ * Page which will start the transition.
64
+ */
65
+ page?: ViewBase;
32
66
  activeType?: SharedTransitionAnimationType;
33
67
  toPage?: ViewBase;
68
+ interactiveBegan?: boolean;
69
+ interactiveCancelled?: boolean;
34
70
  }
35
- type SharedTransitionPageProperties = {
71
+ export type SharedRect = {
36
72
  x?: number;
37
73
  y?: number;
38
74
  width?: number;
39
75
  height?: number;
76
+ };
77
+ export type SharedProperties = SharedRect & {
40
78
  opacity?: number;
79
+ scale?: {
80
+ x?: number;
81
+ y?: number;
82
+ };
83
+ };
84
+ export type SharedSpringProperties = {
85
+ tension?: number;
86
+ friction?: number;
87
+ mass?: number;
88
+ delay?: number;
89
+ velocity?: number;
90
+ animateOptions?: any;
91
+ };
92
+ type SharedTransitionPageProperties = SharedProperties & {
41
93
  /**
42
- * Duration in milliseconds
94
+ * Linear duration in milliseconds
95
+ * Note: When this is defined, it will override spring options and use only linear animation.
43
96
  */
44
97
  duration?: number;
98
+ sharedTransitionTags?: {
99
+ [key: string]: SharedProperties;
100
+ };
101
+ /**
102
+ * Spring animation settings.
103
+ * Defaults to 140 tension with 10 friction.
104
+ */
105
+ spring?: SharedSpringProperties;
45
106
  };
46
107
  /**
47
- * Shared Element Transitions (experimental)
48
- *
49
- * Note: some APIs may change in future releases
108
+ * Shared Element Transitions (preview)
109
+ * Allows you to auto animate between shared elements on two different screesn to create smooth navigational experiences.
110
+ * View components can define sharedTransitionTag="name" alone with a transition through this API.
50
111
  */
51
112
  export declare class SharedTransition {
52
- static custom(instance: Transition, options: SharedTransitionConfig): {
113
+ /**
114
+ * Configure a custom transition with presentation/dismissal options.
115
+ * @param transition The custom Transition instance.
116
+ * @param options
117
+ * @returns a configured SharedTransition instance for use with navigational APIs.
118
+ */
119
+ static custom(transition: Transition, options?: SharedTransitionConfig): {
53
120
  instance: Transition;
54
121
  };
122
+ static events(): Observable;
123
+ static startedEvent: string;
124
+ static finishedEvent: string;
125
+ static cancelledEvent: string;
126
+ /**
127
+ * Enable to see various console logging output of Shared Element Transition behavior.
128
+ */
129
+ static DEBUG: boolean;
130
+ /**
131
+ * @private
132
+ */
55
133
  static currentStack: Array<SharedTransitionState>;
134
+ /**
135
+ * @private
136
+ */
56
137
  static updateState(id: number, state: SharedTransitionState): void;
138
+ /**
139
+ * @private
140
+ */
57
141
  static getState(id: number): SharedTransitionState;
142
+ /**
143
+ * @private
144
+ */
58
145
  static finishState(id: number): void;
146
+ /**
147
+ * Gather view collections based on sharedTransitionTag details.
148
+ * @param fromPage Page moving away from
149
+ * @param toPage Page moving to
150
+ * @returns Collections of views pertaining to shared elements or particular pages
151
+ */
59
152
  static getSharedElements(fromPage: ViewBase, toPage: ViewBase): {
60
153
  sharedElements: Array<View>;
61
154
  presented: Array<View>;
62
155
  presenting: Array<View>;
63
156
  };
64
157
  }
158
+ export declare function getRectFromProps(props: SharedTransitionPageProperties, defaults?: SharedRect): SharedRect;
159
+ export declare function getSpringFromProps(props: SharedSpringProperties): {
160
+ tension: number;
161
+ friction: number;
162
+ mass: number;
163
+ velocity: number;
164
+ delay: number;
165
+ };
166
+ export declare function getPageStartDefaultsForType(type: 'page' | 'modal'): {
167
+ x: number;
168
+ y: number;
169
+ width: number;
170
+ height: number;
171
+ };
65
172
  export {};