@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 2.28 kB
JavaScript
import{_ as t}from"../../../chunks/tslib.es6.js";import e from"../../../core/Accessor.js";import{applySome as o,isSome as n,destroyMaybe as i}from"../../../core/maybe.js";import{watch as s,syncAndInitial as r}from"../../../core/reactiveUtils.js";import{property as c}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{BASE as p}from"./css.js";import{tooltipContentFactory as l}from"./content/tooltipContentFactory.js";import{isRTL as d}from"../../../widgets/support/widgetUtils.js";const h={base:`${p}`};let m=class extends e{constructor(t){super(t),this.info=null,this._contentContainer=(()=>{const t=document.createElement("div");return t.classList.add(h.base),t})(),this._contentWidget=null}initialize(){const t=this._contentContainer;this.addHandles([s((()=>this.view.overlay?.surface),(e=>{t.remove(),o(e,(e=>e.appendChild(t)))}),r),s((()=>this.info),((e,s)=>{n(this._contentWidget)&&n(e)&&n(s)&&e.type===s.type?this._contentWidget.info=e:(this._contentWidget=i(this._contentWidget),o(l(this,e),(e=>{this._contentWidget=e,e.container&&t.appendChild(e.container)})))}),r),s((()=>({container:this._contentContainer,contentWidget:this._contentWidget,screenPoint:this._screenPoint})),u,r)])}destroy(){this._contentWidget=i(this._contentWidget),this._contentContainer.remove()}clear(){this.info=null}get _screenPoint(){const t=this.view.inputManager;return t?.multiTouchActive?null:t?.latestPointerLocation}get test(){return{contentContainer:this._contentContainer,visible:"none"!==this._contentContainer?.style.display}}};function u({container:t,contentWidget:e,screenPoint:o}){const{style:i}=t;if(n(o)&&n(e)){i.display="block";const e=d(t),n=`translate(${Math.round(o.x)+_[0]*(e?-1:1)}px, ${Math.round(o.y)+_[1]}px)`;i.transform=e?`translate(-100%, 0) ${n}`:n}else i.display="none"}t([c({nonNullable:!0})],m.prototype,"view",void 0),t([c()],m.prototype,"info",void 0),t([c()],m.prototype,"_contentContainer",void 0),t([c()],m.prototype,"_contentWidget",void 0),t([c()],m.prototype,"_screenPoint",null),m=t([a("esri.views.interactive.tooltip.Tooltip")],m);const _=[20,20];export{m as Tooltip};