@nativescript-community/ui-material-bottomsheet 7.2.1 → 7.2.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.
@@ -0,0 +1,10 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class NativeScriptMaterialBottomSheetModule {
4
+ private static initialized;
5
+ static forRoot(): ModuleWithProviders<NativeScriptMaterialBottomSheetModule>;
6
+ constructor();
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<NativeScriptMaterialBottomSheetModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NativeScriptMaterialBottomSheetModule, never, never, never>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<NativeScriptMaterialBottomSheetModule>;
10
+ }
@@ -0,0 +1,28 @@
1
+ import { Type, ViewContainerRef } from '@angular/core';
2
+ import type { BottomSheetOptions as MaterialBottomSheetOptions } from '@nativescript-community/ui-material-bottomsheet';
3
+ import { Observable } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export type BaseShowBottomSheetOptions = Omit<MaterialBottomSheetOptions, 'closeCallback' | 'view'>;
6
+ export interface BottomSheetOptions extends BaseShowBottomSheetOptions {
7
+ viewContainerRef?: ViewContainerRef;
8
+ }
9
+ export declare class BottomSheetParams {
10
+ readonly context: any;
11
+ readonly closeCallback: (...args: any[]) => void;
12
+ constructor(context: any, closeCallback: (...args: any[]) => void);
13
+ }
14
+ export declare class BottomSheetService {
15
+ show<TResult = any>(type: Type<any>, options: BottomSheetOptions): Observable<TResult>;
16
+ showWithCloseCallback<TResult = any>(type: Type<any>, options: BottomSheetOptions): {
17
+ observable: Observable<TResult>;
18
+ closeCallback: () => void;
19
+ };
20
+ private getParentView;
21
+ private getFactoryResolver;
22
+ private createChildInjector;
23
+ private getBottomSheetParams;
24
+ private createDetachedLoader;
25
+ private loadComponent;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<BottomSheetService, never>;
27
+ static ɵprov: i0.ɵɵInjectableDeclaration<BottomSheetService>;
28
+ }
@@ -0,0 +1,27 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { BottomSheetService } from './bottomsheet.service';
3
+ import { install } from '@nativescript-community/ui-material-bottomsheet';
4
+ import * as i0 from "@angular/core";
5
+ export class NativeScriptMaterialBottomSheetModule {
6
+ // This flag help us to avoid problems when using the new development workflow
7
+ static initialized = false;
8
+ static forRoot() {
9
+ return {
10
+ ngModule: NativeScriptMaterialBottomSheetModule,
11
+ providers: [BottomSheetService],
12
+ };
13
+ }
14
+ constructor() {
15
+ if (!NativeScriptMaterialBottomSheetModule.initialized) {
16
+ install();
17
+ NativeScriptMaterialBottomSheetModule.initialized = true;
18
+ }
19
+ }
20
+ static ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
21
+ static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
22
+ static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
23
+ }
24
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
25
+ type: NgModule
26
+ }], function () { return []; }, null); })();
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tc2hlZXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JvdHRvbXNoZWV0L2FuZ3VsYXIvYm90dG9tc2hlZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFHMUUsTUFBTSxPQUFPLHFDQUFxQztJQUM5Qyw4RUFBOEU7SUFDdEUsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFbkMsTUFBTSxDQUFDLE9BQU87UUFDVixPQUFPO1lBQ0gsUUFBUSxFQUFFLHFDQUFxQztZQUMvQyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNsQyxDQUFDO0lBQ04sQ0FBQztJQUVEO1FBQ0ksSUFBSSxDQUFDLHFDQUFxQyxDQUFDLFdBQVcsRUFBRTtZQUNwRCxPQUFPLEVBQUUsQ0FBQztZQUNWLHFDQUFxQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDNUQ7SUFDTCxDQUFDOytGQWhCUSxxQ0FBcUM7NERBQXJDLHFDQUFxQzs7O3VGQUFyQyxxQ0FBcUM7Y0FEakQsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJvdHRvbVNoZWV0U2VydmljZSB9IGZyb20gJy4vYm90dG9tc2hlZXQuc2VydmljZSc7XG5pbXBvcnQgeyBpbnN0YWxsIH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC1jb21tdW5pdHkvdWktbWF0ZXJpYWwtYm90dG9tc2hlZXQnO1xuXG5ATmdNb2R1bGUoKVxuZXhwb3J0IGNsYXNzIE5hdGl2ZVNjcmlwdE1hdGVyaWFsQm90dG9tU2hlZXRNb2R1bGUge1xuICAgIC8vIFRoaXMgZmxhZyBoZWxwIHVzIHRvIGF2b2lkIHByb2JsZW1zIHdoZW4gdXNpbmcgdGhlIG5ldyBkZXZlbG9wbWVudCB3b3JrZmxvd1xuICAgIHByaXZhdGUgc3RhdGljIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5hdGl2ZVNjcmlwdE1hdGVyaWFsQm90dG9tU2hlZXRNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOYXRpdmVTY3JpcHRNYXRlcmlhbEJvdHRvbVNoZWV0TW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbQm90dG9tU2hlZXRTZXJ2aWNlXSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGlmICghTmF0aXZlU2NyaXB0TWF0ZXJpYWxCb3R0b21TaGVldE1vZHVsZS5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgaW5zdGFsbCgpO1xuICAgICAgICAgICAgTmF0aXZlU2NyaXB0TWF0ZXJpYWxCb3R0b21TaGVldE1vZHVsZS5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,118 @@
1
+ import { ComponentFactoryResolver, ComponentRef, Injectable, Injector, Type, ViewContainerRef } from '@angular/core';
2
+ import { AppHostView, DetachedLoader, once } from '@nativescript/angular';
3
+ import { LayoutBase, ProxyViewContainer, View } from '@nativescript/core';
4
+ import { Observable, Subject } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export class BottomSheetParams {
7
+ context;
8
+ closeCallback;
9
+ constructor(context, closeCallback) {
10
+ this.context = context;
11
+ this.closeCallback = closeCallback;
12
+ }
13
+ }
14
+ export class BottomSheetService {
15
+ show(type, options) {
16
+ return this.showWithCloseCallback(type, options).observable;
17
+ }
18
+ showWithCloseCallback(type, options) {
19
+ if (!options.viewContainerRef) {
20
+ throw new Error('No viewContainerRef: Make sure you pass viewContainerRef in BottomSheetOptions.');
21
+ }
22
+ const sheetRef = {
23
+ result: new Subject()
24
+ };
25
+ const parentView = this.getParentView(options.viewContainerRef);
26
+ const factoryResolver = this.getFactoryResolver(options.viewContainerRef);
27
+ const bottomSheetParams = this.getBottomSheetParams(options.context, sheetRef);
28
+ sheetRef.detachedLoader = this.createDetachedLoader(factoryResolver, bottomSheetParams, options.viewContainerRef);
29
+ this.loadComponent(type, sheetRef).then((componentView) => {
30
+ parentView.showBottomSheet({
31
+ ...options,
32
+ ...bottomSheetParams,
33
+ view: componentView
34
+ });
35
+ });
36
+ return {
37
+ observable: sheetRef.result,
38
+ closeCallback: bottomSheetParams.closeCallback
39
+ };
40
+ }
41
+ getParentView(viewContainerRef) {
42
+ let parentView = viewContainerRef.element.nativeElement;
43
+ if (parentView instanceof AppHostView && parentView.ngAppRoot) {
44
+ parentView = parentView.ngAppRoot;
45
+ }
46
+ // _ngDialogRoot is the first child of the previously detached proxy.
47
+ // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for
48
+ // presenting future bottomSheets views.
49
+ if (parentView._ngDialogRoot) {
50
+ parentView = parentView._ngDialogRoot;
51
+ }
52
+ return parentView;
53
+ }
54
+ getFactoryResolver(componentContainer) {
55
+ // resolve from particular module (moduleRef)
56
+ // or from same module as parentView (viewContainerRef)
57
+ return componentContainer.injector.get(ComponentFactoryResolver);
58
+ }
59
+ createChildInjector(bottomSheetParams, containerRef) {
60
+ return Injector.create({
61
+ providers: [
62
+ {
63
+ provide: BottomSheetParams,
64
+ useValue: bottomSheetParams
65
+ }
66
+ ],
67
+ parent: containerRef.injector
68
+ });
69
+ }
70
+ getBottomSheetParams(context, sheetRef) {
71
+ const closeCallback = once((args) => {
72
+ const { result, componentView, detachedLoader } = sheetRef;
73
+ result.next(args);
74
+ result.complete();
75
+ if (componentView) {
76
+ componentView.closeBottomSheet();
77
+ }
78
+ if (detachedLoader) {
79
+ detachedLoader.instance.detectChanges();
80
+ detachedLoader.destroy();
81
+ }
82
+ });
83
+ return new BottomSheetParams(context, closeCallback);
84
+ }
85
+ createDetachedLoader(factoryResolver, bottomSheetParams, viewContainerRef) {
86
+ const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);
87
+ const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);
88
+ return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);
89
+ }
90
+ async loadComponent(type, sheetRef) {
91
+ try {
92
+ const componentRef = await sheetRef.detachedLoader.instance.loadComponent(type);
93
+ const detachedProxy = componentRef.location.nativeElement;
94
+ if (detachedProxy.getChildrenCount() > 1) {
95
+ throw new Error('BottomSheet content has more than one root view.');
96
+ }
97
+ sheetRef.componentView = detachedProxy.getChildAt(0);
98
+ if (sheetRef.componentView.parent instanceof LayoutBase) {
99
+ sheetRef.componentView.parent._ngDialogRoot = sheetRef.componentView;
100
+ sheetRef.componentView.parent.removeChild(sheetRef.componentView);
101
+ }
102
+ return sheetRef.componentView;
103
+ }
104
+ catch (err) {
105
+ console.error(err);
106
+ return null;
107
+ }
108
+ }
109
+ static ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
110
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BottomSheetService, factory: BottomSheetService.ɵfac, providedIn: 'root' });
111
+ }
112
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetService, [{
113
+ type: Injectable,
114
+ args: [{
115
+ providedIn: 'root'
116
+ }]
117
+ }], null, null); })();
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tc2hlZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ib3R0b21zaGVldC9hbmd1bGFyL2JvdHRvbXNoZWV0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVySCxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVEzQyxNQUFNLE9BQU8saUJBQWlCO0lBQ1M7SUFBOEI7SUFBakUsWUFBbUMsT0FBWSxFQUFrQixhQUFnQztRQUE5RCxZQUFPLEdBQVAsT0FBTyxDQUFLO1FBQWtCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtJQUFHLENBQUM7Q0FDeEc7QUFhRCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLElBQUksQ0FBZ0IsSUFBZSxFQUFFLE9BQTJCO1FBQ25FLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDaEUsQ0FBQztJQUVNLHFCQUFxQixDQUFnQixJQUFlLEVBQUUsT0FBMkI7UUFDcEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGlGQUFpRixDQUFDLENBQUM7U0FDdEc7UUFFRCxNQUFNLFFBQVEsR0FBc0I7WUFDaEMsTUFBTSxFQUFFLElBQUksT0FBTyxFQUFFO1NBQ3hCLENBQUM7UUFFRixNQUFNLFVBQVUsR0FB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Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQm90dG9tU2hlZXRPcHRpb25zIGFzIE1hdGVyaWFsQm90dG9tU2hlZXRPcHRpb25zIH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC1jb21tdW5pdHkvdWktbWF0ZXJpYWwtYm90dG9tc2hlZXQnO1xuaW1wb3J0IHsgQXBwSG9zdFZpZXcsIERldGFjaGVkTG9hZGVyLCBvbmNlIH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC9hbmd1bGFyJztcbmltcG9ydCB7IExheW91dEJhc2UsIFByb3h5Vmlld0NvbnRhaW5lciwgVmlldyB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEJhc2VTaG93Qm90dG9tU2hlZXRPcHRpb25zID0gT21pdDxNYXRlcmlhbEJvdHRvbVNoZWV0T3B0aW9ucywgJ2Nsb3NlQ2FsbGJhY2snIHwgJ3ZpZXcnPjtcblxuZXhwb3J0IGludGVyZmFjZSBCb3R0b21TaGVldE9wdGlvbnMgZXh0ZW5kcyBCYXNlU2hvd0JvdHRvbVNoZWV0T3B0aW9ucyB7XG4gICAgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG59XG5cbmV4cG9ydCBjbGFzcyBCb3R0b21TaGVldFBhcmFtcyB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjb250ZXh0OiBhbnksIHB1YmxpYyByZWFkb25seSBjbG9zZUNhbGxiYWNrOiAoLi4uYXJncykgPT4gdm9pZCkge31cbn1cblxudHlwZSBWaWV3V2l0aERpYWxvZ1Jvb3QgPSBWaWV3ICYgeyBfbmdEaWFsb2dSb290PzogVmlldyB9O1xuXG5pbnRlcmZhY2UgU2hlZXRSZWY8VFJlc3VsdCA9IHVua25vd24+IHtcbiAgICBkZXRhY2hlZExvYWRlcj86IENvbXBvbmVudFJlZjxEZXRhY2hlZExvYWRlcj47XG4gICAgY29tcG9uZW50Vmlldz86IFZpZXc7XG4gICAgcmVzdWx0OiBTdWJqZWN0PFRSZXN1bHQ+O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJvdHRvbVNoZWV0U2VydmljZSB7XG4gICAgcHVibGljIHNob3c8VFJlc3VsdCA9IGFueT4odHlwZTogVHlwZTxhbnk+LCBvcHRpb25zOiBCb3R0b21TaGVldE9wdGlvbnMpOiBPYnNlcnZhYmxlPFRSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd1dpdGhDbG9zZUNhbGxiYWNrKHR5cGUsIG9wdGlvbnMpLm9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dXaXRoQ2xvc2VDYWxsYmFjazxUUmVzdWx0ID0gYW55Pih0eXBlOiBUeXBlPGFueT4sIG9wdGlvbnM6IEJvdHRvbVNoZWV0T3B0aW9ucyk6IHsgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUUmVzdWx0PjsgY2xvc2VDYWxsYmFjazogKCkgPT4gdm9pZCB9IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLnZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdmlld0NvbnRhaW5lclJlZjogTWFrZSBzdXJlIHlvdSBwYXNzIHZpZXdDb250YWluZXJSZWYgaW4gQm90dG9tU2hlZXRPcHRpb25zLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2hlZXRSZWY6IFNoZWV0UmVmPFRSZXN1bHQ+ID0ge1xuICAgICAgICAgICAgcmVzdWx0OiBuZXcgU3ViamVjdCgpXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcGFyZW50VmlldyA9IHRoaXMuZ2V0UGFyZW50VmlldyhvcHRpb25zLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICBjb25zdCBmYWN0b3J5UmVzb2x2ZXIgPSB0aGlzLmdldEZhY3RvcnlSZXNvbHZlcihvcHRpb25zLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICBjb25zdCBib3R0b21TaGVldFBhcmFtcyA9IHRoaXMuZ2V0Qm90dG9tU2hlZXRQYXJhbXMob3B0aW9ucy5jb250ZXh0LCBzaGVldFJlZik7XG5cbiAgICAgICAgc2hlZXRSZWYuZGV0YWNoZWRMb2FkZXIgPSB0aGlzLmNyZWF0ZURldGFjaGVkTG9hZGVyKGZhY3RvcnlSZXNvbHZlciwgYm90dG9tU2hlZXRQYXJhbXMsIG9wdGlvbnMudmlld0NvbnRhaW5lclJlZik7XG5cbiAgICAgICAgdGhpcy5sb2FkQ29tcG9uZW50KHR5cGUsIHNoZWV0UmVmKS50aGVuKChjb21wb25lbnRWaWV3KSA9PiB7XG4gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3dCb3R0b21TaGVldCh7XG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi5ib3R0b21TaGVldFBhcmFtcyxcbiAgICAgICAgICAgICAgICB2aWV3OiBjb21wb25lbnRWaWV3XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9ic2VydmFibGU6IHNoZWV0UmVmLnJlc3VsdCxcbiAgICAgICAgICAgIGNsb3NlQ2FsbGJhY2s6IGJvdHRvbVNoZWV0UGFyYW1zLmNsb3NlQ2FsbGJhY2tcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhcmVudFZpZXcodmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZik6IFZpZXcge1xuICAgICAgICBsZXQgcGFyZW50VmlldyA9IHZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIFZpZXc7XG5cbiAgICAgICAgaWYgKHBhcmVudFZpZXcgaW5zdGFuY2VvZiBBcHBIb3N0VmlldyAmJiBwYXJlbnRWaWV3Lm5nQXBwUm9vdCkge1xuICAgICAgICAgICAgcGFyZW50VmlldyA9IHBhcmVudFZpZXcubmdBcHBSb290O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gX25nRGlhbG9nUm9vdCBpcyB0aGUgZmlyc3QgY2hpbGQgb2YgdGhlIHByZXZpb3VzbHkgZGV0YWNoZWQgcHJveHkuXG4gICAgICAgIC8vIEl0IHNob3VsZCBoYXZlICd2aWV3Q29udHJvbGxlcicgKGlPUykgb3IgJ19kaWFsb2dGcmFnbWVudCcgKEFuZHJvaWQpIGF2YWlsYWJsZSBmb3JcbiAgICAgICAgLy8gcHJlc2VudGluZyBmdXR1cmUgYm90dG9tU2hlZXRzIHZpZXdzLlxuICAgICAgICBpZiAoKHBhcmVudFZpZXcgYXMgVmlld1dpdGhEaWFsb2dSb290KS5fbmdEaWFsb2dSb290KSB7XG4gICAgICAgICAgICBwYXJlbnRWaWV3ID0gKHBhcmVudFZpZXcgYXMgVmlld1dpdGhEaWFsb2dSb290KS5fbmdEaWFsb2dSb290O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmVudFZpZXc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGYWN0b3J5UmVzb2x2ZXIoY29tcG9uZW50Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKTogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIHtcbiAgICAgICAgLy8gcmVzb2x2ZSBmcm9tIHBhcnRpY3VsYXIgbW9kdWxlIChtb2R1bGVSZWYpXG4gICAgICAgIC8vIG9yIGZyb20gc2FtZSBtb2R1bGUgYXMgcGFyZW50VmlldyAodmlld0NvbnRhaW5lclJlZilcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudENvbnRhaW5lci5pbmplY3Rvci5nZXQoQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNoaWxkSW5qZWN0b3IoYm90dG9tU2hlZXRQYXJhbXM6IEJvdHRvbVNoZWV0UGFyYW1zLCBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpOiBJbmplY3RvciB7XG4gICAgICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBCb3R0b21TaGVldFBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGJvdHRvbVNoZWV0UGFyYW1zXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHBhcmVudDogY29udGFpbmVyUmVmLmluamVjdG9yXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Qm90dG9tU2hlZXRQYXJhbXMoY29udGV4dDogYW55LCBzaGVldFJlZjogU2hlZXRSZWYpOiBCb3R0b21TaGVldFBhcmFtcyB7XG4gICAgICAgIGNvbnN0IGNsb3NlQ2FsbGJhY2sgPSBvbmNlKChhcmdzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHJlc3VsdCwgY29tcG9uZW50VmlldywgZGV0YWNoZWRMb2FkZXIgfSA9IHNoZWV0UmVmO1xuXG4gICAgICAgICAgICByZXN1bHQubmV4dChhcmdzKTtcbiAgICAgICAgICAgIHJlc3VsdC5jb21wbGV0ZSgpO1xuXG4gICAgICAgICAgICBpZiAoY29tcG9uZW50Vmlldykge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFZpZXcuY2xvc2VCb3R0b21TaGVldCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGV0YWNoZWRMb2FkZXIpIHtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZExvYWRlci5pbnN0YW5jZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWRMb2FkZXIuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV3IEJvdHRvbVNoZWV0UGFyYW1zKGNvbnRleHQsIGNsb3NlQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGV0YWNoZWRMb2FkZXIoZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGJvdHRvbVNoZWV0UGFyYW1zOiBCb3R0b21TaGVldFBhcmFtcywgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZik6IENvbXBvbmVudFJlZjxEZXRhY2hlZExvYWRlcj4ge1xuICAgICAgICBjb25zdCBkZXRhY2hlZExvYWRlckZhY3RvcnkgPSBmYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRGV0YWNoZWRMb2FkZXIpO1xuICAgICAgICBjb25zdCBjaGlsZEluamVjdG9yID0gdGhpcy5jcmVhdGVDaGlsZEluamVjdG9yKGJvdHRvbVNoZWV0UGFyYW1zLCB2aWV3Q29udGFpbmVyUmVmKTtcblxuICAgICAgICByZXR1cm4gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZGV0YWNoZWRMb2FkZXJGYWN0b3J5LCAwLCBjaGlsZEluamVjdG9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGxvYWRDb21wb25lbnQodHlwZTogVHlwZTxhbnk+LCBzaGVldFJlZjogU2hlZXRSZWYpOiBQcm9taXNlPFZpZXc+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGF3YWl0IHNoZWV0UmVmLmRldGFjaGVkTG9hZGVyLmluc3RhbmNlLmxvYWRDb21wb25lbnQodHlwZSk7XG4gICAgICAgICAgICBjb25zdCBkZXRhY2hlZFByb3h5ID0gY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQgYXMgUHJveHlWaWV3Q29udGFpbmVyO1xuXG4gICAgICAgICAgICBpZiAoZGV0YWNoZWRQcm94eS5nZXRDaGlsZHJlbkNvdW50KCkgPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCb3R0b21TaGVldCBjb250ZW50IGhhcyBtb3JlIHRoYW4gb25lIHJvb3Qgdmlldy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2hlZXRSZWYuY29tcG9uZW50VmlldyA9IGRldGFjaGVkUHJveHkuZ2V0Q2hpbGRBdCgwKTtcblxuICAgICAgICAgICAgaWYgKHNoZWV0UmVmLmNvbXBvbmVudFZpZXcucGFyZW50IGluc3RhbmNlb2YgTGF5b3V0QmFzZSkge1xuICAgICAgICAgICAgICAgIChzaGVldFJlZi5jb21wb25lbnRWaWV3LnBhcmVudCBhcyBWaWV3V2l0aERpYWxvZ1Jvb3QpLl9uZ0RpYWxvZ1Jvb3QgPSBzaGVldFJlZi5jb21wb25lbnRWaWV3O1xuICAgICAgICAgICAgICAgIHNoZWV0UmVmLmNvbXBvbmVudFZpZXcucGFyZW50LnJlbW92ZUNoaWxkKHNoZWV0UmVmLmNvbXBvbmVudFZpZXcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc2hlZXRSZWYuY29tcG9uZW50VmlldztcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -6,6 +6,8 @@ import { Subject } from 'rxjs';
6
6
  import { install } from '@nativescript-community/ui-material-bottomsheet';
