@nativescript-community/ui-material-bottomsheet 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +1569 -0
  2. package/LICENSE +201 -0
  3. package/README.md +192 -0
  4. package/angular/bottomsheet.module.d.ts +10 -0
  5. package/angular/bottomsheet.service.d.ts +28 -0
  6. package/angular/bundles/nativescript-community-ui-material-bottomsheet-angular.umd.js +179 -0
  7. package/angular/bundles/nativescript-community-ui-material-bottomsheet-angular.umd.js.map +1 -0
  8. package/angular/bundles/nativescript-community-ui-material-bottomsheet-angular.umd.min.js +2 -0
  9. package/angular/bundles/nativescript-community-ui-material-bottomsheet-angular.umd.min.js.map +1 -0
  10. package/angular/esm2015/bottomsheet.module.js +26 -0
  11. package/angular/esm2015/bottomsheet.service.js +109 -0
  12. package/angular/esm2015/index.js +3 -0
  13. package/angular/esm2015/nativescript-community-ui-material-bottomsheet-angular.js +2 -0
  14. package/angular/fesm2015/nativescript-community-ui-material-bottomsheet-angular.js +135 -0
  15. package/angular/fesm2015/nativescript-community-ui-material-bottomsheet-angular.js.map +1 -0
  16. package/angular/index.d.ts +2 -0
  17. package/angular/nativescript-community-ui-material-bottomsheet-angular.d.ts +2 -0
  18. package/angular/package.json +16 -0
  19. package/bottomsheet-common.d.ts +35 -0
  20. package/bottomsheet-common.js +94 -0
  21. package/bottomsheet-common.js.map +1 -0
  22. package/bottomsheet.android.d.ts +10 -0
  23. package/bottomsheet.android.js +143 -0
  24. package/bottomsheet.android.js.map +1 -0
  25. package/bottomsheet.d.ts +89 -0
  26. package/bottomsheet.ios.d.ts +17 -0
  27. package/bottomsheet.ios.js +360 -0
  28. package/bottomsheet.ios.js.map +1 -0
  29. package/package.json +51 -0
  30. package/platforms/android/include.gradle +8 -0
  31. package/platforms/android/java/com/nativescript/material/bottomsheet/BottomSheetDialog.java +38 -0
  32. package/platforms/android/java/com/nativescript/material/bottomsheet/BottomSheetDialogFragment.java +73 -0
  33. package/platforms/android/ui_material_bottomsheet.aar +0 -0
  34. package/platforms/ios/Podfile +1 -0
  35. package/pnpm-lock.yaml +90 -0
  36. package/vue/index.d.ts +16 -0
  37. package/vue/index.js +51 -0
  38. package/vue/index.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/bottomsheet/angular/bottomsheet.service.ts","../../../../src/bottomsheet/angular/bottomsheet.module.ts"],"names":["context","closeCallback","this","BottomSheetService","prototype","show","type","options","showWithCloseCallback","observable","viewContainerRef","Error","sheetRef","result","Subject","parentView","getParentView","factoryResolver","getFactoryResolver","bottomSheetParams","getBottomSheetParams","detachedLoader","createDetachedLoader","loadComponent","then","componentView","showBottomSheet","Object","assign","view","element","nativeElement","AppHostView","ngAppRoot","_ngDialogRoot","componentContainer","injector","get","ComponentFactoryResolver","createChildInjector","containerRef","Injector","create","providers","provide","BottomSheetParams","useValue","parent","once","args","next","complete","closeBottomSheet","instance","detectChanges","destroy","detachedLoaderFactory","resolveComponentFactory","DetachedLoader","childInjector","createComponent","componentRef","_a","sent","detachedProxy","location","getChildrenCount","getChildAt","LayoutBase","removeChild","console","error","err_1","factory","ɵfac","providedIn","Injectable","NativeScriptMaterialBottomSheetModule","initialized","install","forRoot","ngModule","NgModule"],"mappings":"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","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"]}
