@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 20.6 kB
JavaScript
import{id as e}from"../kernel.js";import t from"../request.js";import i from"../core/Error.js";import{JSONMap as r}from"../core/jsonMap.js";import{isSome as a}from"../core/maybe.js";import{createScreenPoint as n,pt2px as s,px2pt as o}from"../core/screenUtils.js";import{normalize as l,dataComponents as c}from"../core/urlUtils.js";import u from"../geometry/Polygon.js";import{collectLabelingFields as y}from"../layers/support/fieldUtils.js";import{getFloorFilterClause as f}from"../layers/support/floorFilterUtils.js";import{getSizeRangeAtScale as m}from"../renderers/visualVariables/support/visualVariableUtils.js";import{getToken as p}from"./utils.js";import{execute as d}from"./geoprocessor/execute.js";import{submitJob as g}from"./geoprocessor/submitJob.js";import{toJSON as b}from"./support/fileFormat.js";import{toJSON as h}from"./support/layoutTemplate.js";import{getVisibleLayerViews as w,isScreenshotRequired as S,isBingMapsLayer as x,isCSVLayer as v,isBlendLayer as D,applyVisualVariables as I,getContextBoundingBox as L,createPolygonLayer as T,createPolylineLayer as E,createPointLayer as M,createMultipointLayer as O}from"./support/printTaskUtils.js";import V from"./support/PrintTemplate.js";const P={Feet:"ft",Kilometers:"km",Meters:"m",Miles:"mi"},F=new r({esriFeet:"Feet",esriKilometers:"Kilometers",esriMeters:"Meters",esriMiles:"Miles"}),R=new r({esriExecutionTypeSynchronous:"sync",esriExecutionTypeAsynchronous:"async"}),N=new Map;async function J(e,i,r){const a=C(e);let n=N.get(a);return Promise.resolve().then((()=>n?{data:n.gpMetadata}:(n={gpServerUrl:a,is11xService:!1,legendLayerNameMap:{},legendLayers:[]},t(a,{query:{f:"json"}})))).then((e=>(n.gpMetadata=e.data,n.cimVersion=n.gpMetadata.cimVersion,n.is11xService=!!n.cimVersion,N.set(a,n),j(i,n)))).then((t=>{const a=ye(n);let s;const o=e=>"sync"===a?e.results&&e.results[0]&&e.results[0].value:s.fetchResultData("Output_File",null,r).then((e=>e.value));return"async"===a?g(e,t,void 0,r).then((e=>(s=e,e.waitForJobCompletion({interval:i.updateDelay}).then(o)))):d(e,t,void 0,r).then(o)}))}async function U(e){const t=C(e);return ye(N.get(t))}async function j(t,r){r=r||{is11xService:!1,legendLayerNameMap:{},legendLayers:[]};const a=t.template||new V;null==a.showLabels&&(a.showLabels=!0);const n=a.exportOptions;let s;const o=h(a.layout);if(n){if(s={dpi:n.dpi},"map_only"===o.toLowerCase()||""===o){const e=n.width,t=n.height;s.outputSize=null!=e&&null!=t?[e,t]:void 0}}const l=a.layoutOptions;let c;if(l){let e,t;"Miles"===l.scalebarUnit||"Kilometers"===l.scalebarUnit?(e="Kilometers",t="Miles"):"Meters"!==l.scalebarUnit&&"Feet"!==l.scalebarUnit||(e="Meters",t="Feet"),c={titleText:l.titleText,authorText:l.authorText,copyrightText:l.copyrightText,customTextElements:l.customTextElements,elementOverrides:l.elementOverrides,scaleBarOptions:{metricUnit:F.toJSON(e),metricLabel:e?P[e]:void 0,nonMetricUnit:F.toJSON(t),nonMetricLabel:t?P[t]:void 0}}}let u=null;l?.legendLayers&&(u=l.legendLayers.map((e=>{const t=e.layerId;r.legendLayerNameMap[t]=e.title;const i={id:t};return e.subLayerIds&&(i.subLayerIds=e.subLayerIds),i})));const y=await A(t,a,r);if(y.operationalLayers){const e=new RegExp("[\\u4E00-\\u9FFF\\u0E00-\\u0E7F\\u0900-\\u097F\\u3040-\\u309F\\u30A0-\\u30FF\\u31F0-\\u31FF]"),t=/[\u0600-\u06FF]/,a=i=>{const r=i.text,a=i.font,n=a&&a.family&&a.family.toLowerCase();r&&a&&("arial"===n||"arial unicode ms"===n)&&(a.family=e.test(r)?"Arial Unicode MS":"Arial","normal"!==a.style&&t.test(r)&&(a.family="Arial Unicode MS"))},n=()=>{throw new i("print:cim-symbol-unsupported","CIMSymbol is not supported by a print service published from ArcMap")};y.operationalLayers.forEach((e=>{e.featureCollection?.layers?e.featureCollection.layers.forEach((e=>{if(e.layerDefinition?.drawingInfo?.renderer?.symbol){const t=e.layerDefinition.drawingInfo.renderer;"esriTS"===t.symbol.type?a(t.symbol):"CIMSymbolReference"!==t.symbol.type||r.is11xService||n()}e.featureSet?.features&&e.featureSet.features.forEach((e=>{e.symbol&&("esriTS"===e.symbol.type?a(e.symbol):"CIMSymbolReference"!==e.symbol.type||r.is11xService||n())}))})):!r.is11xService&&e.layerDefinition?.drawingInfo?.renderer&&JSON.stringify(e.layerDefinition.drawingInfo.renderer).includes('"type":"CIMSymbolReference"')&&n()}))}t.outSpatialReference&&(y.mapOptions.spatialReference=t.outSpatialReference.toJSON()),Object.assign(y,{exportOptions:s,layoutOptions:c||{}}),Object.assign(y.layoutOptions,{legendOptions:{operationalLayers:null!=u?u:r.legendLayers.slice()}}),r.legendLayers.length=0,N.set(r.gpServerUrl,r);const f={Web_Map_as_JSON:JSON.stringify(y),Format:b(a.format),Layout_Template:o,Layout_Item_ID:void 0};if(a.layoutItem){delete f.Layout_Template;const t=a.layoutItem;await t.load(),"public"!==t.access&&e&&await e.getCredential(r.gpServerUrl),f.Layout_Item_ID=JSON.stringify({id:t.id})}return t.extraParameters&&Object.assign(f,t.extraParameters),f}async function A(e,t,i){const r=e.view;let n=r.spatialReference;const s={operationalLayers:await k(r,t,i)};t.includeTables&&(s.tables=await te(r));let o=i.ssExtent||e.extent||r.extent;if(n&&n.isWrappable&&(o=o.clone()._normalize(!0),n=o.spatialReference),s.mapOptions={extent:o&&o.toJSON(),spatialReference:n&&n.toJSON(),showAttribution:t.attributionVisible},i.ssExtent=null,r.background&&(s.background=r.background.toJSON()),r.rotation&&(s.mapOptions.rotation=-r.rotation),t.scalePreserved&&(s.mapOptions.scale=t.outScale||r.scale),a(r.timeExtent)){const e=a(r.timeExtent.start)?r.timeExtent.start.getTime():null,t=a(r.timeExtent.end)?r.timeExtent.end.getTime():null;s.mapOptions.time=[e,t]}return s}function C(e){let t=e;const i=t.lastIndexOf("/GPServer/");return i>0&&(t=t.slice(0,i+9)),t}async function k(e,t,i){const r=[],a={layerView:null,printTemplate:t,view:e};let n=0;t.scalePreserved&&(n=t.outScale||e.scale);const s=w(e,n);for(const o of s){const e=o.layer;if(!e.loaded||"group"===e?.type)continue;let t;a.layerView=o,t=S(o)?await Z(e,a,i):x(e)?z(e):v(e)?await _(e,a,i):"feature"===e?.type?await q(e,a,i):"geojson"===e?.type?await K(e,a,i):"graphics"===e?.type?await W(e,a,i):"imagery"===e?.type?B(e,i):"imagery-tile"===e?.type?await G(e,a,i):"kml"===e?.type?await Q(e,a,i):"map-image"===e?.type?H(e,a,i):"map-notes"===e?.type?await X(a,i):"open-street-map"===e?.type?Y():"stream"===e?.type?await ee(e,a,i):"tile"===e?.type?ie(e,i):"vector-tile"===e?.type?await re(e,a,i):"web-tile"===e?.type?ae(e):"wms"===e?.type?ne(e):"wmts"===e?.type?se(e):await Z(e,a,i),t&&(Array.isArray(t)?r.push(...t):(t.id=e.id,t.title=i.legendLayerNameMap[e.id]||e.title,t.opacity=e.opacity,t.minScale=e.minScale||0,t.maxScale=e.maxScale||0,D(e)&&e.blendMode&&"normal"!==e.blendMode&&(t.blendMode=e.blendMode),r.push(t)))}if(n&&r.forEach((e=>{e.minScale=0,e.maxScale=0})),e.graphics&&e.graphics.length){const a=await $(null,e.graphics,t,i);a&&r.push(a)}return r}function z(e){return{culture:e.culture,key:e.key,type:"BingMaps"+("aerial"===e.style?"Aerial":"hybrid"===e.style?"Hybrid":"Road")}}async function _(e,t,i){e.legendEnabled&&i.legendLayers.push({id:e.id});const r=t.layerView,a=t.printTemplate;let n;if(!i.is11xService||r.filter){return $(e,await ue(r),a,i)}return n={type:"CSV"},e.write(n,{origin:"web-map"}),delete n.popupInfo,delete n.layerType,n.showLabels=a.showLabels&&e.labelsVisible,n}async function $(e,t,i,r){let a;const n=T(),s=E(),o=M(),l=O(),c=M();if(c.layerDefinition.name="textLayer",delete c.layerDefinition.drawingInfo,e){if("esri.layers.FeatureLayer"===e.declaredClass||"esri.layers.StreamLayer"===e.declaredClass?n.layerDefinition.name=s.layerDefinition.name=o.layerDefinition.name=l.layerDefinition.name=r.legendLayerNameMap[e.id]||e.get("arcgisProps.title")||e.title:"esri.layers.GraphicsLayer"===e.declaredClass&&(t=e.graphics.items),e.renderer){const t=e.renderer.toJSON(),i=n.layerDefinition.drawingInfo;i&&(i.renderer=t);const r=s.layerDefinition.drawingInfo;r&&(r.renderer=t);const a=o.layerDefinition.drawingInfo;a&&(a.renderer=t);const c=l.layerDefinition.drawingInfo;c&&(c.renderer=t)}if(i.showLabels&&e.labelsVisible&&"function"==typeof e.write){const t=e.write({},{origin:"web-map"}).layerDefinition?.drawingInfo?.labelingInfo;if(t){a=!0;const e=n.layerDefinition.drawingInfo;e&&(e.labelingInfo=t);const i=s.layerDefinition.drawingInfo;i&&(i.labelingInfo=t);const r=o.layerDefinition.drawingInfo;r&&(r.labelingInfo=t);const c=l.layerDefinition.drawingInfo;c&&(c.labelingInfo=t)}}}let f;e?.renderer||a||(delete n.layerDefinition.drawingInfo,delete s.layerDefinition.drawingInfo,delete o.layerDefinition.drawingInfo,delete l.layerDefinition.drawingInfo);const m=e?.fieldsIndex,p=e?.renderer;if(m){const t=new Set;a&&await y(t,e),p&&"function"==typeof p.collectRequiredFields&&await p.collectRequiredFields(t,m),f=Array.from(t);const i=m.fields.map((e=>e.toJSON()));n.layerDefinition.fields=i,s.layerDefinition.fields=i,o.layerDefinition.fields=i,l.layerDefinition.fields=i}const d=t&&t.length;let g;for(let y=0;y<d;y++){const a=t[y]||t.getItemAt(y);if(!1===a.visible||!a.geometry)continue;if(g=a.toJSON(),g.hasOwnProperty("popupTemplate")&&delete g.popupTemplate,g.geometry&&g.geometry.z&&delete g.geometry.z,g.symbol&&g.symbol.outline&&"esriCLS"===g.symbol.outline.type&&!r.is11xService)continue;!r.is11xService&&g.symbol&&g.symbol.outline&&g.symbol.outline.color&&g.symbol.outline.color[3]&&(g.symbol.outline.color[3]=255);const m=e&&e.renderer&&("valueExpression"in e.renderer&&e.renderer.valueExpression||"hasVisualVariables"in e.renderer&&e.renderer.hasVisualVariables());if(!g.symbol&&e&&e.renderer&&m&&!r.is11xService){const t=e.renderer,i=await t.getSymbolAsync(a);if(!i)continue;g.symbol=i.toJSON(),"hasVisualVariables"in t&&t.hasVisualVariables()&&I(g.symbol,{renderer:t,graphic:a,symbol:i})}if(g.symbol&&(g.symbol.angle||delete g.symbol.angle,fe(g.symbol)?g.symbol=await le(g.symbol,r):g.symbol.text&&delete g.attributes),(!i||!i.forceFeatureAttributes)&&f?.length){const e={};f.forEach((t=>{g.attributes&&g.attributes.hasOwnProperty(t)&&(e[t]=g.attributes[t])})),g.attributes=e}"polygon"===a.geometry.type?n.featureSet.features.push(g):"polyline"===a.geometry.type?s.featureSet.features.push(g):"point"===a.geometry.type?g.symbol&&g.symbol.text?c.featureSet.features.push(g):o.featureSet.features.push(g):"multipoint"===a.geometry.type?l.featureSet.features.push(g):"extent"===a.geometry.type&&(g.geometry=u.fromExtent(a.geometry).toJSON(),n.featureSet.features.push(g))}const b=[n,s,l,o,c].filter((e=>e.featureSet.features.length>0));for(const u of b){const e=u.featureSet.features.every((e=>e.symbol));!e||i&&i.forceFeatureAttributes||u.featureSet.features.forEach((e=>{delete e.attributes})),e&&delete u.layerDefinition.drawingInfo,u.layerDefinition.drawingInfo&&u.layerDefinition.drawingInfo.renderer&&await ce(u.layerDefinition.drawingInfo.renderer,r)}return b.length?{featureCollection:{layers:b},showLabels:a}:null}async function q(e,t,i){let r;const a=e.renderer,n=parseFloat(i.cimVersion);if("binning"===e.featureReduction?.type||"cluster"===e.featureReduction?.type&&(!i.is11xService||n<2.9)||"pie-chart"===a?.type||"dot-density"===a?.type&&(!i.is11xService||n<2.6))return Z(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});const s=t.layerView,{printTemplate:o,view:l}=t,c=a&&("valueExpression"in a&&a.valueExpression||"hasVisualVariables"in a&&a.hasVisualVariables()),u="feature-layer"!==e.source?.type&&"ogc-feature"!==e.source?.type;if(!i.is11xService&&c||s.filter||u||!a||"field"in a&&null!=a.field&&("string"!=typeof a.field||!e.getField(a.field))){const t=await ue(s);r=await $(e,t,o,i)}else{if(r={id:(y=e.write()).id,title:y.title,opacity:y.opacity,minScale:y.minScale,maxScale:y.maxScale,url:y.url,layerType:y.layerType,customParameters:y.customParameters,layerDefinition:y.layerDefinition},r.showLabels=o.showLabels&&e.labelsVisible,oe(r,e),r.layerDefinition?.drawingInfo?.renderer&&(delete r.layerDefinition.minScale,delete r.layerDefinition.maxScale,await ce(r.layerDefinition.drawingInfo.renderer,i),"visualVariables"in a&&a.visualVariables&&a.visualVariables[0])){const e=a.visualVariables[0];if("size"===e.type&&e.maxSize&&"number"!=typeof e.maxSize&&e.minSize&&"number"!=typeof e.minSize){const t=m(e,l.scale);r.layerDefinition.drawingInfo.renderer.visualVariables[0].minSize=t.minSize,r.layerDefinition.drawingInfo.renderer.visualVariables[0].maxSize=t.maxSize}}const t=f(s);t&&(r.layerDefinition||(r.layerDefinition={}),r.layerDefinition.definitionExpression=r.layerDefinition.definitionExpression?`(${r.layerDefinition.definitionExpression}) AND (${t})`:t)}var y;return r}async function K(e,t,i){if("binning"===e.featureReduction?.type||"cluster"===e.featureReduction?.type)return Z(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});return $(e,await ue(t.layerView),t.printTemplate,i)}async function W(e,{printTemplate:t},i){return $(e,null,t,i)}function B(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={layerType:(r=e.write()).layerType,customParameters:r.customParameters};var r;if(i.bandIds=e.bandIds,i.compressionQuality=e.compressionQuality,i.format=e.format,i.interpolation=e.interpolation,(e.mosaicRule||e.definitionExpression)&&(i.mosaicRule=e.exportImageServiceParameters.mosaicRule.toJSON()),e.renderingRule||e.renderer)if(t.is11xService)e.renderingRule&&(i.renderingRule=e.renderingRule.toJSON()),e.renderer&&(i.layerDefinition=i.layerDefinition||{},i.layerDefinition.drawingInfo=i.layerDefinition.drawingInfo||{},i.layerDefinition.drawingInfo.renderer=e.renderer.toJSON());else{const t=e.exportImageServiceParameters.combineRendererWithRenderingRule();t&&(i.renderingRule=t.toJSON())}return oe(i,e),i}async function G(e,t,i){if("flow"===e.renderer?.type)return Z(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});const r={bandIds:(a=e.write()||{}).bandIds,customParameters:a.customParameters,interpolation:a.interpolation,layerDefinition:a.layerDefinition};var a;return r.layerType="ArcGISImageServiceLayer",oe(r,e),r}async function Q(e,t,i){const r=t.printTemplate;if(i.is11xService){const t={type:"kml"};return e.write(t,{origin:"web-map"}),delete t.layerType,t.url=l(e.url),t}{const a=[],n=t.layerView;n.allVisibleMapImages.forEach(((t,i)=>{const r={id:`${e.id}_image${i}`,type:"image",title:e.id,minScale:e.minScale||0,maxScale:e.maxScale||0,opacity:e.opacity,extent:t.extent};"data:image/png;base64,"===t.href.substr(0,22)?r.imageData=t.href.substr(22):r.url=t.href,a.push(r)}));const s=[...n.allVisiblePoints.items,...n.allVisiblePolylines.items,...n.allVisiblePolygons.items],o={id:e.id,...await $(null,s,r,i)};return a.push(o),a}}function H(e,{view:t},i){let r;const a={id:e.id,subLayerIds:[]};let n=[];const s=t.scale,o=e=>{const t=0===s,i=0===e.minScale||s<=e.minScale,r=0===e.maxScale||s>=e.maxScale;if(e.visible&&(t||i&&r))if(e.sublayers)e.sublayers.forEach(o);else{const t=e.toExportImageJSON(),i={id:e.id,name:e.title,layerDefinition:{drawingInfo:t.drawingInfo,definitionExpression:t.definitionExpression,source:t.source}};n.unshift(i),a.subLayerIds.push(e.id)}};var l;return e.sublayers&&e.sublayers.forEach(o),n.length&&(n=n.map((({id:e,name:t,layerDefinition:i})=>({id:e,name:t,layerDefinition:i}))),r={layerType:(l=e.write()).layerType,customParameters:l.customParameters},r.layers=n,r.visibleLayers=e.capabilities?.exportMap?.supportsDynamicLayers?void 0:a.subLayerIds,oe(r,e),e.legendEnabled&&i.legendLayers.push(a)),r}async function X({layerView:e,printTemplate:t},i){const r=[],n=e.layer;if(a(n.featureCollections))for(const a of n.featureCollections){const e=await $(a,a.source,t,i);e&&r.push(...e.featureCollection.layers)}else if(a(n.sublayers))for(const a of n.sublayers){const e=await $(null,a.graphics,t,i);e&&r.push(...e.featureCollection.layers)}return{featureCollection:{layers:r}}}function Y(){return{type:"OpenStreetMap"}}async function Z(e,{printTemplate:t,view:i},r){const a={type:"image"},s={format:"png",ignoreBackground:!0,layers:[e],rotation:0},o=r.ssExtent||i.extent.clone();let l=96,u=!0,y=!0;if(t.exportOptions){const e=t.exportOptions;null!=e.dpi&&e.dpi>0&&(l=e.dpi),null!=e.width&&e.width>0&&(u=e.width%2==i.width%2),null!=e.height&&e.height>0&&(y=e.height%2==i.height%2)}if("map-only"===t.layout&&t.scalePreserved&&(!t.outScale||t.outScale===i.scale)&&96===l&&(!u||!y)&&(s.area={x:0,y:0,width:i.width,height:i.height},u||(s.area.width-=1),y||(s.area.height-=1),!r.ssExtent)){const e=i.toMap(n(s.area.width,s.area.height));o.ymin=e.y,o.xmax=e.x,r.ssExtent=o}a.extent=o.clone()._normalize(!0).toJSON();const f=await i.takeScreenshot(s);return a.imageData=c(f.dataUrl)?.data,a}async function ee(e,{layerView:t,printTemplate:i},r){e.legendEnabled&&r.legendLayers.push({id:e.id});return $(e,await ue(t),i,r)}async function te(e){const t=[],i=[];for(const a of e.map.allTables)"feature"!==a.type||a.loaded||i.push(a.load());i.length&&await Promise.allSettled(i);for(const a of e.map.allTables)if("feature"===a.type&&a.loaded&&a.isTable&&"feature-layer"===a.source?.type){const e={id:(r=a.write()).id,title:r.title,customParameters:r.customParameters,layerDefinition:{definitionExpression:r.layerDefinition?.definitionExpression}};oe(e,a),t.push(e)}var r;return t.length?t:void 0}function ie(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={layerType:(r=e.write()).layerType,customParameters:r.customParameters};var r;return oe(i,e),i}async function re(e,t,i){if(i.is11xService&&e.serviceUrl&&e.styleUrl){const t=p(e.styleUrl,e.apiKey),r=p(e.serviceUrl,e.apiKey);if(!t&&!r||"2.1.0"!==i.cimVersion){const i={type:"VectorTileLayer"};return i.styleUrl=l(e.styleUrl),i.token=t,r!==t&&(i.additionalTokens=[{url:e.serviceUrl,token:r}]),i}}return Z(e,t,i)}function ae(e){const t=e.urlTemplate?.replace(/\${/g,"{"),i={type:"WebTiledLayer",urlTemplate:t,credits:e.copyright};return e.subDomains&&e.subDomains.length>0&&(i.subDomains=e.subDomains),i}function ne(e){let t;const i=[],r=e=>{e.visible&&(e.sublayers?e.sublayers.forEach(r):e.name&&i.unshift(e.name))};return e.sublayers&&e.sublayers.forEach(r),i.length&&(t={type:"wms",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,transparentBackground:e.imageTransparency,visibleLayers:i,url:l(e.url),version:e.version}),t}function se(e){const t=e.activeLayer;return{type:"wmts",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,format:t.imageFormat,layer:t.id,style:t.styleId,tileMatrixSet:t.tileMatrixSetId,url:l(e.url)}}function oe(e,t){t.url&&(e.url=l(e.url||t.url),e.token=p(e.url,t.apiKey))}async function le(e,i){i.canvas||(i.canvas=document.createElement("canvas"));const r=1024;i.canvas.width=r,i.canvas.height=r;const a=i.canvas.getContext("2d");let n,l;if(e.path){const t=new Path2D(e.path);t.closePath(),a.fillStyle=Array.isArray(e.color)?`rgba(${e.color[0]},${e.color[1]},${e.color[2]},${e.color[3]/255})`:"rgb(0,0,0)",a.fill(t);const i=L(a);if(!i)return null;a.clearRect(0,0,r,r);const o=s(e.size)/Math.max(i.width,i.height);a.scale(o,o);const c=r/o,u=c/2-i.width/2-i.x,y=c/2-i.height/2-i.y;if(a.translate(u,y),Array.isArray(e.color)&&a.fill(t),e.outline?.width&&Array.isArray(e.outline.color)){const r=e.outline;a.lineWidth=s(r.width)/o,a.lineJoin="round",a.strokeStyle=`rgba(${r.color[0]},${r.color[1]},${r.color[2]},${r.color[3]/255})`,a.stroke(t),i.width+=a.lineWidth,i.height+=a.lineWidth}i.width*=o,i.height*=o;const f=a.getImageData(r/2-i.width/2,r/2-i.height/2,Math.ceil(i.width),Math.ceil(i.height));n=f.width,l=f.height,a.canvas.width=n,a.canvas.height=l,a.putImageData(f,0,0)}else{const i="image/svg+xml"===e.contentType?"data:image/svg+xml;base64,"+e.imageData:e.url,r=(await t(i,{responseType:"image"})).data;n=s(e.width),l=s(e.height),a.canvas.width=n,a.canvas.height=l,a.drawImage(r,0,0,a.canvas.width,a.canvas.height)}return{type:"esriPMS",imageData:a.canvas.toDataURL("image/png").substr(22),angle:e.angle,contentType:"image/png",height:o(l),width:o(n),xoffset:e.xoffset,yoffset:e.yoffset}}async function ce(e,t){const i=e.type;if("simple"===i&&fe(e.symbol))e.symbol=await le(e.symbol,t);else if("uniqueValue"===i||"classBreaks"===i){fe(e.defaultSymbol)&&(e.defaultSymbol=await le(e.defaultSymbol,t));const r=e["uniqueValue"===i?"uniqueValueInfos":"classBreakInfos"];if(r)for(const e of r)fe(e.symbol)&&(e.symbol=await le(e.symbol,t))}}async function ue(e){return e.queryFeatures(e.createQuery()).then((e=>e.features))}function ye(e){return e.gpMetadata&&e.gpMetadata.executionType?R.fromJSON(e.gpMetadata.executionType):"sync"}function fe(e){return e&&(e.path||"image/svg+xml"===e.contentType||e.url&&e.url.endsWith(".svg"))}export{J as execute,j as getGpPrintParams,C as getGpServerUrl,U as getMode,N as printCacheMap};