import {
  LiveOpportunityService,
  OpportunityRouteType
} from "./chunk-BCWCBUER.js";
import {
  InternalRouteService
} from "./chunk-B4U6NSGR.js";
import {
  RouteLoadDirection
} from "./chunk-PRTLXG5I.js";
import {
  createCustomElement
} from "./chunk-DQUMCYPT.js";
import {
  OpportunityService
} from "./chunk-TJ5F7MJ2.js";
import "./chunk-QKEQQVYW.js";
import "./chunk-BN54ET2Y.js";
import "./chunk-7LL3CK47.js";
import "./chunk-M3LFBN7N.js";
import "./chunk-N36JE2BE.js";
import "./chunk-VWQQS2KV.js";
import {
  CommonModule,
  Component,
  FormsModule,
  Injector,
  Input,
  NgModule,
  ReactiveFormsModule,
  UiModule,
  ViewChild,
  provideHttpClient,
  setClassMetadata,
  withInterceptorsFromDi,
  ɵsetClassDebugInfo,
  ɵɵadvance,
  ɵɵclassMap,
  ɵɵconditional,
  ɵɵconditionalCreate,
  ɵɵdefineComponent,
  ɵɵdefineInjector,
  ɵɵdefineNgModule,
  ɵɵdirectiveInject,
  ɵɵelement,
  ɵɵelementEnd,
  ɵɵelementStart,
  ɵɵgetCurrentView,
  ɵɵinject,
  ɵɵinterpolate1,
  ɵɵlistener,
  ɵɵloadQuery,
  ɵɵnextContext,
  ɵɵproperty,
  ɵɵqueryRefresh,
  ɵɵrepeater,
  ɵɵrepeaterCreate,
  ɵɵrepeaterTrackByIdentity,
  ɵɵresetView,
  ɵɵrestoreView,
  ɵɵsanitizeUrl,
  ɵɵtext,
  ɵɵtextInterpolate,
  ɵɵtextInterpolate1,
  ɵɵtextInterpolate2,
  ɵɵviewQuery
} from "./chunk-VAMMRICA.js";
import "./chunk-IT26RCSL.js";
import "./chunk-RVA4KI76.js";

// src/app/opportunity/job-summary/components/attribute/attribute.component.ts
var _c0 = ["componentElm"];
function AttributeComponent_Conditional_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0)(1, "label");
    \u0275\u0275text(2);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(3, "span", 1);
    \u0275\u0275text(4);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(ctx_r0.attribute.name);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", ctx_r0.value, " ");
  }
}
var _AttributeComponent = class _AttributeComponent {
  constructor() {
  }
  get showAttribute() {
    return this.attribute != null && this.attribute.values.length > 0 && this.attribute.customerFacing;
  }
  parseValue(value) {
    switch (value) {
      case "true":
        return "Yes";
      case "false":
        return "No";
      default:
        return value;
    }
  }
  get value() {
    let mappedValue = "";
    if (this.attribute != null) {
      this.attribute.values.forEach((value) => {
        const parsedValue = this.parseValue(value);
        mappedValue = mappedValue + parsedValue;
      });
    }
    return mappedValue;
  }
  init() {
  }
  // #endregion
  ngOnInit() {
    this.init();
  }
  ngOnDestroy() {
  }
};
_AttributeComponent.\u0275fac = function AttributeComponent_Factory(__ngFactoryType__) {
  return new (__ngFactoryType__ || _AttributeComponent)();
};
_AttributeComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _AttributeComponent, selectors: [["attribute"]], viewQuery: function AttributeComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c0, 5);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.componentElm = _t.first);
  }
}, inputs: { attribute: "attribute" }, standalone: false, decls: 1, vars: 1, consts: [[1, "attribute"], [1, "value"]], template: function AttributeComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275conditionalCreate(0, AttributeComponent_Conditional_0_Template, 5, 2, "div", 0);
  }
  if (rf & 2) {
    \u0275\u0275conditional(ctx.showAttribute ? 0 : -1);
  }
}, styles: ["\n\n.attribute[_ngcontent-%COMP%]   label[_ngcontent-%COMP%] {\n  display: block;\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n  line-height: 1;\n}\n.attribute[_ngcontent-%COMP%]    > .value[_ngcontent-%COMP%] {\n  margin-top: 0.25vw;\n  display: block;\n  font-size: 2vw;\n  color: var(--color1);\n  line-height: 1;\n  font-weight: var(--stdweight);\n}\n/*# sourceMappingURL=attribute.component.css.map */"] });
var AttributeComponent = _AttributeComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(AttributeComponent, [{
    type: Component,
    args: [{ standalone: false, selector: "attribute", template: '@if (showAttribute) {\n  <div class="attribute">\n    <label>{{attribute!.name}}</label>\n    <span class="value">\n      {{value}}\n    </span>\n  </div>\n}', styles: ["/* src/app/opportunity/job-summary/components/attribute/attribute.component.scss */\n.attribute label {\n  display: block;\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n  line-height: 1;\n}\n.attribute > .value {\n  margin-top: 0.25vw;\n  display: block;\n  font-size: 2vw;\n  color: var(--color1);\n  line-height: 1;\n  font-weight: var(--stdweight);\n}\n/*# sourceMappingURL=attribute.component.css.map */\n"] }]
  }], () => [], { attribute: [{
    type: Input,
    args: ["attribute"]
  }], componentElm: [{
    type: ViewChild,
    args: ["componentElm"]
  }] });
})();
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(AttributeComponent, { className: "AttributeComponent" });
})();

