@nativescript-community/ui-bottomsheet 0.0.0-stage → 1.0.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.
package/index.ios.d.ts ADDED
@@ -0,0 +1,57 @@
1
+ import { View } from '@nativescript/core';
2
+ import { BottomSheetOptions } from './index-common';
3
+ import { ViewWithBottomSheetBase } from './index-common';
4
+ export { ViewWithBottomSheetBase } from './index-common';
5
+ /**
6
+ * iOS: native UISheetPresentationController (iOS 15+, custom detents for iOS 16+).
7
+ * Supported: peekHeight, skipCollapsedState, dismissOnBackgroundTap/dismissOnDraggingDownSheet, canTouchBehind,
8
+ * disableDimBackground, transparent, backgroundOpacity, ignoreTopSafeArea/ignoreBottomSafeArea, onChangeState (COLLAPSED/EXPANDED/CLOSED).
9
+ * No-op: continuous DRAGGING state, ignoreKeyboardHeight, trackingScrollView (UIKit tracks the scrolling content by itself).
10
+ * UIKit does not allow to dismiss on background tap and on dragging independently: if one is disabled, both are.
11
+ */
12
+ declare class SheetDelegateImpl extends NSObject {
13
+ static ObjCProtocols: {
14
+ prototype: UISheetPresentationControllerDelegate;
15
+ }[];
16
+ _owner: WeakRef<ViewWithBottomSheet>;
17
+ static initWithOwner(owner: ViewWithBottomSheet): SheetDelegateImpl;
18
+ sheetPresentationControllerDidChangeSelectedDetentIdentifier(sheet: UISheetPresentationController): void;
19
+ presentationControllerShouldDismiss(presentationController: UIPresentationController): boolean;
20
+ presentationControllerDidAttemptToDismiss(presentationController: UIPresentationController): void;
21
+ presentationControllerDidDismiss(presentationController: UIPresentationController): void;
22
+ }
23
+ /**
24
+ * With an undimmed detent UIKit has no dimming view, so there is no tap outside to dismiss the sheet: this recognizer replaces it
25
+ */
26
+ declare class OutsideTapTarget extends NSObject {
27
+ _owner: WeakRef<ViewWithBottomSheet>;
28
+ static initWithOwner(owner: ViewWithBottomSheet): OutsideTapTarget;
29
+ outsideTapped(): void;
30
+ static ObjCExposedMethods: {
31
+ outsideTapped: {
32
+ returns: interop.Type<void>;
33
+ params: any[];
34
+ };
35
+ };
36
+ }
37
+ export declare class ViewWithBottomSheet extends ViewWithBottomSheetBase {
38
+ bottomSheetDelegate: SheetDelegateImpl;
39
+ _detentIds: string[];
40
+ _onDetentChange: (index: number) => void;
41
+ _onWillDismiss: () => boolean | void;
42
+ _onDismissAttempt: () => void;
43
+ _outsideTapRecognizer: UITapGestureRecognizer;
44
+ _outsideTapTarget: OutsideTapTarget;
45
+ _outsideTapView: UIView;
46
+ _onOutsideTap(): void;
47
+ bottomSheetController: UIViewController;
48
+ protected _showNativeBottomSheet(parent: View, options: BottomSheetOptions): void;
49
+ private configureSheet;
50
+ setBottomSheetDetentIndex(index: number, animated?: boolean): void;
51
+ getBottomSheetDetentIndex(): number;
52
+ _bottomSheetClosed(): void;
53
+ protected _hideNativeBottomSheet(parent: View, whenClosedCallback: () => void): void;
54
+ _unloadBottomSheet(): void;
55
+ }
56
+ export declare function overrideBottomSheet(): void;
57
+ export declare function install(): void;
package/index.ios.js ADDED
@@ -0,0 +1,310 @@
1
+ import { Application, Page, Trace, Utils, View, fromObject } from '@nativescript/core';
2
+ import { applyMixins } from '@nativescript-community/ui-core';
3
+ import { StateBottomSheet, ViewWithBottomSheetBase } from './index-common';
4
+ import { MDLayoutViewController, getPresentingController } from './ios-layout';
5
+ export { ViewWithBottomSheetBase } from './index-common';
6
+ const majorVersion = Utils.ios.MajorVersion;
7
+ const CONTENT_DETENT = 'content';
8
+ const PEEK_DETENT = 'peek';
9
+ const LARGE_DETENT = 'large';
10
+ var SheetDelegateImpl = /** @class */ (function (_super) {
11
+ __extends(SheetDelegateImpl, _super);
12
+ function SheetDelegateImpl() {
13
+ return _super !== null && _super.apply(this, arguments) || this;
14
+ }
15
+ SheetDelegateImpl.initWithOwner = function (owner) {
16
+ var delegate = SheetDelegateImpl.new();
17
+ delegate._owner = new WeakRef(owner);
18
+ return delegate;
19
+ };
20
+ SheetDelegateImpl.prototype.sheetPresentationControllerDidChangeSelectedDetentIdentifier = function (sheet) {
21
+ var _a;
22
+ var owner = this._owner.get();
23
+ if (owner === null || owner === void 0 ? void 0 : owner._onChangeStateBottomSheetCallback) {
24
+ owner._onChangeStateBottomSheetCallback(sheet.selectedDetentIdentifier === LARGE_DETENT || sheet.selectedDetentIdentifier === CONTENT_DETENT ? StateBottomSheet.EXPANDED : StateBottomSheet.COLLAPSED);
25
+ }
26
+ (_a = owner === null || owner === void 0 ? void 0 : owner._onDetentChange) === null || _a === void 0 ? void 0 : _a.call(owner, owner.getBottomSheetDetentIndex());
27
+ };
28
+ SheetDelegateImpl.prototype.presentationControllerShouldDismiss = function (presentationController) {
29
+ var owner = this._owner.get();
30
+ return (owner === null || owner === void 0 ? void 0 : owner._onWillDismiss) ? owner._onWillDismiss() !== false : true;
31
+ };
32
+ SheetDelegateImpl.prototype.presentationControllerDidAttemptToDismiss = function (presentationController) {
33
+ var _a, _b;
34
+ (_b = (_a = this._owner.get()) === null || _a === void 0 ? void 0 : _a._onDismissAttempt) === null || _b === void 0 ? void 0 : _b.call(_a);
35
+ };
36
+ SheetDelegateImpl.prototype.presentationControllerDidDismiss = function (presentationController) {
37
+ var _a;
38
+ // called when dismissed by the user (dragging down or background tap)
39
+ var owner = this._owner.get();
40
+ if (owner) {
41
+ (_a = owner._onChangeStateBottomSheetCallback) === null || _a === void 0 ? void 0 : _a.call(owner, StateBottomSheet.CLOSED);
42
+ owner._unloadBottomSheet();
43
+ }
44
+ };
45
+ SheetDelegateImpl.ObjCProtocols = [UISheetPresentationControllerDelegate];
46
+ return SheetDelegateImpl;
47
+ }(NSObject));
48
+ var OutsideTapTarget = /** @class */ (function (_super) {
49
+ __extends(OutsideTapTarget, _super);
50
+ function OutsideTapTarget() {
51
+ return _super !== null && _super.apply(this, arguments) || this;
52
+ }
53
+ OutsideTapTarget.initWithOwner = function (owner) {
54
+ var target = OutsideTapTarget.new();
55
+ target._owner = new WeakRef(owner);
56
+ return target;
57
+ };
58
+ OutsideTapTarget.prototype.outsideTapped = function () {
59
+ var _a;
60
+ (_a = this._owner.get()) === null || _a === void 0 ? void 0 : _a._onOutsideTap();
61
+ };
62
+ OutsideTapTarget.ObjCExposedMethods = {
63
+ outsideTapped: { returns: interop.types.void, params: [] }
64
+ };
65
+ return OutsideTapTarget;
66
+ }(NSObject));
67
+ export class ViewWithBottomSheet extends ViewWithBottomSheetBase {
68
+ constructor() {
69
+ super(...arguments);
70
+ this._detentIds = [];
71
+ }
72
+ _onOutsideTap() {
73
+ const sheet = this.bottomSheetController?.sheetPresentationController;
74
+ const undimmedId = sheet?.largestUndimmedDetentIdentifier;
75
+ // the system dimming view handles the taps at the larger detents
76
+ if (undimmedId && sheet.selectedDetentIdentifier !== undimmedId && this._detentIds.indexOf(sheet.selectedDetentIdentifier) > this._detentIds.indexOf(undimmedId)) {
77
+ return;
78
+ }
79
+ if (this._onWillDismiss?.() === false) {
80
+ this._onDismissAttempt?.();
81
+ return;
82
+ }
83
+ this.closeBottomSheet();
84
+ }
85
+ _showNativeBottomSheet(parent, options) {
86
+ options.context = options.context || {};
87
+ let rootView = Application.getRootView();
88
+ if (rootView.parent) {
89
+ rootView = rootView.parent;
90
+ }
91
+ let currentView = parent.page || rootView;
92
+ currentView = currentView.modal || currentView;
93
+ const parentController = getPresentingController(parent);
94
+ if (!parentController.view || !parentController.view.window) {
95
+ Trace.write('Parent page is not part of the window hierarchy.', Trace.categories.ViewHierarchy, Trace.messageType.error);
96
+ return;
97
+ }
98
+ this.parent = Application.getRootView();
99
+ // dirty trick for RADSideDrawer. as we set parent for css variables/classes, _setupAsRootView
100
+ // will call _addViewToNativeVisualTree which breaks the bottomSheet with RADSiderDrawer
101
+ // so we disable _addViewToNativeVisualTree for _setupAsRootView
102
+ const oldAddViewToNativeVisualTree = this.parent._addViewToNativeVisualTree;
103
+ this.parent._addViewToNativeVisualTree = () => false;
104
+ this._setupAsRootView({});
105
+ this.parent._addViewToNativeVisualTree = oldAddViewToNativeVisualTree;
106
+ this._commonShowNativeBottomSheet(currentView, options);
107
+ let controller = this.viewController;
108
+ if (!controller) {
109
+ const nativeView = this.ios || this.nativeViewProtected;
110
+ controller = MDLayoutViewController.initWithOwner(this);
111
+ controller.ignoreBottomSafeArea = options.ignoreBottomSafeArea !== undefined ? options.ignoreBottomSafeArea : false;
112
+ controller.ignoreTopSafeArea = options.ignoreTopSafeArea !== undefined ? options.ignoreTopSafeArea : true;
113
+ if (nativeView instanceof UIView) {
114
+ controller.view.addSubview(nativeView);
115
+ }
116
+ this.viewController = controller; // store the viewController so that safeArea overflow is applied correctly
117
+ }
118
+ this._raiseShowingBottomSheetEvent();
119
+ this.bottomSheetController = controller;
120
+ controller.modalPresentationStyle = 1 /* UIModalPresentationStyle.PageSheet */;
121
+ const sheet = controller.sheetPresentationController;
122
+ if (sheet) {
123
+ this.configureSheet(sheet, controller, options, parentController);
124
+ }
125
+ controller.nsAnimated = true;
126
+ parentController.presentViewControllerAnimatedCompletion(controller, true, null);
127
+ if (options.transparent === true) {
128
+ controller.view.backgroundColor = UIColor.clearColor;
129
+ }
130
+ else {
131
+ if (!(this instanceof Page)) {
132
+ controller.view.backgroundColor = UIColor.systemBackgroundColor;
133
+ }
134
+ if (options.backgroundOpacity && controller.view.backgroundColor) {
135
+ controller.view.backgroundColor = controller.view.backgroundColor.colorWithAlphaComponent(options.backgroundOpacity);
136
+ }
137
+ }
138
+ const transitionCoordinator = controller.transitionCoordinator;
139
+ if (transitionCoordinator) {
140
+ UIViewControllerTransitionCoordinator.prototype.animateAlongsideTransitionCompletion.call(transitionCoordinator, null, () => {
141
+ this.bindingContext = fromObject(options.context);
142
+ this._raiseShownBottomSheetEvent();
143
+ });
144
+ }
145
+ else {
146
+ this.bindingContext = fromObject(options.context);
147
+ this._raiseShownBottomSheetEvent();
148
+ }
149
+ }
150
+ configureSheet(sheet, controller, options, parentController) {
151
+ const large = UISheetPresentationControllerDetent.largeDetent();
152
+ const detentIds = [];
153
+ this._onDetentChange = options.onDetentChange;
154
+ this._onWillDismiss = options.onWillDismiss;
155
+ this._onDismissAttempt = options.onDismissAttempt;
156
+ if (majorVersion >= 16) {
157
+ // the sheet follows the size of its content (measured in MDLayoutViewController)
158
+ const contentHeight = () => controller.preferredContentSize.height || Utils.layout.toDeviceIndependentPixels(0);
159
+ const detents = [];
160
+ const peekHeight = options.peekHeight;
161
+ if (options.detents?.length) {
162
+ options.detents.forEach((detent, index) => {
163
+ const id = `detent-${index}`;
164
+ detents.push(UISheetPresentationControllerDetent.customDetentWithIdentifierResolver(id, (context) => {
165
+ const max = context.maximumDetentValue;
166
+ let height;
167
+ if (detent === 'large') {
168
+ height = max;
169
+ }
170
+ else if (detent === 'medium') {
171
+ height = max / 2;
172
+ }
173
+ else if (detent === 'content') {
174
+ height = contentHeight() || max;
175
+ }
176
+ else if (typeof detent === 'number') {
177
+ height = detent;
178
+ }
179
+ else {
180
+ height = detent.fraction * max;
181
+ }
182
+ return Math.min(height, max);
183
+ }));
184
+ detentIds.push(id);
185
+ });
186
+ }
187
+ else if (peekHeight && options.skipCollapsedState !== true) {
188
+ detents.push(UISheetPresentationControllerDetent.customDetentWithIdentifierResolver(PEEK_DETENT, (context) => Math.min(peekHeight, context.maximumDetentValue)));
189
+ detentIds.push(PEEK_DETENT);
190
+ }
191
+ if (!options.detents?.length) {
192
+ detents.push(UISheetPresentationControllerDetent.customDetentWithIdentifierResolver(CONTENT_DETENT, (context) => {
193
+ const height = contentHeight();
194
+ return height > 0 ? Math.min(height, context.maximumDetentValue) : context.maximumDetentValue;
195
+ }));
196
+ detentIds.push(CONTENT_DETENT);
197
+ }
198
+ sheet.detents = NSArray.arrayWithArray(detents);
199
+ if (options.detents?.length) {
200
+ sheet.selectedDetentIdentifier = detentIds[Math.min(options.initialDetentIndex || 0, detentIds.length - 1)];
201
+ }
202
+ // update the detent once the content is measured
203
+ controller.onLayoutCallback = () => {
204
+ sheet.invalidateDetents();
205
+ };
206
+ }
207
+ else {
208
+ // iOS 15: only system detents
209
+ sheet.detents = NSArray.arrayWithArray([options.skipCollapsedState || !options.peekHeight ? large : UISheetPresentationControllerDetent.mediumDetent(), large]);
210
+ detentIds.push(LARGE_DETENT);
211
+ }
212
+ this._detentIds = detentIds;
213
+ sheet.prefersGrabberVisible = options.grabber !== false;
214
+ sheet.prefersScrollingExpandsWhenScrolledToEdge = options.scrollExpands !== false;
215
+ sheet.prefersEdgeAttachedInCompactHeight = options.edgeAttachedInCompactHeight === true;
216
+ sheet.widthFollowsPreferredContentSizeWhenEdgeAttached = true;
217
+ if (options.cornerRadius !== undefined) {
218
+ sheet.preferredCornerRadius = options.cornerRadius;
219
+ }
220
+ if (options.largestUndimmedDetentIndex !== undefined && detentIds[options.largestUndimmedDetentIndex]) {
221
+ sheet.largestUndimmedDetentIdentifier = detentIds[options.largestUndimmedDetentIndex];
222
+ if (options.canTouchBehind !== true && options.dismissOnBackgroundTap !== false) {
223
+ // tap outside dismisses, the touch is not given to the content behind
224
+ const view = parentController?.view;
225
+ if (view) {
226
+ this._outsideTapTarget = OutsideTapTarget.initWithOwner(this);
227
+ this._outsideTapRecognizer = UITapGestureRecognizer.alloc().initWithTargetAction(this._outsideTapTarget, 'outsideTapped');
228
+ this._outsideTapRecognizer.cancelsTouchesInView = true;
229
+ view.addGestureRecognizer(this._outsideTapRecognizer);
230
+ this._outsideTapView = view;
231
+ }
232
+ }
233
+ }
234
+ else if (options.canTouchBehind === true || options.disableDimBackground === true) {
235
+ // no dimming at the biggest detent => touches go through to the content behind
236
+ sheet.largestUndimmedDetentIdentifier = detentIds[detentIds.length - 1];
237
+ }
238
+ if (options.dismissOnBackgroundTap === false || options.dismissOnDraggingDownSheet === false) {
239
+ controller.modalInPresentation = true;
240
+ }
241
+ this.bottomSheetDelegate = SheetDelegateImpl.initWithOwner(this);
242
+ sheet.delegate = this.bottomSheetDelegate;
243
+ }
244
+ setBottomSheetDetentIndex(index, animated = true) {
245
+ const sheet = this.bottomSheetController?.sheetPresentationController;
246
+ const id = this._detentIds[index];
247
+ if (!sheet || !id) {
248
+ return;
249
+ }
250
+ const apply = () => {
251
+ sheet.selectedDetentIdentifier = id;
252
+ };
253
+ animated ? sheet.animateChanges(apply) : apply();
254
+ }
255
+ getBottomSheetDetentIndex() {
256
+ const sheet = this.bottomSheetController?.sheetPresentationController;
257
+ return sheet ? this._detentIds.indexOf(sheet.selectedDetentIdentifier) : -1;
258
+ }
259
+ _bottomSheetClosed() {
260
+ // super already called we are just a mixin
261
+ if (this.bottomSheetController) {
262
+ const sheet = this.bottomSheetController.sheetPresentationController;
263
+ if (sheet) {
264
+ sheet.delegate = null;
265
+ }
266
+ this.bottomSheetController.onLayoutCallback = null;
267
+ this.bottomSheetController = null;
268
+ }
269
+ this.bottomSheetDelegate = null;
270
+ if (this._outsideTapRecognizer) {
271
+ this._outsideTapView?.removeGestureRecognizer(this._outsideTapRecognizer);
272
+ this._outsideTapRecognizer = null;
273
+ this._outsideTapTarget = null;
274
+ this._outsideTapView = null;
275
+ }
276
+ this._onDetentChange = null;
277
+ this._onWillDismiss = null;
278
+ this._onDismissAttempt = null;
279
+ // it is very important to clear the viewController as N does not do it
280
+ // and the destroy of the view from svelte could trigger a layout pass on the viewController
281
+ this.viewController = null;
282
+ }
283
+ _hideNativeBottomSheet(parent, whenClosedCallback) {
284
+ if (!this.viewController) {
285
+ // when dismissed by the user there is nothing to dismiss
286
+ whenClosedCallback?.();
287
+ return;
288
+ }
289
+ const parentController = getPresentingController(parent);
290
+ const animated = this.viewController.nsAnimated;
291
+ parentController.dismissViewControllerAnimatedCompletion(animated, whenClosedCallback);
292
+ }
293
+ _unloadBottomSheet() {
294
+ if (this.isLoaded) {
295
+ this.callUnloaded();
296
+ }
297
+ this._onDismissBottomSheetCallback && this._onDismissBottomSheetCallback();
298
+ }
299
+ }
300
+ let mixinInstalled = false;
301
+ export function overrideBottomSheet() {
302
+ applyMixins(View, [ViewWithBottomSheetBase, ViewWithBottomSheet]);
303
+ }
304
+ export function install() {
305
+ if (!mixinInstalled) {
306
+ mixinInstalled = true;
307
+ overrideBottomSheet();
308
+ }
309
+ }
310
+ //# sourceMappingURL=index.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../src/ui-bottomsheet/index.ios.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { View } from '@nativescript/core';
2
+ /**
3
+ * Finds the view controller from which a new sheet/dialog can be presented:
4
+ * the top most presented controller, ignoring alert controllers.
5
+ */
6
+ export declare function getPresentingController(parent: View, rootView?: View): UIViewController;
7
+ export declare class IMDLayoutViewController extends UIViewController {
8
+ _trackingScrollView: UIScrollView;
9
+ static new(): IMDLayoutViewController;
10
+ static alloc(): IMDLayoutViewController;
11
+ owner: WeakRef<View>;
12
+ nsAnimated: boolean;
13
+ ignoreBottomSafeArea: boolean;
14
+ ignoreTopSafeArea: boolean;
15
+ onLayoutCallback?: () => void;
16
+ }
17
+ export declare class MDLayoutViewController extends UIViewController {
18
+ owner: WeakRef<View>;
19
+ ignoreBottomSafeArea: boolean;
20
+ ignoreTopSafeArea: boolean;
21
+ nsAnimated: boolean;
22
+ _trackingScrollView: UIScrollView;
23
+ /**
24
+ * called after each layout pass, once preferredContentSize was updated
25
+ */
26
+ onLayoutCallback?: () => void;
27
+ static initWithOwner(owner: View): MDLayoutViewController;
28
+ viewDidLoad(): void;
29
+ viewWillLayoutSubviews(): void;
30
+ viewDidLayoutSubviews(): void;
31
+ viewWillAppear(animated: boolean): void;
32
+ viewDidDisappear(animated: boolean): void;
33
+ traitCollectionDidChange(previousTraitCollection: UITraitCollection): void;
34
+ }