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.
27 lines
12 KiB
27 lines
12 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 ../../core/Error ../../core/object ../../core/SetUtils ../../core/sql ./domainUtils ../../support/arcadeOnDemand".split(" "),function(d,W,D,X,Y,m,Z){function E(a,b,c){if(a)for(const e of a)(a=(a=D.getDeepValue(e,b))&&"function"!==typeof a&&c.get(a))&&D.setDeepValue(e,a.name,b)}function h(a,b){if(!a||!b)return[];t.clear();k(t,a,b);return Array.from(t).sort()}function k(a,b,c){if(c)if(b?.fields?.length)if(c.includes("*"))for(const {name:e}of b.fields)a.add(e);else for(const e of c)l(a, |
|
b,e);else if(c.includes("*"))a.clear(),a.add("*");else for(const e of c)null!=e&&a.add(e)}function l(a,b,c){"string"===typeof c&&(b?(b=b.get(c))&&a.add(b.name):a.add(c))}async function g(a,b,c){if(c){var {arcadeUtils:e}=await Z.loadArcade();c=e.extractFieldNames(c,b?.fields?.map(f=>f.name));for(const f of c)l(a,b,f)}}async function F(a,b,c){if(c&&"1\x3d1"!==c){const e=await Y.parseWhereClause(c,b);if(!e.isStandardized)throw new W("fieldUtils:collectFilterFields","Where clause is not standardized", |
|
{where:c});k(a,b,e.fieldNames)}}function u(a,b){for(const c of a)if(c?.valueType&&c.valueType===b)return c.name;return null}async function G(a,b){if(b){var c=b.elevationInfo?.featureExpressionInfo;if(c)return c.collectRequiredFields(a,b.fieldsIndex)}}async function H(a,b,c){const e=[];c?.expressionInfos&&e.push(...c.expressionInfos.map(f=>g(a,b.fieldsIndex,f.expression)));c=c?.content;if(Array.isArray(c))for(const f of c)"expression"===f.type&&f.expressionInfo&&e.push(g(a,b.fieldsIndex,f.expressionInfo.expression)); |
|
await Promise.all(e)}async function aa(a,b,c){b&&c&&(c.valueExpression?await g(a,b.fieldsIndex,c.valueExpression):c.field&&l(a,b.fieldsIndex,c.field))}function I(a){if(!a)return[];const b=a.geometryFieldsInfo;return b?h(a.fieldsIndex,[b.shapeAreaField,b.shapeLengthField]):[]}function J(a){const b=new Set;v(a).forEach(c=>b.add(c));I(a).forEach(c=>b.add(c.toLowerCase()));if(a=a&&"infoFor3D"in a?a.infoFor3D:void 0)Object.values(a.assetMapFieldRoles).forEach(c=>b.add(c.toLowerCase())),Object.values(a.transformFieldRoles).forEach(c=> |
|
b.add(c.toLowerCase()));return Array.from(b)}function w(a){if(!a)return[];a="editFieldsInfo"in a&&a.editFieldsInfo;if(!a)return[];const {creationDateField:b,creatorField:c,editDateField:e,editorField:f}=a;return[b,c,e,f].filter(Boolean)}function v(a){return w(a).map(b=>b.toLowerCase())}async function K(a,b){const {labelingInfo:c,fieldsIndex:e}=b;c?.length&&await Promise.all(c.map(f=>ba(a,e,f)))}async function ba(a,b,c){if(c){var e=c.getLabelExpression();c=c.where;"arcade"===e.type?await g(a,b,e.expression): |
|
(e=e.expression.match(/{[^}]*}/g))&&e.forEach(f=>{l(a,b,f.slice(1,-1))});await F(a,b,c)}}function x(a){return"number"===typeof a&&!isNaN(a)&&isFinite(a)}function ca(a){return null===a||x(a)}function da(a){return null===a||Number.isInteger(a)}function L(a){return null!=a&&"string"===typeof a}function ea(a){return null===a||L(a)}function fa(){return!0}function y(a,b){let c;switch(a.type){case "date":case "integer":case "long":case "small-integer":case "big-integer":case "esriFieldTypeDate":case "esriFieldTypeInteger":case "esriFieldTypeLong":case "esriFieldTypeSmallInteger":case "esriFieldTypeBigInteger":c= |
|
a.nullable?da:Number.isInteger;break;case "double":case "single":case "esriFieldTypeSingle":case "esriFieldTypeDouble":c=a.nullable?ca:x;break;case "string":case "esriFieldTypeString":c=a.nullable?ea:L;break;default:c=fa}return 1===arguments.length?c:c(b)}function z(a){return null!=a&&ha.has(a.type)}function M(a){return null!=a&&("string"===a.type||"esriFieldTypeString"===a.type)}function N(a,b){return null==a||a.nullable&&null===b?null:z(a)&&!O(a.type,Number(b))?d.NumericRangeValidationError.OUT_OF_RANGE: |
|
y(a,b)?a.domain?m.validateDomainValue(a,b):null:d.TypeValidationError.INVALID_TYPE}function O(a,b){a="string"===typeof a?A(a):a;if(!a)return!1;const c=a.min,e=a.max;return a.isInteger?Number.isInteger(b)&&b>=c&&b<=e:b>=c&&b<=e}function A(a){switch(a){case "esriFieldTypeSmallInteger":case "small-integer":return n;case "esriFieldTypeInteger":case "integer":return p;case "esriFieldTypeBigInteger":case "big-integer":return q;case "esriFieldTypeSingle":case "single":return r;case "esriFieldTypeDouble":case "double":return P}} |
|
function Q(a,b,c){if(!b?.attributes||!a){if(null!=c)for(var e of a??[])c.add(e);return!0}b=new Set(Object.keys(b.attributes));e=!1;for(const f of a)if(!b.has(f))if(e=!0,null!=c)c.add(f);else break;return e}const ia=/^([0-9_])/,ja=/[^a-z0-9_\u0080-\uffff]+/gi,R="field field2 field3 normalizationField rotationInfo.field proportionalSymbolInfo.field proportionalSymbolInfo.normalizationField colorInfo.field colorInfo.normalizationField".split(" "),S=["field","normalizationField"],t=new Set,ka=new Set(["oid", |
|
"global-id","guid"]),la=new Set(["oid","global-id"]),ma=[/^fnode_$/i,/^tnode_$/i,/^lpoly_$/i,/^rpoly_$/i,/^poly_$/i,/^shape$/i,/^shape_$/i,/^subclass$/i,/^subclass_$/i,/^rings_ok$/i,/^rings_nok$/i,/perimeter/i,/objectid/i,/_i$/i],B=["integer","small-integer","big-integer"],C=["single","double"],na=[...B,...C],T=["esriFieldTypeInteger","esriFieldTypeSmallInteger","esriFieldTypeBigInteger"],U=["esriFieldTypeSingle","esriFieldTypeDouble"],V=new Set([...B,...T]),oa=new Set([...C,...U]),ha=X.union(V,oa); |
|
d.NumericRangeValidationError=void 0;(d.NumericRangeValidationError||(d.NumericRangeValidationError={})).OUT_OF_RANGE="numeric-range-validation-error::out-of-range";d.TypeValidationError=void 0;(d.TypeValidationError||(d.TypeValidationError={})).INVALID_TYPE="type-validation-error::invalid-type";const n={min:-32768,max:32767,isInteger:!0,rawMin:-32768,rawMax:32767},p={min:-2147483648,max:2147483647,isInteger:!0,rawMin:-2147483648,rawMax:2147483647},q={min:-Number.MAX_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER, |
|
isInteger:!0,rawMin:-Number.MAX_SAFE_INTEGER,rawMax:Number.MAX_SAFE_INTEGER},r={min:-3.4E38,max:1.2E38,isInteger:!1,rawMin:-3.4E38,rawMax:1.2E38},P={min:-Number.MAX_VALUE,max:Number.MAX_VALUE,isInteger:!1,rawMin:-Number.MAX_VALUE,rawMax:Number.MAX_VALUE};d.bigIntegerRange=q;d.collectArcadeFieldNames=g;d.collectElevationFields=G;d.collectFeatureReductionFields=async function(a,b,c){if(b&&c&&"fields"in c){var e=[];e.push(H(a,b,c.popupTemplate));c.fields&&e.push(...c.fields.map(async f=>{f.onStatisticExpression? |
|
g(a,b.fieldsIndex,f.onStatisticExpression.expression):a.add(f.onStatisticField)}));await Promise.all(e)}};d.collectField=l;d.collectFields=k;d.collectFilterFields=async function(a,b,c){b&&(b.timeInfo&&c?.timeExtent&&k(a,b.fieldsIndex,[b.timeInfo.startField,b.timeInfo.endField]),b.floorInfo&&k(a,b.fieldsIndex,[b.floorInfo.floorField]),null!=c?.where&&await F(a,b.fieldsIndex,c.where))};d.collectLabelingFields=K;d.collectOrderByInfos=async function(a,b,c){b&&c&&await Promise.all(c.map(e=>aa(a,b,e)))}; |
|
d.collectPopupTemplateFields=H;d.doubleRange=P;d.extractSubstitutionTemplatesFromString=function(a){return(a=a?.match(/{[^}]+}/g))?a.map(b=>b.slice(1,-1).split(":")[0].trim()):[]};d.featureHasFields=function(a,b){return!Q(a,b,null)};d.fixFields=h;d.fixRendererFields=function(a,b){if(null!=a&&null!=b)for(const c of Array.isArray(a)?a:[a])if(E(R,c,b),"visualVariables"in c&&c.visualVariables)for(const e of c.visualVariables)E(S,e,b)};d.fixTimeInfoFields=function(a,b){if(null!=a&&b?.fields?.length)if("startField"in |
|
a){var c=b.get(a.startField);b=b.get(a.endField);a.startField=c?.name??null;a.endField=b?.name??null}else c=b.get(a.startTimeField),b=b.get(a.endTimeField),a.startTimeField=c?.name??null,a.endTimeField=b?.name??null};d.floatJSONTypes=U;d.floatTypes=C;d.getDisplayFieldName=function({displayField:a,fields:b}){if(a)return a;if(!b?.length)return null;if(!(a=u(b,"name-or-title")||u(b,"unique-identifier")||u(b,"type-or-category")))a:{for(const c of b)if(c?.name&&(b=c.name.toLowerCase(),b.includes("name")|| |
|
b.includes("title"))){a=c.name;break a}a=null}return a};d.getEditTrackingFields=w;d.getElevationFields=async function(a){if(!a)return[];const b=new Set;await G(b,a);return Array.from(b).sort()};d.getExpressionFields=async function(a,b){const c=new Set;for(const e of b)await g(c,a.fieldsIndex,e);return Array.from(c).sort()};d.getFeatureEditFields=function(a){return a?h(a.fieldsIndex,w(a)):[]};d.getFeatureGeometryFields=I;d.getFieldDefaultLength=function(a){a="string"===typeof a?{type:a}:a;if(M(a))return 255; |
|
if("esriFieldTypeDate"===a.type||"date"===a.type)return 8};d.getFieldDefaultValue=function(a){const b=a.defaultValue;if(void 0!==b&&y(a,b))return b;if(a.nullable)return null};d.getFieldRange=function(a,b){if(b=m.getDomainRange(a,b))return b;if(z(a))return A(a.type)};d.getLabelingFields=async function(a){if(!a)return[];const b=new Set;await K(b,a);return Array.from(b).sort()};d.getLowerCaseDefaultHiddenFields=J;d.getLowerCaseEditTrackingFields=v;d.getNumericTypeForValue=function(a){if(!x(a))return null; |
|
if(Number.isInteger(a)){if(a>=n.min&&a<=n.max)return"esriFieldTypeSmallInteger";if(a>=p.min&&a<=p.max)return"esriFieldTypeInteger";if(a>=q.min&&a<=q.max)return"esriFieldTypeBigInteger"}return a>=r.min&&a<=r.max?"esriFieldTypeSingle":"esriFieldTypeDouble"};d.getRendererFields=async function(a,b){const c=new Set;a?.collectRequiredFields&&await a.collectRequiredFields(c,b);return Array.from(c).sort()};d.getTimeFields=async function(a){if(!a)return[];const b="timeInfo"in a&&a.timeInfo;return b?h(a.fieldsIndex, |
|
[a.trackIdField,b.startField,b.endField]):[]};d.integerJSONTypes=T;d.integerRange=p;d.integerTypes=B;d.isDateField=function(a){return null!=a&&("date"===a.type||"esriFieldTypeDate"===a.type)};d.isDateOnlyField=function(a){return null!=a&&("date-only"===a.type||"esriFieldTypeDateOnly"===a.type)};d.isFieldEditable=function(a,b){return a.editable&&!ka.has(a.type)&&!v(b).includes(a.name?.toLowerCase()??"")};d.isFieldVisibleByDefault=function(a,b){const c=a.name?.toLowerCase()??"";return!(null!=b?.objectIdField&& |
|
c===b.objectIdField.toLowerCase())&&!(null!=b?.globalIdField&&c===b.globalIdField.toLowerCase())&&!J(b).includes(c)&&!la.has(a.type)&&!ma.some(e=>e.test(c))};d.isGlobalIDField=function(a){return null!=a&&("global-id"===a.type||"esriFieldTypeGlobalID"===a.type)};d.isIntegerField=function(a){return null!=a&&V.has(a.type)};d.isNumberInRange=O;d.isNumericField=z;d.isObjectIDField=function(a){return null!=a&&("oid"===a.type||"esriFieldTypeOID"===a.type)};d.isRasterPixelValueField=function(a){return a? |
|
["raster.itempixelvalue","raster.servicepixelvalue"].some(b=>a.toLowerCase().startsWith(b)):!1};d.isStringField=M;d.isTimeOnlyField=function(a){return null!=a&&("time-only"===a.type||"esriFieldTypeTimeOnly"===a.type)};d.isTimestampOffsetField=function(a){return null!=a&&("timestamp-offset"===a.type||"esriFieldTypeTimestampOffset"===a.type)};d.isValidFieldValue=function(a,b){return null===N(a,b)};d.isValueMatchingFieldType=y;d.normalizeFieldName=function(a){return null==a?null:a.trim().replaceAll(ja, |
|
"_").replace(ia,"F$1")||null};d.numericTypes=na;d.packFields=function(a,b,c=1){if(!b||!a)return[];if(b.includes("*"))return["*"];b=h(a,b);return b.length/a.fields.length>=c?["*"]:b};d.populateMissingFields=Q;d.rendererFields=R;d.sanitizeNullFieldValue=function(a){return null==a||"number"===typeof a&&isNaN(a)?null:a};d.singleRange=r;d.smallIntegerRange=n;d.unpackFieldNames=function(a,b){return null==b||null==a?[]:b.includes("*")?(a.fields??[]).map(c=>c.name):b};d.validateFieldValue=N;d.validationErrorToString= |
|
function(a,b,c){switch(a){case m.DomainValidationError.INVALID_CODED_VALUE:return`Value ${c} is not in the coded domain - field: ${b.name}, domain: ${JSON.stringify(b.domain)}`;case m.DomainValidationError.VALUE_OUT_OF_RANGE:return`Value ${c} is out of the range of valid values - field: ${b.name}, domain: ${JSON.stringify(b.domain)}`;case d.TypeValidationError.INVALID_TYPE:return`Value ${c} is not a valid value for the field type - field: ${b.name}, type: ${b.type}, nullable: ${b.nullable}`;case d.NumericRangeValidationError.OUT_OF_RANGE:const {min:e, |
|
max:f}=A(b.type);return`Value ${c} is out of range for the number type - field: ${b.name}, type: ${b.type}, value range is ${e} to ${f}`}};d.visualVariableFields=S;Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}); |