@bravobit/bb-foundation 0.44.4 → 0.44.5
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.
- package/dialog/lib/dialog-container/dialog-container.component.d.ts +2 -2
- package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +0 -1
- package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +2 -2
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +11 -7
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +4 -22
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +11 -7
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +21 -31
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/localize/lib/transforms/interpolate.transform.d.ts +1 -1
- package/localize/lib/transforms/plural.transform.d.ts +1 -1
- package/localize/lib/transforms/reference.transform.d.ts +1 -1
- package/package.json +7 -7
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ComponentRef, OnDestroy, OnInit, Type } from '@angular/core';
|
|
1
|
+
import { ComponentRef, ElementRef, OnDestroy, OnInit, Type } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { BbDialogInsertion } from '../dialog.insertion';
|
|
4
4
|
import { AnimationEvent } from '@angular/animations';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class BbDialogContainer implements OnInit, OnDestroy {
|
|
7
7
|
private readonly _config?;
|
|
8
|
-
private readonly _elementRef;
|
|
9
8
|
readonly disableContainerAnimations: boolean;
|
|
9
|
+
backdropElementRef: ElementRef<HTMLDivElement>;
|
|
10
10
|
insertion: BbDialogInsertion;
|
|
11
11
|
componentRef: ComponentRef<any> | null;
|
|
12
12
|
childComponentType: Type<any> | null;
|
|
@@ -6,7 +6,6 @@ export declare class BbDialogModal implements OnInit {
|
|
|
6
6
|
private _renderer;
|
|
7
7
|
private _document?;
|
|
8
8
|
maxWidth: string | null;
|
|
9
|
-
onOverlayClickedEvent(event: MouseEvent): void;
|
|
10
9
|
withoutBodyPadding: boolean;
|
|
11
10
|
constructor(_patch: Patch, _renderer: Renderer2, _document?: Document);
|
|
12
11
|
ngOnInit(): void;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
1
|
+
import { ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { AnimationEvent } from '@angular/animations';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class BbDialogOverlay implements OnInit, OnDestroy {
|
|
5
5
|
private readonly _config?;
|
|
6
|
-
private readonly _elementRef;
|
|
7
6
|
private readonly _changeDetectorRef;
|
|
8
7
|
readonly disableOverlayAnimations: boolean;
|
|
8
|
+
overlayElementRef: ElementRef<HTMLDivElement>;
|
|
9
9
|
closeRequested: EventEmitter<void>;
|
|
10
10
|
state: 'open' | 'close';
|
|
11
11
|
private _closed$;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostListener, inject, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { bbDialogContainerAnimation } from './dialog-container.animations';
|
|
3
3
|
import { DIALOG_CONFIG } from '../dialog.interfaces';
|
|
4
4
|
import { fromEvent, race, Subject, Subscription } from 'rxjs';
|
|
@@ -8,10 +8,11 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
export class BbDialogContainer {
|
|
9
9
|
// Dependencies.
|
|
10
10
|
_config = inject(DIALOG_CONFIG, { optional: true });
|
|
11
|
-
_elementRef = inject(ElementRef);
|
|
12
11
|
// Readonly data.
|
|
13
12
|
disableContainerAnimations = this._config?.disableContainerAnimations ?? false;
|
|
14
13
|
// Views.
|
|
14
|
+
backdropElementRef;
|
|
15
|
+
// Views.
|
|
15
16
|
insertion;
|
|
16
17
|
// Data.
|
|
17
18
|
componentRef = null;
|
|
@@ -41,7 +42,7 @@ export class BbDialogContainer {
|
|
|
41
42
|
this.componentRef?.destroy();
|
|
42
43
|
}
|
|
43
44
|
listenForClicks() {
|
|
44
|
-
const element = this.
|
|
45
|
+
const element = this.backdropElementRef?.nativeElement ?? null;
|
|
45
46
|
if (!element) {
|
|
46
47
|
return;
|
|
47
48
|
}
|
|
@@ -63,7 +64,7 @@ export class BbDialogContainer {
|
|
|
63
64
|
this.componentRef = viewContainerRef.createComponent(componentType);
|
|
64
65
|
}
|
|
65
66
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BbDialogContainer, isStandalone: true, selector: "bb-dialog-container", host: { listeners: { "@bbDialogContainerAnimation.done": "onAnimationDone($event)" }, properties: { "@bbDialogContainerAnimation": "true", "@.disabled": "disableContainerAnimations" }, classAttribute: "bb-dialog-container" }, viewQueries: [{ propertyName: "insertion", first: true, predicate: BbDialogInsertion, descendants: true, static: true }], ngImport: i0, template: "<div class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n", styles: [".bb-dialog-container,.bb-dialog-container-backdrop{inset:0;z-index:1000;position:fixed}.bb-dialog-container{display:flex}.bb-dialog-container-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-container-component{width:100%;margin:auto;z-index:1001;display:block;padding:1.5rem;will-change:opacity,transform}\n"], dependencies: [{ kind: "directive", type: BbDialogInsertion, selector: "[bbDialogInsertion]" }], animations: [bbDialogContainerAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BbDialogContainer, isStandalone: true, selector: "bb-dialog-container", host: { listeners: { "@bbDialogContainerAnimation.done": "onAnimationDone($event)" }, properties: { "@bbDialogContainerAnimation": "true", "@.disabled": "disableContainerAnimations" }, classAttribute: "bb-dialog-container" }, viewQueries: [{ propertyName: "backdropElementRef", first: true, predicate: ["backdrop"], descendants: true, static: true }, { propertyName: "insertion", first: true, predicate: BbDialogInsertion, descendants: true, static: true }], ngImport: i0, template: "<div #backdrop\n class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n", styles: [".bb-dialog-container,.bb-dialog-container-backdrop{inset:0;z-index:1000;position:fixed}.bb-dialog-container{display:flex}.bb-dialog-container-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-container-component{width:100%;margin:auto;z-index:1001;display:block;padding:1.5rem;pointer-events:none;will-change:opacity,transform}\n"], dependencies: [{ kind: "directive", type: BbDialogInsertion, selector: "[bbDialogInsertion]" }], animations: [bbDialogContainerAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
67
68
|
}
|
|
68
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogContainer, decorators: [{
|
|
69
70
|
type: Component,
|
|
@@ -71,12 +72,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
71
72
|
'class': 'bb-dialog-container',
|
|
72
73
|
'[@bbDialogContainerAnimation]': 'true',
|
|
73
74
|
'[@.disabled]': 'disableContainerAnimations'
|
|
74
|
-
}, preserveWhitespaces: false, animations: [bbDialogContainerAnimation], standalone: true, imports: [BbDialogInsertion], template: "<div class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n", styles: [".bb-dialog-container,.bb-dialog-container-backdrop{inset:0;z-index:1000;position:fixed}.bb-dialog-container{display:flex}.bb-dialog-container-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-container-component{width:100%;margin:auto;z-index:1001;display:block;padding:1.5rem;will-change:opacity,transform}\n"] }]
|
|
75
|
-
}], propDecorators: {
|
|
75
|
+
}, preserveWhitespaces: false, animations: [bbDialogContainerAnimation], standalone: true, imports: [BbDialogInsertion], template: "<div #backdrop\n class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n", styles: [".bb-dialog-container,.bb-dialog-container-backdrop{inset:0;z-index:1000;position:fixed}.bb-dialog-container{display:flex}.bb-dialog-container-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-container-component{width:100%;margin:auto;z-index:1001;display:block;padding:1.5rem;pointer-events:none;will-change:opacity,transform}\n"] }]
|
|
76
|
+
}], propDecorators: { backdropElementRef: [{
|
|
77
|
+
type: ViewChild,
|
|
78
|
+
args: ['backdrop', { static: true }]
|
|
79
|
+
}], insertion: [{
|
|
76
80
|
type: ViewChild,
|
|
77
81
|
args: [BbDialogInsertion, { static: true }]
|
|
78
82
|
}], onAnimationDone: [{
|
|
79
83
|
type: HostListener,
|
|
80
84
|
args: ['@bbDialogContainerAnimation.done', ['$event']]
|
|
81
85
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2RpYWxvZy9zcmMvbGliL2RpYWxvZy1jb250YWluZXIvZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2RpYWxvZy9zcmMvbGliL2RpYWxvZy1jb250YWluZXIvZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUE0QixZQUFZLEVBQUUsTUFBTSxFQUEyQixTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEssT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFDLGFBQWEsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFrQi9DLE1BQU0sT0FBTyxpQkFBaUI7SUFFMUIsZ0JBQWdCO0lBQ0MsT0FBTyxHQUFrQixNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFFbEYsaUJBQWlCO0lBQ1IsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSwwQkFBMEIsSUFBSSxLQUFLLENBQUM7SUFFeEYsU0FBUztJQUM4QixrQkFBa0IsQ0FBNkI7SUFFdEYsU0FBUztJQUNxQyxTQUFT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QUFjLEVBQUUsNEJBQTRCO3FCQUMvQyx1QkFDb0IsS0FBSyxjQUNkLENBQUMsMEJBQTBCLENBQUMsY0FDNUIsSUFBSSxXQUNQLENBQUMsaUJBQWlCLENBQUM7OEJBV1csa0JBQWtCO3NCQUF4RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBR1MsU0FBUztzQkFBdEQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBK0I1QyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBpbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YmJEaWFsb2dDb250YWluZXJBbmltYXRpb259IGZyb20gJy4vZGlhbG9nLWNvbnRhaW5lci5hbmltYXRpb25zJztcbmltcG9ydCB7RElBTE9HX0NPTkZJRywgRGlhbG9nQ29uZmlnfSBmcm9tICcuLi9kaWFsb2cuaW50ZXJmYWNlcyc7XG5pbXBvcnQge2Zyb21FdmVudCwgcmFjZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QmJEaWFsb2dJbnNlcnRpb259IGZyb20gJy4uL2RpYWxvZy5pbnNlcnRpb24nO1xuaW1wb3J0IHtBbmltYXRpb25FdmVudH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge3N3aXRjaE1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWRpYWxvZy1jb250YWluZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1kaWFsb2ctY29udGFpbmVyJyxcbiAgICAgICAgJ1tAYmJEaWFsb2dDb250YWluZXJBbmltYXRpb25dJzogJ3RydWUnLFxuICAgICAgICAnW0AuZGlzYWJsZWRdJzogJ2Rpc2FibGVDb250YWluZXJBbmltYXRpb25zJ1xuICAgIH0sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgYW5pbWF0aW9uczogW2JiRGlhbG9nQ29udGFpbmVyQW5pbWF0aW9uXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtCYkRpYWxvZ0luc2VydGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgQmJEaWFsb2dDb250YWluZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBEZXBlbmRlbmNpZXMuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnPzogRGlhbG9nQ29uZmlnID0gaW5qZWN0KERJQUxPR19DT05GSUcsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cbiAgICByZWFkb25seSBkaXNhYmxlQ29udGFpbmVyQW5pbWF0aW9ucyA9IHRoaXMuX2NvbmZpZz8uZGlzYWJsZUNvbnRhaW5lckFuaW1hdGlvbnMgPz8gZmFsc2U7XG5cbiAgICAvLyBWaWV3cy5cbiAgICBAVmlld0NoaWxkKCdiYWNrZHJvcCcsIHtzdGF0aWM6IHRydWV9KSBiYWNrZHJvcEVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgLy8gVmlld3MuXG4gICAgQFZpZXdDaGlsZChCYkRpYWxvZ0luc2VydGlvbiwge3N0YXRpYzogdHJ1ZX0pIGluc2VydGlvbjogQmJEaWFsb2dJbnNlcnRpb247XG5cbiAgICAvLyBEYXRhLlxuICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgICBjaGlsZENvbXBvbmVudFR5cGU6IFR5cGU8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgb3ZlcmxheUNsaWNrZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8vIFN1YnNjcmlwdGlvbi5cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBnZXQgb25PdmVybGF5Q2xpY2tlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheUNsaWNrZWQkLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIExvYWQgdGhlIGNoaWxkIGNvbXBvbmVudC5cbiAgICAgICAgdGhpcy5sb2FkQ2hpbGRDb21wb25lbnQodGhpcy5jaGlsZENvbXBvbmVudFR5cGUpO1xuXG4gICAgICAgIC8vIExpc3RlbiBmb3IgbW91c2UgY2xpY2sgb24gdGhlIGRpYWxvZyBjb250YWluZXIuXG4gICAgICAgIHRoaXMubGlzdGVuRm9yQ2xpY2tzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdAYmJEaWFsb2dDb250YWluZXJBbmltYXRpb24uZG9uZScsIFsnJGV2ZW50J10pXG4gICAgb25BbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZGlhbG9nIGlzIGJlaW5nIGRlc3Ryb3llZC5cbiAgICAgICAgaWYgKGV2ZW50Py50b1N0YXRlICE9PSAndm9pZCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlc3Ryb3kgdGhlIHJlZiBpZiBpdCBleGlzdHMuXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsaXN0ZW5Gb3JDbGlja3MoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmJhY2tkcm9wRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCA/PyBudWxsO1xuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vdXNlRG93biQgPSBmcm9tRXZlbnQoZWxlbWVudCwgJ21vdXNlZG93bicpO1xuICAgICAgICBjb25zdCB0b3VjaFN0YXJ0JCA9IGZyb21FdmVudChlbGVtZW50LCAndG91Y2hzdGFydCcpO1xuICAgICAgICBjb25zdCBzdGFydCQgPSByYWNlKFttb3VzZURvd24kLCB0b3VjaFN0YXJ0JF0pO1xuXG4gICAgICAgIGNvbnN0IG1vdXNlVXAkID0gZnJvbUV2ZW50KGVsZW1lbnQsICdtb3VzZXVwJyk7XG4gICAgICAgIGNvbnN0IHRvdWNoRW5kJCA9IGZyb21FdmVudChlbGVtZW50LCAndG91Y2hlbmQnKTtcbiAgICAgICAgY29uc3QgZW5kJCA9IHJhY2UoW21vdXNlVXAkLCB0b3VjaEVuZCRdKTtcblxuICAgICAgICBjb25zdCBjbGlja3MkID0gc3RhcnQkLnBpcGUoc3dpdGNoTWFwKCgpID0+IGVuZCQpKTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gY2xpY2tzJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vdmVybGF5Q2xpY2tlZCQubmV4dCgpKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZENoaWxkQ29tcG9uZW50KGNvbXBvbmVudFR5cGU6IFR5cGU8YW55Pikge1xuICAgICAgICAvLyBHZXQgdGhlIHZpZXcgY29udGFpbmVyIHJlZiBhbmQgY2xlYXIgaXQuXG4gICAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSB0aGlzLmluc2VydGlvbi52aWV3Q29udGFpbmVyUmVmO1xuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VHlwZSk7XG4gICAgfVxuXG59XG4iLCI8ZGl2ICNiYWNrZHJvcFxuICAgICBjbGFzcz1cImJiLWRpYWxvZy1jb250YWluZXItYmFja2Ryb3BcIj48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImJiLWRpYWxvZy1jb250YWluZXItY29tcG9uZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciBiYkRpYWxvZ0luc2VydGlvbj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, HostBinding,
|
|
1
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, HostBinding, Inject, Input, Optional, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@bravobit/bb-foundation";
|
|
@@ -8,9 +8,6 @@ export class BbDialogModal {
|
|
|
8
8
|
_document;
|
|
9
9
|
// Styling.
|
|
10
10
|
maxWidth = '30rem';
|
|
11
|
-
onOverlayClickedEvent(event) {
|
|
12
|
-
event.stopPropagation();
|
|
13
|
-
}
|
|
14
11
|
withoutBodyPadding = false;
|
|
15
12
|
constructor(_patch, _renderer, _document) {
|
|
16
13
|
this._patch = _patch;
|
|
@@ -34,7 +31,7 @@ export class BbDialogModal {
|
|
|
34
31
|
: this._renderer.setStyle(element, 'overflow', 'hidden');
|
|
35
32
|
}
|
|
36
33
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogModal, deps: [{ token: i1.Patch }, { token: i0.Renderer2 }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.8", type: BbDialogModal, isStandalone: true, selector: "[bb-dialog-modal]", inputs: { maxWidth: "maxWidth", withoutBodyPadding: ["withoutBodyPadding", "withoutBodyPadding", booleanAttribute] }, host: { attributes: { "role": "dialog" },
|
|
34
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.8", type: BbDialogModal, isStandalone: true, selector: "[bb-dialog-modal]", inputs: { maxWidth: "maxWidth", withoutBodyPadding: ["withoutBodyPadding", "withoutBodyPadding", booleanAttribute] }, host: { attributes: { "role": "dialog" }, properties: { "class.without-body-padding": "withoutBodyPadding", "style.max-width": "this.maxWidth" }, classAttribute: "bb-dialog-modal" }, ngImport: i0, template: "<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n", styles: [".bb-dialog-modal{width:100%;margin:auto;z-index:1001;display:flex;max-width:25rem;position:relative;pointer-events:auto;border-radius:.25rem;flex-direction:column;background-color:#fff;will-change:opacity,transform;max-height:calc(var(--vh, 1vh) * 100 - 3rem)}.bb-dialog-modal.without-body-padding>.bb-dialog-modal-body{padding:0}.bb-dialog-modal-body{color:#738694;padding:1.5rem;overflow-y:auto;line-height:1.4;font-size:.8125rem;background-color:#f1f3f6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
38
35
|
}
|
|
39
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogModal, decorators: [{
|
|
40
37
|
type: Component,
|
|
@@ -42,7 +39,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
42
39
|
'class': 'bb-dialog-modal',
|
|
43
40
|
'[class.without-body-padding]': 'withoutBodyPadding',
|
|
44
41
|
'role': 'dialog'
|
|
45
|
-
}, preserveWhitespaces: false, standalone: true, template: "<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n", styles: [".bb-dialog-modal{width:100%;margin:auto;z-index:1001;display:flex;max-width:25rem;position:relative;border-radius:.25rem;flex-direction:column;background-color:#fff;will-change:opacity,transform;max-height:calc(var(--vh, 1vh) * 100 - 3rem)}.bb-dialog-modal.without-body-padding>.bb-dialog-modal-body{padding:0}.bb-dialog-modal-body{color:#738694;padding:1.5rem;overflow-y:auto;line-height:1.4;font-size:.8125rem;background-color:#f1f3f6}\n"] }]
|
|
42
|
+
}, preserveWhitespaces: false, standalone: true, template: "<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n", styles: [".bb-dialog-modal{width:100%;margin:auto;z-index:1001;display:flex;max-width:25rem;position:relative;pointer-events:auto;border-radius:.25rem;flex-direction:column;background-color:#fff;will-change:opacity,transform;max-height:calc(var(--vh, 1vh) * 100 - 3rem)}.bb-dialog-modal.without-body-padding>.bb-dialog-modal-body{padding:0}.bb-dialog-modal-body{color:#738694;padding:1.5rem;overflow-y:auto;line-height:1.4;font-size:.8125rem;background-color:#f1f3f6}\n"] }]
|
|
46
43
|
}], ctorParameters: () => [{ type: i1.Patch }, { type: i0.Renderer2 }, { type: Document, decorators: [{
|
|
47
44
|
type: Optional
|
|
48
45
|
}, {
|
|
@@ -53,23 +50,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
53
50
|
args: ['style.max-width']
|
|
54
51
|
}, {
|
|
55
52
|
type: Input
|
|
56
|
-
}], onOverlayClickedEvent: [{
|
|
57
|
-
type: HostListener,
|
|
58
|
-
args: ['click', ['$event']]
|
|
59
|
-
}, {
|
|
60
|
-
type: HostListener,
|
|
61
|
-
args: ['touchstart', ['$event']]
|
|
62
|
-
}, {
|
|
63
|
-
type: HostListener,
|
|
64
|
-
args: ['touchend', ['$event']]
|
|
65
|
-
}, {
|
|
66
|
-
type: HostListener,
|
|
67
|
-
args: ['mouseup', ['$event']]
|
|
68
|
-
}, {
|
|
69
|
-
type: HostListener,
|
|
70
|
-
args: ['mousedown', ['$event']]
|
|
71
53
|
}], withoutBodyPadding: [{
|
|
72
54
|
type: Input,
|
|
73
55
|
args: [{ transform: booleanAttribute }]
|
|
74
56
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZGlhbG9nL3NyYy9saWIvZGlhbG9nLW1vZGFsL2RpYWxvZy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2RpYWxvZy9zcmMvbGliL2RpYWxvZy1tb2RhbC9kaWFsb2ctbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFL0osT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7QUFnQnpDLE1BQU0sT0FBTyxhQUFhO0lBT0Y7SUFDQTtJQUM4QjtJQVBsRCxXQUFXO0lBQzhCLFFBQVEsR0FBa0IsT0FBTyxDQUFDO0lBRXJDLGtCQUFrQixHQUFZLEtBQUssQ0FBQztJQUUxRSxZQUFvQixNQUFhLEVBQ2IsU0FBb0IsRUFDVSxTQUFvQjtRQUZsRCxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNVLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFDdEUsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxPQUFPO1FBQ1gsQ0FBQztRQUVELEtBQUs7WUFDRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztZQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRSxDQUFDO3VHQTlCUSxhQUFhLGdFQVNVLFFBQVE7MkZBVC9CLGFBQWEsc0pBS0gsZ0JBQWdCLG9OQ3ZCdkMsc01BT0E7OzJGRFdhLGFBQWE7a0JBZHpCLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsOEJBQThCLEVBQUUsb0JBQW9CO3dCQUNwRCxNQUFNLEVBQUUsUUFBUTtxQkFDbkIsdUJBQ29CLEtBQUssY0FDZCxJQUFJOzswQkFXSCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7eUNBTkMsUUFBUTtzQkFBaEQsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUFHLEtBQUs7Z0JBRUEsa0JBQWtCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BhdGNofSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1tiYi1kaWFsb2ctbW9kYWxdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLWRpYWxvZy1tb2RhbCcsXG4gICAgICAgICdbY2xhc3Mud2l0aG91dC1ib2R5LXBhZGRpbmddJzogJ3dpdGhvdXRCb2R5UGFkZGluZycsXG4gICAgICAgICdyb2xlJzogJ2RpYWxvZydcbiAgICB9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQmJEaWFsb2dNb2RhbCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICAvLyBTdHlsaW5nLlxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWF4LXdpZHRoJykgQElucHV0KCkgbWF4V2lkdGg6IHN0cmluZyB8IG51bGwgPSAnMzByZW0nO1xuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSB3aXRob3V0Qm9keVBhZGRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BhdGNoOiBQYXRjaCxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50PzogRG9jdW1lbnQpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fcGF0Y2gubW9iaWxlVmVydGljYWxIZWlnaHQoKTtcbiAgICAgICAgdGhpcy5hbGxvd0dsb2JhbE92ZXJmbG93KGZhbHNlKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5hbGxvd0dsb2JhbE92ZXJmbG93KHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWxsb3dHbG9iYWxPdmVyZmxvdyhhbGxvdzogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQ/LmJvZHkgPz8gbnVsbDtcbiAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhbGxvd1xuICAgICAgICAgICAgPyB0aGlzLl9yZW5kZXJlci5yZW1vdmVTdHlsZShlbGVtZW50LCAnb3ZlcmZsb3cnKVxuICAgICAgICAgICAgOiB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7XG4gICAgfVxuXG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJbYmItZGlhbG9nLWhlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG5cbjxkaXYgY2xhc3M9XCJiYi1kaWFsb2ctbW9kYWwtYm9keVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJbYmItZGlhbG9nLWFjdGlvbnNdXCI+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostListener, inject, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { fromEvent, lastValueFrom, race, Subject, Subscription } from 'rxjs';
|
|
3
3
|
import { bbDialogOverlayAnimation } from './dialog-overlay.animations';
|
|
4
4
|
import { DIALOG_CONFIG } from '../dialog.interfaces';
|
|
@@ -7,10 +7,11 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
export class BbDialogOverlay {
|
|
8
8
|
// Dependencies.
|
|
9
9
|
_config = inject(DIALOG_CONFIG, { optional: true });
|
|
10
|
-
_elementRef = inject(ElementRef);
|
|
11
10
|
_changeDetectorRef = inject(ChangeDetectorRef);
|
|
12
11
|
// Readonly data.
|
|
13
12
|
disableOverlayAnimations = this._config?.disableOverlayAnimations ?? false;
|
|
13
|
+
// Views.
|
|
14
|
+
overlayElementRef;
|
|
14
15
|
// Outputs.
|
|
15
16
|
closeRequested = new EventEmitter();
|
|
16
17
|
// State.
|
|
@@ -47,7 +48,7 @@ export class BbDialogOverlay {
|
|
|
47
48
|
return lastValueFrom(observable$);
|
|
48
49
|
}
|
|
49
50
|
listenForClicks() {
|
|
50
|
-
const element = this.
|
|
51
|
+
const element = this.overlayElementRef?.nativeElement ?? null;
|
|
51
52
|
if (!element) {
|
|
52
53
|
return;
|
|
53
54
|
}
|
|
@@ -62,7 +63,7 @@ export class BbDialogOverlay {
|
|
|
62
63
|
this._subscription.add(subscription);
|
|
63
64
|
}
|
|
64
65
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogOverlay, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BbDialogOverlay, isStandalone: true, selector: "bb-dialog-overlay", outputs: { closeRequested: "closeRequested" }, host: { listeners: { "window:keyup": "onKeyEvent($event)", "@bbDialogOverlayAnimation.done": "onAnimationDone($event)" }, properties: { "@bbDialogOverlayAnimation": "state", "@.disabled": "disableOverlayAnimations" }, classAttribute: "bb-dialog-overlay" }, ngImport: i0, template: "<div class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay,.bb-dialog-overlay-backdrop{inset:0;display:flex;z-index:1000;position:fixed;flex-direction:column}.bb-dialog-overlay{padding:1.5rem}.bb-dialog-overlay-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-overlay-component{z-index:1001;display:block;position:relative}\n"], animations: [bbDialogOverlayAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BbDialogOverlay, isStandalone: true, selector: "bb-dialog-overlay", outputs: { closeRequested: "closeRequested" }, host: { listeners: { "window:keyup": "onKeyEvent($event)", "@bbDialogOverlayAnimation.done": "onAnimationDone($event)" }, properties: { "@bbDialogOverlayAnimation": "state", "@.disabled": "disableOverlayAnimations" }, classAttribute: "bb-dialog-overlay" }, viewQueries: [{ propertyName: "overlayElementRef", first: true, predicate: ["overlay"], descendants: true, static: true }], ngImport: i0, template: "<div #overlay\n class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay,.bb-dialog-overlay-backdrop{inset:0;display:flex;z-index:1000;position:fixed;flex-direction:column}.bb-dialog-overlay{padding:1.5rem}.bb-dialog-overlay-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-overlay-component{z-index:1001;display:block;position:relative}\n"], animations: [bbDialogOverlayAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
66
67
|
}
|
|
67
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogOverlay, decorators: [{
|
|
68
69
|
type: Component,
|
|
@@ -70,8 +71,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
70
71
|
'class': 'bb-dialog-overlay',
|
|
71
72
|
'[@bbDialogOverlayAnimation]': 'state',
|
|
72
73
|
'[@.disabled]': 'disableOverlayAnimations'
|
|
73
|
-
}, preserveWhitespaces: false, animations: [bbDialogOverlayAnimation], standalone: true, template: "<div class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay,.bb-dialog-overlay-backdrop{inset:0;display:flex;z-index:1000;position:fixed;flex-direction:column}.bb-dialog-overlay{padding:1.5rem}.bb-dialog-overlay-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-overlay-component{z-index:1001;display:block;position:relative}\n"] }]
|
|
74
|
-
}], propDecorators: {
|
|
74
|
+
}, preserveWhitespaces: false, animations: [bbDialogOverlayAnimation], standalone: true, template: "<div #overlay\n class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay,.bb-dialog-overlay-backdrop{inset:0;display:flex;z-index:1000;position:fixed;flex-direction:column}.bb-dialog-overlay{padding:1.5rem}.bb-dialog-overlay-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-overlay-component{z-index:1001;display:block;position:relative}\n"] }]
|
|
75
|
+
}], propDecorators: { overlayElementRef: [{
|
|
76
|
+
type: ViewChild,
|
|
77
|
+
args: ['overlay', { static: true }]
|
|
78
|
+
}], closeRequested: [{
|
|
75
79
|
type: Output
|
|
76
80
|
}], onKeyEvent: [{
|
|
77
81
|
type: HostListener,
|
|
@@ -80,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
80
84
|
type: HostListener,
|
|
81
85
|
args: ['@bbDialogOverlayAnimation.done', ['$event']]
|
|
82
86
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9kaWFsb2cvc3JjL2xpYi9kaWFsb2ctb3ZlcmxheS9kaWFsb2ctb3ZlcmxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2RpYWxvZy9zcmMvbGliL2RpYWxvZy1vdmVybGF5L2RpYWxvZy1vdmVybGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0wsT0FBTyxFQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFDLGFBQWEsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRWpFLE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBaUIvQyxNQUFNLE9BQU8sZUFBZTtJQUV4QixnQkFBZ0I7SUFDQyxPQUFPLEdBQWtCLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUNqRSxrQkFBa0IsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFbkYsaUJBQWlCO0lBQ1Isd0JBQXdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxLQUFLLENBQUM7SUFFcEYsU0FBUztJQUM2QixpQkFB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LDZCQUE2QixFQUFFLE9BQU87d0JBQ3RDLGNBQWMsRUFBRSwwQkFBMEI7cUJBQzdDLHVCQUNvQixLQUFLLGNBQ2QsQ0FBQyx3QkFBd0IsQ0FBQyxjQUMxQixJQUFJOzhCQVlzQixpQkFBaUI7c0JBQXRELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFHMUIsY0FBYztzQkFBdkIsTUFBTTtnQkFrQlAsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFReEMsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2Zyb21FdmVudCwgbGFzdFZhbHVlRnJvbSwgcmFjZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7YmJEaWFsb2dPdmVybGF5QW5pbWF0aW9ufSBmcm9tICcuL2RpYWxvZy1vdmVybGF5LmFuaW1hdGlvbnMnO1xuaW1wb3J0IHtESUFMT0dfQ09ORklHLCBEaWFsb2dDb25maWd9IGZyb20gJy4uL2RpYWxvZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7QW5pbWF0aW9uRXZlbnR9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtzd2l0Y2hNYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1kaWFsb2ctb3ZlcmxheScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItZGlhbG9nLW92ZXJsYXknLFxuICAgICAgICAnW0BiYkRpYWxvZ092ZXJsYXlBbmltYXRpb25dJzogJ3N0YXRlJyxcbiAgICAgICAgJ1tALmRpc2FibGVkXSc6ICdkaXNhYmxlT3ZlcmxheUFuaW1hdGlvbnMnXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBhbmltYXRpb25zOiBbYmJEaWFsb2dPdmVybGF5QW5pbWF0aW9uXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJiRGlhbG9nT3ZlcmxheSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8vIERlcGVuZGVuY2llcy5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc/OiBEaWFsb2dDb25maWcgPSBpbmplY3QoRElBTE9HX0NPTkZJRywge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgZGlzYWJsZU92ZXJsYXlBbmltYXRpb25zID0gdGhpcy5fY29uZmlnPy5kaXNhYmxlT3ZlcmxheUFuaW1hdGlvbnMgPz8gZmFsc2U7XG5cbiAgICAvLyBWaWV3cy5cbiAgICBAVmlld0NoaWxkKCdvdmVybGF5Jywge3N0YXRpYzogdHJ1ZX0pIG92ZXJsYXlFbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8vIE91dHB1dHMuXG4gICAgQE91dHB1dCgpIGNsb3NlUmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgc3RhdGU6ICdvcGVuJyB8ICdjbG9zZScgPSAnb3Blbic7XG4gICAgcHJpdmF0ZSBfY2xvc2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmxpc3RlbkZvckNsaWNrcygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleXVwJywgWyckZXZlbnQnXSlcbiAgICBvbktleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudD8ua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdAYmJEaWFsb2dPdmVybGF5QW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKVxuICAgIG9uQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGRpYWxvZyBpcyBiZWluZyBkZXN0cm95ZWQuXG4gICAgICAgIGlmICghWydjbG9zZSddLmluY2x1ZGVzKGV2ZW50Py50b1N0YXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2xvc2VkJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Nsb3NlZCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgLy8gV2UgbmVlZCBjaGFuZ2UgZGV0ZWN0aW9uIHRvIHJ1blxuICAgICAgICAvLyBoZXJlIGVsc2UgaXQgd29uJ3QgY2xvc2UgaW4gYWxsIHNjZW5hcmlvJ3MuXG4gICAgICAgIHRoaXMuc3RhdGUgPSAnY2xvc2UnO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAvLyBMaXN0ZW4gZm9yIHRoZSBjbG9zZWQgdHJpZ2dlci5cbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZSQgPSB0aGlzLl9jbG9zZWQkLnBpcGUodGFrZSgxKSk7XG4gICAgICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKG9ic2VydmFibGUkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxpc3RlbkZvckNsaWNrcygpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMub3ZlcmxheUVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQgPz8gbnVsbDtcbiAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb3VzZURvd24kID0gZnJvbUV2ZW50KGVsZW1lbnQsICdtb3VzZWRvd24nKTtcbiAgICAgICAgY29uc3QgdG91Y2hTdGFydCQgPSBmcm9tRXZlbnQoZWxlbWVudCwgJ3RvdWNoc3RhcnQnKTtcbiAgICAgICAgY29uc3Qgc3RhcnQkID0gcmFjZShbbW91c2VEb3duJCwgdG91Y2hTdGFydCRdKTtcblxuICAgICAgICBjb25zdCBtb3VzZVVwJCA9IGZyb21FdmVudChlbGVtZW50LCAnbW91c2V1cCcpO1xuICAgICAgICBjb25zdCB0b3VjaEVuZCQgPSBmcm9tRXZlbnQoZWxlbWVudCwgJ3RvdWNoZW5kJyk7XG4gICAgICAgIGNvbnN0IGVuZCQgPSByYWNlKFttb3VzZVVwJCwgdG91Y2hFbmQkXSk7XG5cbiAgICAgICAgY29uc3QgY2xpY2tzJCA9IHN0YXJ0JC5waXBlKHN3aXRjaE1hcCgoKSA9PiBlbmQkKSk7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGNsaWNrcyQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VSZXF1ZXN0ZWQubmV4dCgpKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xuICAgIH1cblxufVxuIiwiPGRpdiAjb3ZlcmxheVxuICAgICBjbGFzcz1cImJiLWRpYWxvZy1vdmVybGF5LWJhY2tkcm9wXCI+PC9kaXY+XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cIltiYi1kaWFsb2ctbW9kYWxdXCI+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { take, switchMap } from 'rxjs/operators';
|
|
2
2
|
import { Subject, Subscription, lastValueFrom, fromEvent, race, firstValueFrom } from 'rxjs';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, inject,
|
|
4
|
+
import { InjectionToken, inject, ChangeDetectorRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Output, HostListener, booleanAttribute, Optional, Inject, HostBinding, Input, Directive, createEnvironmentInjector, createComponent, Injectable, makeEnvironmentProviders, NgModule } from '@angular/core';
|
|
5
5
|
import { trigger, transition, group, query, style, animate } from '@angular/animations';
|
|
6
6
|
import { DOCUMENT, NgClass } from '@angular/common';
|
|
7
7
|
import * as i1 from '@bravobit/bb-foundation';
|
|
@@ -64,10 +64,11 @@ const bbDialogOverlayAnimation = trigger('bbDialogOverlayAnimation', [
|
|
|
64
64
|
class BbDialogOverlay {
|
|
65
65
|
// Dependencies.
|
|
66
66
|
_config = inject(DIALOG_CONFIG, { optional: true });
|
|
67
|
-
_elementRef = inject(ElementRef);
|
|
68
67
|
_changeDetectorRef = inject(ChangeDetectorRef);
|
|
69
68
|
// Readonly data.
|
|
70
69
|
disableOverlayAnimations = this._config?.disableOverlayAnimations ?? false;
|
|
70
|
+
// Views.
|
|
71
|
+
overlayElementRef;
|
|
71
72
|
// Outputs.
|
|
72
73
|
closeRequested = new EventEmitter();
|
|
73
74
|
// State.
|
|
@@ -104,7 +105,7 @@ class BbDialogOverlay {
|
|
|
104
105
|
return lastValueFrom(observable$);
|
|
105
106
|
}
|
|
106
107
|
listenForClicks() {
|
|
107
|
-
const element = this.
|
|
108
|
+
const element = this.overlayElementRef?.nativeElement ?? null;
|
|
108
109
|
if (!element) {
|
|
109
110
|
return;
|
|
110
111
|
}
|
|
@@ -119,7 +120,7 @@ class BbDialogOverlay {
|
|
|
119
120
|
this._subscription.add(subscription);
|
|
120
121
|
}
|
|
121
122
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogOverlay, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BbDialogOverlay, isStandalone: true, selector: "bb-dialog-overlay", outputs: { closeRequested: "closeRequested" }, host: { listeners: { "window:keyup": "onKeyEvent($event)", "@bbDialogOverlayAnimation.done": "onAnimationDone($event)" }, properties: { "@bbDialogOverlayAnimation": "state", "@.disabled": "disableOverlayAnimations" }, classAttribute: "bb-dialog-overlay" }, ngImport: i0, template: "<div class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay,.bb-dialog-overlay-backdrop{inset:0;display:flex;z-index:1000;position:fixed;flex-direction:column}.bb-dialog-overlay{padding:1.5rem}.bb-dialog-overlay-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-overlay-component{z-index:1001;display:block;position:relative}\n"], animations: [bbDialogOverlayAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
123
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BbDialogOverlay, isStandalone: true, selector: "bb-dialog-overlay", outputs: { closeRequested: "closeRequested" }, host: { listeners: { "window:keyup": "onKeyEvent($event)", "@bbDialogOverlayAnimation.done": "onAnimationDone($event)" }, properties: { "@bbDialogOverlayAnimation": "state", "@.disabled": "disableOverlayAnimations" }, classAttribute: "bb-dialog-overlay" }, viewQueries: [{ propertyName: "overlayElementRef", first: true, predicate: ["overlay"], descendants: true, static: true }], ngImport: i0, template: "<div #overlay\n class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay,.bb-dialog-overlay-backdrop{inset:0;display:flex;z-index:1000;position:fixed;flex-direction:column}.bb-dialog-overlay{padding:1.5rem}.bb-dialog-overlay-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-overlay-component{z-index:1001;display:block;position:relative}\n"], animations: [bbDialogOverlayAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
123
124
|
}
|
|
124
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogOverlay, decorators: [{
|
|
125
126
|
type: Component,
|
|
@@ -127,8 +128,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
127
128
|
'class': 'bb-dialog-overlay',
|
|
128
129
|
'[@bbDialogOverlayAnimation]': 'state',
|
|
129
130
|
'[@.disabled]': 'disableOverlayAnimations'
|
|
130
|
-
}, preserveWhitespaces: false, animations: [bbDialogOverlayAnimation], standalone: true, template: "<div class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay,.bb-dialog-overlay-backdrop{inset:0;display:flex;z-index:1000;position:fixed;flex-direction:column}.bb-dialog-overlay{padding:1.5rem}.bb-dialog-overlay-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-overlay-component{z-index:1001;display:block;position:relative}\n"] }]
|
|
131
|
-
}], propDecorators: {
|
|
131
|
+
}, preserveWhitespaces: false, animations: [bbDialogOverlayAnimation], standalone: true, template: "<div #overlay\n class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n", styles: [".bb-dialog-overlay,.bb-dialog-overlay-backdrop{inset:0;display:flex;z-index:1000;position:fixed;flex-direction:column}.bb-dialog-overlay{padding:1.5rem}.bb-dialog-overlay-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-overlay-component{z-index:1001;display:block;position:relative}\n"] }]
|
|
132
|
+
}], propDecorators: { overlayElementRef: [{
|
|
133
|
+
type: ViewChild,
|
|
134
|
+
args: ['overlay', { static: true }]
|
|
135
|
+
}], closeRequested: [{
|
|
132
136
|
type: Output
|
|
133
137
|
}], onKeyEvent: [{
|
|
134
138
|
type: HostListener,
|
|
@@ -144,9 +148,6 @@ class BbDialogModal {
|
|
|
144
148
|
_document;
|
|
145
149
|
// Styling.
|
|
146
150
|
maxWidth = '30rem';
|
|
147
|
-
onOverlayClickedEvent(event) {
|
|
148
|
-
event.stopPropagation();
|
|
149
|
-
}
|
|
150
151
|
withoutBodyPadding = false;
|
|
151
152
|
constructor(_patch, _renderer, _document) {
|
|
152
153
|
this._patch = _patch;
|
|
@@ -170,7 +171,7 @@ class BbDialogModal {
|
|
|
170
171
|
: this._renderer.setStyle(element, 'overflow', 'hidden');
|
|
171
172
|
}
|
|
172
173
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogModal, deps: [{ token: i1.Patch }, { token: i0.Renderer2 }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
173
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.8", type: BbDialogModal, isStandalone: true, selector: "[bb-dialog-modal]", inputs: { maxWidth: "maxWidth", withoutBodyPadding: ["withoutBodyPadding", "withoutBodyPadding", booleanAttribute] }, host: { attributes: { "role": "dialog" },
|
|
174
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.8", type: BbDialogModal, isStandalone: true, selector: "[bb-dialog-modal]", inputs: { maxWidth: "maxWidth", withoutBodyPadding: ["withoutBodyPadding", "withoutBodyPadding", booleanAttribute] }, host: { attributes: { "role": "dialog" }, properties: { "class.without-body-padding": "withoutBodyPadding", "style.max-width": "this.maxWidth" }, classAttribute: "bb-dialog-modal" }, ngImport: i0, template: "<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n", styles: [".bb-dialog-modal{width:100%;margin:auto;z-index:1001;display:flex;max-width:25rem;position:relative;pointer-events:auto;border-radius:.25rem;flex-direction:column;background-color:#fff;will-change:opacity,transform;max-height:calc(var(--vh, 1vh) * 100 - 3rem)}.bb-dialog-modal.without-body-padding>.bb-dialog-modal-body{padding:0}.bb-dialog-modal-body{color:#738694;padding:1.5rem;overflow-y:auto;line-height:1.4;font-size:.8125rem;background-color:#f1f3f6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
174
175
|
}
|
|
175
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogModal, decorators: [{
|
|
176
177
|
type: Component,
|
|
@@ -178,7 +179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
178
179
|
'class': 'bb-dialog-modal',
|
|
179
180
|
'[class.without-body-padding]': 'withoutBodyPadding',
|
|
180
181
|
'role': 'dialog'
|
|
181
|
-
}, preserveWhitespaces: false, standalone: true, template: "<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n", styles: [".bb-dialog-modal{width:100%;margin:auto;z-index:1001;display:flex;max-width:25rem;position:relative;border-radius:.25rem;flex-direction:column;background-color:#fff;will-change:opacity,transform;max-height:calc(var(--vh, 1vh) * 100 - 3rem)}.bb-dialog-modal.without-body-padding>.bb-dialog-modal-body{padding:0}.bb-dialog-modal-body{color:#738694;padding:1.5rem;overflow-y:auto;line-height:1.4;font-size:.8125rem;background-color:#f1f3f6}\n"] }]
|
|
182
|
+
}, preserveWhitespaces: false, standalone: true, template: "<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n", styles: [".bb-dialog-modal{width:100%;margin:auto;z-index:1001;display:flex;max-width:25rem;position:relative;pointer-events:auto;border-radius:.25rem;flex-direction:column;background-color:#fff;will-change:opacity,transform;max-height:calc(var(--vh, 1vh) * 100 - 3rem)}.bb-dialog-modal.without-body-padding>.bb-dialog-modal-body{padding:0}.bb-dialog-modal-body{color:#738694;padding:1.5rem;overflow-y:auto;line-height:1.4;font-size:.8125rem;background-color:#f1f3f6}\n"] }]
|
|
182
183
|
}], ctorParameters: () => [{ type: i1.Patch }, { type: i0.Renderer2 }, { type: Document, decorators: [{
|
|
183
184
|
type: Optional
|
|
184
185
|
}, {
|
|
@@ -189,21 +190,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
189
190
|
args: ['style.max-width']
|
|
190
191
|
}, {
|
|
191
192
|
type: Input
|
|
192
|
-
}], onOverlayClickedEvent: [{
|
|
193
|
-
type: HostListener,
|
|
194
|
-
args: ['click', ['$event']]
|
|
195
|
-
}, {
|
|
196
|
-
type: HostListener,
|
|
197
|
-
args: ['touchstart', ['$event']]
|
|
198
|
-
}, {
|
|
199
|
-
type: HostListener,
|
|
200
|
-
args: ['touchend', ['$event']]
|
|
201
|
-
}, {
|
|
202
|
-
type: HostListener,
|
|
203
|
-
args: ['mouseup', ['$event']]
|
|
204
|
-
}, {
|
|
205
|
-
type: HostListener,
|
|
206
|
-
args: ['mousedown', ['$event']]
|
|
207
193
|
}], withoutBodyPadding: [{
|
|
208
194
|
type: Input,
|
|
209
195
|
args: [{ transform: booleanAttribute }]
|
|
@@ -287,10 +273,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
287
273
|
class BbDialogContainer {
|
|
288
274
|
// Dependencies.
|
|
289
275
|
_config = inject(DIALOG_CONFIG, { optional: true });
|
|
290
|
-
_elementRef = inject(ElementRef);
|
|
291
276
|
// Readonly data.
|
|
292
277
|
disableContainerAnimations = this._config?.disableContainerAnimations ?? false;
|
|
293
278
|
// Views.
|
|
279
|
+
backdropElementRef;
|
|
280
|
+
// Views.
|
|
294
281
|
insertion;
|
|
295
282
|
// Data.
|
|
296
283
|
componentRef = null;
|
|
@@ -320,7 +307,7 @@ class BbDialogContainer {
|
|
|
320
307
|
this.componentRef?.destroy();
|
|
321
308
|
}
|
|
322
309
|
listenForClicks() {
|
|
323
|
-
const element = this.
|
|
310
|
+
const element = this.backdropElementRef?.nativeElement ?? null;
|
|
324
311
|
if (!element) {
|
|
325
312
|
return;
|
|
326
313
|
}
|
|
@@ -342,7 +329,7 @@ class BbDialogContainer {
|
|
|
342
329
|
this.componentRef = viewContainerRef.createComponent(componentType);
|
|
343
330
|
}
|
|
344
331
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
345
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BbDialogContainer, isStandalone: true, selector: "bb-dialog-container", host: { listeners: { "@bbDialogContainerAnimation.done": "onAnimationDone($event)" }, properties: { "@bbDialogContainerAnimation": "true", "@.disabled": "disableContainerAnimations" }, classAttribute: "bb-dialog-container" }, viewQueries: [{ propertyName: "insertion", first: true, predicate: BbDialogInsertion, descendants: true, static: true }], ngImport: i0, template: "<div class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n", styles: [".bb-dialog-container,.bb-dialog-container-backdrop{inset:0;z-index:1000;position:fixed}.bb-dialog-container{display:flex}.bb-dialog-container-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-container-component{width:100%;margin:auto;z-index:1001;display:block;padding:1.5rem;will-change:opacity,transform}\n"], dependencies: [{ kind: "directive", type: BbDialogInsertion, selector: "[bbDialogInsertion]" }], animations: [bbDialogContainerAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
332
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BbDialogContainer, isStandalone: true, selector: "bb-dialog-container", host: { listeners: { "@bbDialogContainerAnimation.done": "onAnimationDone($event)" }, properties: { "@bbDialogContainerAnimation": "true", "@.disabled": "disableContainerAnimations" }, classAttribute: "bb-dialog-container" }, viewQueries: [{ propertyName: "backdropElementRef", first: true, predicate: ["backdrop"], descendants: true, static: true }, { propertyName: "insertion", first: true, predicate: BbDialogInsertion, descendants: true, static: true }], ngImport: i0, template: "<div #backdrop\n class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n", styles: [".bb-dialog-container,.bb-dialog-container-backdrop{inset:0;z-index:1000;position:fixed}.bb-dialog-container{display:flex}.bb-dialog-container-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-container-component{width:100%;margin:auto;z-index:1001;display:block;padding:1.5rem;pointer-events:none;will-change:opacity,transform}\n"], dependencies: [{ kind: "directive", type: BbDialogInsertion, selector: "[bbDialogInsertion]" }], animations: [bbDialogContainerAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
346
333
|
}
|
|
347
334
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BbDialogContainer, decorators: [{
|
|
348
335
|
type: Component,
|
|
@@ -350,8 +337,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
350
337
|
'class': 'bb-dialog-container',
|
|
351
338
|
'[@bbDialogContainerAnimation]': 'true',
|
|
352
339
|
'[@.disabled]': 'disableContainerAnimations'
|
|
353
|
-
}, preserveWhitespaces: false, animations: [bbDialogContainerAnimation], standalone: true, imports: [BbDialogInsertion], template: "<div class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n", styles: [".bb-dialog-container,.bb-dialog-container-backdrop{inset:0;z-index:1000;position:fixed}.bb-dialog-container{display:flex}.bb-dialog-container-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-container-component{width:100%;margin:auto;z-index:1001;display:block;padding:1.5rem;will-change:opacity,transform}\n"] }]
|
|
354
|
-
}], propDecorators: {
|
|
340
|
+
}, preserveWhitespaces: false, animations: [bbDialogContainerAnimation], standalone: true, imports: [BbDialogInsertion], template: "<div #backdrop\n class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n", styles: [".bb-dialog-container,.bb-dialog-container-backdrop{inset:0;z-index:1000;position:fixed}.bb-dialog-container{display:flex}.bb-dialog-container-backdrop{will-change:opacity;background-color:#1119}.bb-dialog-container-component{width:100%;margin:auto;z-index:1001;display:block;padding:1.5rem;pointer-events:none;will-change:opacity,transform}\n"] }]
|
|
341
|
+
}], propDecorators: { backdropElementRef: [{
|
|
342
|
+
type: ViewChild,
|
|
343
|
+
args: ['backdrop', { static: true }]
|
|
344
|
+
}], insertion: [{
|
|
355
345
|
type: ViewChild,
|
|
356
346
|
args: [BbDialogInsertion, { static: true }]
|
|
357
347
|
}], onAnimationDone: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravobit-bb-foundation-dialog.mjs","sources":["../../../projects/bb-foundation/dialog/src/lib/dialog.ref.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.interfaces.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.animations.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-modal/dialog-modal.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-modal/dialog-modal.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-header/dialog-header.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-header/dialog-header.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-link/dialog-link.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-link/dialog-link.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-actions/dialog-actions.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-actions/dialog-actions.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.animations.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.insertion.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-confirm/dialog-confirm.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-confirm/dialog-confirm.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog.service.ts","../../../projects/bb-foundation/dialog/src/lib/directives/confirm.directive.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.config.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.module.ts","../../../projects/bb-foundation/dialog/src/bravobit-bb-foundation-dialog.ts"],"sourcesContent":["import {take} from 'rxjs/operators';\nimport {Subject} from 'rxjs';\n\nexport class BbDialogRef<T = any> {\n\n // Data.\n private readonly _afterClosed$ = new Subject<T>();\n private readonly _overlayClicked$ = new Subject<void>();\n\n get afterClosed() {\n return this._afterClosed$.pipe(\n take(1)\n );\n }\n\n get overlayClicked() {\n return this._overlayClicked$.pipe(\n take(1)\n );\n }\n\n onOverlayClicked() {\n this._overlayClicked$.next();\n }\n\n close(result?: T) {\n this._afterClosed$.next(result);\n }\n\n}\n","import {InjectionToken} from '@angular/core';\n\nexport class BbDialogConfig<T = any> {\n data?: T;\n}\n\nexport interface DialogConfirmOptions {\n cancelButtonClass: string;\n cancelButtonText: string;\n confirmButtonText: string;\n confirmButtonClass: string;\n width: string;\n}\n\nexport class DialogConfig {\n disableContainerAnimations?: boolean;\n disableOverlayAnimations?: boolean;\n}\n\nexport const DIALOG_CONFIG: InjectionToken<DialogConfig> = new InjectionToken('dialog config');\n","import {animate, group, query, style, transition, trigger} from '@angular/animations';\n\nexport const bbDialogOverlayAnimation = trigger('bbDialogOverlayAnimation', [\n transition(':enter, * => open', [\n group([\n query('.bb-dialog-overlay-backdrop', [\n style({opacity: 0}),\n animate('240ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 1}))\n ]),\n query('.bb-dialog-modal', [\n style({opacity: 0, transform: 'scale(0.98)'}),\n animate('200ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 1, transform: 'none'}))\n ])\n ])\n ]),\n transition(':leave, * => close', [\n group([\n query('.bb-dialog-modal', [\n animate('200ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 0, transform: 'scale(0.98)'}))\n ]),\n query('.bb-dialog-overlay-backdrop', [\n animate('240ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 0}))\n ])\n ])\n ])\n]);\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, inject, OnDestroy, OnInit, Output, ViewEncapsulation} from '@angular/core';\nimport {fromEvent, lastValueFrom, race, Subject, Subscription} from 'rxjs';\nimport {bbDialogOverlayAnimation} from './dialog-overlay.animations';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {AnimationEvent} from '@angular/animations';\nimport {switchMap, take} from 'rxjs/operators';\n\n@Component({\n selector: 'bb-dialog-overlay',\n templateUrl: './dialog-overlay.component.html',\n styleUrls: ['./dialog-overlay.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-dialog-overlay',\n '[@bbDialogOverlayAnimation]': 'state',\n '[@.disabled]': 'disableOverlayAnimations'\n },\n preserveWhitespaces: false,\n animations: [bbDialogOverlayAnimation],\n standalone: true\n})\nexport class BbDialogOverlay implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n private readonly _elementRef: ElementRef = inject(ElementRef);\n private readonly _changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n // Readonly data.\n readonly disableOverlayAnimations = this._config?.disableOverlayAnimations ?? false;\n\n // Outputs.\n @Output() closeRequested = new EventEmitter<void>();\n\n // State.\n state: 'open' | 'close' = 'open';\n private _closed$ = new Subject<void>();\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n ngOnInit() {\n this.listenForClicks();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n @HostListener('window:keyup', ['$event'])\n onKeyEvent(event: KeyboardEvent) {\n if (event?.key === 'Escape') {\n this.closeRequested.emit();\n }\n }\n\n @HostListener('@bbDialogOverlayAnimation.done', ['$event'])\n onAnimationDone(event: AnimationEvent) {\n // Check if the dialog is being destroyed.\n if (!['close'].includes(event?.toState)) {\n return;\n }\n\n this._closed$.next();\n this._closed$.complete();\n }\n\n close() {\n // We need change detection to run\n // here else it won't close in all scenario's.\n this.state = 'close';\n this._changeDetectorRef.markForCheck();\n\n // Listen for the closed trigger.\n const observable$ = this._closed$.pipe(take(1));\n return lastValueFrom(observable$);\n }\n\n private listenForClicks() {\n const element = this._elementRef?.nativeElement ?? null;\n if (!element) {\n return;\n }\n\n const mouseDown$ = fromEvent(element, 'mousedown');\n const touchStart$ = fromEvent(element, 'touchstart');\n const start$ = race([mouseDown$, touchStart$]);\n\n const mouseUp$ = fromEvent(element, 'mouseup');\n const touchEnd$ = fromEvent(element, 'touchend');\n const end$ = race([mouseUp$, touchEnd$]);\n\n const clicks$ = start$.pipe(switchMap(() => end$));\n const subscription = clicks$.subscribe(() => this.closeRequested.next());\n this._subscription.add(subscription);\n }\n\n}\n","<div class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, HostBinding, HostListener, Inject, Input, OnInit, Optional, Renderer2, ViewEncapsulation} from '@angular/core';\nimport {Patch} from '@bravobit/bb-foundation';\nimport {DOCUMENT} from '@angular/common';\n\n@Component({\n selector: '[bb-dialog-modal]',\n templateUrl: './dialog-modal.component.html',\n styleUrls: ['./dialog-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-dialog-modal',\n '[class.without-body-padding]': 'withoutBodyPadding',\n 'role': 'dialog'\n },\n preserveWhitespaces: false,\n standalone: true\n})\nexport class BbDialogModal implements OnInit {\n\n // Styling.\n @HostBinding('style.max-width') @Input() maxWidth: string | null = '30rem';\n\n @HostListener('click', ['$event'])\n @HostListener('touchstart', ['$event'])\n @HostListener('touchend', ['$event'])\n @HostListener('mouseup', ['$event'])\n @HostListener('mousedown', ['$event'])\n onOverlayClickedEvent(event: MouseEvent) {\n event.stopPropagation();\n }\n\n @Input({transform: booleanAttribute}) withoutBodyPadding: boolean = false;\n\n constructor(private _patch: Patch,\n private _renderer: Renderer2,\n @Optional() @Inject(DOCUMENT) private _document?: Document) {\n }\n\n ngOnInit() {\n this._patch.mobileVerticalHeight();\n this.allowGlobalOverflow(false);\n }\n\n ngOnDestroy() {\n this.allowGlobalOverflow(true);\n }\n\n private allowGlobalOverflow(allow: boolean) {\n const element = this._document?.body ?? null;\n if (!element) {\n return;\n }\n\n allow\n ? this._renderer.removeStyle(element, 'overflow')\n : this._renderer.setStyle(element, 'overflow', 'hidden');\n }\n\n}\n","<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n","import {ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: '[bb-dialog-header]',\n templateUrl: './dialog-header.component.html',\n styleUrls: ['./dialog-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-header'},\n preserveWhitespaces: false,\n standalone: true\n})\nexport class BbDialogHeader {\n\n // Outputs.\n @Output() closeRequested = new EventEmitter<void>();\n\n}\n","<div class=\"bb-dialog-header-row\">\n <div class=\"bb-dialog-header-content\">\n <ng-content></ng-content>\n </div>\n\n @if (closeRequested?.observed) {\n <button (click)=\"closeRequested?.emit()\"\n type=\"button\"\n class=\"bb-dialog-header-close\">\n </button>\n }\n</div>\n\n<nav class=\"bb-dialog-header-navigation\">\n <ng-content select=\"[bb-dialog-link]\"></ng-content>\n</nav>\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: '[bb-dialog-link]',\n templateUrl: './dialog-link.component.html',\n styleUrls: ['./dialog-link.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-link'},\n preserveWhitespaces: false,\n standalone: true\n})\nexport class BbDialogLink {\n}\n","<ng-content></ng-content>\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {BbFormGroup} from '@bravobit/bb-foundation/elements';\n\n@Component({\n selector: '[bb-dialog-actions]',\n templateUrl: './dialog-actions.component.html',\n styleUrls: ['./dialog-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-actions'},\n preserveWhitespaces: false,\n standalone: true,\n imports: [BbFormGroup]\n})\nexport class BbDialogActions {\n}\n","<bb-form-group class=\"end\">\n <ng-content></ng-content>\n</bb-form-group>\n","import {animate, group, query, style, transition, trigger} from '@angular/animations';\n\nexport const bbDialogContainerAnimation = trigger('bbDialogContainerAnimation', [\n transition(':enter', [\n group([\n query('.bb-dialog-container-backdrop', [\n style({opacity: 0}),\n animate('180ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 1}))\n ]),\n query('.bb-dialog-container-component', [\n style({opacity: 0, transform: 'scale(0.96)'}),\n animate('180ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 1, transform: 'none'}))\n ])\n ])\n ]),\n transition(':leave', [\n group([\n query('.bb-dialog-container-backdrop', [\n animate('180ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 0}))\n ]),\n query('.bb-dialog-container-component', [\n animate('180ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 0,\n transform: 'scale(0.96)'\n }))\n ])\n ])\n ])\n]);\n","import {Directive, ViewContainerRef} from '@angular/core';\n\n@Directive({\n selector: '[bbDialogInsertion]',\n standalone: true\n})\nexport class BbDialogInsertion {\n\n constructor(public viewContainerRef: ViewContainerRef) {\n }\n\n}\n","import {ChangeDetectionStrategy, Component, ComponentRef, ElementRef, HostListener, inject, OnDestroy, OnInit, Type, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {bbDialogContainerAnimation} from './dialog-container.animations';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {fromEvent, race, Subject, Subscription} from 'rxjs';\nimport {BbDialogInsertion} from '../dialog.insertion';\nimport {AnimationEvent} from '@angular/animations';\nimport {switchMap, take} from 'rxjs/operators';\n\n@Component({\n selector: 'bb-dialog-container',\n templateUrl: './dialog-container.component.html',\n styleUrls: ['./dialog-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-dialog-container',\n '[@bbDialogContainerAnimation]': 'true',\n '[@.disabled]': 'disableContainerAnimations'\n },\n preserveWhitespaces: false,\n animations: [bbDialogContainerAnimation],\n standalone: true,\n imports: [BbDialogInsertion]\n})\nexport class BbDialogContainer implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n private readonly _elementRef: ElementRef = inject(ElementRef);\n\n // Readonly data.\n readonly disableContainerAnimations = this._config?.disableContainerAnimations ?? false;\n\n // Views.\n @ViewChild(BbDialogInsertion, {static: true}) insertion: BbDialogInsertion;\n\n // Data.\n componentRef: ComponentRef<any> | null = null;\n childComponentType: Type<any> | null = null;\n\n // State.\n overlayClicked$ = new Subject<void>();\n\n // Subscription.\n private _subscription = new Subscription();\n\n get onOverlayClicked() {\n return this.overlayClicked$.pipe(\n take(1)\n );\n }\n\n ngOnInit() {\n // Load the child component.\n this.loadChildComponent(this.childComponentType);\n\n // Listen for mouse click on the dialog container.\n this.listenForClicks();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n @HostListener('@bbDialogContainerAnimation.done', ['$event'])\n onAnimationDone(event: AnimationEvent) {\n // Check if the dialog is being destroyed.\n if (event?.toState !== 'void') {\n return;\n }\n\n // Destroy the ref if it exists.\n this.componentRef?.destroy();\n }\n\n private listenForClicks() {\n const element = this._elementRef?.nativeElement ?? null;\n if (!element) {\n return;\n }\n\n const mouseDown$ = fromEvent(element, 'mousedown');\n const touchStart$ = fromEvent(element, 'touchstart');\n const start$ = race([mouseDown$, touchStart$]);\n\n const mouseUp$ = fromEvent(element, 'mouseup');\n const touchEnd$ = fromEvent(element, 'touchend');\n const end$ = race([mouseUp$, touchEnd$]);\n\n const clicks$ = start$.pipe(switchMap(() => end$));\n const subscription = clicks$.subscribe(() => this.overlayClicked$.next());\n this._subscription.add(subscription);\n }\n\n private loadChildComponent(componentType: Type<any>) {\n // Get the view container ref and clear it.\n const viewContainerRef = this.insertion.viewContainerRef;\n viewContainerRef.clear();\n\n // Create an instance of the component.\n this.componentRef = viewContainerRef.createComponent(componentType);\n }\n\n}\n","<div class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n","import {AfterViewInit, ChangeDetectionStrategy, Component, inject, TemplateRef, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BbDialogHeader} from '../dialog-header/dialog-header.component';\nimport {BbFocusTrap, BbTemplate} from '@bravobit/bb-foundation/utils';\nimport {BbDialogModal} from '../dialog-modal/dialog-modal.component';\nimport {BbLocalize} from '@bravobit/bb-foundation/localize';\nimport {BbButton} from '@bravobit/bb-foundation/elements';\nimport {BbDialogConfig} from '../dialog.interfaces';\nimport {BbDialogRef} from '../dialog.ref';\nimport {NgClass} from '@angular/common';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'bb-dialog-confirm',\n templateUrl: './dialog-confirm.component.html',\n styleUrls: ['./dialog-confirm.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {'class': 'bb-dialog-confirm'},\n standalone: true,\n imports: [BbDialogModal, BbDialogHeader, BbFocusTrap, BbLocalize, BbTemplate, NgClass, BbButton]\n})\nexport class BbDialogConfirm implements AfterViewInit {\n\n // Dependencies.\n private readonly _config: BbDialogConfig = inject(BbDialogConfig);\n private readonly _dialogRef: BbDialogRef<boolean> = inject(BbDialogRef);\n\n // Readonly data.\n readonly dialogId: string = `bb-dialog-confirm-${nextUniqueId++}`;\n readonly title: string | TemplateRef<any> = this._config?.data?.title ?? null;\n readonly description: string | TemplateRef<any> = this._config?.data?.description ?? null;\n readonly confirmButtonText: string = this._config?.data?.confirmButtonText ?? 'dialog.default_confirm_button';\n readonly cancelButtonText: string = this._config?.data?.cancelButtonText ?? 'dialog.default_cancel_button';\n readonly confirmButtonClass: string = this._config?.data?.confirmButtonClass ?? null;\n readonly cancelButtonClass: string = this._config?.data?.cancelButtonClass ?? null;\n readonly width: string = this._config?.data?.width ?? '30rem';\n\n // Views.\n @ViewChild('confirm', {read: BbButton, static: false}) confirmButton?: BbButton;\n\n ngAfterViewInit() {\n // Initial focus the button.\n this.confirmButton?.focus();\n }\n\n onClose(result: boolean) {\n this._dialogRef.close(result);\n }\n}\n","<div [attr.aria-labelledby]=\"dialogId\"\n [maxWidth]=\"width\"\n bb-dialog-modal\n bbFocusTrap>\n <header bb-dialog-header>\n @if (title; as titleContent) {\n <h1 [id]=\"dialogId\">\n <ng-template [bbTemplate]=\"titleContent\">\n {{ $any(titleContent) | bbLocalize:{optional: true} }}\n </ng-template>\n </h1>\n }\n </header>\n\n @if (description; as descriptionContent) {\n <p class=\"bb-dialog-confirm-description\">\n <ng-template [bbTemplate]=\"descriptionContent\">\n {{ $any(descriptionContent) | bbLocalize:{optional: true} }}\n </ng-template>\n </p>\n }\n\n <footer class=\"bb-dialog-confirm-footer\">\n @if (cancelButtonText; as cancelButtonTextLabel) {\n <button [ngClass]=\"cancelButtonClass ? cancelButtonClass : 'secondary full'\"\n (click)=\"onClose(false)\"\n bb-button\n type=\"button\">\n {{ cancelButtonTextLabel | bbLocalize:{optional: true} }}\n </button>\n }\n @if (confirmButtonText; as confirmButtonTextLabel) {\n <button #confirm\n [ngClass]=\"confirmButtonClass ? confirmButtonClass : 'destructive full'\"\n (click)=\"onClose(true)\"\n bb-button\n type=\"button\">\n {{ confirmButtonTextLabel | bbLocalize:{optional: true} }}\n </button>\n }\n </footer>\n</div>\n","import {ApplicationRef, ComponentRef, createComponent, createEnvironmentInjector, EnvironmentInjector, Injectable, TemplateRef, Type} from '@angular/core';\nimport {BbDialogContainer} from './dialog-container/dialog-container.component';\nimport {BbDialogConfirm} from './dialog-confirm/dialog-confirm.component';\nimport {BbDialogConfig, DialogConfirmOptions} from './dialog.interfaces';\nimport {BbDialogRef} from './dialog.ref';\nimport {firstValueFrom} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Dialog {\n\n constructor(private _applicationRef: ApplicationRef,\n private _environmentInjector: EnvironmentInjector) {\n }\n\n open<T = any>(componentType: Type<any>, config?: BbDialogConfig) {\n return this.createDialog<T>(componentType, config);\n }\n\n async confirm(title: string | TemplateRef<any>, description: string | TemplateRef<any>, options?: Partial<DialogConfirmOptions>) {\n const dialogRef = this.open<boolean>(BbDialogConfirm, {\n data: {title, description, ...(options ?? {})}\n });\n return await firstValueFrom(dialogRef.afterClosed);\n }\n\n private createDialog<T = any>(componentType: Type<any>, config?: BbDialogConfig) {\n // Create a reference.\n const dialogRef = new BbDialogRef<T>();\n const environmentInjector = createEnvironmentInjector([\n {provide: BbDialogConfig, useValue: config ?? {}},\n {provide: BbDialogRef, useValue: dialogRef}\n ], this._environmentInjector);\n const dialogComponentRef = createComponent(BbDialogContainer, {environmentInjector});\n\n // Attach the host view to the application.\n this._applicationRef.attachView(dialogComponentRef.hostView);\n\n try {\n // Remove the current focus.\n const activeElement = document.activeElement as HTMLElement;\n activeElement.blur();\n\n // Append the element to the DOM.\n document.body.appendChild(dialogComponentRef.location.nativeElement);\n } catch {\n // Don't do anything, because it must've failed.\n }\n\n // Set the child component type on the component.\n dialogComponentRef.instance.childComponentType = componentType;\n dialogComponentRef.instance.onOverlayClicked.subscribe(() => dialogRef.onOverlayClicked());\n\n // Listen for close events.\n dialogRef.afterClosed.subscribe(() => this.deleteDialog(dialogComponentRef));\n\n // Return the reference.\n return dialogRef;\n }\n\n private deleteDialog(dialogComponentRef: ComponentRef<BbDialogContainer>) {\n // Only continue if the dialog component ref exists.\n if (!dialogComponentRef) {\n return;\n }\n\n // Detach the dialog.\n this._applicationRef.detachView(dialogComponentRef.hostView);\n\n // Destroy the dialog.\n dialogComponentRef.destroy();\n dialogComponentRef = null;\n }\n\n}\n","import {Directive, EventEmitter, HostListener, inject, Input, Output} from '@angular/core';\nimport {Dialog} from '../dialog.service';\n\n@Directive({\n selector: '[bbConfirm]',\n standalone: true\n})\nexport class BbConfirm {\n\n // Dependencies.\n private _dialog = inject(Dialog);\n\n // Inputs.\n @Input() bbConfirmTitle: string = 'dialog.default_title';\n @Input() bbConfirmDescription: string = 'dialog.default_description';\n @Input() bbConfirmButtonText: string | null = null;\n @Input() bbCancelButtonText: string | null = null;\n\n // Outputs.\n @Output('bbConfirm') confirm = new EventEmitter<MouseEvent>();\n\n @HostListener('click', ['$event'])\n async onClick(event: MouseEvent) {\n const confirmed = await this._dialog.confirm(this.bbConfirmTitle, this.bbConfirmDescription, {\n confirmButtonText: this.bbConfirmButtonText,\n cancelButtonText: this.bbCancelButtonText\n });\n if (!confirmed) {\n return;\n }\n\n this.confirm.emit(event);\n }\n\n}\n","import {EnvironmentProviders, makeEnvironmentProviders} from '@angular/core';\nimport {DIALOG_CONFIG, DialogConfig} from './dialog.interfaces';\n\nexport function provideDialogConfig(config?: DialogConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n {provide: DIALOG_CONFIG, useValue: config ?? {}}\n ]);\n}\n","import {BbDialogContainer} from './dialog-container/dialog-container.component';\nimport {BbDialogConfirm} from './dialog-confirm/dialog-confirm.component';\nimport {BbDialogActions} from './dialog-actions/dialog-actions.component';\nimport {BbDialogOverlay} from './dialog-overlay/dialog-overlay.component';\nimport {BbDialogHeader} from './dialog-header/dialog-header.component';\nimport {BbDialogModal} from './dialog-modal/dialog-modal.component';\nimport {BbDialogLink} from './dialog-link/dialog-link.component';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {BbConfirm} from './directives/confirm.directive';\nimport {BbDialogInsertion} from './dialog.insertion';\nimport {provideDialogConfig} from './dialog.config';\nimport {DialogConfig} from './dialog.interfaces';\n\n@NgModule({\n imports: [\n BbDialogContainer,\n BbDialogOverlay,\n BbDialogModal,\n BbDialogHeader,\n BbDialogLink,\n BbDialogActions,\n BbDialogConfirm,\n BbDialogInsertion,\n BbConfirm\n ],\n exports: [\n BbDialogOverlay,\n BbDialogModal,\n BbDialogHeader,\n BbDialogLink,\n BbDialogActions,\n BbConfirm\n ]\n})\nexport class DialogModule {\n\n static forRoot(config?: DialogConfig): ModuleWithProviders<DialogModule> {\n return {\n ngModule: DialogModule,\n providers: [\n provideDialogConfig(config)\n ]\n };\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bravobit-bb-foundation-dialog.mjs","sources":["../../../projects/bb-foundation/dialog/src/lib/dialog.ref.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.interfaces.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.animations.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-modal/dialog-modal.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-modal/dialog-modal.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-header/dialog-header.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-header/dialog-header.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-link/dialog-link.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-link/dialog-link.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-actions/dialog-actions.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-actions/dialog-actions.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.animations.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.insertion.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-confirm/dialog-confirm.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-confirm/dialog-confirm.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog.service.ts","../../../projects/bb-foundation/dialog/src/lib/directives/confirm.directive.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.config.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.module.ts","../../../projects/bb-foundation/dialog/src/bravobit-bb-foundation-dialog.ts"],"sourcesContent":["import {take} from 'rxjs/operators';\nimport {Subject} from 'rxjs';\n\nexport class BbDialogRef<T = any> {\n\n // Data.\n private readonly _afterClosed$ = new Subject<T>();\n private readonly _overlayClicked$ = new Subject<void>();\n\n get afterClosed() {\n return this._afterClosed$.pipe(\n take(1)\n );\n }\n\n get overlayClicked() {\n return this._overlayClicked$.pipe(\n take(1)\n );\n }\n\n onOverlayClicked() {\n this._overlayClicked$.next();\n }\n\n close(result?: T) {\n this._afterClosed$.next(result);\n }\n\n}\n","import {InjectionToken} from '@angular/core';\n\nexport class BbDialogConfig<T = any> {\n data?: T;\n}\n\nexport interface DialogConfirmOptions {\n cancelButtonClass: string;\n cancelButtonText: string;\n confirmButtonText: string;\n confirmButtonClass: string;\n width: string;\n}\n\nexport class DialogConfig {\n disableContainerAnimations?: boolean;\n disableOverlayAnimations?: boolean;\n}\n\nexport const DIALOG_CONFIG: InjectionToken<DialogConfig> = new InjectionToken('dialog config');\n","import {animate, group, query, style, transition, trigger} from '@angular/animations';\n\nexport const bbDialogOverlayAnimation = trigger('bbDialogOverlayAnimation', [\n transition(':enter, * => open', [\n group([\n query('.bb-dialog-overlay-backdrop', [\n style({opacity: 0}),\n animate('240ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 1}))\n ]),\n query('.bb-dialog-modal', [\n style({opacity: 0, transform: 'scale(0.98)'}),\n animate('200ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 1, transform: 'none'}))\n ])\n ])\n ]),\n transition(':leave, * => close', [\n group([\n query('.bb-dialog-modal', [\n animate('200ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 0, transform: 'scale(0.98)'}))\n ]),\n query('.bb-dialog-overlay-backdrop', [\n animate('240ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 0}))\n ])\n ])\n ])\n]);\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, inject, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {fromEvent, lastValueFrom, race, Subject, Subscription} from 'rxjs';\nimport {bbDialogOverlayAnimation} from './dialog-overlay.animations';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {AnimationEvent} from '@angular/animations';\nimport {switchMap, take} from 'rxjs/operators';\n\n@Component({\n selector: 'bb-dialog-overlay',\n templateUrl: './dialog-overlay.component.html',\n styleUrls: ['./dialog-overlay.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-dialog-overlay',\n '[@bbDialogOverlayAnimation]': 'state',\n '[@.disabled]': 'disableOverlayAnimations'\n },\n preserveWhitespaces: false,\n animations: [bbDialogOverlayAnimation],\n standalone: true\n})\nexport class BbDialogOverlay implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n private readonly _changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n // Readonly data.\n readonly disableOverlayAnimations = this._config?.disableOverlayAnimations ?? false;\n\n // Views.\n @ViewChild('overlay', {static: true}) overlayElementRef: ElementRef<HTMLDivElement>;\n\n // Outputs.\n @Output() closeRequested = new EventEmitter<void>();\n\n // State.\n state: 'open' | 'close' = 'open';\n private _closed$ = new Subject<void>();\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n ngOnInit() {\n this.listenForClicks();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n @HostListener('window:keyup', ['$event'])\n onKeyEvent(event: KeyboardEvent) {\n if (event?.key === 'Escape') {\n this.closeRequested.emit();\n }\n }\n\n @HostListener('@bbDialogOverlayAnimation.done', ['$event'])\n onAnimationDone(event: AnimationEvent) {\n // Check if the dialog is being destroyed.\n if (!['close'].includes(event?.toState)) {\n return;\n }\n\n this._closed$.next();\n this._closed$.complete();\n }\n\n close() {\n // We need change detection to run\n // here else it won't close in all scenario's.\n this.state = 'close';\n this._changeDetectorRef.markForCheck();\n\n // Listen for the closed trigger.\n const observable$ = this._closed$.pipe(take(1));\n return lastValueFrom(observable$);\n }\n\n private listenForClicks() {\n const element = this.overlayElementRef?.nativeElement ?? null;\n if (!element) {\n return;\n }\n\n const mouseDown$ = fromEvent(element, 'mousedown');\n const touchStart$ = fromEvent(element, 'touchstart');\n const start$ = race([mouseDown$, touchStart$]);\n\n const mouseUp$ = fromEvent(element, 'mouseup');\n const touchEnd$ = fromEvent(element, 'touchend');\n const end$ = race([mouseUp$, touchEnd$]);\n\n const clicks$ = start$.pipe(switchMap(() => end$));\n const subscription = clicks$.subscribe(() => this.closeRequested.next());\n this._subscription.add(subscription);\n }\n\n}\n","<div #overlay\n class=\"bb-dialog-overlay-backdrop\"></div>\n\n<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, HostBinding, Inject, Input, OnInit, Optional, Renderer2, ViewEncapsulation} from '@angular/core';\nimport {Patch} from '@bravobit/bb-foundation';\nimport {DOCUMENT} from '@angular/common';\n\n@Component({\n selector: '[bb-dialog-modal]',\n templateUrl: './dialog-modal.component.html',\n styleUrls: ['./dialog-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-dialog-modal',\n '[class.without-body-padding]': 'withoutBodyPadding',\n 'role': 'dialog'\n },\n preserveWhitespaces: false,\n standalone: true\n})\nexport class BbDialogModal implements OnInit {\n\n // Styling.\n @HostBinding('style.max-width') @Input() maxWidth: string | null = '30rem';\n\n @Input({transform: booleanAttribute}) withoutBodyPadding: boolean = false;\n\n constructor(private _patch: Patch,\n private _renderer: Renderer2,\n @Optional() @Inject(DOCUMENT) private _document?: Document) {\n }\n\n ngOnInit() {\n this._patch.mobileVerticalHeight();\n this.allowGlobalOverflow(false);\n }\n\n ngOnDestroy() {\n this.allowGlobalOverflow(true);\n }\n\n private allowGlobalOverflow(allow: boolean) {\n const element = this._document?.body ?? null;\n if (!element) {\n return;\n }\n\n allow\n ? this._renderer.removeStyle(element, 'overflow')\n : this._renderer.setStyle(element, 'overflow', 'hidden');\n }\n\n}\n","<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n","import {ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: '[bb-dialog-header]',\n templateUrl: './dialog-header.component.html',\n styleUrls: ['./dialog-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-header'},\n preserveWhitespaces: false,\n standalone: true\n})\nexport class BbDialogHeader {\n\n // Outputs.\n @Output() closeRequested = new EventEmitter<void>();\n\n}\n","<div class=\"bb-dialog-header-row\">\n <div class=\"bb-dialog-header-content\">\n <ng-content></ng-content>\n </div>\n\n @if (closeRequested?.observed) {\n <button (click)=\"closeRequested?.emit()\"\n type=\"button\"\n class=\"bb-dialog-header-close\">\n </button>\n }\n</div>\n\n<nav class=\"bb-dialog-header-navigation\">\n <ng-content select=\"[bb-dialog-link]\"></ng-content>\n</nav>\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: '[bb-dialog-link]',\n templateUrl: './dialog-link.component.html',\n styleUrls: ['./dialog-link.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-link'},\n preserveWhitespaces: false,\n standalone: true\n})\nexport class BbDialogLink {\n}\n","<ng-content></ng-content>\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {BbFormGroup} from '@bravobit/bb-foundation/elements';\n\n@Component({\n selector: '[bb-dialog-actions]',\n templateUrl: './dialog-actions.component.html',\n styleUrls: ['./dialog-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-actions'},\n preserveWhitespaces: false,\n standalone: true,\n imports: [BbFormGroup]\n})\nexport class BbDialogActions {\n}\n","<bb-form-group class=\"end\">\n <ng-content></ng-content>\n</bb-form-group>\n","import {animate, group, query, style, transition, trigger} from '@angular/animations';\n\nexport const bbDialogContainerAnimation = trigger('bbDialogContainerAnimation', [\n transition(':enter', [\n group([\n query('.bb-dialog-container-backdrop', [\n style({opacity: 0}),\n animate('180ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 1}))\n ]),\n query('.bb-dialog-container-component', [\n style({opacity: 0, transform: 'scale(0.96)'}),\n animate('180ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 1, transform: 'none'}))\n ])\n ])\n ]),\n transition(':leave', [\n group([\n query('.bb-dialog-container-backdrop', [\n animate('180ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 0}))\n ]),\n query('.bb-dialog-container-component', [\n animate('180ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 0,\n transform: 'scale(0.96)'\n }))\n ])\n ])\n ])\n]);\n","import {Directive, ViewContainerRef} from '@angular/core';\n\n@Directive({\n selector: '[bbDialogInsertion]',\n standalone: true\n})\nexport class BbDialogInsertion {\n\n constructor(public viewContainerRef: ViewContainerRef) {\n }\n\n}\n","import {ChangeDetectionStrategy, Component, ComponentRef, ElementRef, HostListener, inject, OnDestroy, OnInit, Type, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {bbDialogContainerAnimation} from './dialog-container.animations';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {fromEvent, race, Subject, Subscription} from 'rxjs';\nimport {BbDialogInsertion} from '../dialog.insertion';\nimport {AnimationEvent} from '@angular/animations';\nimport {switchMap, take} from 'rxjs/operators';\n\n@Component({\n selector: 'bb-dialog-container',\n templateUrl: './dialog-container.component.html',\n styleUrls: ['./dialog-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-dialog-container',\n '[@bbDialogContainerAnimation]': 'true',\n '[@.disabled]': 'disableContainerAnimations'\n },\n preserveWhitespaces: false,\n animations: [bbDialogContainerAnimation],\n standalone: true,\n imports: [BbDialogInsertion]\n})\nexport class BbDialogContainer implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n\n // Readonly data.\n readonly disableContainerAnimations = this._config?.disableContainerAnimations ?? false;\n\n // Views.\n @ViewChild('backdrop', {static: true}) backdropElementRef: ElementRef<HTMLDivElement>;\n\n // Views.\n @ViewChild(BbDialogInsertion, {static: true}) insertion: BbDialogInsertion;\n\n // Data.\n componentRef: ComponentRef<any> | null = null;\n childComponentType: Type<any> | null = null;\n\n // State.\n overlayClicked$ = new Subject<void>();\n\n // Subscription.\n private _subscription = new Subscription();\n\n get onOverlayClicked() {\n return this.overlayClicked$.pipe(\n take(1)\n );\n }\n\n ngOnInit() {\n // Load the child component.\n this.loadChildComponent(this.childComponentType);\n\n // Listen for mouse click on the dialog container.\n this.listenForClicks();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n @HostListener('@bbDialogContainerAnimation.done', ['$event'])\n onAnimationDone(event: AnimationEvent) {\n // Check if the dialog is being destroyed.\n if (event?.toState !== 'void') {\n return;\n }\n\n // Destroy the ref if it exists.\n this.componentRef?.destroy();\n }\n\n private listenForClicks() {\n const element = this.backdropElementRef?.nativeElement ?? null;\n if (!element) {\n return;\n }\n\n const mouseDown$ = fromEvent(element, 'mousedown');\n const touchStart$ = fromEvent(element, 'touchstart');\n const start$ = race([mouseDown$, touchStart$]);\n\n const mouseUp$ = fromEvent(element, 'mouseup');\n const touchEnd$ = fromEvent(element, 'touchend');\n const end$ = race([mouseUp$, touchEnd$]);\n\n const clicks$ = start$.pipe(switchMap(() => end$));\n const subscription = clicks$.subscribe(() => this.overlayClicked$.next());\n this._subscription.add(subscription);\n }\n\n private loadChildComponent(componentType: Type<any>) {\n // Get the view container ref and clear it.\n const viewContainerRef = this.insertion.viewContainerRef;\n viewContainerRef.clear();\n\n // Create an instance of the component.\n this.componentRef = viewContainerRef.createComponent(componentType);\n }\n\n}\n","<div #backdrop\n class=\"bb-dialog-container-backdrop\"></div>\n\n<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n","import {AfterViewInit, ChangeDetectionStrategy, Component, inject, TemplateRef, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BbDialogHeader} from '../dialog-header/dialog-header.component';\nimport {BbFocusTrap, BbTemplate} from '@bravobit/bb-foundation/utils';\nimport {BbDialogModal} from '../dialog-modal/dialog-modal.component';\nimport {BbLocalize} from '@bravobit/bb-foundation/localize';\nimport {BbButton} from '@bravobit/bb-foundation/elements';\nimport {BbDialogConfig} from '../dialog.interfaces';\nimport {BbDialogRef} from '../dialog.ref';\nimport {NgClass} from '@angular/common';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'bb-dialog-confirm',\n templateUrl: './dialog-confirm.component.html',\n styleUrls: ['./dialog-confirm.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {'class': 'bb-dialog-confirm'},\n standalone: true,\n imports: [BbDialogModal, BbDialogHeader, BbFocusTrap, BbLocalize, BbTemplate, NgClass, BbButton]\n})\nexport class BbDialogConfirm implements AfterViewInit {\n\n // Dependencies.\n private readonly _config: BbDialogConfig = inject(BbDialogConfig);\n private readonly _dialogRef: BbDialogRef<boolean> = inject(BbDialogRef);\n\n // Readonly data.\n readonly dialogId: string = `bb-dialog-confirm-${nextUniqueId++}`;\n readonly title: string | TemplateRef<any> = this._config?.data?.title ?? null;\n readonly description: string | TemplateRef<any> = this._config?.data?.description ?? null;\n readonly confirmButtonText: string = this._config?.data?.confirmButtonText ?? 'dialog.default_confirm_button';\n readonly cancelButtonText: string = this._config?.data?.cancelButtonText ?? 'dialog.default_cancel_button';\n readonly confirmButtonClass: string = this._config?.data?.confirmButtonClass ?? null;\n readonly cancelButtonClass: string = this._config?.data?.cancelButtonClass ?? null;\n readonly width: string = this._config?.data?.width ?? '30rem';\n\n // Views.\n @ViewChild('confirm', {read: BbButton, static: false}) confirmButton?: BbButton;\n\n ngAfterViewInit() {\n // Initial focus the button.\n this.confirmButton?.focus();\n }\n\n onClose(result: boolean) {\n this._dialogRef.close(result);\n }\n}\n","<div [attr.aria-labelledby]=\"dialogId\"\n [maxWidth]=\"width\"\n bb-dialog-modal\n bbFocusTrap>\n <header bb-dialog-header>\n @if (title; as titleContent) {\n <h1 [id]=\"dialogId\">\n <ng-template [bbTemplate]=\"titleContent\">\n {{ $any(titleContent) | bbLocalize:{optional: true} }}\n </ng-template>\n </h1>\n }\n </header>\n\n @if (description; as descriptionContent) {\n <p class=\"bb-dialog-confirm-description\">\n <ng-template [bbTemplate]=\"descriptionContent\">\n {{ $any(descriptionContent) | bbLocalize:{optional: true} }}\n </ng-template>\n </p>\n }\n\n <footer class=\"bb-dialog-confirm-footer\">\n @if (cancelButtonText; as cancelButtonTextLabel) {\n <button [ngClass]=\"cancelButtonClass ? cancelButtonClass : 'secondary full'\"\n (click)=\"onClose(false)\"\n bb-button\n type=\"button\">\n {{ cancelButtonTextLabel | bbLocalize:{optional: true} }}\n </button>\n }\n @if (confirmButtonText; as confirmButtonTextLabel) {\n <button #confirm\n [ngClass]=\"confirmButtonClass ? confirmButtonClass : 'destructive full'\"\n (click)=\"onClose(true)\"\n bb-button\n type=\"button\">\n {{ confirmButtonTextLabel | bbLocalize:{optional: true} }}\n </button>\n }\n </footer>\n</div>\n","import {ApplicationRef, ComponentRef, createComponent, createEnvironmentInjector, EnvironmentInjector, Injectable, TemplateRef, Type} from '@angular/core';\nimport {BbDialogContainer} from './dialog-container/dialog-container.component';\nimport {BbDialogConfirm} from './dialog-confirm/dialog-confirm.component';\nimport {BbDialogConfig, DialogConfirmOptions} from './dialog.interfaces';\nimport {BbDialogRef} from './dialog.ref';\nimport {firstValueFrom} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Dialog {\n\n constructor(private _applicationRef: ApplicationRef,\n private _environmentInjector: EnvironmentInjector) {\n }\n\n open<T = any>(componentType: Type<any>, config?: BbDialogConfig) {\n return this.createDialog<T>(componentType, config);\n }\n\n async confirm(title: string | TemplateRef<any>, description: string | TemplateRef<any>, options?: Partial<DialogConfirmOptions>) {\n const dialogRef = this.open<boolean>(BbDialogConfirm, {\n data: {title, description, ...(options ?? {})}\n });\n return await firstValueFrom(dialogRef.afterClosed);\n }\n\n private createDialog<T = any>(componentType: Type<any>, config?: BbDialogConfig) {\n // Create a reference.\n const dialogRef = new BbDialogRef<T>();\n const environmentInjector = createEnvironmentInjector([\n {provide: BbDialogConfig, useValue: config ?? {}},\n {provide: BbDialogRef, useValue: dialogRef}\n ], this._environmentInjector);\n const dialogComponentRef = createComponent(BbDialogContainer, {environmentInjector});\n\n // Attach the host view to the application.\n this._applicationRef.attachView(dialogComponentRef.hostView);\n\n try {\n // Remove the current focus.\n const activeElement = document.activeElement as HTMLElement;\n activeElement.blur();\n\n // Append the element to the DOM.\n document.body.appendChild(dialogComponentRef.location.nativeElement);\n } catch {\n // Don't do anything, because it must've failed.\n }\n\n // Set the child component type on the component.\n dialogComponentRef.instance.childComponentType = componentType;\n dialogComponentRef.instance.onOverlayClicked.subscribe(() => dialogRef.onOverlayClicked());\n\n // Listen for close events.\n dialogRef.afterClosed.subscribe(() => this.deleteDialog(dialogComponentRef));\n\n // Return the reference.\n return dialogRef;\n }\n\n private deleteDialog(dialogComponentRef: ComponentRef<BbDialogContainer>) {\n // Only continue if the dialog component ref exists.\n if (!dialogComponentRef) {\n return;\n }\n\n // Detach the dialog.\n this._applicationRef.detachView(dialogComponentRef.hostView);\n\n // Destroy the dialog.\n dialogComponentRef.destroy();\n dialogComponentRef = null;\n }\n\n}\n","import {Directive, EventEmitter, HostListener, inject, Input, Output} from '@angular/core';\nimport {Dialog} from '../dialog.service';\n\n@Directive({\n selector: '[bbConfirm]',\n standalone: true\n})\nexport class BbConfirm {\n\n // Dependencies.\n private _dialog = inject(Dialog);\n\n // Inputs.\n @Input() bbConfirmTitle: string = 'dialog.default_title';\n @Input() bbConfirmDescription: string = 'dialog.default_description';\n @Input() bbConfirmButtonText: string | null = null;\n @Input() bbCancelButtonText: string | null = null;\n\n // Outputs.\n @Output('bbConfirm') confirm = new EventEmitter<MouseEvent>();\n\n @HostListener('click', ['$event'])\n async onClick(event: MouseEvent) {\n const confirmed = await this._dialog.confirm(this.bbConfirmTitle, this.bbConfirmDescription, {\n confirmButtonText: this.bbConfirmButtonText,\n cancelButtonText: this.bbCancelButtonText\n });\n if (!confirmed) {\n return;\n }\n\n this.confirm.emit(event);\n }\n\n}\n","import {EnvironmentProviders, makeEnvironmentProviders} from '@angular/core';\nimport {DIALOG_CONFIG, DialogConfig} from './dialog.interfaces';\n\nexport function provideDialogConfig(config?: DialogConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n {provide: DIALOG_CONFIG, useValue: config ?? {}}\n ]);\n}\n","import {BbDialogContainer} from './dialog-container/dialog-container.component';\nimport {BbDialogConfirm} from './dialog-confirm/dialog-confirm.component';\nimport {BbDialogActions} from './dialog-actions/dialog-actions.component';\nimport {BbDialogOverlay} from './dialog-overlay/dialog-overlay.component';\nimport {BbDialogHeader} from './dialog-header/dialog-header.component';\nimport {BbDialogModal} from './dialog-modal/dialog-modal.component';\nimport {BbDialogLink} from './dialog-link/dialog-link.component';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {BbConfirm} from './directives/confirm.directive';\nimport {BbDialogInsertion} from './dialog.insertion';\nimport {provideDialogConfig} from './dialog.config';\nimport {DialogConfig} from './dialog.interfaces';\n\n@NgModule({\n imports: [\n BbDialogContainer,\n BbDialogOverlay,\n BbDialogModal,\n BbDialogHeader,\n BbDialogLink,\n BbDialogActions,\n BbDialogConfirm,\n BbDialogInsertion,\n BbConfirm\n ],\n exports: [\n BbDialogOverlay,\n BbDialogModal,\n BbDialogHeader,\n BbDialogLink,\n BbDialogActions,\n BbConfirm\n ]\n})\nexport class DialogModule {\n\n static forRoot(config?: DialogConfig): ModuleWithProviders<DialogModule> {\n return {\n ngModule: DialogModule,\n providers: [\n provideDialogConfig(config)\n ]\n };\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { Localize } from '../localize.service';
|
|
|
6
6
|
export declare class LocalizeInterpolateTransform extends LocalizeTransform {
|
|
7
7
|
protected readonly config?: LocalizeConfig;
|
|
8
8
|
protected readonly functions?: LocalizeFunction[];
|
|
9
|
-
protected readonly substitutions: [string, string];
|
|
9
|
+
protected readonly substitutions: [leftSubstitution: string, rightSubstitution: string];
|
|
10
10
|
protected readonly functionsMap: LocalizeFunctionMap;
|
|
11
11
|
execute(value: string, data: LocalizeParams['data'], localize: Localize): string;
|
|
12
12
|
protected parseInterpolationToken(value: string, data: LocalizeParams['data'], localize: Localize): string;
|
|
@@ -4,7 +4,7 @@ import { LocalizeTransform } from './abstract.transform';
|
|
|
4
4
|
import { Localize } from '../localize.service';
|
|
5
5
|
export declare class LocalizePluralTransform extends LocalizeTransform {
|
|
6
6
|
protected readonly config?: LocalizeConfig;
|
|
7
|
-
protected readonly substitutions: [string, string];
|
|
7
|
+
protected readonly substitutions: [leftSubstitution: string, rightSubstitution: string];
|
|
8
8
|
protected readonly defaultAmount = "default";
|
|
9
9
|
protected readonly multiItemRegex: RegExp;
|
|
10
10
|
protected readonly singleItemRegex: RegExp;
|
|
@@ -4,6 +4,6 @@ import { LocalizeTransform } from './abstract.transform';
|
|
|
4
4
|
import { Localize } from '../localize.service';
|
|
5
5
|
export declare class LocalizeReferenceTransform extends LocalizeTransform {
|
|
6
6
|
protected readonly config?: LocalizeConfig;
|
|
7
|
-
protected readonly substitutions: [string, string];
|
|
7
|
+
protected readonly substitutions: [leftSubstitution: string, rightSubstitution: string];
|
|
8
8
|
execute(value: string, _: LocalizeParams['data'], localize: Localize): string;
|
|
9
9
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bravobit/bb-foundation",
|
|
3
|
-
"version": "0.44.
|
|
3
|
+
"version": "0.44.5",
|
|
4
4
|
"description": "The Angular core foundation of the Bravobit team.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Stan van Heumen",
|
|
@@ -49,12 +49,6 @@
|
|
|
49
49
|
"esm": "./esm2022/dashboard/bravobit-bb-foundation-dashboard.mjs",
|
|
50
50
|
"default": "./fesm2022/bravobit-bb-foundation-dashboard.mjs"
|
|
51
51
|
},
|
|
52
|
-
"./dialog": {
|
|
53
|
-
"types": "./dialog/index.d.ts",
|
|
54
|
-
"esm2022": "./esm2022/dialog/bravobit-bb-foundation-dialog.mjs",
|
|
55
|
-
"esm": "./esm2022/dialog/bravobit-bb-foundation-dialog.mjs",
|
|
56
|
-
"default": "./fesm2022/bravobit-bb-foundation-dialog.mjs"
|
|
57
|
-
},
|
|
58
52
|
"./elements": {
|
|
59
53
|
"types": "./elements/index.d.ts",
|
|
60
54
|
"esm2022": "./esm2022/elements/bravobit-bb-foundation-elements.mjs",
|
|
@@ -73,6 +67,12 @@
|
|
|
73
67
|
"esm": "./esm2022/http/bravobit-bb-foundation-http.mjs",
|
|
74
68
|
"default": "./fesm2022/bravobit-bb-foundation-http.mjs"
|
|
75
69
|
},
|
|
70
|
+
"./dialog": {
|
|
71
|
+
"types": "./dialog/index.d.ts",
|
|
72
|
+
"esm2022": "./esm2022/dialog/bravobit-bb-foundation-dialog.mjs",
|
|
73
|
+
"esm": "./esm2022/dialog/bravobit-bb-foundation-dialog.mjs",
|
|
74
|
+
"default": "./fesm2022/bravobit-bb-foundation-dialog.mjs"
|
|
75
|
+
},
|
|
76
76
|
"./localize": {
|
|
77
77
|
"types": "./localize/index.d.ts",
|
|
78
78
|
"esm2022": "./esm2022/localize/bravobit-bb-foundation-localize.mjs",
|