{"version":3,"file":"angular-extensions-modals.mjs","sources":["../../../projects/angular-extensions/modals/src/modal-prompt/modal-prompt.component.ts","../../../projects/angular-extensions/modals/src/modal-prompt/modal-prompt.html","../../../projects/angular-extensions/modals/src/modal-confirm/modal-confirm.component.ts","../../../projects/angular-extensions/modals/src/modal-confirm/modal-confirm.component.html","../../../projects/angular-extensions/modals/src/ngx-modals.module.ts","../../../projects/angular-extensions/modals/src/angular-extensions-modals.ts"],"sourcesContent":["import { NgTemplateOutlet } from \"@angular/common\";\r\nimport { AfterViewInit, Component, Inject, TemplateRef, ViewChild } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\nimport { Field, Form, ValidationConstructor } from \"angular-extensions/models\";\r\n\r\nexport interface ModalPromptSettings<TContext = any> {\r\n  title: string;\r\n\r\n  label?: string;\r\n\r\n  validation?: ValidationConstructor<string>;\r\n\r\n  multiline?: boolean;\r\n\r\n  template?: TemplateRef<TContext>;\r\n\r\n  templateContext?: TContext;\r\n}\r\n\r\n@Component({\r\n  selector: \"modal-prompt\",\r\n  templateUrl: \"./modal-prompt.html\",\r\n})\r\nexport class ModalPromptComponent implements AfterViewInit {\r\n\r\n  @ViewChild(NgTemplateOutlet, { static: true })\r\n  public templateOutlet: NgTemplateOutlet;\r\n\r\n  public form: Form;\r\n  public field?: Field<any>;\r\n\r\n  constructor(\r\n    public dialogRef: MatDialogRef<ModalPromptComponent, string>,\r\n    @Inject(MAT_DIALOG_DATA) public settings: ModalPromptSettings\r\n  ) {\r\n    this.form = new Form();\r\n\r\n    this.field = new Field<string>({\r\n      label: this.settings.label || this.settings.title,\r\n      name: \"Answer\",\r\n      validation: this.settings.validation,\r\n    });\r\n  }\r\n\r\n  public ngAfterViewInit(): void {\r\n    // hacky way to get control [field] input\r\n    this.field = (this.templateOutlet as any)._viewRef._lView\r\n      .find((item: any) => item instanceof Field) as Field<any>;\r\n\r\n    if (this.field) {\r\n      this.form.addField(this.field);\r\n    }\r\n  }\r\n\r\n  public submit() {\r\n    this.form.validate();\r\n\r\n    if (this.form.valid) {\r\n      this.dialogRef.close(this.field?.value);\r\n    }\r\n  }\r\n}\r\n","<h2 class=\"font-weight-normal\"\r\n    mat-dialog-title\r\n    [innerHtml]=\"settings.title | trustedHtml\"></h2>\r\n\r\n<form [formGroup]=\"form.formGroup\"\r\n      (ngSubmit)=\"submit()\">\r\n  <mat-dialog-content>\r\n    <ng-container *ngTemplateOutlet=\"settings.template || (settings.multiline ? textarea : text); context: settings.templateContext\"></ng-container>\r\n\r\n    <ng-template #text>\r\n      <text-control class=\"d-block\"\r\n                    [field]=\"field\"\r\n                    [focused]=\"true\"></text-control>\r\n    </ng-template>\r\n\r\n    <ng-template #textarea>\r\n      <textarea-control class=\"d-block\"\r\n                        [field]=\"field\"\r\n                        [focused]=\"true\"></textarea-control>\r\n    </ng-template>\r\n  </mat-dialog-content>\r\n\r\n  <mat-dialog-actions [align]=\"'end'\">\r\n    <button mat-raised-button\r\n            type=\"button\"\r\n            [mat-dialog-close]=\"null\">Close</button>\r\n\r\n    <button mat-raised-button\r\n            color=\"primary\"\r\n            type=\"submit\">Submit</button>\r\n  </mat-dialog-actions>\r\n</form>\r\n","import { Component, Inject, TemplateRef } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\nexport interface ModalConfirmSettings<TContext = any> {\r\n  title: string;\r\n\r\n  buttons?: { text: string; color?: string; submit?: boolean; value?: any }[];\r\n\r\n  template?: TemplateRef<TContext>;\r\n\r\n  templateContext?: TContext;\r\n}\r\n\r\n@Component({\r\n  selector: \"modal-confirm\",\r\n  templateUrl: \"./modal-confirm.component.html\",\r\n  styleUrls: [\"./modal-confirm.component.scss\"]\r\n})\r\nexport class ModalConfirmComponent {\r\n\r\n  public settings: ModalConfirmSettings;\r\n\r\n  constructor(\r\n    @Inject(MAT_DIALOG_DATA) public titleOrSettings: string | ModalConfirmSettings\r\n  ) {\r\n    if (typeof titleOrSettings == \"string\") {\r\n      this.settings = { title: titleOrSettings };\r\n    }\r\n    else {\r\n      this.settings = titleOrSettings;\r\n    }\r\n\r\n    if (!this.settings.buttons?.length) {\r\n      this.settings.buttons = [\r\n        { text: \"No\", value: false },\r\n        { text: \"Yes\", value: true, submit: true, color: \"primary\" },\r\n      ];\r\n    }\r\n  }\r\n}\r\n","<h2 class=\"font-weight-normal\"\r\n    mat-dialog-title\r\n    [innerHtml]=\"settings.title | trustedHtml\"></h2>\r\n\r\n<mat-dialog-content *ngIf=\"settings.template\">\r\n  <ng-container *ngTemplateOutlet=\"settings.template; context: settings.templateContext\"></ng-container>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions [align]=\"'end'\">\r\n  <button *ngFor=\"let button of settings.buttons\"\r\n          mat-raised-button\r\n          type=\"button\"\r\n          cdkFocusInitial\r\n          [color]=\"button.color\"\r\n          [mat-dialog-close]=\"button.value !== undefined ? button.value : button.text\">\r\n    {{ button.text }}\r\n  </button>\r\n</mat-dialog-actions>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatDialogModule, MatDialogConfig, MAT_DIALOG_DEFAULT_OPTIONS } from \"@angular/material/dialog\";\r\n\r\nimport { NgxTextControlModule } from \"angular-extensions/controls/text-control\";\r\nimport { NgxTextAreaControlModule } from \"angular-extensions/controls/textarea-control\";\r\nimport { ModalConfirmComponent } from \"./modal-confirm/modal-confirm.component\";\r\nimport { ModalPromptComponent } from \"./modal-prompt/modal-prompt.component\";\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    MatDialogModule,\r\n    MatButtonModule,\r\n    NgxTextControlModule,\r\n    NgxTextAreaControlModule,\r\n  ],\r\n  declarations: [\r\n    ModalConfirmComponent,\r\n    ModalPromptComponent,\r\n  ],\r\n  exports: [\r\n    CommonModule,\r\n    MatDialogModule,\r\n    MatButtonModule,\r\n    NgxTextControlModule,\r\n    NgxTextAreaControlModule,\r\n\r\n    ModalConfirmComponent,\r\n    ModalPromptComponent,\r\n  ],\r\n  providers: [\r\n    {\r\n      provide: MAT_DIALOG_DEFAULT_OPTIONS,\r\n      useValue: {\r\n        closeOnNavigation: true,\r\n        disableClose: true,\r\n        hasBackdrop: true,\r\n      } as MatDialogConfig\r\n    },\r\n  ]\r\n})\r\nexport class NgxModalsModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i1","i4"],"mappings":"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"}