@@ -0,0 +1,26 @@
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
+ NativeScriptMaterialBottomSheetModule.initialized = false;
20
+ NativeScriptMaterialBottomSheetModule.ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
21
+ NativeScriptMaterialBottomSheetModule.ɵmod = i0.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
22
+ NativeScriptMaterialBottomSheetModule.ɵinj = i0.ɵɵdefineInjector({});
23
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
24
+ type: NgModule
25
+ }], function () { return []; }, null); })();
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tc2hlZXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JvdHRvbXNoZWV0L2FuZ3VsYXIvYm90dG9tc2hlZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFHMUUsTUFBTSxPQUFPLHFDQUFxQztJQVc5QztRQUNJLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxXQUFXLEVBQUU7WUFDcEQsT0FBTyxFQUFFLENBQUM7WUFDVixxQ0FBcUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQVpELE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTztZQUNILFFBQVEsRUFBRSxxQ0FBcUM7WUFDL0MsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7U0FDbEMsQ0FBQztJQUNOLENBQUM7O0FBUGMsaURBQVcsR0FBRyxLQUFLLENBQUM7MEhBRjFCLHFDQUFxQzt5RUFBckMscUNBQXFDOzt1RkFBckMscUNBQXFDO2NBRGpELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCb3R0b21TaGVldFNlcnZpY2UgfSBmcm9tICcuL2JvdHRvbXNoZWV0LnNlcnZpY2UnO1xuaW1wb3J0IHsgaW5zdGFsbCB9IGZyb20gJ0BuYXRpdmVzY3JpcHQtY29tbXVuaXR5L3VpLW1hdGVyaWFsLWJvdHRvbXNoZWV0JztcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOYXRpdmVTY3JpcHRNYXRlcmlhbEJvdHRvbVNoZWV0TW9kdWxlIHtcbiAgICAvLyBUaGlzIGZsYWcgaGVscCB1cyB0byBhdm9pZCBwcm9ibGVtcyB3aGVuIHVzaW5nIHRoZSBuZXcgZGV2ZWxvcG1lbnQgd29ya2Zsb3dcbiAgICBwcml2YXRlIHN0YXRpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOYXRpdmVTY3JpcHRNYXRlcmlhbEJvdHRvbVNoZWV0TW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogTmF0aXZlU2NyaXB0TWF0ZXJpYWxCb3R0b21TaGVldE1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW0JvdHRvbVNoZWV0U2VydmljZV0sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIU5hdGl2ZVNjcmlwdE1hdGVyaWFsQm90dG9tU2hlZXRNb2R1bGUuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGluc3RhbGwoKTtcbiAgICAgICAgICAgIE5hdGl2ZVNjcmlwdE1hdGVyaWFsQm90dG9tU2hlZXRNb2R1bGUuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,109 @@
1
+ import { ComponentFactoryResolver, Injectable, Injector } from '@angular/core';
2
+ import { AppHostView, DetachedLoader, once } from '@nativescript/angular';
3
+ import { LayoutBase } from '@nativescript/core';
4
+ import { 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(Object.assign(Object.assign(Object.assign({}, options), bottomSheetParams), { view: componentView }));
29
+ });
30
+ return {
31
+ observable: sheetRef.result,
32
+ closeCallback: bottomSheetParams.closeCallback
33
+ };
34
+ }
35
+ getParentView(viewContainerRef) {
36
+ let parentView = viewContainerRef.element.nativeElement;
37
+ if (parentView instanceof AppHostView && parentView.ngAppRoot) {
38
+ parentView = parentView.ngAppRoot;
39
+ }
40
+ if (parentView._ngDialogRoot) {
41
+ parentView = parentView._ngDialogRoot;
42
+ }
43
+ return parentView;
44
+ }
45
+ getFactoryResolver(componentContainer) {
46
+ return componentContainer.injector.get(ComponentFactoryResolver);
47
+ }
48
+ createChildInjector(bottomSheetParams, containerRef) {
49
+ return Injector.create({
50
+ providers: [
51
+ {
52
+ provide: BottomSheetParams,
53
+ useValue: bottomSheetParams
54
+ }
55
+ ],
56
+ parent: containerRef.injector
57
+ });
58
+ }
59
+ getBottomSheetParams(context, sheetRef) {
60
+ const closeCallback = once((args) => {
61
+ const { result, componentView, detachedLoader } = sheetRef;
62
+ result.next(args);
63
+ result.complete();
64
+ if (componentView) {
65
+ componentView.closeBottomSheet();
66
+ }
67
+ if (detachedLoader) {
68
+ detachedLoader.instance.detectChanges();
69
+ detachedLoader.destroy();
70
+ }
71
+ });
72
+ return new BottomSheetParams(context, closeCallback);
73
+ }
74
+ createDetachedLoader(factoryResolver, bottomSheetParams, viewContainerRef) {
75
+ const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);
76
+ const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);
77
+ return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);
78
+ }
79
+ loadComponent(type, sheetRef) {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ try {
82
+ const componentRef = yield sheetRef.detachedLoader.instance.loadComponent(type);
83
+ const detachedProxy = componentRef.location.nativeElement;
84
+ if (detachedProxy.getChildrenCount() > 1) {
85
+ throw new Error('BottomSheet content has more than one root view.');
86
+ }
87
+ sheetRef.componentView = detachedProxy.getChildAt(0);
88
+ if (sheetRef.componentView.parent instanceof LayoutBase) {
89
+ sheetRef.componentView.parent._ngDialogRoot = sheetRef.componentView;
90
+ sheetRef.componentView.parent.removeChild(sheetRef.componentView);
91
+ }
92
+ return sheetRef.componentView;
93
+ }
94
+ catch (err) {
95
+ console.error(err);
96
+ return null;
97
+ }
98
+ });
99
+ }
100
+ }
101
+ BottomSheetService.ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
102
+ BottomSheetService.ɵprov = i0.ɵɵdefineInjectable({ token: BottomSheetService, factory: BottomSheetService.ɵfac, providedIn: 'root' });
103
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetService, [{
104
+ type: Injectable,
105
+ args: [{
106
+ providedIn: 'root'
107
+ }]
108
+ }], null, null); })();
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tc2hlZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ib3R0b21zaGVldC9hbmd1bGFyL2JvdHRvbXNoZWV0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUVySCxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUE0QixNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBUTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBbUMsT0FBWSxFQUFrQixhQUFnQztRQUE5RCxZQUFPLEdBQVAsT0FBTyxDQUFLO1FBQWtCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtJQUFHLENBQUM7Q0FDeEc7QUFhRCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLElBQUksQ0FBZ0IsSUFBZSxFQUFFLE9BQTJCO1FBQ25FLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDaEUsQ0FBQztJQUVNLHFCQUFxQixDQUFnQixJQUFlLEVBQUUsT0FBMkI7UUFDcEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGlGQUFpRixDQUFDLENBQUM7U0FDdEc7UUFFRCxNQUFNLFFBQVEsR0FBc0I7WUFDaEMsTUFBTSxFQUFFLElBQUksT0FBTyxFQUFFO1NBQ3hCLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sZUFBZSxHQUFHLElB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QUMsSUFBZSxFQUFFLFFBQWtCOztZQUMzRCxJQUFJO2dCQUNBLE1BQU0sWUFBWSxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRixNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQW1DLENBQUM7Z0JBRWhGLElBQUksYUFBYSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7aUJBQ3ZFO2dCQUVELFFBQVEsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFckQsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sWUFBWSxVQUFVLEVBQUU7b0JBQ3BELFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBNkIsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztvQkFDN0YsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDckU7Z0JBRUQsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDO2FBQ2pDO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFbkIsT0FBTyxJQUFJLENBQUM7YUFDZjtRQUNMLENBQUM7S0FBQTs7b0ZBdEhRLGtCQUFrQjswREFBbEIsa0JBQWtCLFdBQWxCLGtCQUFrQixtQkFGZixNQUFNO3VGQUVULGtCQUFrQjtjQUg5QixVQUFVO2VBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQm90dG9tU2hlZXRPcHRpb25zIGFzIE1hdGVyaWFsQm90dG9tU2hlZXRPcHRpb25zIH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC1jb21tdW5pdHkvdWktbWF0ZXJpYWwtYm90dG9tc2hlZXQnO1xuaW1wb3J0IHsgQXBwSG9zdFZpZXcsIERldGFjaGVkTG9hZGVyLCBvbmNlIH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC9hbmd1bGFyJztcbmltcG9ydCB7IExheW91dEJhc2UsIFByb3h5Vmlld0NvbnRhaW5lciwgVmlldyB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEJhc2VTaG93Qm90dG9tU2hlZXRPcHRpb25zID0gT21pdDxNYXRlcmlhbEJvdHRvbVNoZWV0T3B0aW9ucywgJ2Nsb3NlQ2FsbGJhY2snIHwgJ3ZpZXcnPjtcblxuZXhwb3J0IGludGVyZmFjZSBCb3R0b21TaGVldE9wdGlvbnMgZXh0ZW5kcyBCYXNlU2hvd0JvdHRvbVNoZWV0T3B0aW9ucyB7XG4gICAgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG59XG5cbmV4cG9ydCBjbGFzcyBCb3R0b21TaGVldFBhcmFtcyB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjb250ZXh0OiBhbnksIHB1YmxpYyByZWFkb25seSBjbG9zZUNhbGxiYWNrOiAoLi4uYXJncykgPT4gdm9pZCkge31cbn1cblxudHlwZSBWaWV3V2l0aERpYWxvZ1Jvb3QgPSBWaWV3ICYgeyBfbmdEaWFsb2dSb290PzogVmlldyB9O1xuXG5pbnRlcmZhY2UgU2hlZXRSZWY8VFJlc3VsdCA9IHVua25vd24+IHtcbiAgICBkZXRhY2hlZExvYWRlcj86IENvbXBvbmVudFJlZjxEZXRhY2hlZExvYWRlcj47XG4gICAgY29tcG9uZW50Vmlldz86IFZpZXc7XG4gICAgcmVzdWx0OiBTdWJqZWN0PFRSZXN1bHQ+O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJvdHRvbVNoZWV0U2VydmljZSB7XG4gICAgcHVibGljIHNob3c8VFJlc3VsdCA9IGFueT4odHlwZTogVHlwZTxhbnk+LCBvcHRpb25zOiBCb3R0b21TaGVldE9wdGlvbnMpOiBPYnNlcnZhYmxlPFRSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd1dpdGhDbG9zZUNhbGxiYWNrKHR5cGUsIG9wdGlvbnMpLm9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dXaXRoQ2xvc2VDYWxsYmFjazxUUmVzdWx0ID0gYW55Pih0eXBlOiBUeXBlPGFueT4sIG9wdGlvbnM6IEJvdHRvbVNoZWV0T3B0aW9ucyk6IHsgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUUmVzdWx0PjsgY2xvc2VDYWxsYmFjazogKCkgPT4gdm9pZCB9IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLnZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdmlld0NvbnRhaW5lclJlZjogTWFrZSBzdXJlIHlvdSBwYXNzIHZpZXdDb250YWluZXJSZWYgaW4gQm90dG9tU2hlZXRPcHRpb25zLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2hlZXRSZWY6IFNoZWV0UmVmPFRSZXN1bHQ+ID0ge1xuICAgICAgICAgICAgcmVzdWx0OiBuZXcgU3ViamVjdCgpXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcGFyZW50VmlldyA9IHRoaXMuZ2V0UGFyZW50VmlldyhvcHRpb25zLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICBjb25zdCBmYWN0b3J5UmVzb2x2ZXIgPSB0aGlzLmdldEZhY3RvcnlSZXNvbHZlcihvcHRpb25zLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICBjb25zdCBib3R0b21TaGVldFBhcmFtcyA9IHRoaXMuZ2V0Qm90dG9tU2hlZXRQYXJhbXMob3B0aW9ucy5jb250ZXh0LCBzaGVldFJlZik7XG5cbiAgICAgICAgc2hlZXRSZWYuZGV0YWNoZWRMb2FkZXIgPSB0aGlzLmNyZWF0ZURldGFjaGVkTG9hZGVyKGZhY3RvcnlSZXNvbHZlciwgYm90dG9tU2hlZXRQYXJhbXMsIG9wdGlvbnMudmlld0NvbnRhaW5lclJlZik7XG5cbiAgICAgICAgdGhpcy5sb2FkQ29tcG9uZW50KHR5cGUsIHNoZWV0UmVmKS50aGVuKChjb21wb25lbnRWaWV3KSA9PiB7XG4gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3dCb3R0b21TaGVldCh7XG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi5ib3R0b21TaGVldFBhcmFtcyxcbiAgICAgICAgICAgICAgICB2aWV3OiBjb21wb25lbnRWaWV3XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9ic2VydmFibGU6IHNoZWV0UmVmLnJlc3VsdCxcbiAgICAgICAgICAgIGNsb3NlQ2FsbGJhY2s6IGJvdHRvbVNoZWV0UGFyYW1zLmNsb3NlQ2FsbGJhY2tcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhcmVudFZpZXcodmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZik6IFZpZXcge1xuICAgICAgICBsZXQgcGFyZW50VmlldyA9IHZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIFZpZXc7XG5cbiAgICAgICAgaWYgKHBhcmVudFZpZXcgaW5zdGFuY2VvZiBBcHBIb3N0VmlldyAmJiBwYXJlbnRWaWV3Lm5nQXBwUm9vdCkge1xuICAgICAgICAgICAgcGFyZW50VmlldyA9IHBhcmVudFZpZXcubmdBcHBSb290O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gX25nRGlhbG9nUm9vdCBpcyB0aGUgZmlyc3QgY2hpbGQgb2YgdGhlIHByZXZpb3VzbHkgZGV0YWNoZWQgcHJveHkuXG4gICAgICAgIC8vIEl0IHNob3VsZCBoYXZlICd2aWV3Q29udHJvbGxlcicgKGlPUykgb3IgJ19kaWFsb2dGcmFnbWVudCcgKEFuZHJvaWQpIGF2YWlsYWJsZSBmb3JcbiAgICAgICAgLy8gcHJlc2VudGluZyBmdXR1cmUgYm90dG9tU2hlZXRzIHZpZXdzLlxuICAgICAgICBpZiAoKHBhcmVudFZpZXcgYXMgVmlld1dpdGhEaWFsb2dSb290KS5fbmdEaWFsb2dSb290KSB7XG4gICAgICAgICAgICBwYXJlbnRWaWV3ID0gKHBhcmVudFZpZXcgYXMgVmlld1dpdGhEaWFsb2dSb290KS5fbmdEaWFsb2dSb290O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmVudFZpZXc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGYWN0b3J5UmVzb2x2ZXIoY29tcG9uZW50Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKTogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIHtcbiAgICAgICAgLy8gcmVzb2x2ZSBmcm9tIHBhcnRpY3VsYXIgbW9kdWxlIChtb2R1bGVSZWYpXG4gICAgICAgIC8vIG9yIGZyb20gc2FtZSBtb2R1bGUgYXMgcGFyZW50VmlldyAodmlld0NvbnRhaW5lclJlZilcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudENvbnRhaW5lci5pbmplY3Rvci5nZXQoQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNoaWxkSW5qZWN0b3IoYm90dG9tU2hlZXRQYXJhbXM6IEJvdHRvbVNoZWV0UGFyYW1zLCBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpOiBJbmplY3RvciB7XG4gICAgICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBCb3R0b21TaGVldFBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGJvdHRvbVNoZWV0UGFyYW1zXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHBhcmVudDogY29udGFpbmVyUmVmLmluamVjdG9yXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Qm90dG9tU2hlZXRQYXJhbXMoY29udGV4dDogYW55LCBzaGVldFJlZjogU2hlZXRSZWYpOiBCb3R0b21TaGVldFBhcmFtcyB7XG4gICAgICAgIGNvbnN0IGNsb3NlQ2FsbGJhY2sgPSBvbmNlKChhcmdzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHJlc3VsdCwgY29tcG9uZW50VmlldywgZGV0YWNoZWRMb2FkZXIgfSA9IHNoZWV0UmVmO1xuXG4gICAgICAgICAgICByZXN1bHQubmV4dChhcmdzKTtcbiAgICAgICAgICAgIHJlc3VsdC5jb21wbGV0ZSgpO1xuXG4gICAgICAgICAgICBpZiAoY29tcG9uZW50Vmlldykge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFZpZXcuY2xvc2VCb3R0b21TaGVldCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGV0YWNoZWRMb2FkZXIpIHtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZExvYWRlci5pbnN0YW5jZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWRMb2FkZXIuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV3IEJvdHRvbVNoZWV0UGFyYW1zKGNvbnRleHQsIGNsb3NlQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGV0YWNoZWRMb2FkZXIoZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGJvdHRvbVNoZWV0UGFyYW1zOiBCb3R0b21TaGVldFBhcmFtcywgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZik6IENvbXBvbmVudFJlZjxEZXRhY2hlZExvYWRlcj4ge1xuICAgICAgICBjb25zdCBkZXRhY2hlZExvYWRlckZhY3RvcnkgPSBmYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRGV0YWNoZWRMb2FkZXIpO1xuICAgICAgICBjb25zdCBjaGlsZEluamVjdG9yID0gdGhpcy5jcmVhdGVDaGlsZEluamVjdG9yKGJvdHRvbVNoZWV0UGFyYW1zLCB2aWV3Q29udGFpbmVyUmVmKTtcblxuICAgICAgICByZXR1cm4gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZGV0YWNoZWRMb2FkZXJGYWN0b3J5LCAwLCBjaGlsZEluamVjdG9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGxvYWRDb21wb25lbnQodHlwZTogVHlwZTxhbnk+LCBzaGVldFJlZjogU2hlZXRSZWYpOiBQcm9taXNlPFZpZXc+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGF3YWl0IHNoZWV0UmVmLmRldGFjaGVkTG9hZGVyLmluc3RhbmNlLmxvYWRDb21wb25lbnQodHlwZSk7XG4gICAgICAgICAgICBjb25zdCBkZXRhY2hlZFByb3h5ID0gY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQgYXMgUHJveHlWaWV3Q29udGFpbmVyO1xuXG4gICAgICAgICAgICBpZiAoZGV0YWNoZWRQcm94eS5nZXRDaGlsZHJlbkNvdW50KCkgPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCb3R0b21TaGVldCBjb250ZW50IGhhcyBtb3JlIHRoYW4gb25lIHJvb3Qgdmlldy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2hlZXRSZWYuY29tcG9uZW50VmlldyA9IGRldGFjaGVkUHJveHkuZ2V0Q2hpbGRBdCgwKTtcblxuICAgICAgICAgICAgaWYgKHNoZWV0UmVmLmNvbXBvbmVudFZpZXcucGFyZW50IGluc3RhbmNlb2YgTGF5b3V0QmFzZSkge1xuICAgICAgICAgICAgICAgIChzaGVldFJlZi5jb21wb25lbnRWaWV3LnBhcmVudCBhcyBWaWV3V2l0aERpYWxvZ1Jvb3QpLl9uZ0RpYWxvZ1Jvb3QgPSBzaGVldFJlZi5jb21wb25lbnRWaWV3O1xuICAgICAgICAgICAgICAgIHNoZWV0UmVmLmNvbXBvbmVudFZpZXcucGFyZW50LnJlbW92ZUNoaWxkKHNoZWV0UmVmLmNvbXBvbmVudFZpZXcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc2hlZXRSZWYuY29tcG9uZW50VmlldztcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './bottomsheet.module';
2
+ export * from './bottomsheet.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYm90dG9tc2hlZXQvYW5ndWxhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2JvdHRvbXNoZWV0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2JvdHRvbXNoZWV0LnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './index';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlc2NyaXB0LWNvbW11bml0eS11aS1tYXRlcmlhbC1ib3R0b21zaGVldC1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JvdHRvbXNoZWV0L2FuZ3VsYXIvbmF0aXZlc2NyaXB0LWNvbW11bml0eS11aS1tYXRlcmlhbC1ib3R0b21zaGVldC1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,135 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ComponentFactoryResolver, Injector, Injectable, NgModule } from '@angular/core';
3
+ import { AppHostView, once, DetachedLoader } from '@nativescript/angular';
4
+ import { LayoutBase } from '@nativescript/core';
5
+ import { Subject } from 'rxjs';
6
+ import { install } from '@nativescript-community/ui-material-bottomsheet';
7
+
8
+ class BottomSheetParams {
9
+ constructor(context, closeCallback) {
10
+ this.context = context;
11
+ this.closeCallback = closeCallback;
12
+ }
13
+ }
14
+ 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(Object.assign(Object.assign(Object.assign({}, options), bottomSheetParams), { view: componentView }));
31
+ });
32
+ return {
33
+ observable: sheetRef.result,
34
+ closeCallback: bottomSheetParams.closeCallback
35
+ };
36
+ }
37
+ getParentView(viewContainerRef) {
38
+ let parentView = viewContainerRef.element.nativeElement;
39
+ if (parentView instanceof AppHostView && parentView.ngAppRoot) {
40
+ parentView = parentView.ngAppRoot;
41
+ }
42
+ if (parentView._ngDialogRoot) {
43
+ parentView = parentView._ngDialogRoot;
44
+ }
45
+ return parentView;
46
+ }
47
+ getFactoryResolver(componentContainer) {
48
+ return componentContainer.injector.get(ComponentFactoryResolver);
49
+ }
50
+ createChildInjector(bottomSheetParams, containerRef) {
51
+ return Injector.create({
52
+ providers: [
53
+ {
54
+ provide: BottomSheetParams,
55
+ useValue: bottomSheetParams
56
+ }
57
+ ],
58
+ parent: containerRef.injector
59
+ });
60
+ }
61
+ getBottomSheetParams(context, sheetRef) {
62
+ const closeCallback = once((args) => {
63
+ const { result, componentView, detachedLoader } = sheetRef;
64
+ result.next(args);
65
+ result.complete();
66
+ if (componentView) {
67
+ componentView.closeBottomSheet();
68
+ }
69
+ if (detachedLoader) {
70
+ detachedLoader.instance.detectChanges();
71
+ detachedLoader.destroy();
72
+ }
73
+ });
74
+ return new BottomSheetParams(context, closeCallback);
75
+ }
76
+ createDetachedLoader(factoryResolver, bottomSheetParams, viewContainerRef) {
77
+ const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);
78
+ const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);
79
+ return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);
80
+ }
81
+ loadComponent(type, sheetRef) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ try {
84
+ const componentRef = yield sheetRef.detachedLoader.instance.loadComponent(type);
85
+ const detachedProxy = componentRef.location.nativeElement;
86
+ if (detachedProxy.getChildrenCount() > 1) {
87
+ throw new Error('BottomSheet content has more than one root view.');
88
+ }
89
+ sheetRef.componentView = detachedProxy.getChildAt(0);
90
+ if (sheetRef.componentView.parent instanceof LayoutBase) {
91
+ sheetRef.componentView.parent._ngDialogRoot = sheetRef.componentView;
92
+ sheetRef.componentView.parent.removeChild(sheetRef.componentView);
93
+ }
94
+ return sheetRef.componentView;
95
+ }
96
+ catch (err) {
97
+ console.error(err);
98
+ return null;
99
+ }
100
+ });
101
+ }
102
+ }
103
+ BottomSheetService.ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
104
+ BottomSheetService.ɵprov = i0.ɵɵdefineInjectable({ token: BottomSheetService, factory: BottomSheetService.ɵfac, providedIn: 'root' });
105
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetService, [{
106
+ type: Injectable,
107
+ args: [{
108
+ providedIn: 'root'
109
+ }]
110
+ }], null, null); })();
111
+
112
+ class NativeScriptMaterialBottomSheetModule {
113
+ constructor() {
114
+ if (!NativeScriptMaterialBottomSheetModule.initialized) {
115
+ install();
116
+ NativeScriptMaterialBottomSheetModule.initialized = true;
117
+ }
118
+ }
119
+ static forRoot() {
120
+ return {
121
+ ngModule: NativeScriptMaterialBottomSheetModule,
122
+ providers: [BottomSheetService],
123
+ };
124
+ }
125
+ }
126
+ NativeScriptMaterialBottomSheetModule.initialized = false;
127
+ NativeScriptMaterialBottomSheetModule.ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
128
+ NativeScriptMaterialBottomSheetModule.ɵmod = i0.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
129
+ NativeScriptMaterialBottomSheetModule.ɵinj = i0.ɵɵdefineInjector({});
130
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
131
+ type: NgModule
132
+ }], function () { return []; }, null); })();
133
+
134
+ export { BottomSheetParams, BottomSheetService, NativeScriptMaterialBottomSheetModule };
135
+ //# sourceMappingURL=nativescript-community-ui-material-bottomsheet-angular.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativescript-community-ui-material-bottomsheet-angular.js","sources":["../../../../src/bottomsheet/angular/bottomsheet.service.ts","../../../../src/bottomsheet/angular/bottomsheet.module.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"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './bottomsheet.module';
2
+ export * from './bottomsheet.service';
@@ -0,0 +1,2 @@
1
+ /// <amd-module name="@nativescript-community/ui-material-bottomsheet-angular" />
2
+ export * from './index';
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "@nativescript-community/ui-material-bottomsheet-angular",
3
+ "main": "bundles/nativescript-community-ui-material-bottomsheet-angular.umd.js",
4
+ "module": "fesm2015/nativescript-community-ui-material-bottomsheet-angular.js",
5
+ "es2015": "fesm2015/nativescript-community-ui-material-bottomsheet-angular.js",
6
+ "esm2015": "esm2015/nativescript-community-ui-material-bottomsheet-angular.js",
7
+ "fesm2015": "fesm2015/nativescript-community-ui-material-bottomsheet-angular.js",
8
+ "typings": "nativescript-community-ui-material-bottomsheet-angular.d.ts",
9
+ "sideEffects": false,
10
+ "dependencies": {
11
+ "tslib": "^2.0.0"
12
+ },
13
+ "scripts": {
14
+ "prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by Ivy. This is not allowed.\\nPlease delete and rebuild the package, without compiling with Ivy, before attempting to publish.\\n')\" && exit 1"
15
+ }
16
+ }
@@ -0,0 +1,35 @@
1
+ import { EventData, View, ViewBase } from '@nativescript/core';
2
+ export interface ShownBottomSheetData extends EventData {
3
+ context?: any;
4
+ closeCallback?: Function;
5
+ }
6
+ export declare const shownInBottomSheetEvent = "shownInBottomSheet";
7
+ export declare const showingInBottomSheetEvent = "showingInBottomSheet";
8
+ export interface BottomSheetOptions {
9
+ view: string | ViewBase;
10
+ context?: any;
11
+ animated?: boolean;
12
+ dismissOnBackgroundTap?: boolean;
13
+ dismissOnDraggingDownSheet?: boolean;
14
+ closeCallback?: Function;
15
+ trackingScrollView?: string;
16
+ transparent?: boolean;
17
+ ignoreTopSafeArea?: boolean;
18
+ ignoreBottomSafeArea?: boolean;
19
+ disableDimBackground?: boolean;
20
+ skipCollapsedState?: boolean;
21
+ }
22
+ export declare abstract class ViewWithBottomSheetBase extends View {
23
+ protected _closeBottomSheetCallback: Function;
24
+ _onDismissBottomSheetCallback: Function;
25
+ _bottomSheetFragment: any;
26
+ protected abstract _hideNativeBottomSheet(parent: any, whenClosedCallback: any): any;
27
+ protected _bottomSheetContext: any;
28
+ _raiseShownBottomSheetEvent(): void;
29
+ _bottomSheetClosed(): void;
30
+ protected abstract _showNativeBottomSheet(parent: View, options: BottomSheetOptions): any;
31
+ protected _commonShowNativeBottomSheet(parent: View, options: BottomSheetOptions): void;
32
+ protected _raiseShowingBottomSheetEvent(): void;
33
+ closeBottomSheet(...args: any[]): void;
34
+ showBottomSheet(options: BottomSheetOptions): ViewBase;
35
+ }
@@ -0,0 +1,94 @@
1
+ import { Builder, CSSUtils, View } from '@nativescript/core';
2
+ export const shownInBottomSheetEvent = 'shownInBottomSheet';
3
+ export const showingInBottomSheetEvent = 'showingInBottomSheet';
4
+ export class ViewWithBottomSheetBase extends View {
5
+ _raiseShownBottomSheetEvent() {
6
+ const args = {
7
+ eventName: shownInBottomSheetEvent,
8
+ object: this,
9
+ context: this._bottomSheetContext,
10
+ closeCallback: this._closeBottomSheetCallback
11
+ };
12
+ this.notify(args);
13
+ }
14
+ _bottomSheetClosed() {
15
+ const _rootModalViews = this._getRootModalViews();
16
+ const modalIndex = _rootModalViews.indexOf(this);
17
+ _rootModalViews.splice(modalIndex);
18
+ this._tearDownUI();
19
+ }
20
+ _commonShowNativeBottomSheet(parent, options) {
21
+ this._getRootModalViews().push(this);
22
+ this.cssClasses.add(CSSUtils.MODAL_ROOT_VIEW_CSS_CLASS);
23
+ const modalRootViewCssClasses = CSSUtils.getSystemCssClasses();
24
+ modalRootViewCssClasses.forEach((c) => this.cssClasses.add(c));
25
+ options.context = options.context || {};
26
+ this._bottomSheetContext = options.context;
27
+ this._onDismissBottomSheetCallback = (...originalArgs) => {
28
+ if (!this._onDismissBottomSheetCallback) {
29
+ return;
30
+ }
31
+ this._onDismissBottomSheetCallback = null;
32
+ this._closeBottomSheetCallback = null;
33
+ this._bottomSheetClosed();
34
+ if (this._bottomSheetContext.closeCallback) {
35
+ if (typeof options.closeCallback === 'function') {
36
+ options.closeCallback.apply(undefined, originalArgs);
37
+ }
38
+ }
39
+ this._bottomSheetContext = null;
40
+ };
41
+ this._closeBottomSheetCallback = (...originalArgs) => {
42
+ if (!this._closeBottomSheetCallback) {
43
+ return;
44
+ }
45
+ this._closeBottomSheetCallback = null;
46
+ if (this._bottomSheetContext) {
47
+ this._bottomSheetContext.closeCallback = null;
48
+ }
49
+ const whenClosedCallback = () => {
50
+ if (typeof options.closeCallback === 'function') {
51
+ options.closeCallback.apply(undefined, originalArgs);
52
+ }
53
+ };
54
+ this._hideNativeBottomSheet(parent, whenClosedCallback);
55
+ };
56
+ this._bottomSheetContext.closeCallback = this._closeBottomSheetCallback;
57
+ }
58
+ _raiseShowingBottomSheetEvent() {
59
+ const args = {
60
+ eventName: showingInBottomSheetEvent,
61
+ object: this,
62
+ context: this._bottomSheetContext,
63
+ closeCallback: this._closeBottomSheetCallback
64
+ };
65
+ this.notify(args);
66
+ }
67
+ closeBottomSheet(...args) {
68
+ const closeCallback = this._closeBottomSheetCallback;
69
+ if (closeCallback) {
70
+ closeCallback.apply(undefined, arguments);
71
+ }
72
+ else {
73
+ const parent = this.parent;
74
+ if (parent) {
75
+ parent.closeBottomSheet(...args);
76
+ }
77
+ }
78
+ }
79
+ showBottomSheet(options) {
80
+ if (arguments.length === 0) {
81
+ throw new Error('showModal without parameters is deprecated. Please call showModal on a view instance instead.');
82
+ }
83
+ else {
84
+ const view = options.view instanceof View
85
+ ? options.view
86
+ : Builder.createViewFromEntry({
87
+ moduleName: options.view
88
+ });
89
+ view._showNativeBottomSheet(this, options);
90
+ return view;
91
+ }
92
+ }
93
+ }
94
+ //# sourceMappingURL=bottomsheet-common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bottomsheet-common.js","sourceRoot":"../src/","sources":["bottomsheet-common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { View } from '@nativescript/core';
2
+ import { BottomSheetOptions, ViewWithBottomSheetBase } from './bottomsheet-common';
3
+ export { ViewWithBottomSheetBase } from './bottomsheet-common';
4
+ export declare class ViewWithBottomSheet extends ViewWithBottomSheetBase {
5
+ _bottomSheetFragment: com.nativescript.material.bottomsheet.BottomSheetDialogFragment;
6
+ protected _hideNativeBottomSheet(parent: View, whenClosedCallback: () => void): void;
7
+ protected _showNativeBottomSheet(parent: View, options: BottomSheetOptions): void;
8
+ }
9
+ export declare function overrideBottomSheet(): void;
10
+ export declare function install(): void;