/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
import { c as a } from "../../chunks/runtime.js";
import { usePropertyChange as s } from "@arcgis/lumina/controllers";
import { watch as n } from "@arcgis/core/core/reactiveUtils.js";
import o from "@arcgis/core/layers/RouteLayer.js";
import c from "@arcgis/core/widgets/Directions.js";
import { LitElement as l, createEvent as d } from "@arcgis/lumina";
import { log as g } from "@arcgis/toolkit/log";
import { m as p } from "../../chunks/useWidget.js";
import { d as h } from "../../chunks/component-utils.js";
import { css as m } from "lit";
import { u as f } from "../../chunks/useLayerById.js";
const u = m`.esri-widget__heading{color:var(--calcite-color-text-2);margin:0 0 .5rem;font-weight:var(--calcite-font-weight-semibold)}h1.esri-widget__heading{font-size:var(--calcite-font-size-xl)}h2.esri-widget__heading{font-size:var(--calcite-font-size-md)}h3.esri-widget__heading,h4.esri-widget__heading,h5.esri-widget__heading,h6.esri-widget__heading{font-size:var(--calcite-font-size)}.esri-widget{box-sizing:border-box;color:var(--calcite-color-text-2);background-color:var(--calcite-color-foreground-1);font-size:var(--calcite-font-size);line-height:var(--calcite-font-line-height-relative-tight)}.esri-widget *,.esri-widget :before,.esri-widget :after{box-sizing:inherit}.esri-widget.esri-widget--disabled>*{opacity:.4;pointer-events:none}.esri-widget.esri-widget--compact{--esri-widget-padding-y: 0;--esri-widget-padding-x: 0}.esri-widget__anchor{color:var(--calcite-color-text-2)}.esri-widget__anchor:hover{color:var(--calcite-color-text-3)}.esri-widget__anchor:hover,.esri-widget__anchor:focus{text-decoration:underline}.esri-widget__anchor--disabled{opacity:.4;pointer-events:none}.esri-widget__header{background-color:var(--calcite-color-foreground-1);flex:1 0 100%;justify-content:space-between;align-items:center;width:100%;min-height:48px;padding:12px 0 12px 15px;display:flex}.esri-widget__heading{word-break:break-word}.esri-widget__header .esri-widget__heading{width:calc(100% - 48px);text-align:initial;color:var(--calcite-color-text-1);align-items:center;margin:0;padding:0;display:flex}.esri-widget__header-button{appearance:none;cursor:pointer;color:var(--calcite-color-text-2);background-color:var(--calcite-color-foreground-1);border:none;flex:0 0 48px;justify-content:center;align-self:stretch;align-items:center;width:48px;padding:0;display:flex}.esri-widget__footer{background-color:var(--calcite-color-foreground-1);justify-content:center;align-items:center;width:100%;min-height:48px;display:flex}.esri-widget__footer-pagination{color:var(--calcite-color-text-2);justify-content:space-between;align-items:center;display:flex}.esri-widget__footer-pagination-previous-button,.esri-widget__footer-pagination-next-button{cursor:pointer;background-color:var(--calcite-color-foreground-1);border:0;margin:0 7px;padding:12px 15px;transition:background-color .125s ease-in-out}.esri-widget__footer-pagination-previous-button:hover,.esri-widget__footer-pagination-previous-button:focus,.esri-widget__footer-pagination-next-button:hover,.esri-widget__footer-pagination-next-button:focus{color:var(--calcite-color-text-1);background-color:var(--calcite-color-foreground-1)}.esri-menu{visibility:hidden;z-index:1;background-clip:padding;background-color:var(--calcite-color-foreground-1);background-clip:padding-box;width:100%;max-height:0;margin:2px 0 0;padding:0;font-size:var(--calcite-font-size);line-height:var(--calcite-spacing-xl);position:absolute;top:100%;left:0;overflow:hidden;box-shadow:0 1px 2px #0000004d}.esri-menu .esri-menu__header{color:var(--calcite-color-text-inverse);background-color:var(--calcite-color-inverse);padding:6px 12px}.esri-menu__list{margin:0;padding:0;list-style:none}.esri-menu__list-item{cursor:pointer;border-top:1px solid #adadad4d;border-left:3px solid #0000;padding:.8em 1em}.esri-menu__list-item [class^=esri-icon-],.esri-menu__list-item [class*=" esri-icon-"]{padding-right:2.8px}.esri-menu__list-item:first-child{border-top:none}.esri-menu__list-item--focus,.esri-menu__list-item:hover,.esri-menu__list-item:focus{background-color:var(--calcite-color-foreground-1)}.esri-menu__list-item:active{background-color:var(--calcite-color-foreground-current)}.esri-menu__list-item--active,.esri-menu__list-item--active:hover,.esri-menu__list-item--active:focus{background-color:var(--calcite-color-foreground-1);border-left-color:var(--calcite-color-brand)}.esri-widget__table{border-collapse:collapse;color:var(--calcite-color-text-1);border:none;width:100%;line-height:var(--calcite-font-line-height-relative-tight)}.esri-widget__table tr:nth-child(odd){background-color:var(--calcite-color-transparent)}.esri-widget__table tr:nth-child(2n){background-color:var(--calcite-color-transparent-press)}.esri-widget__table tr a{color:var(--calcite-color-text-2)}.esri-widget__table tr a:hover,.esri-widget__table tr a:focus{color:var(--calcite-color-text-1)}.esri-widget__table tr td,.esri-widget__table tr th{vertical-align:top;word-break:break-word;padding:.5em .7em;font-size:var(--calcite-font-size-sm);font-weight:var(--calcite-font-weight-regular)}.esri-widget__table tr th{text-align:left;border-right:3px solid #0000000d;width:50%}.esri-widget__table tr td{width:50%}.esri-input{color:var(--calcite-color-text-1);background-color:var(--calcite-color-foreground-1);border:1px solid #959595;font-size:var(--calcite-font-size)}.esri-input::-ms-clear{display:none}.esri-input::placeholder{opacity:1;color:var(--calcite-color-text-2)}.esri-input:placeholder-shown{text-overflow:ellipsis}.esri-input[type=text],.esri-input[type=password],.esri-input[type=number]{height:32px;padding:0 .5em}calcite-combobox.esri-input{border:none}.esri-widget__content--empty{text-align:center;color:var(--calcite-color-border-input);flex-flow:column wrap;align-items:center;padding:18px 22px;display:flex}.esri-widget__content--empty h1.esri-widget__heading,.esri-widget__content--empty h2.esri-widget__heading,.esri-widget__content--empty h3.esri-widget__heading,.esri-widget__content--empty h4.esri-widget__heading,.esri-widget__content--empty h5.esri-widget__heading{font-weight:var(--calcite-font-weight-regular)}.esri-widget__content-illustration--empty{width:128px;padding:1rem 0}.esri-widget__content-icon--empty{width:32px;padding:.5rem 0}.esri-select{appearance:none;cursor:pointer;color:var(--calcite-color-text-2);background:var(--calcite-color-foreground-1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 32 32' width='32' height='32'%3E%3Cpath d='M8 11.207l-4-4V5.793l4 4 4-4v1.414z' fill='%23adadad' fillrule='nonzero'/%3E%3C/svg%3E") 100% no-repeat;border:1px solid #959595;border-radius:0;width:100%;height:32px;margin:0;padding:0 .5em;font-family:inherit;font-size:.85em;display:block}.esri-select[disabled]{cursor:auto}.esri-select::-ms-expand{display:none}.esri-disabled a,.esri-disabled [role=menu],.esri-disabled [role=checkbox],.esri-disabled [class^=esri-icon-],.esri-disabled [class*=" esri-icon-"]{color:var(--calcite-color-text-3)}.keynav-mode .esri-widget:focus,.keynav-mode .esri-widget :focus{z-index:1;outline-offset:2px;outline:2px solid #adadad}.esri-widget__loader-animation{border:.15em solid #adadad4d;border-top-color:var(--calcite-color-border-input);border-radius:100%;width:1em;height:1em;font-size:var(--calcite-font-size-md);animation:1.25s linear infinite esri-rotate;display:block;transform:translateZ(0)}:dir(rtl) .esri-widget__table th{text-align:right;border-left:3px solid #0000000d;border-right:none}:dir(rtl) .esri-select{background-position:0}:dir(rtl) .esri-menu__list-item{border-left:none;border-right:3px solid #0000}:dir(rtl) .esri-menu__list-item [class^=esri-icon-],:dir(rtl) .esri-menu__list-item [class*=" esri-icon-"]{padding-left:2px;padding-right:0}:dir(rtl) .esri-menu__list-item--active{border-right-color:var(--calcite-color-brand)}.esri-icon-font-fallback-text{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.esri-rotating{animation:1.25s linear infinite esri-rotate;transform:translateZ(0)}.esri-clearfix:before,.esri-clearfix:after{content:" ";display:table}.esri-clearfix:after{clear:both}.esri-interactive{cursor:pointer}.esri-hidden{display:none!important}.esri-invisible{visibility:hidden!important}.esri-offscreen{position:absolute;top:-999em;left:-999em}.esri-match-height{flex-direction:column;flex:auto;display:flex;overflow:hidden}.esri-search{flex-flow:row;justify-content:center;align-items:center;width:240px;display:flex}.esri-search__dropdown{--calcite-color-border-1: var(--calcite-color-border-input);--calcite-dropdown-width: 240px;width:31px}.esri-search__autocomplete{flex:1}.esri-search__container{flex-flow:row;flex:1 0 100%;align-items:stretch;display:flex;position:relative}.esri-search__form{flex-flow:row;flex:1 0;align-items:stretch;margin:0;padding:0;display:flex}.esri-search-result-renderer calcite-block,.esri-search-result-renderer calcite-block[expanded]{margin-block:0;border:0;margin-block-start:var(--calcite-spacing-md)}.esri-search__submit-button{position:absolute;margin:-1px;border-width:0;padding:0;width:1px;height:1px;overflow:hidden;white-space:nowrap;clip:rect(0,0,0,0)}:host{display:flex}.esri-directions{display:flex;flex:1 1 auto;overflow:hidden}.esri-directions calcite-flow-item{--calcite-color-background: var(--calcite-color-foreground-1)}.esri-directions calcite-flow{z-index:1;position:relative}.esri-directions__accordion{--calcite-accordion-border-color: transparent}.esri-directions__stop-container{--calcite-list-border-color: transparent;--calcite-list-background-color-hover: var(--calcite-color-foreground-1);margin-block-start:var(--calcite-spacing-sm);display:flex}.esri-directions__stop-list{flex:auto}.esri-directions__action-container{margin-top:var(--calcite-spacing-sm);margin-inline:var(--calcite-spacing-sm);display:flex}.esri-directions__add-stop-button{margin-inline-end:var(--calcite-spacing-xs)}.esri-directions__departure-time{--calcite-label-margin-bottom: 0}.esri-directions__departure-time-options{margin-bottom:var(--calcite-spacing-sm);display:flex}.esri-directions__departure-time-options calcite-input-date-picker,.esri-directions__departure-time-options calcite-input-time-picker{flex:1}.esri-directions__directions-header{line-height:var(--calcite-font-line-height-relative-snug);color:var(--calcite-color-text-3);font-size:var(--calcite-font-size--2);flex-direction:column;display:flex}.esri-directions__header-stops{gap:var(--calcite-spacing-base) var(--calcite-spacing-xxs);font-size:var(--calcite-font-size--1);grid-template-columns:auto 1fr;margin-block-end:var(--calcite-spacing-base);display:grid}.esri-directions__directions-header-stop-name{text-overflow:ellipsis;color:var(--calcite-color-text-1);font-weight:var(--calcite-font-weight-medium);overflow:hidden}.esri-directions__edit-footer{border-top:var(--calcite-border-width-sm) solid var(--calcite-color-border-3);padding:var(--calcite-spacing-md)}.esri-directions__edit-information-container{border-bottom:var(--calcite-border-width-sm) solid var(--calcite-color-border-3);background-color:var(--calcite-color-surface-1);padding:var(--calcite-spacing-md)}.esri-directions__edit-toolbar-container{margin:var(--calcite-spacing-md);flex-flow:column;align-items:flex-start;display:flex}.esri-directions__edit-toolbar{border-width:var(--calcite-border-width-sm);border-radius:var(--calcite-corner-radius-round);border-style:solid;border-color:var(--calcite-color-foreground-3);flex-flow:row;display:flex;overflow:hidden}.esri-directions__solve-route{border-inline-start:solid var(--calcite-border-width-sm) var(--calcite-color-border-3)}.esri-directions__flex-column{flex-direction:column;display:flex}.esri-directions__flex-row{flex-direction:row;display:flex}.esri-directions__label-emphasize{font-weight:var(--calcite-font-weight-medium)}.esri-directions__label-no-bottom-margin{--calcite-label-margin-bottom: 0}.esri-directions__margin-inline-medium{margin-inline:var(--calcite-spacing-md)}.esri-directions__padding-medium{padding:var(--calcite-spacing-md)}.esri-directions__route-item{margin:var(--calcite-spacing-md);border:var(--calcite-border-width-sm) solid var(--calcite-color-border-3);border-radius:var(--calcite-corner-radius-round);flex:1 0 auto;width:auto;margin-block-start:var(--calcite-spacing-sm);display:flex;overflow:hidden}.esri-directions__route-item-button{background-color:transparent;padding:var(--calcite-spacing-sm) var(--calcite-spacing-md);text-align:unset;font-family:var(--calcite-font-family);border:none;flex:1 0 auto;align-items:center;margin:0;padding-inline-end:var(--calcite-spacing-xs);display:flex;calcite-icon{color:var(--calcite-action-text-color)}}.esri-directions__route-item-button:hover{background-color:var(--calcite-color-foreground-2);cursor:pointer}.esri-directions__route-item-button-content{flex-direction:column;flex:1 0 auto;display:flex}.esri-directions__route-item-label{line-height:var(--calcite-font-line-height-relative-snug);color:var(--calcite-color-text-1);font-size:var(--calcite-font-size-md);font-weight:var(--calcite-font-weight-medium)}.esri-directions__route-item-description{line-height:var(--calcite-font-line-height-relative-snug);color:var(--calcite-color-text-3);font-size:var(--calcite-font-size--2);font-weight:var(--calcite-font-weight-regular)}.esri-directions__optimize-section{--calcite-block-section-header-text-color: var(--calcite-color-text-1)}.esri-directions__optimize-switches{cursor:pointer;margin-inline-start:var(--calcite-spacing-md)}.esri-directions__panel-header-action{align-items:center;display:flex}.esri-directions__primary-flow-item{flex-flow:column;flex:auto;justify-content:flex-start;align-items:stretch;display:flex;overflow:visible}.esri-directions__primary-footer{border-top:var(--calcite-border-width-sm) solid var(--calcite-color-border-3);padding:var(--calcite-spacing-md)}.esri-directions__primary-footer-centered{border-top:var(--calcite-border-width-sm) solid var(--calcite-color-border-3);padding:var(--calcite-spacing-md);flex-flow:column wrap;align-items:center;display:flex}.esri-directions__primary-footer-loader{--calcite-loader-spacing: 0;margin-top:var(--calcite-spacing-md);margin-bottom:var(--calcite-spacing-md)}.esri-directions__save-error{flex-direction:column;align-items:center;display:flex}.esri-directions__save-error-icon{margin-top:calc(var(--calcite-spacing-lg) * 3);margin-bottom:var(--calcite-spacing-xxs);color:var(--calcite-color-status-danger)}.esri-directions__save-error-label{margin-inline:var(--calcite-spacing-sm)}.esri-directions__save-process-loader{padding-top:calc(var(--calcite-spacing-lg) * 3);padding-bottom:calc(var(--calcite-spacing-lg) * 2)}.esri-directions__selected-feature-container{margin-inline:var(--calcite-spacing-md);height:100px;overflow-y:auto}.esri-directions__separator{margin:var(--calcite-spacing-md) 0;background-color:var(--calcite-color-border-3);height:var(--calcite-border-width-sm)}.esri-directions__stop-item .esri-search{width:auto}.esri-directions__print-document{box-sizing:border-box;z-index:var(--calcite-z-index-overlay);background-color:var(--calcite-color-foreground-1);width:100%;height:100%;position:fixed;top:0;left:0;overflow-y:scroll}.esri-directions__print-body{padding-inline:var(--calcite-spacing-md);flex-direction:column;display:flex}.esri-directions__print-header{margin-bottom:var(--calcite-spacing-lg);border-block-end:var(--calcite-border-width-sm) solid var(--calcite-color-border-3);align-items:center;display:flex}.esri-directions__print-header-label{padding-block:var(--calcite-spacing-sm);line-height:var(--calcite-font-line-height-relative-snug);color:var(--calcite-color-text-3);font-size:var(--calcite-font-size--2);font-weight:var(--calcite-font-weight-bold);flex-direction:column;flex-grow:1;display:flex}.esri-directions__print-section{margin-top:var(--calcite-spacing-md);flex-direction:column;display:flex}.esri-directions__print-header-buttons{padding-inline-end:var(--calcite-spacing-md);display:flex}.esri-directions__print--avoid-page-break{break-inside:avoid}@media print{body.esri-directions__print-media{margin:0;padding:0}body.esri-directions__print-media>:not(div.esri-directions__print-document){display:none}}@media print{.esri-directions__print-document{height:auto;position:static;overflow:visible}.esri-directions__print--hide-on-print{display:none}}`, v = p(c), t = "map-components:arcgis-directions";
class _ extends l {
  constructor() {
    super(...arguments), this.widget = v(this), this.viewModel = this.widget.viewModel, this.view = this.widget.view, this.apiKey = this.widget.apiKey, this.autoDestroyDisabled = !1, this.goToOverride = this.widget.goToOverride, this.headingLevel = this.widget.headingLevel, this.hideLayerDetails = this.widget.visibleElements.layerDetails, this.hidePrintButton = this.widget.visibleElements.printButton, this.hideSaveAsButton = this.widget.visibleElements.saveAsButton, this.hideSaveButton = this.widget.visibleElements.saveButton, this.icon = this.widget.icon, this.label = this.widget.label, this.lastRoute = this.widget.lastRoute, this.layer = this.widget.layer, this.mapLayerId = f(this, (e) => {
      e && (e.type === "route" ? this.layer = e : g("warn", this, `${t} - layer with id ${this.mapLayerId} is not a valid RouteLayer`));
    }), this.maxStops = this.widget.maxStops, this.searchProperties = this.widget.searchProperties, this.state = this.viewModel.state, this.unit = this.widget.unit, this.useDefaultRouteLayer = !1, this.arcgisPropertyChange = s()("lastRoute", "state"), this.arcgisReady = d();
  }
  static {
    this.properties = { view: 0, apiKey: 1, autoDestroyDisabled: 5, autoSolveOnEditActive: 5, goToOverride: 0, headingLevel: 9, hideLayerDetails: 5, hidePrintButton: 5, hideSaveAsButton: 5, hideSaveButton: 5, icon: 1, label: 1, lastRoute: 32, layer: 0, mapLayerId: 1, maxStops: 9, referenceElement: 1, routeLayerItemId: 1, searchProperties: 0, state: 32, unit: 1, useDefaultRouteLayer: 5 };
  }
  static {
    this.styles = u;
  }
  get autoSolveOnEditActive() {
    return this.viewModel.autoSolveOn.includes("active");
  }
  set autoSolveOnEditActive(e) {
    const { autoSolveOn: i } = this.viewModel;
    if (e)
      i.includes("active") || i.push("active");
    else {
      const r = i.indexOf("active");
      r !== -1 && i.splice(r, 1);
    }
  }
  async destroy() {
    await this.manager.destroy();
  }
  async getDirections() {
    if (this.widget?.viewModel?.state !== "ready")
      throw new Error(`${t} - component not ready to get directions`);
    return await this.widget?.getDirections();
  }
  async save() {
    if (this.widget?.viewModel?.state !== "ready")
      throw new Error(`${t} - component not ready to save directions`);
    return await this.widget?.save();
  }
  async saveAs(e, i) {
    if (this.widget?.viewModel?.state !== "ready")
      throw new Error(`${t} - component not ready to save directions as a Portal Item`);
    return await this.widget?.saveAs(e, i);
  }
  async zoomToRoute() {
    if (this.widget?.viewModel?.state !== "ready")
      throw new Error(`${t} - component not ready to zoom to route`);
    this.widget?.zoomToRoute();
  }
  willUpdate(e) {
    if (e.has("routeLayerItemId")) {
      const i = this.routeLayerItemId;
      if (h(i) && !this.useDefaultRouteLayer) {
        const { layer: r } = this;
        r && this.widget.view?.map?.remove(r), this._setDefaultLayer();
      } else i && this.widget && (this.layer = new o({
        portalItem: {
          id: i
        }
      }), this.widget.view?.map?.add(this.layer));
    }
    e.has("useDefaultRouteLayer") && this._setDefaultLayer();
  }
  async startEditing() {
    if (this.widget?.viewModel?.state !== "ready")
      throw new Error(`${t} - component not ready to start editing`);
    this.widget.viewModel.startEditing();
  }
  async stopEditing() {
    if (this.widget?.viewModel?.state !== "ready")
      throw new Error(`${t} - component not ready to stop editing`);
    this.widget.viewModel.stopEditing();
  }
  _setDefaultLayer() {
    this.useDefaultRouteLayer && !this.routeLayerItemId && (this.layer = new o(), n(() => this.widget.view, () => this.widget.view?.map?.add(this.layer), { once: !0 }));
  }
}
a("arcgis-directions", _);
export {
  _ as ArcgisDirections
};
