@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.35 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{isTextInput as t}from"../../../form/support/formUtils.js";import{validateDomainValue as n}from"../../../layers/support/domainUtils.js";import{NumericRangeValidationError as e,validateFieldValue as r}from"../../../layers/support/fieldUtils.js";import{dateTimeIsInRange as o}from"../dateUtils.js";var i,u;!function(t){t.Text="text",t.Number="number",t.Date="date",t.Unsupported="unsupported"}(i||(i={})),function(t){t.CANNOT_BE_EMPTY="input-validation-error::cannot-be-empty",t.TOO_SHORT="length-validation-error::too-short",t.TOO_LONG="length-validation-error::too-long"}(u||(u={}));const a=(t,n)=>{if(!t)return!0;const{operations:e}=t;switch(n){case"INSERT":return e.supportsAdd;case"UPDATE":case"DELETE":return e.supportsUpdate;default:return!0}};function s(t,i){const{dataType:a,domain:s,field:l,maxLength:f,minLength:p,range:c,required:m}=i;if(null==t)return m?u.CANNOT_BE_EMPTY:null;if("text"===a&&"string"==typeof t){if(p>-1&&t.length<p)return u.TOO_SHORT;if(f>-1&&t.length>f)return u.TOO_LONG}return"date"!==a||o({type:l.type,range:c,value:t})?s?n(l,t,s):r(l,t)??n(l,t):e.OUT_OF_RANGE}function l(t,n){return!(!f(t)||!f(n))||t===n}function f(t){return null==t||""===t}function p({dataType:n,field:e,input:r}){const o=-1;if(n===i.Date)return o;const u=m(e.length);if(!r||!t(r))return u;const a=m(r.maxLength);return a===o?u:u===o?a:Math.min(u,a)}function c({dataType:n,field:e,input:r}){const o=-1;if(n===i.Date)return o;if(!r||!t(r))return o;const u=m(r.minLength);if(u<0)return o;const a=m(e.length);return a>o&&a<u?o:u}function m(t){return"number"==typeof t&&t>-1?t:-1}const d={type:"number"},O={type:"number",intlOptions:{notation:"scientific"}};function T(t){return t>=1e7||t<=-1e7}function g(t,n){return null!=t.max&&null!=t.min?n.outsideRange:null!=t.max?n.outsideRangeMax:n.outsideRangeMin}const h=t=>t&&!Number.isNaN(t.valueOf());export{i as FieldInputDataTypes,u as InputValidationError,a as capabilitiesAllowEditType,h as dateIsValid,m as ensureMinOrMaxLength,p as getMaxLength,c as getMinLength,g as getRangeErrorMessage,f as isEmptyValue,d as numberFormatOptions,O as scientificNumberFormatOptions,T as shouldUseScientificNotation,s as validateFormValue,l as valuesAreEquivalent};