// src/app/opportunity/job-summary/components/entity-details/entity-details.component.ts
var _c02 = ["componentElm"];
function EntityDetailsComponent_Conditional_1_Conditional_4_Template(rf, ctx) {
  if (rf & 1) {
    const _r1 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 13);
    \u0275\u0275listener("click", function EntityDetailsComponent_Conditional_1_Conditional_4_Template_div_click_0_listener() {
      \u0275\u0275restoreView(_r1);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.viewPhoto(ctx_r1.entity.render.src));
    });
    \u0275\u0275element(1, "img", 14);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("src", ctx_r1.entity.render.src, \u0275\u0275sanitizeUrl);
  }
}
function EntityDetailsComponent_Conditional_1_Conditional_5_Template(rf, ctx) {
  if (rf & 1) {
    const _r3 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 13);
    \u0275\u0275listener("click", function EntityDetailsComponent_Conditional_1_Conditional_5_Template_div_click_0_listener() {
      \u0275\u0275restoreView(_r3);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.viewPhoto(ctx_r1.entity.localRender));
    });
    \u0275\u0275element(1, "img", 14);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("src", ctx_r1.entity.localRender, \u0275\u0275sanitizeUrl);
  }
}
function EntityDetailsComponent_Conditional_1_For_12_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "attribute", 9);
  }
  if (rf & 2) {
    const attribute_r4 = ctx.$implicit;
    \u0275\u0275property("attribute", attribute_r4);
  }
}
function EntityDetailsComponent_Conditional_1_Conditional_13_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 10)(1, "h3");
    \u0275\u0275text(2, "Note");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(3, "p");
    \u0275\u0275text(4);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate1(" ", ctx_r1.customerNotes, " ");
  }
}
function EntityDetailsComponent_Conditional_1_For_16_Template(rf, ctx) {
  if (rf & 1) {
    const _r5 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 15);
    \u0275\u0275listener("click", function EntityDetailsComponent_Conditional_1_For_16_Template_div_click_0_listener() {
      const photo_r6 = \u0275\u0275restoreView(_r5).$implicit;
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.viewPhoto(photo_r6.src));
    });
    \u0275\u0275element(1, "img", 14);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const photo_r6 = ctx.$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("src", photo_r6.src, \u0275\u0275sanitizeUrl);
  }
}
function EntityDetailsComponent_Conditional_1_For_18_Template(rf, ctx) {
  if (rf & 1) {
    const _r7 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 15);
    \u0275\u0275listener("click", function EntityDetailsComponent_Conditional_1_For_18_Template_div_click_0_listener() {
      const photo_r8 = \u0275\u0275restoreView(_r7).$implicit;
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.viewPhoto(photo_r8));
    });
    \u0275\u0275element(1, "img", 14);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const photo_r8 = ctx.$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("src", photo_r8, \u0275\u0275sanitizeUrl);
  }
}
function EntityDetailsComponent_Conditional_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div")(1, "div", 5)(2, "label");
    \u0275\u0275text(3);
    \u0275\u0275elementEnd()();
    \u0275\u0275conditionalCreate(4, EntityDetailsComponent_Conditional_1_Conditional_4_Template, 2, 1, "div", 6)(5, EntityDetailsComponent_Conditional_1_Conditional_5_Template, 2, 1, "div", 6);
    \u0275\u0275elementStart(6, "div", 7)(7, "header")(8, "h2");
    \u0275\u0275text(9);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(10, "div", 8);
    \u0275\u0275repeaterCreate(11, EntityDetailsComponent_Conditional_1_For_12_Template, 1, 1, "attribute", 9, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275elementEnd();
    \u0275\u0275conditionalCreate(13, EntityDetailsComponent_Conditional_1_Conditional_13_Template, 5, 1, "div", 10);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(14, "div", 11);
    \u0275\u0275repeaterCreate(15, EntityDetailsComponent_Conditional_1_For_16_Template, 2, 1, "div", 12, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275repeaterCreate(17, EntityDetailsComponent_Conditional_1_For_18_Template, 2, 1, "div", 12, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275classMap(\u0275\u0275interpolate1("entity ", ctx_r1.entity.type));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate1(" ", ctx_r1.entity.type, " ");
    \u0275\u0275advance();
    \u0275\u0275conditional(ctx_r1.entity.render != null ? 4 : ctx_r1.entity.localRender != null ? 5 : -1);
    \u0275\u0275advance(5);
    \u0275\u0275textInterpolate(ctx_r1.entity.name);
    \u0275\u0275advance(2);
    \u0275\u0275repeater(ctx_r1.entityAttributes);
    \u0275\u0275advance(2);
    \u0275\u0275conditional(ctx_r1.hasCustomerNotes ? 13 : -1);
    \u0275\u0275advance(2);
    \u0275\u0275repeater(ctx_r1.entity.photos);
    \u0275\u0275advance(2);
    \u0275\u0275repeater(ctx_r1.entity.photos_B64);
  }
}
function EntityDetailsComponent_Conditional_2_For_2_For_10_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "attribute", 9);
  }
  if (rf & 2) {
    const attribute_r9 = ctx.$implicit;
    \u0275\u0275property("attribute", attribute_r9);
  }
}
function EntityDetailsComponent_Conditional_2_For_2_Conditional_11_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 10)(1, "h3");
    \u0275\u0275text(2, "Note");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(3, "p");
    \u0275\u0275text(4);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const fixture_r10 = \u0275\u0275nextContext().$implicit;
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate1(" ", fixture_r10.notes["Customer"], " ");
  }
}
function EntityDetailsComponent_Conditional_2_For_2_For_14_Template(rf, ctx) {
  if (rf & 1) {
    const _r11 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 15);
    \u0275\u0275listener("click", function EntityDetailsComponent_Conditional_2_For_2_For_14_Template_div_click_0_listener() {
      const photo_r12 = \u0275\u0275restoreView(_r11).$implicit;
      const ctx_r1 = \u0275\u0275nextContext(3);
      return \u0275\u0275resetView(ctx_r1.viewPhoto(photo_r12.src));
    });
    \u0275\u0275element(1, "img", 14);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const photo_r12 = ctx.$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("src", photo_r12.src, \u0275\u0275sanitizeUrl);
  }
}
function EntityDetailsComponent_Conditional_2_For_2_For_16_Template(rf, ctx) {
  if (rf & 1) {
    const _r13 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 15);
    \u0275\u0275listener("click", function EntityDetailsComponent_Conditional_2_For_2_For_16_Template_div_click_0_listener() {
      const photo_r14 = \u0275\u0275restoreView(_r13).$implicit;
      const ctx_r1 = \u0275\u0275nextContext(3);
      return \u0275\u0275resetView(ctx_r1.viewPhoto(photo_r14));
    });
    \u0275\u0275element(1, "img", 14);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const photo_r14 = ctx.$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("src", photo_r14, \u0275\u0275sanitizeUrl);
  }
}
function EntityDetailsComponent_Conditional_2_For_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 16)(1, "div", 5)(2, "label");
    \u0275\u0275text(3);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(4, "div", 7)(5, "header")(6, "h2");
    \u0275\u0275text(7);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(8, "div", 8);
    \u0275\u0275repeaterCreate(9, EntityDetailsComponent_Conditional_2_For_2_For_10_Template, 1, 1, "attribute", 9, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275elementEnd();
    \u0275\u0275conditionalCreate(11, EntityDetailsComponent_Conditional_2_For_2_Conditional_11_Template, 5, 1, "div", 10);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(12, "div", 11);
    \u0275\u0275repeaterCreate(13, EntityDetailsComponent_Conditional_2_For_2_For_14_Template, 2, 1, "div", 12, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275repeaterCreate(15, EntityDetailsComponent_Conditional_2_For_2_For_16_Template, 2, 1, "div", 12, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const fixture_r10 = ctx.$implicit;
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate1(" ", fixture_r10.name, " ");
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate2("", fixture_r10.name, " ", fixture_r10.number);
    \u0275\u0275advance(2);
    \u0275\u0275repeater(fixture_r10.attributes);
    \u0275\u0275advance(2);
    \u0275\u0275conditional(fixture_r10.notes["Customer"] != null ? 11 : -1);
    \u0275\u0275advance(2);
    \u0275\u0275repeater(fixture_r10.photos);
    \u0275\u0275advance(2);
    \u0275\u0275repeater(fixture_r10.photos_B64);
  }
}
function EntityDetailsComponent_Conditional_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 2);
    \u0275\u0275repeaterCreate(1, EntityDetailsComponent_Conditional_2_For_2_Template, 17, 4, "div", 16, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275repeater(ctx_r1.fixtures);
  }
}
function EntityDetailsComponent_For_5_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "entity-details", 4);
  }
  if (rf & 2) {
    const entity_r15 = ctx.$implicit;
    \u0275\u0275property("entity", entity_r15);
  }
}
var _EntityDetailsComponent = class _EntityDetailsComponent {
  constructor(liveOpportunityService, opportunityService) {
    this.liveOpportunityService = liveOpportunityService;
    this.opportunityService = opportunityService;
  }
  get entityAttributes() {
    return this.entity?.attributes ?? [];
  }
  // #endregion
  // #region Fixtures
  get fixtures() {
    return this.entity?.fixtures ?? [];
  }
  get hasFixtures() {
    return this.fixtures.length > 0;
  }
  // #endregion
  // #region Photos
  viewPhoto(src) {
    this.liveOpportunityService.viewPhoto(src);
  }
  // #endregion
  // #region Notes
  get customerNotes() {
    return this.entity?.notes["Customer"];
  }
  get hasCustomerNotes() {
    return this.customerNotes != null;
  }
  init() {
  }
  // #endregion
  ngOnInit() {
    this.init();
  }
  ngOnDestroy() {
  }
};
_EntityDetailsComponent.\u0275fac = function EntityDetailsComponent_Factory(__ngFactoryType__) {
  return new (__ngFactoryType__ || _EntityDetailsComponent)(\u0275\u0275directiveInject(LiveOpportunityService), \u0275\u0275directiveInject(OpportunityService));
};
_EntityDetailsComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _EntityDetailsComponent, selectors: [["entity-details"]], viewQuery: function EntityDetailsComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c02, 5);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.componentElm = _t.first);
  }
}, inputs: { entity: "entity" }, standalone: false, decls: 6, vars: 2, consts: [["id", "entityDetails"], [3, "class"], [1, "fixtures"], [1, "entities"], [3, "entity"], [1, "type"], [1, "render"], [1, "meta"], [1, "attributes"], [3, "attribute"], [1, "notes"], [1, "photos"], [1, "photo"], [1, "render", 3, "click"], [3, "src"], [1, "photo", 3, "click"], [1, "fixture"]], template: function EntityDetailsComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0);
    \u0275\u0275conditionalCreate(1, EntityDetailsComponent_Conditional_1_Template, 19, 7, "div", 1);
    \u0275\u0275conditionalCreate(2, EntityDetailsComponent_Conditional_2_Template, 3, 0, "div", 2);
    \u0275\u0275elementStart(3, "div", 3);
    \u0275\u0275repeaterCreate(4, EntityDetailsComponent_For_5_Template, 1, 1, "entity-details", 4, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275conditional(ctx.entity != null ? 1 : -1);
    \u0275\u0275advance();
    \u0275\u0275conditional(ctx.hasFixtures ? 2 : -1);
    \u0275\u0275advance(2);
    \u0275\u0275repeater(ctx.entity == null ? null : ctx.entity.entities);
  }
}, dependencies: [_EntityDetailsComponent, AttributeComponent], styles: ["\n\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: flex-start;\n  padding: 1vw 1vw 1vw 2vw;\n  position: relative;\n  background-color: var(--color2Alt1);\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .type[_ngcontent-%COMP%] {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: auto;\n  bottom: 0;\n  background-color: var(--color3);\n  width: 1.5vw;\n  border-radius: 0.5vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .type[_ngcontent-%COMP%]    > label[_ngcontent-%COMP%] {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  color: var(--color2);\n  font-weight: var(--strong);\n  font-size: 1vw;\n  -moz-transform: translate(-50%, -50%) rotate(-90deg);\n  -ms-transform: translate(-50%, -50%) rotate(-90deg);\n  -o-transform: translate(-50%, -50%) rotate(-90deg);\n  -webkit-transform: translate(-50%, -50%) rotate(-90deg);\n  transform: translate(-50%, -50%) rotate(-90deg);\n  white-space: nowrap;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .render[_ngcontent-%COMP%] {\n  width: 25%;\n  border-radius: 0.5vw;\n  overflow: hidden;\n  border: 0.1vw var(--color2Alt4) solid;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .render[_ngcontent-%COMP%]   img[_ngcontent-%COMP%] {\n  width: 100%;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%] {\n  flex: 1;\n  width: 100%;\n  margin-right: 1vw;\n  padding: 1vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%] {\n  font-size: 1.1vw;\n  color: var(--color1Alt3);\n  font-weight: var(--strong);\n  text-transform: uppercase;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%] {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .attributes[_ngcontent-%COMP%] {\n  margin-top: 1vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .attributes[_ngcontent-%COMP%]   attribute[_ngcontent-%COMP%] {\n  display: block;\n  margin-top: 0.5vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .attributes[_ngcontent-%COMP%]   attribute[_ngcontent-%COMP%]:first-child {\n  margin-top: 0;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .notes[_ngcontent-%COMP%] {\n  margin-top: 1vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .notes[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%] {\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .notes[_ngcontent-%COMP%]   p[_ngcontent-%COMP%] {\n  margin-top: 0.25vw;\n  font-size: 1.6vw;\n  font-weight: var(--stdweight);\n  color: var(--color1);\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .photos[_ngcontent-%COMP%] {\n  width: 25%;\n  padding: 1vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .photos[_ngcontent-%COMP%]    > .photo[_ngcontent-%COMP%] {\n  border-radius: 1vw;\n  overflow: hidden;\n  cursor: pointer;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%]    > .photos[_ngcontent-%COMP%]    > .photo[_ngcontent-%COMP%]   img[_ngcontent-%COMP%] {\n  width: 100%;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity.Unit[_ngcontent-%COMP%] {\n  background-color: rgba(var(--color1-raw), 0.05);\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity.Unit[_ngcontent-%COMP%]    > .type[_ngcontent-%COMP%] {\n  background-color: var(--color1);\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity.Structure[_ngcontent-%COMP%] {\n  background-color: rgba(var(--color4-raw), 0.05);\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity.Structure[_ngcontent-%COMP%]    > .type[_ngcontent-%COMP%] {\n  background-color: var(--color4);\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity.Floor[_ngcontent-%COMP%] {\n  background-color: rgba(var(--color4Alt4-raw), 0.05);\n}\n#entityDetails[_ngcontent-%COMP%]    > .entity.Floor[_ngcontent-%COMP%]    > .type[_ngcontent-%COMP%] {\n  background-color: var(--color4Alt4);\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%] {\n  margin-top: 1vw;\n  margin-left: 3vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%] {\n  margin-top: 0.5vw;\n  display: flex;\n  align-items: flex-start;\n  padding: 1vw;\n  position: relative;\n  background-color: rgba(var(--color5-raw), 0.1);\n  border-radius: 1vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .type[_ngcontent-%COMP%] {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: auto;\n  bottom: 0;\n  background-color: var(--color5);\n  width: 1.5vw;\n  border-radius: 0.5vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .type[_ngcontent-%COMP%]    > label[_ngcontent-%COMP%] {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  color: var(--color2);\n  font-weight: var(--strong);\n  font-size: 1vw;\n  -moz-transform: translate(-50%, -50%) rotate(-90deg);\n  -ms-transform: translate(-50%, -50%) rotate(-90deg);\n  -o-transform: translate(-50%, -50%) rotate(-90deg);\n  -webkit-transform: translate(-50%, -50%) rotate(-90deg);\n  transform: translate(-50%, -50%) rotate(-90deg);\n  white-space: nowrap;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%] {\n  flex: 1;\n  width: 100%;\n  margin-right: 1vw;\n  padding: 1vw;\n  border-left: 0.2vw var(--color2Alt2) solid;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%] {\n  font-size: 1.1vw;\n  color: var(--color1Alt3);\n  font-weight: var(--strong);\n  text-transform: uppercase;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%] {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .attributes[_ngcontent-%COMP%] {\n  margin-top: 1vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .attributes[_ngcontent-%COMP%]   attribute[_ngcontent-%COMP%] {\n  display: block;\n  margin-top: 0.5vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .attributes[_ngcontent-%COMP%]   attribute[_ngcontent-%COMP%]:first-child {\n  margin-top: 0;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .notes[_ngcontent-%COMP%] {\n  margin-top: 1vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .notes[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%] {\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .notes[_ngcontent-%COMP%]   p[_ngcontent-%COMP%] {\n  margin-top: 0.25vw;\n  font-size: 1.6vw;\n  font-weight: var(--stdweight);\n  color: var(--color1);\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .photos[_ngcontent-%COMP%] {\n  width: 25%;\n  padding: 1vw;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .photos[_ngcontent-%COMP%]    > .photo[_ngcontent-%COMP%] {\n  border-radius: 1vw;\n  overflow: hidden;\n  cursor: pointer;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]    > .photos[_ngcontent-%COMP%]    > .photo[_ngcontent-%COMP%]   img[_ngcontent-%COMP%] {\n  width: 100%;\n}\n#entityDetails[_ngcontent-%COMP%]    > .fixtures[_ngcontent-%COMP%]    > .fixture[_ngcontent-%COMP%]:first-child {\n  margin-top: 0;\n}\n#entityDetails[_ngcontent-%COMP%]    > .entities[_ngcontent-%COMP%] {\n  margin-top: 1vw;\n  margin-left: 3vw;\n}\n/*# sourceMappingURL=entity-details.component.css.map */"] });
var EntityDetailsComponent = _EntityDetailsComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(EntityDetailsComponent, [{
    type: Component,
    args: [{ standalone: false, selector: "entity-details", template: `<div id="entityDetails">
  @if (entity != null) {
    <div class="entity {{entity.type}}">
      <div class="type">
        <label>
          {{entity.type}}
        </label>
      </div>
      @if (entity.render != null) {
        <div class="render" (click)="viewPhoto(entity.render.src)">
          <img [src]="entity.render.src" />
        </div>
      } @else if (entity.localRender != null) {
        <div class="render" (click)="viewPhoto(entity.localRender)">
          <img [src]="entity.localRender" />
        </div>
      }
      <div class="meta">
        <header>
          <h2>{{entity.name}}</h2>
        </header>
        <div class="attributes">
          @for (attribute of entityAttributes; track attribute) {
            <attribute [attribute]="attribute"></attribute>
          }
        </div>
        @if (hasCustomerNotes) {
          <div class="notes">
            <h3>Note</h3>
            <p>
              {{customerNotes}}
            </p>
          </div>
        }
      </div>
      <div class="photos">
        @for (photo of entity.photos; track photo) {
          <div class="photo" (click)="viewPhoto(photo.src)">
            <img [src]="photo.src" />
          </div>
        }
        @for (photo of entity.photos_B64; track photo) {
          <div class="photo" (click)="viewPhoto(photo)">
            <img [src]="photo" />
          </div>
        }
      </div>
    </div>
  }
  @if (hasFixtures) {
    <div class="fixtures">
      @for (fixture of fixtures; track fixture) {
        <div class="fixture">
          <div class="type">
            <label>
              {{fixture.name}}
            </label>
          </div>
          <div class="meta">
            <header>
              <h2>{{fixture.name}} {{fixture.number}}</h2>
            </header>
            <div class="attributes">
              @for (attribute of fixture.attributes; track attribute) {
                <attribute [attribute]="attribute"></attribute>
              }
            </div>
            @if (fixture.notes['Customer'] != null) {
              <div class="notes">
                <h3>Note</h3>
                <p>
                  {{fixture.notes['Customer']}}
                </p>
              </div>
            }
          </div>
          <div class="photos">
            @for (photo of fixture.photos; track photo) {
              <div class="photo" (click)="viewPhoto(photo.src)">
                <img [src]="photo.src" />
              </div>
            }
            @for (photo of fixture.photos_B64; track photo) {
              <div class="photo" (click)="viewPhoto(photo)">
                <img [src]="photo" />
              </div>
            }
          </div>
        </div>
      }
    </div>
  }
  <div class="entities">
    @for (entity of entity?.entities; track entity) {
      <entity-details [entity]="entity"></entity-details>
    }
  </div>
</div>`, styles: ["/* src/app/opportunity/job-summary/components/entity-details/entity-details.component.scss */\n#entityDetails > .entity {\n  display: flex;\n  align-items: flex-start;\n  padding: 1vw 1vw 1vw 2vw;\n  position: relative;\n  background-color: var(--color2Alt1);\n}\n#entityDetails > .entity > .type {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: auto;\n  bottom: 0;\n  background-color: var(--color3);\n  width: 1.5vw;\n  border-radius: 0.5vw;\n}\n#entityDetails > .entity > .type > label {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  color: var(--color2);\n  font-weight: var(--strong);\n  font-size: 1vw;\n  -moz-transform: translate(-50%, -50%) rotate(-90deg);\n  -ms-transform: translate(-50%, -50%) rotate(-90deg);\n  -o-transform: translate(-50%, -50%) rotate(-90deg);\n  -webkit-transform: translate(-50%, -50%) rotate(-90deg);\n  transform: translate(-50%, -50%) rotate(-90deg);\n  white-space: nowrap;\n}\n#entityDetails > .entity > .render {\n  width: 25%;\n  border-radius: 0.5vw;\n  overflow: hidden;\n  border: 0.1vw var(--color2Alt4) solid;\n}\n#entityDetails > .entity > .render img {\n  width: 100%;\n}\n#entityDetails > .entity > .meta {\n  flex: 1;\n  width: 100%;\n  margin-right: 1vw;\n  padding: 1vw;\n}\n#entityDetails > .entity > .meta > header h3 {\n  font-size: 1.1vw;\n  color: var(--color1Alt3);\n  font-weight: var(--strong);\n  text-transform: uppercase;\n}\n#entityDetails > .entity > .meta > header h2 {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#entityDetails > .entity > .meta > .attributes {\n  margin-top: 1vw;\n}\n#entityDetails > .entity > .meta > .attributes attribute {\n  display: block;\n  margin-top: 0.5vw;\n}\n#entityDetails > .entity > .meta > .attributes attribute:first-child {\n  margin-top: 0;\n}\n#entityDetails > .entity > .meta > .notes {\n  margin-top: 1vw;\n}\n#entityDetails > .entity > .meta > .notes h3 {\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#entityDetails > .entity > .meta > .notes p {\n  margin-top: 0.25vw;\n  font-size: 1.6vw;\n  font-weight: var(--stdweight);\n  color: var(--color1);\n}\n#entityDetails > .entity > .photos {\n  width: 25%;\n  padding: 1vw;\n}\n#entityDetails > .entity > .photos > .photo {\n  border-radius: 1vw;\n  overflow: hidden;\n  cursor: pointer;\n}\n#entityDetails > .entity > .photos > .photo img {\n  width: 100%;\n}\n#entityDetails > .entity.Unit {\n  background-color: rgba(var(--color1-raw), 0.05);\n}\n#entityDetails > .entity.Unit > .type {\n  background-color: var(--color1);\n}\n#entityDetails > .entity.Structure {\n  background-color: rgba(var(--color4-raw), 0.05);\n}\n#entityDetails > .entity.Structure > .type {\n  background-color: var(--color4);\n}\n#entityDetails > .entity.Floor {\n  background-color: rgba(var(--color4Alt4-raw), 0.05);\n}\n#entityDetails > .entity.Floor > .type {\n  background-color: var(--color4Alt4);\n}\n#entityDetails > .fixtures {\n  margin-top: 1vw;\n  margin-left: 3vw;\n}\n#entityDetails > .fixtures > .fixture {\n  margin-top: 0.5vw;\n  display: flex;\n  align-items: flex-start;\n  padding: 1vw;\n  position: relative;\n  background-color: rgba(var(--color5-raw), 0.1);\n  border-radius: 1vw;\n}\n#entityDetails > .fixtures > .fixture > .type {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: auto;\n  bottom: 0;\n  background-color: var(--color5);\n  width: 1.5vw;\n  border-radius: 0.5vw;\n}\n#entityDetails > .fixtures > .fixture > .type > label {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  color: var(--color2);\n  font-weight: var(--strong);\n  font-size: 1vw;\n  -moz-transform: translate(-50%, -50%) rotate(-90deg);\n  -ms-transform: translate(-50%, -50%) rotate(-90deg);\n  -o-transform: translate(-50%, -50%) rotate(-90deg);\n  -webkit-transform: translate(-50%, -50%) rotate(-90deg);\n  transform: translate(-50%, -50%) rotate(-90deg);\n  white-space: nowrap;\n}\n#entityDetails > .fixtures > .fixture > .meta {\n  flex: 1;\n  width: 100%;\n  margin-right: 1vw;\n  padding: 1vw;\n  border-left: 0.2vw var(--color2Alt2) solid;\n}\n#entityDetails > .fixtures > .fixture > .meta > header h3 {\n  font-size: 1.1vw;\n  color: var(--color1Alt3);\n  font-weight: var(--strong);\n  text-transform: uppercase;\n}\n#entityDetails > .fixtures > .fixture > .meta > header h2 {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#entityDetails > .fixtures > .fixture > .meta > .attributes {\n  margin-top: 1vw;\n}\n#entityDetails > .fixtures > .fixture > .meta > .attributes attribute {\n  display: block;\n  margin-top: 0.5vw;\n}\n#entityDetails > .fixtures > .fixture > .meta > .attributes attribute:first-child {\n  margin-top: 0;\n}\n#entityDetails > .fixtures > .fixture > .meta > .notes {\n  margin-top: 1vw;\n}\n#entityDetails > .fixtures > .fixture > .meta > .notes h3 {\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#entityDetails > .fixtures > .fixture > .meta > .notes p {\n  margin-top: 0.25vw;\n  font-size: 1.6vw;\n  font-weight: var(--stdweight);\n  color: var(--color1);\n}\n#entityDetails > .fixtures > .fixture > .photos {\n  width: 25%;\n  padding: 1vw;\n}\n#entityDetails > .fixtures > .fixture > .photos > .photo {\n  border-radius: 1vw;\n  overflow: hidden;\n  cursor: pointer;\n}\n#entityDetails > .fixtures > .fixture > .photos > .photo img {\n  width: 100%;\n}\n#entityDetails > .fixtures > .fixture:first-child {\n  margin-top: 0;\n}\n#entityDetails > .entities {\n  margin-top: 1vw;\n  margin-left: 3vw;\n}\n/*# sourceMappingURL=entity-details.component.css.map */\n"] }]
  }], () => [{ type: LiveOpportunityService }, { type: OpportunityService }], { entity: [{
    type: Input,
    args: ["entity"]
  }], componentElm: [{
    type: ViewChild,
    args: ["componentElm"]
  }] });
})();
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(EntityDetailsComponent, { className: "EntityDetailsComponent" });
})();

