@nativescript/core 8.5.0-alpha.1 → 8.5.0-alpha.3

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 (81) 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 +33 -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/core/view-base/index.d.ts +443 -538
  21. package/ui/core/view-base/index.js +150 -5
  22. package/ui/core/view-base/index.js.map +1 -1
  23. package/ui/frame/fragment.transitions.d.ts +0 -4
  24. package/ui/frame/frame-common.d.ts +2 -2
  25. package/ui/frame/frame-common.js +8 -0
  26. package/ui/frame/frame-common.js.map +1 -1
  27. package/ui/frame/index.android.js +2 -4
  28. package/ui/frame/index.android.js.map +1 -1
  29. package/ui/frame/index.ios.js +58 -9
  30. package/ui/frame/index.ios.js.map +1 -1
  31. package/ui/index.d.ts +2 -0
  32. package/ui/index.js +2 -0
  33. package/ui/index.js.map +1 -1
  34. package/ui/page/index.ios.d.ts +4 -1
  35. package/ui/page/index.ios.js +81 -60
  36. package/ui/page/index.ios.js.map +1 -1
  37. package/ui/styling/background.ios.js +3 -0
  38. package/ui/styling/background.ios.js.map +1 -1
  39. package/ui/transition/fade-transition.d.ts +1 -3
  40. package/ui/transition/fade-transition.ios.d.ts +14 -1
  41. package/ui/transition/fade-transition.ios.js +60 -26
  42. package/ui/transition/fade-transition.ios.js.map +1 -1
  43. package/ui/transition/index.android.d.ts +0 -3
  44. package/ui/transition/index.android.js +0 -5
  45. package/ui/transition/index.android.js.map +1 -1
  46. package/ui/transition/index.d.ts +9 -9
  47. package/ui/transition/index.ios.d.ts +0 -3
  48. package/ui/transition/index.ios.js +0 -33
  49. package/ui/transition/index.ios.js.map +1 -1
  50. package/ui/transition/modal-transition.android.d.ts +3 -4
  51. package/ui/transition/modal-transition.android.js +4 -51
  52. package/ui/transition/modal-transition.android.js.map +1 -1
  53. package/ui/transition/modal-transition.ios.d.ts +6 -1
  54. package/ui/transition/modal-transition.ios.js +287 -80
  55. package/ui/transition/modal-transition.ios.js.map +1 -1
  56. package/ui/transition/page-transition.android.d.ts +4 -4
  57. package/ui/transition/page-transition.android.js +44 -33
  58. package/ui/transition/page-transition.android.js.map +1 -1
  59. package/ui/transition/page-transition.ios.d.ts +21 -1
  60. package/ui/transition/page-transition.ios.js +471 -184
  61. package/ui/transition/page-transition.ios.js.map +1 -1
  62. package/ui/transition/shared-transition.d.ts +87 -15
  63. package/ui/transition/shared-transition.js +41 -24
  64. package/ui/transition/shared-transition.js.map +1 -1
  65. package/ui/transition/slide-transition.android.d.ts +1 -1
  66. package/ui/transition/slide-transition.android.js +1 -1
  67. package/ui/transition/slide-transition.android.js.map +1 -1
  68. package/ui/transition/slide-transition.d.ts +1 -1
  69. package/ui/transition/slide-transition.ios.d.ts +15 -2
  70. package/ui/transition/slide-transition.ios.js +86 -52
  71. package/ui/transition/slide-transition.ios.js.map +1 -1
  72. package/utils/native-helper.d.ts +35 -0
  73. package/utils/native-helper.ios.d.ts +13 -0
  74. package/utils/native-helper.ios.js +73 -0
  75. package/utils/native-helper.ios.js.map +1 -1
  76. package/utils/number-utils.d.ts +10 -0
  77. package/utils/number-utils.js +12 -0
  78. package/utils/number-utils.js.map +1 -1
  79. package/ui/frame/fragment.transitions.ios.d.ts +0 -2
  80. package/ui/frame/fragment.transitions.ios.js +0 -71
  81. package/ui/frame/fragment.transitions.ios.js.map +0 -1
@@ -1,6 +1,9 @@
1
1
  import { Screen } from '../../platform';
