@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 17.1 kB
JavaScript
;(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[7136,8628],{17136:(e,t,r)=>{r.d(t,{O7:()=>I,el:()=>v});var a=r(92602),n=r(49186),s=r(53966),i=r(39829),o=r(82799),l=r(80754),u=r(21325),d=r(28735),p=r(78888),c=r(65864),f=r(2272),h=r(84952),y=r(92300);const g=()=>s.A.getLogger("esri.geometry.support.normalizeUtils");function m(e){return"polygon"===e[0].type}function A(e){return"polyline"===e[0].type}function b(e,t,r){if(t){const t=function(e,t){if(!(e instanceof o.A||e instanceof i.A)){const e="straightLineDensify: the input geometry is neither polyline nor polygon";throw g().error(e),new n.A(e)}const r=(0,l.r8)(e),a=[];for(const e of r){const r=[];a.push(r),r.push([e[0][0],e[0][1]]);for(let a=0;a<e.length-1;a++){const n=e[a][0],s=e[a][1],i=e[a+1][0],o=e[a+1][1],l=Math.sqrt((i-n)*(i-n)+(o-s)*(o-s)),u=(o-s)/l,d=(i-n)/l,p=l/t;if(p>1){for(let e=1;e<=p-1;e++){const a=e*t,i=d*a+n,o=u*a+s;r.push([i,o])}const e=(l+Math.floor(p-1)*t)/2,a=d*e+n,i=u*e+s;r.push([a,i])}r.push([i,o])}}return function(e){return"polygon"===e.type}(e)?new i.A({rings:a,spatialReference:e.spatialReference}):new o.A({paths:a,spatialReference:e.spatialReference})}(e,1e6);e=(0,d.ci)(t,!0)}return r&&(e=(0,l.kS)(e,r)),e}function w(e,t,r){if(Array.isArray(e)){const a=e[0];if(a>t){const r=(0,l.kd)(a,t);e[0]=a+r*(-2*t)}else if(a<r){const t=(0,l.kd)(a,r);e[0]=a+t*(-2*r)}}else{const a=e.x;if(a>t){const r=(0,l.kd)(a,t);e=e.clone().offset(r*(-2*t),0)}else if(a<r){const t=(0,l.kd)(a,r);e=e.clone().offset(t*(-2*r),0)}}return e}function F(e,t){let r=-1;for(let a=0;a<t.cutIndexes.length;a++){const n=t.cutIndexes[a],s=t.geometries[a],i=(0,l.r8)(s);for(let e=0;e<i.length;e++){const t=i[e];t.some((r=>{if(r[0]<180)return!0;{let r=0;for(let e=0;e<t.length;e++){const a=t[e][0];r=a>r?a:r}r=Number(r.toFixed(9));const a=-360*(0,l.kd)(r,180);for(let r=0;r<t.length;r++){const t=s.getPoint(e,r);s.setPoint(e,r,t.clone().offset(a,0))}return!0}}))}if(n===r){if(m(e))for(const t of(0,l.r8)(s))e[n]=e[n].addRing(t);else if(A(e))for(const t of(0,l.r8)(s))e[n]=e[n].addPath(t)}else r=n,e[n]=s}return e}async function v(e,t,r){if(!Array.isArray(e))return v([e],t);t&&"string"!=typeof t&&g().warn("normalizeCentralMeridian()","The url object is deprecated, use the url string instead");const n="string"==typeof t?t:t?.url??a.A.geometryServiceUrl;let s,m,A,I,S,R,$,E,k=0;const O=[],x=[];for(const t of e)if(null!=t)if(s||(s=t.spatialReference,m=(0,u.Vp)(s),A=s.isWebMercator,R=A?102100:4326,I=l.j7[R].maxX,S=l.j7[R].minX,$=l.j7[R].plus180Line,E=l.j7[R].minus180Line),m)if("mesh"===t.type)x.push(t);else if("point"===t.type)x.push(w(t.clone(),I,S));else if("multipoint"===t.type){const e=t.clone();e.points=e.points.map((e=>w(e,I,S))),x.push(e)}else if("extent"===t.type){const e=t.clone()._normalize(!1,!1,m);x.push(e.rings?new i.A(e):e)}else if(t.extent){const e=t.extent,r=(0,l.kd)(e.xmin,S)*(2*I);let a=0===r?t.clone():(0,l.kS)(t.clone(),r);e.offset(r,0);let{xmin:n,xmax:s}=e;n=Number(n.toFixed(9)),s=Number(s.toFixed(9)),e.intersects($)&&s!==I?(k=s>k?s:k,a=b(a,A),O.push(a),x.push("cut")):e.intersects(E)&&n!==S?(k=s*(2*I)>k?s*(2*I):k,a=b(a,A,360),O.push(a),x.push("cut")):x.push(a)}else x.push(t.clone());else x.push(t);else x.push(t);let M=(0,l.kd)(k,I),L=-90;const j=M,T=new o.A;for(;M>0;){const e=360*M-180;T.addPath([[e,L],[e,-1*L]]),L*=-1,M--}if(O.length>0&&j>0){const t=F(O,await async function(e,t,r,a){const n=(0,f.Dl)(e),s=t[0].spatialReference,i={...a,responseType:"json",query:{...n.query,f:"json",sr:(0,u.YX)(s),target:JSON.stringify({geometryType:(0,c.$B)(t[0]),geometries:t}),cutter:JSON.stringify(r)}},o=await(0,p.A)(n.path+"/cut",i),{cutIndexes:l,geometries:d=[]}=o.data;return{cutIndexes:l,geometries:d.map((e=>{const t=(0,c.rS)(e);return t.spatialReference=s,t}))}}(n,O,T,r)),a=[],s=[];for(let r=0;r<x.length;r++){const n=x[r];if("cut"!==n)s.push(n);else{const n=t.shift(),i=e[r];null!=i&&"polygon"===i.type&&i.rings&&i.rings.length>1&&n.rings.length>=i.rings.length?(a.push(n),s.push("simplify")):s.push(A?(0,d.Gh)(n):n)}}if(!a.length)return s;const i=await async function(e,t,r){const a="string"==typeof e?(0,h.An)(e):e,n=t[0].spatialReference,s=(0,c.$B)(t[0]),i={...r,query:{...a.query,f:"json",sr:(0,u.YX)(n),geometries:JSON.stringify((0,y.X)(t))}},{data:o}=await(0,p.A)(a.path+"/simplify",i);return(0,y.V)(o.geometries,s,n)}(n,a,r),o=[];for(let e=0;e<s.length;e++){const t=s[e];"simplify"!==t?o.push(t):o.push(A?(0,d.Gh)(i.shift()):i.shift())}return o}const B=[];for(let e=0;e<x.length;e++){const t=x[e];if("cut"!==t)B.push(t);else{const e=O.shift();B.push(!0===A?(0,d.Gh)(e):e)}}return B}function I(e,t,r){const a=(0,u.Vp)(r);if(null==a)return e;const[n,s]=a.valid,i=2*s;let o=0,l=0;t>s?o=Math.ceil(Math.abs(t-s)/i):t<n&&(o=-Math.ceil(Math.abs(t-n)/i)),e>s?l=Math.ceil(Math.abs(e-s)/i):e<n&&(l=-Math.ceil(Math.abs(e-n)/i));let d=e+(o-l)*i;const p=d-t;return p>s?d-=i:p<n&&(d+=i),d}},80754:(e,t,r)=>{r.d(t,{j7:()=>i,kS:()=>l,kd:()=>o,r8:()=>u});var a=r(82799),n=r(16930),s=r(65864);const i={102100:{maxX:20037508.342788905,minX:-20037508.342788905,plus180Line:new a.A({paths:[[[20037508.342788905,-20037508.342788905],[20037508.342788905,20037508.342788905]]],spatialReference:n.A.WebMercator}),minus180Line:new a.A({paths:[[[-20037508.342788905,-20037508.342788905],[-20037508.342788905,20037508.342788905]]],spatialReference:n.A.WebMercator})},4326:{maxX:180,minX:-180,plus180Line:new a.A({paths:[[[180,-180],[180,180]]],spatialReference:n.A.WGS84}),minus180Line:new a.A({paths:[[[-180,-180],[-180,180]]],spatialReference:n.A.WGS84})}};function o(e,t){return Math.ceil((e-t)/(2*t))}function l(e,t){const r=u(e);for(const e of r)for(const r of e)r[0]+=t;return e}function u(e){return(0,s.Bi)(e)?e.rings:e.paths}},78628:(e,t,r)=>{r.d(t,{applyEdits:()=>v,r3:()=>b,uploadAssets:()=>O,zp:()=>F});var a=r(52106),n=r(5503),s=r(49186),i=r(4718),o=r(53966),l=r(74887),u=r(84952),d=r(13069),p=r(17136),c=r(21325),f=r(47685),h=r(30524),y=r(20557),g=r(83531);function m(e){return null!=e?.applyEdits}function A(e){return"object"==typeof e&&null!=e&&"objectId"in e&&!!e.objectId}function b(e){return e.every(A)}function w(e){return"object"==typeof e&&null!=e&&"globalId"in e&&!!e.globalId}function F(e){return e.every(w)}async function v(e,t,r,a={}){let u;const p="gdbVersion"in e?e.gdbVersion:null,c=a.gdbVersion??p;if((0,f.Mk)(e)&&e.url)u=(0,f.Zk)(e.url,e.layerId,c,"original-and-current-features"===a.returnServiceEditsOption);else{u=(0,l.Tw)(),u.promise.then((t=>{(t.addedFeatures.length||t.updatedFeatures.length||t.deletedFeatures.length||t.addedAttachments.length||t.updatedAttachments.length||t.deletedAttachments.length)&&e.emit("edits",t)}));const t={result:u.promise};e.emit("apply-edits",t)}try{const{results:l,edits:p}=await async function(e,t,r,a){if(await e.load(),!m(t))throw new s.A(`${e.type}-layer:no-editing-support`,"Layer source does not support applyEdits capability",{layer:e});if(!(0,g.tk)(e))throw new s.A(`${e.type}-layer:editing-disabled`,"Editing is disabled for layer",{layer:e});const{edits:i,options:l}=await async function(e,t,r){const a=(0,g.BR)(e),i=t&&(t.addFeatures||t.updateFeatures||t.deleteFeatures),l=t&&(t.addAttachments||t.updateAttachments||t.deleteAttachments),u=null!=e.infoFor3D;if(function(e,t,r,a,n,i){if(!e||!a&&!n)throw new s.A(`${i}:missing-parameters`,"'addFeatures', 'updateFeatures', 'deleteFeatures', 'addAttachments', 'updateAttachments' or 'deleteAttachments' parameter is required");if(!t.editing.supportsGlobalId&&r?.globalIdUsed&&!r.usingFeatureServiceEndpoint)throw new s.A(`${i}:invalid-parameter`,"This layer does not support 'globalIdUsed' parameter. See: 'capabilities.editing.supportsGlobalId'");if(!t.editing.supportsGlobalId&&n)throw new s.A(`${i}:invalid-parameter`,"'addAttachments', 'updateAttachments' and 'deleteAttachments' are applicable only if the layer supports global ids. See: 'capabilities.editing.supportsGlobalId'");if(!r?.globalIdUsed&&n)throw new s.A(`${i}:invalid-parameter`,"When 'addAttachments', 'updateAttachments' or 'deleteAttachments' is specified, globalIdUsed should be set to true")}(t,a,r,!!i,!!l,`${e.type}-layer`),!a.data.isVersioned&&r?.gdbVersion)throw new s.A(`${e.type}-layer:invalid-parameter`,"'gdbVersion' is applicable only if the layer supports versioned data. See: 'capabilities.data.isVersioned'");if(!a.editing.supportsRollbackOnFailure&&r?.rollbackOnFailureEnabled)throw new s.A(`${e.type}-layer:invalid-parameter`,"This layer does not support 'rollbackOnFailureEnabled' parameter. See: 'capabilities.editing.supportsRollbackOnFailure'");const p={...r};if(null!=p.rollbackOnFailureEnabled||a.editing.supportsRollbackOnFailure||(p.rollbackOnFailureEnabled=!0),p.rollbackOnFailureEnabled||"original-and-current-features"!==p.returnServiceEditsOption||(!1===p.rollbackOnFailureEnabled&&o.A.getLogger("esri.layers.graphics.editingSupport").warn(`${e.type}-layer:invalid-parameter`,"'original-and-current-features' is valid for 'returnServiceEditsOption' only when 'rollBackOnFailure' is true, but 'rollBackOnFailure' was set to false. 'rollBackOnFailure' has been overwritten and set to true."),p.rollbackOnFailureEnabled=!0),!a.editing.supportsReturnServiceEditsInSourceSpatialReference&&p.returnServiceEditsInSourceSR)throw new s.A(`${e.type}-layer:invalid-parameter`,"This layer does not support 'returnServiceEditsInSourceSR' parameter. See: 'capabilities.editing.supportsReturnServiceEditsInSourceSpatialReference'");if(p.returnServiceEditsInSourceSR&&"original-and-current-features"!==p.returnServiceEditsOption)throw new s.A(`${e.type}-layer:invalid-parameter`,"'returnServiceEditsInSourceSR' is valid only when 'returnServiceEditsOption' is set to 'original-and-current-features'");const c=function(e,t,r){const a=function(e){return{addFeatures:Array.from(e?.addFeatures??[]),updateFeatures:Array.from(e?.updateFeatures??[]),deleteFeatures:e&&n.A.isCollection(e.deleteFeatures)?e.deleteFeatures.toArray():e.deleteFeatures||[],addAttachments:e.addAttachments||[],updateAttachments:e.updateAttachments||[],deleteAttachments:e.deleteAttachments||[]}}(e);if(a.addFeatures?.length&&!t.operations.supportsAdd)throw new s.A(`${r}:unsupported-operation`,"Layer does not support adding features.");if(a.updateFeatures?.length&&!t.operations.supportsUpdate)throw new s.A(`${r}:unsupported-operation`,"Layer does not support updating features.");if(a.deleteFeatures?.length&&!t.operations.supportsDelete)throw new s.A(`${r}:unsupported-operation`,"Layer does not support deleting features.");return a.addFeatures=a.addFeatures.map(E),a.updateFeatures=a.updateFeatures.map(E),a.addAssetFeatures=[],a}(t,a,`${e.type}-layer`),f=r?.globalIdUsed||u,h=e.fields.filter((e=>"big-integer"===e.type||"oid"===e.type&&(e.length||0)>=8));if(f){const{globalIdField:t}=e;if(null==t)throw new s.A(`${e.type}-layer:invalid-parameter`,"Layer does not specify a global id field.");c.addFeatures.forEach((e=>function(e,t){const{attributes:r}=e;null==r[t]&&(r[t]=(0,d.yS)())}(e,t)))}return c.addFeatures.forEach((t=>function(e,t,r,a){I(e,t,r,a),S(e,t)}(t,e,f,h))),c.updateFeatures.forEach((t=>function(e,t,r,a){I(e,t,r,a),S(e,t);const n=(0,g.BR)(t);if("geometry"in e&&null!=e.geometry&&!n?.editing.supportsGeometryUpdate)throw new s.A(`${t.type}-layer:unsupported-operation`,"Layer does not support geometry updates.")}(t,e,f,h))),c.deleteFeatures.forEach((t=>function(e,t,r,a){I(e,t,r,a)}(t,e,f,h))),c.addAttachments.forEach((t=>R(t,e))),c.updateAttachments.forEach((t=>R(t,e))),u&&await async function(e,t){const{infoFor3D:r}=t;if(null==r)return;if(!(0,y.JQ)(r))throw new s.A(`${t.type}-layer:binary-gltf-asset-not-supported`,"3DObjectFeatureLayer requires binary glTF (.glb) support for updating mesh geometry.");e.addAssetFeatures??=[];const{addAssetFeatures:a}=e;for(const t of e.addFeatures??[])k(t)&&a.push(t);for(const t of e.updateFeatures??[])k(t)&&a.push(t)}(c,e),{edits:await $(c),options:p}}(e,r,a);return i.addFeatures?.length||i.updateFeatures?.length||i.deleteFeatures?.length||i.addAttachments?.length||i.updateAttachments?.length||i.deleteAttachments?.length?{edits:i,results:await t.applyEdits(i,l)}:{edits:i,results:{addFeatureResults:[],updateFeatureResults:[],deleteFeatureResults:[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]}}}(e,t,r,a),c=e=>e.filter((e=>!e.error)).map(i.o8),f={edits:p,addedFeatures:c(l.addFeatureResults),updatedFeatures:c(l.updateFeatureResults),deletedFeatures:c(l.deleteFeatureResults),addedAttachments:c(l.addAttachmentResults),updatedAttachments:c(l.updateAttachmentResults),deletedAttachments:c(l.deleteAttachmentResults),exceededTransferLimit:!1,historicMoment:l.editMoment?new Date(l.editMoment):null,globalIdToObjectId:a.globalIdToObjectId};return l.editedFeatureResults?.length&&(f.editedFeatures=l.editedFeatureResults),u.resolve(f),l}catch(e){throw u.reject(e),e}}function I(e,t,r,a){if(r){if("attributes"in e&&!e.attributes[t.globalIdField])throw new s.A(`${t.type}-layer:invalid-parameter`,`Feature should have '${t.globalIdField}' when 'globalIdUsed' is true`);if(!("attributes"in e)&&!e.globalId)throw new s.A(`${t.type}-layer:invalid-parameter`,"`'globalId' of the feature should be passed when 'globalIdUsed' is true")}if(a.length&&"attributes"in e)for(const r of a){const a=e.attributes[r.name];if(void 0!==a&&!(0,h.OG)(r,a))throw new s.A(`${t.type}-layer:invalid-parameter`,`Big-integer field '${r.name}' of the feature must be less than ${Number.MAX_SAFE_INTEGER}`,{feature:e})}if("geometry"in e&&null!=e.geometry){if(e.geometry.hasZ&&!1===t.capabilities?.data.supportsZ)throw new s.A(`${t.type}-layer:z-unsupported`,"Layer does not support z values while feature has z values.");if(e.geometry.hasM&&!1===t.capabilities?.data.supportsM)throw new s.A(`${t.type}-layer:m-unsupported`,"Layer does not support m values while feature has m values.")}}function S(e,t){if("geometry"in e&&"mesh"===e.geometry?.type&&null!=t.infoFor3D&&null!=t.spatialReference){const{geometry:r}=e,{spatialReference:a,vertexSpace:n}=r,i=t.spatialReference,o="local"===n.type,l=(0,c.EA)(i),u=(0,c.aI)(i,a),d=u||(0,c.oT)(i)&&((0,c.oT)(a)||(0,c.K8)(a));if(!(o&&l&&d||!o&&!l&&u))throw new s.A(`${t.type}-layer:mesh-unsupported`,`Uploading a mesh with a ${n.type} vertex space and a spatial reference wkid:${a.wkid} to a layer with a spatial reference wkid:${i.wkid} is not supported.`)}}function R(e,t){const{feature:r,attachment:a}=e;if(!r||"attributes"in r&&!r.attributes[t.globalIdField])throw new s.A(`${t.type}-layer:invalid-parameter`,"Attachment should have reference to a feature with 'globalId'");if(!("attributes"in r)&&!r.globalId)throw new s.A(`${t.type}-layer:invalid-parameter`,"Attachment should have reference to 'globalId' of the parent feature");if(!a.globalId)throw new s.A(`${t.type}-layer:invalid-parameter`,"Attachment should have 'globalId'");if(!a.data&&!a.uploadId)throw new s.A(`${t.type}-layer:invalid-parameter`,"Attachment should have 'data' or 'uploadId'");if(!(a.data instanceof File&&a.data.name||a.name))throw new s.A(`${t.type}-layer:invalid-parameter`,"'name' is required when attachment is specified as Base64 encoded string using 'data'");if(!t.capabilities?.editing.supportsUploadWithItemId&&a.uploadId)throw new s.A(`${t.type}-layer:invalid-parameter`,"This layer does not support 'uploadId' parameter. See: 'capabilities.editing.supportsUploadWithItemId'");if("string"==typeof a.data){const e=(0,u.r$)(a.data);if(e&&!e.isBase64)throw new s.A(`${t.type}-layer:invalid-parameter`,"Attachment 'data' should be a Blob, File or Base64 encoded string")}}async function $(e){const t=e.addFeatures??[],r=e.updateFeatures??[],a=t.concat(r).map((e=>e.geometry)),n=await(0,p.el)(a),s=t.length,i=r.length;return n.slice(0,s).forEach(((e,r)=>t[r].geometry=e)),n.slice(s,s+i).forEach(((e,t)=>r[t].geometry=e)),e}function E(e){const t=new a.A;return e.attributes||(e.attributes={}),t.geometry=e.geometry,t.attributes=e.attributes,t}function k(e){return"mesh"===e?.geometry?.type}function O(e,t,r,a){if(!m(t))throw new s.A(`${e.type}-layer:no-editing-support`,"Layer source does not support applyEdits capability",{layer:e});if(!t.uploadAssets)throw new s.A(`${e.type}-layer:no-asset-upload-support`,"Layer source does not support uploadAssets capability",{layer:e});return t.uploadAssets(r,a)}},92300:(e,t,r)=>{r.d(t,{V:()=>s,X:()=>n});var a=r(65864);function n(e){return{geometryType:(0,a.$B)(e[0]),geometries:e.map((e=>e.toJSON()))}}function s(e,t,r){const n=(0,a.xD)(t);return e.map((e=>{const t=n.fromJSON(e);return t.spatialReference=r,t}))}},2272:(e,t,r)=>{r.d(t,{Dl:()=>i,jV:()=>s,lF:()=>o}),r(92602),r(70333);var a=r(4718),n=r(84952);function s(e,t){return t?{...t,query:{...e??{},...t.query}}:{query:e}}function i(e){return"string"==typeof e?(0,n.An)(e):(0,a.o8)(e)}function o(e,t,r){const a={};for(const n in e){if("declaredClass"===n)continue;const s=e[n];if(null!=s&&"function"!=typeof s)if(Array.isArray(s))a[n]=s.map((e=>o(e)));else if("object"==typeof s)if(s.toJSON){const e=s.toJSON(r?.[n]);a[n]=t?e:JSON.stringify(e)}else a[n]=t?s:JSON.stringify(s);else a[n]=s}return a}r(926)}}]);