{"version":3,"file":"verben-ng-ui-src-lib-components-verben-mail.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/verben-mail/verben-mail.component.ts","../../../projects/verben-ng-ui/src/lib/components/verben-mail/verben-mail.component.html","../../../projects/verben-ng-ui/src/lib/components/verben-mail/verben-mail.module.ts","../../../projects/verben-ng-ui/src/lib/components/verben-mail/verben-ng-ui-src-lib-components-verben-mail.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MailPayload } from 'verben-ng-ui/src/lib/models';\n\n@Component({\n  selector: 'verben-mail-template',\n  templateUrl: './verben-mail.component.html',\n  styleUrls: ['./verben-mail.component.css'],\n})\nexport class VerbenMailTemplate {\n  @Input() containerWidth: string = '500px';\n  @Input() borderRadius: string = '10px';\n  @Input() primaryColor: string = '#FFE681';\n  @Input() secondaryColor: string = '';\n  @Input() tetiaryColor: string = '';\n  @Input() border: string = '1px solid gray';\n  @Input() pd: string = '20px';\n  @Input() m: string = '';\n  @Input() max: number = 10;\n  mailForm: FormGroup;\n  isRichText: boolean = false;\n  isUploading: boolean = false;\n  uploadedFileName: string | null = null;\n  fileUploadError: string | null = null;\n  toEmails: string[] = [];\n  ccEmails: string[] = [];\n  bccEmails: string[] = [];\n  toEmailInput: string = '';\n  ccEmailInput: string = '';\n  bccEmailInput: string = '';\n  mailData: any;\n  toEmailError: string | null = null;\n  ccEmailError: string | null = null;\n  bccEmailError: string | null = null;\n  @Output() mailPayload = new EventEmitter<MailPayload>();\n  constructor(private fb: FormBuilder) {\n    this.mailForm = this.fb.group({\n      subject: ['', Validators.required],\n      body: ['', Validators.required],\n      toEmails: [[], Validators.required],\n      ccEmails: [[]],\n      bccEmails: [[]],\n    });\n  }\n\n  onToChange(): void {\n    const newValues = this.mailForm.get('toEmails')?.value || [];\n    const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n    const validEmails: string[] = [];\n\n    newValues.forEach((email: string) => {\n      if (emailRegex.test(email)) {\n        validEmails.push(email);\n      } else {\n        if (!emailRegex.test(email)) {\n          this.toEmailError = 'email must be valid';\n        }\n      }\n    });\n    if (validEmails.length === 0) {\n      this.toEmailError = 'email must be valid';\n    } else {\n      this.toEmailError = '';\n    }\n\n    this.toEmails = validEmails;\n  }\n\n  onCcChange(): void {\n    const newValues = this.mailForm.get('ccEmails')?.value || [];\n    const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n    const validEmails = newValues.filter((email: string) =>\n      emailRegex.test(email)\n    );\n    this.ccEmails = validEmails;\n  }\n  onBccChange(): void {\n    const newValues = this.mailForm.get('bccEmails')?.value || [];\n    const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n    const validEmails = newValues.filter((email: string) =>\n      emailRegex.test(email)\n    );\n    this.bccEmails = validEmails;\n  }\n  validateEmail(email: string): boolean {\n    const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/;\n    return emailRegex.test(email);\n  }\n\n  onFileSelected(event: Event) {\n    const input = event.target as HTMLInputElement;\n    if (input.files && input.files.length > 0) {\n      const file = input.files[0];\n      this.fileUploadError = null;\n      if (!file) {\n        this.isUploading = true;\n      }\n      if (file.size > 5000000) {\n        this.fileUploadError = 'File size exceeds 5MB limit.';\n        this.uploadedFileName = null;\n        this.isUploading = false; // Reset isUploading state\n      } else {\n        this.uploadedFileName = file.name;\n      }\n    } else {\n      this.isUploading = false;\n    }\n  }\n\n  removeFile() {\n    this.uploadedFileName = null;\n    this.fileUploadError = null;\n    const fileInput = document.getElementById('attachment') as HTMLInputElement;\n    if (fileInput) {\n      fileInput.value = '';\n    }\n  }\n\n  toggleEditor() {\n    this.isRichText = !this.isRichText;\n  }\n\n  sendEmail() {\n    if (this.mailForm.valid) {\n      const emailData: MailPayload = {\n        subject: this.mailForm.value.subject,\n        body: this.mailForm.value.body,\n        to: this.mailForm.get('toEmails')?.value,\n        cc: this.mailForm.get('ccEmails')?.value,\n        bcc: this.mailForm.get('bccEmails')?.value,\n        attachment: this.uploadedFileName,\n      };\n      this.mailPayload.emit(emailData);\n      this.resetForm();\n    }\n  }\n  resetForm() {\n    this.mailForm.get('toEmails')?.reset('');\n    this.mailForm.get('ccEmails')?.reset('');\n    this.mailForm.get('bccEmails')?.reset('');\n    this.mailForm.get('subject')?.reset('');\n    this.mailForm.get('body')?.reset('');\n    this.toEmailError = null;\n    this.ccEmailError = null;\n    this.bccEmailError = null;\n    this.uploadedFileName = null;\n    this.fileUploadError = null;\n    this.isUploading = false;\n    this.isRichText = false;\n  }\n}\n","<form\n  [style.width]=\"containerWidth\"\n  [formGroup]=\"mailForm\"\n  (ngSubmit)=\"sendEmail()\"\n>\n  <div\n    class=\"button-container flex flex-end gap\"\n    [style.margin-bottom]=\"'10px'\"\n  >\n    <button class=\"button\" type=\"button\" (click)=\"toggleEditor()\">\n      {{ isRichText ? \"Switch to Plain\" : \"View Designer\" }}\n    </button>\n    <button\n      type=\"submit\"\n      [style.background-color]=\"primaryColor\"\n      [style.padding]=\"'0px 10px'\"\n      [ngClass]=\"{\n        disabled: mailForm.invalid,\n        enabled: !mailForm.invalid\n      }\"\n      [disabled]=\"mailForm.invalid\"\n    >\n      Send\n    </button>\n  </div>\n  <div\n    class=\"container\"\n    [style.border-radius]=\"borderRadius\"\n    [style.border]=\"border\"\n    [style.padding]=\"pd\"\n  >\n    <div class=\"verben-mail-container\">\n      <div class=\"verben-mail-form\">\n        <!-- Subject Field -->\n        <div class=\"form-element subject\">\n          <label for=\"subject\">Subject:</label>\n          <input id=\"subject\" type=\"text\" formControlName=\"subject\" />\n        </div>\n\n        <!-- To Field with verben-chip -->\n        <div class=\"form-element\">\n          <label for=\"to\">TO:</label>\n          <div class=\"email-tags-container\">\n            <verben-chip\n              [required]=\"true\"\n              [invalidMessage]=\"toEmailError || 'email must be provided'\"\n              (onChange)=\"onToChange()\"\n              formControlName=\"Groups\"\n              [max]=\"max\"\n              [ngModel]=\"toEmails\"\n            >\n            </verben-chip>\n          </div>\n        </div>\n\n        <!-- CC Field with verben-chip -->\n        <div class=\"form-element\">\n          <label for=\"cc\">CC:</label>\n          <div class=\"email-tags-container\">\n            <verben-chip\n              (onChange)=\"onCcChange()\"\n              formControlName=\"ccEmails\"\n              [ngModel]=\"ccEmails\"\n            >\n              <ng-template let-item vTemplate=\"item\">\n                {{ item }}\n              </ng-template>\n            </verben-chip>\n          </div>\n        </div>\n\n        <!-- BCC Field with verben-chip -->\n        <div class=\"form-element\">\n          <label for=\"bcc\">BCC:</label>\n          <div class=\"email-tags-container\">\n            <verben-chip\n              (onChange)=\"onBccChange()\"\n              [ngModel]=\"bccEmails\"\n              formControlName=\"bccEmails\"\n            >\n              <ng-template let-item vTemplate=\"item\">\n                {{ item }}\n              </ng-template>\n            </verben-chip>\n          </div>\n        </div>\n\n        <!-- Attachments Section -->\n        <div class=\"form-element attachment\">\n          <label\n            *ngIf=\"!uploadedFileName && !isUploading\"\n            for=\"attachment\"\n            class=\"flex items-center gap cursor-pointer\"\n          >\n            <verben-svg [width]=\"20\" fill=\"black\" icon=\"attach\"></verben-svg\n            >Attach file\n          </label>\n          <input\n            id=\"attachment\"\n            type=\"file\"\n            (change)=\"onFileSelected($event)\"\n            class=\"none\"\n          />\n          <div *ngIf=\"isUploading\" class=\"loader\">Uploading...</div>\n          <div *ngIf=\"uploadedFileName\" class=\"flex items-center gap\">\n            <span>{{ uploadedFileName }}</span>\n            <button\n              [style.color]=\"'black'\"\n              type=\"button\"\n              (click)=\"removeFile()\"\n            >\n              &#x2715;\n            </button>\n          </div>\n          <div *ngIf=\"fileUploadError\" class=\"error\">{{ fileUploadError }}</div>\n        </div>\n\n        <!-- Email Body -->\n\n        <hr [style.color]=\"'#00000066'\" />\n        <div class=\"form-element quill\" [style.margin-top]=\"'30px'\">\n          <div *ngIf=\"isRichText; else textArea\">\n            <ng-content select=\"[rich-text]\">widget should appear here </ng-content>\n          </div>\n          <ng-template #textArea>\n            <ng-content select=\"[text-arae]\">\n              <textarea\n                formControlName=\"body\"\n                class=\"block\"\n                rows=\"10\"\n                cols=\"50\"\n              ></textarea>\n            </ng-content>\n          </ng-template>\n        </div>\n      </div>\n    </div>\n  </div>\n</form>\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { VerbenMailTemplate } from './verben-mail.component';\nimport { ChipModule } from 'verben-ng-ui/src/lib/components/chip';\nimport { SvgModule } from 'verben-ng-ui/src/lib/components/svg';\n@NgModule({\n  declarations: [VerbenMailTemplate],\n  imports: [\n    FormsModule,\n    CommonModule,\n    ChipModule,\n    ReactiveFormsModule,\n    SvgModule,\n  ],\n  exports: [VerbenMailTemplate],\n})\nexport class VerbenaMailTemplateModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}