UNPKG

@koalarx/ui

Version:

Koala UI is a Design System developed in Angular whose objective is to facilitate and make your development faster and simpler, making this framework your greatest ally.

57 lines 9.3 kB
import { Injectable } from '@angular/core'; import { randomString } from "@koalarx/utils/operators/string"; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/dialog"; import * as i2 from "ngx-device-detector"; export class KoalaDialogService { constructor(dialog, deviceService) { this.dialog = dialog; this.deviceService = deviceService; } open(dialogComponent, size, data, triggerBeforeClosed = false, beforeClosed) { const dialogRef = this.dialog.open(dialogComponent, this.dialogTemplate(data)[this.deviceService.isMobile() ? 'mobile' : size]); dialogRef.afterOpened().subscribe(() => { history.pushState(null, '', location.href); return false; }); dialogRef.beforeClosed().subscribe(event => { if ((triggerBeforeClosed && event === triggerBeforeClosed) || (typeof triggerBeforeClosed == 'object' && typeof event == 'object')) { if (beforeClosed) { beforeClosed(event); } } }); dialogRef.keydownEvents().subscribe(event => { if (event.key === 'Escape') { dialogRef.close({ closeOnNavigation: true }); } }); } dialogTemplate(data = null) { let dialogElementId = "dialog-" + randomString(10); return { auto: { id: dialogElementId, panelClass: ['koala-dialog', 'auto'], disableClose: true, data }, small: { id: dialogElementId, panelClass: ['koala-dialog', 'small'], disableClose: true, data }, normal: { id: dialogElementId, panelClass: ['koala-dialog', 'normal'], disableClose: true, data }, big: { id: dialogElementId, panelClass: ['koala-dialog', 'big'], disableClose: true, data }, fullScreen: { id: dialogElementId, panelClass: ['koala-dialog'], disableClose: true, data }, mobile: { id: dialogElementId, autoFocus: false, panelClass: ["koala-dialog", 'mobile'], width: '100vw', maxWidth: '100vw', maxHeight: '90vh', data } }; } } KoalaDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KoalaDialogService, deps: [{ token: i1.MatDialog }, { token: i2.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Injectable }); KoalaDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KoalaDialogService, providedIn: "any" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KoalaDialogService, decorators: [{ type: Injectable, args: [{ providedIn: "any" }] }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.DeviceDetectorService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kaWFsb2cvc3JjL2xpYi9rb2FsYS5kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQ1UsTUFBaUIsRUFDakIsYUFBb0M7UUFEcEMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFDOUMsQ0FBQztJQUVNLElBQUksQ0FDVCxlQUFpQyxFQUNqQyxJQUF5QixFQUN6QixJQUFVLEVBQ1Ysc0JBQWlELEtBQUssRUFDdEQsWUFBb0M7UUFFcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQy9ILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEtBQUssS0FBSyxtQkFBbUIsQ0FBQztnQkFDeEQsQ0FBQyxPQUFPLG1CQUFtQixJQUFJLFFBQVEsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLENBQUMsRUFDcEU7Z0JBQ0EsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDckI7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO2dCQUMxQixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTthQUMzQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUFZLElBQUk7UUFDckMsSUFBSSxlQUFlLEdBQUcsU0FBUyxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLEVBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUM7WUFDM0YsS0FBSyxFQUFFLEVBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUM7WUFDN0YsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUM7WUFDL0YsR0FBRyxFQUFFLEVBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUM7WUFDekYsVUFBVSxFQUFFLEVBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQztZQUN6RixNQUFNLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLGVBQWU7Z0JBQ25CLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixVQUFVLEVBQUUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDO2dCQUN0QyxLQUFLLEVBQUUsT0FBTztnQkFDZCxRQUFRLEVBQUUsT0FBTztnQkFDakIsU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLElBQUk7YUFDTDtTQUNGLENBQUM7SUFDSixDQUFDOzsrR0F0RFUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FETixLQUFLOzJGQUNqQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEtvYWxhRGlhbG9nVGVtcGxhdGVJbnRlcmZhY2UgfSBmcm9tICcuL2tvYWxhLmRpYWxvZy10ZW1wbGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gXCJuZ3gtZGV2aWNlLWRldGVjdG9yXCI7XG5pbXBvcnQgeyByYW5kb21TdHJpbmcgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHMvb3BlcmF0b3JzL3N0cmluZ1wiO1xuXG5leHBvcnQgdHlwZSBLb2FsYURpYWxvZ1NpemVUeXBlID0gJ2F1dG8nIHwgJ3NtYWxsJyB8ICdub3JtYWwnIHwgJ2JpZycgfCAnbW9iaWxlJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46IFwiYW55XCJ9KVxuZXhwb3J0IGNsYXNzIEtvYWxhRGlhbG9nU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIG9wZW48VD4oXG4gICAgZGlhbG9nQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LFxuICAgIHNpemU6IEtvYWxhRGlhbG9nU2l6ZVR5cGUsXG4gICAgZGF0YT86IGFueSxcbiAgICB0cmlnZ2VyQmVmb3JlQ2xvc2VkOiBzdHJpbmcgfCBib29sZWFuIHwgb2JqZWN0ID0gZmFsc2UsXG4gICAgYmVmb3JlQ2xvc2VkPzogKGV2ZW50PzogYW55KSA9PiB2b2lkXG4gICkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oZGlhbG9nQ29tcG9uZW50LCB0aGlzLmRpYWxvZ1RlbXBsYXRlKGRhdGEpW3RoaXMuZGV2aWNlU2VydmljZS5pc01vYmlsZSgpID8gJ21vYmlsZScgOiBzaXplXSlcbiAgICBkaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgJycsIGxvY2F0aW9uLmhyZWYpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5iZWZvcmVDbG9zZWQoKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgaWYgKCh0cmlnZ2VyQmVmb3JlQ2xvc2VkICYmIGV2ZW50ID09PSB0cmlnZ2VyQmVmb3JlQ2xvc2VkKSB8fFxuICAgICAgICAodHlwZW9mIHRyaWdnZXJCZWZvcmVDbG9zZWQgPT0gJ29iamVjdCcgJiYgdHlwZW9mIGV2ZW50ID09ICdvYmplY3QnKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChiZWZvcmVDbG9zZWQpIHtcbiAgICAgICAgICBiZWZvcmVDbG9zZWQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgZGlhbG9nUmVmLmNsb3NlKHtjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZX0pXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpYWxvZ1RlbXBsYXRlKGRhdGE6IGFueSA9IG51bGwpOiBLb2FsYURpYWxvZ1RlbXBsYXRlSW50ZXJmYWNlIHtcbiAgICBsZXQgZGlhbG9nRWxlbWVudElkID0gXCJkaWFsb2ctXCIgKyByYW5kb21TdHJpbmcoMTApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGF1dG86IHtpZDogZGlhbG9nRWxlbWVudElkLCBwYW5lbENsYXNzOiBbJ2tvYWxhLWRpYWxvZycsICdhdXRvJ10sIGRpc2FibGVDbG9zZTogdHJ1ZSwgZGF0YX0sXG4gICAgICBzbWFsbDoge2lkOiBkaWFsb2dFbGVtZW50SWQsIHBhbmVsQ2xhc3M6IFsna29hbGEtZGlhbG9nJywgJ3NtYWxsJ10sIGRpc2FibGVDbG9zZTogdHJ1ZSwgZGF0YX0sXG4gICAgICBub3JtYWw6IHtpZDogZGlhbG9nRWxlbWVudElkLCBwYW5lbENsYXNzOiBbJ2tvYWxhLWRpYWxvZycsICdub3JtYWwnXSwgZGlzYWJsZUNsb3NlOiB0cnVlLCBkYXRhfSxcbiAgICAgIGJpZzoge2lkOiBkaWFsb2dFbGVtZW50SWQsIHBhbmVsQ2xhc3M6IFsna29hbGEtZGlhbG9nJywgJ2JpZyddLCBkaXNhYmxlQ2xvc2U6IHRydWUsIGRhdGF9LFxuICAgICAgZnVsbFNjcmVlbjoge2lkOiBkaWFsb2dFbGVtZW50SWQsIHBhbmVsQ2xhc3M6IFsna29hbGEtZGlhbG9nJ10sIGRpc2FibGVDbG9zZTogdHJ1ZSwgZGF0YX0sXG4gICAgICBtb2JpbGU6IHtcbiAgICAgICAgaWQ6IGRpYWxvZ0VsZW1lbnRJZCxcbiAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgcGFuZWxDbGFzczogW1wia29hbGEtZGlhbG9nXCIsICdtb2JpbGUnXSxcbiAgICAgICAgd2lkdGg6ICcxMDB2dycsXG4gICAgICAgIG1heFdpZHRoOiAnMTAwdncnLFxuICAgICAgICBtYXhIZWlnaHQ6ICc5MHZoJyxcbiAgICAgICAgZGF0YVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==