7
7
 
8
8
  class BottomSheetParams {
9
+ context;
10
+ closeCallback;
9
11
  constructor(context, closeCallback) {
10
12
  this.context = context;
11
13
  this.closeCallback = closeCallback;
@@ -106,9 +108,9 @@ class BottomSheetService {
106
108
  return null;
107
109
  }
108
110
  }
111
+ static ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
112
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BottomSheetService, factory: BottomSheetService.ɵfac, providedIn: 'root' });
109
113
  }
110
- BottomSheetService.ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
111
- BottomSheetService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BottomSheetService, factory: BottomSheetService.ɵfac, providedIn: 'root' });
112
114
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetService, [{
113
115
  type: Injectable,
114
116
  args: [{
@@ -117,24 +119,24 @@ BottomSheetService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Botto
117
119
  }], null, null); })();
118
120
 
119
121
  class NativeScriptMaterialBottomSheetModule {
120
- constructor() {
121
- if (!NativeScriptMaterialBottomSheetModule.initialized) {
122
- install();
123
- NativeScriptMaterialBottomSheetModule.initialized = true;
124
- }
125
- }
122
+ // This flag help us to avoid problems when using the new development workflow
123
+ static initialized = false;
126
124
  static forRoot() {
127
125
  return {
128
126
  ngModule: NativeScriptMaterialBottomSheetModule,
129
127
  providers: [BottomSheetService],
130
128
  };
131
129
  }
130
+ constructor() {
131
+ if (!NativeScriptMaterialBottomSheetModule.initialized) {
132
+ install();
133
+ NativeScriptMaterialBottomSheetModule.initialized = true;
134
+ }
135
+ }
136
+ static ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
137
+ static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
138
+ static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
132
139
  }