2
- import { Transition, iosMatchLayerProperties, iosPrintRect, iosSnapshotView } from '.';
3
- import { SharedTransition, SharedTransitionAnimationType, DEFAULT_DURATION } from './shared-transition';
2
+ import { iOSNativeHelper } from '../../utils/native-helper';
3
+ import { isNumber } from '../../utils/types';
4
+ import { Transition } from '.';
5
+ import { SharedTransition, SharedTransitionAnimationType, DEFAULT_DURATION, DEFAULT_SPRING } from './shared-transition';
6
+ import { GestureStateTypes } from '../gestures';
4
7
  export class ModalTransition extends Transition {
5
8
  iosPresentedController(presented, presenting, source) {
6
9
  this.transitionController = ModalTransitionController.initWithOwner(new WeakRef(this));
@@ -14,18 +17,181 @@ export class ModalTransition extends Transition {
14
17
  return this.transitionController;
15
18
  }
16
19
  iosInteractionDismiss(animator) {
17
- console.log('-- iosInteractionDismiss --');
18
- return null;
20
+ // console.log('-- iosInteractionDismiss --');
21
+ this.interactiveController = PercentInteractiveController.initWithOwner(new WeakRef(this));
22
+ return this.interactiveController;
19
23
  }
20
24
  iosInteractionPresented(animator) {
21
- console.log('-- iosInteractionPresented --');
25
+ // console.log('-- iosInteractionPresented --');
22
26
  return null;
23
27
  }
24
- iosPresentedViewController(presented, presenting, source) {
25
- console.log('-- iosPresentedViewController --');
26
- return null;
28
+ setupInteractiveGesture(startCallback, view) {
29
+ this._interactiveStartCallback = startCallback;
30
+ this._interactiveDismissGesture = this._interactiveDismissGestureHandler.bind(this);
31
+ view.on('pan', this._interactiveDismissGesture);
32
+ // this.interactiveGestureRecognizer = UIScreenEdgePanGestureRecognizer.alloc().initWithTargetAction()
33
+ // let edgeSwipeGestureRecognizer = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(handleSwipe(_:)))
34
+ // edgeSwipeGestureRecognizer.edges = .left
35
+ // view.addGestureRecognizer(edgeSwipeGestureRecognizer)
36
+ }
37
+ _interactiveDismissGestureHandler(args) {
38
+ if (args?.ios?.view) {
39
+ const state = SharedTransition.getState(this.id);
40
+ // SharedTransition.updateState(this.id, {
41
+ // interactiveBegan: true,
42
+ // interactiveCancelled: false
43
+ // });
44
+ const percent = state.interactive?.dismiss?.percentFormula ? state.interactive.dismiss.percentFormula(args) : args.deltaY / (args.ios.view.bounds.size.height / 2);
45
+ if (SharedTransition.DEBUG) {
46
+ console.log('Interactive dismissal percentage:', percent);
47
+ }
48
+ switch (args.state) {
49
+ case GestureStateTypes.began:
50
+ SharedTransition.updateState(this.id, {
51
+ interactiveBegan: true,
52
+ interactiveCancelled: false,
53
+ });
54
+ if (this._interactiveStartCallback) {
55
+ this._interactiveStartCallback();
56
+ }
57
+ break;
58
+ case GestureStateTypes.changed:
59
+ if (percent < 1) {
60
+ if (this.interactiveController) {
61
+ this.interactiveController.updateInteractiveTransition(percent);
62
+ }
63
+ }
64
+ break;
65
+ case GestureStateTypes.cancelled:
66
+ case GestureStateTypes.ended:
67
+ if (this.interactiveController) {
68
+ const finishThreshold = isNumber(state.interactive?.dismiss?.finishThreshold) ? state.interactive.dismiss.finishThreshold : 0.5;
69
+ if (percent > finishThreshold) {
70
+ this.interactiveController.finishInteractiveTransition();
71
+ }
72
+ else {
73
+ SharedTransition.updateState(this.id, {
74
+ interactiveCancelled: true,
75
+ });
76
+ this.interactiveController.cancelInteractiveTransition();
77
+ }
78
+ }
79
+ break;
80
+ }
81
+ }
27
82
  }
28
83
  }
84
+ var PercentInteractiveController = /** @class */ (function (_super) {
85
+ __extends(PercentInteractiveController, _super);
86
+ function PercentInteractiveController() {
87
+ var _this = _super !== null && _super.apply(this, arguments) || this;
88
+ _this.started = false;
89
+ return _this;
90
+ }
91
+ PercentInteractiveController.initWithOwner = function (owner) {
92
+ var ctrl = PercentInteractiveController.new();
93
+ ctrl.owner = owner;
94
+ return ctrl;
95
+ };
96
+ PercentInteractiveController.prototype.startInteractiveTransition = function (transitionContext) {
97
+ // console.log('startInteractiveTransition');
98
+ this.transitionContext = transitionContext;
99
+ };
100
+ PercentInteractiveController.prototype.updateInteractiveTransition = function (percentComplete) {
101
+ var _a;
102
+ var owner = (_a = this.owner) === null || _a === void 0 ? void 0 : _a.deref();
103
+ if (owner) {
104
+ if (!this.started) {
105
+ this.started = true;
106
+ for (var _i = 0, _b = owner.sharedElements.presented; _i < _b.length; _i++) {
107
+ var p = _b[_i];
108
+ p.view.opacity = 0;
109
+ }
110
+ for (var _c = 0, _d = owner.sharedElements.presenting; _c < _d.length; _c++) {
111
+ var p = _d[_c];
112
+ p.snapshot.alpha = p.endOpacity;
113
+ this.transitionContext.containerView.addSubview(p.snapshot);
114
+ }
115
+ var state = SharedTransition.getState(owner.id);
116
+ var toProps = state.toPageStart;
117
+ var startY_1 = isNumber(toProps === null || toProps === void 0 ? void 0 : toProps.y) ? toProps === null || toProps === void 0 ? void 0 : toProps.y : Screen.mainScreen.heightDIPs;
118
+ this.backgroundAnimation = UIViewPropertyAnimator.alloc().initWithDurationDampingRatioAnimations(1, 1, function () {
119
+ for (var _i = 0, _a = owner.sharedElements.presenting; _i < _a.length; _i++) {
120
+ var p = _a[_i];
121
+ p.snapshot.frame = p.startFrame;
122
+ iOSNativeHelper.copyLayerProperties(p.snapshot, p.view.ios);
123
+ p.snapshot.alpha = 1;
124
+ }
125
+ owner.presented.view.alpha = 0;
126
+ owner.presented.view.frame = CGRectMake(0, startY_1, owner.presented.view.bounds.size.width, owner.presented.view.bounds.size.height);
127
+ });
128
+ }
129
+ this.backgroundAnimation.fractionComplete = percentComplete;
130
+ }
131
+ };
132
+ PercentInteractiveController.prototype.cancelInteractiveTransition = function () {
133
+ var _this = this;
134
+ var _a, _b, _c;
135
+ // console.log('cancelInteractiveTransition');
136
+ var owner = (_a = this.owner) === null || _a === void 0 ? void 0 : _a.deref();
137
+ if (owner && this.started) {
138
+ var state = SharedTransition.getState(owner.id);
139
+ if (!state) {
140
+ return;
141
+ }
142
+ if (this.backgroundAnimation) {
143
+ this.backgroundAnimation.reversed = true;
144
+ var duration = isNumber((_b = state.toPageStart) === null || _b === void 0 ? void 0 : _b.duration) ? ((_c = state.toPageStart) === null || _c === void 0 ? void 0 : _c.duration) / 1000 : DEFAULT_DURATION;
145
+ this.backgroundAnimation.continueAnimationWithTimingParametersDurationFactor(null, duration);
146
+ setTimeout(function () {
147
+ for (var _i = 0, _a = owner.sharedElements.presented; _i < _a.length; _i++) {
148
+ var p = _a[_i];
149
+ p.view.opacity = 1;
150
+ }
151
+ for (var _b = 0, _c = owner.sharedElements.presenting; _b < _c.length; _b++) {
152
+ var p = _c[_b];
153
+ p.snapshot.removeFromSuperview();
154
+ }
155
+ owner.presented.view.alpha = 1;
156
+ _this.backgroundAnimation = null;
157
+ _this.started = false;
158
+ _this.transitionContext.cancelInteractiveTransition();
159
+ _this.transitionContext.completeTransition(false);
160
+ }, duration * 1000);
161
+ }
162
+ }
163
+ };
164
+ PercentInteractiveController.prototype.finishInteractiveTransition = function () {
165
+ var _this = this;
166
+ var _a, _b, _c;
167
+ // console.log('finishInteractiveTransition');
168
+ var owner = (_a = this.owner) === null || _a === void 0 ? void 0 : _a.deref();
169
+ if (owner && this.started) {
170
+ if (this.backgroundAnimation) {
171
+ this.backgroundAnimation.reversed = false;
172
+ var state = SharedTransition.getState(owner.id);
173
+ if (!state) {
174
+ SharedTransition.finishState(owner.id);
175
+ this.transitionContext.completeTransition(true);
176
+ return;
177
+ }
178
+ var duration = isNumber((_b = state.fromPageEnd) === null || _b === void 0 ? void 0 : _b.duration) ? ((_c = state.fromPageEnd) === null || _c === void 0 ? void 0 : _c.duration) / 1000 : DEFAULT_DURATION;
179
+ this.backgroundAnimation.continueAnimationWithTimingParametersDurationFactor(null, duration);
180
+ setTimeout(function () {
181
+ for (var _i = 0, _a = owner.sharedElements.presenting; _i < _a.length; _i++) {
182
+ var presenting = _a[_i];
183
+ presenting.view.opacity = presenting.startOpacity;
184
+ }
185
+ SharedTransition.finishState(owner.id);
186
+ _this.transitionContext.finishInteractiveTransition();
187
+ _this.transitionContext.completeTransition(true);
188
+ }, duration * 1000);
189
+ }
190
+ }
191
+ };
192
+ PercentInteractiveController.ObjCProtocols = [UIViewControllerInteractiveTransitioning];
193
+ return PercentInteractiveController;
194
+ }(UIPercentDrivenInteractiveTransition));
29
195
  var ModalTransitionController = /** @class */ (function (_super) {
30
196
  __extends(ModalTransitionController, _super);
31
197
  function ModalTransitionController() {
@@ -40,8 +206,7 @@ var ModalTransitionController = /** @class */ (function (_super) {
40
206
  return DEFAULT_DURATION;
41
207
  };
42
208
  ModalTransitionController.prototype.animateTransition = function (transitionContext) {
43
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
44
- // console.log('ModalTransitionController animateTransition:', animationType);
209
+ // console.log('ModalTransitionController animateTransition');
45
210
  var owner = this.owner.deref();
46
211
  if (owner) {
47
212
  // console.log('owner.id:', owner.id);
@@ -52,13 +217,15 @@ var ModalTransitionController = /** @class */ (function (_super) {
52
217
  // console.log('state.activeType:', state.activeType)
53
218
  switch (state_1.activeType) {
54
219
  case SharedTransitionAnimationType.present: {
55
- console.log('-- Transition present --');
220
+ // console.log('-- Transition present --');
56
221
  transitionContext.containerView.addSubview(owner.presented.view);
57
222
  owner.presented.view.layoutIfNeeded();
58
- var _q = SharedTransition.getSharedElements(state_1.page, state_1.toPage), sharedElements = _q.sharedElements, presented = _q.presented;
59
- console.log(' ');
60
- console.log("1. Found sharedTransitionTags to animate:", sharedElements.map(function (v) { return v.sharedTransitionTag; }));
61
- console.log("2. Take snapshots of shared elements and position them based on presenting view:");
223
+ var _a = SharedTransition.getSharedElements(state_1.page, state_1.toPage), sharedElements = _a.sharedElements, presented = _a.presented;
224
+ if (SharedTransition.DEBUG) {
225
+ console.log(' ModalTransition: Present');
226
+ console.log("1. Found sharedTransitionTags to animate:", sharedElements.map(function (v) { return v.sharedTransitionTag; }));
227
+ console.log("2. Take snapshots of shared elements and position them based on presenting view:");
228
+ }
62
229
  var _loop_1 = function (presentingView) {
63
230
  if (!owner.sharedElements) {
64
231
  owner.sharedElements = {
@@ -79,19 +246,21 @@ var ModalTransitionController = /** @class */ (function (_super) {
79
246
  // in case the image is loaded async, we need to update the snapshot when it changes
80
247
  // todo: remove listener on transition end
81
248
  presentedView.on('imageSourceChange', function () {
82
- sharedElementSnapshot.image = iosSnapshotView(presentedSharedElement);
249
+ sharedElementSnapshot.image = iOSNativeHelper.snapshotView(presentedSharedElement, Screen.mainScreen.scale);
83
250
  sharedElementSnapshot.tintColor = presentedSharedElement.tintColor;
84
251
  });
85
252
  sharedElementSnapshot.tintColor = presentedSharedElement.tintColor;
86
253
  sharedElementSnapshot.contentMode = presentedSharedElement.contentMode;
87
254
  }
88
- iosMatchLayerProperties(sharedElementSnapshot, presentingSharedElement);
255
+ iOSNativeHelper.copyLayerProperties(sharedElementSnapshot, presentingSharedElement);
89
256
  sharedElementSnapshot.clipsToBounds = true;
90
257
  // console.log('---> snapshot: ', sharedElementSnapshot);
91
258
  var startFrame = presentingSharedElement.convertRectToView(presentingSharedElement.bounds, transitionContext.containerView);
92
259
  var endFrame = presentedSharedElement.convertRectToView(presentedSharedElement.bounds, transitionContext.containerView);
93
260
  sharedElementSnapshot.frame = startFrame;
94
- console.log('---> ', presentingView.sharedTransitionTag, ' frame:', iosPrintRect(sharedElementSnapshot.frame));
261
+ if (SharedTransition.DEBUG) {
262
+ console.log('---> ', presentingView.sharedTransitionTag, ' frame:', iOSNativeHelper.printCGRect(sharedElementSnapshot.frame));
263
+ }
95
264
  owner.sharedElements.presenting.push({
96
265
  view: presentingView,
97
266
  startFrame: startFrame,
@@ -124,25 +293,14 @@ var ModalTransitionController = /** @class */ (function (_super) {
124
293
  var presented_1 = _a[_i];
125
294
  presented_1.view.opacity = presented_1.startOpacity;
126
295
  }
127
- // TODO: Discuss with Igor whether this is necessary
128
- // potential this could help smooth some shared element transitions
129
- UIView.animateWithDurationAnimationsCompletion(0, // Igor: disabled for now, we'll talk about this and decide
130
- function () {
131
- for (var _i = 0, _a = owner.sharedElements.presenting; _i < _a.length; _i++) {
132
- var presenting = _a[_i];
133
- presenting.snapshot.alpha = presenting.endOpacity;
134
- }
135
- }, function () {
136
- for (var _i = 0, _a = owner.sharedElements.presenting; _i < _a.length; _i++) {
137
- var presenting = _a[_i];
138
- presenting.snapshot.removeFromSuperview();
139
- }
140
- SharedTransition.updateState({
141
- id: owner.id,
142
- activeType: SharedTransitionAnimationType.dismiss,
143
- });
144
- transitionContext.completeTransition(true);
296
+ for (var _b = 0, _c = owner.sharedElements.presenting; _b < _c.length; _b++) {
297
+ var presenting = _c[_b];
298
+ presenting.snapshot.removeFromSuperview();
299
+ }
300
+ SharedTransition.updateState(owner.id, {
301
+ activeType: SharedTransitionAnimationType.dismiss,
145
302
  });
303
+ transitionContext.completeTransition(true);
146
304
  };
147
305
  var updateFramePresent_1 = function () {
148
306
  // https://stackoverflow.com/a/27997678/1418981
@@ -151,7 +309,9 @@ var ModalTransitionController = /** @class */ (function (_super) {
151
309
  // Not sure if best to leave all the time?
152
310
  // owner.presented.view.setNeedsLayout();
153
311
  // owner.presented.view.layoutIfNeeded();
154
- console.log('3. Animating shared elements:');
312
+ if (SharedTransition.DEBUG) {
313
+ console.log('3. Animating shared elements:');
314
+ }
155
315
  var _loop_2 = function (presented_2) {
156
316
  var presentingMatch = owner.sharedElements.presenting.find(function (v) { return v.view.sharedTransitionTag === presented_2.view.sharedTransitionTag; });
157
317
  // Workaround wrong origin due ongoing layout process.
@@ -159,53 +319,77 @@ var ModalTransitionController = /** @class */ (function (_super) {
159
319
  var correctedEndFrame = CGRectMake(updatedEndFrame.origin.x, updatedEndFrame.origin.y, presentingMatch.endFrame.size.width, presentingMatch.endFrame.size.height);
160
320
  presentingMatch.snapshot.frame = correctedEndFrame;
161
321
  // apply view and layer properties to the snapshot view to match the source/presented view
162
- iosMatchLayerProperties(presentingMatch.snapshot, presented_2.view.ios);
322
+ iOSNativeHelper.copyLayerProperties(presentingMatch.snapshot, presented_2.view.ios);
163
323
  // create a snapshot of the presented view
164
- presentingMatch.snapshot.image = iosSnapshotView(presented_2.view.ios);
324
+ presentingMatch.snapshot.image = iOSNativeHelper.snapshotView(presented_2.view.ios, Screen.mainScreen.scale);
165
325
  // apply correct alpha
166
326
  presentingMatch.snapshot.alpha = presentingMatch.endOpacity;
167
- console.log("---> ".concat(presentingMatch.view.sharedTransitionTag, " animate to: "), iosPrintRect(correctedEndFrame));
327
+ if (SharedTransition.DEBUG) {
328
+ console.log("---> ".concat(presentingMatch.view.sharedTransitionTag, " animate to: "), iOSNativeHelper.printCGRect(correctedEndFrame));
329
+ }
168
330
  };
169
331
  for (var _i = 0, _a = owner.sharedElements.presented; _i < _a.length; _i++) {
170
332
  var presented_2 = _a[_i];
171
333
  _loop_2(presented_2);
172
334
  }
173
- console.log(' ');
174
335
  };
175
336
  // starting page properties
176
- owner.presented.view.alpha = typeof ((_a = state_1.toPageStart) === null || _a === void 0 ? void 0 : _a.opacity) === 'number' ? (_b = state_1.toPageStart) === null || _b === void 0 ? void 0 : _b.opacity : 0;
177
- var startX = typeof ((_c = state_1.toPageStart) === null || _c === void 0 ? void 0 : _c.x) === 'number' ? (_d = state_1.toPageStart) === null || _d === void 0 ? void 0 : _d.x : 0;
178
- var startY = typeof ((_e = state_1.toPageStart) === null || _e === void 0 ? void 0 : _e.y) === 'number' ? (_f = state_1.toPageStart) === null || _f === void 0 ? void 0 : _f.y : Screen.mainScreen.heightDIPs;
179
- var startWidth = typeof ((_g = state_1.toPageStart) === null || _g === void 0 ? void 0 : _g.width) === 'number' ? (_h = state_1.toPageStart) === null || _h === void 0 ? void 0 : _h.width : Screen.mainScreen.widthDIPs;
180
- var startHeight = typeof ((_j = state_1.toPageStart) === null || _j === void 0 ? void 0 : _j.height) === 'number' ? (_k = state_1.toPageStart) === null || _k === void 0 ? void 0 : _k.height : Screen.mainScreen.heightDIPs;
337
+ var toProps = state_1.toPageStart;
338
+ owner.presented.view.alpha = isNumber(toProps === null || toProps === void 0 ? void 0 : toProps.opacity) ? toProps === null || toProps === void 0 ? void 0 : toProps.opacity : 0;
339
+ var startX = isNumber(toProps === null || toProps === void 0 ? void 0 : toProps.x) ? toProps === null || toProps === void 0 ? void 0 : toProps.x : 0;
340
+ var startY = isNumber(toProps === null || toProps === void 0 ? void 0 : toProps.y) ? toProps === null || toProps === void 0 ? void 0 : toProps.y : Screen.mainScreen.heightDIPs;
341
+ var startWidth = isNumber(toProps === null || toProps === void 0 ? void 0 : toProps.width) ? toProps === null || toProps === void 0 ? void 0 : toProps.width : Screen.mainScreen.widthDIPs;
342
+ var startHeight = isNumber(toProps === null || toProps === void 0 ? void 0 : toProps.height) ? toProps === null || toProps === void 0 ? void 0 : toProps.height : Screen.mainScreen.heightDIPs;
181
343
  owner.presented.view.frame = CGRectMake(startX, startY, startWidth, startHeight);
182
- UIView.animateWithDurationDelayUsingSpringWithDampingInitialSpringVelocityOptionsAnimationsCompletion(typeof ((_l = state_1.toPageStart) === null || _l === void 0 ? void 0 : _l.duration) === 'number' ? ((_m = state_1.toPageStart) === null || _m === void 0 ? void 0 : _m.duration) / 1000 : DEFAULT_DURATION, 0, 0.5, 3, UIViewAnimationOptions.CurveEaseInOut, function () {
183
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
344
+ var animateProperties_1 = function () {
345
+ var props = state_1.toPageEnd;
184
346
  // animate page properties to the following:
185
- owner.presented.view.alpha = typeof ((_a = state_1.toPageEnd) === null || _a === void 0 ? void 0 : _a.opacity) === 'number' ? (_b = state_1.toPageEnd) === null || _b === void 0 ? void 0 : _b.opacity : 1;
186
- var endX = typeof ((_c = state_1.toPageEnd) === null || _c === void 0 ? void 0 : _c.x) === 'number' ? (_d = state_1.toPageEnd) === null || _d === void 0 ? void 0 : _d.x : 0;
187
- var endY = typeof ((_e = state_1.toPageEnd) === null || _e === void 0 ? void 0 : _e.y) === 'number' ? (_f = state_1.toPageEnd) === null || _f === void 0 ? void 0 : _f.y : 0;
188
- var endWidth = typeof ((_g = state_1.toPageEnd) === null || _g === void 0 ? void 0 : _g.width) === 'number' ? (_h = state_1.toPageEnd) === null || _h === void 0 ? void 0 : _h.width : Screen.mainScreen.widthDIPs;
189
- var endHeight = typeof ((_j = state_1.toPageEnd) === null || _j === void 0 ? void 0 : _j.height) === 'number' ? (_k = state_1.toPageEnd) === null || _k === void 0 ? void 0 : _k.height : Screen.mainScreen.heightDIPs;
347
+ owner.presented.view.alpha = isNumber(props === null || props === void 0 ? void 0 : props.opacity) ? props === null || props === void 0 ? void 0 : props.opacity : 1;
348
+ var endX = isNumber(props === null || props === void 0 ? void 0 : props.x) ? props === null || props === void 0 ? void 0 : props.x : 0;
349
+ var endY = isNumber(props === null || props === void 0 ? void 0 : props.y) ? props === null || props === void 0 ? void 0 : props.y : 0;
350
+ var endWidth = isNumber(props === null || props === void 0 ? void 0 : props.width) ? props === null || props === void 0 ? void 0 : props.width : Screen.mainScreen.widthDIPs;
351
+ var endHeight = isNumber(props === null || props === void 0 ? void 0 : props.height) ? props === null || props === void 0 ? void 0 : props.height : Screen.mainScreen.heightDIPs;
190
352
  owner.presented.view.frame = CGRectMake(endX, endY, endWidth, endHeight);
191
- updateFramePresent_1();
192
- }, function () {
193
- cleanupPresent_1();
194
- });
353
+ };
354
+ if (isNumber(toProps === null || toProps === void 0 ? void 0 : toProps.duration)) {
355
+ // override spring and use only linear animation
356
+ UIView.animateWithDurationAnimationsCompletion((toProps === null || toProps === void 0 ? void 0 : toProps.duration) / 1000, function () {
357
+ animateProperties_1();
358
+ updateFramePresent_1();
359
+ }, function () {
360
+ cleanupPresent_1();
361
+ });
362
+ }
363
+ else {
364
+ var spring = toProps === null || toProps === void 0 ? void 0 : toProps.spring;
365
+ iOSNativeHelper.animateWithSpring({
366
+ tension: isNumber(spring === null || spring === void 0 ? void 0 : spring.tension) ? spring === null || spring === void 0 ? void 0 : spring.tension : DEFAULT_SPRING.tension,
367
+ friction: isNumber(spring === null || spring === void 0 ? void 0 : spring.friction) ? spring === null || spring === void 0 ? void 0 : spring.tension : DEFAULT_SPRING.friction,
368
+ animations: function () {
369
+ animateProperties_1();
370
+ updateFramePresent_1();
371
+ },
372
+ completion: function () {
373
+ cleanupPresent_1();
374
+ },
375
+ });
376
+ }
195
377
  break;
196
378
  }
197
379
  case SharedTransitionAnimationType.dismiss: {
198
- console.log('-- Transition dismiss --');
380
+ // console.log('-- Transition dismiss --');
199
381
  // console.log('transitionContext.containerView.subviews.count:', transitionContext.containerView.subviews.count);
200
- console.log(' ');
201
- console.log("1. Dismiss sharedTransitionTags to animate:", owner.sharedElements.presented.map(function (p) { return p.view.sharedTransitionTag; }));
202
- console.log("2. Add back previously stored sharedElements to dismiss:");
203
- for (var _r = 0, _s = owner.sharedElements.presented; _r < _s.length; _r++) {
204
- var p = _s[_r];
382
+ if (SharedTransition.DEBUG) {
383
+ console.log(' ModalTransition: Dismiss');
384
+ console.log("1. Dismiss sharedTransitionTags to animate:", owner.sharedElements.presented.map(function (p) { return p.view.sharedTransitionTag; }));
385
+ console.log("2. Add back previously stored sharedElements to dismiss:");
386
+ }
387
+ for (var _b = 0, _c = owner.sharedElements.presented; _b < _c.length; _b++) {
388
+ var p = _c[_b];
205
389
  p.view.opacity = 0;
206
390
  }
207
- for (var _t = 0, _u = owner.sharedElements.presenting; _t < _u.length; _t++) {
208
- var p = _u[_t];
391
+ for (var _d = 0, _e = owner.sharedElements.presenting; _d < _e.length; _d++) {
392
+ var p = _e[_d];
209
393
  p.snapshot.alpha = p.endOpacity;
210
394
  transitionContext.containerView.addSubview(p.snapshot);
211
395
  }
@@ -218,28 +402,51 @@ var ModalTransitionController = /** @class */ (function (_super) {
218
402
  transitionContext.completeTransition(true);
219
403
  };
220
404
  var updateFrameDismiss_1 = function () {
221
- console.log('3. Dismissing shared elements:');
405
+ if (SharedTransition.DEBUG) {
406
+ console.log('3. Dismissing shared elements:');
407
+ }
222
408
  for (var _i = 0, _a = owner.sharedElements.presenting; _i < _a.length; _i++) {
223
409
  var presenting = _a[_i];
224
- iosMatchLayerProperties(presenting.snapshot, presenting.view.ios);
410
+ iOSNativeHelper.copyLayerProperties(presenting.snapshot, presenting.view.ios);
225
411
  presenting.snapshot.frame = presenting.startFrame;
226
412
  presenting.snapshot.alpha = presenting.startOpacity;
227
- console.log("---> ".concat(presenting.view.sharedTransitionTag, " animate to: "), iosPrintRect(presenting.startFrame));
413
+ if (SharedTransition.DEBUG) {
414
+ console.log("---> ".concat(presenting.view.sharedTransitionTag, " animate to: "), iOSNativeHelper.printCGRect(presenting.startFrame));
415
+ }
228
416
  }
229
- console.log(' ');
230
417
  };
231
- UIView.animateWithDurationDelayUsingSpringWithDampingInitialSpringVelocityOptionsAnimationsCompletion(typeof ((_o = state_1.fromPageEnd) === null || _o === void 0 ? void 0 : _o.duration) === 'number' ? ((_p = state_1.fromPageEnd) === null || _p === void 0 ? void 0 : _p.duration) / 1000 : DEFAULT_DURATION, 0, 0.5, 3, UIViewAnimationOptions.CurveEaseInOut, function () {
232
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
233
- owner.presented.view.alpha = typeof ((_a = state_1.fromPageEnd) === null || _a === void 0 ? void 0 : _a.opacity) === 'number' ? (_b = state_1.fromPageEnd) === null || _b === void 0 ? void 0 : _b.opacity : 0;
234
- var endX = typeof ((_c = state_1.fromPageEnd) === null || _c === void 0 ? void 0 : _c.x) === 'number' ? (_d = state_1.fromPageEnd) === null || _d === void 0 ? void 0 : _d.x : 0;
235
- var endY = typeof ((_e = state_1.fromPageEnd) === null || _e === void 0 ? void 0 : _e.y) === 'number' ? (_f = state_1.fromPageEnd) === null || _f === void 0 ? void 0 : _f.y : Screen.mainScreen.heightDIPs;
236
- var endWidth = typeof ((_g = state_1.fromPageEnd) === null || _g === void 0 ? void 0 : _g.width) === 'number' ? (_h = state_1.fromPageEnd) === null || _h === void 0 ? void 0 : _h.width : Screen.mainScreen.widthDIPs;
237
- var endHeight = typeof ((_j = state_1.fromPageEnd) === null || _j === void 0 ? void 0 : _j.height) === 'number' ? (_k = state_1.fromPageEnd) === null || _k === void 0 ? void 0 : _k.height : Screen.mainScreen.heightDIPs;
418
+ var props_1 = state_1.fromPageEnd;
419
+ var animateProperties_2 = function () {
420
+ owner.presented.view.alpha = isNumber(props_1 === null || props_1 === void 0 ? void 0 : props_1.opacity) ? props_1 === null || props_1 === void 0 ? void 0 : props_1.opacity : 0;
421
+ var endX = isNumber(props_1 === null || props_1 === void 0 ? void 0 : props_1.x) ? props_1 === null || props_1 === void 0 ? void 0 : props_1.x : 0;
422
+ var endY = isNumber(props_1 === null || props_1 === void 0 ? void 0 : props_1.y) ? props_1 === null || props_1 === void 0 ? void 0 : props_1.y : Screen.mainScreen.heightDIPs;
423
+ var endWidth = isNumber(props_1 === null || props_1 === void 0 ? void 0 : props_1.width) ? props_1 === null || props_1 === void 0 ? void 0 : props_1.width : Screen.mainScreen.widthDIPs;
424
+ var endHeight = isNumber(props_1 === null || props_1 === void 0 ? void 0 : props_1.height) ? props_1 === null || props_1 === void 0 ? void 0 : props_1.height : Screen.mainScreen.heightDIPs;
238
425
  owner.presented.view.frame = CGRectMake(endX, endY, endWidth, endHeight);
239
- updateFrameDismiss_1();
240
- }, function () {
241
- cleanupDismiss_1();
242
- });
426
+ };
427
+ if (isNumber(props_1 === null || props_1 === void 0 ? void 0 : props_1.duration)) {
428
+ // override spring and use only linear animation
429
+ UIView.animateWithDurationAnimationsCompletion((props_1 === null || props_1 === void 0 ? void 0 : props_1.duration) / 1000, function () {
430
+ animateProperties_2();
431
+ updateFrameDismiss_1();
432
+ }, function () {
433
+ cleanupDismiss_1();
434
+ });
435
+ }
436
+ else {
437
+ var spring = props_1 === null || props_1 === void 0 ? void 0 : props_1.spring;
438
+ iOSNativeHelper.animateWithSpring({
439
+ tension: isNumber(spring === null || spring === void 0 ? void 0 : spring.tension) ? spring === null || spring === void 0 ? void 0 : spring.tension : DEFAULT_SPRING.tension,
440
+ friction: isNumber(spring === null || spring === void 0 ? void 0 : spring.friction) ? spring === null || spring === void 0 ? void 0 : spring.tension : DEFAULT_SPRING.friction,
441
+ animations: function () {
442
+ animateProperties_2();
443
+ updateFrameDismiss_1();
444
+ },
445
+ completion: function () {
446
+ cleanupDismiss_1();
447
+ },
448
+ });
449
+ }
243
450
  break;
244
451
  }
245
452
  }
@@ -1 +1 @@
1
- {"version":3,"file":"modal-transition.ios.js","sourceRoot":"","sources":["../../../../../packages/core/ui/transition/modal-transition.ios.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAExG,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAS9C,sBAAsB,CAAC,SAA2B,EAAE,UAA4B,EAAE,MAAwB;QACzG,IAAI,CAAC,oBAAoB,GAAG,yBAAyB,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,yCAAyC;QACzC,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAClC,CAAC;IAED,sBAAsB,CAAC,SAA2B;QACjD,IAAI,CAAC,oBAAoB,GAAG,yBAAyB,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAClC,CAAC;IAED,qBAAqB,CAAC,QAA+C;QACpE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uBAAuB,CAAC,QAA+C;QACtE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,0BAA0B,CAAC,SAA2B,EAAE,UAA4B,EAAE,MAAwB;QAC7G,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
1
+ {"version":3,"file":"modal-transition.ios.js","sourceRoot":"","sources":["../../../../../packages/core/ui/transition/modal-transition.ios.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { BackstackEntry } from '../frame';
2
- import { Transition } from '.';
3
- export declare class PageTransition extends Transition {
4
- createAndroidAnimator(transitionType: string): void;
5
- test(fragmentTransaction: androidx.fragment.app.FragmentTransaction, currentEntry: BackstackEntry, newEntry: BackstackEntry): void;
2
+ import { FadeTransition } from './fade-transition';
3
+ export declare class PageTransition extends FadeTransition {
4
+ constructor(duration?: number, curve?: any);
5
+ androidFragmentTransactionCallback(fragmentTransaction: androidx.fragment.app.FragmentTransaction, currentEntry: BackstackEntry, newEntry: BackstackEntry): void;
6
6
  }
@@ -1,54 +1,65 @@
1
- import { Transition } from '.';
1
+ import { FadeTransition } from './fade-transition';
2
2
  import { SharedTransition } from './shared-transition';
3
- export class PageTransition extends Transition {
4
- createAndroidAnimator(transitionType) {
5
- console.log('HELLO PageTransition', transitionType);
3
+ var CustomInterpolator = /** @class */ (function (_super) {
4
+ __extends(CustomInterpolator, _super);
5
+ function CustomInterpolator() {
6
+ return _super !== null && _super.apply(this, arguments) || this;
6
7
  }
7
- test(fragmentTransaction, currentEntry, newEntry) {
8
- console.log('HELLO PageTransition', fragmentTransaction);
8
+ CustomInterpolator.prototype.getInterpolation = function (input) {
9
+ // HACK: we speed up the interpolation by 10% to fix the issue with the transition not being finished
10
+ // and the views shifting from their intended final position...
11
+ // this is really just a hack and should be fixed properly once we
12
+ // can figure out the root cause of the issue.
13
+ var res = _super.prototype.getInterpolation.call(this, input) * 1.1;
14
+ if (res > 1) {
15
+ return float(1);
16
+ }
17
+ return float(res);
18
+ };
19
+ return CustomInterpolator;
20
+ }(android.view.animation.AnticipateOvershootInterpolator));
21
+ function setTransitionName(view) {
22
+ if (!view.sharedTransitionTag) {
23
+ return;
24
+ }
25
+ try {
26
+ androidx.core.view.ViewCompat.setTransitionName(view.nativeView, view.sharedTransitionTag);
27
+ }
28
+ catch (err) {
29
+ // ignore
30
+ }
31
+ }
32
+ export class PageTransition extends FadeTransition {
33
+ constructor(duration, curve) {
34
+ // disable custom curves until we can fix the issue with the animation not completing
35
+ if (curve) {
36
+ console.warn('PageTransition does not support custom curves at the moment. The passed in curve will be ignored.');
37
+ }
38
+ super(duration);
39
+ }
40
+ androidFragmentTransactionCallback(fragmentTransaction, currentEntry, newEntry) {
9
41
  const fromPage = currentEntry.resolvedPage;
10
42
  const toPage = newEntry.resolvedPage;
11
- const currentFragment = currentEntry ? currentEntry.fragment : null;
12
43
  const newFragment = newEntry.fragment;
13
- const { sharedElements, presented, presenting } = SharedTransition.getSharedElements(fromPage, toPage);
14
- // fragmentTransaction.addSharedElement();
15
- toPage.on('loaded', () => {
16
- presented.forEach((v) => {
17
- console.log({
18
- presentedSharedElements: true,
19
- nativeView: !!v.nativeView,
20
- sharedTransitionTag: v.sharedTransitionTag,
21
- });
22
- androidx.core.view.ViewCompat.setTransitionName(v.nativeView, v.sharedTransitionTag);
23
- });
24
- // setTimeout(() => {
44
+ const { presented, presenting } = SharedTransition.getSharedElements(fromPage, toPage);
45
+ toPage.once('loaded', () => {
46
+ presented.forEach(setTransitionName);
25
47
  newFragment.startPostponedEnterTransition();
26
- // }, 2000)
27
- });
28
- presenting.forEach((v) => {
29
- console.log({
30
- presentingSharedElements: true,
31
- nativeView: !!v.nativeView,
32
- sharedTransitionTag: v.sharedTransitionTag,
33
- });
34
- androidx.core.view.ViewCompat.setTransitionName(v.nativeView, v.sharedTransitionTag);
35
48
  });
36
49
  presenting.forEach((v) => {
50
+ setTransitionName(v);
37
51
  fragmentTransaction.addSharedElement(v.nativeView, v.sharedTransitionTag);
38
52
  });
39
53
  fragmentTransaction.setReorderingAllowed(true);
40
54
  const transitionSet = new androidx.transition.TransitionSet();
41
- transitionSet.setDuration(2000);
55
+ transitionSet.setDuration(this.getDuration());
42
56
  transitionSet.addTransition(new androidx.transition.ChangeBounds());
43
57
  transitionSet.addTransition(new androidx.transition.ChangeTransform());
44
- // transitionSet.addTransition(new androidx.transition.ChangeClipBounds());
58
+ transitionSet.setInterpolator(new CustomInterpolator());
45
59
  // postpone enter until we call "loaded" on the new page
46
60
  newFragment.postponeEnterTransition();
47
61
  newFragment.setSharedElementEnterTransition(transitionSet);
48
62
  newFragment.setSharedElementReturnTransition(transitionSet);
49
- // newFragment.setSharedElementReturnTransition(new androidx.transition.ChangeBounds());
50
- // currentFragment.setSharedElementEnterTransition(new androidx.transition.ChangeBounds());
51
- // currentFragment.setSharedElementReturnTransition(new androidx.transition.ChangeBounds());
52
63
  }
53
64
  }
54
65
  //# sourceMappingURL=page-transition.android.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-transition.android.js","sourceRoot":"","sources":["../../../../../packages/core/ui/transition/page-transition.android.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,OAAO,cAAe,SAAQ,UAAU;IAC7C,qBAAqB,CAAC,cAAsB;QAC3C,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,mBAA8D,EAAE,YAA4B,EAAE,QAAwB;QAC1H,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC;QAErC,MAAM,eAAe,GAAmC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACpG,MAAM,WAAW,GAAmC,QAAQ,CAAC,QAAQ,CAAC;QAEtE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvG,0CAA0C;QAE1C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,OAAO,CAAC,GAAG,CAAC;oBACX,uBAAuB,EAAE,IAAI;oBAC7B,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;oBAC1B,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;iBAC1C,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;YAEH,qBAAqB;YACrB,WAAW,CAAC,6BAA6B,EAAE,CAAC;YAC5C,WAAW;QACZ,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC;gBACX,wBAAwB,EAAE,IAAI;gBAC9B,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC1B,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;aAC1C,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAC9D,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,aAAa,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;QACpE,aAAa,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;QACvE,2EAA2E;QAE3E,wDAAwD;QACxD,WAAW,CAAC,uBAAuB,EAAE,CAAC;QAEtC,WAAW,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;QAC3D,WAAW,CAAC,gCAAgC,CAAC,aAAa,CAAC,CAAC;QAE5D,wFAAwF;QACxF,2FAA2F;QAC3F,4FAA4F;IAC7F,CAAC;CACD"}
1
+ {"version":3,"file":"page-transition.android.js","sourceRoot":"","sources":["../../../../../packages/core/ui/transition/page-transition.android.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;AAmBvD,SAAS,iBAAiB,CAAC,IAAc;IACxC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;QAC9B,OAAO;KACP;IACD,IAAI;QACH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;KAC3F;IAAC,OAAO,GAAG,EAAE;QACb,SAAS;KACT;AACF,CAAC;AAED,MAAM,OAAO,cAAe,SAAQ,cAAc;IACjD,YAAY,QAAiB,EAAE,KAAW;QACzC,qFAAqF;QACrF,IAAI,KAAK,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,mGAAmG,CAAC,CAAC;SAClH;QACD,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjB,CAAC;IAED,kCAAkC,CAAC,mBAA8D,EAAE,YAA4B,EAAE,QAAwB;QACxJ,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC;QACrC,MAAM,WAAW,GAAmC,QAAQ,CAAC,QAAQ,CAAC;QAEtE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEvF,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC1B,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACrC,WAAW,CAAC,6BAA6B,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrB,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAC9D,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9C,aAAa,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;QACpE,aAAa,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;QACvE,aAAa,CAAC,eAAe,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;QAExD,wDAAwD;QACxD,WAAW,CAAC,uBAAuB,EAAE,CAAC;QACtC,WAAW,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;QAC3D,WAAW,CAAC,gCAAgC,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC;CACD"}