@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.94 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as e}from"../../chunks/tslib.es6.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as t}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import s from"./FeatureContent/FeatureContentViewModel.js";import{shouldOpenInNewTab as a}from"./support/featureUtils.js";import{isWidget as i}from"../support/widget.js";import{tsx as d}from"../support/jsxFactory.js";const n="esri-feature-content",c={base:n,loaderContainer:`${n}__loader-container`,loader:`${n}__loader`};let l=class extends o{constructor(e,r){super(e,r),this.viewModel=null,this._addTargetToAnchors=e=>{Array.from(e.querySelectorAll("a")).forEach((e=>{a(e.href)&&!e.hasAttribute("target")&&e.setAttribute("target","_blank")}))}}get creator(){return this.viewModel?.creator}set creator(e){this.viewModel&&(this.viewModel.creator=e)}get graphic(){return this.viewModel?.graphic}set graphic(e){this.viewModel&&(this.viewModel.graphic=e)}render(){const e=this.viewModel?.state;return d("div",{class:c.base},"loading"===e?this._renderLoading():this._renderCreated())}_renderLoading(){return d("div",{class:c.loaderContainer,key:"loader"},d("div",{class:c.loader}))}_renderCreated(){const e=this.viewModel?.created;return e?e instanceof HTMLElement?d("div",{afterCreate:this._attachToNode,bind:e,key:e}):i(e)?d("div",{key:e},!e.destroyed&&e.render()):d("div",{afterCreate:this._addTargetToAnchors,innerHTML:e,key:e}):null}_attachToNode(e){const r=this;e.appendChild(r)}};e([r()],l.prototype,"creator",null),e([r()],l.prototype,"graphic",null),e([r({type:s})],l.prototype,"viewModel",void 0),l=e([t("esri.widgets.Feature.FeatureContent")],l);export{l as default};