import { r as registerInstance, d as createEvent, h, B as Build, H as Host } from './index-33e43734.js';

let FormSiteAreas = class {
  constructor(hostRef) {
    registerInstance(this, hostRef);
    this.fireenjinSubmit = createEvent(this, "fireenjinSubmit", 7);
    this.isAffected = false;
  }
  onChange(event) {
    var _a;
    if (event.target.name === "affected") {
      this.isAffected = !!((_a = event === null || event === void 0 ? void 0 : event.target) === null || _a === void 0 ? void 0 : _a.checked);
    }
  }
  removeArea(index, affected) {
    var _a, _b, _c, _d, _e, _f, _g, _h;
    if (!confirm("Are you sure you want to remove this area?"))
      return;
    if (affected) {
      this.site.affectedAreas = (_c = (_b = (_a = this.site) === null || _a === void 0 ? void 0 : _a.affectedAreas) === null || _b === void 0 ? void 0 : _b.filter) === null || _c === void 0 ? void 0 : _c.call(_b, (_area, i) => i !== index);
    }
    else {
      this.site.areas = (_f = (_e = (_d = this.site) === null || _d === void 0 ? void 0 : _d.areas) === null || _e === void 0 ? void 0 : _e.filter) === null || _f === void 0 ? void 0 : _f.call(_e, (_area, i) => i !== index);
    }
    this.fireenjinSubmit.emit({
      endpoint: "editSite",
      params: {
        id: this.siteId,
        data: {
          jobId: this.jobId,
          areas: ((_g = this.site) === null || _g === void 0 ? void 0 : _g.areas) || [],
          affectedAreas: ((_h = this.site) === null || _h === void 0 ? void 0 : _h.affectedAreas) || [],
        },
      },
    });
  }
  render() {
    var _a, _b, _c, _d, _e, _f, _g;
    return [
      h("fireenjin-form", { name: "measure", hideControls: true, disableLoader: true, endpoint: this.siteId ? "editSite" : "addSite", documentId: this.siteId, beforeSubmit: async (data) => {
          var _a, _b;
          const affectedAreas = ((_a = this.site) === null || _a === void 0 ? void 0 : _a.affectedAreas) || [];
          const areas = ((_b = this.site) === null || _b === void 0 ? void 0 : _b.areas) || [];
          if (this.isAffected) {
            affectedAreas.push({
              height: ((data === null || data === void 0 ? void 0 : data.height) && parseFloat(data.height)) || 0,
              length: ((data === null || data === void 0 ? void 0 : data.length) && parseFloat(data.length)) || 0,
              width: ((data === null || data === void 0 ? void 0 : data.width) && parseFloat(data.width)) || 0,
            });
          }
          else {
            areas.push({
              height: ((data === null || data === void 0 ? void 0 : data.height) && parseFloat(data.height)) || 0,
              length: ((data === null || data === void 0 ? void 0 : data.length) && parseFloat(data.length)) || 0,
              width: ((data === null || data === void 0 ? void 0 : data.width) && parseFloat(data.width)) || 0,
            });
          }
          this.site = { ...this.site, affectedAreas, areas };
          return { jobId: this.jobId, areas, affectedAreas };
        } }, h("ion-grid", null, h("ion-row", { class: "ion-align-items-center" }, h("ion-col", { size: "2" }, h("ion-label", { style: {
          fontSize: "14px !important",
          fontWeight: "bold",
          display: "block",
          background: "transparent",
          textAlign: "left",
          padding: "0",
          fontFamily: "var(--ion-font-family)",
          marginBottom: "14px",
        }, position: "stacked" }, "Affected"), h("ion-toggle", { style: { padding: "5px 5px 5px 5px" }, name: "affected" })), h("ion-col", { size: "3" }, h("fireenjin-input", { type: "number", label: "Length", labelPosition: "stacked", name: "length", required: true })), h("ion-col", { size: "3" }, h("fireenjin-input", { type: "number", label: "Width", labelPosition: "stacked", name: "width", required: true })), h("ion-col", { size: "3" }, h("fireenjin-input", { type: "number", label: "Height", labelPosition: "stacked", name: "height" })), h("ion-col", { size: "1" }, h("ion-button", { type: "submit", size: "small", color: "primary" }, h("ion-icon", { slot: "icon-only", name: "add-circle" })))))),
      h("fireenjin-form", { name: "areas", resetButton: "Back", resetButtonColor: "medium", disableLoader: true, endpoint: this.siteId ? "editSite" : "addSite", submitButton: this.siteId ? "Save" : "Next", documentId: this.siteId, beforeSubmit: async () => {
          var _a, _b;
          return ({
            areas: ((_a = this.site) === null || _a === void 0 ? void 0 : _a.areas) || [],
            affecttedAreas: ((_b = this.site) === null || _b === void 0 ? void 0 : _b.affectedAreas) || [],
          });
        } }, h("ion-list", null, h("ion-item-divider", null, h("ion-label", null, "Affected Areas"), h("div", { slot: "end" }, h("ion-text", null, ((_a = this.site) === null || _a === void 0 ? void 0 : _a.affectedAreaTotalSqft)
        ? this.site.affectedAreaTotalSqft
        : 0, " ", "sqft"), h("ion-text", null, ((_b = this.site) === null || _b === void 0 ? void 0 : _b.affectedAreaTotalCuft)
        ? this.site.affectedAreaTotalCuft
        : 0, " ", "cuft"))), (((_c = this.site) === null || _c === void 0 ? void 0 : _c.affectedAreas) ? (_d = this.site) === null || _d === void 0 ? void 0 : _d.affectedAreas : []).map((area, index) => (h("ion-item", null, h("ion-label", null, (area === null || area === void 0 ? void 0 : area.length) ? area.length : 0, " ft", " x ", (area === null || area === void 0 ? void 0 : area.width) ? area.width : 0, " ft", " x ", (area === null || area === void 0 ? void 0 : area.height) ? area.height : 0, " ft"), h("ion-button", { onClick: () => this.removeArea(index, true), fill: "clear", slot: "end", style: {
          "--color": "var(--ion-text-color)",
          "--color-hover": "var(--ion-color-danger",
        } }, h("ion-icon", { slot: "icon-only", name: "close-circle" }))))), h("ion-item-divider", null, h("ion-label", null, "Site Areas"), h("div", { slot: "end" }, h("ion-text", null, ((_e = this.site) === null || _e === void 0 ? void 0 : _e.areaTotalSqft) ? this.site.areaTotalSqft : 0, " sqft"), h("ion-text", null, ((_f = this.site) === null || _f === void 0 ? void 0 : _f.areaTotalCuft) ? this.site.areaTotalCuft : 0, " cuft"))), (((_g = this.site) === null || _g === void 0 ? void 0 : _g.areas) ? this.site.areas : []).map((area, index) => (h("ion-item", null, h("ion-label", null, (area === null || area === void 0 ? void 0 : area.length) ? area.length : 0, " ft", " x ", (area === null || area === void 0 ? void 0 : area.width) ? area.width : 0, " ft", " x ", (area === null || area === void 0 ? void 0 : area.height) ? area.height : 0, " ft"), h("ion-button", { onClick: () => this.removeArea(index), fill: "clear", slot: "end", style: {
          "--color": "var(--ion-text-color)",
          "--color-hover": "var(--ion-color-danger",
        } }, h("ion-icon", { slot: "icon-only", name: "close-circle" }))))))),
    ];
  }
};

