'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

const index = require('./index-fd2bbf0b.js');
const hardwareBackButton = require('./overlays-de05dc6a.js');
const store = require('./store-f2110833.js');
require('./ionic-global-1340f737.js');
require('./helpers-c2496722.js');
require('./index-81aa1bcb.js');
require('./getCache-c039a6ae.js');

const modalSendEmailCss = ".modal-send-email-wrapper{--min-width:300px}modal-send-email ion-item-divider{--padding-start:0px}modal-send-email fireenjin-avatar{margin-left:16px}modal-send-email h5,modal-send-email p{display:block;--ion-color-step-600:#666666;font-size:0.9em}modal-send-email ion-button{display:table;margin-left:0px;margin:0 auto}";

let ModalSendEmail = class {
  constructor(hostRef) {
    index.registerInstance(this, hostRef);
    this.floodteamCloseModal = index.createEvent(this, "floodteamCloseModal", 7);
    this.to = [];
    this.from = "info@thefloodteam.com";
    this.attachments = [];
    this.users = [];
    this.hideTemplateSelect = false;
  }
  async onSuccess(event) {
    var _a;
    if (((_a = event.detail) === null || _a === void 0 ? void 0 : _a.endpoint) === "sendTemplateEmail") {
      const sendEmailModalEl = document.querySelector("ion-modal.modal-send-email-wrapper");
      if (sendEmailModalEl === null || sendEmailModalEl === void 0 ? void 0 : sendEmailModalEl.dismiss) {
        await sendEmailModalEl.dismiss();
        this.presentToast();
      }
    }
  }
  async presentToast() {
    const toast = await hardwareBackButton.toastController.create({
      message: "Your emails are on their way.",
      duration: 2000,
    });
    toast.present();
  }
  onBeforeSubmit(formData) {
    return {
      templateId: (formData === null || formData === void 0 ? void 0 : formData.templateId)
        ? formData.templateId
        : this.templateId
          ? this.templateId
          : null,
      attachments: this.attachments,
      from: (formData === null || formData === void 0 ? void 0 : formData.from)
        ? formData.from
        : this.from
          ? this.from
          : "info@thefloodteam.com",
      emails: (formData === null || formData === void 0 ? void 0 : formData.to) ? formData.to : this.to ? this.to : [],
      filters: this.filters ? this.filters : null,
    };
  }
  componentWillLoad() {
    if (!(index.Build === null || index.Build === void 0 ? void 0 : index.Build.isBrowser))
      return;
  }
  render() {
    return [
      index.h("ion-header", null, index.h("ion-toolbar", null, index.h("ion-title", null, "Send Email"), index.h("ion-buttons", { slot: "end" }, index.h("ion-button", { onClick: () => this.formEl.submit(), color: "primary", fill: "solid" }, "Send"), index.h("ion-button", { onClick: () => this.floodteamCloseModal.emit(), style: {
          "--color": "var(--ion-text-color)",
          "--color-hover": "var(--ion-color-danger",
        } }, index.h("ion-icon", { slot: "icon-only", name: "close-circle-outline" }))))),
      index.h("ion-content", { style: {
          "--background": "var(--ion-color-base)",
        } }, index.h("fireenjin-form", { ref: (el) => (this.formEl = el), endpoint: "sendTemplateEmail", disableEnterButton: true, hideControls: true, beforeSubmit: this.onBeforeSubmit.bind(this) }, index.h("ion-grid", null, index.h("ion-row", null, index.h("ion-col", null, !this.hideTemplateSelect && (index.h("fireenjin-select", { ref: (el) => (this.templateSelectEl = el), name: "templateId", label: "Template", labelPosition: "stacked", placeholder: "Select Message Template", value: this.templateId, options: ((store.state === null || store.state === void 0 ? void 0 : store.state.templates) || [])
          .filter((template) => !(template === null || template === void 0 ? void 0 : template.partial) &&
          (!this.templateFilter ||
            this.templateFilter(template)))
          .map((template) => ({
          label: template === null || template === void 0 ? void 0 : template.subject,
          value: template === null || template === void 0 ? void 0 : template.id,
        })), interface: "action-sheet" })), index.h("fireenjin-select-tags", { name: "to", label: "Send To", labelPosition: "stacked", placeholder: "Add Emails", allowAdding: true, value: this.to, multiple: true, options: (this.users || []).map((user) => ({
          label: (user === null || user === void 0 ? void 0 : user.email) ||
            `${user === null || user === void 0 ? void 0 : user.firstName} ${user === null || user === void 0 ? void 0 : user.lastName} has no Email on File.`,
          value: user === null || user === void 0 ? void 0 : user.email,
          disabled: !(user === null || user === void 0 ? void 0 : user.email),
        })) }))), index.h("ion-row", null, index.h("ion-col", null, index.h("fireenjin-chip-bar", null, (this.attachments || []).map((url) => {
        var _a, _b, _c, _d, _e, _f;
        return (index.h("ion-chip", null, index.h("ion-icon", { name: "document", class: "ft-icon-style" }), index.h("ion-label", null, decodeURI(((_f = (_e = (_d = (_c = (_b = (_a = url === null || url === void 0 ? void 0 : url.split) === null || _a === void 0 ? void 0 : _a.call(url, "/")) === null || _b === void 0 ? void 0 : _b.pop) === null || _c === void 0 ? void 0 : _c.call(_b)) === null || _d === void 0 ? void 0 : _d.split) === null || _e === void 0 ? void 0 : _e.call(_d, "?")) === null || _f === void 0 ? void 0 : _f[0]) ||
            "No File Name"))));
      }))))), index.h("ion-accordion-group", null, index.h("ion-accordion", null, index.h("ion-item", { slot: "header" }, index.h("ion-label", null, "Advanced")), index.h("ion-grid", { slot: "content" }, index.h("ion-row", null, index.h("ion-col", null, index.h("fireenjin-input", { name: "subject", label: "Subject", labelPosition: "stacked", placeholder: "Email Subject", value: this.subject }))), index.h("ion-row", null, index.h("ion-col", null, index.h("fireenjin-input", { name: "from", label: "Email From", labelPosition: "stacked", placeholder: "Email Address to Send From", value: this.from })), index.h("ion-col", null, index.h("fireenjin-input", { name: "replyTo", label: "Reply To", labelPosition: "stacked", placeholder: "Email Address to Reply", value: this.replyTo })))))))),
    ];
  }
};
ModalSendEmail.style = modalSendEmailCss;

exports.modal_send_email = ModalSendEmail;

//# sourceMappingURL=modal-send-email.cjs.entry.js.map