@stenajs-webui/grid 23.16.2 → 23.17.0
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.
- package/dist/index.css +1 -0
- package/dist/index.es.js +1 -2
- package/dist/index.js +1 -2
- package/package.json +12 -10
package/dist/index.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._tableRow_1cphw_1:focus-within{background:var(--focus-within-background, var(--lhds-color-blue-50))}._standardTable_d7cgg_1{--swui-standard-table-height: 40px;--swui-field-height: calc(var(--current-row-height) - 4px);--swui-sticky-header-shadow: 2px 4px 4px 0 rgba(0, 0, 0, .05);--swui-sticky-header-shadow-and-right: var(--swui-sticky-header-shadow), var(--swui-sticky-column-shadow-right);--swui-sticky-header-shadow-and-left: var(--swui-sticky-header-shadow), var(--swui-sticky-column-shadow-left);--swui-sticky-column-shadow-right: 4px 2px 4px 0 rgba(0, 0, 0, .05);--swui-sticky-column-shadow-left: -4px 2px 4px 0 rgba(0, 0, 0, .05);--swui-sticky-column-z-index: 20;--swui-sticky-head-z-index: 22;--swui-sticky-group-group-z-index: 25;--swui-sticky-group-header-z-index: 26;--swui-sticky-header-column-group-z-index: 30;--swui-sticky-column-group-label-z-index: 40;--swui-sticky-header-in-sticky-column-z-index: 50;--swui-sticky-popover-z-index: 60;--swui-expand-cell-width: 45px;--swui-checkbox-cell-width: 45px;--swui-expand-highlight-border-width: 2px;--current-row-height: var(--swui-standard-table-height);--current-left-offset: 0px;border-spacing:0}._standardTable_d7cgg_1 td{border-top:1px solid var(--lhds-color-ui-300);padding:0}._standardTable_d7cgg_1 th{padding:0}._standardTable_d7cgg_1._relaxed_d7cgg_39{--current-row-height: 48px}._standardTable_d7cgg_1._condensed_d7cgg_43{--current-row-height: 32px}._standardTable_d7cgg_1._compact_d7cgg_47{--current-row-height: 24px}._standardTableCell_1xzcm_1{outline:none}._summaryRow_12x8k_1 td{border-top:1px solid var(--lhds-color-ui-400)}._standardTableHeadTh_swsxb_8{height:1px}@-moz-document url-prefix(){._standardTableHeadTh_swsxb_8{height:100%}}
|
package/dist/index.es.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._tableRow_1cphw_1:focus-within{background:var(--focus-within-background, var(--lhds-color-blue-50))}._standardTable_d7cgg_1{--swui-standard-table-height: 40px;--swui-field-height: calc(var(--current-row-height) - 4px);--swui-sticky-header-shadow: 2px 4px 4px 0 rgba(0, 0, 0, .05);--swui-sticky-header-shadow-and-right: var(--swui-sticky-header-shadow), var(--swui-sticky-column-shadow-right);--swui-sticky-header-shadow-and-left: var(--swui-sticky-header-shadow), var(--swui-sticky-column-shadow-left);--swui-sticky-column-shadow-right: 4px 2px 4px 0 rgba(0, 0, 0, .05);--swui-sticky-column-shadow-left: -4px 2px 4px 0 rgba(0, 0, 0, .05);--swui-sticky-column-z-index: 20;--swui-sticky-head-z-index: 22;--swui-sticky-group-group-z-index: 25;--swui-sticky-group-header-z-index: 26;--swui-sticky-header-column-group-z-index: 30;--swui-sticky-column-group-label-z-index: 40;--swui-sticky-header-in-sticky-column-z-index: 50;--swui-sticky-popover-z-index: 60;--swui-expand-cell-width: 45px;--swui-checkbox-cell-width: 45px;--swui-expand-highlight-border-width: 2px;--current-row-height: var(--swui-standard-table-height);--current-left-offset: 0px;border-spacing:0}._standardTable_d7cgg_1 td{border-top:1px solid var(--lhds-color-ui-300);padding:0}._standardTable_d7cgg_1 th{padding:0}._standardTable_d7cgg_1._relaxed_d7cgg_39{--current-row-height: 48px}._standardTable_d7cgg_1._condensed_d7cgg_43{--current-row-height: 32px}._standardTable_d7cgg_1._compact_d7cgg_47{--current-row-height: 24px}._standardTableCell_1xzcm_1{outline:none}._summaryRow_12x8k_1 td{border-top:1px solid var(--lhds-color-ui-400)}._standardTableHeadTh_swsxb_8{height:1px}@-moz-document url-prefix(){._standardTableHeadTh_swsxb_8{height:100%}}")),document.head.appendChild(e)}}catch(d){console.error("vite-plugin-css-injected-by-js",d)}})();
|
|
2
1
|
import { jsx as s, Fragment as E, jsxs as v } from "react/jsx-runtime";
|
|
3
2
|
import * as R from "react";
|
|
4
3
|
import { useMemo as b, useRef as ue, useState as Pe, useCallback as P, useEffect as pt, useContext as V, createContext as B, useReducer as tn, useId as nn } from "react";
|
|
@@ -14,7 +13,7 @@ import { combineReducers as yn } from "redux";
|
|
|
14
13
|
import { LoadingScreen as bn, ErrorScreen as vn } from "@stenajs-webui/panels";
|
|
15
14
|
import { compact as Cn, upperFirst as xn, lowerCase as kn } from "lodash-es";
|
|
16
15
|
import Sn from "@emotion/styled";
|
|
17
|
-
const xt = R.createContext({}), Ys = ({
|
|
16
|
+
import './index.css';const xt = R.createContext({}), Ys = ({
|
|
18
17
|
children: e,
|
|
19
18
|
numCols: t,
|
|
20
19
|
numRows: n,
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._tableRow_1cphw_1:focus-within{background:var(--focus-within-background, var(--lhds-color-blue-50))}._standardTable_d7cgg_1{--swui-standard-table-height: 40px;--swui-field-height: calc(var(--current-row-height) - 4px);--swui-sticky-header-shadow: 2px 4px 4px 0 rgba(0, 0, 0, .05);--swui-sticky-header-shadow-and-right: var(--swui-sticky-header-shadow), var(--swui-sticky-column-shadow-right);--swui-sticky-header-shadow-and-left: var(--swui-sticky-header-shadow), var(--swui-sticky-column-shadow-left);--swui-sticky-column-shadow-right: 4px 2px 4px 0 rgba(0, 0, 0, .05);--swui-sticky-column-shadow-left: -4px 2px 4px 0 rgba(0, 0, 0, .05);--swui-sticky-column-z-index: 20;--swui-sticky-head-z-index: 22;--swui-sticky-group-group-z-index: 25;--swui-sticky-group-header-z-index: 26;--swui-sticky-header-column-group-z-index: 30;--swui-sticky-column-group-label-z-index: 40;--swui-sticky-header-in-sticky-column-z-index: 50;--swui-sticky-popover-z-index: 60;--swui-expand-cell-width: 45px;--swui-checkbox-cell-width: 45px;--swui-expand-highlight-border-width: 2px;--current-row-height: var(--swui-standard-table-height);--current-left-offset: 0px;border-spacing:0}._standardTable_d7cgg_1 td{border-top:1px solid var(--lhds-color-ui-300);padding:0}._standardTable_d7cgg_1 th{padding:0}._standardTable_d7cgg_1._relaxed_d7cgg_39{--current-row-height: 48px}._standardTable_d7cgg_1._condensed_d7cgg_43{--current-row-height: 32px}._standardTable_d7cgg_1._compact_d7cgg_47{--current-row-height: 24px}._standardTableCell_1xzcm_1{outline:none}._summaryRow_12x8k_1 td{border-top:1px solid var(--lhds-color-ui-400)}._standardTableHeadTh_swsxb_8{height:1px}@-moz-document url-prefix(){._standardTableHeadTh_swsxb_8{height:100%}}")),document.head.appendChild(e)}}catch(d){console.error("vite-plugin-css-injected-by-js",d)}})();
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),d=require("react"),y=require("@stenajs-webui/elements"),N=require("@stenajs-webui/theme"),re=require("@stenajs-webui/tooltip"),f=require("@stenajs-webui/core"),ct=require("classnames"),se=require("@stenajs-webui/forms"),Te=require("react-redux"),P=require("@stenajs-webui/redux"),dn=require("redux"),lt=require("@stenajs-webui/panels"),Oe=require("lodash-es"),un=require("@emotion/styled");function hn(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const R=hn(d),De=R.createContext({}),mn=({children:e,numCols:t,numRows:n,tableId:r,wrap:o})=>{const a=d.useMemo(()=>({numCols:t,numRows:n,tableId:r,wrap:o}),[t,n,r,o]);return s.jsx(De.Provider,{value:a,children:e})},ge=e=>{const{loading:t,creating:n,deleting:r,updating:o,hasError:a}=e;return!!(t||n||r||o||a)},Ee=({crudStatus:e})=>{if(!e||!ge(e))return null;const{errorMessage:t,hasError:n,loading:r,creating:o,deleting:a,updating:i}=e;if(r||o||a||i)return s.jsx(y.InputSpinner,{color:N.cssColor("--lhds-color-ui-500")});if(n){const c=s.jsx(y.Icon,{icon:y.stenaExclamationTriangle,color:N.cssColor("--lhds-color-orange-600"),size:14});return s.jsx(s.Fragment,{children:t?s.jsx(re.Tooltip,{label:t,children:c}):c})}return null},dt=({isEditable:e,warningOnEmpty:t,value:n,modifiedField:r,crudStatus:o})=>{const a=t&&r?.modified&&r?.newValue==="",i=o&&ge(o),c=a||i;return s.jsxs(s.Fragment,{children:[s.jsx(f.Text,{color:e?"var(--swui-primary-action-color)":void 0,variant:r?.modified?"bold":void 0,children:n}),r?.newValue!==void 0&&s.jsxs(s.Fragment,{children:[s.jsx(f.Indent,{children:s.jsx(y.Icon,{icon:y.stenaArrowRight,size:12})}),s.jsx(f.Text,{color:"var(--swui-primary-action-color)",variant:"bold",children:r.newValue})]}),c&&s.jsx(f.Space,{}),a?s.jsx(re.Tooltip,{label:t,children:s.jsx(y.Icon,{icon:y.stenaExclamationTriangle,color:N.cssColor("--lhds-color-orange-600"),size:14})}):s.jsx(Ee,{crudStatus:o})]})},ut=({alignItems:e="center",justifyContent:t="flex-start",overflow:n="hidden",indent:r=1,...o})=>s.jsx(f.Row,{height:"100%",alignItems:e,justifyContent:t,overflow:n,indent:r,...o}),ht="var(--lhds-color-ui-300)",mt="var(--lhds-color-blue-500)",Ge="var(--lhds-color-blue-50)",ft="var(--lhds-color-blue-100)",oe=`1px solid ${ht}`,xt="1px solid transparent",we="var(--swui-expand-highlight-border-width) solid transparent",Fe=`var(--swui-expand-highlight-border-width) solid ${mt}`,be="40px",Ce="40px",Be="40px",fn=e=>s.jsx(ut,{width:Be,justifyContent:"center",...e}),Xe=({direction:e})=>s.jsx(f.Box,{width:"14px",children:s.jsx(y.Icon,{size:14,color:N.cssColor("--lhds-color-ui-500"),icon:e==="up"?y.stenaSortUpMini:y.stenaSortDownMini})}),ye=R.memo(({label:e,arrow:t,onClick:n,children:r,selected:o,popoverContent:a,loading:i,infoIconTooltipAppendTo:c,infoIconTooltipText:l,infoIconTooltipZIndex:m,columnHeadContent:u,overflow:h="hidden",alignRight:p,...g})=>{const w=d.useRef(null),x=n?{cursor:"pointer",userSelect:"none"}:void 0,b=!e&&!t&&!l;return s.jsxs(f.Row,{height:"100%",alignItems:"center",ref:w,overflow:h,justifyContent:p?"flex-end":"flex-start",borderTop:"2px solid transparent",borderBottom:`2px solid ${o?N.cssColor("--lhds-color-blue-500"):"transparent"}`,...g,children:[s.jsxs(f.Row,{alignItems:"center",indent:!0,children:[!t&&p&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(f.Box,{width:"14px"}),s.jsx(f.Space,{num:.5})]}),(r||e)&&s.jsxs(f.Row,{onClick:n,style:x,alignItems:"center",children:[r&&s.jsxs(s.Fragment,{children:[r,!b&&s.jsx(f.Space,{num:.5})]}),t&&p&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(Xe,{direction:t}),s.jsx(f.Space,{num:.5})]}),e&&s.jsx(f.Heading,{variant:"h6",style:{textAlign:"left"},children:e}),t&&!p&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{num:.5}),s.jsx(Xe,{direction:t}),s.jsx(f.Space,{})]})]}),u&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(f.Row,{children:u})]}),l&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(f.Row,{onClick:C=>C.stopPropagation(),children:s.jsx(re.Tooltip,{appendTo:c,label:l,zIndex:m,children:s.jsx(y.Icon,{icon:y.stenaInfoCircle,size:14,color:N.cssColor("--lhds-color-blue-400")})})})]}),(u||l)&&s.jsx(f.Space,{})]}),s.jsx(f.Row,{children:i?s.jsx(y.InputSpinner,{}):a?s.jsx(re.Popover,{renderTrigger:C=>s.jsx(y.FlatButton,{leftIcon:y.stenaDotsVertical,size:"small",...C}),trigger:"click",disablePadding:!0,children:a}):null}),!t&&!p&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(f.Box,{width:"14px"}),s.jsx(f.Space,{num:.5})]})]})}),xn=e=>s.jsx(ye,{width:Be,justifyContent:"center",...e}),pn=({label:e,flex:t,width:n,indent:r=1,height:o=Ce})=>s.jsx(ye,{width:n,flex:t,height:o,children:s.jsx(f.Box,{indent:r,spacing:!0,children:s.jsx(f.Text,{variant:"bold",children:e})})}),gn=R.memo(({style:e,height:t=Ce,...n})=>s.jsx(f.Row,{style:e,height:t,...n})),wn="_tableRow_1cphw_1",bn={tableRow:wn},Cn=({hideBorderTop:e,height:t=Ce,className:n,...r})=>s.jsx(f.Row,{borderTop:e?xt:oe,height:t,className:ct(bn.tableRow,n),...r}),pt=e=>{const[t,n]=d.useState(e),r=d.useRef(e),o=d.useRef(e),a=d.useCallback(u=>{n(u),o.current=u},[n,o]);d.useEffect(()=>{a(e)},[a,e]);const i=d.useCallback(()=>{r&&a(r.current)},[a,r]),c=d.useCallback(u=>{r.current=t,u&&a(u)},[t,a]),l=d.useCallback(u=>r.current=u,[r]),m=d.useCallback(()=>o.current,[o]);return{value:t,setValue:a,setRevertValue:l,revert:i,commit:c,getValue:m}},yn=e=>({altKey:e.altKey,charCode:e.charCode,ctrlKey:e.ctrlKey,key:e.key,keyCode:e.keyCode,locale:e.locale,location:e.location,metaKey:e.metaKey,repeat:e.repeat,shiftKey:e.shiftKey,which:e.which}),vn=e=>e,gt=(e,{isEditable:t=!1,allowedInputType:n="all",onChange:r,onStartEditing:o,onStopEditing:a,transformEnteredValue:i=vn})=>{const[c,l]=d.useState(!1),[m,u]=d.useState(void 0),h=pt(e),{getValue:p,revert:g,setValue:w,setRevertValue:x}=h,b=d.useCallback(k=>{t&&(w(e),x(e),l(!0),o&&o(k))},[t,o,x,w,e]),C=d.useCallback(()=>{t&&(l(!1),a&&a(),r&&r(p()))},[t,r,a,p,l]),j=d.useCallback(()=>{t&&(l(!1),a&&a(),g())},[t,a,g,l]);return{onKeyDown:d.useMemo(()=>Pn(c,t,b,u,n,i,h),[c,t,b,u,n,i,h]),isEditing:c,lastKeyEvent:m,revertableValue:h,startEditing:b,stopEditing:C,stopEditingAndRevert:j,onDoubleClick:b}},kn=e=>e==="all"||e==="numeric"||e==="alphanumeric",Sn=e=>e==="all"||e==="alphanumeric"||e==="letters",jn=e=>!!e.match(/^[-+*<>]$/),Tn=e=>!!e.match(/^[a-zA-Z0-9]$/),In=e=>!isNaN(parseInt(e,10)),Pn=(e,t,n,r,o,a,i)=>c=>{if(!(c.ctrlKey||c.metaKey||c.shiftKey)){if(c.key==="Enter"&&t)r(void 0),n(),i.commit(),c.preventDefault(),c.stopPropagation();else if(t){const l=yn(c);(In(c.key)&&kn(o)||Tn(c.key)&&Sn(o)||jn(c.key))&&(n(l),r(l),i.commit(),i.setValue(a(l.key)),c.preventDefault(),c.stopPropagation())}}},On=(e,t,n,r)=>{let o=e,a=t;return t>r&&(a=0),t<0&&(a=r),e>n&&(o=0),e<0&&(o=n),{realX:o,realY:a}},Ue=(e,t,n)=>Math.max(Math.min(e,n),t),Rn=(e,t,n)=>({rowIndex:Ue(e.rowIndex,0,t),colIndex:Ue(e.colIndex,0,n)}),Mn=(e,t,n)=>{const r=On(e.colIndex,e.rowIndex,n,t);return{rowIndex:r.realY,colIndex:r.realX}},Dn=(e,t,n,r,o,a="clamped")=>{const i=En(e,t,o);return a==="clamped"?Rn(i,n-1,r-1):a==="wrapped"?Mn(i,n-1,r-1):i},En=(e,t,n)=>n==="up"?{rowIndex:e-1,colIndex:t}:n==="down"?{rowIndex:e+1,colIndex:t}:n==="left"?{rowIndex:e,colIndex:t-1}:n==="right"?{rowIndex:e,colIndex:t+1}:{rowIndex:e,colIndex:t},Gn=e=>e.replace(/^[^a-z]+|[^\w:.-]+/gi,""),Fn=e=>{if(!e.tableId)throw new Error("tableId is required.");if(e.numRows==null)throw new Error("numRows is required.");if(e.numCols==null)throw new Error("numCols is required.");return e},We=e=>{const t=d.useContext(De);return d.useMemo(()=>Fn({...t,...e}),[t,e])},wt=e=>{const{rowIndex:t,colIndex:n,numRows:r,numCols:o,tableId:a,edgeMode:i,onCellMove:c,onCellNavigation:l}=We(e),m=d.useMemo(()=>Bn(a,t,n,r,o,i,c,l),[a,t,n,r,o,i,c,l]),u=d.useMemo(()=>Wn(m),[m]),h=d.useMemo(()=>bt(a,t,n),[a,t,n]),p=d.useMemo(()=>({tabIndex:0,onKeyDown:u,id:h}),[u,h]);return{focusOnCell:Ae,moveHandler:m,requiredProps:p}},Bn=(e,t,n,r,o,a,i,c)=>l=>{const m=Dn(t,n,r,o,l,a),u=n!==m.colIndex,h=t!==m.rowIndex;(u||h)&&(i&&i({direction:l,fromRowIndex:t,fromColIndex:n,rowIndex:m.rowIndex,colIndex:m.colIndex,colDidChange:u,rowDidChange:h}),Ae(e,m)),c&&c({direction:l,fromRowIndex:t,fromColIndex:n,rowIndex:m.rowIndex,colIndex:m.colIndex,colDidChange:u,rowDidChange:h,cellDidChange:u||h})},bt=(e,t,n)=>Gn(`table-${e}-${t}-${n}`),Wn=e=>t=>t.key==="ArrowLeft"?(e("left"),t.preventDefault(),t.stopPropagation(),!0):t.key==="ArrowUp"?(e("up"),t.preventDefault(),t.stopPropagation(),!0):t.key==="ArrowRight"?(e("right"),t.preventDefault(),t.stopPropagation(),!0):t.key==="ArrowDown"?(e("down"),t.preventDefault(),t.stopPropagation(),!0):!1,Ae=(e,t)=>{const n=document.getElementById(bt(e,t.rowIndex,t.colIndex));n&&n.focus()},he=(e,t)=>{const{tableId:n}=We(t),r=wt(t),o=gt(e,t),a=d.useMemo(()=>({rowIndex:t.rowIndex,colIndex:t.colIndex}),[t.rowIndex,t.colIndex]),i=d.useCallback(()=>{o.startEditing(),r.focusOnCell(n,a)},[o,r,n,a]),c=d.useCallback(()=>{o.stopEditing(),r.focusOnCell(n,a)},[o,r,n,a]),l=d.useCallback(()=>{o.stopEditingAndRevert(),r.focusOnCell(n,a)},[o,r,n,a]),m=d.useCallback(g=>{o.stopEditing(),r.moveHandler(g)},[o,r]),u=d.useCallback(g=>{r.moveHandler(g)},[r]),h=d.useCallback(g=>{o.isEditing||r.requiredProps.onKeyDown(g)||o.onKeyDown(g)},[o,r.requiredProps]),p=d.useMemo(()=>({...r.requiredProps,onKeyDown:h,onDoubleClick:o.onDoubleClick}),[h,o.onDoubleClick,r.requiredProps]);return{isEditing:o.isEditing,lastKeyEvent:o.lastKeyEvent,editorValue:o.revertableValue.value,setEditorValue:o.revertableValue.setValue,revertEditorValue:o.revertableValue.revert,requiredProps:p,move:u,startEditing:i,stopEditing:c,stopEditingAndRevert:l,stopEditingAndMove:m}},An=function({allowedInputType:t,value:n="",entityId:r,isEditable:o,rowIndent:a,crudStatusRedux:i,modifiedFieldsRedux:c,colIndex:l,rowIndex:m,numCols:u,numRows:h,warningOnEmpty:p}){const g=Te.useDispatch(),w=Te.useSelector(c.selectors.getState),x=Te.useSelector(i.selectors.getState),b=w.entities[r],C=x.entities[r],j=d.useCallback((F="")=>{g(F===n?c.actions.clearEntity(r):c.actions.setEntity({id:r,originalValue:n,newValue:F,modified:!0}))},[g,r,c.actions,n]),{isEditing:T,stopEditing:k,editorValue:S,setEditorValue:M,stopEditingAndRevert:E,stopEditingAndMove:G,lastKeyEvent:W,requiredProps:{onKeyDown:A,...Y}}=he(n,{rowIndex:m,colIndex:l,numCols:u,numRows:h,tableId:"serviceManningMatrixTable",onChange:j,isEditable:o,allowedInputType:t}),H=d.useCallback(F=>{F.key==="Delete"?(g(c.actions.clearEntity(r)),g(i.actions.setEntityFields(r,{hasError:!1,errorMessage:void 0}))):A(F)},[A,r,g,c.actions,i.actions]);return s.jsxs(f.Row,{height:be,width:"100%",borderBottom:oe,hoverBackground:"var(--ui7)",alignItems:"center",children:[a&&s.jsx(f.Indent,{num:a}),s.jsx(f.Row,{width:"100%",height:"100%",justifyContent:"flex-end",alignItems:"center",border:"1px solid transparent",borderRadius:"4px",focusBorder:T?void 0:"1px solid var(--primary-action-color)",hoverBorder:T?void 0:"var(--ui5) solid 1px;",onKeyDown:H,...Y,children:s.jsx(f.Indent,{row:!0,alignItems:"center",children:T?s.jsx(se.TextInput,{onValueChange:M,value:S,onDone:k,onEsc:E,autoFocus:!0,selectAllOnMount:!W,onMove:G}):s.jsxs(s.Fragment,{children:[s.jsx(f.Text,{color:o?"var(--primary-action-color)":void 0,variant:b?.modified?"bold":void 0,children:n}),b?.newValue!==void 0&&s.jsxs(s.Fragment,{children:[s.jsx(f.Indent,{children:s.jsx(y.Icon,{icon:y.stenaArrowRight,size:12})}),s.jsx(f.Text,{color:"var(--primary-action-color)",variant:"bold",children:b.newValue})]}),C&&ge(C)&&s.jsx(f.Space,{num:2}),p&&b?.modified&&b?.newValue===""?s.jsx(re.Tooltip,{label:p,children:s.jsx(y.Icon,{icon:y.stenaExclamationTriangle,color:"var(--ui-alert1)",size:14})}):s.jsx(Ee,{crudStatus:C})]})})}),a&&s.jsx(f.Indent,{num:a})]})},He=d.createContext(""),Le=d.createContext(void 0),Ne=d.createContext(void 0),qe=d.createContext(void 0),Ct=()=>({sortOrder:P.createSortOrderActions(),selectedIds:P.createSelectedIdsActions(),expandedRows:P.createSelectedIdsActions(),fields:P.createEntityActions()}),L=(e,t)=>`${e}.${t}`,Ye=(e=void 0,t=!1,n=[],r=[])=>({sortOrder:P.createSortOrderReducerInitialState(e,t),selectedIds:P.createSelectedIdsReducerInitialState(n),expandedRows:P.createSelectedIdsReducerInitialState(r),fields:{lastSelectedId:void 0}}),yt=(e,t)=>{const n=P.reducerIdGate(L(e,"sortOrder"),P.createSortOrderReducer(t?.sortOrder)),r=P.reducerIdGate(L(e,"selectedIds"),P.createSelectedIdsReducer(t?.selectedIds)),o=P.reducerIdGate(L(e,"expandedRows"),P.createSelectedIdsReducer(t?.expandedRows)),a=P.reducerIdGate(L(e,"fields"),P.createEntityReducer(t?.fields??{}));return dn.combineReducers({sortOrder:n,selectedIds:r,expandedRows:o,fields:a})},ve=()=>d.useContext(He),I=()=>d.useContext(qe),_=()=>d.useContext(Le),ae=()=>d.useContext(Ne),vt=d.createContext([]),V=()=>d.useContext(vt),kt=()=>{const e=I(),t=V();let n=0;return e.enableExpandCollapse&&n++,e.showRowCheckbox&&n++,n+d.useMemo(()=>t.map(r=>r.groupConfig.columnOrder.length).reduce((r,o)=>r+o,0),[t])},St=d.createContext(void 0),Hn=()=>d.useContext(St),jt=d.createContext(void 0),Ln=()=>d.useContext(jt),Nn=d.createContext(void 0),qn=d.createContext(!1),Yn=d.createContext("standard"),Tt=d.createContext({}),ze=()=>d.useContext(Tt),It=d.createContext(0),_e=()=>d.useContext(It),Ve=(e,t,n)=>e?Oe.compact(t?.map(r=>{const o=e?.[r];return{groupId:r,groupConfig:o}})??[]).filter(r=>(r.groupConfig?.columnOrder.length??0)>0).map(r=>r):[{groupId:"virtual",groupConfig:{label:"",columnOrder:n??[]}}],Ke=(e,t,n)=>{if(e)return e===!0?oe:e;if(!t&&n)return n===!0?oe:n},ke=(e,t,n)=>{if(!(e===0||t!==0)&&n)return n===!0?oe:n},ie=e=>{const{columns:t}=I(),n=t[e];if(!n)throw new Error("No config for column with id="+e);return n},Pt=()=>{const e=I(),t=V()?.[0]?.groupConfig.columnOrder?.[0];return t?e.columns[t]:void 0},Ot=()=>{const e=I(),t=V(),n=t[t.length-1],r=n?.groupConfig.columnOrder[n.groupConfig.columnOrder.length-1]??void 0;return r?e.columns[r]:void 0},zn=function({columnId:t,groupConfig:n,borderFromGroup:r,colSpan:o,isFirstGroup:a,isLastGroup:i}){const{label:c,render:l,contentLeft:m,contentRight:u,loading:h,error:p}=n,{width:g,minWidth:w,zIndex:x,borderLeft:b}=ie(t),C=I(),{stickyHeader:j,headerRowOffsetTop:T}=C,k="columnGroupOrder"in C?C.stickyColumnGroups:void 0,S=_n(r,b),M=a&&(k==="first"||k==="both"),E=i&&(k==="last"||k==="both"),G=M||E||j,W=M||E;return s.jsx("th",{colSpan:o,style:{position:G?"sticky":void 0,height:"var(--current-row-height)",width:g,minWidth:w??g??"20px",background:G?"white":"transparent",left:M?"var(--current-left-offset)":void 0,right:E?"0px":void 0,top:j?T??"0px":void 0,borderLeft:S,zIndex:j&&W?"var(--swui-sticky-column-group-label-z-index)":W?"var(--swui-sticky-group-group-z-index)":j?x??"var(--swui-sticky-header-column-group-z-index)":x??1,boxShadow:M?"var(--swui-sticky-column-shadow-right)":E?"var(--swui-sticky-column-shadow-left)":void 0},children:s.jsx(f.Row,{alignItems:"center",children:s.jsxs(s.Fragment,{children:[m&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),m,s.jsx(f.Space,{num:.5})]}),l?l(n):s.jsx(f.Indent,{children:s.jsx(f.Heading,{variant:"h5",whiteSpace:"nowrap",children:c})}),u&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{num:.5}),u]}),(p||h)&&s.jsx(f.Indent,{}),h?s.jsx(y.InputSpinner,{}):p?s.jsx(re.Tooltip,{label:p,placement:"bottom",children:s.jsx(y.Icon,{icon:y.stenaExclamationTriangle,color:N.cssColor("--lhds-color-red-500"),size:14})}):void 0]})})})},_n=(e,t)=>{if(e)return e;if(t)return"1px solid transparent"},Vn=(e,t,n,r)=>({top:e?Kn(e,n):void 0,background:e||t?"white":void 0,position:e||t?"sticky":void 0,boxShadow:t?"var(--swui-sticky-column-shadow-right)":void 0,zIndex:e||t?r??"var(--swui-sticky-header-z-index)":r}),Kn=(e,t)=>{if(e&&t)return t;if(t)return t;if(e)return 0},$n=R.memo(function({height:t=be}){const n=V(),r=I(),{showHeaderCheckbox:o,enableExpandCollapse:a,rowIndent:i,zIndex:c,stickyHeader:l,stickyCheckboxColumn:m,headerRowOffsetTop:u}=r,h=Vn(l,m,u,c),p=l?"var(--swui-sticky-column-group-label-z-index)":"var(--swui-sticky-group-group-z-index)";return s.jsxs("tr",{style:{height:t,borderLeft:we},children:[i&&s.jsx("th",{style:h}),a&&s.jsx("th",{style:{...h,width:"var(--swui-expand-cell-width)",left:m?"0px":void 0,zIndex:p}}),o&&s.jsx("th",{style:{...h,left:m&&a?"var(--swui-expand-cell-width)":m?"0px":void 0,zIndex:p}}),n.map(({groupConfig:g,groupId:w},x)=>s.jsx(zn,{isFirstGroup:x===0,isLastGroup:x===n.length-1,groupConfig:g,columnId:g.columnOrder[0],colSpan:g.columnOrder.length,borderFromGroup:ke(x,0,g.borderLeft)},w)),i&&s.jsx("th",{style:h}),s.jsx("th",{style:h})]})}),Qn=e=>{const t=Ve("columnGroups"in e?e.columnGroups:void 0,"columnGroupOrder"in e?e.columnGroupOrder:void 0,"columnOrder"in e?e.columnOrder:void 0),n={};let r=0;return e.showRowCheckbox&&r++,e.enableExpandCollapse&&r++,t.forEach(o=>{o.groupConfig.columnOrder.forEach(a=>{Xn(e.columns[a])&&(n[a]=r++)})}),{columnIndexPerColumnId:n,numNavigableColumns:r}},Xn=e=>!e.disableGridCell,Rt=d.createContext({columnIndexPerColumnId:{},numNavigableColumns:0}),Mt=()=>d.useContext(Rt),Un=e=>{"columnGroupOrder"in e&&(Jn(e),(e.stickyColumnGroups==="first"||e.stickyColumnGroups==="both")&&Je(e,0),(e.stickyColumnGroups==="last"||e.stickyColumnGroups==="both")&&Je(e,e.columnGroupOrder.length-1))},Jn=e=>{Object.keys(e.columns).forEach(n=>{const r=e.columns[n];if("sticky"in r&&r.sticky)throw new Error("Columns can not be sticky when column groups are used. columnId: "+n)})},Je=(e,t)=>{if(!e.columnGroupOrder||e.columnGroupOrder.length===0)throw new Error("columnGroupOrder required when validating column group fixed width.");const n=e.columnGroupOrder[t],r=e.columnGroups?.[n];if(!r)throw new Error("Column group does not exist. Column group id = "+n);r.columnOrder.forEach(o=>{if(e.columns[o].width==null)throw new Error("All columns in sticky column group must have width set.")})},Zn=e=>{const t=e.stickyColumnGroups==="first"||e.stickyColumnGroups==="both"?Ze(tr(e),e.columns,!0):void 0,n=e.stickyColumnGroups==="last"||e.stickyColumnGroups==="both"?Ze(nr(e),e.columns,!1):void 0;return{...t,...n}},Ze=(e,t,n)=>{const r={},o=[n?"var(--current-left-offset)":"0px"];for(let a=0;a<e.length;a++){const i=e[a],c=t?.[i];r[i]=er(o),o.push(c?.width??"0px")}return r},er=e=>e.length===0?"0px":e.length===1?e[0]:"calc("+e.join(" + ")+")",tr=e=>{const t=e.columnGroupOrder?.[0];return t?e.columnGroups?.[t]?.columnOrder??[]:[]},nr=e=>{const t=e.columnGroupOrder?.[e.columnGroupOrder?.length-1];if(!t)return[];const n=e.columnGroups?.[t];if(!n)return[];const r=[...n.columnOrder];return r.reverse(),r},rr=e=>"columnGroups"in e?sr(e):or(e),or=e=>Object.keys(e.columns).reduce((n,r)=>{const o=e.columns[r],a=!!o.sticky;return n[r]={sticky:a,left:a?`calc(var(--current-left-offset) + ${o.left??"0px"})`:void 0,right:a?o.right:void 0,type:"column",isFirstColumnInLastGroup:!1,isLastColumnInFirstGroup:!1},n},{}),sr=e=>{const t={},n=e.columnGroupOrder,r=Zn(e),o=e.stickyColumnGroups==="first"||e.stickyColumnGroups==="both",a=e.stickyColumnGroups==="last"||e.stickyColumnGroups==="both";return n.forEach((i,c)=>{const m=e.columnGroups[i].columnOrder;m.forEach((u,h)=>{const p=c===0,g=c===n.length-1,w=p&&o,x=g&&a,b=h===0&&g,C=h===m.length-1&&p;t[u]={sticky:w||x,left:w?r[u]:void 0,right:x?r[u]:void 0,type:w?"first-group":x?"last-group":void 0,isFirstColumnInLastGroup:b,isLastColumnInFirstGroup:C}})}),t},Dt=(e,t)=>({setSelectedIds:n=>P.reducerIdGateAction(L(e,"selectedIds"),t.selectedIds.setSelectedIds(n)),clearSelection:()=>P.reducerIdGateAction(L(e,"selectedIds"),t.selectedIds.clearSelectedIds()),expandByIds:n=>P.reducerIdGateAction(L(e,"expandedRows"),t.expandedRows.setSelectedIds(n)),collapseAll:()=>P.reducerIdGateAction(L(e,"expandedRows"),t.expandedRows.clearSelectedIds()),sortBy:(n,r)=>P.reducerIdGateAction(L(e,"sortOrder"),t.sortOrder.sortBy(n,r??!1)),clearSortOrder:()=>P.reducerIdGateAction(L(e,"sortOrder"),t.sortOrder.clearSortOrder()),setLastSelectedId:n=>P.reducerIdGateAction(L(e,"fields"),t.fields.setEntityFields({lastSelectedId:n}))}),Et=(e,t=Ye())=>{const[n,r]=d.useReducer(yt(e),t),o=d.useMemo(()=>Dt(e,Ct()),[e]);return{tableContext:d.useMemo(()=>({dispatch:r,actions:o,state:n}),[n,o,r])}},ar=e=>(e.rowIndent?2:0)+(e.enableExpandCollapse?1:0)+(e.showRowCheckbox?1:0)+ir(e),ir=e=>"columnGroupOrder"in e?e.columnGroupOrder.reduce((t,n)=>{const r=e.columnGroups?.[n];return t+(r?.columnOrder?.length??0)},0):e.columnOrder?.length??0,cr=()=>{const e=I(),t=V(),n=e.enableExpandCollapse||e.showRowCheckbox,r=f.booleanOrNumberToNumber(e.rowIndent);return s.jsxs(s.Fragment,{children:[r?s.jsx("colgroup",{children:s.jsx("col",{style:{width:`calc(var(--swui-metrics-indent) * ${r})`}})}):null,n&&s.jsxs("colgroup",{children:[e.enableExpandCollapse&&s.jsx("col",{style:{width:"var(--swui-expand-cell-width)"}}),e.showRowCheckbox&&s.jsx("col",{style:{width:"var(--swui-checkbox-cell-width)"}})]}),t.map(({groupConfig:o,groupId:a})=>s.jsx("colgroup",{children:o.columnOrder.map(i=>s.jsx("col",{style:{width:e.columns[i].width,minWidth:e.columns[i].minWidth}},i))},a)),r?s.jsx("colgroup",{children:s.jsx("col",{style:{width:`calc(var(--swui-metrics-indent) * ${r})`}})}):null]})},lr="_standardTable_d7cgg_1",dr="_relaxed_d7cgg_39",ur="_condensed_d7cgg_43",hr="_compact_d7cgg_47",et={standardTable:lr,relaxed:dr,condensed:ur,compact:hr},Gt=(e,t)=>e!=null&&t==null?-1:e==null&&t!=null?1:Ie(e,t,"number")?Number(e)-Number(t):Ie(e,t,"boolean")?Number(t)-Number(e):Ie(e,t,"string")?String(e).localeCompare(String(t)):e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():0,Ie=(e,t,n)=>typeof e===n&&typeof t===n,Ft=e=>{const{columns:t}=I();if(!e)return;const n=t[e];if(n)return n.itemValueResolver},Bt=R.memo(function({value:t,onValueChange:n,colIndex:r,rowIndex:o,numRows:a,disabled:i,onValueChangeAndShift:c,shiftPressedRef:l}){const m=kt(),u=ve(),h=he(!!t,{colIndex:r,numCols:m,numRows:a,rowIndex:o,tableId:u}),{requiredProps:p}=h,g=d.useCallback(w=>{l.current?c?.(w):n?.(w)},[n,c,l]);return s.jsx(se.Checkbox,{size:"small",disabled:i,value:t,onValueChange:g,...p})}),mr=(e,t,n)=>{if(t==null||n==null||e==null||t===n)return;const r=e.indexOf(t),o=e.indexOf(n);if(r<0||o<0)return;const a=Math.min(r,o),i=Math.max(r,o);return e.slice(a,i+1)},Wt=(e,t)=>{const{keyResolver:n}=I(),{selectedIds:{selectedIds:r},fields:{lastSelectedId:o}}=_(),{actions:{setSelectedIds:a,setLastSelectedId:i},dispatch:c}=ae(),l=d.useMemo(()=>n(e),[n,e]),m=d.useMemo(()=>r.includes(l),[r,l]),{toggle:u,addMultiple:h,removeMultiple:p}=f.useArraySet(r,x=>c(a(x))),g=d.useCallback(()=>{if(t&&o){const x=mr(t,o,l);x?.length?m?p(x):h(x):u(l)}else u(l);c(i(l))},[t,o,c,i,l,m,p,h,u]),w=d.useCallback(()=>{u(l),c(i(l))},[u,l,c,i]);return{isSelected:m,toggleSelected:w,shiftAndToggleSelected:g}},$e=e=>{const{keyResolver:t}=I(),{expandedRows:{selectedIds:n}}=_(),{actions:{expandByIds:r},dispatch:o}=ae(),a=d.useMemo(()=>t(e),[t,e]),i=d.useMemo(()=>n.includes(a),[n,a]),{toggle:c}=f.useArraySet(n,m=>o(r(m)));return{toggleRowExpanded:d.useCallback(()=>{c(a)},[c,a]),isExpanded:i}},fr=function({item:e,colIndex:t,numRows:n,rowIndex:r}){const o=kt(),a=ve(),i=he(!0,{colIndex:t,numCols:o,numRows:n,rowIndex:r,tableId:a}),{requiredProps:c}=i,{expandCollapseDisableResolver:l}=I(),{toggleRowExpanded:m,isExpanded:u}=$e(e),h=d.useMemo(()=>l?l(e):!1,[l,e]);return s.jsx(f.Row,{alignItems:"center",justifyContent:"center",indent:!0,children:!h&&s.jsx(y.FlatButton,{size:"small",leftIcon:u?y.stenaAngleDown:y.stenaAngleRight,onClick:m,...c})})},xr=(e,t,n)=>e?e(t):n,At=(e,t,n)=>d.useMemo(()=>xr(e,t,n),[e,t,n]),Ht=(e,t)=>{const{background:n,backgroundResolver:r}=ie(e);return At(r,t,n)},Re=(e,t)=>{const{background:n,backgroundResolver:r}=e??{};return At(r,t,n)},Lt=e=>e==null?"":e instanceof Date?e.toISOString():typeof e=="object"?JSON.stringify(e):String(e),Nt=e=>Oe.upperFirst(Oe.lowerCase(e)),pr="_standardTableCell_1xzcm_1",gr={standardTableCell:pr},qt=R.memo(function({enableGridCell:t,children:n,background:r,gridCellRequiredProps:o,isEditing:a,justifyContent:i,onKeyDown:c,width:l,minWidth:m}){return s.jsx(f.Row,{width:l,minWidth:m,height:"inherit",background:r,overflow:"hidden",onKeyDown:c,children:s.jsx(f.Row,{border:"1px solid transparent",className:gr.standardTableCell,width:"100%",height:"100%",justifyContent:i,alignItems:"center",borderRadius:t?"4px":void 0,focusBorder:t&&!a?"1px solid var(--swui-primary-action-color)":void 0,hoverBorder:t&&!a?"1px solid var(--lhds-color-ui-300)":void 0,...t?o:void 0,children:n})})}),Yt=R.memo(function({label:t,size:n,color:r}){return s.jsx(f.Indent,{overflow:"hidden",children:s.jsx(f.Text,{title:t,size:n,color:r,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:t})})}),wr=({label:e,textSize:t})=>s.jsx(Yt,{label:e,size:t}),zt=R.memo(function({columnId:t,item:n,colIndex:r,rowIndex:o,numRows:a,borderFromGroup:i,disableBorderLeft:c}){const{keyResolver:l,enableGridCell:m,gridCellOptions:u}=I(),h=_().selectedIds.selectedIds,p=ve(),g=Hn(),{numNavigableColumns:w}=Mt(),x=ze(),b=d.useMemo(()=>l(n),[n,l]),C=d.useMemo(()=>h.indexOf(b)>=0,[b,h]),{defaultCellRenderer:j=wr,defaultTextSize:T}=I(),{itemValueResolver:k,itemLabelFormatter:S,width:M,minWidth:E,justifyContentCell:G="flex-start",borderLeft:W,renderCell:A=j,gridCellOptions:Y,isEditable:H,onChange:F,onKeyDown:K,disableGridCell:ce,disableGridCellFocus:$,zIndex:ee,height:Q}=ie(t),X=d.useMemo(()=>k?k(n):t in n?n[t]:"",[k,n,t]),te=d.useMemo(()=>S?S(X,n):Lt(X),[X,S,n]),U=typeof H=="boolean"?H:H?H(n):void 0,me=d.useCallback(xe=>{K?.(xe,{columnId:t,item:n}),g?.(xe,{columnId:t,item:n})},[g,t,n,K]),fe=he(te,{colIndex:r,rowIndex:o,numRows:a,numCols:w,tableId:p,isEditable:U,onChange:F?xe=>F(n,xe):void 0,...u,...Y}),D=x[t],sn=Ht(t,n)??"inherit",je=D.sticky?ee??"var(--swui-sticky-column-z-index)":ee??1,Qe=Q??"var(--current-row-height)",an=d.useMemo(()=>A({label:te,value:X,item:n,gridCell:fe,isEditable:U,isSelected:C,zIndex:je,textSize:T,itemKey:b,height:Qe}),[A,te,X,n,fe,U,C,je,b,T,Qe]),cn=Ke(i,c,W),ln=D.sticky&&D.type==="last-group"&&D.isFirstColumnInLastGroup||D.sticky&&D.type==="column"&&D.right?"var(--swui-sticky-column-shadow-left)":D.sticky?"var(--swui-sticky-column-shadow-right)":void 0;return s.jsx("td",{style:{borderLeft:cn,position:D.sticky?"sticky":void 0,left:D.sticky?D.left:void 0,right:D.sticky?D.right:void 0,boxShadow:ln,zIndex:je,height:"var(--current-row-height)",background:sn},children:s.jsx(qt,{enableGridCell:m&&!ce&&!$,gridCellRequiredProps:fe.requiredProps,isEditing:fe.isEditing,width:M,minWidth:E,justifyContent:G,onKeyDown:me,children:an})})}),br=function({item:t}){const{renderRowExpansion:n,enableExpandCollapse:r}=I(),{isExpanded:o,toggleRowExpanded:a}=$e(t),i=_e();return s.jsx(s.Fragment,{children:r&&n&&o&&s.jsx("tr",{style:{borderLeft:Fe,background:Ge},children:s.jsx("td",{colSpan:i,children:n(t,{onRequestCollapse:a})})})})},_t=un.tr`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const s=require("react/jsx-runtime"),d=require("react"),y=require("@stenajs-webui/elements"),N=require("@stenajs-webui/theme"),re=require("@stenajs-webui/tooltip"),f=require("@stenajs-webui/core"),ct=require("classnames"),se=require("@stenajs-webui/forms"),Te=require("react-redux"),P=require("@stenajs-webui/redux"),dn=require("redux"),lt=require("@stenajs-webui/panels"),Oe=require("lodash-es"),un=require("@emotion/styled");function hn(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const R=hn(d),De=R.createContext({}),mn=({children:e,numCols:t,numRows:n,tableId:r,wrap:o})=>{const a=d.useMemo(()=>({numCols:t,numRows:n,tableId:r,wrap:o}),[t,n,r,o]);return s.jsx(De.Provider,{value:a,children:e})},ge=e=>{const{loading:t,creating:n,deleting:r,updating:o,hasError:a}=e;return!!(t||n||r||o||a)},Ee=({crudStatus:e})=>{if(!e||!ge(e))return null;const{errorMessage:t,hasError:n,loading:r,creating:o,deleting:a,updating:i}=e;if(r||o||a||i)return s.jsx(y.InputSpinner,{color:N.cssColor("--lhds-color-ui-500")});if(n){const c=s.jsx(y.Icon,{icon:y.stenaExclamationTriangle,color:N.cssColor("--lhds-color-orange-600"),size:14});return s.jsx(s.Fragment,{children:t?s.jsx(re.Tooltip,{label:t,children:c}):c})}return null},dt=({isEditable:e,warningOnEmpty:t,value:n,modifiedField:r,crudStatus:o})=>{const a=t&&r?.modified&&r?.newValue==="",i=o&&ge(o),c=a||i;return s.jsxs(s.Fragment,{children:[s.jsx(f.Text,{color:e?"var(--swui-primary-action-color)":void 0,variant:r?.modified?"bold":void 0,children:n}),r?.newValue!==void 0&&s.jsxs(s.Fragment,{children:[s.jsx(f.Indent,{children:s.jsx(y.Icon,{icon:y.stenaArrowRight,size:12})}),s.jsx(f.Text,{color:"var(--swui-primary-action-color)",variant:"bold",children:r.newValue})]}),c&&s.jsx(f.Space,{}),a?s.jsx(re.Tooltip,{label:t,children:s.jsx(y.Icon,{icon:y.stenaExclamationTriangle,color:N.cssColor("--lhds-color-orange-600"),size:14})}):s.jsx(Ee,{crudStatus:o})]})},ut=({alignItems:e="center",justifyContent:t="flex-start",overflow:n="hidden",indent:r=1,...o})=>s.jsx(f.Row,{height:"100%",alignItems:e,justifyContent:t,overflow:n,indent:r,...o}),ht="var(--lhds-color-ui-300)",mt="var(--lhds-color-blue-500)",Ge="var(--lhds-color-blue-50)",ft="var(--lhds-color-blue-100)",oe=`1px solid ${ht}`,xt="1px solid transparent",we="var(--swui-expand-highlight-border-width) solid transparent",Fe=`var(--swui-expand-highlight-border-width) solid ${mt}`,be="40px",Ce="40px",Be="40px",fn=e=>s.jsx(ut,{width:Be,justifyContent:"center",...e}),Xe=({direction:e})=>s.jsx(f.Box,{width:"14px",children:s.jsx(y.Icon,{size:14,color:N.cssColor("--lhds-color-ui-500"),icon:e==="up"?y.stenaSortUpMini:y.stenaSortDownMini})}),ye=R.memo(({label:e,arrow:t,onClick:n,children:r,selected:o,popoverContent:a,loading:i,infoIconTooltipAppendTo:c,infoIconTooltipText:l,infoIconTooltipZIndex:m,columnHeadContent:u,overflow:h="hidden",alignRight:p,...g})=>{const w=d.useRef(null),x=n?{cursor:"pointer",userSelect:"none"}:void 0,b=!e&&!t&&!l;return s.jsxs(f.Row,{height:"100%",alignItems:"center",ref:w,overflow:h,justifyContent:p?"flex-end":"flex-start",borderTop:"2px solid transparent",borderBottom:`2px solid ${o?N.cssColor("--lhds-color-blue-500"):"transparent"}`,...g,children:[s.jsxs(f.Row,{alignItems:"center",indent:!0,children:[!t&&p&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(f.Box,{width:"14px"}),s.jsx(f.Space,{num:.5})]}),(r||e)&&s.jsxs(f.Row,{onClick:n,style:x,alignItems:"center",children:[r&&s.jsxs(s.Fragment,{children:[r,!b&&s.jsx(f.Space,{num:.5})]}),t&&p&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(Xe,{direction:t}),s.jsx(f.Space,{num:.5})]}),e&&s.jsx(f.Heading,{variant:"h6",style:{textAlign:"left"},children:e}),t&&!p&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{num:.5}),s.jsx(Xe,{direction:t}),s.jsx(f.Space,{})]})]}),u&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(f.Row,{children:u})]}),l&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(f.Row,{onClick:C=>C.stopPropagation(),children:s.jsx(re.Tooltip,{appendTo:c,label:l,zIndex:m,children:s.jsx(y.Icon,{icon:y.stenaInfoCircle,size:14,color:N.cssColor("--lhds-color-blue-400")})})})]}),(u||l)&&s.jsx(f.Space,{})]}),s.jsx(f.Row,{children:i?s.jsx(y.InputSpinner,{}):a?s.jsx(re.Popover,{renderTrigger:C=>s.jsx(y.FlatButton,{leftIcon:y.stenaDotsVertical,size:"small",...C}),trigger:"click",disablePadding:!0,children:a}):null}),!t&&!p&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),s.jsx(f.Box,{width:"14px"}),s.jsx(f.Space,{num:.5})]})]})}),xn=e=>s.jsx(ye,{width:Be,justifyContent:"center",...e}),pn=({label:e,flex:t,width:n,indent:r=1,height:o=Ce})=>s.jsx(ye,{width:n,flex:t,height:o,children:s.jsx(f.Box,{indent:r,spacing:!0,children:s.jsx(f.Text,{variant:"bold",children:e})})}),gn=R.memo(({style:e,height:t=Ce,...n})=>s.jsx(f.Row,{style:e,height:t,...n})),wn="_tableRow_1cphw_1",bn={tableRow:wn},Cn=({hideBorderTop:e,height:t=Ce,className:n,...r})=>s.jsx(f.Row,{borderTop:e?xt:oe,height:t,className:ct(bn.tableRow,n),...r}),pt=e=>{const[t,n]=d.useState(e),r=d.useRef(e),o=d.useRef(e),a=d.useCallback(u=>{n(u),o.current=u},[n,o]);d.useEffect(()=>{a(e)},[a,e]);const i=d.useCallback(()=>{r&&a(r.current)},[a,r]),c=d.useCallback(u=>{r.current=t,u&&a(u)},[t,a]),l=d.useCallback(u=>r.current=u,[r]),m=d.useCallback(()=>o.current,[o]);return{value:t,setValue:a,setRevertValue:l,revert:i,commit:c,getValue:m}},yn=e=>({altKey:e.altKey,charCode:e.charCode,ctrlKey:e.ctrlKey,key:e.key,keyCode:e.keyCode,locale:e.locale,location:e.location,metaKey:e.metaKey,repeat:e.repeat,shiftKey:e.shiftKey,which:e.which}),vn=e=>e,gt=(e,{isEditable:t=!1,allowedInputType:n="all",onChange:r,onStartEditing:o,onStopEditing:a,transformEnteredValue:i=vn})=>{const[c,l]=d.useState(!1),[m,u]=d.useState(void 0),h=pt(e),{getValue:p,revert:g,setValue:w,setRevertValue:x}=h,b=d.useCallback(k=>{t&&(w(e),x(e),l(!0),o&&o(k))},[t,o,x,w,e]),C=d.useCallback(()=>{t&&(l(!1),a&&a(),r&&r(p()))},[t,r,a,p,l]),j=d.useCallback(()=>{t&&(l(!1),a&&a(),g())},[t,a,g,l]);return{onKeyDown:d.useMemo(()=>Pn(c,t,b,u,n,i,h),[c,t,b,u,n,i,h]),isEditing:c,lastKeyEvent:m,revertableValue:h,startEditing:b,stopEditing:C,stopEditingAndRevert:j,onDoubleClick:b}},kn=e=>e==="all"||e==="numeric"||e==="alphanumeric",Sn=e=>e==="all"||e==="alphanumeric"||e==="letters",jn=e=>!!e.match(/^[-+*<>]$/),Tn=e=>!!e.match(/^[a-zA-Z0-9]$/),In=e=>!isNaN(parseInt(e,10)),Pn=(e,t,n,r,o,a,i)=>c=>{if(!(c.ctrlKey||c.metaKey||c.shiftKey)){if(c.key==="Enter"&&t)r(void 0),n(),i.commit(),c.preventDefault(),c.stopPropagation();else if(t){const l=yn(c);(In(c.key)&&kn(o)||Tn(c.key)&&Sn(o)||jn(c.key))&&(n(l),r(l),i.commit(),i.setValue(a(l.key)),c.preventDefault(),c.stopPropagation())}}},On=(e,t,n,r)=>{let o=e,a=t;return t>r&&(a=0),t<0&&(a=r),e>n&&(o=0),e<0&&(o=n),{realX:o,realY:a}},Ue=(e,t,n)=>Math.max(Math.min(e,n),t),Rn=(e,t,n)=>({rowIndex:Ue(e.rowIndex,0,t),colIndex:Ue(e.colIndex,0,n)}),Mn=(e,t,n)=>{const r=On(e.colIndex,e.rowIndex,n,t);return{rowIndex:r.realY,colIndex:r.realX}},Dn=(e,t,n,r,o,a="clamped")=>{const i=En(e,t,o);return a==="clamped"?Rn(i,n-1,r-1):a==="wrapped"?Mn(i,n-1,r-1):i},En=(e,t,n)=>n==="up"?{rowIndex:e-1,colIndex:t}:n==="down"?{rowIndex:e+1,colIndex:t}:n==="left"?{rowIndex:e,colIndex:t-1}:n==="right"?{rowIndex:e,colIndex:t+1}:{rowIndex:e,colIndex:t},Gn=e=>e.replace(/^[^a-z]+|[^\w:.-]+/gi,""),Fn=e=>{if(!e.tableId)throw new Error("tableId is required.");if(e.numRows==null)throw new Error("numRows is required.");if(e.numCols==null)throw new Error("numCols is required.");return e},We=e=>{const t=d.useContext(De);return d.useMemo(()=>Fn({...t,...e}),[t,e])},wt=e=>{const{rowIndex:t,colIndex:n,numRows:r,numCols:o,tableId:a,edgeMode:i,onCellMove:c,onCellNavigation:l}=We(e),m=d.useMemo(()=>Bn(a,t,n,r,o,i,c,l),[a,t,n,r,o,i,c,l]),u=d.useMemo(()=>Wn(m),[m]),h=d.useMemo(()=>bt(a,t,n),[a,t,n]),p=d.useMemo(()=>({tabIndex:0,onKeyDown:u,id:h}),[u,h]);return{focusOnCell:Ae,moveHandler:m,requiredProps:p}},Bn=(e,t,n,r,o,a,i,c)=>l=>{const m=Dn(t,n,r,o,l,a),u=n!==m.colIndex,h=t!==m.rowIndex;(u||h)&&(i&&i({direction:l,fromRowIndex:t,fromColIndex:n,rowIndex:m.rowIndex,colIndex:m.colIndex,colDidChange:u,rowDidChange:h}),Ae(e,m)),c&&c({direction:l,fromRowIndex:t,fromColIndex:n,rowIndex:m.rowIndex,colIndex:m.colIndex,colDidChange:u,rowDidChange:h,cellDidChange:u||h})},bt=(e,t,n)=>Gn(`table-${e}-${t}-${n}`),Wn=e=>t=>t.key==="ArrowLeft"?(e("left"),t.preventDefault(),t.stopPropagation(),!0):t.key==="ArrowUp"?(e("up"),t.preventDefault(),t.stopPropagation(),!0):t.key==="ArrowRight"?(e("right"),t.preventDefault(),t.stopPropagation(),!0):t.key==="ArrowDown"?(e("down"),t.preventDefault(),t.stopPropagation(),!0):!1,Ae=(e,t)=>{const n=document.getElementById(bt(e,t.rowIndex,t.colIndex));n&&n.focus()},he=(e,t)=>{const{tableId:n}=We(t),r=wt(t),o=gt(e,t),a=d.useMemo(()=>({rowIndex:t.rowIndex,colIndex:t.colIndex}),[t.rowIndex,t.colIndex]),i=d.useCallback(()=>{o.startEditing(),r.focusOnCell(n,a)},[o,r,n,a]),c=d.useCallback(()=>{o.stopEditing(),r.focusOnCell(n,a)},[o,r,n,a]),l=d.useCallback(()=>{o.stopEditingAndRevert(),r.focusOnCell(n,a)},[o,r,n,a]),m=d.useCallback(g=>{o.stopEditing(),r.moveHandler(g)},[o,r]),u=d.useCallback(g=>{r.moveHandler(g)},[r]),h=d.useCallback(g=>{o.isEditing||r.requiredProps.onKeyDown(g)||o.onKeyDown(g)},[o,r.requiredProps]),p=d.useMemo(()=>({...r.requiredProps,onKeyDown:h,onDoubleClick:o.onDoubleClick}),[h,o.onDoubleClick,r.requiredProps]);return{isEditing:o.isEditing,lastKeyEvent:o.lastKeyEvent,editorValue:o.revertableValue.value,setEditorValue:o.revertableValue.setValue,revertEditorValue:o.revertableValue.revert,requiredProps:p,move:u,startEditing:i,stopEditing:c,stopEditingAndRevert:l,stopEditingAndMove:m}},An=function({allowedInputType:t,value:n="",entityId:r,isEditable:o,rowIndent:a,crudStatusRedux:i,modifiedFieldsRedux:c,colIndex:l,rowIndex:m,numCols:u,numRows:h,warningOnEmpty:p}){const g=Te.useDispatch(),w=Te.useSelector(c.selectors.getState),x=Te.useSelector(i.selectors.getState),b=w.entities[r],C=x.entities[r],j=d.useCallback((F="")=>{g(F===n?c.actions.clearEntity(r):c.actions.setEntity({id:r,originalValue:n,newValue:F,modified:!0}))},[g,r,c.actions,n]),{isEditing:T,stopEditing:k,editorValue:S,setEditorValue:M,stopEditingAndRevert:E,stopEditingAndMove:G,lastKeyEvent:W,requiredProps:{onKeyDown:A,...Y}}=he(n,{rowIndex:m,colIndex:l,numCols:u,numRows:h,tableId:"serviceManningMatrixTable",onChange:j,isEditable:o,allowedInputType:t}),H=d.useCallback(F=>{F.key==="Delete"?(g(c.actions.clearEntity(r)),g(i.actions.setEntityFields(r,{hasError:!1,errorMessage:void 0}))):A(F)},[A,r,g,c.actions,i.actions]);return s.jsxs(f.Row,{height:be,width:"100%",borderBottom:oe,hoverBackground:"var(--ui7)",alignItems:"center",children:[a&&s.jsx(f.Indent,{num:a}),s.jsx(f.Row,{width:"100%",height:"100%",justifyContent:"flex-end",alignItems:"center",border:"1px solid transparent",borderRadius:"4px",focusBorder:T?void 0:"1px solid var(--primary-action-color)",hoverBorder:T?void 0:"var(--ui5) solid 1px;",onKeyDown:H,...Y,children:s.jsx(f.Indent,{row:!0,alignItems:"center",children:T?s.jsx(se.TextInput,{onValueChange:M,value:S,onDone:k,onEsc:E,autoFocus:!0,selectAllOnMount:!W,onMove:G}):s.jsxs(s.Fragment,{children:[s.jsx(f.Text,{color:o?"var(--primary-action-color)":void 0,variant:b?.modified?"bold":void 0,children:n}),b?.newValue!==void 0&&s.jsxs(s.Fragment,{children:[s.jsx(f.Indent,{children:s.jsx(y.Icon,{icon:y.stenaArrowRight,size:12})}),s.jsx(f.Text,{color:"var(--primary-action-color)",variant:"bold",children:b.newValue})]}),C&&ge(C)&&s.jsx(f.Space,{num:2}),p&&b?.modified&&b?.newValue===""?s.jsx(re.Tooltip,{label:p,children:s.jsx(y.Icon,{icon:y.stenaExclamationTriangle,color:"var(--ui-alert1)",size:14})}):s.jsx(Ee,{crudStatus:C})]})})}),a&&s.jsx(f.Indent,{num:a})]})},He=d.createContext(""),Le=d.createContext(void 0),Ne=d.createContext(void 0),qe=d.createContext(void 0),Ct=()=>({sortOrder:P.createSortOrderActions(),selectedIds:P.createSelectedIdsActions(),expandedRows:P.createSelectedIdsActions(),fields:P.createEntityActions()}),L=(e,t)=>`${e}.${t}`,Ye=(e=void 0,t=!1,n=[],r=[])=>({sortOrder:P.createSortOrderReducerInitialState(e,t),selectedIds:P.createSelectedIdsReducerInitialState(n),expandedRows:P.createSelectedIdsReducerInitialState(r),fields:{lastSelectedId:void 0}}),yt=(e,t)=>{const n=P.reducerIdGate(L(e,"sortOrder"),P.createSortOrderReducer(t?.sortOrder)),r=P.reducerIdGate(L(e,"selectedIds"),P.createSelectedIdsReducer(t?.selectedIds)),o=P.reducerIdGate(L(e,"expandedRows"),P.createSelectedIdsReducer(t?.expandedRows)),a=P.reducerIdGate(L(e,"fields"),P.createEntityReducer(t?.fields??{}));return dn.combineReducers({sortOrder:n,selectedIds:r,expandedRows:o,fields:a})},ve=()=>d.useContext(He),I=()=>d.useContext(qe),_=()=>d.useContext(Le),ae=()=>d.useContext(Ne),vt=d.createContext([]),V=()=>d.useContext(vt),kt=()=>{const e=I(),t=V();let n=0;return e.enableExpandCollapse&&n++,e.showRowCheckbox&&n++,n+d.useMemo(()=>t.map(r=>r.groupConfig.columnOrder.length).reduce((r,o)=>r+o,0),[t])},St=d.createContext(void 0),Hn=()=>d.useContext(St),jt=d.createContext(void 0),Ln=()=>d.useContext(jt),Nn=d.createContext(void 0),qn=d.createContext(!1),Yn=d.createContext("standard"),Tt=d.createContext({}),ze=()=>d.useContext(Tt),It=d.createContext(0),_e=()=>d.useContext(It),Ve=(e,t,n)=>e?Oe.compact(t?.map(r=>{const o=e?.[r];return{groupId:r,groupConfig:o}})??[]).filter(r=>(r.groupConfig?.columnOrder.length??0)>0).map(r=>r):[{groupId:"virtual",groupConfig:{label:"",columnOrder:n??[]}}],Ke=(e,t,n)=>{if(e)return e===!0?oe:e;if(!t&&n)return n===!0?oe:n},ke=(e,t,n)=>{if(!(e===0||t!==0)&&n)return n===!0?oe:n},ie=e=>{const{columns:t}=I(),n=t[e];if(!n)throw new Error("No config for column with id="+e);return n},Pt=()=>{const e=I(),t=V()?.[0]?.groupConfig.columnOrder?.[0];return t?e.columns[t]:void 0},Ot=()=>{const e=I(),t=V(),n=t[t.length-1],r=n?.groupConfig.columnOrder[n.groupConfig.columnOrder.length-1]??void 0;return r?e.columns[r]:void 0},zn=function({columnId:t,groupConfig:n,borderFromGroup:r,colSpan:o,isFirstGroup:a,isLastGroup:i}){const{label:c,render:l,contentLeft:m,contentRight:u,loading:h,error:p}=n,{width:g,minWidth:w,zIndex:x,borderLeft:b}=ie(t),C=I(),{stickyHeader:j,headerRowOffsetTop:T}=C,k="columnGroupOrder"in C?C.stickyColumnGroups:void 0,S=_n(r,b),M=a&&(k==="first"||k==="both"),E=i&&(k==="last"||k==="both"),G=M||E||j,W=M||E;return s.jsx("th",{colSpan:o,style:{position:G?"sticky":void 0,height:"var(--current-row-height)",width:g,minWidth:w??g??"20px",background:G?"white":"transparent",left:M?"var(--current-left-offset)":void 0,right:E?"0px":void 0,top:j?T??"0px":void 0,borderLeft:S,zIndex:j&&W?"var(--swui-sticky-column-group-label-z-index)":W?"var(--swui-sticky-group-group-z-index)":j?x??"var(--swui-sticky-header-column-group-z-index)":x??1,boxShadow:M?"var(--swui-sticky-column-shadow-right)":E?"var(--swui-sticky-column-shadow-left)":void 0},children:s.jsx(f.Row,{alignItems:"center",children:s.jsxs(s.Fragment,{children:[m&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{}),m,s.jsx(f.Space,{num:.5})]}),l?l(n):s.jsx(f.Indent,{children:s.jsx(f.Heading,{variant:"h5",whiteSpace:"nowrap",children:c})}),u&&s.jsxs(s.Fragment,{children:[s.jsx(f.Space,{num:.5}),u]}),(p||h)&&s.jsx(f.Indent,{}),h?s.jsx(y.InputSpinner,{}):p?s.jsx(re.Tooltip,{label:p,placement:"bottom",children:s.jsx(y.Icon,{icon:y.stenaExclamationTriangle,color:N.cssColor("--lhds-color-red-500"),size:14})}):void 0]})})})},_n=(e,t)=>{if(e)return e;if(t)return"1px solid transparent"},Vn=(e,t,n,r)=>({top:e?Kn(e,n):void 0,background:e||t?"white":void 0,position:e||t?"sticky":void 0,boxShadow:t?"var(--swui-sticky-column-shadow-right)":void 0,zIndex:e||t?r??"var(--swui-sticky-header-z-index)":r}),Kn=(e,t)=>{if(e&&t)return t;if(t)return t;if(e)return 0},$n=R.memo(function({height:t=be}){const n=V(),r=I(),{showHeaderCheckbox:o,enableExpandCollapse:a,rowIndent:i,zIndex:c,stickyHeader:l,stickyCheckboxColumn:m,headerRowOffsetTop:u}=r,h=Vn(l,m,u,c),p=l?"var(--swui-sticky-column-group-label-z-index)":"var(--swui-sticky-group-group-z-index)";return s.jsxs("tr",{style:{height:t,borderLeft:we},children:[i&&s.jsx("th",{style:h}),a&&s.jsx("th",{style:{...h,width:"var(--swui-expand-cell-width)",left:m?"0px":void 0,zIndex:p}}),o&&s.jsx("th",{style:{...h,left:m&&a?"var(--swui-expand-cell-width)":m?"0px":void 0,zIndex:p}}),n.map(({groupConfig:g,groupId:w},x)=>s.jsx(zn,{isFirstGroup:x===0,isLastGroup:x===n.length-1,groupConfig:g,columnId:g.columnOrder[0],colSpan:g.columnOrder.length,borderFromGroup:ke(x,0,g.borderLeft)},w)),i&&s.jsx("th",{style:h}),s.jsx("th",{style:h})]})}),Qn=e=>{const t=Ve("columnGroups"in e?e.columnGroups:void 0,"columnGroupOrder"in e?e.columnGroupOrder:void 0,"columnOrder"in e?e.columnOrder:void 0),n={};let r=0;return e.showRowCheckbox&&r++,e.enableExpandCollapse&&r++,t.forEach(o=>{o.groupConfig.columnOrder.forEach(a=>{Xn(e.columns[a])&&(n[a]=r++)})}),{columnIndexPerColumnId:n,numNavigableColumns:r}},Xn=e=>!e.disableGridCell,Rt=d.createContext({columnIndexPerColumnId:{},numNavigableColumns:0}),Mt=()=>d.useContext(Rt),Un=e=>{"columnGroupOrder"in e&&(Jn(e),(e.stickyColumnGroups==="first"||e.stickyColumnGroups==="both")&&Je(e,0),(e.stickyColumnGroups==="last"||e.stickyColumnGroups==="both")&&Je(e,e.columnGroupOrder.length-1))},Jn=e=>{Object.keys(e.columns).forEach(n=>{const r=e.columns[n];if("sticky"in r&&r.sticky)throw new Error("Columns can not be sticky when column groups are used. columnId: "+n)})},Je=(e,t)=>{if(!e.columnGroupOrder||e.columnGroupOrder.length===0)throw new Error("columnGroupOrder required when validating column group fixed width.");const n=e.columnGroupOrder[t],r=e.columnGroups?.[n];if(!r)throw new Error("Column group does not exist. Column group id = "+n);r.columnOrder.forEach(o=>{if(e.columns[o].width==null)throw new Error("All columns in sticky column group must have width set.")})},Zn=e=>{const t=e.stickyColumnGroups==="first"||e.stickyColumnGroups==="both"?Ze(tr(e),e.columns,!0):void 0,n=e.stickyColumnGroups==="last"||e.stickyColumnGroups==="both"?Ze(nr(e),e.columns,!1):void 0;return{...t,...n}},Ze=(e,t,n)=>{const r={},o=[n?"var(--current-left-offset)":"0px"];for(let a=0;a<e.length;a++){const i=e[a],c=t?.[i];r[i]=er(o),o.push(c?.width??"0px")}return r},er=e=>e.length===0?"0px":e.length===1?e[0]:"calc("+e.join(" + ")+")",tr=e=>{const t=e.columnGroupOrder?.[0];return t?e.columnGroups?.[t]?.columnOrder??[]:[]},nr=e=>{const t=e.columnGroupOrder?.[e.columnGroupOrder?.length-1];if(!t)return[];const n=e.columnGroups?.[t];if(!n)return[];const r=[...n.columnOrder];return r.reverse(),r},rr=e=>"columnGroups"in e?sr(e):or(e),or=e=>Object.keys(e.columns).reduce((n,r)=>{const o=e.columns[r],a=!!o.sticky;return n[r]={sticky:a,left:a?`calc(var(--current-left-offset) + ${o.left??"0px"})`:void 0,right:a?o.right:void 0,type:"column",isFirstColumnInLastGroup:!1,isLastColumnInFirstGroup:!1},n},{}),sr=e=>{const t={},n=e.columnGroupOrder,r=Zn(e),o=e.stickyColumnGroups==="first"||e.stickyColumnGroups==="both",a=e.stickyColumnGroups==="last"||e.stickyColumnGroups==="both";return n.forEach((i,c)=>{const m=e.columnGroups[i].columnOrder;m.forEach((u,h)=>{const p=c===0,g=c===n.length-1,w=p&&o,x=g&&a,b=h===0&&g,C=h===m.length-1&&p;t[u]={sticky:w||x,left:w?r[u]:void 0,right:x?r[u]:void 0,type:w?"first-group":x?"last-group":void 0,isFirstColumnInLastGroup:b,isLastColumnInFirstGroup:C}})}),t},Dt=(e,t)=>({setSelectedIds:n=>P.reducerIdGateAction(L(e,"selectedIds"),t.selectedIds.setSelectedIds(n)),clearSelection:()=>P.reducerIdGateAction(L(e,"selectedIds"),t.selectedIds.clearSelectedIds()),expandByIds:n=>P.reducerIdGateAction(L(e,"expandedRows"),t.expandedRows.setSelectedIds(n)),collapseAll:()=>P.reducerIdGateAction(L(e,"expandedRows"),t.expandedRows.clearSelectedIds()),sortBy:(n,r)=>P.reducerIdGateAction(L(e,"sortOrder"),t.sortOrder.sortBy(n,r??!1)),clearSortOrder:()=>P.reducerIdGateAction(L(e,"sortOrder"),t.sortOrder.clearSortOrder()),setLastSelectedId:n=>P.reducerIdGateAction(L(e,"fields"),t.fields.setEntityFields({lastSelectedId:n}))}),Et=(e,t=Ye())=>{const[n,r]=d.useReducer(yt(e),t),o=d.useMemo(()=>Dt(e,Ct()),[e]);return{tableContext:d.useMemo(()=>({dispatch:r,actions:o,state:n}),[n,o,r])}},ar=e=>(e.rowIndent?2:0)+(e.enableExpandCollapse?1:0)+(e.showRowCheckbox?1:0)+ir(e),ir=e=>"columnGroupOrder"in e?e.columnGroupOrder.reduce((t,n)=>{const r=e.columnGroups?.[n];return t+(r?.columnOrder?.length??0)},0):e.columnOrder?.length??0,cr=()=>{const e=I(),t=V(),n=e.enableExpandCollapse||e.showRowCheckbox,r=f.booleanOrNumberToNumber(e.rowIndent);return s.jsxs(s.Fragment,{children:[r?s.jsx("colgroup",{children:s.jsx("col",{style:{width:`calc(var(--swui-metrics-indent) * ${r})`}})}):null,n&&s.jsxs("colgroup",{children:[e.enableExpandCollapse&&s.jsx("col",{style:{width:"var(--swui-expand-cell-width)"}}),e.showRowCheckbox&&s.jsx("col",{style:{width:"var(--swui-checkbox-cell-width)"}})]}),t.map(({groupConfig:o,groupId:a})=>s.jsx("colgroup",{children:o.columnOrder.map(i=>s.jsx("col",{style:{width:e.columns[i].width,minWidth:e.columns[i].minWidth}},i))},a)),r?s.jsx("colgroup",{children:s.jsx("col",{style:{width:`calc(var(--swui-metrics-indent) * ${r})`}})}):null]})},lr="_standardTable_d7cgg_1",dr="_relaxed_d7cgg_39",ur="_condensed_d7cgg_43",hr="_compact_d7cgg_47",et={standardTable:lr,relaxed:dr,condensed:ur,compact:hr},Gt=(e,t)=>e!=null&&t==null?-1:e==null&&t!=null?1:Ie(e,t,"number")?Number(e)-Number(t):Ie(e,t,"boolean")?Number(t)-Number(e):Ie(e,t,"string")?String(e).localeCompare(String(t)):e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():0,Ie=(e,t,n)=>typeof e===n&&typeof t===n,Ft=e=>{const{columns:t}=I();if(!e)return;const n=t[e];if(n)return n.itemValueResolver},Bt=R.memo(function({value:t,onValueChange:n,colIndex:r,rowIndex:o,numRows:a,disabled:i,onValueChangeAndShift:c,shiftPressedRef:l}){const m=kt(),u=ve(),h=he(!!t,{colIndex:r,numCols:m,numRows:a,rowIndex:o,tableId:u}),{requiredProps:p}=h,g=d.useCallback(w=>{l.current?c?.(w):n?.(w)},[n,c,l]);return s.jsx(se.Checkbox,{size:"small",disabled:i,value:t,onValueChange:g,...p})}),mr=(e,t,n)=>{if(t==null||n==null||e==null||t===n)return;const r=e.indexOf(t),o=e.indexOf(n);if(r<0||o<0)return;const a=Math.min(r,o),i=Math.max(r,o);return e.slice(a,i+1)},Wt=(e,t)=>{const{keyResolver:n}=I(),{selectedIds:{selectedIds:r},fields:{lastSelectedId:o}}=_(),{actions:{setSelectedIds:a,setLastSelectedId:i},dispatch:c}=ae(),l=d.useMemo(()=>n(e),[n,e]),m=d.useMemo(()=>r.includes(l),[r,l]),{toggle:u,addMultiple:h,removeMultiple:p}=f.useArraySet(r,x=>c(a(x))),g=d.useCallback(()=>{if(t&&o){const x=mr(t,o,l);x?.length?m?p(x):h(x):u(l)}else u(l);c(i(l))},[t,o,c,i,l,m,p,h,u]),w=d.useCallback(()=>{u(l),c(i(l))},[u,l,c,i]);return{isSelected:m,toggleSelected:w,shiftAndToggleSelected:g}},$e=e=>{const{keyResolver:t}=I(),{expandedRows:{selectedIds:n}}=_(),{actions:{expandByIds:r},dispatch:o}=ae(),a=d.useMemo(()=>t(e),[t,e]),i=d.useMemo(()=>n.includes(a),[n,a]),{toggle:c}=f.useArraySet(n,m=>o(r(m)));return{toggleRowExpanded:d.useCallback(()=>{c(a)},[c,a]),isExpanded:i}},fr=function({item:e,colIndex:t,numRows:n,rowIndex:r}){const o=kt(),a=ve(),i=he(!0,{colIndex:t,numCols:o,numRows:n,rowIndex:r,tableId:a}),{requiredProps:c}=i,{expandCollapseDisableResolver:l}=I(),{toggleRowExpanded:m,isExpanded:u}=$e(e),h=d.useMemo(()=>l?l(e):!1,[l,e]);return s.jsx(f.Row,{alignItems:"center",justifyContent:"center",indent:!0,children:!h&&s.jsx(y.FlatButton,{size:"small",leftIcon:u?y.stenaAngleDown:y.stenaAngleRight,onClick:m,...c})})},xr=(e,t,n)=>e?e(t):n,At=(e,t,n)=>d.useMemo(()=>xr(e,t,n),[e,t,n]),Ht=(e,t)=>{const{background:n,backgroundResolver:r}=ie(e);return At(r,t,n)},Re=(e,t)=>{const{background:n,backgroundResolver:r}=e??{};return At(r,t,n)},Lt=e=>e==null?"":e instanceof Date?e.toISOString():typeof e=="object"?JSON.stringify(e):String(e),Nt=e=>Oe.upperFirst(Oe.lowerCase(e)),pr="_standardTableCell_1xzcm_1",gr={standardTableCell:pr},qt=R.memo(function({enableGridCell:t,children:n,background:r,gridCellRequiredProps:o,isEditing:a,justifyContent:i,onKeyDown:c,width:l,minWidth:m}){return s.jsx(f.Row,{width:l,minWidth:m,height:"inherit",background:r,overflow:"hidden",onKeyDown:c,children:s.jsx(f.Row,{border:"1px solid transparent",className:gr.standardTableCell,width:"100%",height:"100%",justifyContent:i,alignItems:"center",borderRadius:t?"4px":void 0,focusBorder:t&&!a?"1px solid var(--swui-primary-action-color)":void 0,hoverBorder:t&&!a?"1px solid var(--lhds-color-ui-300)":void 0,...t?o:void 0,children:n})})}),Yt=R.memo(function({label:t,size:n,color:r}){return s.jsx(f.Indent,{overflow:"hidden",children:s.jsx(f.Text,{title:t,size:n,color:r,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:t})})}),wr=({label:e,textSize:t})=>s.jsx(Yt,{label:e,size:t}),zt=R.memo(function({columnId:t,item:n,colIndex:r,rowIndex:o,numRows:a,borderFromGroup:i,disableBorderLeft:c}){const{keyResolver:l,enableGridCell:m,gridCellOptions:u}=I(),h=_().selectedIds.selectedIds,p=ve(),g=Hn(),{numNavigableColumns:w}=Mt(),x=ze(),b=d.useMemo(()=>l(n),[n,l]),C=d.useMemo(()=>h.indexOf(b)>=0,[b,h]),{defaultCellRenderer:j=wr,defaultTextSize:T}=I(),{itemValueResolver:k,itemLabelFormatter:S,width:M,minWidth:E,justifyContentCell:G="flex-start",borderLeft:W,renderCell:A=j,gridCellOptions:Y,isEditable:H,onChange:F,onKeyDown:K,disableGridCell:ce,disableGridCellFocus:$,zIndex:ee,height:Q}=ie(t),X=d.useMemo(()=>k?k(n):t in n?n[t]:"",[k,n,t]),te=d.useMemo(()=>S?S(X,n):Lt(X),[X,S,n]),U=typeof H=="boolean"?H:H?H(n):void 0,me=d.useCallback(xe=>{K?.(xe,{columnId:t,item:n}),g?.(xe,{columnId:t,item:n})},[g,t,n,K]),fe=he(te,{colIndex:r,rowIndex:o,numRows:a,numCols:w,tableId:p,isEditable:U,onChange:F?xe=>F(n,xe):void 0,...u,...Y}),D=x[t],sn=Ht(t,n)??"inherit",je=D.sticky?ee??"var(--swui-sticky-column-z-index)":ee??1,Qe=Q??"var(--current-row-height)",an=d.useMemo(()=>A({label:te,value:X,item:n,gridCell:fe,isEditable:U,isSelected:C,zIndex:je,textSize:T,itemKey:b,height:Qe}),[A,te,X,n,fe,U,C,je,b,T,Qe]),cn=Ke(i,c,W),ln=D.sticky&&D.type==="last-group"&&D.isFirstColumnInLastGroup||D.sticky&&D.type==="column"&&D.right?"var(--swui-sticky-column-shadow-left)":D.sticky?"var(--swui-sticky-column-shadow-right)":void 0;return s.jsx("td",{style:{borderLeft:cn,position:D.sticky?"sticky":void 0,left:D.sticky?D.left:void 0,right:D.sticky?D.right:void 0,boxShadow:ln,zIndex:je,height:"var(--current-row-height)",background:sn},children:s.jsx(qt,{enableGridCell:m&&!ce&&!$,gridCellRequiredProps:fe.requiredProps,isEditing:fe.isEditing,width:M,minWidth:E,justifyContent:G,onKeyDown:me,children:an})})}),br=function({item:t}){const{renderRowExpansion:n,enableExpandCollapse:r}=I(),{isExpanded:o,toggleRowExpanded:a}=$e(t),i=_e();return s.jsx(s.Fragment,{children:r&&n&&o&&s.jsx("tr",{style:{borderLeft:Fe,background:Ge},children:s.jsx("td",{colSpan:i,children:n(t,{onRequestCollapse:a})})})})},_t=un.tr`
|
|
3
2
|
${({focusBackground:e})=>e?`--focus-within-background: ${e};`:""}
|
|
4
3
|
${({borderLeft:e})=>e?`border-left: ${e};`:""};
|
|
5
4
|
${({background:e})=>e?`background: ${e};`:""};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/grid",
|
|
3
|
-
"version": "23.
|
|
3
|
+
"version": "23.17.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "mattias800",
|
|
@@ -20,7 +20,9 @@
|
|
|
20
20
|
},
|
|
21
21
|
"./package.json": "./package.json"
|
|
22
22
|
},
|
|
23
|
-
"sideEffects":
|
|
23
|
+
"sideEffects": [
|
|
24
|
+
"**/*.css"
|
|
25
|
+
],
|
|
24
26
|
"engines": {
|
|
25
27
|
"node": ">=8",
|
|
26
28
|
"npm": ">=5"
|
|
@@ -35,13 +37,13 @@
|
|
|
35
37
|
"deploy": "gh-pages -d example/build"
|
|
36
38
|
},
|
|
37
39
|
"dependencies": {
|
|
38
|
-
"@stenajs-webui/core": "23.
|
|
39
|
-
"@stenajs-webui/elements": "23.
|
|
40
|
-
"@stenajs-webui/forms": "23.
|
|
41
|
-
"@stenajs-webui/panels": "23.
|
|
42
|
-
"@stenajs-webui/redux": "23.
|
|
43
|
-
"@stenajs-webui/theme": "23.
|
|
44
|
-
"@stenajs-webui/tooltip": "23.
|
|
40
|
+
"@stenajs-webui/core": "23.17.0",
|
|
41
|
+
"@stenajs-webui/elements": "23.17.0",
|
|
42
|
+
"@stenajs-webui/forms": "23.17.0",
|
|
43
|
+
"@stenajs-webui/panels": "23.17.0",
|
|
44
|
+
"@stenajs-webui/redux": "23.17.0",
|
|
45
|
+
"@stenajs-webui/theme": "23.17.0",
|
|
46
|
+
"@stenajs-webui/tooltip": "23.17.0",
|
|
45
47
|
"classnames": "^2.5.1",
|
|
46
48
|
"lodash-es": "^4.17.21"
|
|
47
49
|
},
|
|
@@ -76,7 +78,7 @@
|
|
|
76
78
|
"files": [
|
|
77
79
|
"dist"
|
|
78
80
|
],
|
|
79
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "8393f3f75ef610ba0def714186ce94d7fbaa6d8e",
|
|
80
82
|
"publishConfig": {
|
|
81
83
|
"access": "public"
|
|
82
84
|
}
|