let FormSiteInfo = class {
  constructor(hostRef) {
    registerInstance(this, hostRef);
  }
  render() {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
    return (h("fireenjin-form", { name: "info", endpoint: ((_a = this.site) === null || _a === void 0 ? void 0 : _a.id) ? "editSite" : "addSite", submitButton: ((_b = this.site) === null || _b === void 0 ? void 0 : _b.id) ? "Save" : "Next", resetButton: ((_c = this.site) === null || _c === void 0 ? void 0 : _c.id) ? "Delete Site" : null, resetButtonColor: "danger", beforeSubmit: (data) => ({
        ...data,
        jobId: this.jobId,
        chamber: ((data === null || data === void 0 ? void 0 : data.chamber) && parseInt(data.chamber)) || 0,
        class: ((data === null || data === void 0 ? void 0 : data.class) && parseInt(data.class)) || 0,
        level: ((data === null || data === void 0 ? void 0 : data.level) && parseInt(data.level)) || 0,
        offsets: ((data === null || data === void 0 ? void 0 : data.offsets) && parseInt(data.offsets)) || 0,
      }), documentId: (_d = this.site) === null || _d === void 0 ? void 0 : _d.id, disableLoader: true, disableEnterButton: true }, h("ion-grid", null, h("ion-row", null, h("ion-col", null, h("fireenjin-input", { label: "Name", labelPosition: "stacked", placeholder: "Name of the Site", name: "name", value: (_e = this.site) === null || _e === void 0 ? void 0 : _e.name, required: true }))), h("ion-row", null, h("ion-col", { size: "6", sizeSm: "3" }, h("fireenjin-input", { label: "Level", labelPosition: "stacked", type: "number", placeholder: "What level is the site on?", name: "level", value: (_f = this.site) === null || _f === void 0 ? void 0 : _f.level })), h("ion-col", { size: "6", sizeSm: "3" }, h("fireenjin-input", { label: "Chamber", labelPosition: "stacked", type: "number", placeholder: "What drying chamber is this in?", name: "chamber", value: (_g = this.site) === null || _g === void 0 ? void 0 : _g.chamber })), h("ion-col", { size: "6", sizeSm: "3" }, h("fireenjin-input", { label: "Offsets", labelPosition: "stacked", type: "number", placeholder: "Wall Offsets", name: "offsets", value: (_h = this.site) === null || _h === void 0 ? void 0 : _h.offsets })), h("ion-col", { size: "6", sizeSm: "3" }, h("fireenjin-input", { label: "Class", labelPosition: "stacked", type: "number", placeholder: "What class of water loss in this site?", name: "class", value: (_j = this.site) === null || _j === void 0 ? void 0 : _j.class }))), h("ion-row", null, h("ion-col", null, h("ion-item-divider", null, "Material Info"))), h("ion-row", null, h("ion-col", null, h("floodteam-input-material", { label: "Flooring Type", labelPosition: "stacked", name: "floorType", options: [
        {
          label: "Tile",
          value: "tile",
        },
        {
          label: "Carpet & Pad",
          value: "carpet",
        },
        {
          label: "Concrete",
          value: "concrete",
        },
        {
          label: "Wood",
          value: "wood",
        },
      ], value: (_k = this.site) === null || _k === void 0 ? void 0 : _k.floorType })), h("ion-col", null, h("floodteam-input-material", { label: "Walling Type", labelPosition: "stacked", name: "wallType", options: [
        {
          label: "Drywall",
          value: "drywall",
        },
        {
          label: "Insulation",
          value: "insulation",
        },
      ], value: (_l = this.site) === null || _l === void 0 ? void 0 : _l.wallType })), h("ion-col", null, h("floodteam-input-material", { label: "Ceiling Type", labelPosition: "stacked", name: "ceilingType", value: (_m = this.site) === null || _m === void 0 ? void 0 : _m.ceilingType }))))));
  }
};

