@vertigis/workflow 5.48.1 → 5.48.2

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.
@@ -4,5 +4,5 @@ import type { defs } from "../FormHost";
4
4
  /**
5
5
  * The component for the "Button Bar" Form Element.
6
6
  */
7
- declare const ButtonBar: React.ForwardRefExoticComponent<FormElementProps<defs.Value | undefined> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const ButtonBar: React.ForwardRefExoticComponent<FormElementProps<defs.Value | undefined> & React.RefAttributes<HTMLFieldSetElement>>;
8
8
  export default ButtonBar;
@@ -4,5 +4,5 @@ import type { defs } from "../FormHost";
4
4
  /**
5
5
  * The component for the "Check Group" Form Element.
6
6
  */
7
- declare const CheckGroup: React.ForwardRefExoticComponent<FormElementProps<defs.ItemsRef | undefined> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const CheckGroup: React.ForwardRefExoticComponent<FormElementProps<defs.ItemsRef | undefined> & React.RefAttributes<HTMLFieldSetElement>>;
8
8
  export default CheckGroup;
@@ -9,5 +9,5 @@ export declare const filePickerClasses: {
9
9
  /**
10
10
  * The component for the "File Picker" Form Element.
11
11
  */
12
- declare const FilePicker: React.ForwardRefExoticComponent<FormElementProps<defs.FilesRef | undefined> & React.RefAttributes<HTMLDivElement>>;
12
+ declare const FilePicker: React.ForwardRefExoticComponent<FormElementProps<defs.FilesRef | undefined> & React.RefAttributes<HTMLFieldSetElement>>;
13
13
  export default FilePicker;
@@ -33,5 +33,5 @@ interface FormElementProps {
33
33
  */
34
34
  name: string | undefined;
35
35
  }
36
- declare const _default: React.ForwardRefExoticComponent<FormElementProps & React.RefAttributes<HTMLDivElement>>;
36
+ declare const _default: React.ForwardRefExoticComponent<FormElementProps & React.RefAttributes<HTMLDivElement | HTMLFieldSetElement>>;
37
37
  export default _default;
@@ -4,5 +4,5 @@ import type * as defs from "../FormDefinition";
4
4
  /**
5
5
  * The component for the "Geometry Picker" Form Element.
6
6
  */
7
- declare const GeometryPicker: React.ForwardRefExoticComponent<FormElementProps<defs.GeometryRef | undefined> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const GeometryPicker: React.ForwardRefExoticComponent<FormElementProps<defs.GeometryRef | undefined> & React.RefAttributes<HTMLFieldSetElement>>;
8
8
  export default GeometryPicker;
@@ -1 +1 @@
1
- import Box from"@vertigis/react-ui/Box";import Button from"@vertigis/react-ui/Button";import IconButton from"@vertigis/react-ui/IconButton";import List from"@vertigis/react-ui/List";import ListItemButton from"@vertigis/react-ui/ListItemButton";import Plus from"@vertigis/react-ui/icons/Plus";import Trash from"@vertigis/react-ui/icons/Trash";import*as React from"react";import{forwardRef,useContext,useEffect,useRef,useState}from"react";import HostContext from"../hostContext.js";import{sanitizeGeometryRef,text}from"../utils.js";import FormElement from"./FormElement.js";import GeometryPickerListItem from"./GeometryPickerListItem.js";import Markdown from"./Markdown.js";import{useFocusCallback}from"./common.js";const GeometryPicker=forwardRef(({autoActivate:e,className:t,element:r,enabled:o,itemLabel:n,name:i,prompt:s,raiseEvent:c,setProperty:a,setValue:l,size:m,state:u,tooltip:d,value:f},p)=>{const g=useContext(HostContext),[h,k]=useState([]),[y,v]=useState(""),x=u,E=useRef(!1);let R=5;"number"==typeof m&&(R=m>1?Math.ceil(m):1),useEffect(()=>{F(p.current)},[p]),useEffect(()=>{const e=sanitizeGeometryRef(f);f!==e&&l(e,!1),void 0!==f&&(Array.isArray(n)?k(n):(k([]),text.isMarkdown(n)?n.markdown&&v(n):text.isStatus(n)?n.status&&v(n.status):n&&v(n))),null==x&&a("state",[])},[f]);const[b,B]=useState([]),I=useFocusCallback(o,i,g),C=e=>()=>{const t=b.indexOf(e),r=[...b],o=L(e);-1===t?(o.checked=!0,r.push(e)):(o.checked=!1,r.splice(t,1)),B(r)},L=e=>{let t=x[e];return null==t&&(x.length<=e&&(x.length=e,x.push({})),t=x[e]),t},P=e=>()=>{let t;if(f.geometry.length>1){const r=[...f.geometry];if(r.splice(e,1),t={...f,geometry:r},x.splice(e,1),e<h.length){const t=[...h];t.splice(e,1),k(t)}}else x.length=0;const r=[];for(const t of b)t<e?r.push(t):t>e&&r.push(t-1);B(r),l(t,{argument:"remove"})},w=e=>t=>{I(t),null!==t&&(t.checked=!!L(e).checked)},G=e=>{o&&P(e)()},S=(e,t,r)=>{const o=L(e);o.focused=t,o.pending=r,g.renderState(i,"geometry",x)};let j=o;const M=[];if(void 0!==f&&void 0!==x){j=o&&f.geometry.length<R;const e=g.renderText("@geometry-picker-remove-item-label");for(const t of f.geometry){const r=M.length;L(r).content=t;const n=`checkbox-list-label-${r}`;M.push(React.createElement(GeometryPickerListItem,{deleteItem:G,disablePadding:!0,itemIndex:r,key:"$"+r,secondaryAction:React.createElement(IconButton,{"aria-label":e,className:"delete",disabled:!o,edge:"end",onClick:P(r),ref:I,title:e},React.createElement(Trash,null)),updateHighlight:S},React.createElement(ListItemButton,{onClick:C(r),ref:w(r),selected:-1!==b.indexOf(r)},React.createElement(Markdown,{id:n,inline:!0,text:h[r]||y}))))}}const T=()=>{c("clicked",f)},A=g.renderText(d),F=e=>{let t=x;null===e&&(r.visible||null==x&&a("state",[]),t=void 0),g.renderState(i,"geometry",t)};return o&&e&&!E.current&&(setTimeout(()=>{a("autoActivate",void 0),E.current=!1,j&&T()}),E.current=!0),React.createElement(FormElement,{className:t,component:"fieldset",element:r,name:i,ref:p},React.createElement(List,null,M),React.createElement(Box,null,React.createElement(Button,{disabled:!j,onClick:T,ref:I,startIcon:React.createElement(Plus,null),title:A,variant:"outlined"},React.createElement(Markdown,{inline:!0,text:s||""}))))});export default GeometryPicker;
1
+ import Box from"@vertigis/react-ui/Box";import Button from"@vertigis/react-ui/Button";import IconButton from"@vertigis/react-ui/IconButton";import List from"@vertigis/react-ui/List";import ListItemButton from"@vertigis/react-ui/ListItemButton";import Plus from"@vertigis/react-ui/icons/Plus";import Trash from"@vertigis/react-ui/icons/Trash";import*as React from"react";import{forwardRef,useContext,useEffect,useImperativeHandle,useRef,useState}from"react";import HostContext from"../hostContext.js";import{sanitizeGeometryRef,text}from"../utils.js";import FormElement from"./FormElement.js";import GeometryPickerListItem from"./GeometryPickerListItem.js";import Markdown from"./Markdown.js";import{useFocusCallback}from"./common.js";const GeometryPicker=forwardRef(({autoActivate:e,className:t,element:r,enabled:o,itemLabel:n,name:i,prompt:s,raiseEvent:c,setProperty:a,setValue:l,size:m,state:u,tooltip:d,value:f},p)=>{const g=useRef(null),h=useContext(HostContext),[k,v]=useState([]),[y,x]=useState(""),R=u,E=useRef(!1);let I=5;useImperativeHandle(p,()=>(H(),g.current)),"number"==typeof m&&(I=m>1?Math.ceil(m):1),useEffect(()=>()=>{H()},[g.current]),useEffect(()=>{const e=sanitizeGeometryRef(f);f!==e&&l(e,!1),void 0!==f&&(Array.isArray(n)?v(n):(v([]),text.isMarkdown(n)?n.markdown&&x(n):text.isStatus(n)?n.status&&x(n.status):n&&x(n))),null==R&&a("state",[])},[f]);const[b,B]=useState([]),C=useFocusCallback(o,i,h),L=e=>()=>{const t=b.indexOf(e),r=[...b],o=P(e);-1===t?(o.checked=!0,r.push(e)):(o.checked=!1,r.splice(t,1)),B(r)},P=e=>{let t=R[e];return null==t&&(R.length<=e&&(R.length=e,R.push({})),t=R[e]),t},w=e=>()=>{let t;if(f.geometry.length>1){const r=[...f.geometry];if(r.splice(e,1),t={...f,geometry:r},R.splice(e,1),e<k.length){const t=[...k];t.splice(e,1),v(t)}}else R.length=0;const r=[];for(const t of b)t<e?r.push(t):t>e&&r.push(t-1);B(r),l(t,{argument:"remove"})},G=e=>t=>{C(t),null!==t&&(t.checked=!!P(e).checked)},S=e=>{o&&w(e)()},j=(e,t,r)=>{const o=P(e);o.focused=t,o.pending=r,h.renderState(i,"geometry",R)};let M=o;const T=[];if(void 0!==f&&void 0!==R){M=o&&f.geometry.length<I;const e=h.renderText("@geometry-picker-remove-item-label");for(const t of f.geometry){const r=T.length;P(r).content=t;const n=`checkbox-list-label-${r}`;T.push(React.createElement(GeometryPickerListItem,{deleteItem:S,disablePadding:!0,itemIndex:r,key:"$"+r,secondaryAction:React.createElement(IconButton,{"aria-label":e,className:"delete",disabled:!o,edge:"end",onClick:w(r),ref:C,title:e},React.createElement(Trash,null)),updateHighlight:j},React.createElement(ListItemButton,{onClick:L(r),ref:G(r),selected:-1!==b.indexOf(r)},React.createElement(Markdown,{id:n,inline:!0,text:k[r]||y}))))}}const A=()=>{c("clicked",f)},F=h.renderText(d),H=()=>{let e=R;null===g.current&&(r.visible||null==R&&a("state",[]),e=void 0),h.renderState(i,"geometry",e)};return o&&e&&!E.current&&(setTimeout(()=>{a("autoActivate",void 0),E.current=!1,M&&A()}),E.current=!0),React.createElement(FormElement,{className:t,component:"fieldset",element:r,name:i,ref:g},React.createElement(List,null,T),React.createElement(Box,null,React.createElement(Button,{disabled:!M,onClick:A,ref:C,startIcon:React.createElement(Plus,null),title:F,variant:"outlined"},React.createElement(Markdown,{inline:!0,text:s||""}))))});export default GeometryPicker;
@@ -11,5 +11,5 @@ export declare const itemPickerClasses: {
11
11
  };
12
12
  declare const ItemPicker: React.ForwardRefExoticComponent<FormElementProps<defs.ItemsRef | undefined> & {
13
13
  spacing?: number;
14
- } & React.RefAttributes<HTMLDivElement>>;
14
+ } & React.RefAttributes<HTMLFieldSetElement>>;
15
15
  export default ItemPicker;
