UNPKG

@arcgis/map-components

Version:
185 lines (184 loc) • 9.44 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */ import { c as l } from "../../chunks/runtime.js"; import { html as a } from "lit"; import { watch as s } from "@arcgis/core/core/reactiveUtils.js"; import c from "@arcgis/core/views/MapView.js"; import v from "@arcgis/core/WebMap.js"; import { LitElement as m, createEvent as r, safeClassMap as o } from "@arcgis/lumina"; import { reEmitEvent as e, reCreateAccessor as u, makeAccessorController as p } from "@arcgis/lumina/controllers/accessor"; import { createRef as n, ref as h } from "lit/directives/ref.js"; import { s as g } from "../../chunks/esri-main.js"; import { s as d } from "../../chunks/slots.js"; import { C as w } from "../../chunks/resources.js"; import { p as y, i as f } from "../../chunks/component-utils.js"; import { U as b, u as V, a as C } from "../../chunks/useArcgisViewReadyError.js"; import E from "@arcgis/core/core/Collection.js"; const A = p( v, /** * Since omitProps is only needed for typing, not runtime, `{} as { ... }` is * a hack to remove them from the runtime code. This argument is not used at * all at runtime. For makeViewModelController and makeWidgetController, the * minifier is able to remove them automatically. However, minifier does not * remove them for makeAccessorController as makeAccessorController is defined * in an externalized package. */ {} ), R = p(c, {}); class _ extends m { constructor() { super(), this._containerRef = n(), this._mapRef = n(), this._uiController = new b(this), this.extraContent = new E(), this.arcgisLoadError = V(this), this.arcgisViewReadyError = C(this), this._map = A(this), this.view = R(this), this.animationsDisabled = this.view.animationsEnabled, this.allLayerViews = this.view.allLayerViews, this.analyses = this.view.analyses, this.attributionMode = this.view.attributionMode, this.autoDestroyDisabled = !1, this.background = this.view.background, this.basemap = this._map.basemap, this.basemapView = this.view.basemapView, this.canZoomIn = this.view.canZoomIn, this.canZoomOut = this.view.canZoomOut, this.constraints = this.view.constraints, this.displayFilterDisabled = this.view.displayFilterEnabled, this.fatalError = this.view.fatalError, this.floors = this.view.floors, this.graphics = this.view.graphics, this.ground = this._map.ground, this.highlights = this.view.highlights, this.ipsInfo = this._map.ipsInfo, this.layerViews = this.view.layerViews, this.magnifier = this.view.magnifier, this.map = this.view.map, this.navigation = this.view.navigation, this.padding = this.view.padding, this.popup = this.view.popup, this.popupDisabled = this.view.popupEnabled, this.popupComponentEnabled = !1, this.ready = this.view.ready, this.resizeAlign = this.view.resizeAlign, this.resolution = this.view.resolution, this.rotation = this.view.rotation, this.selectionManager = this.view.selectionManager, this.slotGroupRefs = this._uiController.slotGroupRefs, this.spatialReference = this.view.spatialReference, this.spatialReferenceLocked = this.view.spatialReferenceLocked, this.suspended = this.view.suspended, this.theme = this.view.theme, this.timeExtent = this.view.timeExtent, this.timeZone = this.view.timeZone, this.updating = this.view.updating, this.visibleArea = this.view.visibleArea, this.arcgisViewAnalysisViewCreate = e(() => this.view, "analysis-view-create"), this.arcgisViewAnalysisViewCreateError = e(() => this.view, "analysis-view-create-error"), this.arcgisViewAnalysisViewDestroy = e(() => this.view, "analysis-view-destroy"), this.arcgisViewChange = r(), this.arcgisViewClick = e(() => this.view, "click"), this.arcgisViewDoubleClick = e(() => this.view, "double-click"), this.arcgisViewDoubleTapDrag = e(() => this.view, "double-tap-drag"), this.arcgisViewDrag = e(() => this.view, "drag"), this.arcgisViewHold = e(() => this.view, "hold"), this.arcgisViewImmediateClick = e(() => this.view, "immediate-click"), this.arcgisViewImmediateDoubleClick = e(() => this.view, "immediate-double-click"), this.arcgisViewKeyDown = e(() => this.view, "key-down"), this.arcgisViewKeyUp = e(() => this.view, "key-up"), this.arcgisViewLayerviewCreate = e(() => this.view, "layerview-create"), this.arcgisViewLayerviewCreateError = e(() => this.view, "layerview-create-error"), this.arcgisViewLayerviewDestroy = e(() => this.view, "layerview-destroy"), this.arcgisViewMouseWheel = e(() => this.view, "mouse-wheel"), this.arcgisViewPointerDown = e(() => this.view, "pointer-down"), this.arcgisViewPointerEnter = e(() => this.view, "pointer-enter"), this.arcgisViewPointerLeave = e(() => this.view, "pointer-leave"), this.arcgisViewPointerMove = e(() => this.view, "pointer-move"), this.arcgisViewPointerUp = e(() => this.view, "pointer-up"), this.arcgisViewReadyChange = r(), this.arcgisViewVerticalTwoFingerDrag = e(() => this.view, "vertical-two-finger-drag"), this.view.ui = { components: [] }; } static { this.properties = { _map: 16, view: 32, animationsDisabled: 5, aria: 0, allLayerViews: 32, analyses: 0, attributionItems: 32, attributionMode: 1, autoDestroyDisabled: 5, background: 0, basemap: 1, basemapView: 0, canZoomIn: 36, canZoomOut: 36, center: 1, constraints: 0, displayFilterDisabled: 5, extent: 0, fatalError: 0, floors: 0, focusAreas: 0, gamepad: 32, graphics: 0, ground: 1, hideAttribution: 5, highlights: 0, interacting: 32, ipsInfo: 0, itemId: 3, layerViews: 32, magnifier: 32, map: 0, navigating: 32, navigation: 0, padding: 0, popup: 0, popupElement: 32, popupDisabled: 5, popupComponentEnabled: 5, ready: 36, resizeAlign: 1, resolution: 40, rotation: 9, scale: 9, selectionManager: 32, slotGroupRefs: 32, spatialReference: 0, spatialReferenceLocked: 5, stationary: 32, suspended: 39, theme: 0, timeExtent: 0, timeZone: 1, updating: 36, viewpoint: 0, visibleArea: 32, zoom: 9, loadErrorSources: 0 }; } static { this.styles = [g, d]; } get aria() { return this.view?.aria; } set aria(i) { this.view && (this.view.aria = i); } get attributionItems() { return this.view?.attributionItems ?? []; } get center() { return this.view.center; } set center(i) { const t = y(i, this.view); t && (this.view.center = t); } get extent() { return this.view.extent; } set extent(i) { i && !this.extent?.equals(i) && (this.view.extent = i); } get focusAreas() { return this.map ? this.map.focusAreas : { areas: [], style: "bright" }; } set focusAreas(i) { this.map && (this.map.focusAreas = i); } get gamepad() { return this.view.input.gamepad; } get hideAttribution() { return !this.view.attributionVisible; } set hideAttribution(i) { this.view.attributionVisible = !i; } get interacting() { return this.view.interacting; } get itemId() { return this._map.portalItem?.id; } set itemId(i) { u(this._map, this), this._map.portalItem = { id: i }, this.view.map = this._map; } get navigating() { return this.view.navigating; } get popupElement() { return this._uiController.popupElement || null; } get scale() { return this.view.scale; } set scale(i) { this.view.scale = i; } get stationary() { return this.view.stationary; } get viewpoint() { return this.view.viewpoint; } set viewpoint(i) { f(this.viewpoint, i) && (this.view.viewpoint = i); } get zoom() { return this.view.zoom; } set zoom(i) { this.view.zoom = i; } async closePopup() { this._uiController.closePopup(); } async fetchPopupFeatures(i, t) { return this.view.fetchPopupFeatures(i, t); } async destroy() { await this.manager.destroy(); } async goTo(i, t) { return await this.view.goTo(i, t); } async hitTest(i, t) { return await this.view.hitTest(i, t); } async openPopup(i) { this._uiController.openPopup(i); } async takeScreenshot(i) { return await this.view.takeScreenshot(i); } toMap(i) { return this.view.toMap(i); } toScreen(i, t) { return this.view.toScreen(i, t); } async tryFatalErrorRecovery() { this.view.tryFatalErrorRecovery(); } async viewOnReady(i, t) { return await this.componentOnReady(), await this.view.whenReady().then(() => i?.()).catch(t); } async whenAnalysisView(i) { return await this.view.whenAnalysisView(i); } async whenLayerView(i) { return await this.view?.whenLayerView(i); } async zoomIn() { this.view.zoomIn(); } async zoomOut() { this.view.zoomOut(); } loaded() { const i = this; i.el.childElem = this._mapRef.value, this.view.container ??= i.el.childElem, this.map ||= this._map, this.manager.onLifecycle(() => [ s(() => this.map, (t) => { t && (this._map = t); }, { initial: !0, sync: !0 }), s(() => this.view.stationary, () => this.arcgisViewChange.emit(), { initial: !0 }), s(() => this.view.ready, () => this.arcgisViewReadyChange.emit(), { initial: this.view.ready }), s(() => this.view.attributionHeight, (t) => { this._uiController.handleAttributionHeightChange(t); }, { initial: !0 }) ]); } renderMain() { return a`<div class=${o(w.base)} ${h(this._mapRef)}></div>`; } render() { return a`${this.renderMain()}<section class=${o(w.containerUI)} ${h(this._containerRef)}>${this._uiController.render()}${this.extraContent}</section>`; } } l("arcgis-map", _); export { _ as ArcgisMap };