blob: 9a3db88f88a611280f18629cc3a8ee70ea05a84d [file] [log] [blame]
{
"version": 3,
"file": "covalent-core-dialogs.js",
"sources": [
"ng://@covalent/core/dialogs/out/dialogs.module.ts",
"ng://@covalent/core/dialogs/out/services/dialog.service.ts",
"ng://@covalent/core/dialogs/out/prompt-dialog/prompt-dialog.component.ts",
"ng://@covalent/core/dialogs/out/confirm-dialog/confirm-dialog.component.ts",
"ng://@covalent/core/dialogs/out/alert-dialog/alert-dialog.component.ts",
"ng://@covalent/core/dialogs/out/dialog.component.ts"
],
"sourcesContent": [
"import { Type } from '@angular/core';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { TdDialogComponent, TdDialogTitleDirective,\n TdDialogActionsDirective, TdDialogContentDirective } from './dialog.component';\nimport { TdAlertDialogComponent } from './alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from './prompt-dialog/prompt-dialog.component';\nimport { DIALOG_PROVIDER } from './services/dialog.service';\n\nconst TD_DIALOGS: Type<any>[] = [\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n TdDialogComponent,\n TdDialogTitleDirective,\n TdDialogActionsDirective,\n TdDialogContentDirective,\n];\n\nconst TD_DIALOGS_ENTRY_COMPONENTS: Type<any>[] = [\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n];\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatDialogModule,\n MatInputModule,\n MatButtonModule,\n ],\n declarations: [\n TD_DIALOGS,\n ],\n exports: [\n TD_DIALOGS,\n ],\n providers: [\n DIALOG_PROVIDER,\n ],\n entryComponents: [\n TD_DIALOGS_ENTRY_COMPONENTS,\n ],\n})\nexport class CovalentDialogsModule {\n\n}\n",
"import { Injectable, ViewContainerRef, Provider, SkipSelf, Optional } from '@angular/core';\nimport { MatDialog, MatDialogRef, MatDialogConfig } from '@angular/material/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { TdAlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from '../prompt-dialog/prompt-dialog.component';\n\nexport interface IDialogConfig extends MatDialogConfig {\n title?: string;\n message: string;\n}\n\nexport interface IAlertConfig extends IDialogConfig {\n closeButton?: string;\n}\n\nexport interface IConfirmConfig extends IDialogConfig {\n acceptButton?: string;\n cancelButton?: string;\n}\n\nexport interface IPromptConfig extends IConfirmConfig {\n value?: string;\n}\n\n@Injectable()\nexport class TdDialogService {\n\n constructor(private _dialogService: MatDialog) {}\n\n /**\n * params:\n * - component: ComponentType<T>\n * - config: MatDialogConfig\n * Wrapper function over the open() method in MatDialog.\n * Opens a modal dialog containing the given component.\n */\n public open<T>(component: ComponentType<T>, config?: MatDialogConfig): MatDialogRef<T> {\n return this._dialogService.open(component, config);\n }\n\n /**\n * Wrapper function over the closeAll() method in MatDialog.\n * Closes all of the currently-open dialogs.\n */\n public closeAll(): void {\n this._dialogService.closeAll();\n }\n\n /**\n * params:\n * - config: IAlertConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * closeButton?: string;\n * }\n *\n * Opens an alert dialog with the provided config.\n * Returns an MatDialogRef<TdAlertDialogComponent> object.\n */\n public openAlert(config: IAlertConfig): MatDialogRef<TdAlertDialogComponent> {\n let dialogConfig: MatDialogConfig = this._createConfig(config);\n let dialogRef: MatDialogRef<TdAlertDialogComponent> =\n this._dialogService.open(TdAlertDialogComponent, dialogConfig);\n let alertDialogComponent: TdAlertDialogComponent = dialogRef.componentInstance;\n alertDialogComponent.title = config.title;\n alertDialogComponent.message = config.message;\n if (config.closeButton) {\n alertDialogComponent.closeButton = config.closeButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IConfirmConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * }\n *\n * Opens a confirm dialog with the provided config.\n * Returns an MatDialogRef<TdConfirmDialogComponent> object.\n */\n public openConfirm(config: IConfirmConfig): MatDialogRef<TdConfirmDialogComponent> {\n let dialogConfig: MatDialogConfig = this._createConfig(config);\n let dialogRef: MatDialogRef<TdConfirmDialogComponent> =\n this._dialogService.open(TdConfirmDialogComponent, dialogConfig);\n let confirmDialogComponent: TdConfirmDialogComponent = dialogRef.componentInstance;\n confirmDialogComponent.title = config.title;\n confirmDialogComponent.message = config.message;\n if (config.acceptButton) {\n confirmDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.cancelButton) {\n confirmDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IPromptConfig {\n * message: string;\n * title?: string;\n * value?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * }\n *\n * Opens a prompt dialog with the provided config.\n * Returns an MatDialogRef<TdPromptDialogComponent> object.\n */\n public openPrompt(config: IPromptConfig): MatDialogRef<TdPromptDialogComponent> {\n let dialogConfig: MatDialogConfig = this._createConfig(config);\n let dialogRef: MatDialogRef<TdPromptDialogComponent> =\n this._dialogService.open(TdPromptDialogComponent, dialogConfig);\n let promptDialogComponent: TdPromptDialogComponent = dialogRef.componentInstance;\n promptDialogComponent.title = config.title;\n promptDialogComponent.message = config.message;\n promptDialogComponent.value = config.value;\n if (config.acceptButton) {\n promptDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.cancelButton) {\n promptDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n private _createConfig(config: IDialogConfig): MatDialogConfig {\n let dialogConfig: MatDialogConfig = new MatDialogConfig();\n dialogConfig.width = '400px';\n Object.assign(dialogConfig, config);\n return dialogConfig;\n }\n\n}\n\nexport function DIALOG_PROVIDER_FACTORY(\n parent: TdDialogService, dialog: MatDialog): TdDialogService {\n return parent || new TdDialogService(dialog);\n}\n\nexport const DIALOG_PROVIDER: Provider = {\n // If there is already service available, use that. Otherwise, provide a new one.\n provide: TdDialogService,\n deps: [[new Optional(), new SkipSelf(), TdDialogService], MatDialog],\n useFactory: DIALOG_PROVIDER_FACTORY,\n};\n",
"import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-prompt-dialog',\n template: `<td-dialog>\n <td-dialog-title *ngIf=\"title\">\n {{title}}\n </td-dialog-title>\n <td-dialog-content>\n <span class=\"td-dialog-message\">{{message}}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input matInput\n #input\n (focus)=\"handleInputFocus()\"\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required/>\n </mat-form-field>\n </div>\n </form>\n </td-dialog-content>\n <td-dialog-actions>\n <button mat-button\n #closeBtn \n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\">{{cancelButton}}</button>\n <button mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n [disabled]=\"!form.valid\"\n (click)=\"accept()\">{{acceptButton}}</button>\n </td-dialog-actions>\n</td-dialog>`,\n styles: [`.td-dialog-input-wrapper{\n -webkit-box-orient:horizontal;\n -webkit-box-direction:normal;\n -ms-flex-direction:row;\n flex-direction:row;\n -webkit-box-sizing:border-box;\n box-sizing:border-box;\n display:-webkit-box;\n display:-ms-flexbox;\n display:flex; }\n .td-dialog-input-wrapper .td-dialog-input{\n -webkit-box-flex:1;\n -ms-flex:1;\n flex:1;\n -webkit-box-sizing:border-box;\n box-sizing:border-box; }\n\n.td-dialog-message{\n word-break:break-word; }\n`],\n})\nexport class TdPromptDialogComponent implements AfterViewInit {\n title: string;\n message: string;\n value: string;\n cancelButton: string = 'CANCEL';\n acceptButton: string = 'ACCEPT';\n\n @ViewChild('input') _input: ElementRef;\n\n constructor(private _dialogRef: MatDialogRef<TdPromptDialogComponent>) {}\n\n ngAfterViewInit(): void {\n // focus input once everything is rendered and good to go\n Promise.resolve().then(() => {\n (<HTMLInputElement>this._input.nativeElement).focus();\n });\n }\n\n /**\n * Method executed when input is focused\n * Selects all text\n */\n handleInputFocus(): void {\n (<HTMLInputElement>this._input.nativeElement).select();\n }\n\n cancel(): void {\n this._dialogRef.close(undefined);\n }\n\n accept(): void {\n this._dialogRef.close(this.value);\n }\n}\n",
"import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-confirm-dialog',\n template: `<td-dialog>\n <td-dialog-title *ngIf=\"title\">\n {{title}}\n </td-dialog-title>\n <td-dialog-content>\n <span class=\"td-dialog-message\">{{message}}</span>\n </td-dialog-content>\n <td-dialog-actions>\n <button mat-button\n #closeBtn \n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\">{{cancelButton}}</button>\n <button mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n (click)=\"accept()\">{{acceptButton}}</button>\n </td-dialog-actions>\n</td-dialog>`,\n styles: [`.td-dialog-message{\n word-break:break-word; }\n`],\n})\nexport class TdConfirmDialogComponent {\n title: string;\n message: string;\n cancelButton: string = 'CANCEL';\n acceptButton: string = 'ACCEPT';\n\n constructor(private _dialogRef: MatDialogRef<TdConfirmDialogComponent>) {}\n\n cancel(): void {\n this._dialogRef.close(false);\n }\n\n accept(): void {\n this._dialogRef.close(true);\n }\n}\n",
"import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-alert-dialog',\n template: `<td-dialog>\n <td-dialog-title *ngIf=\"title\">\n {{title}}\n </td-dialog-title>\n <td-dialog-content>\n <span class=\"td-dialog-message\">{{message}}</span>\n </td-dialog-content>\n <td-dialog-actions>\n <button mat-button color=\"accent\" (click)=\"close()\">{{closeButton}}</button>\n </td-dialog-actions>\n</td-dialog>`,\n styles: [`.td-dialog-message{\n word-break:break-word; }\n`],\n})\nexport class TdAlertDialogComponent {\n title: string;\n message: string;\n closeButton: string = 'CLOSE';\n\n constructor(private _dialogRef: MatDialogRef<TdAlertDialogComponent>) {}\n\n close(): void {\n this._dialogRef.close();\n }\n}\n",
"import { Component, Directive, ContentChildren, QueryList, AfterContentInit } from '@angular/core';\n\n@Directive({selector: 'td-dialog-title'})\nexport class TdDialogTitleDirective {}\n\n@Directive({selector: 'td-dialog-content'})\nexport class TdDialogContentDirective {}\n\n@Directive({selector: 'td-dialog-actions'})\nexport class TdDialogActionsDirective {}\n\n@Component({\n selector: 'td-dialog',\n template: `<div class=\"td-dialog-wrapper\">\n <h3 class=\"td-dialog-title\" *ngIf=\"dialogTitle.length > 0\">\n <ng-content select=\"td-dialog-title\"></ng-content>\n </h3>\n <div class=\"td-dialog-content\" *ngIf=\"dialogContent.length > 0\">\n <ng-content select=\"td-dialog-content\"></ng-content>\n </div>\n <div class=\"td-dialog-actions\" *ngIf=\"dialogActions.length > 0\">\n <span class=\"td-dialog-spacer\"></span>\n <ng-content select=\"td-dialog-actions\"></ng-content>\n </div>\n</div>`,\n styles: [`.td-dialog-title{\n margin-top:0;\n margin-bottom:20px; }\n\n.td-dialog-content{\n margin-bottom:16px; }\n\n.td-dialog-actions{\n position:relative;\n top:16px;\n left:16px; }\n ::ng-deep [dir='rtl'] .td-dialog-actions{\n right:16px;\n left:auto; }\n\n:host{\n display:block; }\n :host .td-dialog-actions{\n -webkit-box-orient:horizontal;\n -webkit-box-direction:normal;\n -ms-flex-direction:row;\n flex-direction:row;\n -webkit-box-sizing:border-box;\n box-sizing:border-box;\n display:-webkit-box;\n display:-ms-flexbox;\n display:flex; }\n :host .td-dialog-actions .td-dialog-spacer{\n -webkit-box-flex:1;\n -ms-flex:1;\n flex:1; }\n :host .td-dialog-actions ::ng-deep button{\n text-transform:uppercase;\n margin-left:8px;\n padding-left:8px;\n padding-right:8px;\n min-width:64px; }\n [dir='rtl'] :host .td-dialog-actions ::ng-deep button{\n margin-right:8px;\n margin-left:inherit; }\n`],\n})\nexport class TdDialogComponent implements AfterContentInit {\n\n @ContentChildren(TdDialogTitleDirective) dialogTitle: QueryList<TdDialogTitleDirective>;\n @ContentChildren(TdDialogContentDirective) dialogContent: QueryList<TdDialogContentDirective>;\n @ContentChildren(TdDialogActionsDirective) dialogActions: QueryList<TdDialogActionsDirective>;\n\n ngAfterContentInit(): void {\n if (this.dialogTitle.length > 1) {\n throw new Error('Duplicate td-dialog-title component at in td-dialog.');\n }\n if (this.dialogContent.length > 1) {\n throw new Error('Duplicate td-dialog-content component at in td-dialog.');\n }\n if (this.dialogActions.length > 1) {\n throw new Error('Duplicate td-dialog-actions component at in td-dialog.');\n }\n }\n\n}\n"
],
"names": [],
"mappings": "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"
}