// 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","../../../core/Error","../../../core/pbf","../../../layers/graphics/OptimizedGeometry","./pbfOptimizedFeatureSet"],function(g,q,r,t,u){function k(a){return a>=l.length?null:l[a]}function v(a,b,c){a=a.asUnsafe();for(c=b.createPointGeometry(c);a.next();)switch(a.tag()){case 3:var d=a.getUInt32();d=a.pos()+d;let e=0;for(;a.pos()=n.length?null:n[c];b.sqlType=c;break;case 5:a.skip();break;case 6:b.defaultValue=a.getString();break;default:a.skip()}return b}function z(a){const b={};for(a=a.asUnsafe();a.next();)switch(a.tag()){case 1:b.name=a.getString();break;case 2:b.isSystemMaintained=a.getBool(); break;default:a.skip()}return b}function A(a,b,c,d){const e=b.createFeature(c);let f=0;for(;a.next();)switch(a.tag()){case 1:const B=d[f++].name;e.attributes[B]=a.processMessage(y);break;case 2:e.geometry=a.processMessageWithArgs(w,b,c);break;case 4:e.centroid=a.processMessageWithArgs(v,b,c);break;default:a.skip()}return e}function C(a){const b=[1,1,1,1];for(a=a.asUnsafe();a.next();)switch(a.tag()){case 1:b[0]=a.getDouble();break;case 2:b[1]=a.getDouble();break;case 4:b[2]=a.getDouble();break;case 3:b[3]= a.getDouble();break;default:a.skip()}return b}function D(a){const b=[0,0,0,0];for(a=a.asUnsafe();a.next();)switch(a.tag()){case 1:b[0]=a.getDouble();break;case 2:b[1]=a.getDouble();break;case 4:b[2]=a.getDouble();break;case 3:b[3]=a.getDouble();break;default:a.skip()}return b}function p(a){const b={originPosition:0>=h.length?null:h[0]};for(a=a.asUnsafe();a.next();)switch(a.tag()){case 1:var c=a.getEnum();b.originPosition=c>=h.length?null:h[c];break;case 2:b.scale=a.processMessage(C);break;case 3:b.translate= a.processMessage(D);break;default:a.skip()}return b}function E(a){const b={};for(a=a.asUnsafe();a.next();)switch(a.tag()){case 1:b.shapeAreaFieldName=a.getString();break;case 2:b.shapeLengthFieldName=a.getString();break;case 3:b.units=a.getString();break;default:a.skip()}return b}function F(a,b){for(b=b.createSpatialReference();a.next();)switch(a.tag()){case 1:b.wkid=a.getUInt32();break;case 5:b.wkt=a.getString();break;case 2:b.latestWkid=a.getUInt32();break;case 3:b.vcsWkid=a.getUInt32();break;case 4:b.latestVcsWkid= a.getUInt32();break;default:a.skip()}return b}function G(a,b){const c=b.createFeatureResult();a=a.asUnsafe();c.geometryType=0>=b.geometryTypes.length?null:b.geometryTypes[0];let d=!1;for(;a.next();)switch(a.tag()){case 1:c.objectIdFieldName=a.getString();break;case 3:c.globalIdFieldName=a.getString();break;case 4:c.geohashFieldName=a.getString();break;case 5:c.geometryProperties=a.processMessage(E);break;case 7:var e=a.getEnum();c.geometryType=e>=b.geometryTypes.length?null:b.geometryTypes[e];break; case 8:c.spatialReference=a.processMessageWithArgs(F,b);break;case 10:c.hasZ=a.getBool();break;case 11:c.hasM=a.getBool();break;case 12:c.transform=a.processMessage(p);break;case 9:c.exceededTransferLimit=a.getBool();break;case 13:b.addField(c,a.processMessage(m));break;case 15:d||(b.prepareFeatures(c),d=!0);b.addFeature(c,a.processMessageWithArgs(A,b,c,c.fields));break;case 2:c.uniqueIdField=a.processMessage(z);break;default:a.skip()}b.finishFeatureResult(c);return c}function H(a,b){const c={};let d= null;for(;a.next();)switch(a.tag()){case 4:d=a.processMessageWithArgs(x);break;case 1:c.featureResult=a.processMessageWithArgs(G,b);break;default:a.skip()}null!=d&&c.featureResult&&b.addQueryGeometry(c,d);return c}const l="esriFieldTypeSmallInteger esriFieldTypeInteger esriFieldTypeSingle esriFieldTypeDouble esriFieldTypeString esriFieldTypeDate esriFieldTypeOID esriFieldTypeGeometry esriFieldTypeBlob esriFieldTypeRaster esriFieldTypeGUID esriFieldTypeGlobalID esriFieldTypeXML esriFieldTypeBigInteger esriFieldTypeDateOnly esriFieldTypeTimeOnly esriFieldTypeTimestampOffset".split(" "), n="sqlTypeBigInt sqlTypeBinary sqlTypeBit sqlTypeChar sqlTypeDate sqlTypeDecimal sqlTypeDouble sqlTypeFloat sqlTypeGeometry sqlTypeGUID sqlTypeInteger sqlTypeLongNVarchar sqlTypeLongVarbinary sqlTypeLongVarchar sqlTypeNChar sqlTypeNVarchar sqlTypeOther sqlTypeReal sqlTypeSmallInt sqlTypeSqlXml sqlTypeTime sqlTypeTimestamp sqlTypeTimestamp2 sqlTypeTinyInt sqlTypeVarbinary sqlTypeVarchar".split(" "),h=["upperLeft","lowerLeft"];g.parseFeatureQuery=function(a,b){try{const c=new r(new Uint8Array(a),new DataView(a)); for(a={};c.next();)switch(c.tag()){case 2:a.queryResult=c.processMessageWithArgs(H,b);break;default:c.skip()}return a}catch(c){throw new q("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:c});}};g.parseField=m;g.parseFieldType=k;g.parseTransform=p;Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});