UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.11 kB
import{isSome as e}from"../../core/maybe.js";import{templateHasKey as t,replace as n}from"../../core/string.js";const o=e=>!!e.inputFields,s=(t,n)=>e(t)&&t.input?.type===n,i={typeFieldName:null,types:[]};function p(n,o,s){const i=Object.keys(o).filter((e=>t(n,e))),p=i.map((e=>o[e])),m=i.map((e=>s.get(e))).filter(e);return a(n,r(p,m))}function r(e,t){const n=t.map(((t,n)=>{let o=e[n];if(t.domain&&"coded-value"===t.domain.type){const e=t.domain.codedValues.find((e=>e.code===o));e?.name&&(o=e.name)}return[t.name,o]}));return Object.fromEntries(n)}function a(e,t){return n(n(e,(e=>`{${e.toLowerCase()}}`)),Object.fromEntries(Object.entries(t).map((([e,t])=>[e.toLowerCase(),t]))))}const m=e=>e?"subtype-sublayer"===e.type?{typeFieldName:e.parent?.subtypeField,types:e.parent?.subtypes}:"types"in e&&e.types?{typeFieldName:e.typeIdField,types:e.types.map((({id:e,name:t,domains:n})=>({code:e,name:t,domains:n})))}:i:i;export{r as getComputedAttributes,m as getNormalizedFeatureTypeInfo,s as isFieldElementWithInputType,o as isGroupField,p as parseFormTemplateString,a as substituteFieldTemplatesInString};