@nativescript-community/ui-material-bottomsheet 6.2.2 → 6.2.6

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 (21) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +39 -0
  3. package/angular/bottomsheet.module.d.ts +3 -3
  4. package/angular/bottomsheet.service.d.ts +2 -2
  5. package/angular/{esm2015/bottomsheet.module.js → esm2020/bottomsheet.module.mjs} +1 -1
  6. package/angular/esm2020/bottomsheet.service.mjs +111 -0
  7. package/angular/{esm2015/index.js → esm2020/index.mjs} +0 -0
  8. package/angular/{esm2015/nativescript-community-ui-material-bottomsheet-angular.js → esm2020/nativescript-community-ui-material-bottomsheet-angular.mjs} +0 -0
  9. package/angular/fesm2015/{nativescript-community-ui-material-bottomsheet-angular.js → nativescript-community-ui-material-bottomsheet-angular.mjs} +15 -10
  10. package/angular/fesm2015/nativescript-community-ui-material-bottomsheet-angular.mjs.map +1 -0
  11. package/angular/fesm2020/nativescript-community-ui-material-bottomsheet-angular.mjs +137 -0
  12. package/angular/fesm2020/nativescript-community-ui-material-bottomsheet-angular.mjs.map +1 -0
  13. package/angular/package.json +21 -7
  14. package/bottomsheet.android.js.map +1 -1
  15. package/package.json +3 -3
  16. package/angular/bundles/nativescript-community-ui-material-bottomsheet-angular.umd.js +0 -179
  17. package/angular/bundles/nativescript-community-ui-material-bottomsheet-angular.umd.js.map +0 -1
  18. package/angular/bundles/nativescript-community-ui-material-bottomsheet-angular.umd.min.js +0 -2
  19. package/angular/bundles/nativescript-community-ui-material-bottomsheet-angular.umd.min.js.map +0 -1
  20. package/angular/esm2015/bottomsheet.service.js +0 -109
  21. package/angular/fesm2015/nativescript-community-ui-material-bottomsheet-angular.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,38 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [6.2.6](https://github.com/nativescript-community/ui-material-components/tree/master/packages/bottomsheet/compare/v6.2.5...v6.2.6) (2022-01-15)
7
+
8
+ **Note:** Version bump only for package @nativescript-community/ui-material-bottomsheet
9
+
10
+
11
+
12
+
13
+
14
+ ## [6.2.5](https://github.com/nativescript-community/ui-material-components/tree/master/packages/bottomsheet/compare/v6.2.4...v6.2.5) (2021-12-02)
15
+
16
+ **Note:** Version bump only for package @nativescript-community/ui-material-bottomsheet
17
+
18
+
19
+
20
+
21
+
22
+ ## [6.2.4](https://github.com/nativescript-community/ui-material-components/tree/master/packages/bottomsheet/compare/v6.2.3...v6.2.4) (2021-11-25)
23
+
24
+ **Note:** Version bump only for package @nativescript-community/ui-material-bottomsheet
25
+
26
+
27
+
28
+
29
+
30
+ ## [6.2.3](https://github.com/nativescript-community/ui-material-components/tree/master/packages/bottomsheet/compare/v6.2.2...v6.2.3) (2021-11-09)
31
+
32
+ **Note:** Version bump only for package @nativescript-community/ui-material-bottomsheet
33
+
34
+
35
+
36
+
37
+
6
38
  ## [6.2.2](https://github.com/nativescript-community/ui-material-components/tree/master/packages/bottomsheet/compare/v6.2.1...v6.2.2) (2021-10-29)
7
39
 
8
40
  **Note:** Version bump only for package @nativescript-community/ui-material-bottomsheet
package/README.md CHANGED
@@ -38,6 +38,45 @@ Be sure to run a new build after adding plugins to avoid any issues.
38
38
 
39
39
  ## [FAQ](../../README.md#faq)
40
40
 
41
+ ## API
42
+
43
+ ```ts
44
+ export interface BottomSheetOptions {
45
+ view: string | ViewBase;
46
+ // View instance to be shown in bottom sheet. Or the name of the module to load starting from the application root.
47
+ context?: any;
48
+ // Any context you want to pass to the view shown in bottom sheet. This same context will be available in the arguments of the shownInBottomSheet event handler.
49
+ animated?: boolean;
50
+ // An optional parameter specifying whether to show the sheet view with animation.
51
+ dismissOnBackgroundTap?: boolean;
52
+ // An optional parameter specifying whether to dismiss the sheet when clicking on background.
53
+ dismissOnDraggingDownSheet?: boolean;
54
+ // An optional parameter specifying whether to disable dragging the sheet to dismiss.
55
+ dismissOnBackButton?: boolean;
56
+ // An optional parameter that specifies whether to close the sheet when pressing the back button.
57
+ closeCallback?: Function;
58
+ // A function that will be called when the view is closed. Any arguments provided when calling shownInBottomSheet.closeCallback will be available here.
59
+ trackingScrollView?: string;
60
+ // optional id of the scroll view to track
61
+ transparent?: boolean;
62
+ // optional parameter to make the bottomsheet transparent
63
+ ignoreTopSafeArea?: boolean;
64
+ // optional ios parameter to top safe area. Default is true
65
+ ignoreBottomSafeArea?: boolean;
66
+ // optional ios parameter to bottom safe area. Default is false
67
+ disableDimBackground?: boolean;
68
+ // optional parameter to remove the dim background
69
+ skipCollapsedState?: boolean;
70
+ // optional Android parameter to skip midway state when view is greater than 50%. Default is false
71
+ peekHeight?: number;
72
+ // optional parameter to set the collapsed sheet height. To work on iOS you need to set trackingScrollView.
73
+ ignoreKeyboardHeight?: boolean;
74
+ //(iOS only) A Boolean value that controls whether the height of the keyboard should affect the bottom sheet's frame when the keyboard shows on the screen. (Default: true)
75
+ onChangeState?: onChangeStateBottomSheet;
76
+ // One works to be called on the scroll of the sheet. Parameters: state (CLOSED, DRAGGING, DRAGGING, COLLAPSED) and slideOffset is the new offset of this bottom sheet within [-1,1] range. Offset increases as this bottom sheet is moving upward. From 0 to 1 the sheet is between collapsed and expanded states and from -1 to 0 it is between hidden and collapsed states.
77
+ }
78
+ ```
79
+
41
80
  ## Usage
42
81
 
43
82
  ### Plain NativeScript
@@ -4,7 +4,7 @@ export declare class NativeScriptMaterialBottomSheetModule {
4
4
  private static initialized;
5
5
  static forRoot(): ModuleWithProviders<NativeScriptMaterialBottomSheetModule>;
6
6
  constructor();
7
- static ɵfac: i0.ɵɵFactoryDef<NativeScriptMaterialBottomSheetModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDefWithMeta<NativeScriptMaterialBottomSheetModule, never, never, never>;
9
- static ɵinj: i0.ɵɵInjectorDef<NativeScriptMaterialBottomSheetModule>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<NativeScriptMaterialBottomSheetModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NativeScriptMaterialBottomSheetModule, never, never, never>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<NativeScriptMaterialBottomSheetModule>;
10
10
  }
@@ -23,6 +23,6 @@ export declare class BottomSheetService {
23
23
  private getBottomSheetParams;
24
24
  private createDetachedLoader;
25
25
  private loadComponent;
26
- static ɵfac: i0.ɵɵFactoryDef<BottomSheetService, never>;
27
- static ɵprov: i0.ɵɵInjectableDef<BottomSheetService>;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<BottomSheetService, never>;
27
+ static ɵprov: i0.ɵɵInjectableDeclaration<BottomSheetService>;
28
28
  }
@@ -23,4 +23,4 @@ NativeScriptMaterialBottomSheetModule.ɵinj = i0.ɵɵdefineInjector({});
23
23
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
24
24
  type: NgModule
25
25
  }], function () { return []; }, null); })();
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tc2hlZXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JvdHRvbXNoZWV0L2FuZ3VsYXIvYm90dG9tc2hlZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFHMUUsTUFBTSxPQUFPLHFDQUFxQztJQVc5QztRQUNJLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxXQUFXLEVBQUU7WUFDcEQsT0FBTyxFQUFFLENBQUM7WUFDVixxQ0FBcUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQVpELE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTztZQUNILFFBQVEsRUFBRSxxQ0FBcUM7WUFDL0MsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7U0FDbEMsQ0FBQztJQUNOLENBQUM7O0FBUGMsaURBQVcsR0FBRyxLQUFLLENBQUM7MEhBRjFCLHFDQUFxQzt5RUFBckMscUNBQXFDOzt1RkFBckMscUNBQXFDO2NBRGpELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCb3R0b21TaGVldFNlcnZpY2UgfSBmcm9tICcuL2JvdHRvbXNoZWV0LnNlcnZpY2UnO1xuaW1wb3J0IHsgaW5zdGFsbCB9IGZyb20gJ0BuYXRpdmVzY3JpcHQtY29tbXVuaXR5L3VpLW1hdGVyaWFsLWJvdHRvbXNoZWV0JztcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOYXRpdmVTY3JpcHRNYXRlcmlhbEJvdHRvbVNoZWV0TW9kdWxlIHtcbiAgICAvLyBUaGlzIGZsYWcgaGVscCB1cyB0byBhdm9pZCBwcm9ibGVtcyB3aGVuIHVzaW5nIHRoZSBuZXcgZGV2ZWxvcG1lbnQgd29ya2Zsb3dcbiAgICBwcml2YXRlIHN0YXRpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOYXRpdmVTY3JpcHRNYXRlcmlhbEJvdHRvbVNoZWV0TW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogTmF0aXZlU2NyaXB0TWF0ZXJpYWxCb3R0b21TaGVldE1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW0JvdHRvbVNoZWV0U2VydmljZV0sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIU5hdGl2ZVNjcmlwdE1hdGVyaWFsQm90dG9tU2hlZXRNb2R1bGUuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGluc3RhbGwoKTtcbiAgICAgICAgICAgIE5hdGl2ZVNjcmlwdE1hdGVyaWFsQm90dG9tU2hlZXRNb2R1bGUuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tc2hlZXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JvdHRvbXNoZWV0L2FuZ3VsYXIvYm90dG9tc2hlZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFHMUUsTUFBTSxPQUFPLHFDQUFxQztJQVc5QztRQUNJLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxXQUFXLEVBQUU7WUFDcEQsT0FBTyxFQUFFLENBQUM7WUFDVixxQ0FBcUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQVpELE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTztZQUNILFFBQVEsRUFBRSxxQ0FBcUM7WUFDL0MsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7U0FDbEMsQ0FBQztJQUNOLENBQUM7O0FBUGMsaURBQVcsR0FBRyxLQUFNLENBQUE7MEhBRjFCLHFDQUFxQzt5RUFBckMscUNBQXFDOzt1RkFBckMscUNBQXFDO2NBRGpELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCb3R0b21TaGVldFNlcnZpY2UgfSBmcm9tICcuL2JvdHRvbXNoZWV0LnNlcnZpY2UnO1xuaW1wb3J0IHsgaW5zdGFsbCB9IGZyb20gJ0BuYXRpdmVzY3JpcHQtY29tbXVuaXR5L3VpLW1hdGVyaWFsLWJvdHRvbXNoZWV0JztcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOYXRpdmVTY3JpcHRNYXRlcmlhbEJvdHRvbVNoZWV0TW9kdWxlIHtcbiAgICAvLyBUaGlzIGZsYWcgaGVscCB1cyB0byBhdm9pZCBwcm9ibGVtcyB3aGVuIHVzaW5nIHRoZSBuZXcgZGV2ZWxvcG1lbnQgd29ya2Zsb3dcbiAgICBwcml2YXRlIHN0YXRpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOYXRpdmVTY3JpcHRNYXRlcmlhbEJvdHRvbVNoZWV0TW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogTmF0aXZlU2NyaXB0TWF0ZXJpYWxCb3R0b21TaGVldE1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW0JvdHRvbVNoZWV0U2VydmljZV0sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIU5hdGl2ZVNjcmlwdE1hdGVyaWFsQm90dG9tU2hlZXRNb2R1bGUuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGluc3RhbGwoKTtcbiAgICAgICAgICAgIE5hdGl2ZVNjcmlwdE1hdGVyaWFsQm90dG9tU2hlZXRNb2R1bGUuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,111 @@
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({
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
+ if (parentView._ngDialogRoot) {
45
+ parentView = parentView._ngDialogRoot;
46
+ }
47
+ return parentView;
48
+ }
49
+ getFactoryResolver(componentContainer) {
50
+ return componentContainer.injector.get(ComponentFactoryResolver);
51
+ }
52
+ createChildInjector(bottomSheetParams, containerRef) {
53
+ return Injector.create({
54
+ providers: [
55
+ {
56
+ provide: BottomSheetParams,
57
+ useValue: bottomSheetParams
58
+ }
59
+ ],
60
+ parent: containerRef.injector
61
+ });
62
+ }
63
+ getBottomSheetParams(context, sheetRef) {
64
+ const closeCallback = once((args) => {
65
+ const { result, componentView, detachedLoader } = sheetRef;
66
+ result.next(args);
67
+ result.complete();
68
+ if (componentView) {
69
+ componentView.closeBottomSheet();
70
+ }
71
+ if (detachedLoader) {
72
+ detachedLoader.instance.detectChanges();
73
+ detachedLoader.destroy();
74
+ }
75
+ });
76
+ return new BottomSheetParams(context, closeCallback);
77
+ }
78
+ createDetachedLoader(factoryResolver, bottomSheetParams, viewContainerRef) {
79
+ const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);
80
+ const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);
81
+ return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);
82
+ }
83
+ async loadComponent(type, sheetRef) {
84
+ try {
85
+ const componentRef = await sheetRef.detachedLoader.instance.loadComponent(type);
86
+ const detachedProxy = componentRef.location.nativeElement;
87
+ if (detachedProxy.getChildrenCount() > 1) {
88
+ throw new Error('BottomSheet content has more than one root view.');
89
+ }
90
+ sheetRef.componentView = detachedProxy.getChildAt(0);
91
+ if (sheetRef.componentView.parent instanceof LayoutBase) {
92
+ sheetRef.componentView.parent._ngDialogRoot = sheetRef.componentView;
93
+ sheetRef.componentView.parent.removeChild(sheetRef.componentView);
94
+ }
95
+ return sheetRef.componentView;
96
+ }
97
+ catch (err) {
98
+ console.error(err);
99
+ return null;
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
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tc2hlZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ib3R0b21zaGVldC9hbmd1bGFyL2JvdHRvbXNoZWV0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUVySCxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUE0QixNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBUTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBbUMsT0FBWSxFQUFrQixhQUFnQztRQUE5RCxZQUFPLEdBQVAsT0FBTyxDQUFLO1FBQWtCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtJQUFHLENBQUM7Q0FDeEc7QUFhRCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLElBQUksQ0FBZ0IsSUFBZSxFQUFFLE9BQTJCO1FBQ25FLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDaEUsQ0FBQztJQUVNLHFCQUFxQixDQUFnQixJQUFlLEVBQUUsT0FBMkI7UUFDcEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGlGQUFpRixDQUFDLENBQUM7U0FDdEc7UUFFRCxNQUFNLFFBQVEsR0FBc0I7WUFDaEMsTUFBTSxFQUFFLElBQUksT0FBTyxFQUFFO1NBQ3hCLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sZUFBZSxHQUFHLElB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QUNyRixDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFlLEVBQUUsUUFBa0I7UUFDM0QsSUFBSTtZQUNBLE1BQU0sWUFBWSxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hGLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBbUMsQ0FBQztZQUVoRixJQUFJLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO2FBQ3ZFO1lBRUQsUUFBUSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJELElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLFlBQVksVUFBVSxFQUFFO2dCQUNwRCxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQTZCLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7Z0JBQzdGLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDckU7WUFFRCxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUM7U0FDakM7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFbkIsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7O29GQXRIUSxrQkFBa0I7MERBQWxCLGtCQUFrQixXQUFsQixrQkFBa0IsbUJBRmYsTUFBTTt1RkFFVCxrQkFBa0I7Y0FIOUIsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEJvdHRvbVNoZWV0T3B0aW9ucyBhcyBNYXRlcmlhbEJvdHRvbVNoZWV0T3B0aW9ucyB9IGZyb20gJ0BuYXRpdmVzY3JpcHQtY29tbXVuaXR5L3VpLW1hdGVyaWFsLWJvdHRvbXNoZWV0JztcbmltcG9ydCB7IEFwcEhvc3RWaWV3LCBEZXRhY2hlZExvYWRlciwgb25jZSB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvYW5ndWxhcic7XG5pbXBvcnQgeyBMYXlvdXRCYXNlLCBQcm94eVZpZXdDb250YWluZXIsIFZpZXcgfSBmcm9tICdAbmF0aXZlc2NyaXB0L2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBCYXNlU2hvd0JvdHRvbVNoZWV0T3B0aW9ucyA9IE9taXQ8TWF0ZXJpYWxCb3R0b21TaGVldE9wdGlvbnMsICdjbG9zZUNhbGxiYWNrJyB8ICd2aWV3Jz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm90dG9tU2hlZXRPcHRpb25zIGV4dGVuZHMgQmFzZVNob3dCb3R0b21TaGVldE9wdGlvbnMge1xuICAgIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmO1xufVxuXG5leHBvcnQgY2xhc3MgQm90dG9tU2hlZXRQYXJhbXMge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY29udGV4dDogYW55LCBwdWJsaWMgcmVhZG9ubHkgY2xvc2VDYWxsYmFjazogKC4uLmFyZ3MpID0+IHZvaWQpIHt9XG59XG5cbnR5cGUgVmlld1dpdGhEaWFsb2dSb290ID0gVmlldyAmIHsgX25nRGlhbG9nUm9vdD86IFZpZXcgfTtcblxuaW50ZXJmYWNlIFNoZWV0UmVmPFRSZXN1bHQgPSB1bmtub3duPiB7XG4gICAgZGV0YWNoZWRMb2FkZXI/OiBDb21wb25lbnRSZWY8RGV0YWNoZWRMb2FkZXI+O1xuICAgIGNvbXBvbmVudFZpZXc/OiBWaWV3O1xuICAgIHJlc3VsdDogU3ViamVjdDxUUmVzdWx0Pjtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21TaGVldFNlcnZpY2Uge1xuICAgIHB1YmxpYyBzaG93PFRSZXN1bHQgPSBhbnk+KHR5cGU6IFR5cGU8YW55Piwgb3B0aW9uczogQm90dG9tU2hlZXRPcHRpb25zKTogT2JzZXJ2YWJsZTxUUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dXaXRoQ2xvc2VDYWxsYmFjayh0eXBlLCBvcHRpb25zKS5vYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93V2l0aENsb3NlQ2FsbGJhY2s8VFJlc3VsdCA9IGFueT4odHlwZTogVHlwZTxhbnk+LCBvcHRpb25zOiBCb3R0b21TaGVldE9wdGlvbnMpOiB7IG9ic2VydmFibGU6IE9ic2VydmFibGU8VFJlc3VsdD47IGNsb3NlQ2FsbGJhY2s6ICgpID0+IHZvaWQgfSB7XG4gICAgICAgIGlmICghb3B0aW9ucy52aWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZpZXdDb250YWluZXJSZWY6IE1ha2Ugc3VyZSB5b3UgcGFzcyB2aWV3Q29udGFpbmVyUmVmIGluIEJvdHRvbVNoZWV0T3B0aW9ucy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNoZWV0UmVmOiBTaGVldFJlZjxUUmVzdWx0PiA9IHtcbiAgICAgICAgICAgIHJlc3VsdDogbmV3IFN1YmplY3QoKVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHBhcmVudFZpZXcgPSB0aGlzLmdldFBhcmVudFZpZXcob3B0aW9ucy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgY29uc3QgZmFjdG9yeVJlc29sdmVyID0gdGhpcy5nZXRGYWN0b3J5UmVzb2x2ZXIob3B0aW9ucy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgY29uc3QgYm90dG9tU2hlZXRQYXJhbXMgPSB0aGlzLmdldEJvdHRvbVNoZWV0UGFyYW1zKG9wdGlvbnMuY29udGV4dCwgc2hlZXRSZWYpO1xuXG4gICAgICAgIHNoZWV0UmVmLmRldGFjaGVkTG9hZGVyID0gdGhpcy5jcmVhdGVEZXRhY2hlZExvYWRlcihmYWN0b3J5UmVzb2x2ZXIsIGJvdHRvbVNoZWV0UGFyYW1zLCBvcHRpb25zLnZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgICAgIHRoaXMubG9hZENvbXBvbmVudCh0eXBlLCBzaGVldFJlZikudGhlbigoY29tcG9uZW50VmlldykgPT4ge1xuICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93Qm90dG9tU2hlZXQoe1xuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgLi4uYm90dG9tU2hlZXRQYXJhbXMsXG4gICAgICAgICAgICAgICAgdmlldzogY29tcG9uZW50Vmlld1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvYnNlcnZhYmxlOiBzaGVldFJlZi5yZXN1bHQsXG4gICAgICAgICAgICBjbG9zZUNhbGxiYWNrOiBib3R0b21TaGVldFBhcmFtcy5jbG9zZUNhbGxiYWNrXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYXJlbnRWaWV3KHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpOiBWaWV3IHtcbiAgICAgICAgbGV0IHBhcmVudFZpZXcgPSB2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBWaWV3O1xuXG4gICAgICAgIGlmIChwYXJlbnRWaWV3IGluc3RhbmNlb2YgQXBwSG9zdFZpZXcgJiYgcGFyZW50Vmlldy5uZ0FwcFJvb3QpIHtcbiAgICAgICAgICAgIHBhcmVudFZpZXcgPSBwYXJlbnRWaWV3Lm5nQXBwUm9vdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIF9uZ0RpYWxvZ1Jvb3QgaXMgdGhlIGZpcnN0IGNoaWxkIG9mIHRoZSBwcmV2aW91c2x5IGRldGFjaGVkIHByb3h5LlxuICAgICAgICAvLyBJdCBzaG91bGQgaGF2ZSAndmlld0NvbnRyb2xsZXInIChpT1MpIG9yICdfZGlhbG9nRnJhZ21lbnQnIChBbmRyb2lkKSBhdmFpbGFibGUgZm9yXG4gICAgICAgIC8vIHByZXNlbnRpbmcgZnV0dXJlIGJvdHRvbVNoZWV0cyB2aWV3cy5cbiAgICAgICAgaWYgKChwYXJlbnRWaWV3IGFzIFZpZXdXaXRoRGlhbG9nUm9vdCkuX25nRGlhbG9nUm9vdCkge1xuICAgICAgICAgICAgcGFyZW50VmlldyA9IChwYXJlbnRWaWV3IGFzIFZpZXdXaXRoRGlhbG9nUm9vdCkuX25nRGlhbG9nUm9vdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJlbnRWaWV3O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmFjdG9yeVJlc29sdmVyKGNvbXBvbmVudENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZik6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB7XG4gICAgICAgIC8vIHJlc29sdmUgZnJvbSBwYXJ0aWN1bGFyIG1vZHVsZSAobW9kdWxlUmVmKVxuICAgICAgICAvLyBvciBmcm9tIHNhbWUgbW9kdWxlIGFzIHBhcmVudFZpZXcgKHZpZXdDb250YWluZXJSZWYpXG4gICAgICAgIHJldHVybiBjb21wb25lbnRDb250YWluZXIuaW5qZWN0b3IuZ2V0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDaGlsZEluamVjdG9yKGJvdHRvbVNoZWV0UGFyYW1zOiBCb3R0b21TaGVldFBhcmFtcywgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKTogSW5qZWN0b3Ige1xuICAgICAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQm90dG9tU2hlZXRQYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBib3R0b21TaGVldFBhcmFtc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBwYXJlbnQ6IGNvbnRhaW5lclJlZi5pbmplY3RvclxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJvdHRvbVNoZWV0UGFyYW1zKGNvbnRleHQ6IGFueSwgc2hlZXRSZWY6IFNoZWV0UmVmKTogQm90dG9tU2hlZXRQYXJhbXMge1xuICAgICAgICBjb25zdCBjbG9zZUNhbGxiYWNrID0gb25jZSgoYXJncykgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyByZXN1bHQsIGNvbXBvbmVudFZpZXcsIGRldGFjaGVkTG9hZGVyIH0gPSBzaGVldFJlZjtcblxuICAgICAgICAgICAgcmVzdWx0Lm5leHQoYXJncyk7XG4gICAgICAgICAgICByZXN1bHQuY29tcGxldGUoKTtcblxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudFZpZXcpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRWaWV3LmNsb3NlQm90dG9tU2hlZXQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRldGFjaGVkTG9hZGVyKSB7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWRMb2FkZXIuaW5zdGFuY2UuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIGRldGFjaGVkTG9hZGVyLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBCb3R0b21TaGVldFBhcmFtcyhjb250ZXh0LCBjbG9zZUNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURldGFjaGVkTG9hZGVyKGZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBib3R0b21TaGVldFBhcmFtczogQm90dG9tU2hlZXRQYXJhbXMsIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpOiBDb21wb25lbnRSZWY8RGV0YWNoZWRMb2FkZXI+IHtcbiAgICAgICAgY29uc3QgZGV0YWNoZWRMb2FkZXJGYWN0b3J5ID0gZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KERldGFjaGVkTG9hZGVyKTtcbiAgICAgICAgY29uc3QgY2hpbGRJbmplY3RvciA9IHRoaXMuY3JlYXRlQ2hpbGRJbmplY3Rvcihib3R0b21TaGVldFBhcmFtcywgdmlld0NvbnRhaW5lclJlZik7XG5cbiAgICAgICAgcmV0dXJuIHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGRldGFjaGVkTG9hZGVyRmFjdG9yeSwgMCwgY2hpbGRJbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkQ29tcG9uZW50KHR5cGU6IFR5cGU8YW55Piwgc2hlZXRSZWY6IFNoZWV0UmVmKTogUHJvbWlzZTxWaWV3PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBhd2FpdCBzaGVldFJlZi5kZXRhY2hlZExvYWRlci5pbnN0YW5jZS5sb2FkQ29tcG9uZW50KHR5cGUpO1xuICAgICAgICAgICAgY29uc3QgZGV0YWNoZWRQcm94eSA9IGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50IGFzIFByb3h5Vmlld0NvbnRhaW5lcjtcblxuICAgICAgICAgICAgaWYgKGRldGFjaGVkUHJveHkuZ2V0Q2hpbGRyZW5Db3VudCgpID4gMSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQm90dG9tU2hlZXQgY29udGVudCBoYXMgbW9yZSB0aGFuIG9uZSByb290IHZpZXcuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNoZWV0UmVmLmNvbXBvbmVudFZpZXcgPSBkZXRhY2hlZFByb3h5LmdldENoaWxkQXQoMCk7XG5cbiAgICAgICAgICAgIGlmIChzaGVldFJlZi5jb21wb25lbnRWaWV3LnBhcmVudCBpbnN0YW5jZW9mIExheW91dEJhc2UpIHtcbiAgICAgICAgICAgICAgICAoc2hlZXRSZWYuY29tcG9uZW50Vmlldy5wYXJlbnQgYXMgVmlld1dpdGhEaWFsb2dSb290KS5fbmdEaWFsb2dSb290ID0gc2hlZXRSZWYuY29tcG9uZW50VmlldztcbiAgICAgICAgICAgICAgICBzaGVldFJlZi5jb21wb25lbnRWaWV3LnBhcmVudC5yZW1vdmVDaGlsZChzaGVldFJlZi5jb21wb25lbnRWaWV3KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNoZWV0UmVmLmNvbXBvbmVudFZpZXc7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
File without changes
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ComponentFactoryResolver, Injector, Injectable, NgModule } from '@angular/core';
3
+ import { __awaiter } from 'tslib';
3
4
  import { AppHostView, once, DetachedLoader } from '@nativescript/angular';
4
5
  import { LayoutBase } from '@nativescript/core';
5
6
  import { Subject } from 'rxjs';
@@ -102,12 +103,14 @@ class BottomSheetService {
102
103
  }
103
104
  BottomSheetService.ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
104
105
  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); })();
