Custom Gis Application with Arcgis Javascript API with modern layouting
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.
 
 

31 lines
14 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("exports ../geometry ../kernel ../request ../core/Error ../core/Logger ./knowledgeGraph/GraphQueryResult ./knowledgeGraph/GraphQueryResultHeader ./knowledgeGraph/GraphQueryStreamingResult ./knowledgeGraph/KnowledgeGraph ./knowledgeGraph/ServiceDefinition ./knowledgeGraph/wasmInterface/knowledgeWasmAccess ./knowledgeGraph/wasmInterface/queryToWasmEncodedFactories ./knowledgeGraph/wasmInterface/updateToWasmEncodedFactories ./knowledgeGraph/wasmInterface/wasmToDataModelFactories ./knowledgeGraph/wasmInterface/wasmToQueryResponseObjFactories ./knowledgeGraph/wasmInterface/wasmToUpdateResponseFactories ../geometry/SpatialReference ../geometry/Geometry".split(" "),
function(l,aa,N,u,f,F,G,O,H,P,Q,r,t,v,R,I,S,T,U){async function w(a){return p.refreshDataModel(a)}async function J(a){return p.refreshServiceDefinition(a)}async function y(a,c){return p._fetchWrapper(a,c)}async function B(a){N.id?.findCredential(a.url)||(a.dataModel?await K(a):await w(a))}function x(a,c,b){if(0!==a.error_code)throw new f(c,b,{errorCode:a.error_code,errorMessage:a.error_message});}async function V(a,c){c.dataModel||await w(c);if(!c.dataModel)throw new f("knowledge-graph:data-model-undefined",
"Encoding could not proceed because a data model was not provided and it could not be determined from the service");const b=await r.getWasmInterface();c=!!a.options?.cascadeDelete;const d=new b.GraphApplyEditsEncoder(b.SpatialReferenceUtil.WGS84(),a.options?.inputQuantizationParameters?v.inputQuantizationParametersToWasmFormat(a.options?.inputQuantizationParameters):b.InputQuantizationUtil.WGS84_lossless());d.deleteLater();d.cascade_delete=c;try{let g;a.entityAdds?.forEach(e=>{g=d.add_entity(v.namedObjectToWasm(e,
b));x(g,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits - an entity failed to be added to the encoder")});a.relationshipAdds?.forEach(e=>{if(!e.originId||!e.destinationId)throw new f("knowledge-graph:relationship-origin-destination-missing","When adding a new relationship, you must provide both an origin and destination id on the appropriate class property");g=d.add_relationship(v.namedObjectToWasm(e,b));x(g,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits - a relationship failed to be added to the encoder")});
a.entityUpdates?.forEach(e=>{if(!e.id)throw new f("knowledge-graph:entity-id-missing","When updating an entity or relationship, you must specify the id on the class level property");g=d.update_entity(v.namedObjectToWasm(e,b));x(g,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits - an entity failed to be added to the encoder")});a.relationshipUpdates?.forEach(e=>{if(!e.id)throw new f("knowledge-graph:relationship-id-missing","When updating an entity or relationship, you must specify the id on the class level property");
g=d.update_relationship(v.namedObjectToWasm(e,b));x(g,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits - a relationship failed to be added to the encoder")});a.entityDeletes?.forEach(e=>{if(!e.typeName)throw new f("knowledge-graph:no-type-name","You must indicate the entity/relationship named object type to apply edits - delete");const h=d.make_delete_helper(e.typeName,!0);h.deleteLater();e.ids?.forEach(k=>{h.delete_by_id(k)})});a.relationshipDeletes?.forEach(e=>{if(!e.typeName)throw new f("knowledge-graph:no-type-name",
"You must indicate the entity/relationship named object type to apply edits - delete");const h=d.make_delete_helper(e.typeName,!1);e.ids?.forEach(k=>{h.delete_by_id(k)})});d.encode()}catch(g){throw new f("knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits failed",{error:g});}a=d.get_encoding_result();x(a.error,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits failed");return structuredClone(a.get_byte_buffer())}async function W(a,c){const b=
await r.getWasmInterface(),d=new b.GraphQueryRequestEncoder;d.deleteLater();d.output_spatial_reference=a.outputSpatialReference?{wkid:a.outputSpatialReference.wkid,latestWkid:a.outputSpatialReference.latestWkid,vcsWkid:a.outputSpatialReference.vcsWkid,latestVcsWkid:a.outputSpatialReference.latestVcsWkid,wkt:a.outputSpatialReference.wkt??""}:b.SpatialReferenceUtil.WGS84();d.open_cypher_query=a.openCypherQuery;if(a.bindParameters)for(const [m,n]of Object.entries(a.bindParameters)){var g=m,e=n,h=d,k=
b;null===e||void 0===e?h.set_param_key_value(g,""):"object"!==typeof e?h.set_param_key_value(g,e):e instanceof Date?h.set_param_key_value(g,e):e instanceof U?h.set_param_key_value(g,t.geometryToWasm(e,k)):Array.isArray(e)?h.set_param_key_value(g,t.bindParamArrayToWasm(e,k)):h.set_param_key_value(g,t.bindParamObjectToWasm(e,k))}if(a.bindGeometryQuantizationParameters)t.setInputQuantizationParametersOnEncoder(a.bindGeometryQuantizationParameters,d);else if(c.dataModel||await w(c),4326===c.dataModel?.spatialReference?.wkid)d.input_quantization_parameters=
b.InputQuantizationUtil.WGS84_lossless();else throw new f("knowledge-graph:SR-quantization-mismatch","If the DataModel indicates a coordinate system other than WGS84, inputQuantizationParameters must be provided to the query encoder");a.outputQuantizationParameters&&t.setOutputQuantizationParametersOnEncoder(a.outputQuantizationParameters,d,b);a.provenanceBehavior&&t.setProvenanceBehaviorOnEncoder(a.provenanceBehavior,d);try{d.encode()}catch(m){throw new f("knowledge-graph:query-encoding-failed",
"Attempting to encode the query failed",{error:m});}a=d.get_encoding_result();if(0!==a.error.error_code)throw new f("knowledge-graph:query-encoding-failed","Attempting to encode the query failed",{errorCode:a.error.error_code,errorMessage:a.error.error_message});return structuredClone(a.get_byte_buffer())}async function X(a){const c=await r.getWasmInterface(),b=new c.GraphSearchRequestEncoder;b.deleteLater();b.search_query=a.searchQuery;b.type_category_filter=c.esriNamedTypeCategory[a.typeCategoryFilter];
!0===a.returnSearchContext&&(b.return_search_context=a.returnSearchContext);null!=a.start&&0<a.start&&(b.start_index=a.start);null!=a.num&&(b.max_num_results=a.num);if(null!=a.idsFilter&&Array.isArray(a.idsFilter)&&0<a.idsFilter.length)try{b.set_ids_filter(t.bindParamArrayToWasm(a.idsFilter,c))}catch(d){throw new f("knowledge-graph:ids-format-error","Attempting to set ids filter failed. This is usually caused by an incorrectly formatted UUID string",{error:d});}a.namedTypesFilter?.forEach(d=>{b.add_named_type_filter(d)});
try{b.encode()}catch(d){throw new f("knowledge-graph:search-encoding-failed","Attempting to encode the search failed",{error:d});}a=b.get_encoding_result();if(0!==a.error.error_code)throw new f("knowledge-graph:search-encoding-failed","Attempting to get encoding result from the query failed",{errorCode:a.error.error_code,errorMessage:a.error.error_message});return structuredClone(a.get_byte_buffer())}async function C(a,c){return u(a,{responseType:"native-request-init",method:"post",query:{f:"pbf",
...c?.query},body:"x",headers:{"Content-Type":"application/octet-stream"},signal:c?.signal,timeout:c?.timeout})}async function Y(a){var c=a.headers.get("content-type");if(c?.includes("application/x-protobuf"))return a=await a.arrayBuffer(),c=new ((await r.getWasmInterface()).GraphApplyEditsDecoder),c.deleteLater(),c.decode(new Uint8Array(a)),S.decoderToApplyEditsResponse(c);throw new f("knowledge-graph:unexpected-server-response","server returned an unexpected response",{responseType:c,data:a.text()});
}function D(a,c,b,d){a.push_buffer(new Uint8Array(c));c=[];let g=0,e,h;for(;a.next_row();){e&&h||(e=d??I.wasmToGraphQueryResponseHeader(a),h=e.outSpatialReference??new T({wkid:4326}));g||=a.get_header_keys().size();const k=Array(g);for(let m=0;m<g;m++){const n=a.get_value(m);k[m]=I.decodedWasmObjToQueryResponseObj(n,b,h)}c.push(k)}if(a.has_error())throw new f("knowledge-graph:stream-decoding-error","One or more result rows were not successfully decoded - inner row decoding",{errorCode:a.error.error_code,
errorMessage:a.error.error_message});return{resultHeader:e,resultRows:c}}async function L(a,c){var b=a.headers.get("content-type");a.headers.get("content-length")&&F.getLogger("esri.rest.knowledgeGraph.knowledgeGraphService").warnOnce("Found `Content-Length` header when expecting a streaming HTTP response! Please investigate whether all intermediate HTTP proxies and/or load balancers are configured such that they don't forcefully buffer the entire response before returning it to the client. A valid HTTP streaming response should use Chunked Transfer Encoding and not have a Content Length defined.");
if(b?.includes("application/x-protobuf")){const d=a.body?.getReader(),g=new ((await r.getWasmInterface()).GraphQueryDecoder);g.deleteLater();let e,h,k;b=new Promise((n,z)=>{h=n;k=z});let m=!1;a=new ReadableStream({async start(n){function z(){return d?.read().then(({done:E,value:Z})=>{try{if(E){let q;g.has_error()?q=new f("knowledge-graph:stream-decoding-error","One or more result rows were not successfully decoded - query stream done",{errorCode:g.error.error_code,errorMessage:g.error.error_message}):
m||h(new O);d.releaseLock();if(q)throw n.error(q),k(q),q;n.close()}else{var A=D(g,Z,c,e),M=A.resultRows;0<M.length&&n.enqueue(M);!e&&A.resultHeader&&(e=A.resultHeader,h(A.resultHeader),m=!0);return z()}}catch(q){throw F.getLogger("esri.rest.knowledgeGraph.knowledgeGraphService").error(q),k(q),new f("knowledge-graph:unexpected-server-response","Error inside streaming data return parsing",{error:q});}})}try{return z()}catch(E){d?.releaseLock(),n.error(new f("knowledge-graph:stream-decoding-error","The server returned a valid response, but there was an error decoding the response stream",
{error:E})),n.close()}}});b=await b;return{readableStream:a,resultHeader:b}}throw new f("knowledge-graph:unexpected-server-response","server returned an unexpected response",{responseType:b,data:a.text()});}async function K(a){a=await u(`${a.url}/dataModel/queryDataModel`,{responseType:"array-buffer",query:{f:"pbf"}});const c=a.getHeader?.("content-type"),b=a.data;if(c?.includes("application/x-protobuf")){a=(await r.getWasmInterface()).decode_data_model_from_protocol_buffer(new Uint8Array(b));if(!a)throw new f("knowledge-graph:data-model-decode-failure",
"The server responded to the data model query, but the response failed to be decoded. This typically occurs when the Knowledge JS API (4.26 or later) is used with an unsupported backend (11.0 or earlier)");return R.wasmToDataModel(a)}throw new f("knowledge-graph:unexpected-server-response","server returned an unexpected response",{responseType:c,data:a.data});}const p={fetchKnowledgeGraph:async a=>{a=new P({url:a});const c=[];c.push(w(a));c.push(J(a));await Promise.all(c);return a},refreshDataModel:async a=>
{a.dataModel=await K(a)},refreshServiceDefinition:async a=>{const c=(await u(a.url,{query:{f:"json"}})).data;c.capabilities=c?.capabilities?.split(",");c.supportedQueryFormats=c?.supportedQueryFormats?.split(",");a.serviceDefinition=new Q(c);return a.serviceDefinition},executeQueryStreaming:async(a,c,b)=>{const d=`${a.url}/graph/query`;await B(a);b=await C(d,b);if(!a.serviceDefinition?.supportsProvenance&&"include"===c.provenanceBehavior)throw new f("knowledge-graph:provenance-not-supported","The Knowledge Graph Service definition indicated that provenance is not supported");
b.data.body=await W(c,a);c=await y(b.data.url,b.data);if(a.dataModel)return a=await L(c,a.dataModel),new H({resultRowsStream:a.readableStream,resultHeader:a.resultHeader});throw new f("knowledge-graph:undefined-data-model","The KnowledgeGraph supplied did not have a data model");},executeApplyEdits:async(a,c,b)=>{if(a.serviceDefinition?.dataEditingNotSupported)throw new f("knowledge-graph:data-editing-not-supported","The Knowledge Graph Service definition indicated that data editing is not supported");
const d=`${a.url}/graph/applyEdits`;await B(a);b=await C(d,b);b.data.body=await V(c,a);a=await y(b.data.url,b.data);return Y(a)},executeQuery:async(a,c,b)=>{b=await u(`${a.url}/graph/query`,{responseType:"array-buffer",query:{f:"pbf",openCypherQuery:c.openCypherQuery,...b?.query},signal:b?.signal,timeout:b?.timeout});const d=b.getHeader?.("content-type");c=b.data;if(d?.includes("application/x-protobuf")){b=new ((await r.getWasmInterface()).GraphQueryDecoder);b.deleteLater();if(a.dataModel)return a=
D(b,c,a.dataModel),new G({resultRows:a.resultRows,resultHeader:a.resultHeader});throw new f("knowledge-graph:undefined-data-model","The KnowledgeGraph supplied did not have a data model");}throw new f("knowledge-graph:unexpected-server-response","server returned an unexpected response",{responseType:d,data:b.data});},executeSearch:async(a,c,b)=>{b=await u(`${a.url}/graph/search`,{responseType:"array-buffer",query:{f:"pbf",searchQuery:`"${c.searchQuery}"`,typeCategoryFilter:c.typeCategoryFilter,...b?.query},
signal:b?.signal,timeout:b?.timeout});const d=b.getHeader?.("content-type");c=b.data;if(d?.includes("application/x-protobuf")){b=new ((await r.getWasmInterface()).GraphQueryDecoder);b.deleteLater();if(a.dataModel)return a=D(b,c,a.dataModel),new G({resultRows:a.resultRows,resultHeader:a.resultHeader});throw new f("knowledge-graph:undefined-data-model","The KnowledgeGraph supplied did not have a data model");}throw new f("knowledge-graph:unexpected-server-response","server returned an unexpected response",
{responseType:d,data:b.data});},executeSearchStreaming:async(a,c,b)=>{const d=`${a.url}/graph/search`;await B(a);b=await C(d,b);b.data.body=await X(c);c=await y(b.data.url,b.data);if(a.dataModel)return a=await L(c,a.dataModel),new H({resultRowsStream:a.readableStream,resultHeader:a.resultHeader});throw new f("knowledge-graph:undefined-data-model","The KnowledgeGraph supplied did not have a data model");},_fetchWrapper:async(a,c)=>fetch(a,c)};l._fetchWrapper=y;l.executeApplyEdits=async function(a,
c,b){return p.executeApplyEdits(a,c,b)};l.executeQuery=async function(a,c,b){return p.executeQuery(a,c,b)};l.executeQueryStreaming=async function(a,c,b){return p.executeQueryStreaming(a,c,b)};l.executeSearch=async function(a,c,b){return p.executeSearch(a,c,b)};l.executeSearchStreaming=async function(a,c,b){return p.executeSearchStreaming(a,c,b)};l.fetchKnowledgeGraph=async function(a){return p.fetchKnowledgeGraph(a)};l.kgRestServices=p;l.refreshDataModel=w;l.refreshServiceDefinition=J;Object.defineProperty(l,
Symbol.toStringTag,{value:"Module"})});