@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
JavaScript
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==