106
+ (function () {
107
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetService, [{
108
+ type: Injectable,
109
+ args: [{
110
+ providedIn: 'root'
111
+ }]
112
+ }], null, null);
113
+ })();
111
114
 
112
115
  class NativeScriptMaterialBottomSheetModule {
113
116
  constructor() {
@@ -127,9 +130,11 @@ NativeScriptMaterialBottomSheetModule.initialized = false;
127
130
  NativeScriptMaterialBottomSheetModule.ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
128
131
  NativeScriptMaterialBottomSheetModule.ɵmod = i0.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
129
132
  NativeScriptMaterialBottomSheetModule.ɵinj = i0.ɵɵdefineInjector({});
130
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
131
- type: NgModule
132
- }], function () { return []; }, null); })();
133
+ (function () {
134
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
135
+ type: NgModule
136
+ }], function () { return []; }, null);
137
+ })();
133
138
 
134
139
  export { BottomSheetParams, BottomSheetService, NativeScriptMaterialBottomSheetModule };
135
- //# sourceMappingURL=nativescript-community-ui-material-bottomsheet-angular.js.map
140
+ //# sourceMappingURL=nativescript-community-ui-material-bottomsheet-angular.mjs.map
@@ -0,0 +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"],"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,137 @@
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({
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
+ if (parentView._ngDialogRoot) {
47
+ parentView = parentView._ngDialogRoot;
48
+ }
49
+ return parentView;
50
+ }
51
+ getFactoryResolver(componentContainer) {
52
+ return componentContainer.injector.get(ComponentFactoryResolver);
53
+ }
54
+ createChildInjector(bottomSheetParams, containerRef) {
55
+ return Injector.create({
56
+ providers: [
57
+ {
58
+ provide: BottomSheetParams,
59
+ useValue: bottomSheetParams
60
+ }
61
+ ],
62
+ parent: containerRef.injector
63
+ });
64
+ }
65
+ getBottomSheetParams(context, sheetRef) {
66
+ const closeCallback = once((args) => {
67
+ const { result, componentView, detachedLoader } = sheetRef;
68
+ result.next(args);
69
+ result.complete();
70
+ if (componentView) {
71
+ componentView.closeBottomSheet();
72
+ }
73
+ if (detachedLoader) {
74
+ detachedLoader.instance.detectChanges();
75
+ detachedLoader.destroy();
76
+ }
77
+ });
78
+ return new BottomSheetParams(context, closeCallback);
79
+ }
80
+ createDetachedLoader(factoryResolver, bottomSheetParams, viewContainerRef) {
81
+ const detachedLoaderFactory = factoryResolver.resolveComponentFactory(DetachedLoader);
82
+ const childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);
83
+ return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);
84
+ }
85
+ async loadComponent(type, sheetRef) {
86
+ try {
87
+ const componentRef = await sheetRef.detachedLoader.instance.loadComponent(type);
88
+ const detachedProxy = componentRef.location.nativeElement;
89
+ if (detachedProxy.getChildrenCount() > 1) {
90
+ throw new Error('BottomSheet content has more than one root view.');
91
+ }
92
+ sheetRef.componentView = detachedProxy.getChildAt(0);
93
+ if (sheetRef.componentView.parent instanceof LayoutBase) {
94
+ sheetRef.componentView.parent._ngDialogRoot = sheetRef.componentView;
95
+ sheetRef.componentView.parent.removeChild(sheetRef.componentView);
96
+ }
97
+ return sheetRef.componentView;
98
+ }
99
+ catch (err) {
100
+ console.error(err);
101
+ return null;
102
+ }
103
+ }
104
+ }
105
+ BottomSheetService.ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
106
+ BottomSheetService.ɵprov = i0.ɵɵdefineInjectable({ token: BottomSheetService, factory: BottomSheetService.ɵfac, providedIn: 'root' });
107
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BottomSheetService, [{
108
+ type: Injectable,
109
+ args: [{
110
+ providedIn: 'root'
111
+ }]
112
+ }], null, null); })();
113
+
114
+ class NativeScriptMaterialBottomSheetModule {
115
+ constructor() {
116
+ if (!NativeScriptMaterialBottomSheetModule.initialized) {
117
+ install();
118
+ NativeScriptMaterialBottomSheetModule.initialized = true;
119
+ }
120
+ }
121
+ static forRoot() {
122
+ return {
123
+ ngModule: NativeScriptMaterialBottomSheetModule,
124
+ providers: [BottomSheetService],
125
+ };
126
+ }
127
+ }
128
+ NativeScriptMaterialBottomSheetModule.initialized = false;
129
+ NativeScriptMaterialBottomSheetModule.ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
130
+ NativeScriptMaterialBottomSheetModule.ɵmod = i0.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
131
+ NativeScriptMaterialBottomSheetModule.ɵinj = i0.ɵɵdefineInjector({});
132
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
133
+ type: NgModule
134
+ }], function () { return []; }, null); })();
135
+
136
+ export { BottomSheetParams, BottomSheetService, NativeScriptMaterialBottomSheetModule };
137
+ //# sourceMappingURL=nativescript-community-ui-material-bottomsheet-angular.mjs.map
@@ -0,0 +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"],"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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"}
@@ -1,16 +1,30 @@
1
1
  {
2
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",
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",
8
9
  "typings": "nativescript-community-ui-material-bottomsheet-angular.d.ts",
10
+ "exports": {
11
+ "./package.json": {
12
+ "default": "./package.json"
13
+ },
14
+ ".": {
15
+ "types": "./nativescript-community-ui-material-bottomsheet-angular.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"
21
+ }
22
+ },
9
23
  "sideEffects": false,
10
24
  "dependencies": {
11
- "tslib": "^2.0.0"
25
+ "tslib": "^2.3.0"
12
26
  },
13
27
  "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"
28
+ "prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by Ivy in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with Ivy partial compilation mode, before attempting to publish.\\n')\" && exit 1"
15
29
  }