133
- // This flag help us to avoid problems when using the new development workflow
134
- NativeScriptMaterialBottomSheetModule.initialized = false;
135
- NativeScriptMaterialBottomSheetModule.ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
136
- NativeScriptMaterialBottomSheetModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
137
- NativeScriptMaterialBottomSheetModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
138
140
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
139
141
  type: NgModule
140
142
  }], function () { return []; }, null); })();
@@ -1 +1 @@
1
- {"version":3,"file":"nativescript-community-ui-material-bottomsheet-angular.mjs","sources":["../../../../src/bottomsheet/angular/bottomsheet.service.ts","../../../../src/bottomsheet/angular/bottomsheet.module.ts","../../../../src/bottomsheet/angular/nativescript-community-ui-material-bottomsheet-angular.ts"],"sourcesContent":["import { ComponentFactoryResolver, ComponentRef, Injectable, Injector, Type, ViewContainerRef } from '@angular/core';\nimport type { BottomSheetOptions as MaterialBottomSheetOptions } from '@nativescript-community/ui-material-bottomsheet';\nimport { AppHostView, DetachedLoader, once } from '@nativescript/angular';\nimport { LayoutBase, ProxyViewContainer, View } from '@nativescript/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport type BaseShowBottomSheetOptions = Omit<MaterialBottomSheetOptions, 'closeCallback' | 'view'>;\n\nexport interface BottomSheetOptions extends BaseShowBottomSheetOptions {\n viewContainerRef?: ViewContainerRef;\n}\n\nexport class BottomSheetParams {\n public constructor(public readonly context: any, public readonly closeCallback: (...args) => void) {}\n}\n\ntype ViewWithDialogRoot = View & { _ngDialogRoot?: View };\n\ninterface SheetRef<TResult = unknown> {\n detachedLoader?: ComponentRef<DetachedLoader>;\n componentView?: View;\n result: Subject<TResult>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BottomSheetService {\n public show<TResult = any>(type: Type<any>, options: BottomSheetOptions): Observable<TResult> {\n return this.showWithCloseCallback(type, options).observable;\n }\n\n public showWithCloseCallback<TResult = any>(type: Type<any>, options: BottomSheetOptions): { observable: Observable<TResult>; closeCallback: () => void } {\n if (!options.viewContainerRef) {\n throw new Error('No viewContainerRef: Make sure you pass viewContainerRef in BottomSheetOptions.');\n }\n\n const sheetRef: SheetRef<TResult> = {\n result: new Subject()\n };\n\n const parentView = this.getParentView(options.viewContainerRef);\n const factoryResolver = this.getFactoryResolver(options.viewContainerRef);\n const bottomSheetParams = this.getBottomSheetParams(options.context, sheetRef);\n\n sheetRef.detachedLoader = this.createDetachedLoader(factoryResolver, bottomSheetParams, options.viewContainerRef);\n\n this.loadComponent(type, sheetRef).then((componentView) => {\n parentView.showBottomSheet({\n ...options,\n ...bottomSheetParams,\n view: componentView\n });\n });\n\n return {\n observable: sheetRef.result,\n closeCallback: bottomSheetParams.closeCallback\n };\n }\n\n private getParentView(viewContainerRef: ViewContainerRef): View {\n let parentView = viewContainerRef.element.nativeElement as View;\n\n if (parentView instanceof AppHostView && parentView.ngAppRoot) {\n parentView = parentView.ngAppRoot;\n }\n\n // _ngDialogRoot is the first child of the previously detached proxy.\n // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for\n // presenting future bottomSheets views.\n if ((parentView as ViewWithDialogRoot)._ngDialogRoot) {\n parentView = (parentView as ViewWithDialogRoot)._ngDialogRoot;\n }\n\n return parentView;\n }\n\n private getFactoryResolver(componentContainer: ViewContainerRef): ComponentFactoryResolver {\n // resolve from particular module (moduleRef)\n // or from same module as parentView (viewContainerRef)\n return componentContainer.injector.get(ComponentFactoryResolver);\n }\n\n private createChildInjector(bottomSheetParams: BottomSheetParams, containerRef: ViewContainerRef): Injector {\n return Injector.create({\n providers: [\n {\n provide: BottomSheetParams,\n useValue: bottomSheetParams\n }\n ],\n parent: containerRef.injector\n });\n }\n\n private getBottomSheetParams(context: any, sheetRef: SheetRef): BottomSheetParams {\n const closeCallback = once((args) => {\n const { result, componentView, detachedLoader } = sheetRef;\n\n result.next(args);\n result.complete();\n\n if (componentView) {\n componentView.closeBottomSheet();\n }\n\n if (detachedLoader) {\n detachedLoader.instance.detectChanges();\n detachedLoader.destroy();\n }\n });\n\n return new BottomSheetParams(context, closeCallback);\n }\n\n private createDetachedLoader(factoryResolver: ComponentFactoryResolver, bottomSheetParams: BottomSheetParams, viewContainerRef: ViewContainerRef): ComponentRef<DetachedLoader> {\n const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);\n const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);\n\n return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);\n }\n\n private async loadComponent(type: Type<any>, sheetRef: SheetRef): Promise<View> {\n try {\n const componentRef = await sheetRef.detachedLoader.instance.loadComponent(type);\n const detachedProxy = componentRef.location.nativeElement as ProxyViewContainer;\n\n if (detachedProxy.getChildrenCount() > 1) {\n throw new Error('BottomSheet content has more than one root view.');\n }\n\n sheetRef.componentView = detachedProxy.getChildAt(0);\n\n if (sheetRef.componentView.parent instanceof LayoutBase) {\n (sheetRef.componentView.parent as ViewWithDialogRoot)._ngDialogRoot = sheetRef.componentView;\n sheetRef.componentView.parent.removeChild(sheetRef.componentView);\n }\n\n return sheetRef.componentView;\n } catch (err) {\n console.error(err);\n\n return null;\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { BottomSheetService } from './bottomsheet.service';\nimport { install } from '@nativescript-community/ui-material-bottomsheet';\n\n@NgModule()\nexport class NativeScriptMaterialBottomSheetModule {\n // This flag help us to avoid problems when using the new development workflow\n private static initialized = false;\n\n static forRoot(): ModuleWithProviders<NativeScriptMaterialBottomSheetModule> {\n return {\n ngModule: NativeScriptMaterialBottomSheetModule,\n providers: [BottomSheetService],\n };\n }\n\n public constructor() {\n if (!NativeScriptMaterialBottomSheetModule.initialized) {\n install();\n NativeScriptMaterialBottomSheetModule.initialized = true;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nativescript-community-ui-material-bottomsheet-angular.mjs","sources":["../../../../src/bottomsheet/angular/bottomsheet.service.ts","../../../../src/bottomsheet/angular/bottomsheet.module.ts","../../../../src/bottomsheet/angular/nativescript-community-ui-material-bottomsheet-angular.ts"],"sourcesContent":["import { ComponentFactoryResolver, ComponentRef, Injectable, Injector, Type, ViewContainerRef } from '@angular/core';\nimport type { BottomSheetOptions as MaterialBottomSheetOptions } from '@nativescript-community/ui-material-bottomsheet';\nimport { AppHostView, DetachedLoader, once } from '@nativescript/angular';\nimport { LayoutBase, ProxyViewContainer, View } from '@nativescript/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport type BaseShowBottomSheetOptions = Omit<MaterialBottomSheetOptions, 'closeCallback' | 'view'>;\n\nexport interface BottomSheetOptions extends BaseShowBottomSheetOptions {\n viewContainerRef?: ViewContainerRef;\n}\n\nexport class BottomSheetParams {\n public constructor(public readonly context: any, public readonly closeCallback: (...args) => void) {}\n}\n\ntype ViewWithDialogRoot = View & { _ngDialogRoot?: View };\n\ninterface SheetRef<TResult = unknown> {\n detachedLoader?: ComponentRef<DetachedLoader>;\n componentView?: View;\n result: Subject<TResult>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BottomSheetService {\n public show<TResult = any>(type: Type<any>, options: BottomSheetOptions): Observable<TResult> {\n return this.showWithCloseCallback(type, options).observable;\n }\n\n public showWithCloseCallback<TResult = any>(type: Type<any>, options: BottomSheetOptions): { observable: Observable<TResult>; closeCallback: () => void } {\n if (!options.viewContainerRef) {\n throw new Error('No viewContainerRef: Make sure you pass viewContainerRef in BottomSheetOptions.');\n }\n\n const sheetRef: SheetRef<TResult> = {\n result: new Subject()\n };\n\n const parentView = this.getParentView(options.viewContainerRef);\n const factoryResolver = this.getFactoryResolver(options.viewContainerRef);\n const bottomSheetParams = this.getBottomSheetParams(options.context, sheetRef);\n\n sheetRef.detachedLoader = this.createDetachedLoader(factoryResolver, bottomSheetParams, options.viewContainerRef);\n\n this.loadComponent(type, sheetRef).then((componentView) => {\n parentView.showBottomSheet({\n ...options,\n ...bottomSheetParams,\n view: componentView\n });\n });\n\n return {\n observable: sheetRef.result,\n closeCallback: bottomSheetParams.closeCallback\n };\n }\n\n private getParentView(viewContainerRef: ViewContainerRef): View {\n let parentView = viewContainerRef.element.nativeElement as View;\n\n if (parentView instanceof AppHostView && parentView.ngAppRoot) {\n parentView = parentView.ngAppRoot;\n }\n\n // _ngDialogRoot is the first child of the previously detached proxy.\n // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for\n // presenting future bottomSheets views.\n if ((parentView as ViewWithDialogRoot)._ngDialogRoot) {\n parentView = (parentView as ViewWithDialogRoot)._ngDialogRoot;\n }\n\n return parentView;\n }\n\n private getFactoryResolver(componentContainer: ViewContainerRef): ComponentFactoryResolver {\n // resolve from particular module (moduleRef)\n // or from same module as parentView (viewContainerRef)\n return componentContainer.injector.get(ComponentFactoryResolver);\n }\n\n private createChildInjector(bottomSheetParams: BottomSheetParams, containerRef: ViewContainerRef): Injector {\n return Injector.create({\n providers: [\n {\n provide: BottomSheetParams,\n useValue: bottomSheetParams\n }\n ],\n parent: containerRef.injector\n });\n }\n\n private getBottomSheetParams(context: any, sheetRef: SheetRef): BottomSheetParams {\n const closeCallback = once((args) => {\n const { result, componentView, detachedLoader } = sheetRef;\n\n result.next(args);\n result.complete();\n\n if (componentView) {\n componentView.closeBottomSheet();\n }\n\n if (detachedLoader) {\n detachedLoader.instance.detectChanges();\n detachedLoader.destroy();\n }\n });\n\n return new BottomSheetParams(context, closeCallback);\n }\n\n private createDetachedLoader(factoryResolver: ComponentFactoryResolver, bottomSheetParams: BottomSheetParams, viewContainerRef: ViewContainerRef): ComponentRef<DetachedLoader> {\n const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);\n const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);\n\n return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);\n }\n\n private async loadComponent(type: Type<any>, sheetRef: SheetRef): Promise<View> {\n try {\n const componentRef = await sheetRef.detachedLoader.instance.loadComponent(type);\n const detachedProxy = componentRef.location.nativeElement as ProxyViewContainer;\n\n if (detachedProxy.getChildrenCount() > 1) {\n throw new Error('BottomSheet content has more than one root view.');\n }\n\n sheetRef.componentView = detachedProxy.getChildAt(0);\n\n if (sheetRef.componentView.parent instanceof LayoutBase) {\n (sheetRef.componentView.parent as ViewWithDialogRoot)._ngDialogRoot = sheetRef.componentView;\n sheetRef.componentView.parent.removeChild(sheetRef.componentView);\n }\n\n return sheetRef.componentView;\n } catch (err) {\n console.error(err);\n\n return null;\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { BottomSheetService } from './bottomsheet.service';\nimport { install } from '@nativescript-community/ui-material-bottomsheet';\n\n@NgModule()\nexport class NativeScriptMaterialBottomSheetModule {\n // This flag help us to avoid problems when using the new development workflow\n private static initialized = false;\n\n static forRoot(): ModuleWithProviders<NativeScriptMaterialBottomSheetModule> {\n return {\n ngModule: NativeScriptMaterialBottomSheetModule,\n providers: [BottomSheetService],\n };\n }\n\n public constructor() {\n if (!NativeScriptMaterialBottomSheetModule.initialized) {\n install();\n NativeScriptMaterialBottomSheetModule.initialized = true;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './bottomsheet.module';
2
+ export * from './bottomsheet.service';
@@ -1,11 +1,7 @@
1
1
  {
2
2
  "name": "@nativescript-community/ui-material-bottomsheet-angular",
3
3
  "main": "index.js",
4
- "module": "fesm2015/nativescript-community-ui-material-bottomsheet-angular.mjs",
5
- "es2020": "fesm2020/nativescript-community-ui-material-bottomsheet-angular.mjs",
6
- "esm2020": "esm2020/nativescript-community-ui-material-bottomsheet-angular.mjs",
7
- "fesm2020": "fesm2020/nativescript-community-ui-material-bottomsheet-angular.mjs",
8
- "fesm2015": "fesm2015/nativescript-community-ui-material-bottomsheet-angular.mjs",
4
+ "module": "fesm2022/nativescript-community-ui-material-bottomsheet-angular.mjs",
9
5
  "typings": "index.d.ts",
10
6
  "exports": {
11
7
  "./package.json": {
@@ -13,11 +9,9 @@
13
9
  },
14
10
  ".": {
15
11
  "types": "./index.d.ts",
16
- "esm2020": "./esm2020/nativescript-community-ui-material-bottomsheet-angular.mjs",
17
- "es2020": "./fesm2020/nativescript-community-ui-material-bottomsheet-angular.mjs",
18
- "es2015": "./fesm2015/nativescript-community-ui-material-bottomsheet-angular.mjs",
19
- "node": "./fesm2015/nativescript-community-ui-material-bottomsheet-angular.mjs",
20
- "default": "./fesm2020/nativescript-community-ui-material-bottomsheet-angular.mjs"
12
+ "esm2022": "./esm2022/nativescript-community-ui-material-bottomsheet-angular.mjs",
13
+ "esm": "./esm2022/nativescript-community-ui-material-bottomsheet-angular.mjs",
14
+ "default": "./fesm2022/nativescript-community-ui-material-bottomsheet-angular.mjs"
21
15
  }
22
16
  },
23
17
  "sideEffects": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript-community/ui-material-bottomsheet",
3
- "version": "7.2.1",
3
+ "version": "7.2.3",
4
4
  "description": "Material Design Bottom Sheets slide up from the bottom of the screen to reveal more content. Bottom sheets integrate with the app to display supporting content or present deep-linked content from other apps.",
5
5
  "main": "./bottomsheet",
6
6
  "sideEffects": false,
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "readmeFilename": "README.md",
48
48
  "dependencies": {
49
- "@nativescript-community/ui-material-core": "^7.2.1"
49
+ "@nativescript-community/ui-material-core": "^7.2.3"
50
50
  },
51
- "gitHead": "75b7a4ee372bce6dacaa260d05a106179dfa2713"
51
+ "gitHead": "39a69cff4d06a9aa5f607680530c55004b8c1a54"
52
52
  }
@@ -1,27 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { BottomSheetService } from './bottomsheet.service';
3
- import { install } from '@nativescript-community/ui-material-bottomsheet';
4
- import * as i0 from "@angular/core";
5
- export class NativeScriptMaterialBottomSheetModule {
6
- constructor() {
7
- if (!NativeScriptMaterialBottomSheetModule.initialized) {
8
- install();
9
- NativeScriptMaterialBottomSheetModule.initialized = true;
10
- }
11
- }
12
- static forRoot() {
13
- return {
14
- ngModule: NativeScriptMaterialBottomSheetModule,
15
- providers: [BottomSheetService],
16
- };
17
- }
18
- }
19
- // This flag help us to avoid problems when using the new development workflow
20
- NativeScriptMaterialBottomSheetModule.initialized = false;
21
- NativeScriptMaterialBottomSheetModule.ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
22
- NativeScriptMaterialBottomSheetModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
23
- NativeScriptMaterialBottomSheetModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
24
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
25
- type: NgModule
26
- }], function () { return []; }, null); })();
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tc2hlZXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JvdHRvbXNoZWV0L2FuZ3VsYXIvYm90dG9tc2hlZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFHMUUsTUFBTSxPQUFPLHFDQUFxQztJQVc5QztRQUNJLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxXQUFXLEVBQUU7WUFDcEQsT0FBTyxFQUFFLENBQUM7WUFDVixxQ0FBcUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQVpELE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTztZQUNILFFBQVEsRUFBRSxxQ0FBcUM7WUFDL0MsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7U0FDbEMsQ0FBQztJQUNOLENBQUM7O0FBUkQsOEVBQThFO0FBQy9ELGlEQUFXLEdBQUcsS0FBSyxDQUFDOzBIQUYxQixxQ0FBcUM7dUZBQXJDLHFDQUFxQzs7dUZBQXJDLHFDQUFxQztjQURqRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQm90dG9tU2hlZXRTZXJ2aWNlIH0gZnJvbSAnLi9ib3R0b21zaGVldC5zZXJ2aWNlJztcbmltcG9ydCB7IGluc3RhbGwgfSBmcm9tICdAbmF0aXZlc2NyaXB0LWNvbW11bml0eS91aS1tYXRlcmlhbC1ib3R0b21zaGVldCc7XG5cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgTmF0aXZlU2NyaXB0TWF0ZXJpYWxCb3R0b21TaGVldE1vZHVsZSB7XG4gICAgLy8gVGhpcyBmbGFnIGhlbHAgdXMgdG8gYXZvaWQgcHJvYmxlbXMgd2hlbiB1c2luZyB0aGUgbmV3IGRldmVsb3BtZW50IHdvcmtmbG93XG4gICAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TmF0aXZlU2NyaXB0TWF0ZXJpYWxCb3R0b21TaGVldE1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE5hdGl2ZVNjcmlwdE1hdGVyaWFsQm90dG9tU2hlZXRNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtCb3R0b21TaGVldFNlcnZpY2VdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKCFOYXRpdmVTY3JpcHRNYXRlcmlhbEJvdHRvbVNoZWV0TW9kdWxlLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICBpbnN0YWxsKCk7XG4gICAgICAgICAgICBOYXRpdmVTY3JpcHRNYXRlcmlhbEJvdHRvbVNoZWV0TW9kdWxlLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,116 +0,0 @@
1
- import { ComponentFactoryResolver, ComponentRef, Injectable, Injector, Type, ViewContainerRef } from '@angular/core';
2
- import { AppHostView, DetachedLoader, once } from '@nativescript/angular';
3
- import { LayoutBase, ProxyViewContainer, View } from '@nativescript/core';
4
- import { Observable, Subject } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- export class BottomSheetParams {
7
- constructor(context, closeCallback) {
8
- this.context = context;
9
- this.closeCallback = closeCallback;
10
- }
11
- }
12
- export class BottomSheetService {
13
- show(type, options) {
14
- return this.showWithCloseCallback(type, options).observable;
15
- }
16
- showWithCloseCallback(type, options) {
17
- if (!options.viewContainerRef) {
18
- throw new Error('No viewContainerRef: Make sure you pass viewContainerRef in BottomSheetOptions.');
19
- }
20
- const sheetRef = {
21
- result: new Subject()
22
- };
23
- const parentView = this.getParentView(options.viewContainerRef);
24
- const factoryResolver = this.getFactoryResolver(options.viewContainerRef);
25
- const bottomSheetParams = this.getBottomSheetParams(options.context, sheetRef);
26
- sheetRef.detachedLoader = this.createDetachedLoader(factoryResolver, bottomSheetParams, options.viewContainerRef);
27
- this.loadComponent(type, sheetRef).then((componentView) => {
28
- parentView.showBottomSheet({
29
- ...options,
30
- ...bottomSheetParams,
31
- view: componentView
32
- });
33
- });
34
- return {
35
- observable: sheetRef.result,
36
- closeCallback: bottomSheetParams.closeCallback
37
- };
38
- }
39
- getParentView(viewContainerRef) {
40
- let parentView = viewContainerRef.element.nativeElement;
41
- if (parentView instanceof AppHostView && parentView.ngAppRoot) {
42
- parentView = parentView.ngAppRoot;
43
- }
44
- // _ngDialogRoot is the first child of the previously detached proxy.
45
- // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for
46
- // presenting future bottomSheets views.
47
- if (parentView._ngDialogRoot) {
48
- parentView = parentView._ngDialogRoot;
49
- }
50
- return parentView;
51
- }
52
- getFactoryResolver(componentContainer) {
53
- // resolve from particular module (moduleRef)
54
- // or from same module as parentView (viewContainerRef)
55
- return componentContainer.injector.get(ComponentFactoryResolver);
56
- }
57
- createChildInjector(bottomSheetParams, containerRef) {
58
- return Injector.create({
59
- providers: [
60
- {
61
- provide: BottomSheetParams,
62
- useValue: bottomSheetParams
63
- }
64
- ],
65
- parent: containerRef.injector
66
- });
67
- }
68
- getBottomSheetParams(context, sheetRef) {
69
- const closeCallback = once((args) => {
70
- const { result, componentView, detachedLoader } = sheetRef;
71
- result.next(args);
72
- result.complete();
73
- if (componentView) {
74
- componentView.closeBottomSheet();
75
- }
76
- if (detachedLoader) {
77
- detachedLoader.instance.detectChanges();
78
- detachedLoader.destroy();
79
- }
80
- });
81
- return new BottomSheetParams(context, closeCallback);
82
- }
83
- createDetachedLoader(factoryResolver, bottomSheetParams, viewContainerRef) {
84
- const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);
85
- const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);
86
- return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);
87
- }
88
- async loadComponent(type, sheetRef) {
89
- try {
90
- const componentRef = await sheetRef.detachedLoader.instance.loadComponent(type);
91
- const detachedProxy = componentRef.location.nativeElement;
92
- if (detachedProxy.getChildrenCount() > 1) {
93
- throw new Error('BottomSheet content has more than one root view.');
94
- }
95
- sheetRef.componentView = detachedProxy.getChildAt(0);
96
- if (sheetRef.componentView.parent instanceof LayoutBase) {
97
- sheetRef.componentView.parent._ngDialogRoot = sheetRef.componentView;
98
- sheetRef.componentView.parent.removeChild(sheetRef.componentView);
99
- }
100
- return sheetRef.componentView;
101
- }
102
- catch (err) {
103
- console.error(err);
104
- return null;
105
- }
106
- }
107
- }
108
- BottomSheetService.ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
109
- BottomSheetService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BottomSheetService, factory: BottomSheetService.ɵfac, providedIn: 'root' });
110
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetService, [{
111
- type: Injectable,
112
- args: [{
113
- providedIn: 'root'
114
- }]
115
- }], null, null); })();
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tc2hlZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ib3R0b21zaGVldC9hbmd1bGFyL2JvdHRvbXNoZWV0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVySCxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVEzQyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQW1DLE9BQVksRUFBa0IsYUFBZ0M7UUFBOUQsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUFrQixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7SUFBRyxDQUFDO0NBQ3hHO0FBYUQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixJQUFJLENBQWdCLElBQWUsRUFBRSxPQUEyQjtRQUNuRSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2hFLENBQUM7SUFFTSxxQkFBcUIsQ0FBZ0IsSUFBZSxFQUFFLE9BQTJCO1FBQ3BGLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRkFBaUYsQ0FBQyxDQUFDO1NBQ3RHO1FBRUQsTUFBTSxRQUFRLEdBQXNCO1lBQ2hDLE1BQU0sRUFBRSxJQUFJLE9BQU8sRUFBRTtTQUN4QixDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFD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RUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEJvdHRvbVNoZWV0T3B0aW9ucyBhcyBNYXRlcmlhbEJvdHRvbVNoZWV0T3B0aW9ucyB9IGZyb20gJ0BuYXRpdmVzY3JpcHQtY29tbXVuaXR5L3VpLW1hdGVyaWFsLWJvdHRvbXNoZWV0JztcbmltcG9ydCB7IEFwcEhvc3RWaWV3LCBEZXRhY2hlZExvYWRlciwgb25jZSB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvYW5ndWxhcic7XG5pbXBvcnQgeyBMYXlvdXRCYXNlLCBQcm94eVZpZXdDb250YWluZXIsIFZpZXcgfSBmcm9tICdAbmF0aXZlc2NyaXB0L2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBCYXNlU2hvd0JvdHRvbVNoZWV0T3B0aW9ucyA9IE9taXQ8TWF0ZXJpYWxCb3R0b21TaGVldE9wdGlvbnMsICdjbG9zZUNhbGxiYWNrJyB8ICd2aWV3Jz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm90dG9tU2hlZXRPcHRpb25zIGV4dGVuZHMgQmFzZVNob3dCb3R0b21TaGVldE9wdGlvbnMge1xuICAgIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmO1xufVxuXG5leHBvcnQgY2xhc3MgQm90dG9tU2hlZXRQYXJhbXMge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY29udGV4dDogYW55LCBwdWJsaWMgcmVhZG9ubHkgY2xvc2VDYWxsYmFjazogKC4uLmFyZ3MpID0+IHZvaWQpIHt9XG59XG5cbnR5cGUgVmlld1dpdGhEaWFsb2dSb290ID0gVmlldyAmIHsgX25nRGlhbG9nUm9vdD86IFZpZXcgfTtcblxuaW50ZXJmYWNlIFNoZWV0UmVmPFRSZXN1bHQgPSB1bmtub3duPiB7XG4gICAgZGV0YWNoZWRMb2FkZXI/OiBDb21wb25lbnRSZWY8RGV0YWNoZWRMb2FkZXI+O1xuICAgIGNvbXBvbmVudFZpZXc/OiBWaWV3O1xuICAgIHJlc3VsdDogU3ViamVjdDxUUmVzdWx0Pjtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21TaGVldFNlcnZpY2Uge1xuICAgIHB1YmxpYyBzaG93PFRSZXN1bHQgPSBhbnk+KHR5cGU6IFR5cGU8YW55Piwgb3B0aW9uczogQm90dG9tU2hlZXRPcHRpb25zKTogT2JzZXJ2YWJsZTxUUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dXaXRoQ2xvc2VDYWxsYmFjayh0eXBlLCBvcHRpb25zKS5vYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93V2l0aENsb3NlQ2FsbGJhY2s8VFJlc3VsdCA9IGFueT4odHlwZTogVHlwZTxhbnk+LCBvcHRpb25zOiBCb3R0b21TaGVldE9wdGlvbnMpOiB7IG9ic2VydmFibGU6IE9ic2VydmFibGU8VFJlc3VsdD47IGNsb3NlQ2FsbGJhY2s6ICgpID0+IHZvaWQgfSB7XG4gICAgICAgIGlmICghb3B0aW9ucy52aWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZpZXdDb250YWluZXJSZWY6IE1ha2Ugc3VyZSB5b3UgcGFzcyB2aWV3Q29udGFpbmVyUmVmIGluIEJvdHRvbVNoZWV0T3B0aW9ucy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNoZWV0UmVmOiBTaGVldFJlZjxUUmVzdWx0PiA9IHtcbiAgICAgICAgICAgIHJlc3VsdDogbmV3IFN1YmplY3QoKVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHBhcmVudFZpZXcgPSB0aGlzLmdldFBhcmVudFZpZXcob3B0aW9ucy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgY29uc3QgZmFjdG9yeVJlc29sdmVyID0gdGhpcy5nZXRGYWN0b3J5UmVzb2x2ZXIob3B0aW9ucy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgY29uc3QgYm90dG9tU2hlZXRQYXJhbXMgPSB0aGlzLmdldEJvdHRvbVNoZWV0UGFyYW1zKG9wdGlvbnMuY29udGV4dCwgc2hlZXRSZWYpO1xuXG4gICAgICAgIHNoZWV0UmVmLmRldGFjaGVkTG9hZGVyID0gdGhpcy5jcmVhdGVEZXRhY2hlZExvYWRlcihmYWN0b3J5UmVzb2x2ZXIsIGJvdHRvbVNoZWV0UGFyYW1zLCBvcHRpb25zLnZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgICAgIHRoaXMubG9hZENvbXBvbmVudCh0eXBlLCBzaGVldFJlZikudGhlbigoY29tcG9uZW50VmlldykgPT4ge1xuICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93Qm90dG9tU2hlZXQoe1xuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgLi4uYm90dG9tU2hlZXRQYXJhbXMsXG4gICAgICAgICAgICAgICAgdmlldzogY29tcG9uZW50Vmlld1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvYnNlcnZhYmxlOiBzaGVldFJlZi5yZXN1bHQsXG4gICAgICAgICAgICBjbG9zZUNhbGxiYWNrOiBib3R0b21TaGVldFBhcmFtcy5jbG9zZUNhbGxiYWNrXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYXJlbnRWaWV3KHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpOiBWaWV3IHtcbiAgICAgICAgbGV0IHBhcmVudFZpZXcgPSB2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBWaWV3O1xuXG4gICAgICAgIGlmIChwYXJlbnRWaWV3IGluc3RhbmNlb2YgQXBwSG9zdFZpZXcgJiYgcGFyZW50Vmlldy5uZ0FwcFJvb3QpIHtcbiAgICAgICAgICAgIHBhcmVudFZpZXcgPSBwYXJlbnRWaWV3Lm5nQXBwUm9vdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIF9uZ0RpYWxvZ1Jvb3QgaXMgdGhlIGZpcnN0IGNoaWxkIG9mIHRoZSBwcmV2aW91c2x5IGRldGFjaGVkIHByb3h5LlxuICAgICAgICAvLyBJdCBzaG91bGQgaGF2ZSAndmlld0NvbnRyb2xsZXInIChpT1MpIG9yICdfZGlhbG9nRnJhZ21lbnQnIChBbmRyb2lkKSBhdmFpbGFibGUgZm9yXG4gICAgICAgIC8vIHByZXNlbnRpbmcgZnV0dXJlIGJvdHRvbVNoZWV0cyB2aWV3cy5cbiAgICAgICAgaWYgKChwYXJlbnRWaWV3IGFzIFZpZXdXaXRoRGlhbG9nUm9vdCkuX25nRGlhbG9nUm9vdCkge1xuICAgICAgICAgICAgcGFyZW50VmlldyA9IChwYXJlbnRWaWV3IGFzIFZpZXdXaXRoRGlhbG9nUm9vdCkuX25nRGlhbG9nUm9vdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJlbnRWaWV3O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmFjdG9yeVJlc29sdmVyKGNvbXBvbmVudENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZik6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB7XG4gICAgICAgIC8vIHJlc29sdmUgZnJvbSBwYXJ0aWN1bGFyIG1vZHVsZSAobW9kdWxlUmVmKVxuICAgICAgICAvLyBvciBmcm9tIHNhbWUgbW9kdWxlIGFzIHBhcmVudFZpZXcgKHZpZXdDb250YWluZXJSZWYpXG4gICAgICAgIHJldHVybiBjb21wb25lbnRDb250YWluZXIuaW5qZWN0b3IuZ2V0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDaGlsZEluamVjdG9yKGJvdHRvbVNoZWV0UGFyYW1zOiBCb3R0b21TaGVldFBhcmFtcywgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKTogSW5qZWN0b3Ige1xuICAgICAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQm90dG9tU2hlZXRQYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBib3R0b21TaGVldFBhcmFtc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBwYXJlbnQ6IGNvbnRhaW5lclJlZi5pbmplY3RvclxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJvdHRvbVNoZWV0UGFyYW1zKGNvbnRleHQ6IGFueSwgc2hlZXRSZWY6IFNoZWV0UmVmKTogQm90dG9tU2hlZXRQYXJhbXMge1xuICAgICAgICBjb25zdCBjbG9zZUNhbGxiYWNrID0gb25jZSgoYXJncykgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyByZXN1bHQsIGNvbXBvbmVudFZpZXcsIGRldGFjaGVkTG9hZGVyIH0gPSBzaGVldFJlZjtcblxuICAgICAgICAgICAgcmVzdWx0Lm5leHQoYXJncyk7XG4gICAgICAgICAgICByZXN1bHQuY29tcGxldGUoKTtcblxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudFZpZXcpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRWaWV3LmNsb3NlQm90dG9tU2hlZXQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRldGFjaGVkTG9hZGVyKSB7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWRMb2FkZXIuaW5zdGFuY2UuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIGRldGFjaGVkTG9hZGVyLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBCb3R0b21TaGVldFBhcmFtcyhjb250ZXh0LCBjbG9zZUNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURldGFjaGVkTG9hZGVyKGZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBib3R0b21TaGVldFBhcmFtczogQm90dG9tU2hlZXRQYXJhbXMsIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpOiBDb21wb25lbnRSZWY8RGV0YWNoZWRMb2FkZXI+IHtcbiAgICAgICAgY29uc3QgZGV0YWNoZWRMb2FkZXJGYWN0b3J5ID0gZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KERldGFjaGVkTG9hZGVyKTtcbiAgICAgICAgY29uc3QgY2hpbGRJbmplY3RvciA9IHRoaXMuY3JlYXRlQ2hpbGRJbmplY3Rvcihib3R0b21TaGVldFBhcmFtcywgdmlld0NvbnRhaW5lclJlZik7XG5cbiAgICAgICAgcmV0dXJuIHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGRldGFjaGVkTG9hZGVyRmFjdG9yeSwgMCwgY2hpbGRJbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkQ29tcG9uZW50KHR5cGU6IFR5cGU8YW55Piwgc2hlZXRSZWY6IFNoZWV0UmVmKTogUHJvbWlzZTxWaWV3PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBhd2FpdCBzaGVldFJlZi5kZXRhY2hlZExvYWRlci5pbnN0YW5jZS5sb2FkQ29tcG9uZW50KHR5cGUpO1xuICAgICAgICAgICAgY29uc3QgZGV0YWNoZWRQcm94eSA9IGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50IGFzIFByb3h5Vmlld0NvbnRhaW5lcjtcblxuICAgICAgICAgICAgaWYgKGRldGFjaGVkUHJveHkuZ2V0Q2hpbGRyZW5Db3VudCgpID4gMSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQm90dG9tU2hlZXQgY29udGVudCBoYXMgbW9yZSB0aGFuIG9uZSByb290IHZpZXcuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNoZWV0UmVmLmNvbXBvbmVudFZpZXcgPSBkZXRhY2hlZFByb3h5LmdldENoaWxkQXQoMCk7XG5cbiAgICAgICAgICAgIGlmIChzaGVldFJlZi5jb21wb25lbnRWaWV3LnBhcmVudCBpbnN0YW5jZW9mIExheW91dEJhc2UpIHtcbiAgICAgICAgICAgICAgICAoc2hlZXRSZWYuY29tcG9uZW50Vmlldy5wYXJlbnQgYXMgVmlld1dpdGhEaWFsb2dSb290KS5fbmdEaWFsb2dSb290ID0gc2hlZXRSZWYuY29tcG9uZW50VmlldztcbiAgICAgICAgICAgICAgICBzaGVldFJlZi5jb21wb25lbnRWaWV3LnBhcmVudC5yZW1vdmVDaGlsZChzaGVldFJlZi5jb21wb25lbnRWaWV3KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNoZWV0UmVmLmNvbXBvbmVudFZpZXc7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,150 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { ComponentFactoryResolver, Injector, Injectable, NgModule } from '@angular/core';
3
- import { __awaiter } from 'tslib';
4
- import { AppHostView, once, DetachedLoader } from '@nativescript/angular';
5
- import { LayoutBase } from '@nativescript/core';
6
- import { Subject } from 'rxjs';
7
- import { install } from '@nativescript-community/ui-material-bottomsheet';
8
-
9
- class BottomSheetParams {
10
- constructor(context, closeCallback) {
11
- this.context = context;
12
- this.closeCallback = closeCallback;
13
- }
14
- }
15
- class BottomSheetService {
16
- show(type, options) {
17
- return this.showWithCloseCallback(type, options).observable;
18
- }
19
- showWithCloseCallback(type, options) {
20
- if (!options.viewContainerRef) {
21
- throw new Error('No viewContainerRef: Make sure you pass viewContainerRef in BottomSheetOptions.');
22
- }
23
- const sheetRef = {
24
- result: new Subject()
25
- };
26
- const parentView = this.getParentView(options.viewContainerRef);
27
- const factoryResolver = this.getFactoryResolver(options.viewContainerRef);
28
- const bottomSheetParams = this.getBottomSheetParams(options.context, sheetRef);
29
- sheetRef.detachedLoader = this.createDetachedLoader(factoryResolver, bottomSheetParams, options.viewContainerRef);
30
- this.loadComponent(type, sheetRef).then((componentView) => {
31
- parentView.showBottomSheet(Object.assign(Object.assign(Object.assign({}, options), bottomSheetParams), { view: componentView }));
32
- });
33
- return {
34
- observable: sheetRef.result,
35
- closeCallback: bottomSheetParams.closeCallback
36
- };
37
- }
38
- getParentView(viewContainerRef) {
39
- let parentView = viewContainerRef.element.nativeElement;
40
- if (parentView instanceof AppHostView && parentView.ngAppRoot) {
41
- parentView = parentView.ngAppRoot;
42
- }
43
- // _ngDialogRoot is the first child of the previously detached proxy.
44
- // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for
45
- // presenting future bottomSheets views.
46
- if (parentView._ngDialogRoot) {
47
- parentView = parentView._ngDialogRoot;
48
- }
49
- return parentView;
50
- }
51
- getFactoryResolver(componentContainer) {
52
- // resolve from particular module (moduleRef)
53
- // or from same module as parentView (viewContainerRef)
54
- return componentContainer.injector.get(ComponentFactoryResolver);
55
- }
56
- createChildInjector(bottomSheetParams, containerRef) {
57
- return Injector.create({
58
- providers: [
59
- {
60
- provide: BottomSheetParams,
61
- useValue: bottomSheetParams
62
- }
63
- ],
64
- parent: containerRef.injector
65
- });
66
- }
67
- getBottomSheetParams(context, sheetRef) {
68
- const closeCallback = once((args) => {
69
- const { result, componentView, detachedLoader } = sheetRef;
70
- result.next(args);
71
- result.complete();
72
- if (componentView) {
73
- componentView.closeBottomSheet();
74
- }
75
- if (detachedLoader) {
76
- detachedLoader.instance.detectChanges();
77
- detachedLoader.destroy();
78
- }
79
- });
80
- return new BottomSheetParams(context, closeCallback);
81
- }
82
- createDetachedLoader(factoryResolver, bottomSheetParams, viewContainerRef) {
83
- const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);
84
- const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);
85
- return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);
86
- }
87
- loadComponent(type, sheetRef) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- try {
90
- const componentRef = yield sheetRef.detachedLoader.instance.loadComponent(type);
91
- const detachedProxy = componentRef.location.nativeElement;
92
- if (detachedProxy.getChildrenCount() > 1) {
93
- throw new Error('BottomSheet content has more than one root view.');
94
- }
95
- sheetRef.componentView = detachedProxy.getChildAt(0);
96
- if (sheetRef.componentView.parent instanceof LayoutBase) {
97
- sheetRef.componentView.parent._ngDialogRoot = sheetRef.componentView;
98
- sheetRef.componentView.parent.removeChild(sheetRef.componentView);
99
- }
100
- return sheetRef.componentView;
101
- }
102
- catch (err) {
103
- console.error(err);
104
- return null;
105
- }
106
- });
107
- }
108
- }
109
- BottomSheetService.ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
110
- BottomSheetService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BottomSheetService, factory: BottomSheetService.ɵfac, providedIn: 'root' });
111
- (function () {
112
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetService, [{
113
- type: Injectable,
114
- args: [{
115
- providedIn: 'root'
116
- }]
117
- }], null, null);
118
- })();
119
-
120
- class NativeScriptMaterialBottomSheetModule {
121
- constructor() {
122
- if (!NativeScriptMaterialBottomSheetModule.initialized) {
123
- install();
124
- NativeScriptMaterialBottomSheetModule.initialized = true;
125
- }
126
- }
127
- static forRoot() {
128
- return {
129
- ngModule: NativeScriptMaterialBottomSheetModule,
130
- providers: [BottomSheetService],
131
- };
132
- }
133
- }
134
- // This flag help us to avoid problems when using the new development workflow
135
- NativeScriptMaterialBottomSheetModule.initialized = false;
136
- NativeScriptMaterialBottomSheetModule.ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
137
- NativeScriptMaterialBottomSheetModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
138
- NativeScriptMaterialBottomSheetModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
139
- (function () {
140
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
141
- type: NgModule
142
- }], function () { return []; }, null);
143
- })();
144
-
145
- /**
146
- * Generated bundle index. Do not edit.
147
- */
148
-
149
- export { BottomSheetParams, BottomSheetService, NativeScriptMaterialBottomSheetModule };
150
- //# sourceMappingURL=nativescript-community-ui-material-bottomsheet-angular.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nativescript-community-ui-material-bottomsheet-angular.mjs","sources":["../../../../src/bottomsheet/angular/bottomsheet.service.ts","../../../../src/bottomsheet/angular/bottomsheet.module.ts","../../../../src/bottomsheet/angular/nativescript-community-ui-material-bottomsheet-angular.ts"],"sourcesContent":["import { ComponentFactoryResolver, ComponentRef, Injectable, Injector, Type, ViewContainerRef } from '@angular/core';\nimport type { BottomSheetOptions as MaterialBottomSheetOptions } from '@nativescript-community/ui-material-bottomsheet';\nimport { AppHostView, DetachedLoader, once } from '@nativescript/angular';\nimport { LayoutBase, ProxyViewContainer, View } from '@nativescript/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport type BaseShowBottomSheetOptions = Omit<MaterialBottomSheetOptions, 'closeCallback' | 'view'>;\n\nexport interface BottomSheetOptions extends BaseShowBottomSheetOptions {\n viewContainerRef?: ViewContainerRef;\n}\n\nexport class BottomSheetParams {\n public constructor(public readonly context: any, public readonly closeCallback: (...args) => void) {}\n}\n\ntype ViewWithDialogRoot = View & { _ngDialogRoot?: View };\n\ninterface SheetRef<TResult = unknown> {\n detachedLoader?: ComponentRef<DetachedLoader>;\n componentView?: View;\n result: Subject<TResult>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BottomSheetService {\n public show<TResult = any>(type: Type<any>, options: BottomSheetOptions): Observable<TResult> {\n return this.showWithCloseCallback(type, options).observable;\n }\n\n public showWithCloseCallback<TResult = any>(type: Type<any>, options: BottomSheetOptions): { observable: Observable<TResult>; closeCallback: () => void } {\n if (!options.viewContainerRef) {\n throw new Error('No viewContainerRef: Make sure you pass viewContainerRef in BottomSheetOptions.');\n }\n\n const sheetRef: SheetRef<TResult> = {\n result: new Subject()\n };\n\n const parentView = this.getParentView(options.viewContainerRef);\n const factoryResolver = this.getFactoryResolver(options.viewContainerRef);\n const bottomSheetParams = this.getBottomSheetParams(options.context, sheetRef);\n\n sheetRef.detachedLoader = this.createDetachedLoader(factoryResolver, bottomSheetParams, options.viewContainerRef);\n\n this.loadComponent(type, sheetRef).then((componentView) => {\n parentView.showBottomSheet({\n ...options,\n ...bottomSheetParams,\n view: componentView\n });\n });\n\n return {\n observable: sheetRef.result,\n closeCallback: bottomSheetParams.closeCallback\n };\n }\n\n private getParentView(viewContainerRef: ViewContainerRef): View {\n let parentView = viewContainerRef.element.nativeElement as View;\n\n if (parentView instanceof AppHostView && parentView.ngAppRoot) {\n parentView = parentView.ngAppRoot;\n }\n\n // _ngDialogRoot is the first child of the previously detached proxy.\n // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for\n // presenting future bottomSheets views.\n if ((parentView as ViewWithDialogRoot)._ngDialogRoot) {\n parentView = (parentView as ViewWithDialogRoot)._ngDialogRoot;\n }\n\n return parentView;\n }\n\n private getFactoryResolver(componentContainer: ViewContainerRef): ComponentFactoryResolver {\n // resolve from particular module (moduleRef)\n // or from same module as parentView (viewContainerRef)\n return componentContainer.injector.get(ComponentFactoryResolver);\n }\n\n private createChildInjector(bottomSheetParams: BottomSheetParams, containerRef: ViewContainerRef): Injector {\n return Injector.create({\n providers: [\n {\n provide: BottomSheetParams,\n useValue: bottomSheetParams\n }\n ],\n parent: containerRef.injector\n });\n }\n\n private getBottomSheetParams(context: any, sheetRef: SheetRef): BottomSheetParams {\n const closeCallback = once((args) => {\n const { result, componentView, detachedLoader } = sheetRef;\n\n result.next(args);\n result.complete();\n\n if (componentView) {\n componentView.closeBottomSheet();\n }\n\n if (detachedLoader) {\n detachedLoader.instance.detectChanges();\n detachedLoader.destroy();\n }\n });\n\n return new BottomSheetParams(context, closeCallback);\n }\n\n private createDetachedLoader(factoryResolver: ComponentFactoryResolver, bottomSheetParams: BottomSheetParams, viewContainerRef: ViewContainerRef): ComponentRef<DetachedLoader> {\n const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);\n const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);\n\n return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);\n }\n\n private async loadComponent(type: Type<any>, sheetRef: SheetRef): Promise<View> {\n try {\n const componentRef = await sheetRef.detachedLoader.instance.loadComponent(type);\n const detachedProxy = componentRef.location.nativeElement as ProxyViewContainer;\n\n if (detachedProxy.getChildrenCount() > 1) {\n throw new Error('BottomSheet content has more than one root view.');\n }\n\n sheetRef.componentView = detachedProxy.getChildAt(0);\n\n if (sheetRef.componentView.parent instanceof LayoutBase) {\n (sheetRef.componentView.parent as ViewWithDialogRoot)._ngDialogRoot = sheetRef.componentView;\n sheetRef.componentView.parent.removeChild(sheetRef.componentView);\n }\n\n return sheetRef.componentView;\n } catch (err) {\n console.error(err);\n\n return null;\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { BottomSheetService } from './bottomsheet.service';\nimport { install } from '@nativescript-community/ui-material-bottomsheet';\n\n@NgModule()\nexport class NativeScriptMaterialBottomSheetModule {\n // This flag help us to avoid problems when using the new development workflow\n private static initialized = false;\n\n static forRoot(): ModuleWithProviders<NativeScriptMaterialBottomSheetModule> {\n return {\n ngModule: NativeScriptMaterialBottomSheetModule,\n providers: [BottomSheetService],\n };\n }\n\n public constructor() {\n if (!NativeScriptMaterialBottomSheetModule.initialized) {\n install();\n NativeScriptMaterialBottomSheetModule.initialized = true;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
File without changes