@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.24 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import"../../../../core/has.js";import{numericHash as t}from"../../../../core/string.js";import{isBarcodeScannerInput as n,isComboBoxInput as e,isRadioButtonsInput as i,isDatePickerInput as r,isDateTimePickerInput as o,isDateTimeOffsetPickerInput as $,isSwitchInput as u,isTextAreaInput as f,isTextBoxInput as s,isTimePickerInput as l}from"../../../../form/elements/inputs/inputUtils.js";import{isFieldElementTemplate as c,isGroupElementTemplate as m}from"./templateUtils.js";const a="",p="num:";function g(n){return c(n)?t(d(n)).toString():m(n)?t(y(n)).toString():t(JSON.stringify(n)).toString()}function d(t){return`${S(t)}.${h(t.field)}.${O(t.domain)}.${t.hint??a}.${V(t.input)}.${t.layerTimeZone??""}`}function y(t){const n=S(t)+`.${t.initialState}`;let e=a;for(const i of t.elements)e+="."+g(i).toString();return`${n}${e}`}function S(t){return`${t.label??a}.${t.description??a}`}function V(t){if(!t)return a;const{type:c}=t;if(n(t))return c??a;if(e(t)||i(t)){const{showNoValueOption:n}=t;return`${c}.${n}.${t.noValueOptionLabel??a}`}if(r(t))return`${c}.${b(t)}`;if(o(t)){const n=t.min?.getTime(),e=t.max?.getTime(),{includeTime:i}=t;return`${c}.${n}.${e}.${i}`}if($(t)){const n=b(t),{includeTimeOffset:e,timeResolution:i}=t;return`${c}.${n}.${e}.${i}`}if(u(t)){const{offValue:n,onValue:e}=t;return`${c}.${x(n)}.${x(e)}`}if(f(t)||s(t)){return`${c}.${t.minLength?.toString()??a}.${t.maxLength?.toString()??a}`}if(l(t)){const n=b(t),{timeResolution:e}=t;return`${c}.${n}.${e}`}return JSON.stringify(t)}function b(t){return`${t.min??a}.${t.max??a}`}function h(t){const n=t.name,e=t.alias??a;return`${n}.${e===n?a:e}.${t.nullable}.${t.type}.${t.length??a}.${t.defaultValue??a}.${t.description??a}.${t.editable}.${t.visible}`}function O(t){return t?"coded-value"===t.type?j(t):"range"===t.type?T(t):JSON.stringify(t):a}function j(t){const{type:n}=t;return`${n}.${t.codedValues.map((({code:t,name:n})=>`${x(t)}.${n}`)).sort().join(".")}`}function x(t){return"number"==typeof t?`${p}${t}`:t}function T(t){const{maxValue:n,minValue:e,type:i}=t;return`${i}.${e}.${n}`}export{g as hashElementTemplate};