UNPKG

@nativescript-community/ui-persistent-bottomsheet

Version:

NativeScript plugin that allows you to easily add a persistent bottomsheet to your projects.

155 lines 15.4 kB
import { Component, Directive, ElementRef, Inject, Input, NgModule, ViewContainerRef } from '@angular/core'; import { registerElement } from '@nativescript/angular'; import { PersistentBottomSheet } from '@nativescript-community/ui-persistent-bottomsheet'; import * as i0 from "@angular/core"; const _c0 = ["*"]; const BOTTOMSHEET = 'bottomSheet'; /** * This is the SideDrawer component. It separates your mobile app's screen * into a main part and a menu part whereby the menu part is shown upon a swipe * gesture using a transition effect. */ export class BottomSheetComponent { elementRef; viewContainer; pbs; bottomSheetTemplate; _gestureEnabled; _stepIndex; constructor(elementRef, viewContainer) { this.elementRef = elementRef; this.viewContainer = viewContainer; this.pbs = this.elementRef.nativeElement; } get nativeElement() { return this.pbs; } get gestureEnabled() { return this._gestureEnabled; } set gestureEnabled(value) { this._gestureEnabled = value; this.pbs.gestureEnabled = this._gestureEnabled; } get stepIndex() { return this._stepIndex; } set stepIndex(value) { if (!isNaN(value)) { this._stepIndex = value; this.pbs.stepIndex = this._stepIndex; } } get backdropColor() { return this.pbs.backdropColor; } set backdropColor(value) { this.pbs.backdropColor = value; } get scrollViewId() { return this.pbs.scrollViewId; } set scrollViewId(value) { this.pbs.scrollViewId = value; } get panGestureOptions() { return this.pbs.panGestureOptions; } set panGestureOptions(value) { this.pbs.panGestureOptions = value; } static ɵfac = function BottomSheetComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BottomSheetComponent)(i0.ɵɵdirectiveInject(ElementRef), i0.ɵɵdirectiveInject(ViewContainerRef)); }; static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BottomSheetComponent, selectors: [["BottomSheet"]], inputs: { gestureEnabled: "gestureEnabled", stepIndex: "stepIndex", backdropColor: "backdropColor", scrollViewId: "scrollViewId", panGestureOptions: "panGestureOptions" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function BottomSheetComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵprojectionDef(); i0.ɵɵprojection(0); } }, encapsulation: 2 }); } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetComponent, [{ type: Component, args: [{ selector: 'BottomSheet', template: '<ng-content></ng-content>' }] }], () => [{ type: i0.ElementRef, decorators: [{ type: Inject, args: [ElementRef] }] }, { type: i0.ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef] }] }], { gestureEnabled: [{ type: Input }], stepIndex: [{ type: Input }], backdropColor: [{ type: Input }], scrollViewId: [{ type: Input }], panGestureOptions: [{ type: Input }] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BottomSheetComponent, { className: "BottomSheetComponent", filePath: "module.ts", lineNumber: 22 }); })(); /** * Directive identifying the left drawer */ export class BottomSheetDirective { _elementRef; constructor(_elementRef) { this._elementRef = _elementRef; this._elementRef.nativeElement.id = BOTTOMSHEET; } static ɵfac = function BottomSheetDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BottomSheetDirective)(i0.ɵɵdirectiveInject(ElementRef)); }; static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BottomSheetDirective, selectors: [["", "bottomSheet", ""]] }); } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetDirective, [{ type: Directive, args: [{ selector: '[bottomSheet]' }] }], () => [{ type: i0.ElementRef, decorators: [{ type: Inject, args: [ElementRef] }] }], null); })(); const sbsMeta = { insertChild: (parent, child) => { const pbs = parent; const childView = child; if (childView.id === BOTTOMSHEET) { pbs.bottomSheet = childView; } else { pbs.addChild(childView); } }, removeChild: (parent, child) => { const pbs = parent; const childView = child; if (childView.id === BOTTOMSHEET) { pbs.bottomSheet = null; } else { pbs.removeChild(childView); } } }; /** * Directives identifying the Drawer. */ export const PERSISTENTBOTTOMSHEET_DIRECTIVES = [BottomSheetDirective]; registerElement('BottomSheet', () => PersistentBottomSheet, sbsMeta); /** * NgModule containing all of the RadSideDrawer directives. */ export class BottomSheetModule { static ɵfac = function BottomSheetModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BottomSheetModule)(); }; static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: BottomSheetModule }); static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({}); } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetModule, [{ type: NgModule, args: [{ declarations: [BottomSheetComponent, PERSISTENTBOTTOMSHEET_DIRECTIVES], exports: [BottomSheetComponent, PERSISTENTBOTTOMSHEET_DIRECTIVES] }] }], null, null); })(); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(BottomSheetModule, { declarations: [BottomSheetComponent, BottomSheetDirective], exports: [BottomSheetComponent, BottomSheetDirective] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3VpLXBlcnNpc3RlbnQtYm90dG9tc2hlZXQvYW5ndWxhci9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBdUIsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUF5QixlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7O0FBRTFGLE1BQU0sV0FBVyxHQUFXLGFBQWEsQ0FBQztBQVExQzs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLG9CQUFvQjtJQU9VO0lBQTBEO0lBTjFGLEdBQUcsQ0FBd0I7SUFDM0IsbUJBQW1CLENBQTBCO0lBRTVDLGVBQWUsQ0FBVTtJQUN6QixVQUFVLENBQVM7SUFFM0IsWUFBdUMsVUFBc0IsRUFBb0MsYUFBK0I7UUFBekYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFvQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDNUgsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFDSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUFjO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDbkQsQ0FBQztJQUNELElBQ0ksU0FBUztRQUNULE9B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LFNBQVMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0NBQ0osQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRXZFLGVBQWUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFckU7O0dBRUc7QUFLSCxNQUFNLE9BQU8saUJBQWlCOzJHQUFqQixpQkFBaUI7NERBQWpCLGlCQUFpQjs7O2lGQUFqQixpQkFBaUI7Y0FKN0IsUUFBUTtlQUFDO2dCQUNOLFlBQVksRUFBRSxDQUFDLG9CQUFvQixFQUFFLGdDQUFnQyxDQUFDO2dCQUN0RSxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxnQ0FBZ0MsQ0FBQzthQUNwRTs7d0ZBQ1ksaUJBQWlCLG1CQTdHakIsb0JBQW9CLEVBa0VwQixvQkFBb0IsYUFsRXBCLG9CQUFvQixFQWtFcEIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEVtYmVkZGVkVmlld1JlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBOZ01vZHVsZSwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdWaWV3LCBWaWV3Q2xhc3NNZXRhLCByZWdpc3RlckVsZW1lbnQgfSBmcm9tICdAbmF0aXZlc2NyaXB0L2FuZ3VsYXInO1xuaW1wb3J0IHsgUGVyc2lzdGVudEJvdHRvbVNoZWV0IH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC1jb21tdW5pdHkvdWktcGVyc2lzdGVudC1ib3R0b21zaGVldCc7XG5cbmNvbnN0IEJPVFRPTVNIRUVUOiBzdHJpbmcgPSAnYm90dG9tU2hlZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1FdmVudEFyZ3Mge1xuICAgIG9iamVjdDogYW55O1xuICAgIHZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xuICAgIHJldHVyblZhbHVlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBTaWRlRHJhd2VyIGNvbXBvbmVudC4gSXQgc2VwYXJhdGVzIHlvdXIgbW9iaWxlIGFwcCdzIHNjcmVlblxuICogaW50byBhIG1haW4gcGFydCBhbmQgYSBtZW51IHBhcnQgd2hlcmVieSB0aGUgbWVudSBwYXJ0IGlzIHNob3duIHVwb24gYSBzd2lwZVxuICogZ2VzdHVyZSB1c2luZyBhIHRyYW5zaXRpb24gZWZmZWN0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ0JvdHRvbVNoZWV0JyxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIEJvdHRvbVNoZWV0Q29tcG9uZW50IHtcbiAgICBwdWJsaWMgcGJzOiBQZXJzaXN0ZW50Qm90dG9tU2hlZXQ7XG4gICAgcHVibGljIGJvdHRvbVNoZWV0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xuXG4gICAgcHJpdmF0ZSBfZ2VzdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfc3RlcEluZGV4OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBASW5qZWN0KFZpZXdDb250YWluZXJSZWYpIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICB0aGlzLnBicyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpOiBQZXJzaXN0ZW50Qm90dG9tU2hlZXQge1xuICAgICAgICByZXR1cm4gdGhpcy5wYnM7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGdlc3R1cmVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2VzdHVyZUVuYWJsZWQ7XG4gICAgfVxuICAgIHNldCBnZXN0dXJlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9nZXN0dXJlRW5hYmxlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnBicy5nZXN0dXJlRW5hYmxlZCA9IHRoaXMuX2dlc3R1cmVFbmFibGVkO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGdldCBzdGVwSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXBJbmRleDtcbiAgICB9XG5cbiAgICBzZXQgc3RlcEluZGV4KHZhbHVlKSB7XG4gICAgICAgIGlmICghaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLl9zdGVwSW5kZXggPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMucGJzLnN0ZXBJbmRleCA9IHRoaXMuX3N0ZXBJbmRleDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGdldCBiYWNrZHJvcENvbG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYnMuYmFja2Ryb3BDb2xvcjtcbiAgICB9XG5cbiAgICBzZXQgYmFja2Ryb3BDb2xvcih2YWx1ZSkge1xuICAgICAgICB0aGlzLnBicy5iYWNrZHJvcENvbG9yID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgc2Nyb2xsVmlld0lkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYnMuc2Nyb2xsVmlld0lkO1xuICAgIH1cblxuICAgIHNldCBzY3JvbGxWaWV3SWQodmFsdWUpIHtcbiAgICAgICAgdGhpcy5wYnMuc2Nyb2xsVmlld0lkID0gdmFsdWU7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHBhbkdlc3R1cmVPcHRpb25zKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBicy5wYW5HZXN0dXJlT3B0aW9ucztcbiAgICB9XG5cbiAgICBzZXQgcGFuR2VzdHVyZU9wdGlvbnModmFsdWUpIHtcbiAgICAgICAgdGhpcy5wYnMucGFuR2VzdHVyZU9wdGlvbnMgPSB2YWx1ZTtcbiAgICB9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIGlkZW50aWZ5aW5nIHRoZSBsZWZ0IGRyYXdlclxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tib3R0b21TaGVldF0nXG59KVxuZXhwb3J0IGNsYXNzIEJvdHRvbVNoZWV0RGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlkID0gQk9UVE9NU0hFRVQ7XG4gICAgfVxufVxuXG5jb25zdCBzYnNNZXRhOiBWaWV3Q2xhc3NNZXRhID0ge1xuICAgIGluc2VydENoaWxkOiAocGFyZW50OiBOZ1ZpZXcsIGNoaWxkOiBOZ1ZpZXcpID0+IHtcbiAgICAgICAgY29uc3QgcGJzID0gcGFyZW50IGFzIGFueSBhcyBQZXJzaXN0ZW50Qm90dG9tU2hlZXQ7XG4gICAgICAgIGNvbnN0IGNoaWxkVmlldyA9IGNoaWxkO1xuXG4gICAgICAgIGlmIChjaGlsZFZpZXcuaWQgPT09IEJPVFRPTVNIRUVUKSB7XG4gICAgICAgICAgICBwYnMuYm90dG9tU2hlZXQgPSBjaGlsZFZpZXc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYnMuYWRkQ2hpbGQoY2hpbGRWaWV3KTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcmVtb3ZlQ2hpbGQ6IChwYXJlbnQ6IE5nVmlldywgY2hpbGQ6IE5nVmlldykgPT4ge1xuICAgICAgICBjb25zdCBwYnMgPSBwYXJlbnQgYXMgYW55IGFzIFBlcnNpc3RlbnRCb3R0b21TaGVldDtcbiAgICAgICAgY29uc3QgY2hpbGRWaWV3ID0gY2hpbGQ7XG5cbiAgICAgICAgaWYgKGNoaWxkVmlldy5pZCA9PT0gQk9UVE9NU0hFRVQpIHtcbiAgICAgICAgICAgIHBicy5ib3R0b21TaGVldCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYnMucmVtb3ZlQ2hpbGQoY2hpbGRWaWV3KTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbi8qKlxuICogRGlyZWN0aXZlcyBpZGVudGlmeWluZyB0aGUgRHJhd2VyLlxuICovXG5leHBvcnQgY29uc3QgUEVSU0lTVEVOVEJPVFRPTVNIRUVUX0RJUkVDVElWRVMgPSBbQm90dG9tU2hlZXREaXJlY3RpdmVdO1xuXG5yZWdpc3RlckVsZW1lbnQoJ0JvdHRvbVNoZWV0JywgKCkgPT4gUGVyc2lzdGVudEJvdHRvbVNoZWV0LCBzYnNNZXRhKTtcblxuLyoqXG4gKiBOZ01vZHVsZSBjb250YWluaW5nIGFsbCBvZiB0aGUgUmFkU2lkZURyYXdlciBkaXJlY3RpdmVzLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0JvdHRvbVNoZWV0Q29tcG9uZW50LCBQRVJTSVNURU5UQk9UVE9NU0hFRVRfRElSRUNUSVZFU10sXG4gICAgZXhwb3J0czogW0JvdHRvbVNoZWV0Q29tcG9uZW50LCBQRVJTSVNURU5UQk9UVE9NU0hFRVRfRElSRUNUSVZFU11cbn0pXG5leHBvcnQgY2xhc3MgQm90dG9tU2hlZXRNb2R1bGUge31cbiJdfQ==