// src/app/opportunity/job-summary/components/all-details/all-details.component.ts
var _c03 = ["componentElm"];
function AllDetailsComponent_Conditional_1_For_7_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "attribute", 6);
  }
  if (rf & 2) {
    const attribute_r1 = ctx.$implicit;
    \u0275\u0275property("attribute", attribute_r1);
  }
}
function AllDetailsComponent_Conditional_1_Conditional_8_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 7)(1, "h3");
    \u0275\u0275text(2, "Note");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(3, "p");
    \u0275\u0275text(4);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate1(" ", ctx_r1.customerNotes, " ");
  }
}
function AllDetailsComponent_Conditional_1_Conditional_10_Template(rf, ctx) {
  if (rf & 1) {
    const _r3 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 10);
    \u0275\u0275listener("click", function AllDetailsComponent_Conditional_1_Conditional_10_Template_div_click_0_listener() {
      \u0275\u0275restoreView(_r3);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.viewPhoto(ctx_r1.property.photo.src));
    });
    \u0275\u0275element(1, "img", 11);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("src", ctx_r1.property.photo.src, \u0275\u0275sanitizeUrl);
  }
}
function AllDetailsComponent_Conditional_1_Conditional_11_Template(rf, ctx) {
  if (rf & 1) {
    const _r4 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 10);
    \u0275\u0275listener("click", function AllDetailsComponent_Conditional_1_Conditional_11_Template_div_click_0_listener() {
      \u0275\u0275restoreView(_r4);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.viewPhoto(ctx_r1.property.photo_B64));
    });
    \u0275\u0275element(1, "img", 11);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("src", ctx_r1.property.photo_B64, \u0275\u0275sanitizeUrl);
  }
}
function AllDetailsComponent_Conditional_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 1)(1, "div", 4)(2, "header")(3, "h2");
    \u0275\u0275text(4, "Property");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(5, "div", 5);
    \u0275\u0275repeaterCreate(6, AllDetailsComponent_Conditional_1_For_7_Template, 1, 1, "attribute", 6, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275elementEnd();
    \u0275\u0275conditionalCreate(8, AllDetailsComponent_Conditional_1_Conditional_8_Template, 5, 1, "div", 7);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(9, "div", 8);
    \u0275\u0275conditionalCreate(10, AllDetailsComponent_Conditional_1_Conditional_10_Template, 2, 1, "div", 9);
    \u0275\u0275conditionalCreate(11, AllDetailsComponent_Conditional_1_Conditional_11_Template, 2, 1, "div", 9);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance(6);
    \u0275\u0275repeater(ctx_r1.propertyAttributes);
    \u0275\u0275advance(2);
    \u0275\u0275conditional(ctx_r1.hasCustomerNotes ? 8 : -1);
    \u0275\u0275advance(2);
    \u0275\u0275conditional(ctx_r1.property.photo != null ? 10 : -1);
    \u0275\u0275advance();
    \u0275\u0275conditional(ctx_r1.property.photo_B64 != null && ctx_r1.property.photo == null ? 11 : -1);
  }
}
function AllDetailsComponent_For_4_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "entity-details", 3);
  }
  if (rf & 2) {
    const entity_r5 = ctx.$implicit;
    \u0275\u0275property("entity", entity_r5);
  }
}
var _AllDetailsComponent = class _AllDetailsComponent {
  constructor(liveOpportunityService, opportunityService) {
    this.liveOpportunityService = liveOpportunityService;
    this.opportunityService = opportunityService;
  }
  // #endregion
  // #region Permissions
  get canModifyOpportunity() {
    if (this.opportunity != null) {
      return this.opportunityService.canModifyOpportunity(this.opportunity);
    }
    return false;
  }
  // #endregion
  // #region Property
  get property() {
    return this.opportunity?.property;
  }
  get propertyEntity() {
    return this.property?.entity;
  }
  get propertyAttributes() {
    return this.propertyEntity?.attributes ?? [];
  }
  get customerNotes() {
    return this.propertyEntity?.notes["Customer"];
  }
  get hasCustomerNotes() {
    return this.customerNotes != null;
  }
  // #endregion
  // #region Photos
  viewPhoto(src) {
    this.liveOpportunityService.viewPhoto(src);
  }
  init() {
  }
  // #endregion
  ngOnInit() {
    this.init();
  }
  ngOnDestroy() {
  }
};
_AllDetailsComponent.\u0275fac = function AllDetailsComponent_Factory(__ngFactoryType__) {
  return new (__ngFactoryType__ || _AllDetailsComponent)(\u0275\u0275directiveInject(LiveOpportunityService), \u0275\u0275directiveInject(OpportunityService));
};
_AllDetailsComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _AllDetailsComponent, selectors: [["all-details"]], viewQuery: function AllDetailsComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c03, 5);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.componentElm = _t.first);
  }
}, inputs: { opportunity: "opportunity" }, standalone: false, decls: 5, vars: 1, consts: [["id", "allDetails"], [1, "property"], [1, "entities"], [3, "entity"], [1, "meta"], [1, "attributes"], [3, "attribute"], [1, "notes"], [1, "photos"], [1, "photo"], [1, "photo", 3, "click"], [3, "src"]], template: function AllDetailsComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 0);
    \u0275\u0275conditionalCreate(1, AllDetailsComponent_Conditional_1_Template, 12, 3, "div", 1);
    \u0275\u0275elementStart(2, "div", 2);
    \u0275\u0275repeaterCreate(3, AllDetailsComponent_For_4_Template, 1, 1, "entity-details", 3, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275conditional(ctx.property != null ? 1 : -1);
    \u0275\u0275advance(2);
    \u0275\u0275repeater(ctx.propertyEntity == null ? null : ctx.propertyEntity.entities);
  }
}, dependencies: [EntityDetailsComponent, AttributeComponent], styles: ["\n\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: flex-start;\n  padding: 1vw;\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%] {\n  flex: 1;\n  width: 100%;\n  margin-right: 1vw;\n  padding: 1vw;\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%] {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .attributes[_ngcontent-%COMP%] {\n  margin-top: 1vw;\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .attributes[_ngcontent-%COMP%]   attribute[_ngcontent-%COMP%] {\n  display: block;\n  margin-top: 0.5vw;\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .attributes[_ngcontent-%COMP%]   attribute[_ngcontent-%COMP%]:first-child {\n  margin-top: 0;\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .notes[_ngcontent-%COMP%] {\n  margin-top: 1vw;\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .notes[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%] {\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > .notes[_ngcontent-%COMP%]   p[_ngcontent-%COMP%] {\n  margin-top: 0.25vw;\n  font-size: 1.6vw;\n  font-weight: var(--stdweight);\n  color: var(--color1);\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .photos[_ngcontent-%COMP%] {\n  width: 25%;\n  padding: 1vw;\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .photos[_ngcontent-%COMP%]    > .photo[_ngcontent-%COMP%] {\n  border-radius: 1vw;\n  overflow: hidden;\n  cursor: pointer;\n}\n#allDetails[_ngcontent-%COMP%]    > .property[_ngcontent-%COMP%]    > .photos[_ngcontent-%COMP%]    > .photo[_ngcontent-%COMP%]   img[_ngcontent-%COMP%] {\n  width: 100%;\n}\n#allDetails[_ngcontent-%COMP%]    > .entities[_ngcontent-%COMP%] {\n  padding: 0 1vw;\n}\n/*# sourceMappingURL=all-details.component.css.map */"] });
var AllDetailsComponent = _AllDetailsComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(AllDetailsComponent, [{
    type: Component,
    args: [{ standalone: false, selector: "all-details", template: '<div id="allDetails">\n  @if (property != null) {\n    <div class="property">\n      <div class="meta">\n        <header>\n          <h2>Property</h2>\n        </header>\n        <div class="attributes">\n          @for (attribute of propertyAttributes; track attribute) {\n            <attribute\n              [attribute]="attribute"\n            ></attribute>\n          }\n        </div>\n        @if (hasCustomerNotes) {\n          <div class="notes">\n            <h3>Note</h3>\n            <p>\n              {{customerNotes}}\n            </p>\n          </div>\n        }\n      </div>\n      <div class="photos">\n        @if (property.photo != null) {\n          <div class="photo"\n            (click)="viewPhoto(property.photo.src)"\n            >\n            <img [src]="property.photo.src" />\n          </div>\n        }\n        @if (property.photo_B64 != null && property.photo == null) {\n          <div class="photo"\n            (click)="viewPhoto(property.photo_B64)"\n            >\n            <img [src]="property.photo_B64" />\n          </div>\n        }\n      </div>\n    </div>\n  }\n  <div class="entities">\n    @for (entity of propertyEntity?.entities; track entity) {\n      <entity-details\n        [entity]="entity"\n      ></entity-details>\n    }\n  </div>\n</div>', styles: ["/* src/app/opportunity/job-summary/components/all-details/all-details.component.scss */\n#allDetails > .property {\n  display: flex;\n  align-items: flex-start;\n  padding: 1vw;\n}\n#allDetails > .property > .meta {\n  flex: 1;\n  width: 100%;\n  margin-right: 1vw;\n  padding: 1vw;\n}\n#allDetails > .property > .meta > header h2 {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#allDetails > .property > .meta > .attributes {\n  margin-top: 1vw;\n}\n#allDetails > .property > .meta > .attributes attribute {\n  display: block;\n  margin-top: 0.5vw;\n}\n#allDetails > .property > .meta > .attributes attribute:first-child {\n  margin-top: 0;\n}\n#allDetails > .property > .meta > .notes {\n  margin-top: 1vw;\n}\n#allDetails > .property > .meta > .notes h3 {\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#allDetails > .property > .meta > .notes p {\n  margin-top: 0.25vw;\n  font-size: 1.6vw;\n  font-weight: var(--stdweight);\n  color: var(--color1);\n}\n#allDetails > .property > .photos {\n  width: 25%;\n  padding: 1vw;\n}\n#allDetails > .property > .photos > .photo {\n  border-radius: 1vw;\n  overflow: hidden;\n  cursor: pointer;\n}\n#allDetails > .property > .photos > .photo img {\n  width: 100%;\n}\n#allDetails > .entities {\n  padding: 0 1vw;\n}\n/*# sourceMappingURL=all-details.component.css.map */\n"] }]
  }], () => [{ type: LiveOpportunityService }, { type: OpportunityService }], { opportunity: [{
    type: Input,
    args: ["opportunity"]
  }], componentElm: [{
    type: ViewChild,
    args: ["componentElm"]
  }] });
})();
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(AllDetailsComponent, { className: "AllDetailsComponent" });
})();

