@vertigis/workflow 5.48.0 → 5.48.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{execute as executeIntersection}from"@arcgis/core/geometry/operators/intersectionOperator";import{validation}from"../../Validation.js";export class IntersectEngineTask{execute(e){const t=validation.array("geometry1",e.geometry1,validation.never),r=validation.array("geometry2",e.geometry2,validation.never),n=Math.max(t.length,r.length),a=[];for(let e=0;e<n;e++){const n=t[e],i=r[e];n&&i?a.push(executeIntersection(n,i)):n?a.push(n):i?a.push(i):a.push(void 0)}return{geometry:a[0],results:a}}}IntersectEngineTask.action="gcx:wf:arcgis::IntersectEngineTask",IntersectEngineTask.suite="gcx:wf:builtin";
1
+ import{executeMany}from"@arcgis/core/geometry/operators/intersectionOperator";import{validation}from"../../Validation.js";export class IntersectEngineTask{execute(e){const t=validation.array("geometry1",e.geometry1,validation.never),r=validation.array("geometry2",e.geometry2,validation.never),n=[];for(const e of r)n.push(...executeMany(t,e));return{geometry:n[0],results:n}}}IntersectEngineTask.action="gcx:wf:arcgis::IntersectEngineTask",IntersectEngineTask.suite="gcx:wf:builtin";
@@ -1 +1 @@
1
- import AdapterDateFns from"@vertigis/react-ui/AdapterDateFns";import Box from"@vertigis/react-ui/Box";import{LicenseInfo}from"@vertigis/react-ui/LicenseInfo";import LocalizationProvider from"@vertigis/react-ui/LocalizationProvider";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect,useState}from"react";import{FormComponent,FormElementComponent}from"../FormComponent.js";import{FormElementTypes}from"../constants.js";import{getDateFnsLocale,getMuiLocaleText}from"../dateUtilities.js";import{getKeyString}from"../keyboard.js";import{isMutuallyExclusiveSection}from"../utils.js";const PREFIX="Form";export const formClasses={body:"Form-body",footer:"Form-footer",formElementContent:"Form-element-content",formElementTitle:"Form-element-title",formElementWithTitleBeside:"Form-element-with-title-beside",header:"Form-header",main:"Form-main",root:"Form-root",row:"Form-row"};const StyledBox=styled(Box)(()=>({"h1, h2, h3":{margin:0},[`.${formClasses.formElementWithTitleBeside}`]:{alignItems:"start",display:"grid",gridTemplateColumns:"1fr 2fr",[`> .${formClasses.formElementTitle}`]:{gridColumnStart:1,margin:0,overflowWrap:"anywhere"},[`> .${formClasses.formElementContent}`]:{display:"inline-flex",flexDirection:"column",gridColumnStart:2,overflow:"auto"}},[`.${formClasses.row}`]:{display:"flex",gap:"0.5em","> *":{flexGrow:1},"> .CheckBox, > .CheckGroup, > .Image, > .Number, > .RadioGroup":{flexGrow:0},[`.${formClasses.formElementWithTitleBeside}`]:{gridTemplateColumns:"1fr 1fr"}}}));LicenseInfo.setLicenseKey("c14d2671e294e1c22b64a93ed8f2f0f9Tz04ODQ4NixFPTE3NDQ4MzUzNDMwMDAsUz1wcm8sTE09cGVycGV0dWFsLEtWPTI=");const Form=({className:e,component:t})=>{const[o,r]=useState(),[n,i]=useState(),{host:c}=t.props,{form:s}=c;if(useEffect(()=>{let e=!0;const t=c.deriveLocale();return getDateFnsLocale(t).then(t=>{e?r(t):console.warn("Component was unmounted while loading the locale.")}),getMuiLocaleText(t).then(t=>{e?i(t):console.warn("Component was unmounted while loading the locale.")}),()=>{e=!1}},[]),!o)return null;const m={host:c,type:"header",children:[]},l={host:c,type:"body",children:[]},a={host:c,type:"main",children:[]},d={host:c,type:"footer",children:[]},f={host:c,type:"body",children:[]},u={},p=[];function h(e,t){let o=u[t];o||(o=u[t]=[]);let r=o[e];return void 0===r&&(r=o[e]={host:c,type:"row",children:[]}),r}function y(e){if(void 0===e)return l;if("header"===e)return m;if("footer"===e)return d;let t;t="object"==typeof e?e.name:e;let o=(e=>{for(const t of p)if(t.name===e)return t})(t);return void 0===o&&(o={host:c,name:t,type:"section",children:[]},p.push(o)),o}function E(e){return e!==FormElementTypes.SECTION}function F(e){return!0!==e.hoisted&&(!1!==e.visible&&E(e.type))}function g(e){const t=C[e];return null==t||!E(t.type)&&(!0!==t.hoisted&&!1!==t.visible)}function x(e){return e===m||e===l||e===d?`${e.type}-section`:e.name}const C=s.elements,b=Object.keys(C).map(e=>[e,C[e]]).sort((e,t)=>{const o=e[1].section,r=t[1].section;return"header"===o||"footer"===r?Number.MIN_SAFE_INTEGER:"footer"===o||"header"===r?Number.MAX_SAFE_INTEGER:e[1].rowNumber===t[1].rowNumber?e[1].rowIndex-t[1].rowIndex:e[1].rowNumber-t[1].rowNumber});for(const e of b){const[t,o]=e;if(F(o))if(!0!==o.overlay){let e=y(o.section);if(void 0!==o.rowNumber){const t=x(e);e=h(o.rowNumber,t)}e.children.push(React.createElement(FormElementComponent,{key:t,host:c,type:"element",name:t,children:[]}))}else f.children.push(React.createElement(FormElementComponent,{key:t,host:c,type:"element",name:t,children:[]}))}const w=[];if(m.children.length>0&&w.push(React.createElement(FormComponent,{key:"header",...m})),f.children.length>0)w.push(React.createElement(FormComponent,{key:"main",...f}));else{let e,t;v(l);let o=0;const r=()=>{if(e){switch(t){case"accordion-section":k(e,++o,"accordionGroup");break;case"tab-section":k(e,++o,"tabGroup")}e=void 0,t=void 0}};for(const o of p){const n=o.name,i=C[n],c=i.format;t&&c!==t&&r(),g(n)&&(isMutuallyExclusiveSection(i)?e?e.push(o):(e=[o],t=c):v(o))}r(),a.children.length>0&&w.push(React.createElement(FormComponent,{key:"main",...a}))}function T(e){if(function(e){const t=x(e),o=u[t];if(o){const t=Object.keys(o).map(e=>parseInt(e)).sort((e,t)=>e-t);for(const r of t){const t=o[r];if(t.children.length>1){const o=`row-${r}`;e.children.push(React.createElement(FormComponent,{key:o,...t}))}else 1===t.children.length&&e.children.push(...t.children)}}}(e),e.children.length>0){const t=e===l?"body":`$${e.name}`;return React.createElement(FormComponent,{key:t,...e})}}function v(e){const t=T(e);t&&a.children.push(t)}function k(e,t,o){const r=[];for(const t of e){const e=T(t);e&&r.push(e)}const n=`${o}${t}`,i={children:r,host:c,name:n,type:o};a.children.push(React.createElement(FormComponent,{key:n,...i}))}return d.children.length>0&&w.push(React.createElement(FormComponent,{key:"footer",...d})),React.createElement(StyledBox,{className:clsx(e,formClasses.root),onKeyDown:function(e){"enter"===getKeyString(e)&&(e.target instanceof HTMLButtonElement||c.post("clicked"))},ref:function(e){c.renderFocus(e)}},React.createElement(LocalizationProvider,{dateAdapter:AdapterDateFns,adapterLocale:o,localeText:{...n,start:c.renderText("@date-range-picker-start-text"),end:c.renderText("@date-range-picker-end-text"),cancelButtonLabel:c.renderText("@common-cancel"),clearButtonLabel:c.renderText("@common-clear"),okButtonLabel:c.renderText("@common-ok"),todayButtonLabel:c.renderText("@common-today")}},w))};export default Form;
1
+ import AdapterDateFns from"@vertigis/react-ui/AdapterDateFns";import Box from"@vertigis/react-ui/Box";import{LicenseInfo}from"@vertigis/react-ui/LicenseInfo";import LocalizationProvider from"@vertigis/react-ui/LocalizationProvider";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect,useState}from"react";import{FormComponent,FormElementComponent}from"../FormComponent.js";import{FormElementTypes}from"../constants.js";import{getDateFnsLocale,getMuiLocaleText}from"../dateUtilities.js";import{getKeyString}from"../keyboard.js";import{compareElementIndex,compareRowNumberAndRowIndex,isMutuallyExclusiveSection,isSingleColumnLayout}from"../utils.js";const PREFIX="Form";export const formClasses={body:"Form-body",footer:"Form-footer",formElementContent:"Form-element-content",formElementTitle:"Form-element-title",formElementWithTitleBeside:"Form-element-with-title-beside",header:"Form-header",main:"Form-main",root:"Form-root",row:"Form-row"};const StyledBox=styled(Box)(()=>({"h1, h2, h3":{margin:0},[`.${formClasses.formElementWithTitleBeside}`]:{alignItems:"start",display:"grid",gridTemplateColumns:"1fr 2fr",[`> .${formClasses.formElementTitle}`]:{gridColumnStart:1,margin:0,overflowWrap:"anywhere"},[`> .${formClasses.formElementContent}`]:{display:"inline-flex",flexDirection:"column",gridColumnStart:2,overflow:"auto"}},[`.${formClasses.row}`]:{display:"flex",gap:"0.5em","> *":{flexGrow:1},"> .CheckBox, > .CheckGroup, > .Image, > .Number, > .RadioGroup":{flexGrow:0},[`.${formClasses.formElementWithTitleBeside}`]:{gridTemplateColumns:"1fr 1fr"}}}));LicenseInfo.setLicenseKey("c14d2671e294e1c22b64a93ed8f2f0f9Tz04ODQ4NixFPTE3NDQ4MzUzNDMwMDAsUz1wcm8sTE09cGVycGV0dWFsLEtWPTI=");const Form=({className:e,component:t})=>{const[o,n]=useState(),[r,i]=useState(),{host:c}=t.props,{form:l}=c;if(useEffect(()=>{let e=!0;const t=c.deriveLocale();return getDateFnsLocale(t).then(t=>{e?n(t):console.warn("Component was unmounted while loading the locale.")}),getMuiLocaleText(t).then(t=>{e?i(t):console.warn("Component was unmounted while loading the locale.")}),()=>{e=!1}},[]),!o)return null;const s={host:c,type:"header",children:[]},m={host:c,type:"body",children:[]},a={host:c,type:"main",children:[]},d={host:c,type:"footer",children:[]},f={host:c,type:"body",children:[]},u={},p=[];function h(e,t){let o=u[t];o||(o=u[t]=[]);let n=o[e];return void 0===n&&(n=o[e]={host:c,type:"row",children:[]}),n}function y(e){if(void 0===e)return m;if("header"===e)return s;if("footer"===e)return d;let t;t="object"==typeof e?e.name:e;let o=(e=>{for(const t of p)if(t.name===e)return t})(t);return void 0===o&&(o={host:c,name:t,type:"section",children:[]},p.push(o)),o}function g(e){return e!==FormElementTypes.SECTION}function E(e){return!0!==e.hoisted&&(!1!==e.visible&&g(e.type))}function F(e){const t=l.elements[e];return null==t||!g(t.type)&&(!0!==t.hoisted&&!1!==t.visible)}function x(e){return e===s||e===m||e===d?`${e.type}-section`:e.name}const C=Object.entries(l.elements).sort(isSingleColumnLayout(l.elements)?compareElementIndex:compareRowNumberAndRowIndex);for(const e of C){const[t,o]=e;if(E(o))if(!0!==o.overlay){let e=y(o.section);if(void 0!==o.rowNumber){const t=x(e);e=h(o.rowNumber,t)}e.children.push(React.createElement(FormElementComponent,{key:t,host:c,type:"element",name:t,children:[]}))}else f.children.push(React.createElement(FormElementComponent,{key:t,host:c,type:"element",name:t,children:[]}))}const w=[];if(s.children.length>0&&w.push(React.createElement(FormComponent,{key:"header",...s})),f.children.length>0)w.push(React.createElement(FormComponent,{key:"main",...f}));else{let e,t;T(m);let o=0;const n=()=>{if(e){switch(t){case"accordion-section":v(e,++o,"accordionGroup");break;case"tab-section":v(e,++o,"tabGroup")}e=void 0,t=void 0}};for(const o of p){const r=o.name,i=l.elements[r],c=i.format;t&&c!==t&&n(),F(r)&&(isMutuallyExclusiveSection(i)?e?e.push(o):(e=[o],t=c):T(o))}n(),a.children.length>0&&w.push(React.createElement(FormComponent,{key:"main",...a}))}function b(e){if(function(e){const t=x(e),o=u[t];if(o){const t=Object.keys(o).map(e=>parseInt(e)).sort((e,t)=>e-t);for(const n of t){const t=o[n];if(t.children.length>1){const o=`row-${n}`;e.children.push(React.createElement(FormComponent,{key:o,...t}))}else 1===t.children.length&&e.children.push(...t.children)}}}(e),e.children.length>0){const t=e===m?"body":`$${e.name}`;return React.createElement(FormComponent,{key:t,...e})}}function T(e){const t=b(e);t&&a.children.push(t)}function v(e,t,o){const n=[];for(const t of e){const e=b(t);e&&n.push(e)}const r=`${o}${t}`,i={children:n,host:c,name:r,type:o};a.children.push(React.createElement(FormComponent,{key:r,...i}))}return d.children.length>0&&w.push(React.createElement(FormComponent,{key:"footer",...d})),React.createElement(StyledBox,{className:clsx(e,formClasses.root),onKeyDown:function(e){"enter"===getKeyString(e)&&(e.target instanceof HTMLButtonElement||c.post("clicked"))},ref:function(e){c.renderFocus(e)}},React.createElement(LocalizationProvider,{dateAdapter:AdapterDateFns,adapterLocale:o,localeText:{...r,start:c.renderText("@date-range-picker-start-text"),end:c.renderText("@date-range-picker-end-text"),cancelButtonLabel:c.renderText("@common-cancel"),clearButtonLabel:c.renderText("@common-clear"),okButtonLabel:c.renderText("@common-ok"),todayButtonLabel:c.renderText("@common-today")}},w))};export default Form;
package/forms/utils.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as text from "./textUtilities";
2
2
  import type { FormComponent } from "./FormComponent";
