UNPKG

@arcgis/map-components

Version:
362 lines (361 loc) 47.6 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */ import { c as y } from "../../chunks/runtime.js"; import { keyed as k } from "lit/directives/keyed.js"; import { repeat as C } from "lit/directives/repeat.js"; import { css as P, nothing as c, html as n } from "lit"; import { createRef as b, ref as p } from "lit/directives/ref.js"; import { LitElement as S, createEvent as m, safeClassMap as z } from "@arcgis/lumina"; import { usePropertyChange as M } from "@arcgis/lumina/controllers"; import { rethrowError as w } from "@arcgis/toolkit/log"; import { m as L } from "../../chunks/useViewModel.js"; import { u as T } from "../../chunks/useT9n.js"; import { convertUnit as E } from "@arcgis/core/applications/Components/unitUtils.js"; import { getDefaultUnitForView as F } from "@arcgis/core/applications/Components/getDefaultUnits.js"; import { hasDisplayProperties as g } from "@arcgis/core/applications/Components/formatUtils.js"; import D from "@arcgis/core/geometry/Point.js"; import I from "@arcgis/core/widgets/CoordinateConversion/CoordinateConversionViewModel.js"; import u from "@arcgis/core/widgets/CoordinateConversion/support/Conversion.js"; import { l as U } from "../../chunks/measurementUtils.js"; import A from "@arcgis/core/applications/Components/QuantityFormatter.js"; const O = P`[class^=esri-icon-],[class*=" esri-icon-"]{speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:var(--calcite-font-weight-normal);line-height:1;font-family:CalciteWebCoreIcons!important}.esri-icon-close:before{content:"";color:inherit}.esri-icon-drag-horizontal:before{content:"";color:inherit}.esri-icon-drag-vertical:before{content:"";color:inherit}.esri-icon-handle-horizontal:before{content:"";color:inherit}.esri-icon-handle-vertical:before{content:"";color:inherit}.esri-icon-check-mark:before{content:"";color:inherit}.esri-icon-left-triangle-arrow:before{content:"";color:inherit}.esri-icon-right-triangle-arrow:before{content:"";color:inherit}.esri-icon-down-arrow:before{content:"";color:inherit}.esri-icon-up-arrow:before{content:"";color:inherit}.esri-icon-overview-arrow-bottom-left:before{content:"";color:inherit}.esri-icon-overview-arrow-bottom-right:before{content:"";color:inherit}.esri-icon-overview-arrow-top-left:before{content:"";color:inherit}.esri-icon-overview-arrow-top-right:before{content:"";color:inherit}.esri-icon-maximize:before{content:"";color:inherit}.esri-icon-minimize:before{content:"";color:inherit}.esri-icon-checkbox-unchecked:before{content:"";color:inherit}.esri-icon-checkbox-checked:before{content:"";color:inherit}.esri-icon-radio-unchecked:before{content:"";color:inherit}.esri-icon-radio-checked:before{content:"";color:inherit}.esri-icon-up-arrow-circled:before{content:"";color:inherit}.esri-icon-down-arrow-circled:before{content:"";color:inherit}.esri-icon-left-arrow-circled:before{content:"";color:inherit}.esri-icon-right-arrow-circled:before{content:"";color:inherit}.esri-icon-zoom-out-fixed:before{content:"";color:inherit}.esri-icon-zoom-in-fixed:before{content:"";color:inherit}.esri-icon-refresh:before{content:"";color:inherit}.esri-icon-edit:before{content:"";color:inherit}.esri-icon-authorize:before{content:"";color:inherit}.esri-icon-map-pin:before{content:"";color:inherit}.esri-icon-blank-map-pin:before{content:"";color:inherit}.esri-icon-table:before{content:"";color:inherit}.esri-icon-plus:before{content:"";color:inherit}.esri-icon-minus:before{content:"";color:inherit}.esri-icon-beginning:before{content:"";color:inherit}.esri-icon-reverse:before{content:"";color:inherit}.esri-icon-pause:before{content:"";color:inherit}.esri-icon-play:before{content:"";color:inherit}.esri-icon-forward:before{content:"";color:inherit}.esri-icon-end:before{content:"";color:inherit}.esri-icon-erase:before{content:"";color:inherit}.esri-icon-up-down-arrows:before{content:"";color:inherit}.esri-icon-left:before{content:"";color:inherit}.esri-icon-right:before{content:"";color:inherit}.esri-icon-announcement:before{content:"";color:inherit}.esri-icon-notice-round:before{content:"";color:inherit}.esri-icon-notice-triangle:before{content:"";color:inherit}.esri-icon-home:before{content:"";color:inherit}.esri-icon-locate:before{content:"";color:inherit}.esri-icon-expand:before{content:"";color:inherit}.esri-icon-collapse:before{content:"";color:inherit}.esri-icon-layer-list:before{content:"";color:inherit}.esri-icon-basemap:before{content:"";color:inherit}.esri-icon-globe:before{content:"";color:inherit}.esri-icon-applications:before{content:"";color:inherit}.esri-icon-arrow-up-circled:before{content:"";color:inherit}.esri-icon-arrow-down-circled:before{content:"";color:inherit}.esri-icon-arrow-left-circled:before{content:"";color:inherit}.esri-icon-arrow-right-circled:before{content:"";color:inherit}.esri-icon-minus-circled:before{content:"";color:inherit}.esri-icon-plus-circled:before{content:"";color:inherit}.esri-icon-add-attachment:before{content:"";color:inherit}.esri-icon-attachment:before{content:"";color:inherit}.esri-icon-calendar:before{content:"";color:inherit}.esri-icon-close-circled:before{content:"";color:inherit}.esri-icon-browser:before{content:"";color:inherit}.esri-icon-collection:before{content:"";color:inherit}.esri-icon-comment:before{content:"";color:inherit}.esri-icon-configure-popup:before{content:"";color:inherit}.esri-icon-contact:before{content:"";color:inherit}.esri-icon-dashboard:before{content:"";color:inherit}.esri-icon-deny:before{content:"";color:inherit}.esri-icon-description:before{content:"";color:inherit}.esri-icon-directions:before{content:"";color:inherit}.esri-icon-directions2:before{content:"";color:inherit}.esri-icon-documentation:before{content:"";color:inherit}.esri-icon-duplicate:before{content:"";color:inherit}.esri-icon-review:before{content:"";color:inherit}.esri-icon-environment-settings:before{content:"";color:inherit}.esri-icon-error:before{content:"";color:inherit}.esri-icon-error2:before{content:"";color:inherit}.esri-icon-experimental:before{content:"";color:inherit}.esri-icon-feature-layer:before{content:"";color:inherit}.esri-icon-filter:before{content:"";color:inherit}.esri-icon-grant:before{content:"";color:inherit}.esri-icon-group:before{content:"";color:inherit}.esri-icon-key:before{content:"";color:inherit}.esri-icon-labels:before{content:"";color:inherit}.esri-icon-tag:before{content:"";color:inherit}.esri-icon-layers:before{content:"";color:inherit}.esri-icon-left-arrow:before{content:"";color:inherit}.esri-icon-right-arrow:before{content:"";color:inherit}.esri-icon-link-external:before{content:"";color:inherit}.esri-icon-link:before{content:"";color:inherit}.esri-icon-loading-indicator:before{content:"";color:inherit}.esri-icon-maps:before{content:"";color:inherit}.esri-icon-marketplace:before{content:"";color:inherit}.esri-icon-media:before{content:"";color:inherit}.esri-icon-media2:before{content:"";color:inherit}.esri-icon-menu:before{content:"";color:inherit}.esri-icon-mobile:before{content:"";color:inherit}.esri-icon-phone:before{content:"";color:inherit}.esri-icon-navigation:before{content:"";color:inherit}.esri-icon-pan:before{content:"";color:inherit}.esri-icon-printer:before{content:"";color:inherit}.esri-icon-pie-chart:before{content:"";color:inherit}.esri-icon-chart:before{content:"";color:inherit}.esri-icon-line-chart:before{content:"";color:inherit}.esri-icon-question:before{content:"";color:inherit}.esri-icon-resend-invitation:before{content:"";color:inherit}.esri-icon-rotate:before{content:"";color:inherit}.esri-icon-save:before{content:"";color:inherit}.esri-icon-settings:before{content:"";color:inherit}.esri-icon-settings2:before{content:"";color:inherit}.esri-icon-share:before{content:"";color:inherit}.esri-icon-sign-out:before{content:"";color:inherit}.esri-icon-support:before{content:"";color:inherit}.esri-icon-user:before{content:"";color:inherit}.esri-icon-time-clock:before{content:"";color:inherit}.esri-icon-trash:before{content:"";color:inherit}.esri-icon-upload:before{content:"";color:inherit}.esri-icon-download:before{content:"";color:inherit}.esri-icon-zoom-in-magnifying-glass:before{content:"";color:#6e6e6e}.esri-icon-search:before{content:"";color:inherit}.esri-icon-zoom-out-magnifying-glass:before{content:"";color:#6e6e6e}.esri-icon-locked:before{content:"";color:inherit}.esri-icon-unlocked:before{content:"";color:inherit}.esri-icon-favorites:before{content:"";color:inherit}.esri-icon-compass:before{content:"";color:inherit}.esri-icon-down:before{content:"";color:inherit}.esri-icon-up:before{content:"";color:inherit}.esri-icon-chat:before{content:"";color:inherit}.esri-icon-dock-bottom:before{content:"";color:inherit}.esri-icon-dock-left:before{content:"";color:inherit}.esri-icon-dock-right:before{content:"";color:inherit}.esri-icon-organization:before{content:"";color:inherit}.esri-icon-north-navigation:before{content:"";color:inherit}.esri-icon-locate-circled:before{content:"";color:inherit}.esri-icon-dial:before{content:"";color:inherit}.esri-icon-polygon:before{content:"";color:inherit}.esri-icon-polyline:before{content:"";color:inherit}.esri-icon-visible:before{content:"";color:inherit}.esri-icon-non-visible:before{content:"";color:inherit}.esri-icon-link-vertical:before{content:"";color:inherit}.esri-icon-unlocked-link-vertical:before{content:"";color:inherit}.esri-icon-link-horizontal:before{content:"";color:inherit}.esri-icon-unlocked-link-horizontal:before{content:"";color:inherit}.esri-icon-swap:before{content:"";color:inherit}.esri-icon-cta-link-external:before{content:"";color:inherit}.esri-icon-reply:before{content:"";color:inherit}.esri-icon-public:before{content:"";color:inherit}.esri-icon-share2:before{content:"";color:inherit}.esri-icon-launch-link-external:before{content:"";color:inherit}.esri-icon-rotate-back:before{content:"";color:inherit}.esri-icon-pan2:before{content:"";color:inherit}.esri-icon-tracking:before{content:"";color:inherit}.esri-icon-expand2:before{content:"";color:inherit}.esri-icon-arrow-down:before{content:"";color:inherit}.esri-icon-arrow-up:before{content:"";color:inherit}.esri-icon-hollow-eye:before{content:"";color:inherit}.esri-icon-play-circled:before{content:"";color:inherit}.esri-icon-volume-off:before{content:"";color:inherit}.esri-icon-volume-on:before{content:"";color:inherit}.esri-icon-bookmark:before{content:"";color:inherit}.esri-icon-lightbulb:before{content:"";color:inherit}.esri-icon-sketch-rectangle:before{content:"";color:inherit}.esri-icon-north-navigation-filled:before{content:"";color:inherit}.esri-icon-default-action:before{content:"";color:inherit}.esri-icon-undo:before{content:"";color:inherit}.esri-icon-redo:before{content:"";color:inherit}.esri-icon-cursor:before{content:"";color:inherit}.esri-icon-cursor-filled:before{content:"";color:inherit}.esri-icon-measure:before{content:"";color:inherit}.esri-icon-measure-line:before{content:"";color:inherit}.esri-icon-measure-area:before{content:"";color:inherit}.esri-icon-legend:before{content:"";color:inherit}.esri-icon-sliders:before{content:"";color:inherit}.esri-icon-sliders-horizontal:before{content:"";color:inherit}.esri-icon-cursor-marquee:before{content:"";color:inherit}.esri-icon-lasso:before{content:"";color:inherit}.esri-icon-elevation-profile:before{content:"";color:inherit}.esri-icon-slice:before{content:"";color:inherit}.esri-icon-line-of-sight:before{content:"";color:inherit}.esri-icon-zoom-to-object:before{content:"";color:inherit}.esri-icon-urban-model:before{content:"";color:inherit}.esri-icon-measure-building-height-shadow:before{content:"";color:inherit}.esri-icon-partly-cloudy:before{content:"";color:inherit}.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-button{box-sizing:border-box;cursor:pointer;white-space:normal;word-break:normal;color:var(--calcite-color-text-1);background-color:var(--calcite-color-status-info);border:var(--calcite-spacing-px) solid var(--calcite-color-status-info);justify-content:center;align-items:center;width:100%;min-height:var(--calcite-spacing-xxxl);padding:6px 7px;font-family:inherit;font-size:var(--calcite-font-size);transition:background-color .125s ease-in-out,border .125s ease-in-out;display:flex;overflow:hidden;&:hover{color:var(--calcite-color-text-1);background-color:var(--calcite-color-status-info-hover);border:var(--calcite-spacing-px) solid var(--calcite-color-status-info-hover)}}.esri-button:hover{color:var(--calcite-color-text-1);background-color:var(--calcite-color-text-2);border:1px solid var(--calcite-color-text-2)}.esri-button.esri-button--small{min-height:var(--calcite-spacing-xl);font-size:var(--calcite-font-size-sm)}.esri-button.esri-button--half{width:50%;display:inline-block}.esri-button.esri-button--third{width:33%;display:inline-block}.esri-button--secondary{color:var(--calcite-color-text-1);background-color:var(--calcite-color-foreground-1)}.esri-button--tertiary{color:var(--calcite-color-brand);background-color:var(--calcite-color-transparent);border-color:var(--calcite-color-transparent)}.esri-button--tertiary:hover{color:var(--calcite-color-brand-hover);background-color:var(--calcite-color-foreground-2);border-color:var(--calcite-color-transparent)}.esri-button--disabled{opacity:.4;pointer-events:none}.esri-button--drill-in{outline-offset:-4px;cursor:pointer;text-align:unset;background-color:var(--calcite-color-foreground-1);border:none;border-radius:2px;justify-content:space-between;align-items:center;margin:var(--calcite-spacing-md) 7px;padding:var(--calcite-spacing-md) 7px;text-decoration:none;transition:background-color .125s ease-in-out;display:flex;box-shadow:0 0 0 1px #adadad4d}.esri-button--drill-in:hover,.esri-button--drill-in:focus{background-color:var(--calcite-color-foreground-2)}.esri-button--drill-in__title{font-size:var(--calcite-font-size)}.esri-button--drill-in [class^=esri-icon-],.esri-button--drill-in [class*=" esri-icon-"]{padding:0 7px}.esri-widget--button{cursor:pointer;text-align:center;color:var(--calcite-color-text-2);background-color:var(--calcite-color-foreground-1);flex-flow:row;justify-content:center;align-items:center;width:var(--calcite-spacing-xxxl);height:var(--calcite-spacing-xxxl);margin:0;padding:0;font-size:var(--calcite-font-size);transition:background-color .125s ease-in-out;display:flex;overflow:hidden}.esri-widget--button:is(calcite-button):not(:hover){--calcite-icon-color: var(--calcite-color-text-3)}.esri-widget--button:not([appearance]),.esri-widget--button[appearance=solid]{--calcite-color-foreground-3: var(--calcite-color-foreground-1)}.esri-widget--button:is(calcite-button){--calcite-offset-invert-focus: 1}.esri-widget--button calcite-loader[inline]{margin:auto}.esri-button--secondary{color:var(--calcite-color-brand);background-color:var(--calcite-color-foreground-1);&:hover{color:var(--calcite-color-text-inverse);background-color:var(--calcite-color-status-info);border:1px solid var(--calcite-color-status-info)}}:host{background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);padding-block-start:var(--arcgis-coordinate-conversion-padding-y);width:var(--arcgis-coordinate-conversion-width, 280px)}.root{background-color:var(--calcite-color-foreground-1)}calcite-alert{--calcite-alert-offset-size: var(--calcite-spacing-sm)}calcite-notice[open]{padding:var(--calcite-spacing-sm)}calcite-block{--calcite-block-content-space: 0;margin:0;padding-inline:var(--arcgis-coordinate-conversion-padding-x)}calcite-block:last-of-type{padding-block-end:var(--arcgis-coordinate-conversion-padding-y, var(--calcite-spacing-sm))}.conversion-popover{--calcite-popover-max-size-x: var(--arcgis-coordinate-conversion-settings-block-size, 250px)}.go-to-input-holder{display:flex}.go-to-input-holder calcite-input{flex:1}.conversions-block{border:none;padding-bottom:var(--calcite-spacing-sm)}.live-mode-block{--calcite-label-margin-bottom: 0;padding-block:var(--calcite-spacing-sm);padding-inline:var(--arcgis-coordinate-conversion-padding-x, var(--calcite-spacing-sm))}.live-mode-label{width:fit-content;margin-inline-start:auto}.font-size-small{font-size:var(--calcite-font-size--2)}.format-radio-label{display:flex;flex-direction:column}.radio-label{font-weight:var(--calcite-font-weight-medium);font-size:var(--calcite-font-size--2)}.radio-description{font-weight:var(--calcite-font-weight-light);font-size:var(--calcite-font-size--3)}.unit-select-panel{--calcite-panel-space: var(--calcite-spacing-md)}.popover-footer{padding:var(--calcite-spacing-sm);border-top:1px solid var(--calcite-color-border-3)}.input-form-group{display:flex;flex-direction:column;align-items:flex-start;padding:var(--calcite-spacing-sm)}.add-conversion-trigger{margin-inline-start:var(--calcite-spacing-sm);margin-block-start:var(--calcite-spacing-sm)}.input-form-group calcite-label{width:100%}.settings{padding:var(--calcite-spacing-md);display:flex;flex-direction:column;align-items:center;background-color:var(--calcite-color-foreground-1);width:calc(var(--arcgis-coordinate-conversion-settings-block-size, 250px) - (2 * var(--calcite-spacing-md)) - 2px)}.settings calcite-label{width:100%}.settings calcite-input{flex:1}.settings-form-group-horizontal{display:flex}`, V = 2500, q = new D({ x: 0, y: 0 }), l = { copy: "copy", gear: "gear", goTo: "zoom-to-object", lightbulb: "lightbulb", plus: "plus", refresh: "refresh", warning: "exclamation-mark-triangle" }, R = L(I); class j extends S { constructor() { super(...arguments), this._alertTimer = -1, this._conversionPopoverMap = /* @__PURE__ */ new Map(), this._coordinateInput = b(), this.messages = T({ name: "coordinate-conversion-next", blocking: !0 }), this._multipleConversionsDisabled = !1, this.quantityFormatter = new A(), this.viewModel = R(this), this.clearAlertTimeout = () => { window.clearTimeout(this._alertTimer), this.alertProperties = { ...this.alertProperties, open: !1 }; }, this.onElevationPopoverTriggerMount = (e) => { this._elevationPopoverTrigger = e; }, this.onFormatPopoverTriggerMount = (e) => { this._formatsPopoverTrigger = e; }, this.handleFormatComboboxChange = (e) => { const o = e.target.selectedItems[0].value, i = this.formats.find((t) => t.name === o); if (i) { const t = this.activeConversion ?? this.conversions.at(0) ?? null, r = new u({ format: i }); t && this.transferConversionPopoverState(t, r), this.conversions.splice(0, 1, r), this.activeConversion = r, this.setPreviewConversion(); } }, this.alertProperties = { kind: "brand", message: null, title: null, open: !1 }, this.elevationPopoverOpen = !1, this.formatsPopoverOpen = !1, this.invalidInput = !1, this.view = this.viewModel.view, this.autoDestroyDisabled = !1, this.conversions = this.viewModel.conversions, this.currentLocation = this.viewModel.currentLocation, this.formats = this.viewModel.formats, this.goToOverride = this.viewModel.goToOverride, this.headingLevel = 4, this.hideCaptureSection = !1, this.hideInputSection = !1, this.hideSettingsButton = !1, this.icon = "coordinate-system", this.label = this.messages.componentLabel, this.locationSymbol = this.viewModel.locationSymbol, this.mode = this.viewModel.mode, this.removeLeadingZeros = this.viewModel.removeLeadingZeros, this.visualScale = "s", this.showElevation = !1, this.state = this.viewModel.state, this.storageType = this.viewModel.storageType, this.arcgisConversionChange = m(), this.arcgisPropertyChange = M()("currentLocation", "state", "mode", "verticalUnit"), this.arcgisReady = m(), this.renderConversionView = (e, o) => { const { messages: i } = this, { format: t } = e, r = t?.label ?? "", a = o === 0 && !e.displayCoordinate ? i.noLocation : e.displayCoordinate, d = this._renderConversionActions(e, a); return k(e?.format?.name, n`<calcite-list-item class="conversion-list-item" .description=${r.toUpperCase()} .label=${this.getDisplayCoordinate(a)} .scale=${this.visualScale} title=${a ?? void 0 ?? c}>${d}</calcite-list-item>`); }, this.renderLiveModeSection = () => { const { messages: e } = this, o = this.mode === "idle" ? this.viewModel.mode : this.mode; return n`<calcite-block class="live-mode-block" .disabled=${this.disabled} expanded .headingLevel=${this.headingLevel} .label=${e.captureMode} .scale=${this.visualScale}><calcite-label alignment=end class="live-mode-label" layout=inline .scale=${this.visualScale}>${e.captureMode}<calcite-switch .checked=${o === "capture"} @calciteSwitchChange=${this.toggleMode}></calcite-switch></calcite-label></calcite-block>`; }; } static { this.properties = { activeConversion: 16, alertProperties: 16, defaultMeasurementSystem: 16, disabled: 16, displayedElevation: 16, elevationPopoverOpen: 16, formatsPopoverOpen: 16, invalidInput: 16, inputFormat: 16, previewConversion: 16, view: 0, autoDestroyDisabled: 5, conversions: 0, currentLocation: 0, formats: 0, goToOverride: 0, headingLevel: 9, hideCaptureSection: 7, hideInputSection: 7, hideSettingsButton: 7, icon: 1, ignoreCoordinatePrecision: 5, label: 1, locationSymbol: 0, mode: 3, multipleConversionsDisabled: 7, referenceElement: 1, removeLeadingZeros: 7, visualScale: 1, showElevation: 7, state: 32, storageDisabled: 7, storageType: 1, verticalUnit: 1 }; } static { this.styles = O; } get defaultMeasurementSystem() { return this.view?.ready ? F(this.view) : "metric"; } get disabled() { return this.viewModel.state === "disabled"; } get displayedElevation() { const { currentLocation: e, verticalUnit: o, messages: i } = this; if (e?.z === void 0 || e.z === null) return i.noElevation; { const t = E(e.z, "meters", o); return this.quantityFormatter.formatLength({ value: t, unit: o, type: "length" }, 2, "plural"); } } get ignoreCoordinatePrecision() { return !this.viewModel.calculateCoordinatePrecision; } set ignoreCoordinatePrecision(e) { this.viewModel.calculateCoordinatePrecision = !e; } get multipleConversionsDisabled() { return this._multipleConversionsDisabled; } set multipleConversionsDisabled(e) { e && this.conversions.splice(1, this.conversions.length - 1), this._multipleConversionsDisabled = e; } get storageDisabled() { return !this.viewModel.storageEnabled; } set storageDisabled(e) { this.viewModel.storageEnabled = !e; } get verticalUnit() { return this.viewModel.verticalUnit ?? (this.defaultMeasurementSystem === "imperial" ? "feet" : "meters"); } set verticalUnit(e) { this.viewModel.verticalUnit = e; } async destroy() { this.clearAlertTimeout(), await this.manager.destroy(); } async reverseConvert(e, o) { return await this.viewModel.reverseConvert(e, o); } load() { this.manager.onLifecycle(() => [this.conversions.on("change", () => this.arcgisConversionChange.emit())]); } willUpdate(e) { if (e.has("mode") && this.mode === "idle") { this.viewModel.setLocation(this.currentLocation); return; } if (e.has("currentLocation")) { const o = e.get("currentLocation"); this.mode === "idle" && !this.currentLocation?.equals(o) && this.viewModel.setLocation(this.currentLocation); } } closeAllPopovers() { for (const e of this._conversionPopoverMap.values()) e.open = !1; this.elevationPopoverOpen = !1, this.formatsPopoverOpen = !1, this.requestUpdate(); } async copyToClipboard(e) { e && (e = e.replace(/‎/gu, ""), await navigator.clipboard.writeText(e)); } findSettingsFormat() { return this.activeConversion?.format || this.conversions.reduceRight((e, o) => { const i = o.format; return i && g(i) ? i : e; }, null) || this.formats.find((e) => g(e)) || null; } getConversionPopoverState(e) { let o = this._conversionPopoverMap.get(e); return o || (o = { triggerRef: b(), open: !1 }, this._conversionPopoverMap.set(e, o)), o; } getDisplayCoordinate(e) { return e ? e.includes(",") ? e.replace(/, /gu, ", ​").replace(/ /gu, " ") : e : "​"; } getFormatDescription(e) { const { messages: o } = this; return o.formatDescriptions[e.name] ?? o.formatDescriptions.custom; } getId(e) { return `arcgis-coordinate-conversion-${e}`; } openConversionSettings(e, o) { const i = this.getConversionPopoverState(e), t = this.activeConversion !== e || !i.open; this.closeAllPopovers(), i.open = t, this._conversionPopoverTrigger = t ? o.currentTarget : void 0, this.activeConversion = t ? e : void 0, t && this.setPreviewConversion(), this.requestUpdate(), o.stopPropagation(); } async processUserInput(e, o, i) { const { viewModel: t } = this; try { const r = await this._reverseConvert(e, o); if (r) i && t.goToLocation(r).catch((s) => { w(this)(s), this.showAlertMessage(null, this.messages.locationOffBasemap, "warning"); }); else throw new Error("failed to process user input"); this.mode === "capture" ? t.resume() : this.mode = "capture", this.invalidInput = !1, this.currentLocation = r ?? void 0, t.setLocation(r); } catch (r) { w(this)(r), this.showAlertMessage(null, this.messages.invalidCoordinate, "warning"), this.invalidInput = !0; } } async processUserKeyboardInput(e) { const { key: o } = e; if (o === "Enter") { const i = this.inputFormat || this.conversions.at(0)?.format, t = this._coordinateInput.value?.value; if (!i || !t) return; await this.processUserInput(t, i, !0); } else this.invalidInput = !1; } async processUserMouseInput(e) { const o = this.inputFormat || this.conversions.at(0)?.format, i = this._coordinateInput.value?.value; !o || !i || await this.processUserInput(i, o, e); } async _reverseConvert(e, o) { return await o.reverseConvert(e); } setDefaultPattern(e) { e.stopPropagation(); const o = this.findSettingsFormat(); o?.defaultPattern && (o.currentPattern = o.defaultPattern); } setInputFormat(e) { const o = e.target.selectedOption.value; o !== null && (this.inputFormat = o); } setPreviewConversion() { const e = this.findSettingsFormat(), o = this.viewModel; if (e) { const i = this.conversions.find((t) => t.format === e); this.previewConversion = new u({ format: e, position: { location: this.currentLocation, coordinate: i?.position?.coordinate } }), this.previewConversion.position?.coordinate || o.previewConversion(this.previewConversion, o.currentLocation ?? q); } } showAlertMessage(e, o, i, t = V) { this.alertProperties = { ...this.alertProperties, title: e, message: o, kind: i, open: !0 }, window.clearTimeout(this._alertTimer), this._alertTimer = window.setTimeout(() => { this.alertProperties = { ...this.alertProperties, open: !1 }; }, t); } toggleConversion(e) { const o = e.target, i = this.formats.find((t) => t.name === o.getAttribute("data-format")); if (i) { const t = this.conversions.find((r) => r.format === i); if (t) { if (this.conversions.length > 1) { const r = this._conversionPopoverMap.get(t); r && (r.open = !1, this._conversionPopoverMap.delete(t)), this.activeConversion === t && (this.activeConversion = void 0), this.conversions.remove(t); } } else { const r = new u({ format: i }); this.conversions.add(r); } } } toggleMode() { this.mode = this.viewModel.mode === "live" ? "capture" : "live"; } transferConversionPopoverState(e, o) { const i = this.getConversionPopoverState(e), t = this.getConversionPopoverState(o); t.open = i.open, this._conversionPopoverMap.delete(e); } updateCurrentPattern(e) { e.stopPropagation(); const o = e.target, i = this.findSettingsFormat(); i && (i.currentPattern = o.value); } render() { const { headingLevel: e } = this, o = this.renderConversionPopover(); return n`<calcite-panel class=root .headingLevel=${e} .scale=${this.visualScale}>${this.renderConversionsView()}${this.renderAlert()}</calcite-panel>${o}`; } renderAlert() { const { messages: e } = this, { open: o, message: i, title: t, kind: r } = this.alertProperties; return n`<calcite-alert class="alert" .kind=${r} .label=${e.alertLabel} @calciteAlertClose=${this.clearAlertTimeout} .open=${o} placement=top .scale=${this.visualScale} slot=alerts>${t ? n`<div slot=title>${t}</div>` : null}${i ? n`<div slot=message>${i}</div>` : null}</calcite-alert>`; } _renderConversionActions(e, o) { const { messages: i } = this, t = this.getConversionPopoverState(e), r = i.settingsTitleWithFormat.replace("{formatName}", e.format?.name?.toUpperCase() ?? ""), s = e.displayCoordinate && this.mode !== "live"; return n`<calcite-action-group layout=horizontal .scale=${this.visualScale} slot=actions-end>${s ? n`<calcite-action .icon=${l.copy} .label=${i.copyLabel} @click=${() => this.copyToClipboard(o)} .scale=${this.visualScale} .text=${i.copyLabel} title=${i.copyLabel ?? c}></calcite-action>` : null}${this.hideSettingsButton ? null : n`<calcite-action data-format=${e.format?.name ?? c} .icon=${l.gear} .label=${r} @click=${(a) => this.openConversionSettings(e, a)} .scale=${this.visualScale} .text=${r} title=${r ?? c} ${p(t.triggerRef)}></calcite-action>`}</calcite-action-group>`; } renderConversionOptions(e, o) { return e.map((i) => n`<calcite-option .label=${i.label.toUpperCase()} .selected=${i === o} .value=${i}>${i.label}</calcite-option>`); } renderConversionPopover() { const { activeConversion: e, messages: o } = this; if (!e) return null; const i = this.getConversionPopoverState(e), t = o.settingsTitleWithFormat.replace("{formatName}", e.format?.name?.toUpperCase() ?? ""); return this.renderPopover({ class: "conversion-popover", content: this.renderSettingsView(), getPopoverOpenProperty: () => i.open, heading: t, includeFooter: !0, label: t, setPopoverOpenProperty: (r) => { i.open = r, r || (this._conversionPopoverTrigger = void 0, this.activeConversion = void 0), this.requestUpdate(); }, trigger: null, triggerElement: i.triggerRef.value ?? this._conversionPopoverTrigger ?? void 0 }); } renderConversionsView() { if (!this.conversions) return; const { messages: e, multipleConversionsDisabled: o } = this, t = (o ? this.conversions.slice(0, 1) : this.conversions).map(this.renderConversionView).reverse(), r = this.showElevation ? this.renderElevation() : null, s = this.hideCaptureSection ? null : this.renderLiveModeSection(), a = this.hideInputSection ? null : this.renderCoordinateInputView(), d = this.multipleConversionsDisabled ? null : this.renderFormatDropdown(), v = this.disabled ? n`<calcite-notice .icon=${l.lightbulb} .open=${this.disabled} width=full><div class="font-size-small" slot=message>${e.noBasemap}</div></calcite-notice>` : null; return n`${s}${v}${a}<calcite-block class="conversions-block" .disabled=${this.disabled} expanded .heading=${e.coordinates} .headingLevel=${this.headingLevel} .scale=${this.visualScale}><calcite-list interaction-mode=static .label=${e.coordinates} .scale=${this.visualScale}>${t}</calcite-list>${d}</calcite-block>${r}`; } renderCoordinateInputView() { const { messages: e } = this, o = this.inputFormat ?? this.conversions.at(0)?.format, i = this.getId("coordinate-input"), t = this.renderConversionOptions(this.formats, o ?? void 0), r = n`<calcite-action .icon=${l.goTo} .label=${e.convertAndGoTo} @click=${() => this.processUserMouseInput(!0)} .scale=${this.visualScale} .text=${e.convertAndGoTo} title=${e.convertAndGoTo ?? c}></calcite-action>`; return n`<calcite-block collapsible data-testid=input-block .disabled=${this.disabled} .heading=${e.input} .headingLevel=${this.headingLevel} .scale=${this.visualScale}><div class="input-form-group"><calcite-label .scale=${this.visualScale}>${e.inputFormat}<calcite-select aria-controls=${i ?? c} class="input-select" .label=${e.inputFormat} @calciteSelectChange=${this.setInputFormat} .scale=${this.visualScale}>${t}</calcite-select></calcite-label><calcite-label .scale=${this.visualScale}>${e.inputCoordTitle}<div class="go-to-input-holder"><calcite-input class="coordinate-input" data-format=${o ?? c} data-testid=coordinate-input id=${i ?? c} @keydown=${this.processUserKeyboardInput} .placeholder=${e.inputCoordTitle} required .scale=${this.visualScale} .status=${this.invalidInput ? "invalid" : "idle"} ${p(this._coordinateInput)}></calcite-input>${r}</div></calcite-label><calcite-button appearance=outline data-testid=convert-button kind=neutral @click=${() => this.processUserMouseInput(!1)} type=button .scale=${this.visualScale} width=auto>${e.convert}</calcite-button></div></calcite-block>`; } renderElevation() { const { messages: e } = this, o = this.displayedElevation ?? e.noElevation, i = this.renderElevationActions(), t = this.hideSettingsButton ? null : this.renderElevationSettingsDropdown(); return n`<calcite-block .disabled=${this.disabled} expanded .heading=${e.elevation} .headingLevel=${this.headingLevel} .scale=${this.visualScale}><calcite-list interaction-mode=static .label=${e.elevation} .scale=${this.visualScale}><calcite-list-item class="elevation-list-item" .label=${o} .scale=${this.visualScale} title=${o ?? c}>${i}</calcite-list-item></calcite-list>${t}</calcite-block>`; } renderElevationActions() { const { messages: e } = this, o = this.currentLocation?.z !== void 0 && this.mode !== "live", i = this.displayedElevation ?? e.noElevation; return n`<calcite-action-group layout=horizontal .scale=${this.visualScale} slot=actions-end>${o ? n`<calcite-action .icon=${l.copy} .label=${e.copyElevationLabel} @click=${() => o && this.copyToClipboard(i)} .scale=${this.visualScale} .text=${e.copyElevationLabel} title=${e.copyElevationLabel ?? c}></calcite-action>` : null}${this.hideSettingsButton ? null : n`<calcite-action .icon=${l.gear} .label=${e.selectElevationUnit} .scale=${this.visualScale} .text=${e.selectElevationUnit} title=${e.selectElevationUnit ?? c} ${p(this.onElevationPopoverTriggerMount)}></calcite-action>`}</calcite-action-group>`; } renderElevationSettingsDropdown() { const { messages: e } = this, o = n`<arcgis-unit-radio-button-group @arcgisUnitSelectChange=${(i) => this.verticalUnit = i.detail} .options=${U} .name=${e.selectElevationUnit} .scale=${this.visualScale} .value=${this.verticalUnit}></arcgis-unit-radio-button-group>`; return this.renderPopover({ content: o, closeOnEnter: !0, getPopoverOpenProperty: () => this.elevationPopoverOpen, includeFooter: !1, label: e.selectElevationUnit, setPopoverOpenProperty: (i) => this.elevationPopoverOpen = i, trigger: null, triggerElement: this._elevationPopoverTrigger }); } renderFormatDropdown() { const { messages: e } = this, o = n`<calcite-list .label=${e.addConversion} .scale=${this.visualScale} selection-mode=multiple>${C(this.formats, (t) => t, (t) => { const r = !!this.conversions.find((a) => a.format === t), s = this.getFormatDescription(t); return n`<calcite-list-item data-format=${t.name ?? c} .description=${s} .disabled=${r && this.conversions.length === 1} .label=${t.label.toUpperCase()} @calciteListItemSelect=${this.toggleConversion} .selected=${r}></calcite-list-item>`; })}</calcite-list>`, i = n`<calcite-button appearance=outline class="add-conversion-trigger" .iconStart=${l.plus} kind=neutral .label=${e.selectFormats} round .scale=${this.visualScale} ${p(this.onFormatPopoverTriggerMount)}>${e.selectFormats}</calcite-button>`; return this.renderPopover({ content: o, includeFooter: !0, getPopoverOpenProperty: () => this.formatsPopoverOpen, label: e.selectFormats, setPopoverOpenProperty: (t) => this.formatsPopoverOpen = t, trigger: i, triggerElement: this._formatsPopoverTrigger }); } renderPopover({ content: e, class: o, closeOnEnter: i, heading: t, getPopoverOpenProperty: r, includeFooter: s, label: a, setPopoverOpenProperty: d, slot: v, trigger: x, triggerDisabled: $, triggerElement: f }) { const { messages: _ } = this; return n`${x}${f ? n`<calcite-popover auto-close class=${z(o)} .heading=${t} .headingLevel=${this.headingLevel} .label=${a} @calcitePopoverBeforeOpen=${() => { d(!0); }} @calcitePopoverClose=${(h) => { d(!1), h.stopPropagation(); }} @keydown=${(h) => { i && (h.key === "Enter" || h.key === " ") && d(!1); }} .open=${r()} .referenceElement=${f} .scale=${this.visualScale} slot=${v ?? c} .triggerDisabled=${$}>${e}${s ? n`<div class="popover-footer"><calcite-button appearance=solid class="popover-done-button" kind=brand @click=${() => d(!1)} .scale=${this.visualScale} width=full>${_.done}</calcite-button></div>` : null}</calcite-popover>` : null}`; } renderSettingsView() { const { messages: e } = this, o = this.findSettingsFormat(), i = this.getId("pattern-input"), t = this.getId("preview-coordinate"), r = o?.currentPattern, s = this.multipleConversionsDisabled ? this.renderSingleFormatDropdown() : null; if (!o || !g(o)) return n`<div class="settings"><calcite-label .scale=${this.visualScale}>${e.format}${s ?? n`<calcite-notice class="no-display-properties-notice" .icon=${l.warning} open .scale=${this.visualScale}><div class="font-size-small" slot=message>${e.noDisplayProperties}</div></calcite-notice>`}</calcite-label></div>`; const a = n`<calcite-action .icon=${l.refresh} .label=${e.defaultPattern} @click=${this.setDefaultPattern} .scale=${this.visualScale} .text=${e.defaultPattern} title=${e.defaultPattern ?? c}></calcite-action>`; return n`<div class="settings"><calcite-label .scale=${this.visualScale}>${e.format}${s}</calcite-label><calcite-label .for=${i} .scale=${this.visualScale}>${e.display}<div class="settings-form-group-horizontal"><calcite-input aria-controls=${t ?? c} class="pattern-input" id=${i ?? c} @calciteInputInput=${this.updateCurrentPattern} .scale=${this.visualScale} type=text .value=${r}></calcite-input>${a}</div></calcite-label><calcite-label .scale=${this.visualScale}>${e.preview}<calcite-input read-only .scale=${this.visualScale} type=text .value=${this.previewConversion?.displayCoordinate ?? void 0}></calcite-input></calcite-label></div>`; } renderSingleFormatDropdown() { const { messages: e } = this; return n`<calcite-combobox data-testid=single-format-combobox .label=${e.selectFormat} @calciteComboboxChange=${this.handleFormatComboboxChange} .scale=${this.visualScale} selection-mode=single-persist>${this.formats?.map((o) => n`<calcite-combobox-item .description=${this.getFormatDescription(o)} .heading=${o.label.toUpperCase()} .selected=${this.conversions.at(0)?.format === o} .value=${o.name}></calcite-combobox-item>`)}</calcite-combobox>`; } } y("arcgis-coordinate-conversion-next", j); export { j as ArcgisCoordinateConversionNext };