// src/app/opportunity/job-summary/components/layout/layout.component.ts
var _c04 = ["componentElm"];
function JobSummaryLayoutComponent_Conditional_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "all-details", 2);
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275property("opportunity", ctx_r0.opportunity);
  }
}
function JobSummaryLayoutComponent_Conditional_7_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 3);
    \u0275\u0275element(1, "entity-details", 12);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("entity", ctx_r0.selectedEntity);
  }
}
function JobSummaryLayoutComponent_Conditional_8_For_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 13)(1, "div", 14)(2, "span", 15);
    \u0275\u0275text(3);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(4, "div", 16)(5, "label");
    \u0275\u0275text(6);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(7, "p");
    \u0275\u0275text(8);
    \u0275\u0275elementEnd()()();
  }
  if (rf & 2) {
    const item_r2 = ctx.$implicit;
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate1(" ", item_r2.quantity, " ");
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate1(" ", item_r2.name, " ");
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", item_r2.description, " ");
  }
}
function JobSummaryLayoutComponent_Conditional_8_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 4)(1, "header")(2, "h1");
    \u0275\u0275text(3, "Additional Considerations");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(4, "div", 1);
    \u0275\u0275repeaterCreate(5, JobSummaryLayoutComponent_Conditional_8_For_6_Template, 9, 3, "div", 13, \u0275\u0275repeaterTrackByIdentity);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r0 = \u0275\u0275nextContext();
    \u0275\u0275advance(5);
    \u0275\u0275repeater(ctx_r0.visibleConsiderations);
  }
}
var _JobSummaryLayoutComponent = class _JobSummaryLayoutComponent {
  constructor(liveOpportunityService, opportunityService) {
    this.liveOpportunityService = liveOpportunityService;
    this.opportunityService = opportunityService;
    this.numberOfBathrooms = 0;
    this.numberOfLevels = 0;
    this.primaryEntities = [];
  }
  // #endregion
  // #region Permissions
  get canModifyOpportunity() {
    if (this.opportunity != null) {
      return this.opportunityService.canModifyOpportunity(this.opportunity);
    }
    return false;
  }
  // #endregion
  // #region Additional Considerations
  get visibleConsiderations() {
    const considerations = [];
    if (this.opportunity?.price != null) {
      this.opportunity.price.customItems.forEach((item) => {
        if (item.customerFacing) {
          considerations.push(item);
        }
      });
    }
    return considerations;
  }
  get hasAdditionalConsiderations() {
    return this.visibleConsiderations.length > 0;
  }
  manageAdditionalConsiderations() {
    this.liveOpportunityService.manageAdditionalConsiderations();
  }
  get property() {
    return this.opportunity?.property;
  }
  get address() {
    return this.property?.address;
  }
  initProperty() {
    if (this.property?.entity != null && this.property?.entity && this.opportunity != null) {
      this.numberOfBathrooms = this.opportunity.getRoomTypeCount("bathroom", this.property.entity.entities);
      this.numberOfLevels = this.opportunity.getLevelCount(this.property.entity.entities);
    }
  }
  initEntities() {
    if (this.property?.entity != null) {
      if (this.property.entity.entities.length == 1) {
        this.primaryEntities = this.property.entity.entities[0].entities;
      } else {
        this.primaryEntities = this.property.entity.entities;
      }
    }
  }
  selectEntity(entity) {
    this.selectedEntity = entity;
  }
  // #endregion
  // #region Navigation
  get routeService() {
    return this.liveOpportunityService.routeService;
  }
  goBack() {
    if (this.opportunity != null) {
      this.routeService.viewRoute(OpportunityRouteType.presentation, RouteLoadDirection.Reverse, true);
    }
  }
  goNext() {
    this.routeService.viewRoute(OpportunityRouteType.pricing, RouteLoadDirection.Forward, true, RouteLoadDirection.Reverse, ["internal"]);
  }
  init() {
    if (this.opportunity != null) {
      this.initProperty();
      this.initEntities();
    }
  }
  // #endregion
  ngAfterViewInit() {
    setTimeout(() => {
      this.init();
      setTimeout(() => {
        if (this.route != null) {
          this.route.initialized.next();
        }
      }, 32);
    }, 16);
  }
  ngOnDestroy() {
  }
};
_JobSummaryLayoutComponent.\u0275fac = function JobSummaryLayoutComponent_Factory(__ngFactoryType__) {
  return new (__ngFactoryType__ || _JobSummaryLayoutComponent)(\u0275\u0275directiveInject(LiveOpportunityService), \u0275\u0275directiveInject(OpportunityService));
};
_JobSummaryLayoutComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _JobSummaryLayoutComponent, selectors: [["ng-component"]], viewQuery: function JobSummaryLayoutComponent_Query(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275viewQuery(_c04, 5);
  }
  if (rf & 2) {
    let _t;
    \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx.componentElm = _t.first);
  }
}, inputs: { opportunity: "opportunity", route: "route" }, standalone: false, decls: 20, vars: 3, consts: [["id", "jobSummaryLayout"], [1, "content"], [3, "opportunity"], [1, "entity"], [1, "considerations"], ["id", "mainNav"], [1, "island"], [1, "controls"], [1, "control", 3, "click"], [1, "fa-solid", "fa-arrow-left-long"], [1, "control", "success", 3, "click"], [1, "fa-solid", "fa-arrow-right-long"], [3, "entity"], [1, "consideration"], [1, "quantity"], [1, "value"], [1, "meta"]], template: function JobSummaryLayoutComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "section", 0)(1, "div", 1)(2, "header")(3, "h1");
    \u0275\u0275text(4, "Job Summary");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(5, "div", 1);
    \u0275\u0275conditionalCreate(6, JobSummaryLayoutComponent_Conditional_6_Template, 1, 1, "all-details", 2);
    \u0275\u0275conditionalCreate(7, JobSummaryLayoutComponent_Conditional_7_Template, 2, 1, "div", 3);
    \u0275\u0275conditionalCreate(8, JobSummaryLayoutComponent_Conditional_8_Template, 7, 0, "div", 4);
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(9, "nav", 5)(10, "div", 6)(11, "div", 7)(12, "button", 8);
    \u0275\u0275listener("click", function JobSummaryLayoutComponent_Template_button_click_12_listener() {
      return ctx.goBack();
    });
    \u0275\u0275element(13, "i", 9);
    \u0275\u0275elementStart(14, "label");
    \u0275\u0275text(15, "Back to Presentation");
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(16, "button", 10);
    \u0275\u0275listener("click", function JobSummaryLayoutComponent_Template_button_click_16_listener() {
      return ctx.goNext();
    });
    \u0275\u0275element(17, "i", 11);
    \u0275\u0275elementStart(18, "label");
    \u0275\u0275text(19, "Continue");
    \u0275\u0275elementEnd()()()()();
  }
  if (rf & 2) {
    \u0275\u0275advance(6);
    \u0275\u0275conditional(ctx.selectedEntity == null ? 6 : -1);
    \u0275\u0275advance();
    \u0275\u0275conditional(ctx.selectedEntity != null ? 7 : -1);
    \u0275\u0275advance();
    \u0275\u0275conditional(ctx.hasAdditionalConsiderations ? 8 : -1);
  }
}, dependencies: [AllDetailsComponent, EntityDetailsComponent], styles: ["\n\n#jobSummaryLayout[_ngcontent-%COMP%] {\n  position: absolute;\n  top: calc(var(--systemOffset-top) + 7vw);\n  left: 2vw;\n  right: 2vw;\n  bottom: 6vw;\n  display: flex;\n  flex-direction: column;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%] {\n  flex: 1;\n  height: 100%;\n  border: 1vw;\n  border: 0.1vw var(--color2Alt2) solid;\n  border-radius: 1vw;\n  background-color: var(--color2);\n  overflow: hidden;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%] {\n  padding: 0.75vw 1vw;\n  background-color: var(--color2Alt3);\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%] {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--stronger);\n  line-height: 1;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: center;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: center;\n  cursor: pointer;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {\n  font-size: 1.2vw;\n  color: var(--color1);\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]   label[_ngcontent-%COMP%] {\n  font-size: 1.2vw;\n  color: var(--color1);\n  margin-left: 0.5vw;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%] {\n  position: sticky;\n  top: 0;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%] {\n  overflow-x: hidden;\n  height: 100%;\n  padding-bottom: 10vw;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .entity[_ngcontent-%COMP%] {\n  padding: 1vw;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%] {\n  margin-top: 1vw;\n  padding-top: 1vw;\n  border-top: 0.2vw var(--color2Alt2) dotted;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%] {\n  padding: 0 1vw;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%] {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%] {\n  margin-top: 0.75vw;\n  padding: 0 1vw;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .consideration[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: flex-start;\n  margin-top: 0.75vw;\n  padding-top: 0.25vw;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .consideration[_ngcontent-%COMP%]    > .quantity[_ngcontent-%COMP%] {\n  height: 5vw;\n  width: 5vw;\n  border-radius: 0.5vw;\n  background-color: rgba(var(--color3-raw), 0.2);\n  position: relative;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .consideration[_ngcontent-%COMP%]    > .quantity[_ngcontent-%COMP%]    > .value[_ngcontent-%COMP%] {\n  display: block;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  -moz-transform: translate(-50%, -50%);\n  -ms-transform: translate(-50%, -50%);\n  -o-transform: translate(-50%, -50%);\n  -webkit-transform: translate(-50%, -50%);\n  transform: translate(-50%, -50%);\n  color: var(--color3);\n  font-weight: var(--strong);\n  font-size: 3.5vw;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .consideration[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%] {\n  margin-left: 1vw;\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .consideration[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]    > label[_ngcontent-%COMP%] {\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .consideration[_ngcontent-%COMP%]    > .meta[_ngcontent-%COMP%]   p[_ngcontent-%COMP%] {\n  font-size: 2vw;\n  color: var(--color1);\n  font-weight: var(--ltweight);\n}\n#jobSummaryLayout[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .considerations[_ngcontent-%COMP%]    > .content[_ngcontent-%COMP%]    > .consideration[_ngcontent-%COMP%]:first-child {\n  margin-top: 0;\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%] {\n  position: absolute;\n  bottom: 1vw;\n  right: 1vw;\n  z-index: calc(var(--navLayer) + 1);\n  background-color: var(--color2);\n  border-radius: 999px;\n  padding: 0.5vw 1vw;\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: center;\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%] {\n  position: relative;\n  margin-left: 1vw;\n  padding: 0.8vw 2vw;\n  border-radius: 999px;\n  cursor: pointer;\n  margin-left: 1vw;\n  display: flex;\n  align-items: center;\n  background-color: var(--color3);\n  border: 0.1vw transparent solid;\n  -moz-transition: background-color 0.1s linear;\n  -o-transition: background-color 0.1s linear;\n  -webkit-transition: background-color 0.1s linear;\n  transition: background-color 0.1s linear;\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]    > i[_ngcontent-%COMP%]:last-child, \n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]    > label[_ngcontent-%COMP%]:last-child {\n  margin-left: 0.5vw;\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]    > i[_ngcontent-%COMP%] {\n  font-size: 1.2vw;\n  color: var(--color2);\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]    > label[_ngcontent-%COMP%] {\n  font-size: 1.2vw;\n  color: var(--color2);\n  font-weight: var(--strong);\n  line-height: 1;\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control.success[_ngcontent-%COMP%] {\n  background-color: var(--success);\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control.alternate[_ngcontent-%COMP%] {\n  background-color: var(--color2);\n  border-color: var(--color1);\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control.alternate[_ngcontent-%COMP%]    > label[_ngcontent-%COMP%] {\n  color: var(--color1);\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[disabled][_ngcontent-%COMP%] {\n  opacity: 0.6;\n  pointer-events: none;\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]:active {\n  background-color: var(--color3Alt4);\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]:active.success {\n  background-color: var(--successAlt4);\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]:active.alternate {\n  background-color: var(--color2Alt2);\n}\n#mainNav[_ngcontent-%COMP%]    > .island[_ngcontent-%COMP%]    > .controls[_ngcontent-%COMP%]    > .control[_ngcontent-%COMP%]:first-child {\n  margin-left: 0;\n}\n/*# sourceMappingURL=layout.component.css.map */"] });
var JobSummaryLayoutComponent = _JobSummaryLayoutComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(JobSummaryLayoutComponent, [{
    type: Component,
    args: [{ standalone: false, template: '<section id="jobSummaryLayout">\n  <div class="content">\n    <header>\n      <h1>Job Summary</h1>\n    </header>\n    <div class="content">\n      @if (selectedEntity == null) {\n        <all-details [opportunity]="opportunity"></all-details>\n      }\n      @if (selectedEntity != null) {\n        <div class="entity"\n          >\n          <entity-details\n          [entity]="selectedEntity"></entity-details>\n        </div>\n      }\n      @if (hasAdditionalConsiderations) {\n        <div class="considerations">\n          <header>\n            <h1>Additional Considerations</h1>\n          </header>\n          <div class="content">\n            @for (item of visibleConsiderations; track item) {\n              <div class="consideration">\n                <div class="quantity">\n                  <span class="value">\n                    {{item.quantity}}\n                  </span>\n                </div>\n                <div class="meta">\n                  <label>\n                    {{item.name}}\n                  </label>\n                  <p>\n                    {{item.description}}\n                  </p>\n                </div>\n              </div>\n            }\n          </div>\n        </div>\n      }\n    </div>\n  </div>\n</section>\n\n<nav id="mainNav">\n  <div class="island">\n    <div class="controls">\n      <button class="control" (click)="goBack()">\n        <i class="fa-solid fa-arrow-left-long"></i>\n        <label>Back to Presentation</label>\n      </button>\n      <button class="control success" (click)="goNext()">\n        <i class="fa-solid fa-arrow-right-long"></i>\n        <label>Continue</label>\n      </button>\n    </div>\n  </div>\n</nav>', styles: ["/* src/app/opportunity/job-summary/components/layout/layout.component.scss */\n#jobSummaryLayout {\n  position: absolute;\n  top: calc(var(--systemOffset-top) + 7vw);\n  left: 2vw;\n  right: 2vw;\n  bottom: 6vw;\n  display: flex;\n  flex-direction: column;\n}\n#jobSummaryLayout > .content {\n  flex: 1;\n  height: 100%;\n  border: 1vw;\n  border: 0.1vw var(--color2Alt2) solid;\n  border-radius: 1vw;\n  background-color: var(--color2);\n  overflow: hidden;\n}\n#jobSummaryLayout > .content > header {\n  padding: 0.75vw 1vw;\n  background-color: var(--color2Alt3);\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n#jobSummaryLayout > .content > header h1 {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--stronger);\n  line-height: 1;\n}\n#jobSummaryLayout > .content > header > .controls {\n  display: flex;\n  align-items: center;\n}\n#jobSummaryLayout > .content > header > .controls > .control {\n  display: flex;\n  align-items: center;\n  cursor: pointer;\n}\n#jobSummaryLayout > .content > header > .controls > .control i {\n  font-size: 1.2vw;\n  color: var(--color1);\n}\n#jobSummaryLayout > .content > header > .controls > .control label {\n  font-size: 1.2vw;\n  color: var(--color1);\n  margin-left: 0.5vw;\n}\n#jobSummaryLayout > .content > header {\n  position: sticky;\n  top: 0;\n}\n#jobSummaryLayout > .content > .content {\n  overflow-x: hidden;\n  height: 100%;\n  padding-bottom: 10vw;\n}\n#jobSummaryLayout > .content > .content > .entity {\n  padding: 1vw;\n}\n#jobSummaryLayout > .content > .content > .considerations {\n  margin-top: 1vw;\n  padding-top: 1vw;\n  border-top: 0.2vw var(--color2Alt2) dotted;\n}\n#jobSummaryLayout > .content > .content > .considerations > header {\n  padding: 0 1vw;\n}\n#jobSummaryLayout > .content > .content > .considerations > header h1 {\n  font-size: 1.6vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#jobSummaryLayout > .content > .content > .considerations > .content {\n  margin-top: 0.75vw;\n  padding: 0 1vw;\n}\n#jobSummaryLayout > .content > .content > .considerations > .content > .consideration {\n  display: flex;\n  align-items: flex-start;\n  margin-top: 0.75vw;\n  padding-top: 0.25vw;\n}\n#jobSummaryLayout > .content > .content > .considerations > .content > .consideration > .quantity {\n  height: 5vw;\n  width: 5vw;\n  border-radius: 0.5vw;\n  background-color: rgba(var(--color3-raw), 0.2);\n  position: relative;\n}\n#jobSummaryLayout > .content > .content > .considerations > .content > .consideration > .quantity > .value {\n  display: block;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  -moz-transform: translate(-50%, -50%);\n  -ms-transform: translate(-50%, -50%);\n  -o-transform: translate(-50%, -50%);\n  -webkit-transform: translate(-50%, -50%);\n  transform: translate(-50%, -50%);\n  color: var(--color3);\n  font-weight: var(--strong);\n  font-size: 3.5vw;\n}\n#jobSummaryLayout > .content > .content > .considerations > .content > .consideration > .meta {\n  margin-left: 1vw;\n}\n#jobSummaryLayout > .content > .content > .considerations > .content > .consideration > .meta > label {\n  font-size: 1.4vw;\n  color: var(--color1);\n  font-weight: var(--strong);\n}\n#jobSummaryLayout > .content > .content > .considerations > .content > .consideration > .meta p {\n  font-size: 2vw;\n  color: var(--color1);\n  font-weight: var(--ltweight);\n}\n#jobSummaryLayout > .content > .content > .considerations > .content > .consideration:first-child {\n  margin-top: 0;\n}\n#mainNav > .island {\n  position: absolute;\n  bottom: 1vw;\n  right: 1vw;\n  z-index: calc(var(--navLayer) + 1);\n  background-color: var(--color2);\n  border-radius: 999px;\n  padding: 0.5vw 1vw;\n}\n#mainNav > .island > .controls {\n  display: flex;\n  align-items: center;\n}\n#mainNav > .island > .controls > .control {\n  position: relative;\n  margin-left: 1vw;\n  padding: 0.8vw 2vw;\n  border-radius: 999px;\n  cursor: pointer;\n  margin-left: 1vw;\n  display: flex;\n  align-items: center;\n  background-color: var(--color3);\n  border: 0.1vw transparent solid;\n  -moz-transition: background-color 0.1s linear;\n  -o-transition: background-color 0.1s linear;\n  -webkit-transition: background-color 0.1s linear;\n  transition: background-color 0.1s linear;\n}\n#mainNav > .island > .controls > .control > i:last-child,\n#mainNav > .island > .controls > .control > label:last-child {\n  margin-left: 0.5vw;\n}\n#mainNav > .island > .controls > .control > i {\n  font-size: 1.2vw;\n  color: var(--color2);\n}\n#mainNav > .island > .controls > .control > label {\n  font-size: 1.2vw;\n  color: var(--color2);\n  font-weight: var(--strong);\n  line-height: 1;\n}\n#mainNav > .island > .controls > .control.success {\n  background-color: var(--success);\n}\n#mainNav > .island > .controls > .control.alternate {\n  background-color: var(--color2);\n  border-color: var(--color1);\n}\n#mainNav > .island > .controls > .control.alternate > label {\n  color: var(--color1);\n}\n#mainNav > .island > .controls > .control[disabled] {\n  opacity: 0.6;\n  pointer-events: none;\n}\n#mainNav > .island > .controls > .control:active {\n  background-color: var(--color3Alt4);\n}\n#mainNav > .island > .controls > .control:active.success {\n  background-color: var(--successAlt4);\n}\n#mainNav > .island > .controls > .control:active.alternate {\n  background-color: var(--color2Alt2);\n}\n#mainNav > .island > .controls > .control:first-child {\n  margin-left: 0;\n}\n/*# sourceMappingURL=layout.component.css.map */\n"] }]
  }], () => [{ type: LiveOpportunityService }, { type: OpportunityService }], { opportunity: [{
    type: Input,
    args: ["opportunity"]
  }], route: [{
    type: Input,
    args: ["route"]
  }], componentElm: [{
    type: ViewChild,
    args: ["componentElm"]
  }] });
})();
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(JobSummaryLayoutComponent, { className: "JobSummaryLayoutComponent" });
})();