const photoCarouselCss = "floodteam-photo-carousel{display:block;position:relative;margin:0 auto;min-height:200px;padding-top:56.25%;}floodteam-photo-carousel ion-slides::after{content:\"\";display:block;height:40px;width:100%;position:absolute;left:0;right:0;top:0;background:transparent;background:linear-gradient(\n    0deg,\n    rgba(0, 0, 0, 0) 10%,\n    rgba(0, 0, 0, 0.3) 80%\n  )}floodteam-photo-carousel ion-slides{position:absolute !important;top:0;left:0;right:0;bottom:0;overflow:hidden !important}floodteam-photo-carousel ion-slide{margin:auto}floodteam-photo-carousel input[type=\"file\"]{height:0px;width:0px;visibility:hidden;opacity:0 !important;display:block;overflow:hidden;float:left}floodteam-photo-carousel floodteam-fallback{--floodteam-fallback-icon-size:10vw}floodteam-photo-carousel floodteam-fallback ion-icon{max-width:120px;max-height:120px;color:var(--ion-color-base-dark)}floodteam-photo-carousel .photo-pagination{position:absolute;top:10px;left:8px;color:#666;display:block;z-index:2;padding-right:10px}@media only screen and (max-width: 500px){floodteam-photo-carousel .photo-pagination{top:5px;left:4px}floodteam-photo-carousel ion-fab-button{height:45px !important;width:45px !important}}";

