@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 3.91 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import{convertDateFormatToIntlOptions as t,formatDate as e,formatTimestamp as n,formatTimeOnly as r,formatDateOnly as o}from"../../intl/date.js";import{isDateField as i,isDateOnlyField as s,isTimestampOffsetField as a}from"../../layers/support/fieldUtils.js";import{loadArcade as l}from"../../support/arcadeOnDemand.js";import{getWellKnownBasemapId as u}from"../../support/basemapUtils.js";import{utc as m}from"../../time/constants.js";import{getTimeZoneFormattingOptions as d}from"../../time/timeZoneUtils.js";const f=",",c={light:["streets","gray","topo","terrain","oceans","osm","gray-vector","streets-vector","topo-vector","streets-relief-vector","streets-navigation-vector","topo-3d","navigation-3d","streets-3d","osm-3d","gray-3d"],dark:["satellite","hybrid","dark-gray","dark-gray-vector","streets-night-vector","navigation-dark-3d","streets-dark-3d","dark-gray-3d"]},p="percent-of-total",g="field",y={exclude:["median"]},h={years:365,months:30,days:1,hours:1/24,minutes:1/1440,seconds:1/86400,milliseconds:1/864e5},v=new Set(["integer","small-integer"]);let T=null;const Z=["date","date-only","timestamp-offset"];function $(t){return i(t)||s(t)||a(t)}async function U(t){const{field:e,field2:n,field3:r,normalizationField:o,valueExpression:i}=t;let s=[];if(i){if(!T){const{arcadeUtils:t}=await l();T=t}s=T.extractFieldNames(i)}return e&&s.push(e),n&&s.push(n),r&&s.push(r),o&&s.push(o),s}function w(t){let e=t.normalizationType;return e||(t.normalizationField?e=g:null!=t.normalizationTotal&&(e=p)),e??void 0}function D(t){return String(t).padStart(2,"0")}function S(t,e,n){let r;if("date"===e||"number"===e){"number"===e&&(t=new Date(t));r=`TIMESTAMP'${n?t.getFullYear():t.getUTCFullYear()}-${D((n?t.getMonth():t.getUTCMonth())+1)}-${D(n?t.getDate():t.getUTCDate())} ${D(n?t.getHours():t.getUTCHours())}:${D(n?t.getMinutes():t.getUTCMinutes())}:${D(n?t.getSeconds():t.getUTCSeconds())}'`}else r=t;return r}function k(t,e,n,r){const{hasQueryEngine:o}=t,i=`(${S(n,C(t,n),o)} - ${S(e,C(t,e),o)})`;let s=h[r],a="/";s<1&&(s=1/s,a="*");return{sqlExpression:1===s?i:`(${i} ${a} ${s})`,sqlWhere:null}}function C(t,e){if(e instanceof Date)return"date";if("number"==typeof e)return"number";if("string"==typeof e){const n=t.getField(e);if("<now>"===e.toLowerCase())return;if(i(n))return"field"}}function F(t,e=c){for(const n in e)if(e[n].includes(t))return n}function b(t,e,n=!0){let r=null;return t&&("string"==typeof t?e.includes(t)&&(r=t):r=u(t)),n?r||"gray":r}function j(t,e){const n=e&&t.getField(e);return!!n&&v.has(n.type)}function M(t){return`cast(${t} as float)`}function N(i,s){const{format:a,timeZoneOptions:l,fieldType:u}=s??{};let f,c;if(l&&({timeZone:f,timeZoneName:c}=d(l.layerTimeZone,l.datesInUnknownTimezone,l.viewTimeZone,t(a||"short-date-short-time"),u)),"string"==typeof i&&isNaN(Date.parse("time-only"===u?`1970-01-01T${i}Z`:i)))return i;switch(u){case"date-only":{const n=t(a||"short-date");return"string"==typeof i?o(i,{...n}):e(i,{...n,timeZone:m})}case"time-only":{const n=t(a||"short-time");return"string"==typeof i?r(i,n):e(i,{...n,timeZone:m})}case"timestamp-offset":{if(!f&&"string"==typeof i&&new Date(i).toISOString()!==i)return i;const r=a||l?t(a||"short-date-short-time"):void 0,o=r?{...r,timeZone:f,timeZoneName:c}:void 0;return"string"==typeof i?n(i,o):e(i,o)}default:{const n=a||l?t(a||"short-date-short-time"):void 0;return e("string"==typeof i?new Date(i):i,n?{...n,timeZone:f,timeZoneName:c}:void 0)}}}export{M as castIntegerFieldToFloat,Z as dateTypes,c as defaultBasemapGroups,y as defaultStatisticTypes,f as fieldDelimiter,N as formatAnyDate,F as getBasemapGroup,b as getBasemapId,k as getDateDiffSQL,C as getDateType,U as getFieldsList,w as getNormalizationType,$ as isAnyDateField,j as isIntegerField,h as unitValueInDays};