3
+ import type { ElementTuple } from "./FormDefinition";
3
4
  import type * as defs from "./FormDefinition";
4
5
  import type { FormElementProps } from "./index";
5
6
  import type { Theme } from "@vertigis/react-ui/styles";
@@ -210,3 +211,34 @@ export declare function getItemColors(itemAppearance: defs.ItemAppearance, theme
210
211
  };
211
212
  export declare function getItemSize(size?: string): defs.ItemSize;
212
213
  export declare function getShowBorder(emphasis: defs.Emphasis | "custom", showBorder: boolean | undefined): boolean;
214
+ /**
215
+ * This function checks the elements to decide if they are an older single-column layout, or a newer
216
+ * layout that supports side-by-side elements.
217
+ *
218
+ * Since Workflow 5.25, form element position information has been saved in `rowNumber` and `rowIndex` values, allowing
219
+ * elements to be placed beside each other on the same row.
220
+ * Prior to that, the `index` property was used and all elements were stacked in a single column.
221
+ *
222
+ * The header and footer are excluded from this check as they never contain any of these properties.
223
+ * @param elements A set of form elements to be instpected.
224
+ * @returns True if the elements should be treated as a single-column layout, false if they should allow side-by-sde elements.
225
+ */
226
+ export declare function isSingleColumnLayout(elements: Record<string, defs.Element>): boolean;
227
+ /**
228
+ * This function orders elements based on their `index` property, with the `header` always first and the `footer` always last.
229
+ * @param elementTuple1 The first element to compare.
230
+ * @param elementTuple2 The second element to compare.
231
+ * @returns A negative number if `elementTuple1` should be before `elementTuple2`,
232
+ * a positive number if `elementTuple2` should be before `elementTuple1`,
233
+ * or zero if their `index` values are the same.
234
+ */
235
+ export declare function compareElementIndex(elementTuple1: ElementTuple, elementTuple2: ElementTuple): number;
236
+ /**
237
+ * This function orders elements based on their `rowNumber` and `rowIndex` properties, with the `header` always first and the `footer` always last.
238
+ * @param elementTuple1 The first element to compare.
239
+ * @param elementTuple2 The second element to compare.
240
+ * @returns A negative number if `elementTuple1` should be before `elementTuple2`,
241
+ * a positive number if `elementTuple2` should be before `elementTuple1`,
242
+ * or zero if their `rowNumber` and `rowIndex` values are the same.
243
+ */
244
+ export declare function compareRowNumberAndRowIndex(elementTuple1: ElementTuple, elementTuple2: ElementTuple): number;
package/forms/utils.js CHANGED
@@ -1 +1 @@
1
- import{FormElementTypes}from"./constants.js";import*as text from"./textUtilities.js";const DEFAULT_DEBOUNCE_DELAY=300,DEFAULT_THROTTLE_DELAY=100;export{text};let next=0,seed=(new Date).valueOf();const guid="5DDC9A38-AAAB-44C1-AD87-415160F43D75";export function makeId(){return next>=2147483648&&(seed=(new Date).valueOf(),next=0),`${guid}:${seed}:${next++}`}function indexOf(e,t){if(null==e)return;const r=e.index;return"number"==typeof r?r:t}function compareIndex(e,t){return compareNumber(e.index,t.index)}function compareNumber(e,t){return e<t?-1:e>t?1:0}export function sortAndFilter(e,t){void 0===t&&(t=indexOf);const r={};if("object"!=typeof e||null===e)return r;let n=0;const o=[];for(const r in e){const i=e[r],s=t(i,n++);"number"==typeof s&&o.push({key:r,index:s,item:i})}for(const e of o.sort(compareIndex))r[e.key]=e.item;return r}export function inspectItems(e,t,r){let n;const o=sortAndFilter(t,function(e,t){if(null==e||!1===e.visible)return;const r=e.index;return"number"==typeof r?r:t});if(null!=e&&void 0!==o[e]||(e=void 0),void 0===e&&null!=r)for(const t in o){if(o[t].value===r){e=t;break}e=void 0}return void 0!==e?(n=o[e].label,r=o[e].value):(n=void 0,r=void 0),{current:e,items:o,label:n,value:r}}export function makeSafeClassName(e){return`gcx-forms-${e?.replace(/[\W]/g,"")||"element"}`}let idSuffix=0;export function makeUniqueId(e){return`${makeSafeClassName(e)}-${++idSuffix}`}function addSuffix(e,t){return`${e}-${t}`}export function getAccessibleDescriptionId(e){return addSuffix(e,"accessible-description")}export function getDescriptionId(e){return addSuffix(e,"description")}export function getInputId(e){return addSuffix(e,"input")}export function getLabelId(e){return addSuffix(e,"label")}function isObjectType(e,t){return"object"==typeof e&&null!==e&&(!Array.isArray(e)&&e.refValueType===t)}export function isSection(e){return e?.type===FormElementTypes.SECTION}export function isAccordionSection(e){return isSection(e)&&"accordion-section"===e.format}export function isCollapsibleSection(e){return isSection(e)&&"collapsible-section"===e.format}export function isFieldsetSection(e){return isSection(e)&&"fieldset-section"===e.format}export function isMutuallyExclusiveSection(e){return isAccordionSection(e)||isTabSection(e)}export function isTabSection(e){return isSection(e)&&"tab-section"===e.format}export function isNumber(e){return"number"==typeof e}export function isString(e){return"string"==typeof e}export function isDataRef(e){return isObjectType(e,"data")}export function isDateRangeRef(e){return isObjectType(e,"daterange")}export function isDateTimeRef(e){return isObjectType(e,"date")||isObjectType(e,"time")||isObjectType(e,"datetime")}export function isFilesRef(e){return isObjectType(e,"files")}export function isScanRef(e){return isObjectType(e,"scan")}export function isGeometryRef(e){return isObjectType(e,"geometry")}export function isItemsRef(e){return isObjectType(e,"items")}export function isNumberRef(e){return isObjectType(e,"number")}export function sanitizeGeometryRef(e){if(isGeometryRef(e)){const t=e.geometry;if(Array.isArray(t)&&t.length>0)switch(e.format){case"circle":case"extent":case"line":case"multipoint":case"point":case"polygon":case"polygon-freehand":case"polyline":case"polyline-freehand":return e}}}export function createGeometryRef(e){return{refValueType:"geometry",format:e,geometry:[]}}export function debounce(e,t=300){let r;return function(...n){const o=()=>{r=void 0,e.apply(this,n)};return clearTimeout(r),r=setTimeout(o,t),{now:()=>{r&&(clearTimeout(r),o())},cancel:()=>{r&&(clearTimeout(r),r=void 0)}}}}export function throttle(e,t=100){let r,n;return function(){const o=Date.now(),i=(...t)=>{n=void 0,r=Date.now(),e.apply(this,t)};r&&o<r+t?(clearTimeout(n),n=setTimeout(i,t)):i()}}export function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}export function getElementProps(e,t){const{enabled:r,id:n,raiseEvent:o,setItemProperty:i,setProperty:s,setValue:u}=e,{format:c,manualEntry:a,showMinMaxLabels:f,showTickMarks:p,size:l,type:m,value:d,wrap:y}=t;return{...t,enabled:!!r,id:n,raiseEvent:o,setItemProperty:i,setProperty:s,setValue:u,format:c,manualEntry:a,showMinMaxLabels:f,showTickMarks:p,size:l,type:m,value:d,wrap:y,element:t,name:e.props.name,component:e}}export function getItemId(e,t){if(e)for(const r in t)if(t[r]===e)return r}const BorderStyleArray=["rounded","square"],EmphasisArray=["high","low","medium"],IconPositionArray=["above","below","before","after"],ItemSizeArray=["small","medium","large"],ItemAppearanceKeysArray=["backgroundColor","borderStyle","emphasis","foregroundColor","icon","iconPosition","showBorder","size"],NumberFormatKeysArray=["currency","customDisplayFormat","displayFormat","lowerBound","precision","step","timeFormat","upperBound"],SizeKeysArray=["height","width"];export function isItemAppearanceProperty(e){return ItemAppearanceKeysArray.includes(e)}export function isNumberFormatProperty(e){return NumberFormatKeysArray.includes(e)}export function isSizeProperty(e){return SizeKeysArray.includes(e)}function isBorderStyle(e){return void 0!==e&&BorderStyleArray.includes(e)}function isEmphasis(e){return void 0!==e&&EmphasisArray.includes(e)}function isIconPosition(e){return void 0!==e&&IconPositionArray.includes(e)}function isItemSize(e){return void 0!==e&&ItemSizeArray.includes(e)}export function getBorderStyle(e){return isBorderStyle(e)?e:"square"}export function getEmphasis(e){return"string"!=typeof e||!isEmphasis(e)&&"custom"!==e?"medium":e}export function getIconPosition(e){return isIconPosition(e)?e:"before"}export function getItemColors(e,t){return"custom"!==e.emphasis?{}:{foregroundColor:e.foregroundColor??t.palette.primary.main,backgroundColor:e.backgroundColor??t.palette.background.default}}export function getItemSize(e){return isItemSize(e)?e:"medium"}export function getShowBorder(e,t){switch(e){case"custom":return!1!==t;case"low":return!1;default:return!0}}
1
+ import{FormElementTypes}from"./constants.js";import*as text from"./textUtilities.js";const DEFAULT_DEBOUNCE_DELAY=300,DEFAULT_THROTTLE_DELAY=100;export{text};let next=0,seed=(new Date).valueOf();const guid="5DDC9A38-AAAB-44C1-AD87-415160F43D75";export function makeId(){return next>=2147483648&&(seed=(new Date).valueOf(),next=0),`${guid}:${seed}:${next++}`}function indexOf(e,t){if(null==e)return;const r=e.index;return"number"==typeof r?r:t}function compareIndex(e,t){return compareNumber(e.index,t.index)}function compareNumber(e,t){return e<t?-1:e>t?1:0}export function sortAndFilter(e,t){void 0===t&&(t=indexOf);const r={};if("object"!=typeof e||null===e)return r;let n=0;const o=[];for(const r in e){const i=e[r],u=t(i,n++);"number"==typeof u&&o.push({key:r,index:u,item:i})}for(const e of o.sort(compareIndex))r[e.key]=e.item;return r}export function inspectItems(e,t,r){let n;const o=sortAndFilter(t,function(e,t){if(null==e||!1===e.visible)return;const r=e.index;return"number"==typeof r?r:t});if(null!=e&&void 0!==o[e]||(e=void 0),void 0===e&&null!=r)for(const t in o){if(o[t].value===r){e=t;break}e=void 0}return void 0!==e?(n=o[e].label,r=o[e].value):(n=void 0,r=void 0),{current:e,items:o,label:n,value:r}}export function makeSafeClassName(e){return`gcx-forms-${e?.replace(/[\W]/g,"")||"element"}`}let idSuffix=0;export function makeUniqueId(e){return`${makeSafeClassName(e)}-${++idSuffix}`}function addSuffix(e,t){return`${e}-${t}`}export function getAccessibleDescriptionId(e){return addSuffix(e,"accessible-description")}export function getDescriptionId(e){return addSuffix(e,"description")}export function getInputId(e){return addSuffix(e,"input")}export function getLabelId(e){return addSuffix(e,"label")}function isObjectType(e,t){return"object"==typeof e&&null!==e&&(!Array.isArray(e)&&e.refValueType===t)}export function isSection(e){return e?.type===FormElementTypes.SECTION}export function isAccordionSection(e){return isSection(e)&&"accordion-section"===e.format}export function isCollapsibleSection(e){return isSection(e)&&"collapsible-section"===e.format}export function isFieldsetSection(e){return isSection(e)&&"fieldset-section"===e.format}export function isMutuallyExclusiveSection(e){return isAccordionSection(e)||isTabSection(e)}export function isTabSection(e){return isSection(e)&&"tab-section"===e.format}export function isNumber(e){return"number"==typeof e}export function isString(e){return"string"==typeof e}export function isDataRef(e){return isObjectType(e,"data")}export function isDateRangeRef(e){return isObjectType(e,"daterange")}export function isDateTimeRef(e){return isObjectType(e,"date")||isObjectType(e,"time")||isObjectType(e,"datetime")}export function isFilesRef(e){return isObjectType(e,"files")}export function isScanRef(e){return isObjectType(e,"scan")}export function isGeometryRef(e){return isObjectType(e,"geometry")}export function isItemsRef(e){return isObjectType(e,"items")}export function isNumberRef(e){return isObjectType(e,"number")}export function sanitizeGeometryRef(e){if(isGeometryRef(e)){const t=e.geometry;if(Array.isArray(t)&&t.length>0)switch(e.format){case"circle":case"extent":case"line":case"multipoint":case"point":case"polygon":case"polygon-freehand":case"polyline":case"polyline-freehand":return e}}}export function createGeometryRef(e){return{refValueType:"geometry",format:e,geometry:[]}}export function debounce(e,t=300){let r;return function(...n){const o=()=>{r=void 0,e.apply(this,n)};return clearTimeout(r),r=setTimeout(o,t),{now:()=>{r&&(clearTimeout(r),o())},cancel:()=>{r&&(clearTimeout(r),r=void 0)}}}}export function throttle(e,t=100){let r,n;return function(){const o=Date.now(),i=(...t)=>{n=void 0,r=Date.now(),e.apply(this,t)};r&&o<r+t?(clearTimeout(n),n=setTimeout(i,t)):i()}}export function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}export function getElementProps(e,t){const{enabled:r,id:n,raiseEvent:o,setItemProperty:i,setProperty:u,setValue:s}=e,{format:c,manualEntry:a,showMinMaxLabels:f,showTickMarks:p,size:m,type:l,value:d,wrap:y}=t;return{...t,enabled:!!r,id:n,raiseEvent:o,setItemProperty:i,setProperty:u,setValue:s,format:c,manualEntry:a,showMinMaxLabels:f,showTickMarks:p,size:m,type:l,value:d,wrap:y,element:t,name:e.props.name,component:e}}export function getItemId(e,t){if(e)for(const r in t)if(t[r]===e)return r}const BorderStyleArray=["rounded","square"],EmphasisArray=["high","low","medium"],IconPositionArray=["above","below","before","after"],ItemSizeArray=["small","medium","large"],ItemAppearanceKeysArray=["backgroundColor","borderStyle","emphasis","foregroundColor","icon","iconPosition","showBorder","size"],NumberFormatKeysArray=["currency","customDisplayFormat","displayFormat","lowerBound","precision","step","timeFormat","upperBound"],SizeKeysArray=["height","width"];export function isItemAppearanceProperty(e){return ItemAppearanceKeysArray.includes(e)}export function isNumberFormatProperty(e){return NumberFormatKeysArray.includes(e)}export function isSizeProperty(e){return SizeKeysArray.includes(e)}function isBorderStyle(e){return void 0!==e&&BorderStyleArray.includes(e)}function isEmphasis(e){return void 0!==e&&EmphasisArray.includes(e)}function isIconPosition(e){return void 0!==e&&IconPositionArray.includes(e)}function isItemSize(e){return void 0!==e&&ItemSizeArray.includes(e)}export function getBorderStyle(e){return isBorderStyle(e)?e:"square"}export function getEmphasis(e){return"string"!=typeof e||!isEmphasis(e)&&"custom"!==e?"medium":e}export function getIconPosition(e){return isIconPosition(e)?e:"before"}export function getItemColors(e,t){return"custom"!==e.emphasis?{}:{foregroundColor:e.foregroundColor??t.palette.primary.main,backgroundColor:e.backgroundColor??t.palette.background.default}}export function getItemSize(e){return isItemSize(e)?e:"medium"}export function getShowBorder(e,t){switch(e){case"custom":return!1!==t;case"low":return!1;default:return!0}}export function isSingleColumnLayout(e){return Object.entries(e).filter(e=>!["header","footer"].includes(e[0])).some(e=>void 0===e[1].rowNumber||void 0===e[1].rowIndex)}export function compareElementIndex(e,t){const r=e[1],n=t[1],o=r.section,i=n.section;return"header"===o||"footer"===i?Number.MIN_SAFE_INTEGER:"footer"===o||"header"===i?Number.MAX_SAFE_INTEGER:r.index-n.index}export function compareRowNumberAndRowIndex(e,t){const r=e[1],n=t[1],o=r.section,i=n.section;return"header"===o||"footer"===i?Number.MIN_SAFE_INTEGER:"footer"===o||"header"===i?Number.MAX_SAFE_INTEGER:r.rowNumber===n.rowNumber?r.rowIndex-n.rowIndex:r.rowNumber-n.rowNumber}
package/libs/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "5.48.0+16";
1
+ export declare const VERSION = "5.48.1+2";
package/libs/version.js CHANGED
@@ -1 +1 @@
1
- export const VERSION="5.48.0+16";
1
+ export const VERSION="5.48.1+2";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertigis/workflow",
3
- "version": "5.48.0",
3
+ "version": "5.48.1",
4
4
  "author": "VertiGIS",
5
5
  "dependencies": {
6
6
  "@date-fns/utc": "^1.2.0",