let PhotoCarousel = class {
  constructor(hostRef) {
    registerInstance(this, hostRef);
    this.fireenjinTrigger = createEvent(this, "fireenjinTrigger", 7);
    this.badgeColor = "medium";
    this.addButtonColor = "primary";
    this.hideAddButton = false;
    this.photos = [];
    this.currentSlide = 0;
    this.options = {};
    this.name = "photocarousel";
    this.type = "site";
    this.multiple = true;
    this.tags = [];
  }
  async onSlideChange() {
    this.currentSlide = (await this.photoSlidesEl.getActiveIndex()) + 1;
  }
  async getCurrentSlide() {
    this.currentSlide = (await this.photoSlidesEl.getActiveIndex()) + 1;
    return this.currentSlide;
  }
  async getPhoto() {
    return this.photos[this.currentSlide - 1];
  }
  async slideNext() {
    return this.photoSlidesEl.slideNext();
  }
  async slidePrev() {
    return this.photoSlidesEl.slidePrev();
  }
  async slideTo(slideNumber) {
    return this.photoSlidesEl.slideTo(slideNumber - 1);
  }
  async selectFiles() {
    this.fireenjinTrigger.emit({
      name: "photos",
      multiple: !!this.multiple,
      payload: {
        path: this.uploadPath || `jobs/${this.jobId}/photos`,
        jobId: this.jobId,
        siteId: this.siteId,
        tags: this.tags || [],
      },
    });
  }
  async update() {
    this.currentSlide = (await this.photoSlidesEl.getActiveIndex()) + 1;
    return this.photoSlidesEl.update();
  }
  componentDidLoad() {
    var _a;
    if (!(Build === null || Build === void 0 ? void 0 : Build.isBrowser))
      return;
    if (!((_a = this.photoSlidesEl) === null || _a === void 0 ? void 0 : _a.getActiveIndex)) {
      setTimeout(this.componentDidLoad, 200);
      return;
    }
    setTimeout(async () => {
      this.currentSlide = (await this.photoSlidesEl.getActiveIndex()) + 1;
      await this.photoSlidesEl.update();
    }, 200);
  }
  render() {
    var _a, _b;
    return (h(Host, null, ((_a = this.photos) === null || _a === void 0 ? void 0 : _a.length) ? (h("ion-badge", { color: this.badgeColor, class: "photo-pagination" }, this.currentSlide, " / ", this.photos.length)) : null, !this.hideAddButton ? (h("ion-button", { class: "select-photo ion-float-right", color: this.addButtonColor, onClick: () => this.selectFiles() }, "Add")) : null, ((_b = this.photos) === null || _b === void 0 ? void 0 : _b.length) ? (h("ion-slides", { ref: (el) => (this.photoSlidesEl = el), pager: false, options: this.options }, this.photos.map((photo) => (h("ion-slide", null, h("ion-img", { src: photo.url })))))) : (h("floodteam-fallback", { icon: "image", message: "No Picture Taken..." }))));
  }
};
PhotoCarousel.style = photoCarouselCss;

export { FormSiteAreas as floodteam_form_site_areas, FormSiteInfo as floodteam_form_site_info, PhotoCarousel as floodteam_photo_carousel };

//# sourceMappingURL=floodteam-form-site-areas_3.entry.js.map