// src/app/opportunity/job-summary/job-summary.module.ts
var _JobSummaryModule = class _JobSummaryModule {
  constructor(injector) {
    this.injector = injector;
    this.ngDoBootstrap();
  }
  ngDoBootstrap() {
    if (!customElements.get("job-summary")) {
      const el = createCustomElement(JobSummaryLayoutComponent, { injector: this.injector });
      customElements.define("job-summary", el);
    }
  }
};
_JobSummaryModule.\u0275fac = function JobSummaryModule_Factory(__ngFactoryType__) {
  return new (__ngFactoryType__ || _JobSummaryModule)(\u0275\u0275inject(Injector));
};
_JobSummaryModule.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({ type: _JobSummaryModule });
_JobSummaryModule.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({ providers: [
  InternalRouteService,
  provideHttpClient(withInterceptorsFromDi())
], imports: [
  UiModule,
  CommonModule,
  FormsModule,
  ReactiveFormsModule
] });
var JobSummaryModule = _JobSummaryModule;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(JobSummaryModule, [{
    type: NgModule,
    args: [{
      declarations: [
        JobSummaryLayoutComponent,
        AllDetailsComponent,
        EntityDetailsComponent,
        AttributeComponent
      ],
      imports: [
        UiModule,
        CommonModule,
        FormsModule,
        ReactiveFormsModule
      ],
      providers: [
        InternalRouteService,
        provideHttpClient(withInterceptorsFromDi())
      ]
    }]
  }], () => [{ type: Injector }], null);
})();
export {
  JobSummaryModule
};
//# sourceMappingURL=chunk-K6EM2TAL.js.map