16
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bottomsheet.android.js","sourceRoot":"../src/","sources":["bottomsheet.android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bottomsheet.android.js","sourceRoot":"../src/","sources":["bottomsheet.android.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript-community/ui-material-bottomsheet",
3
- "version": "6.2.2",
3
+ "version": "6.2.6",
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,
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "readmeFilename": "README.md",
47
47
  "dependencies": {
48
- "@nativescript-community/ui-material-core": "^6.2.2"
48
+ "@nativescript-community/ui-material-core": "^6.2.6"
49
49
  },
50
- "gitHead": "7f16b685aadab1d8486187e29b1ceef84e4f4e73"
50
+ "gitHead": "8743d814b976e2b5b775e565b245ec7d9076d90a"
51
51
  }
@@ -1,179 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('tslib'), require('@nativescript/angular'), require('@nativescript/core'), require('rxjs'), require('@nativescript-community/ui-material-bottomsheet')) :
3
- typeof define === 'function' && define.amd ? define('@nativescript-community/ui-material-bottomsheet-angular', ['exports', '@angular/core', 'tslib', '@nativescript/angular', '@nativescript/core', 'rxjs', '@nativescript-community/ui-material-bottomsheet'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['nativescript-community'] = global['nativescript-community'] || {}, global['nativescript-community']['ui-material-bottomsheet-angular'] = {}), global.ng.core, global.tslib, global['ns-angular'], global['ns-core'], global.rxjs, global['ns-material-bottomsheet']));
5
- }(this, (function (exports, i0, tslib, angular, core, rxjs, uiMaterialBottomsheet) { 'use strict';
6
-
7
- function _interopNamespace(e) {
8
- if (e && e.__esModule) return e;
9
- var n = Object.create(null);
10
- if (e) {
11
- Object.keys(e).forEach(function (k) {
12
- if (k !== 'default') {
13
- var d = Object.getOwnPropertyDescriptor(e, k);
14
- Object.defineProperty(n, k, d.get ? d : {
15
- enumerable: true,
16
- get: function () {
17
- return e[k];
18
- }
19
- });
20
- }
21
- });
22
- }
23
- n['default'] = e;
24
- return Object.freeze(n);
25
- }
26
-
27
- var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
28
-
29
- var BottomSheetParams = /** @class */ (function () {
30
- function BottomSheetParams(context, closeCallback) {
31
- this.context = context;
32
- this.closeCallback = closeCallback;
33
- }
34
- return BottomSheetParams;
35
- }());
36
- var BottomSheetService = /** @class */ (function () {
37
- function BottomSheetService() {
38
- }
39
- BottomSheetService.prototype.show = function (type, options) {
40
- return this.showWithCloseCallback(type, options).observable;
41
- };
42
- BottomSheetService.prototype.showWithCloseCallback = function (type, options) {
43
- if (!options.viewContainerRef) {
44
- throw new Error('No viewContainerRef: Make sure you pass viewContainerRef in BottomSheetOptions.');
45
- }
46
- var sheetRef = {
47
- result: new rxjs.Subject()
48
- };
49
- var parentView = this.getParentView(options.viewContainerRef);
50
- var factoryResolver = this.getFactoryResolver(options.viewContainerRef);
51
- var bottomSheetParams = this.getBottomSheetParams(options.context, sheetRef);
52
- sheetRef.detachedLoader = this.createDetachedLoader(factoryResolver, bottomSheetParams, options.viewContainerRef);
53
- this.loadComponent(type, sheetRef).then(function (componentView) {
54
- parentView.showBottomSheet(Object.assign(Object.assign(Object.assign({}, options), bottomSheetParams), { view: componentView }));
55
- });
56
- return {
57
- observable: sheetRef.result,
58
- closeCallback: bottomSheetParams.closeCallback
59
- };
60
- };
61
- BottomSheetService.prototype.getParentView = function (viewContainerRef) {
62
- var parentView = viewContainerRef.element.nativeElement;
63
- if (parentView instanceof angular.AppHostView && parentView.ngAppRoot) {
64
- parentView = parentView.ngAppRoot;
65
- }
66
- if (parentView._ngDialogRoot) {
67
- parentView = parentView._ngDialogRoot;
68
- }
69
- return parentView;
70
- };
71
- BottomSheetService.prototype.getFactoryResolver = function (componentContainer) {
72
- return componentContainer.injector.get(i0.ComponentFactoryResolver);
73
- };
74
- BottomSheetService.prototype.createChildInjector = function (bottomSheetParams, containerRef) {
75
- return i0.Injector.create({
76
- providers: [
77
- {
78
- provide: BottomSheetParams,
79
- useValue: bottomSheetParams
80
- }
81
- ],
82
- parent: containerRef.injector
83
- });
84
- };
85
- BottomSheetService.prototype.getBottomSheetParams = function (context, sheetRef) {
86
- var closeCallback = angular.once(function (args) {
87
- var result = sheetRef.result, componentView = sheetRef.componentView, detachedLoader = sheetRef.detachedLoader;
88
- result.next(args);
89
- result.complete();
90
- if (componentView) {
91
- componentView.closeBottomSheet();
92
- }
93
- if (detachedLoader) {
94
- detachedLoader.instance.detectChanges();
95
- detachedLoader.destroy();
96
- }
97
- });
98
- return new BottomSheetParams(context, closeCallback);
99
- };
100
- BottomSheetService.prototype.createDetachedLoader = function (factoryResolver, bottomSheetParams, viewContainerRef) {
101
- var detachedLoaderFactory = factoryResolver.resolveComponentFactory(angular.DetachedLoader);
102
- var childInjector = this.createChildInjector(bottomSheetParams, viewContainerRef);
103
- return viewContainerRef.createComponent(detachedLoaderFactory, 0, childInjector);
104
- };
105
- BottomSheetService.prototype.loadComponent = function (type, sheetRef) {
106
- return __awaiter(this, void 0, void 0, function () {
107
- var componentRef, detachedProxy, err_1;
108
- return tslib.__generator(this, function (_a) {
109
- switch (_a.label) {
110
- case 0:
111
- _a.trys.push([0, 2, , 3]);
112
- return [4 /*yield*/, sheetRef.detachedLoader.instance.loadComponent(type)];
113
- case 1:
114
- componentRef = _a.sent();
115
- detachedProxy = componentRef.location.nativeElement;
116
- if (detachedProxy.getChildrenCount() > 1) {
117
- throw new Error('BottomSheet content has more than one root view.');
118
- }
119
- sheetRef.componentView = detachedProxy.getChildAt(0);
120
- if (sheetRef.componentView.parent instanceof core.LayoutBase) {
121
- sheetRef.componentView.parent._ngDialogRoot = sheetRef.componentView;
122
- sheetRef.componentView.parent.removeChild(sheetRef.componentView);
123
- }
124
- return [2 /*return*/, sheetRef.componentView];
125
- case 2:
126
- err_1 = _a.sent();
127
- console.error(err_1);
128
- return [2 /*return*/, null];
129
- case 3: return [2 /*return*/];
130
- }
131
- });
132
- });
133
- };
134
- return BottomSheetService;
135
- }());
136
- BottomSheetService.ɵfac = function BottomSheetService_Factory(t) { return new (t || BottomSheetService)(); };
137
- BottomSheetService.ɵprov = i0__namespace.ɵɵdefineInjectable({ token: BottomSheetService, factory: BottomSheetService.ɵfac, providedIn: 'root' });
138
- (function () {
139
- (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(BottomSheetService, [{
140
- type: i0.Injectable,
141
- args: [{
142
- providedIn: 'root'
143
- }]
144
- }], null, null);
145
- })();
146
-
147
- var NativeScriptMaterialBottomSheetModule = /** @class */ (function () {
148
- function NativeScriptMaterialBottomSheetModule() {
149
- if (!NativeScriptMaterialBottomSheetModule.initialized) {
150
- uiMaterialBottomsheet.install();
151
- NativeScriptMaterialBottomSheetModule.initialized = true;
152
- }
153
- }
154
- NativeScriptMaterialBottomSheetModule.forRoot = function () {
155
- return {
156
- ngModule: NativeScriptMaterialBottomSheetModule,
157
- providers: [BottomSheetService],
158
- };
159
- };
160
- return NativeScriptMaterialBottomSheetModule;
161
- }());
162
- NativeScriptMaterialBottomSheetModule.initialized = false;
163
- NativeScriptMaterialBottomSheetModule.ɵfac = function NativeScriptMaterialBottomSheetModule_Factory(t) { return new (t || NativeScriptMaterialBottomSheetModule)(); };
164
- NativeScriptMaterialBottomSheetModule.ɵmod = i0__namespace.ɵɵdefineNgModule({ type: NativeScriptMaterialBottomSheetModule });
165
- NativeScriptMaterialBottomSheetModule.ɵinj = i0__namespace.ɵɵdefineInjector({});
166
- (function () {
167
- (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(NativeScriptMaterialBottomSheetModule, [{
168
- type: i0.NgModule
169
- }], function () { return []; }, null);
170
- })();
171
-
172
- exports.BottomSheetParams = BottomSheetParams;
173
- exports.BottomSheetService = BottomSheetService;
174
- exports.NativeScriptMaterialBottomSheetModule = NativeScriptMaterialBottomSheetModule;
175
-
176
- Object.defineProperty(exports, '__esModule', { value: true });
177
-
178
- })));
179
- //# sourceMappingURL=nativescript-community-ui-material-bottomsheet-angular.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nativescript-community-ui-material-bottomsheet-angular.umd.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":["Subject","AppHostView","ComponentFactoryResolver","Injector","once","DetachedLoader","LayoutBase","Injectable","install","NgModule"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("tslib"),require("@nativescript/angular"),require("@nativescript/core"),require("rxjs"),require("@nativescript-community/ui-material-bottomsheet")):"function"==typeof define&&define.amd?define("@nativescript-community/ui-material-bottomsheet-angular",["exports","@angular/core","tslib","@nativescript/angular","@nativescript/core","rxjs","@nativescript-community/ui-material-bottomsheet"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["nativescript-community"]=e["nativescript-community"]||{},e["nativescript-community"]["ui-material-bottomsheet-angular"]={}),e.ng.core,e.tslib,e["ns-angular"],e["ns-core"],e.rxjs,e["ns-material-bottomsheet"])}(this,(function(e,t,o,n,r,i,a){"use strict";function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(o){if("default"!==o){var n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:function(){return e[o]}})}})),t.default=e,Object.freeze(t)}var s=c(t),u=function(e,t){this.context=e,this.closeCallback=t},l=function(){function e(){}return e.prototype.show=function(e,t){return this.showWithCloseCallback(e,t).observable},e.prototype.showWithCloseCallback=function(e,t){if(!t.viewContainerRef)throw new Error("No viewContainerRef: Make sure you pass viewContainerRef in BottomSheetOptions.");var o={result:new i.Subject},n=this.getParentView(t.viewContainerRef),r=this.getFactoryResolver(t.viewContainerRef),a=this.getBottomSheetParams(t.context,o);return o.detachedLoader=this.createDetachedLoader(r,a,t.viewContainerRef),this.loadComponent(e,o).then((function(e){n.showBottomSheet(Object.assign(Object.assign(Object.assign({},t),a),{view:e}))})),{observable:o.result,closeCallback:a.closeCallback}},e.prototype.getParentView=function(e){var t=e.element.nativeElement;return t instanceof n.AppHostView&&t.ngAppRoot&&(t=t.ngAppRoot),t._ngDialogRoot&&(t=t._ngDialogRoot),t},e.prototype.getFactoryResolver=function(e){return e.injector.get(t.ComponentFactoryResolver)},e.prototype.createChildInjector=function(e,o){return t.Injector.create({providers:[{provide:u,useValue:e}],parent:o.injector})},e.prototype.getBottomSheetParams=function(e,t){var o=n.once((function(e){var o=t.result,n=t.componentView,r=t.detachedLoader;o.next(e),o.complete(),n&&n.closeBottomSheet(),r&&(r.instance.detectChanges(),r.destroy())}));return new u(e,o)},e.prototype.createDetachedLoader=function(e,t,o){var r=e.resolveComponentFactory(n.DetachedLoader),i=this.createChildInjector(t,o);return o.createComponent(r,0,i)},e.prototype.loadComponent=function(e,t){return __awaiter(this,void 0,void 0,(function(){var n,i,a;return o.__generator(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,t.detachedLoader.instance.loadComponent(e)];case 1:if(n=o.sent(),(i=n.location.nativeElement).getChildrenCount()>1)throw new Error("BottomSheet content has more than one root view.");return t.componentView=i.getChildAt(0),t.componentView.parent instanceof r.LayoutBase&&(t.componentView.parent._ngDialogRoot=t.componentView,t.componentView.parent.removeChild(t.componentView)),[2,t.componentView];case 2:return a=o.sent(),console.error(a),[2,null];case 3:return[2]}}))}))},e}();l.ɵfac=function(e){return new(e||l)},l.ɵprov=s.ɵɵdefineInjectable({token:l,factory:l.ɵfac,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(l,[{type:t.Injectable,args:[{providedIn:"root"}]}],null,null);var p=function(){function e(){e.initialized||(a.install(),e.initialized=!0)}return e.forRoot=function(){return{ngModule:e,providers:[l]}},e}();p.initialized=!1,p.ɵfac=function(e){return new(e||p)},p.ɵmod=s.ɵɵdefineNgModule({type:p}),p.ɵinj=s.ɵɵdefineInjector({}),("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(p,[{type:t.NgModule}],(function(){return[]}),null),e.BottomSheetParams=u,e.BottomSheetService=l,e.NativeScriptMaterialBottomSheetModule=p,Object.defineProperty(e,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=nativescript-community-ui-material-bottomsheet-angular.umd.min.js.map
@@ -1 +0,0 @@
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"]}
@@ -1,109 +0,0 @@
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
@@ -1 +0,0 @@
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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"}