You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
11 lines
3.8 KiB
11 lines
3.8 KiB
// All material copyright Esri, All Rights Reserved, unless otherwise specified. |
|
// See https://js.arcgis.com/4.30/esri/copyright.txt for details. |
|
//>>built |
|
define("../../chunks/tslib.es6 ../../request ../../core/Error ../../core/imageUtils ../../core/urlUtils ../../core/uuid ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/reader ../../core/accessorSupport/decorators/subclass ../../core/accessorSupport/decorators/writer ./MediaElementBase ./mediaUtils ../../portal/support/resourceExtension ../../chunks/persistableUrlUtils".split(" "),function(f,r,t,u,k,v,l,e,G, |
|
H,w,x,y,z,A,B,m){function C(a){return"string"===typeof a&&!k.isDataProtocol(a)&&!k.isBlobProtocol(a)}async function D(a){return"string"===typeof a?k.isDataProtocol(a)?k.dataToBlob(a):(await r(a,{responseType:"blob"})).data:new Promise(c=>{if(a instanceof HTMLCanvasElement)var b=a;else{b=a instanceof HTMLImageElement?a.naturalWidth:a.width;var d=a instanceof HTMLImageElement?a.naturalHeight:a.height,g=document.createElement("canvas"),h=g.getContext("2d");g.width=b;g.height=d;a instanceof HTMLImageElement? |
|
h.drawImage(a,0,0,a.width,a.height):a instanceof ImageData&&h.putImageData(a,0,0);b=g}return b.toBlob(c)})}function E(a,c){const b=v.generateUUID();a=`${k.join("media",b)}.${B.getResourceContentExtension({type:"blob",blob:a})}`;return c.resourceFromPath(a)}e=class extends z{constructor(a){super(a);this.image=this.content=this.animationOptions=null;this.type="image";this.image=null}load(){const a=this.image;if("string"===typeof a){var c=u.getImageData(a).then(b=>{this._set("content",b)});this.addResolvingPromise(c)}else a instanceof |
|
HTMLImageElement?(c=a.decode().then(()=>{this._set("content",a)}),this.addResolvingPromise(c)):a?this._set("content",a):this.addResolvingPromise(Promise.reject(new t("image-element:invalid-image-type","Invalid image type",{image:a})));return Promise.resolve(this)}get contentWidth(){return null==this.content?0:this.content instanceof HTMLImageElement?this.content.naturalWidth:this.content.width}get contentHeight(){return null==this.content?0:this.content instanceof HTMLImageElement?this.content.naturalHeight: |
|
this.content.height}readImage(a,c,b){return m.fromJSON(c.url,b)}writeImage(a,c,b,d){if(null!=a){var g=d?.portalItem,h=d?.resources;if(g&&h){var n=C(a)?a:null;if(n){if(null==m.itemIdFromResourceUrl(n)){c[b]=n;return}d=m.toJSON(n,{...d,verifyItemRelativeUrls:d?.verifyItemRelativeUrls?{writtenUrls:d.verifyItemRelativeUrls.writtenUrls,rootPath:void 0}:void 0},m.MarkKeep.NO);if(g&&d&&!k.isAbsolute(d)){h.toKeep.push({resource:g.resourceFromPath(d),compress:!1});c[b]=d;return}}c[b]="\x3cpending\x3e";h.pendingOperations.push(D(a).then(p=> |
|
{const q=E(p,g);c[b]=q.itemRelativeUrl;h.toAdd.push({resource:q,content:{type:"blob",blob:p},compress:!1,finish:F=>{this.image=F.url}})}))}else"string"===typeof a&&(c[b]=m.toJSON(a,d))}}write(a,c){a=super.write(a,c);"mediaType"in a&&!a.url&&delete a.mediaType;return a}};f.__decorate([l.property()],e.prototype,"animationOptions",void 0);f.__decorate([l.property({readOnly:!0})],e.prototype,"content",void 0);f.__decorate([l.property({readOnly:!0})],e.prototype,"contentWidth",null);f.__decorate([l.property({readOnly:!0})], |
|
e.prototype,"contentHeight",null);f.__decorate([l.property({json:{name:"url",type:String,write:{overridePolicy(a,c,b){return{enabled:!A.isWritingLayerFromItemToWebDocument(b?.layer,b?.origin)}}}}})],e.prototype,"image",void 0);f.__decorate([w.reader("image",["url"])],e.prototype,"readImage",null);f.__decorate([y.writer("image")],e.prototype,"writeImage",null);f.__decorate([l.property({readOnly:!0,json:{read:!1,write:{target:"mediaType",ignoreOrigin:!0}}})],e.prototype,"type",void 0);return e=f.__decorate([x.subclass("esri.layers.support.ImageElement")], |
|
e)}); |