UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 2.25 kB
/* 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 r from"../../core/Error.js";import o from"../../core/Identifiable.js";import t from"../../core/Loadable.js";import s from"../../core/Logger.js";import{MultiOriginJSONMixin as n}from"../../core/MultiOriginJSONSupport.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{reader as c}from"../../core/accessorSupport/decorators/reader.js";import{subclass as p}from"../../core/accessorSupport/decorators/subclass.js";import{writer as l}from"../../core/accessorSupport/decorators/writer.js";import a from"./ControlPointsGeoreference.js";import{toControlPointsGeoreference as m,mediaGeoreferenceProperty as f}from"./mediaUtils.js";let u=class extends(o.NumericIdentifiableMixin(n(t))){constructor(e){super(e),this.georeference=null,this.opacity=1}readGeoreference(e){return a.fromJSON(e)}writeGeoreference(e,o,t,n){const i=n?.resources?.pendingOperations,c=()=>{const i=m(this.georeference,this.contentWidth,this.contentHeight);if(i){if("control-points"!==e.type&&s.getLogger(this).warn(`only georeference of type 'control-points' may be persisted. The georeference of type '${e.type}' has been automatically converted.`),4!==i.controlPoints?.length&&n?.messages)return void n.messages.push(new r("property:unsupported","only 'control-points' georeference with 4 control points may be persisted."));o[t]=i.write({},n)}};if("control-points"!==e.type&&!this.loaded&&i)return o[t]={},void i.push(this.load().then(c));c()}get contentWidth(){return 0}get contentHeight(){return 0}toSource(e){const{georeference:r,contentWidth:o,contentHeight:t}=this;if(null==e||null==r||0===o||0===t)return null;const s=r.toSourceNormalized(e);return null==s?null:(s.x*=o,s.y*=t,s)}};e([i(f)],u.prototype,"georeference",void 0),e([c("georeference")],u.prototype,"readGeoreference",null),e([l("georeference")],u.prototype,"writeGeoreference",null),e([i({json:{read:!1,write:!1}})],u.prototype,"opacity",void 0),u=e([p("esri.layers.support.MediaElementBase")],u);export{u as default};