@@ -1 +1 @@
1
- import Checkbox from"@vertigis/react-ui/Checkbox";import FormControl from"@vertigis/react-ui/FormControl";import FormControlLabel from"@vertigis/react-ui/FormControlLabel";import FormLabel from"@vertigis/react-ui/FormLabel";import IconButton from"@vertigis/react-ui/IconButton";import Input from"@vertigis/react-ui/Input";import InputAdornment from"@vertigis/react-ui/InputAdornment";import List from"@vertigis/react-ui/List";import ListItem from"@vertigis/react-ui/ListItem";import ListItemButton from"@vertigis/react-ui/ListItemButton";import ListItemIcon from"@vertigis/react-ui/ListItemIcon";import ListItemText,{listItemTextClasses}from"@vertigis/react-ui/ListItemText";import Radio from"@vertigis/react-ui/Radio";import RadioGroup from"@vertigis/react-ui/RadioGroup";import Stack from"@vertigis/react-ui/Stack";import Typography from"@vertigis/react-ui/Typography";import Close from"@vertigis/react-ui/icons/Close";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{forwardRef,useContext,useEffect,useMemo,useState}from"react";import{Orientation}from"../constants.js";import HostContext from"../hostContext.js";import{getKeyString}from"../keyboard.js";import{areValuesEqual}from"../listUtilities.js";import{debounce,isDataRef,isGeometryRef,makeSafeClassName,makeUniqueId}from"../utils.js";import FormElement from"./FormElement.js";import Markdown from"./Markdown.js";import{useFocusCallback}from"./common.js";const PREFIX="ItemPicker";export const itemPickerClasses={allNone:`${PREFIX}-all-none`,button:`${PREFIX}-list-item-button`,clearIcon:`${PREFIX}-clear-button`,horizontal:`${PREFIX}-horizontal`,item:`${PREFIX}-list-item`,items:`${PREFIX}-list-items`};const StyledFormElement=styled(FormElement)(({theme:{typography:e,spacing:t}})=>({[`.${itemPickerClasses.allNone}`]:{marginLeft:t(2)},[`.${itemPickerClasses.clearIcon}`]:{height:e.pxToRem(20),width:e.pxToRem(20)},[`.${itemPickerClasses.items}`]:{[`&.${itemPickerClasses.horizontal}`]:{display:"flex",flexWrap:"wrap",[`.${itemPickerClasses.item}`]:{width:"auto"}},[`.${itemPickerClasses.item}`]:{[`.${itemPickerClasses.button}`]:{paddingBottom:0,paddingTop:0,[`.${listItemTextClasses.primary}`]:{fontWeight:e.fontWeightRegular}}}}})),ItemPicker=forwardRef(({className:e,component:t,element:i,enabled:r,items:o,name:s,orientation:a,prompt:n,selectionMode:c,setProperty:l,setValue:m,showFilter:d,spacing:u,state:p,value:f},k)=>{const g=useContext(HostContext);void 0===u&&(u=1);const I=e=>()=>{const t=b[e].checked;if("single"===c){if(!t)for(const t in b)y(t,t===e)}else y(e,!t);v(!0),g.renderState(s,"item-picker",x)},[R,h]=useState(""),b=o||{};let x=p;const C=useFocusCallback(r,s,g),v=e=>{const t=[];for(const e in b){const i=b[e];i.checked&&t.push(i)}let i;t.length>0&&(i={refValueType:"items",items:t}),areValuesEqual(f,i)||m(i,e)};useEffect(()=>{B(k.current)},[k]),useEffect(()=>{null==x&&(x={items:[],keyToIndex:{}});const e={};for(const t in o){const i=E(t,!1);i&&(e[t]=i)}x.items.length=0,x.keyToIndex={};for(const t in e)x.keyToIndex[t]=x.items.length,x.items.push(e[t]);p!==x&&l("state",x),v(!1)});const E=(e,t=!0)=>{let i=x.keyToIndex[e];if(null==i||null===i){if(!t)return;x.keyToIndex[e]=x.items.length,x.items.push({}),i=x.keyToIndex[e]}return x.items[i]},y=(e,t)=>{b[e].checked=t;const i=E(e);i&&(i.checked=t)},T=e=>t=>{if(C(t),null!==t){const t=!0===b[e].checked;E(e).checked=t}},P=e=>{if(e){if(isGeometryRef(e))return e.geometry;if(isDataRef(e)&&e.data)return e.data.geometry}},L=[];let F;switch(c){case"single":F="radio";break;case"multiple":F="checkbox"}const S={},$={};if(x)for(const e in b){const t=b[e];if(t.checked&&(S[e]=t),E(e).content=P(t.value),!1!==t.visible){$[e]=t;const i=r&&!1!==t.enabled,o=i&&!!F,a=g.renderText(t.tooltip),n=clsx(itemPickerClasses.item,t.styleName?makeSafeClassName(t.styleName):void 0),c=React.createElement(Markdown,{text:t.label});L.push(React.createElement(ListItem,{className:n,disablePadding:!0,key:e},React.createElement(ListItemButton,{className:itemPickerClasses.button,disabled:!i,onClick:o?I(e):void 0,tabIndex:i?void 0:-1,title:a,"data-id":e,onBlur:i?e=>{delete E(e.currentTarget.dataset.id).focused,g.renderState(s,"item-picker",x)}:void 0,onFocus:i?e=>{E(e.currentTarget.dataset.id).focused=!0,g.renderState(s,"item-picker",x)}:void 0,onMouseOver:i?e=>{E(e.currentTarget.dataset.id).pending=!0,g.renderState(s,"item-picker",x)}:void 0,onMouseOut:i?e=>{delete E(e.currentTarget.dataset.id).pending,g.renderState(s,"item-picker",x)}:void 0},"checkbox"===F&&React.createElement(ListItemIcon,null,React.createElement(Checkbox,{edge:"start",checked:!0===b[e]?.checked,disabled:!i,disableRipple:!0,slotProps:{input:{ref:T(e)}},tabIndex:-1,value:e})),"radio"===F&&React.createElement(ListItemIcon,null,React.createElement(Radio,{edge:"start",checked:!0===b[e]?.checked,disabled:!i,disableRipple:!0,name:s,slotProps:{input:{ref:T(e)}},tabIndex:-1,value:e})),React.createElement(ListItemText,null,c))))}}const N=g.renderText(n),w=useMemo(()=>e=>{for(const t in b){const i=b[t];if(e){const t=g.renderText(i.label).toLowerCase();i.visible=t.indexOf(e)>=0}else i.visible=!0}t.forceUpdate()},[b]),M=useMemo(()=>debounce(w),[b]),j=()=>{h(""),w("")},B=e=>{null===e?g.renderState(s,"item-picker"):g.renderState(s,"item-picker",x)},O="multiple"===c&&L.length>0,X=clsx(itemPickerClasses.items,{[itemPickerClasses.horizontal]:a===Orientation.HORIZONTAL});let z,A=0,G=0,q=0,U=0;for(const e in b){const t=$[e];t?(q++,t.checked&&A++):(U++,b[e].checked&&G++)}0===A?z="none":A===q&&(z="all");const V=R?React.createElement(InputAdornment,{position:"end"},React.createElement(IconButton,{disabled:!r,onClick:j,title:g.renderText("@common-clear")},React.createElement(Close,{className:itemPickerClasses.clearIcon}))):null,W=d?`${makeUniqueId(s)}-filter`:void 0;let D,H=g.renderText("@item-picker-select");return O&&U>0&&(H=g.renderText("@item-picker-select-visible"),G>0&&(D=1===G?g.renderText("@item-picker-hidden-selected-item"):`${G} ${g.renderText("@item-picker-hidden-selected-items")}`)),React.createElement(StyledFormElement,{className:e,component:"fieldset",element:i,inputId:W,name:s,ref:k},React.createElement(Stack,{spacing:u},d&&React.createElement(Input,{disabled:!r,endAdornment:V,error:!1,fullWidth:!0,id:W,inputRef:C,onChange:e=>{const t=e.target.value;h(t),M(t.toLowerCase())},onKeyDown:e=>{"escape"===getKeyString(e)&&j()},placeholder:N,type:"text",value:R}),O&&React.createElement(FormControl,{className:itemPickerClasses.allNone},React.createElement(FormLabel,null,H),React.createElement(RadioGroup,{color:"primary",row:!0},React.createElement(FormControlLabel,{value:"all",checked:"all"===z,control:React.createElement(Radio,{size:"small"}),disabled:!r,inputRef:C,onClick:()=>{for(const e in $)y(e,!0);v(!0)},label:g.renderText("@common-all")}),React.createElement(FormControlLabel,{value:"none",checked:"none"===z,control:React.createElement(Radio,{size:"small"}),disabled:!r,onClick:()=>{for(const e in $)y(e,!1);v(!0)},label:g.renderText("@common-none")})),D&&React.createElement(Typography,{variant:"subtitle2"},D)),React.createElement(List,{className:X,dense:!0},L)))});export default ItemPicker;
1
+ import Checkbox from"@vertigis/react-ui/Checkbox";import FormControl from"@vertigis/react-ui/FormControl";import FormControlLabel from"@vertigis/react-ui/FormControlLabel";import FormLabel from"@vertigis/react-ui/FormLabel";import IconButton from"@vertigis/react-ui/IconButton";import Input from"@vertigis/react-ui/Input";import InputAdornment from"@vertigis/react-ui/InputAdornment";import List from"@vertigis/react-ui/List";import ListItem from"@vertigis/react-ui/ListItem";import ListItemButton from"@vertigis/react-ui/ListItemButton";import ListItemIcon from"@vertigis/react-ui/ListItemIcon";import ListItemText,{listItemTextClasses}from"@vertigis/react-ui/ListItemText";import Radio from"@vertigis/react-ui/Radio";import RadioGroup from"@vertigis/react-ui/RadioGroup";import Stack from"@vertigis/react-ui/Stack";import Typography from"@vertigis/react-ui/Typography";import Close from"@vertigis/react-ui/icons/Close";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{forwardRef,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{Orientation}from"../constants.js";import HostContext from"../hostContext.js";import{getKeyString}from"../keyboard.js";import{areValuesEqual}from"../listUtilities.js";import{debounce,isDataRef,isGeometryRef,makeSafeClassName,makeUniqueId}from"../utils.js";import FormElement from"./FormElement.js";import Markdown from"./Markdown.js";import{useFocusCallback}from"./common.js";const PREFIX="ItemPicker";export const itemPickerClasses={allNone:`${PREFIX}-all-none`,button:`${PREFIX}-list-item-button`,clearIcon:`${PREFIX}-clear-button`,horizontal:`${PREFIX}-horizontal`,item:`${PREFIX}-list-item`,items:`${PREFIX}-list-items`};const StyledFormElement=styled(FormElement)(({theme:{typography:e,spacing:t}})=>({[`.${itemPickerClasses.allNone}`]:{marginLeft:t(2)},[`.${itemPickerClasses.clearIcon}`]:{height:e.pxToRem(20),width:e.pxToRem(20)},[`.${itemPickerClasses.items}`]:{[`&.${itemPickerClasses.horizontal}`]:{display:"flex",flexWrap:"wrap",[`.${itemPickerClasses.item}`]:{width:"auto"}},[`.${itemPickerClasses.item}`]:{[`.${itemPickerClasses.button}`]:{paddingBottom:0,paddingTop:0,[`.${listItemTextClasses.primary}`]:{fontWeight:e.fontWeightRegular}}}}})),ItemPicker=forwardRef(({className:e,component:t,element:r,enabled:i,items:o,name:s,orientation:a,prompt:n,selectionMode:c,setProperty:l,setValue:m,showFilter:d,spacing:u,state:p,value:f},k)=>{const g=useRef(null),I=useContext(HostContext);void 0===u&&(u=1),useImperativeHandle(k,()=>(O(),g.current)),useEffect(()=>()=>{O()},[g.current]);const R=e=>()=>{const t=x[e].checked;if("single"===c){if(!t)for(const t in x)T(t,t===e)}else T(e,!t);E(!0),I.renderState(s,"item-picker",C)},[h,b]=useState(""),x=o||{};let C=p;const v=useFocusCallback(i,s,I),E=e=>{const t=[];for(const e in x){const r=x[e];r.checked&&t.push(r)}let r;t.length>0&&(r={refValueType:"items",items:t}),areValuesEqual(f,r)||m(r,e)};useEffect(()=>{null==C&&(C={items:[],keyToIndex:{}});const e={};for(const t in o){const r=y(t,!1);r&&(e[t]=r)}C.items.length=0,C.keyToIndex={};for(const t in e)C.keyToIndex[t]=C.items.length,C.items.push(e[t]);p!==C&&l("state",C),E(!1)});const y=(e,t=!0)=>{let r=C.keyToIndex[e];if(null==r||null===r){if(!t)return;C.keyToIndex[e]=C.items.length,C.items.push({}),r=C.keyToIndex[e]}return C.items[r]},T=(e,t)=>{x[e].checked=t;const r=y(e);r&&(r.checked=t)},P=e=>t=>{if(v(t),null!==t){const t=!0===x[e].checked;y(e).checked=t}},L=e=>{if(e){if(isGeometryRef(e))return e.geometry;if(isDataRef(e)&&e.data)return e.data.geometry}},F=[];let S;switch(c){case"single":S="radio";break;case"multiple":S="checkbox"}const $={},N={};if(C)for(const e in x){const t=x[e];if(t.checked&&($[e]=t),y(e).content=L(t.value),!1!==t.visible){N[e]=t;const r=i&&!1!==t.enabled,o=r&&!!S,a=I.renderText(t.tooltip),n=clsx(itemPickerClasses.item,t.styleName?makeSafeClassName(t.styleName):void 0),c=React.createElement(Markdown,{text:t.label});F.push(React.createElement(ListItem,{className:n,disablePadding:!0,key:e},React.createElement(ListItemButton,{className:itemPickerClasses.button,disabled:!r,onClick:o?R(e):void 0,tabIndex:r?void 0:-1,title:a,"data-id":e,onBlur:r?e=>{delete y(e.currentTarget.dataset.id).focused,I.renderState(s,"item-picker",C)}:void 0,onFocus:r?e=>{y(e.currentTarget.dataset.id).focused=!0,I.renderState(s,"item-picker",C)}:void 0,onMouseOver:r?e=>{y(e.currentTarget.dataset.id).pending=!0,I.renderState(s,"item-picker",C)}:void 0,onMouseOut:r?e=>{delete y(e.currentTarget.dataset.id).pending,I.renderState(s,"item-picker",C)}:void 0},"checkbox"===S&&React.createElement(ListItemIcon,null,React.createElement(Checkbox,{edge:"start",checked:!0===x[e]?.checked,disabled:!r,disableRipple:!0,slotProps:{input:{ref:P(e)}},tabIndex:-1,value:e})),"radio"===S&&React.createElement(ListItemIcon,null,React.createElement(Radio,{edge:"start",checked:!0===x[e]?.checked,disabled:!r,disableRipple:!0,name:s,slotProps:{input:{ref:P(e)}},tabIndex:-1,value:e})),React.createElement(ListItemText,null,c))))}}const w=I.renderText(n),M=useMemo(()=>e=>{for(const t in x){const r=x[t];if(e){const t=I.renderText(r.label).toLowerCase();r.visible=t.indexOf(e)>=0}else r.visible=!0}t.forceUpdate()},[x]),j=useMemo(()=>debounce(M),[x]),B=()=>{b(""),M("")},O=()=>{null===g.current?I.renderState(s,"item-picker"):I.renderState(s,"item-picker",C)},X="multiple"===c&&F.length>0,z=clsx(itemPickerClasses.items,{[itemPickerClasses.horizontal]:a===Orientation.HORIZONTAL});let A,G=0,H=0,q=0,U=0;for(const e in x){const t=N[e];t?(q++,t.checked&&G++):(U++,x[e].checked&&H++)}0===G?A="none":G===q&&(A="all");const V=h?React.createElement(InputAdornment,{position:"end"},React.createElement(IconButton,{disabled:!i,onClick:B,title:I.renderText("@common-clear")},React.createElement(Close,{className:itemPickerClasses.clearIcon}))):null,W=d?`${makeUniqueId(s)}-filter`:void 0;let D,K=I.renderText("@item-picker-select");return X&&U>0&&(K=I.renderText("@item-picker-select-visible"),H>0&&(D=1===H?I.renderText("@item-picker-hidden-selected-item"):`${H} ${I.renderText("@item-picker-hidden-selected-items")}`)),React.createElement(StyledFormElement,{className:e,component:"fieldset",element:r,inputId:W,name:s,ref:g},React.createElement(Stack,{spacing:u},d&&React.createElement(Input,{disabled:!i,endAdornment:V,error:!1,fullWidth:!0,id:W,inputRef:v,onChange:e=>{const t=e.target.value;b(t),j(t.toLowerCase())},onKeyDown:e=>{"escape"===getKeyString(e)&&B()},placeholder:w,type:"text",value:h}),X&&React.createElement(FormControl,{className:itemPickerClasses.allNone},React.createElement(FormLabel,null,K),React.createElement(RadioGroup,{color:"primary",row:!0},React.createElement(FormControlLabel,{value:"all",checked:"all"===A,control:React.createElement(Radio,{size:"small"}),disabled:!i,inputRef:v,onClick:()=>{for(const e in N)T(e,!0);E(!0)},label:I.renderText("@common-all")}),React.createElement(FormControlLabel,{value:"none",checked:"none"===A,control:React.createElement(Radio,{size:"small"}),disabled:!i,onClick:()=>{for(const e in N)T(e,!1);E(!0)},label:I.renderText("@common-none")})),D&&React.createElement(Typography,{variant:"subtitle2"},D)),React.createElement(List,{className:z,dense:!0},F)))});export default ItemPicker;
@@ -4,5 +4,5 @@ import type { defs } from "../FormHost";
4
4
  /**
5
5
  * The component for the "Radio Group" Form Element.
6
6
  */
7
- declare const RadioGroup: React.ForwardRefExoticComponent<FormElementProps<defs.Value | undefined> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const RadioGroup: React.ForwardRefExoticComponent<FormElementProps<defs.Value | undefined> & React.RefAttributes<HTMLFieldSetElement>>;
8
8
  export default RadioGroup;
package/libs/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "5.48.1+2";
1
+ export declare const VERSION = "5.48.2+1";
package/libs/version.js CHANGED
@@ -1 +1 @@
1
- export const VERSION="5.48.1+2";
1
+ export const VERSION="5.48.2+1";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertigis/workflow",
3
- "version": "5.48.1",
3
+ "version": "5.48.2",
4
4
  "author": "VertiGIS",
5
5
  "dependencies": {
6
6
  "@date-fns/utc": "^1.2.0",