@cgi-learning-hub/ui 1.5.0-dev.1743667291 → 1.5.0-dev.1743686462
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,4 +4,4 @@
|
|
|
4
4
|
`)))}}removeListener(t,n){this.events[t]&&(this.events[t].regular.delete(n),this.events[t].highPriority.delete(n))}removeAllListeners(){this.events={}}emit(t,...n){const s=this.events[t];if(!s)return;const c=Array.from(s.highPriority.keys()),y=Array.from(s.regular.keys());for(let I=c.length-1;I>=0;I-=1){const p=c[I];s.highPriority.has(p)&&p.apply(this,n)}for(let I=0;I<y.length;I+=1){const p=y[I];s.regular.has(p)&&p.apply(this,n)}}once(t,n){const s=this;this.on(t,function c(...y){s.removeListener(t,c),n.apply(s,y)})}}const bt=e=>e.isPropagationStopped!==void 0,Oe=()=>{const[e]=x.useState(()=>new gt),t=x.useCallback((...s)=>{const[c,y,I={}]=s;I.defaultMuiPrevented=!1,!(bt(I)&&I.isPropagationStopped())&&e.emit(c,y,I)},[e]),n=x.useCallback((s,c)=>(e.on(s,c),()=>{e.removeListener(s,c)}),[e]);return{instance:{$$publishEvent:t,$$subscribeEvent:n}}};Oe.params={};const _e=({plugins:e})=>{const t=new Set(e);return{instance:{getAvailablePlugins:()=>t}}};_e.params={};const ge=({params:e,state:t,setState:n})=>{x.useEffect(()=>{n(c=>c.id.treeId===e.id&&c.id.treeId!==void 0?c:C._extends({},c,{id:C._extends({},c.id,{treeId:e.id??h.createTreeViewDefaultId()})}))},[n,e.id]);const s=e.id??t.id.treeId;return{getRootProps:()=>({id:s}),contextValue:{treeId:s}}};ge.params={id:!0};ge.getInitialState=({id:e})=>({id:{treeId:e??void 0}});const ht=[Oe,_e,ge],Tt=["slots","slotProps","apiRef","experimentalFeatures"],yt=e=>{let{props:{slots:t,slotProps:n,apiRef:s,experimentalFeatures:c},plugins:y}=e,I=j._objectWithoutPropertiesLoose(e.props,Tt);const p={};y.forEach(u=>{Object.assign(p,u.params)});const g={},f={};Object.keys(I).forEach(u=>{const b=I[u];p[u]?g[u]=b:f[u]=b});const o=c??{},r=y.reduce((u,b)=>b.getDefaultizedParams?b.getDefaultizedParams({params:u,experimentalFeatures:o}):u,g);return{apiRef:s,forwardedProps:f,pluginParams:r,slots:t??{},slotProps:n??{},experimentalFeatures:o}},xt=({plugins:e,instance:t,publicAPI:n,rootRef:s})=>({runItemPlugins:p=>{let g=null,f=null;const o=[],r={};e.forEach(T=>{if(!T.itemPlugin)return;const a=T.itemPlugin({props:p,rootRef:g,contentRef:f});a!=null&&a.rootRef&&(g=a.rootRef),a!=null&&a.contentRef&&(f=a.contentRef),a!=null&&a.propsEnhancers&&(o.push(a.propsEnhancers),Object.keys(a.propsEnhancers).forEach(l=>{r[l]=!0}))});const u=T=>a=>{const l={};return o.forEach(d=>{const m=d[T];m!=null&&Object.assign(l,m(a))}),l},b=Object.fromEntries(Object.keys(r).map(T=>[T,u(T)]));return{contentRef:f,rootRef:g,propsEnhancers:b}},wrapItem:({itemId:p,children:g})=>{let f=g;for(let o=e.length-1;o>=0;o-=1){const r=e[o];r.wrapItem&&(f=r.wrapItem({itemId:p,children:f,instance:t}))}return f},wrapRoot:({children:p})=>{let g=p;for(let f=e.length-1;f>=0;f-=1){const o=e[f];o.wrapRoot&&(g=o.wrapRoot({children:g,instance:t}))}return g},instance:t,rootRef:s,publicAPI:n});function Pt(e){const t=x.useRef({});return e?(e.current==null&&(e.current={}),e.current):t.current}const Et=({plugins:e,rootRef:t,props:n})=>{const s=[...ht,...e],{pluginParams:c,forwardedProps:y,apiRef:I,experimentalFeatures:p,slots:g,slotProps:f}=yt({plugins:s,props:n}),o=It(s,c),u=x.useRef({}).current,b=Pt(I),T=x.useRef(null),a=Ie.useForkRef(T,t),l=xt({plugins:s,instance:u,publicAPI:b,rootRef:T}),[d,m]=x.useState(()=>{const R={};return s.forEach(k=>{k.getInitialState&&Object.assign(R,k.getInitialState(c))}),R}),P=[],v=R=>{const k=R({instance:u,params:c,slots:g,slotProps:f,experimentalFeatures:p,state:d,setState:m,rootRef:T,models:o,plugins:s});k.getRootProps&&P.push(k.getRootProps),k.publicAPI&&Object.assign(b,k.publicAPI),k.instance&&Object.assign(u,k.instance),k.contextValue&&Object.assign(l,k.contextValue)};return s.forEach(v),{getRootProps:(R={})=>{const k=C._extends({role:"tree"},y,R,{ref:a});return P.forEach(A=>{Object.assign(k,A(R))}),k},rootRef:a,contextValue:l,instance:u}};function Ct(e){const{value:t,children:n}=e;return S.jsx(h.TreeViewContext.Provider,{value:t,children:t.wrapRoot({children:n,instance:t.instance})})}const wt=(e,t,n)=>{e.$$publishEvent(t,n)},U="__TREE_VIEW_ROOT_PARENT_ID__",Rt=e=>{const t={};return e.forEach((n,s)=>{t[n]=s}),t},St=["children"],Ve=({items:e,isItemDisabled:t,getItemLabel:n,getItemId:s})=>{const c={},y={},I={[U]:[]},p=(f,o,r)=>{var a,l;const u=s?s(f):f.id;if(u==null)throw new Error(["MUI X: The Tree View component requires all items to have a unique `id` property.","Alternatively, you can use the `getItemId` prop to specify a custom id for each item.","An item was provided without id in the `items` prop:",JSON.stringify(f)].join(`
|
|
5
5
|
`));if(c[u]!=null)throw new Error(["MUI X: The Tree View component requires all items to have a unique `id` property.","Alternatively, you can use the `getItemId` prop to specify a custom id for each item.",`Two items were provided with the same id in the \`items\` prop: "${u}"`].join(`
|
|
6
6
|
`));const b=n?n(f):f.label;if(b==null)throw new Error(["MUI X: The Tree View component requires all items to have a `label` property.","Alternatively, you can use the `getItemLabel` prop to specify a custom label for each item.","An item was provided without label in the `items` prop:",JSON.stringify(f)].join(`
|
|
7
|
-
`));c[u]={id:u,label:b,parentId:r,idAttribute:void 0,expandable:!!((a=f.children)!=null&&a.length),disabled:t?t(f):!1,depth:o},y[u]=f;const T=r??U;I[T]||(I[T]=[]),I[T].push(u),(l=f.children)==null||l.forEach(d=>p(d,o+1,u))};e.forEach(f=>p(f,0,null));const g={};return Object.keys(I).forEach(f=>{g[f]=Rt(I[f])}),{itemMetaMap:c,itemMap:y,itemOrderedChildrenIds:I,itemChildrenIndexes:g}},H=({instance:e,params:t,state:n,setState:s,experimentalFeatures:c})=>{const y=x.useCallback(d=>n.items.itemMetaMap[d],[n.items.itemMetaMap]),I=x.useCallback(d=>n.items.itemMap[d],[n.items.itemMap]),p=x.useCallback(()=>{const d=m=>{const P=n.items.itemMap[m],v=j._objectWithoutPropertiesLoose(P,St),E=n.items.itemOrderedChildrenIds[m];return E&&(v.children=E.map(d)),v};return n.items.itemOrderedChildrenIds[U].map(d)},[n.items.itemMap,n.items.itemOrderedChildrenIds]),g=x.useCallback(d=>{if(d==null)return!1;let m=e.getItemMeta(d);if(!m)return!1;if(m.disabled)return!0;for(;m.parentId!=null;)if(m=e.getItemMeta(m.parentId),m.disabled)return!0;return!1},[e]),f=x.useCallback(d=>{const m=e.getItemMeta(d).parentId??U;return n.items.itemChildrenIndexes[m][d]},[e,n.items.itemChildrenIndexes]),o=x.useCallback(d=>n.items.itemOrderedChildrenIds[d??U]??[],[n.items.itemOrderedChildrenIds]),r=d=>{const m=e.getItemMeta(d);return m==null?null:document.getElementById(h.generateTreeItemIdAttribute({treeId:n.id.treeId,itemId:d,id:m.idAttribute}))},u=d=>t.disabledItemsFocusable?!0:!e.isItemDisabled(d),b=x.useRef(!1),T=x.useCallback(()=>{b.current=!0},[]),a=x.useCallback(()=>b.current,[]);return x.useEffect(()=>{e.areItemUpdatesPrevented()||s(d=>{const m=Ve({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(d.items.itemMetaMap).forEach(P=>{m.itemMetaMap[P.id]||wt(e,"removeItem",{id:P.id})}),C._extends({},d,{items:m})})},[e,s,t.items,t.isItemDisabled,t.getItemId,t.getItemLabel]),{getRootProps:()=>({style:{"--TreeView-itemChildrenIndentation":typeof t.itemChildrenIndentation=="number"?`${t.itemChildrenIndentation}px`:t.itemChildrenIndentation}}),publicAPI:{getItem:I,getItemDOMElement:r,getItemTree:p,getItemOrderedChildrenIds:o},instance:{getItemMeta:y,getItem:I,getItemTree:p,getItemsToRender:()=>{const d=m=>{var v;const P=n.items.itemMetaMap[m];return{label:P.label,itemId:P.id,id:P.idAttribute,children:(v=n.items.itemOrderedChildrenIds[m])==null?void 0:v.map(d)}};return n.items.itemOrderedChildrenIds[U].map(d)},getItemIndex:f,getItemDOMElement:r,getItemOrderedChildrenIds:o,isItemDisabled:g,isItemNavigable:u,preventItemUpdates:T,areItemUpdatesPrevented:a},contextValue:{items:{onItemClick:t.onItemClick,disabledItemsFocusable:t.disabledItemsFocusable,indentationAtItemLevel:c.indentationAtItemLevel??!1}}}};H.getInitialState=e=>({items:Ve({items:e.items,isItemDisabled:e.isItemDisabled,getItemId:e.getItemId,getItemLabel:e.getItemLabel})});H.getDefaultizedParams=({params:e})=>C._extends({},e,{disabledItemsFocusable:e.disabledItemsFocusable??!1,itemChildrenIndentation:e.itemChildrenIndentation??"12px"});H.wrapRoot=({children:e,instance:t})=>S.jsx(h.TreeViewItemDepthContext.Provider,{value:n=>{var s;return((s=t.getItemMeta(n))==null?void 0:s.depth)??0},children:e});H.params={disabledItemsFocusable:!0,items:!0,isItemDisabled:!0,getItemLabel:!0,getItemId:!0,onItemClick:!0,itemChildrenIndentation:!0};const se=({instance:e,params:t,models:n})=>{const s=x.useMemo(()=>{const r=new Map;return n.expandedItems.value.forEach(u=>{r.set(u,!0)}),r},[n.expandedItems.value]),c=(r,u)=>{var b;(b=t.onExpandedItemsChange)==null||b.call(t,r,u),n.expandedItems.setControlledValue(u)},y=x.useCallback(r=>s.has(r),[s]),I=x.useCallback(r=>{var u;return!!((u=e.getItemMeta(r))!=null&&u.expandable)},[e]),p=K.useEventCallback((r,u)=>{const b=e.isItemExpanded(u);e.setItemExpansion(r,u,!b)}),g=K.useEventCallback((r,u,b)=>{if(e.isItemExpanded(u)===b)return;let a;b?a=[u].concat(n.expandedItems.value):a=n.expandedItems.value.filter(l=>l!==u),t.onItemExpansionToggle&&t.onItemExpansionToggle(r,u,b),c(r,a)}),f=(r,u)=>{const b=e.getItemMeta(u),a=e.getItemOrderedChildrenIds(b.parentId).filter(d=>e.isItemExpandable(d)&&!e.isItemExpanded(d)),l=n.expandedItems.value.concat(a);a.length>0&&(t.onItemExpansionToggle&&a.forEach(d=>{t.onItemExpansionToggle(r,d,!0)}),c(r,l))},o=x.useMemo(()=>t.expansionTrigger?t.expansionTrigger:e.isTreeViewEditable?"iconContainer":"content",[t.expansionTrigger,e.isTreeViewEditable]);return{publicAPI:{setItemExpansion:g},instance:{isItemExpanded:y,isItemExpandable:I,setItemExpansion:g,toggleItemExpansion:p,expandAllSiblings:f},contextValue:{expansion:{expansionTrigger:o}}}};se.models={expandedItems:{getDefaultValue:e=>e.defaultExpandedItems}};const vt=[];se.getDefaultizedParams=({params:e})=>C._extends({},e,{defaultExpandedItems:e.defaultExpandedItems??vt});se.params={expandedItems:!0,defaultExpandedItems:!0,onExpandedItemsChange:!0,onItemExpansionToggle:!0,expansionTrigger:!0};const oe=e=>Array.isArray(e)?e:e!=null?[e]:[],me=e=>{const t={};return e.forEach(n=>{t[n]=!0}),t},re=({instance:e,params:t,models:n})=>{const s=x.useRef(null),c=x.useRef({}),y=x.useMemo(()=>{const a=new Map;return Array.isArray(n.selectedItems.value)?n.selectedItems.value.forEach(l=>{a.set(l,!0)}):n.selectedItems.value!=null&&a.set(n.selectedItems.value,!0),a},[n.selectedItems.value]),I=(a,l)=>{if(t.onItemSelectionToggle)if(t.multiSelect){const d=l.filter(P=>!e.isItemSelected(P)),m=n.selectedItems.value.filter(P=>!l.includes(P));d.forEach(P=>{t.onItemSelectionToggle(a,P,!0)}),m.forEach(P=>{t.onItemSelectionToggle(a,P,!1)})}else l!==n.selectedItems.value&&(n.selectedItems.value!=null&&t.onItemSelectionToggle(a,n.selectedItems.value,!1),l!=null&&t.onItemSelectionToggle(a,l,!0));t.onSelectedItemsChange&&t.onSelectedItemsChange(a,l),n.selectedItems.setControlledValue(l)},p=a=>y.has(a),g=({event:a,itemId:l,keepExistingSelection:d=!1,shouldBeSelected:m})=>{if(t.disableSelection)return;let P;if(d){const v=oe(n.selectedItems.value),E=e.isItemSelected(l);E&&(m===!1||m==null)?P=v.filter(R=>R!==l):!E&&(m===!0||m==null)?P=[l].concat(v):P=v}else m===!1||m==null&&e.isItemSelected(l)?P=t.multiSelect?[]:null:P=t.multiSelect?[l]:l;I(a,P),s.current=l,c.current={}},f=(a,[l,d])=>{if(t.disableSelection||!t.multiSelect)return;let m=oe(n.selectedItems.value).slice();Object.keys(c.current).length>0&&(m=m.filter(R=>!c.current[R]));const P=me(m),v=h.getNonDisabledItemsInRange(e,l,d),E=v.filter(R=>!P[R]);m=m.concat(E),I(a,m),c.current=me(v)};return{getRootProps:()=>({"aria-multiselectable":t.multiSelect}),publicAPI:{selectItem:g},instance:{isItemSelected:p,selectItem:g,selectAllNavigableItems:a=>{if(t.disableSelection||!t.multiSelect)return;const l=h.getAllNavigableItems(e);I(a,l),c.current=me(l)},expandSelectionRange:(a,l)=>{if(s.current!=null){const[d,m]=h.findOrderInTremauxTree(e,l,s.current);f(a,[d,m])}},selectRangeFromStartToItem:(a,l)=>{f(a,[h.getFirstNavigableItem(e),l])},selectRangeFromItemToEnd:(a,l)=>{f(a,[l,h.getLastNavigableItem(e)])},selectItemFromArrowNavigation:(a,l,d)=>{if(t.disableSelection||!t.multiSelect)return;let m=oe(n.selectedItems.value).slice();Object.keys(c.current).length===0?(m.push(d),c.current={[l]:!0,[d]:!0}):(c.current[l]||(c.current={}),c.current[d]?(m=m.filter(P=>P!==l),delete c.current[l]):(m.push(d),c.current[d]=!0)),I(a,m)}},contextValue:{selection:{multiSelect:t.multiSelect,checkboxSelection:t.checkboxSelection,disableSelection:t.disableSelection}}}};re.models={selectedItems:{getDefaultValue:e=>e.defaultSelectedItems}};const kt=[];re.getDefaultizedParams=({params:e})=>C._extends({},e,{disableSelection:e.disableSelection??!1,multiSelect:e.multiSelect??!1,checkboxSelection:e.checkboxSelection??!1,defaultSelectedItems:e.defaultSelectedItems??(e.multiSelect?kt:null)});re.params={disableSelection:!0,multiSelect:!0,checkboxSelection:!0,defaultSelectedItems:!0,selectedItems:!0,onSelectedItemsChange:!0,onItemSelectionToggle:!0};const Me=1e3;class Dt{constructor(t=Me){this.timeouts=new Map,this.cleanupTimeout=Me,this.cleanupTimeout=t}register(t,n,s){this.timeouts||(this.timeouts=new Map);const c=setTimeout(()=>{typeof n=="function"&&n(),this.timeouts.delete(s.cleanupToken)},this.cleanupTimeout);this.timeouts.set(s.cleanupToken,c)}unregister(t){const n=this.timeouts.get(t.cleanupToken);n&&(this.timeouts.delete(t.cleanupToken),clearTimeout(n))}reset(){this.timeouts&&(this.timeouts.forEach((t,n)=>{this.unregister({cleanupToken:n})}),this.timeouts=void 0)}}class Mt{constructor(){this.registry=new FinalizationRegistry(t=>{typeof t=="function"&&t()})}register(t,n,s){this.registry.register(t,n,s)}unregister(t){this.registry.unregister(t)}reset(){}}class Ot{}function _t(e){let t=0;return function(s,c,y){e.registry===null&&(e.registry=typeof FinalizationRegistry<"u"?new Mt:new Dt);const[I]=x.useState(new Ot),p=x.useRef(null),g=x.useRef(void 0);g.current=y;const f=x.useRef(null);if(!p.current&&g.current){const o=(r,u)=>{var b;u.defaultMuiPrevented||(b=g.current)==null||b.call(g,r,u)};p.current=s.$$subscribeEvent(c,o),t+=1,f.current={cleanupToken:t},e.registry.register(I,()=>{var r;(r=p.current)==null||r.call(p),p.current=null,f.current=null},f.current)}else!g.current&&p.current&&(p.current(),p.current=null,f.current&&(e.registry.unregister(f.current),f.current=null));x.useEffect(()=>{if(!p.current&&g.current){const o=(r,u)=>{var b;u.defaultMuiPrevented||(b=g.current)==null||b.call(g,r,u)};p.current=s.$$subscribeEvent(c,o)}return f.current&&e.registry&&(e.registry.unregister(f.current),f.current=null),()=>{var o;(o=p.current)==null||o.call(p),p.current=null}},[s,c])}}const Vt={registry:null},jt=_t(Vt),je=(e=document)=>{const t=e.activeElement;return t?t.shadowRoot?je(t.shadowRoot):t:null},Ft=(e,t)=>{let n=oe(t).find(s=>{if(!e.isItemNavigable(s))return!1;const c=e.getItemMeta(s);return c&&(c.parentId==null||e.isItemExpanded(c.parentId))});return n==null&&(n=h.getFirstNavigableItem(e)),n},be=({instance:e,params:t,state:n,setState:s,models:c,rootRef:y})=>{const I=Ft(e,c.selectedItems.value),p=K.useEventCallback(l=>{const d=typeof l=="function"?l(n.focusedItemId):l;n.focusedItemId!==d&&s(m=>C._extends({},m,{focusedItemId:d}))}),g=x.useCallback(()=>!!y.current&&y.current.contains(je(ct.ownerDocument(y.current))),[y]),f=x.useCallback(l=>n.focusedItemId===l&&g(),[n.focusedItemId,g]),o=l=>{const d=e.getItemMeta(l);return d&&(d.parentId==null||e.isItemExpanded(d.parentId))},r=(l,d)=>{const m=e.getItemDOMElement(d);m&&m.focus(),p(d),t.onItemFocus&&t.onItemFocus(l,d)},u=K.useEventCallback((l,d)=>{o(d)&&r(l,d)}),b=K.useEventCallback(()=>{if(n.focusedItemId==null)return;if(e.getItemMeta(n.focusedItemId)){const d=e.getItemDOMElement(n.focusedItemId);d&&d.blur()}p(null)}),T=l=>l===I;jt(e,"removeItem",({id:l})=>{n.focusedItemId===l&&r(null,I)});const a=l=>d=>{var m;(m=l.onFocus)==null||m.call(l,d),!d.defaultMuiPrevented&&d.target===d.currentTarget&&r(d,I)};return{getRootProps:l=>({onFocus:a(l)}),publicAPI:{focusItem:u},instance:{isItemFocused:f,canItemBeTabbed:T,focusItem:u,removeFocusedItem:b}}};be.getInitialState=()=>({focusedItemId:null});be.params={onItemFocus:!0};function At(e){return!!e&&e.length===1&&!!e.match(/\S/)}const Fe=({instance:e,params:t,state:n})=>{const s=at.useRtl(),c=x.useRef({}),y=K.useEventCallback(o=>{c.current=o(c.current)});x.useEffect(()=>{if(e.areItemUpdatesPrevented())return;const o={},r=u=>{o[u.id]=u.label.substring(0,1).toLowerCase()};Object.values(n.items.itemMetaMap).forEach(r),c.current=o},[n.items.itemMetaMap,t.getItemId,e]);const I=(o,r)=>{const u=r.toLowerCase(),b=d=>{const m=h.getNextNavigableItem(e,d);return m===null?h.getFirstNavigableItem(e):m};let T=null,a=b(o);const l={};for(;T==null&&!l[a];)c.current[a]===u?T=a:(l[a]=!0,a=b(a));return T},p=o=>!t.disableSelection&&!e.isItemDisabled(o),g=o=>!e.isItemDisabled(o)&&e.isItemExpandable(o);return{instance:{updateFirstCharMap:y,handleItemKeyDown:(o,r)=>{if(o.defaultMuiPrevented||o.altKey||h.isTargetInDescendants(o.target,o.currentTarget))return;const u=o.ctrlKey||o.metaKey,b=o.key;switch(!0){case(b===" "&&p(r)):{o.preventDefault(),t.multiSelect&&o.shiftKey?e.expandSelectionRange(o,r):e.selectItem({event:o,itemId:r,keepExistingSelection:t.multiSelect,shouldBeSelected:t.multiSelect?void 0:!0});break}case b==="Enter":{h.hasPlugin(e,h.useTreeViewLabel)&&e.isItemEditable(r)&&!e.isItemBeingEdited(r)?e.setEditedItemId(r):g(r)?(e.toggleItemExpansion(o,r),o.preventDefault()):p(r)&&(t.multiSelect?(o.preventDefault(),e.selectItem({event:o,itemId:r,keepExistingSelection:!0})):e.isItemSelected(r)||(e.selectItem({event:o,itemId:r}),o.preventDefault()));break}case b==="ArrowDown":{const T=h.getNextNavigableItem(e,r);T&&(o.preventDefault(),e.focusItem(o,T),t.multiSelect&&o.shiftKey&&p(T)&&e.selectItemFromArrowNavigation(o,r,T));break}case b==="ArrowUp":{const T=h.getPreviousNavigableItem(e,r);T&&(o.preventDefault(),e.focusItem(o,T),t.multiSelect&&o.shiftKey&&p(T)&&e.selectItemFromArrowNavigation(o,r,T));break}case(b==="ArrowRight"&&!s||b==="ArrowLeft"&&s):{if(u)return;if(e.isItemExpanded(r)){const T=h.getNextNavigableItem(e,r);T&&(e.focusItem(o,T),o.preventDefault())}else g(r)&&(e.toggleItemExpansion(o,r),o.preventDefault());break}case(b==="ArrowLeft"&&!s||b==="ArrowRight"&&s):{if(u)return;if(g(r)&&e.isItemExpanded(r))e.toggleItemExpansion(o,r),o.preventDefault();else{const T=e.getItemMeta(r).parentId;T&&(e.focusItem(o,T),o.preventDefault())}break}case b==="Home":{p(r)&&t.multiSelect&&u&&o.shiftKey?e.selectRangeFromStartToItem(o,r):e.focusItem(o,h.getFirstNavigableItem(e)),o.preventDefault();break}case b==="End":{p(r)&&t.multiSelect&&u&&o.shiftKey?e.selectRangeFromItemToEnd(o,r):e.focusItem(o,h.getLastNavigableItem(e)),o.preventDefault();break}case b==="*":{e.expandAllSiblings(o,r),o.preventDefault();break}case(String.fromCharCode(o.keyCode)==="A"&&u&&t.multiSelect&&!t.disableSelection):{e.selectAllNavigableItems(o),o.preventDefault();break}case(!u&&!o.shiftKey&&At(b)):{const T=I(r,b);T!=null&&(e.focusItem(o,T),o.preventDefault());break}}}}}};Fe.params={};const Ae=({slots:e,slotProps:t})=>({contextValue:{icons:{slots:{collapseIcon:e.collapseIcon,expandIcon:e.expandIcon,endIcon:e.endIcon},slotProps:{collapseIcon:t.collapseIcon,expandIcon:t.expandIcon,endIcon:t.endIcon}}}});Ae.params={};const Lt=[H,se,re,be,Fe,Ae,h.useTreeViewLabel];function Le(e){const{instance:t,items:{onItemClick:n},selection:{multiSelect:s,checkboxSelection:c,disableSelection:y},expansion:{expansionTrigger:I}}=h.useTreeViewContext(),p=t.isItemExpandable(e),g=t.isItemExpanded(e),f=t.isItemFocused(e),o=t.isItemSelected(e),r=t.isItemDisabled(e),u=t!=null&&t.isItemBeingEdited?t==null?void 0:t.isItemBeingEdited(e):!1,b=t.isItemEditable?t.isItemEditable(e):!1,T=E=>{if(!r){f||t.focusItem(E,e);const R=s&&(E.shiftKey||E.ctrlKey||E.metaKey);p&&!(R&&t.isItemExpanded(e))&&t.toggleItemExpansion(E,e)}},a=E=>{r||(f||t.focusItem(E,e),s&&(E.shiftKey||E.ctrlKey||E.metaKey)?E.shiftKey?t.expandSelectionRange(E,e):t.selectItem({event:E,itemId:e,keepExistingSelection:!0}):t.selectItem({event:E,itemId:e,shouldBeSelected:!0}))},l=E=>{if(y||r)return;const R=E.nativeEvent.shiftKey;s&&R?t.expandSelectionRange(E,e):t.selectItem({event:E,itemId:e,keepExistingSelection:s,shouldBeSelected:E.target.checked})},d=E=>{(E.shiftKey||E.ctrlKey||E.metaKey||r)&&E.preventDefault()},m=()=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemEditable(e)&&(t.isItemBeingEdited(e)?t.setEditedItemId(null):t.setEditedItemId(e))};return{disabled:r,expanded:g,selected:o,focused:f,editable:b,editing:u,disableSelection:y,checkboxSelection:c,handleExpansion:T,handleSelection:a,handleCheckboxSelection:l,handleContentClick:n,preventSelection:d,expansionTrigger:I,toggleItemEditing:m,handleSaveItemLabel:(E,R)=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,R),m(),t.focusItem(E,e))},handleCancelItemLabelEditing:E=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(m(),t.focusItem(E,e))}}}const Nt=["classes","className","displayIcon","expansionIcon","icon","label","itemId","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps"],he=x.forwardRef(function(t,n){const{classes:s,className:c,displayIcon:y,expansionIcon:I,icon:p,label:g,itemId:f,onClick:o,onMouseDown:r,dragAndDropOverlayProps:u,labelInputProps:b}=t,T=j._objectWithoutPropertiesLoose(t,Nt),{disabled:a,expanded:l,selected:d,focused:m,editing:P,editable:v,disableSelection:E,checkboxSelection:R,handleExpansion:k,handleSelection:A,handleCheckboxSelection:B,handleContentClick:_,preventSelection:L,expansionTrigger:X,toggleItemEditing:G}=Le(f),N=p||I||y,J=x.useRef(null),ie=M=>{L(M),r&&r(M)},le=M=>{var Y;_==null||_(M,f),!((Y=J.current)!=null&&Y.contains(M.target))&&(X==="content"&&k(M),R||A(M),o&&o(M))},ce=M=>{M.defaultMuiPrevented||G()};return S.jsxs("div",C._extends({},T,{className:i.clsx(s.root,c,l&&s.expanded,d&&s.selected,m&&s.focused,a&&s.disabled,P&&s.editing,v&&s.editable),onClick:le,onMouseDown:ie,ref:n,children:[S.jsx("div",{className:s.iconContainer,children:N}),R&&S.jsx(ut.Checkbox,{className:s.checkbox,checked:d,onChange:B,disabled:a||E,ref:J,tabIndex:-1}),P?S.jsx(h.TreeItem2LabelInput,C._extends({},b,{className:s.labelInput})):S.jsx("div",C._extends({className:s.label},v&&{onDoubleClick:ce},{children:g})),u&&S.jsx(h.TreeItem2DragAndDropOverlay,C._extends({},u))]}))});process.env.NODE_ENV!=="production"&&(he.propTypes={classes:i.PropTypes.object.isRequired,className:i.PropTypes.string,displayIcon:i.PropTypes.node,dragAndDropOverlayProps:i.PropTypes.shape({action:i.PropTypes.oneOf(["make-child","move-to-parent","reorder-above","reorder-below"]),style:i.PropTypes.object}),expansionIcon:i.PropTypes.node,icon:i.PropTypes.node,itemId:i.PropTypes.string.isRequired,label:i.PropTypes.node,labelInputProps:i.PropTypes.shape({autoFocus:i.PropTypes.oneOf([!0]),"data-element":i.PropTypes.oneOf(["labelInput"]),onBlur:i.PropTypes.func,onChange:i.PropTypes.func,onKeyDown:i.PropTypes.func,type:i.PropTypes.oneOf(["text"]),value:i.PropTypes.string})});const $t=["children","className","slots","slotProps","ContentComponent","ContentProps","itemId","id","label","onClick","onMouseDown","onFocus","onBlur","onKeyDown"],qt=["ownerState"],Ut=["ownerState"],Kt=["ownerState"],Bt=h.createUseThemeProps(),zt=e=>{const{classes:t}=e,n={root:["root"],content:["content"],expanded:["expanded"],selected:["selected"],focused:["focused"],disabled:["disabled"],iconContainer:["iconContainer"],checkbox:["checkbox"],label:["label"],labelInput:["labelInput"],editing:["editing"],editable:["editable"],groupTransition:["groupTransition"]};return F.composeClasses(n,h.getTreeItemUtilityClass,t)},Wt=F.styled("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),Ht=F.styled(he,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${h.treeItemClasses.iconContainer}`]:t.iconContainer},t.label&&{[`& .${h.treeItemClasses.label}`]:t.label}],shouldForwardProp:e=>F.shouldForwardProp(e)&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${h.treeItemClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${h.treeItemClasses.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${h.treeItemClasses.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:i.alpha(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:i.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:i.alpha(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${h.treeItemClasses.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:i.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${h.treeItemClasses.iconContainer}`]:{width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${h.treeItemClasses.label}`]:C._extends({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1),[`& .${h.treeItemClasses.checkbox}`]:{padding:0},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}}]})),Xt=F.styled(h.Collapse,{name:"MuiTreeItem",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>F.shouldForwardProp(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]}),Ne=x.forwardRef(function(t,n){var Ce,we,Re,Se;const{icons:s,runItemPlugins:c,items:{disabledItemsFocusable:y,indentationAtItemLevel:I},selection:{disableSelection:p},expansion:{expansionTrigger:g},treeId:f,instance:o}=h.useTreeViewContext(),r=x.useContext(h.TreeViewItemDepthContext),u=Bt({props:t,name:"MuiTreeItem"}),{children:b,className:T,slots:a,slotProps:l,ContentComponent:d=he,ContentProps:m,itemId:P,id:v,label:E,onClick:R,onMouseDown:k,onBlur:A,onKeyDown:B}=u,_=j._objectWithoutPropertiesLoose(u,$t),{expanded:L,focused:X,selected:G,disabled:N,editing:J,handleExpansion:ie,handleCancelItemLabelEditing:le,handleSaveItemLabel:ce}=Le(P);process.env.NODE_ENV!=="production"&&(u.ContentComponent&&h.warnOnce(["MUI X: The ContentComponent prop of the TreeItem component is deprecated and will be removed in the next major release.","You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.","For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/."]),u.ContentProps&&h.warnOnce(["MUI X: The ContentProps prop of the TreeItem component is deprecated and will be removed in the next major release.","You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.","For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/."]));const{contentRef:M,rootRef:Y,propsEnhancers:O}=c(u),Q=x.useRef(null),Te=x.useRef(null),Ue=Ie.useForkRef(n,Y,Q),Ke=Ie.useForkRef(m==null?void 0:m.ref,M,Te),z={expandIcon:(a==null?void 0:a.expandIcon)??s.slots.expandIcon??h.TreeViewExpandIcon,collapseIcon:(a==null?void 0:a.collapseIcon)??s.slots.collapseIcon??h.TreeViewCollapseIcon,endIcon:(a==null?void 0:a.endIcon)??s.slots.endIcon,icon:a==null?void 0:a.icon,groupTransition:a==null?void 0:a.groupTransition},ye=w=>Array.isArray(w)?w.length>0&&w.some(ye):!!w,Z=ye(b),ae=C._extends({},u,{expanded:L,focused:X,selected:G,disabled:N,indentationAtItemLevel:I}),D=zt(ae),xe=z.groupTransition??void 0,Be=q.useSlotProps({elementType:xe,ownerState:{},externalSlotProps:l==null?void 0:l.groupTransition,additionalProps:C._extends({unmountOnExit:!0,in:L,component:"ul",role:"group"},I?{indentationAtItemLevel:!0}:{}),className:D.groupTransition}),ze=w=>{g==="iconContainer"&&ie(w)},ue=L?z.collapseIcon:z.expandIcon,We=q.useSlotProps({elementType:ue,ownerState:{},externalSlotProps:w=>L?C._extends({},V.resolveComponentProps(s.slotProps.collapseIcon,w),V.resolveComponentProps(l==null?void 0:l.collapseIcon,w)):C._extends({},V.resolveComponentProps(s.slotProps.expandIcon,w),V.resolveComponentProps(l==null?void 0:l.expandIcon,w)),additionalProps:{onClick:ze}}),He=j._objectWithoutPropertiesLoose(We,qt),Xe=Z&&ue?S.jsx(ue,C._extends({},He)):null,de=Z?void 0:z.endIcon,Ge=q.useSlotProps({elementType:de,ownerState:{},externalSlotProps:w=>Z?{}:C._extends({},V.resolveComponentProps(s.slotProps.endIcon,w),V.resolveComponentProps(l==null?void 0:l.endIcon,w))}),Je=j._objectWithoutPropertiesLoose(Ge,Ut),Ye=de?S.jsx(de,C._extends({},Je)):null,pe=z.icon,Qe=q.useSlotProps({elementType:pe,ownerState:{},externalSlotProps:l==null?void 0:l.icon}),Ze=j._objectWithoutPropertiesLoose(Qe,Kt),et=pe?S.jsx(pe,C._extends({},Ze)):null;let ee;G?ee=!0:p||N?ee=void 0:ee=!1;function tt(w){!X&&(!N||y)&&w.currentTarget===w.target&&o.focusItem(w,P)}function nt(w){var $,W,ve,ke;A==null||A(w),!(J||w.relatedTarget&&h.isTargetInDescendants(w.relatedTarget,Q.current)&&(w.target&&((W=($=w.target)==null?void 0:$.dataset)==null?void 0:W.element)==="labelInput"&&h.isTargetInDescendants(w.target,Q.current)||((ke=(ve=w.relatedTarget)==null?void 0:ve.dataset)==null?void 0:ke.element)==="labelInput"))&&o.removeFocusedItem()}const ot=w=>{var $,W;B==null||B(w),((W=($=w.target)==null?void 0:$.dataset)==null?void 0:W.element)!=="labelInput"&&o.handleItemKeyDown(w,P)},st=h.generateTreeItemIdAttribute({itemId:P,treeId:f,id:v}),rt=o.canItemBeTabbed(P)?0:-1,te={rootRefObject:Q,contentRefObject:Te,interactions:{handleSaveItemLabel:ce,handleCancelItemLabelEditing:le}},it=((Ce=O.root)==null?void 0:Ce.call(O,C._extends({},te,{externalEventHandlers:V.extractEventHandlers(_)})))??{},lt=((we=O.content)==null?void 0:we.call(O,C._extends({},te,{externalEventHandlers:V.extractEventHandlers(m)})))??{},Pe=((Re=O.dragAndDropOverlay)==null?void 0:Re.call(O,C._extends({},te,{externalEventHandlers:{}})))??{},Ee=((Se=O.labelInput)==null?void 0:Se.call(O,C._extends({},te,{externalEventHandlers:{}})))??{};return S.jsx(h.TreeItem2Provider,{itemId:P,children:S.jsxs(Wt,C._extends({className:i.clsx(D.root,T),role:"treeitem","aria-expanded":Z?L:void 0,"aria-selected":ee,"aria-disabled":N||void 0,id:st,tabIndex:rt},_,{ownerState:ae,onFocus:tt,onBlur:nt,onKeyDown:ot,ref:Ue,style:I?C._extends({},_.style,{"--TreeView-itemDepth":typeof r=="function"?r(P):r}):_.style},it,{children:[S.jsx(Ht,C._extends({as:d,classes:{root:D.content,expanded:D.expanded,selected:D.selected,focused:D.focused,disabled:D.disabled,editable:D.editable,editing:D.editing,iconContainer:D.iconContainer,label:D.label,labelInput:D.labelInput,checkbox:D.checkbox},label:E,itemId:P,onClick:R,onMouseDown:k,icon:et,expansionIcon:Xe,displayIcon:Ye,ownerState:ae},m,lt,Pe.action==null?{}:{dragAndDropOverlayProps:Pe},Ee.value==null?{}:{labelInputProps:Ee},{ref:Ke})),b&&S.jsx(Xt,C._extends({as:xe},Be,{children:b}))]}))})});process.env.NODE_ENV!=="production"&&(Ne.propTypes={children:i.PropTypes.node,classes:i.PropTypes.object,className:i.PropTypes.string,ContentComponent:pt.elementTypeAcceptingRef,ContentProps:i.PropTypes.object,disabled:i.PropTypes.bool,itemId:i.PropTypes.string.isRequired,label:i.PropTypes.node,onFocus:dt.unsupportedProp,onKeyDown:i.PropTypes.func,slotProps:i.PropTypes.object,slots:i.PropTypes.object,sx:i.PropTypes.oneOfType([i.PropTypes.arrayOf(i.PropTypes.oneOfType([i.PropTypes.func,i.PropTypes.object,i.PropTypes.bool])),i.PropTypes.func,i.PropTypes.object])});const Gt=["ownerState"];function Jt({slots:e,slotProps:t,label:n,id:s,itemId:c,itemsToRender:y}){const I=(e==null?void 0:e.item)??Ne,p=q.useSlotProps({elementType:I,externalSlotProps:t==null?void 0:t.item,additionalProps:{itemId:c,id:s,label:n},ownerState:{itemId:c,label:n}}),g=j._objectWithoutPropertiesLoose(p,Gt),f=x.useMemo(()=>y?S.jsx($e,{itemsToRender:y,slots:e,slotProps:t}):null,[y,e,t]);return S.jsx(I,C._extends({},g,{children:f}))}function $e(e){const{itemsToRender:t,slots:n,slotProps:s}=e;return S.jsx(x.Fragment,{children:t.map(c=>S.jsx(Jt,{slots:n,slotProps:s,label:c.label,id:c.id,itemId:c.itemId,itemsToRender:c.children},c.itemId))})}const Yt=h.createUseThemeProps(),Qt=e=>{const{classes:t}=e,n={root:["root"]};return F.composeClasses(n,mt,t)},Zt=F.styled("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"}),qe=x.forwardRef(function(t,n){const s=Yt({props:t,name:"MuiRichTreeView"});process.env.NODE_ENV!=="production"&&s.children!=null&&h.warnOnce(["MUI X: The Rich Tree View component does not support JSX children.","If you want to add items, you need to use the `items` prop.","Check the documentation for more details: https://mui.com/x/react-tree-view/rich-tree-view/items/."]);const{getRootProps:c,contextValue:y,instance:I}=Et({plugins:Lt,rootRef:n,props:s}),{slots:p,slotProps:g}=s,f=Qt(s),o=(p==null?void 0:p.root)??Zt,r=q.useSlotProps({elementType:o,externalSlotProps:g==null?void 0:g.root,className:f.root,getSlotProps:c,ownerState:s});return S.jsx(Ct,{value:y,children:S.jsx(o,C._extends({},r,{children:S.jsx($e,{slots:p,slotProps:g,itemsToRender:I.getItemsToRender()})}))})});process.env.NODE_ENV!=="production"&&(qe.propTypes={apiRef:i.PropTypes.shape({current:i.PropTypes.shape({focusItem:i.PropTypes.func.isRequired,getItem:i.PropTypes.func.isRequired,getItemDOMElement:i.PropTypes.func.isRequired,getItemOrderedChildrenIds:i.PropTypes.func.isRequired,getItemTree:i.PropTypes.func.isRequired,selectItem:i.PropTypes.func.isRequired,setItemExpansion:i.PropTypes.func.isRequired,updateItemLabel:i.PropTypes.func.isRequired})}),checkboxSelection:i.PropTypes.bool,classes:i.PropTypes.object,className:i.PropTypes.string,defaultExpandedItems:i.PropTypes.arrayOf(i.PropTypes.string),defaultSelectedItems:i.PropTypes.any,disabledItemsFocusable:i.PropTypes.bool,disableSelection:i.PropTypes.bool,expandedItems:i.PropTypes.arrayOf(i.PropTypes.string),expansionTrigger:i.PropTypes.oneOf(["content","iconContainer"]),experimentalFeatures:i.PropTypes.shape({indentationAtItemLevel:i.PropTypes.bool,labelEditing:i.PropTypes.bool}),getItemId:i.PropTypes.func,getItemLabel:i.PropTypes.func,id:i.PropTypes.string,isItemDisabled:i.PropTypes.func,isItemEditable:i.PropTypes.oneOfType([i.PropTypes.func,i.PropTypes.bool]),itemChildrenIndentation:i.PropTypes.oneOfType([i.PropTypes.number,i.PropTypes.string]),items:i.PropTypes.array.isRequired,multiSelect:i.PropTypes.bool,onExpandedItemsChange:i.PropTypes.func,onItemClick:i.PropTypes.func,onItemExpansionToggle:i.PropTypes.func,onItemFocus:i.PropTypes.func,onItemLabelChange:i.PropTypes.func,onItemSelectionToggle:i.PropTypes.func,onSelectedItemsChange:i.PropTypes.func,selectedItems:i.PropTypes.any,slotProps:i.PropTypes.object,slots:i.PropTypes.object,sx:i.PropTypes.oneOfType([i.PropTypes.arrayOf(i.PropTypes.oneOfType([i.PropTypes.func,i.PropTypes.object,i.PropTypes.bool])),i.PropTypes.func,i.PropTypes.object])});const en=({items:e,selectedItemId:t,handleSelectedItemChange:n,iconColor:s="primary",hasNoIcons:c=!1,maxHeight:y=300})=>{const[I,p]=ne.useState([]),g=ne.useMemo(()=>fe.buildItemDataMap(e),[e]);ne.useEffect(()=>{if(t){const o=fe.findItemPath(e,t);if(o){const r=o.slice(0,-1);p(u=>{const b=r.filter(T=>!u.includes(T));return b.length>0?[...u,...b]:u})}}},[t,e]);const f=(o,r)=>{p(r)};return S.jsx(De.TreeContainer,{maxHeight:y,"data-treeview-root":"true",children:S.jsx(qe,{items:e,selectedItems:t,expandedItems:I,onExpandedItemsChange:f,itemChildrenIndentation:De.DEFAULT_CHILDREN_INDENT,onSelectedItemsChange:n,getItemId:fe.getItemId,slots:{item:o=>{const r=o.itemId?g[o.itemId]:void 0;return S.jsx(h.CustomTreeItem,{...o,itemData:r,iconColor:s,hasNoIcons:c})}}})})};module.exports=en;
|
|
7
|
+
`));c[u]={id:u,label:b,parentId:r,idAttribute:void 0,expandable:!!((a=f.children)!=null&&a.length),disabled:t?t(f):!1,depth:o},y[u]=f;const T=r??U;I[T]||(I[T]=[]),I[T].push(u),(l=f.children)==null||l.forEach(d=>p(d,o+1,u))};e.forEach(f=>p(f,0,null));const g={};return Object.keys(I).forEach(f=>{g[f]=Rt(I[f])}),{itemMetaMap:c,itemMap:y,itemOrderedChildrenIds:I,itemChildrenIndexes:g}},H=({instance:e,params:t,state:n,setState:s,experimentalFeatures:c})=>{const y=x.useCallback(d=>n.items.itemMetaMap[d],[n.items.itemMetaMap]),I=x.useCallback(d=>n.items.itemMap[d],[n.items.itemMap]),p=x.useCallback(()=>{const d=m=>{const P=n.items.itemMap[m],v=j._objectWithoutPropertiesLoose(P,St),E=n.items.itemOrderedChildrenIds[m];return E&&(v.children=E.map(d)),v};return n.items.itemOrderedChildrenIds[U].map(d)},[n.items.itemMap,n.items.itemOrderedChildrenIds]),g=x.useCallback(d=>{if(d==null)return!1;let m=e.getItemMeta(d);if(!m)return!1;if(m.disabled)return!0;for(;m.parentId!=null;)if(m=e.getItemMeta(m.parentId),m.disabled)return!0;return!1},[e]),f=x.useCallback(d=>{const m=e.getItemMeta(d).parentId??U;return n.items.itemChildrenIndexes[m][d]},[e,n.items.itemChildrenIndexes]),o=x.useCallback(d=>n.items.itemOrderedChildrenIds[d??U]??[],[n.items.itemOrderedChildrenIds]),r=d=>{const m=e.getItemMeta(d);return m==null?null:document.getElementById(h.generateTreeItemIdAttribute({treeId:n.id.treeId,itemId:d,id:m.idAttribute}))},u=d=>t.disabledItemsFocusable?!0:!e.isItemDisabled(d),b=x.useRef(!1),T=x.useCallback(()=>{b.current=!0},[]),a=x.useCallback(()=>b.current,[]);return x.useEffect(()=>{e.areItemUpdatesPrevented()||s(d=>{const m=Ve({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(d.items.itemMetaMap).forEach(P=>{m.itemMetaMap[P.id]||wt(e,"removeItem",{id:P.id})}),C._extends({},d,{items:m})})},[e,s,t.items,t.isItemDisabled,t.getItemId,t.getItemLabel]),{getRootProps:()=>({style:{"--TreeView-itemChildrenIndentation":typeof t.itemChildrenIndentation=="number"?`${t.itemChildrenIndentation}px`:t.itemChildrenIndentation}}),publicAPI:{getItem:I,getItemDOMElement:r,getItemTree:p,getItemOrderedChildrenIds:o},instance:{getItemMeta:y,getItem:I,getItemTree:p,getItemsToRender:()=>{const d=m=>{var v;const P=n.items.itemMetaMap[m];return{label:P.label,itemId:P.id,id:P.idAttribute,children:(v=n.items.itemOrderedChildrenIds[m])==null?void 0:v.map(d)}};return n.items.itemOrderedChildrenIds[U].map(d)},getItemIndex:f,getItemDOMElement:r,getItemOrderedChildrenIds:o,isItemDisabled:g,isItemNavigable:u,preventItemUpdates:T,areItemUpdatesPrevented:a},contextValue:{items:{onItemClick:t.onItemClick,disabledItemsFocusable:t.disabledItemsFocusable,indentationAtItemLevel:c.indentationAtItemLevel??!1}}}};H.getInitialState=e=>({items:Ve({items:e.items,isItemDisabled:e.isItemDisabled,getItemId:e.getItemId,getItemLabel:e.getItemLabel})});H.getDefaultizedParams=({params:e})=>C._extends({},e,{disabledItemsFocusable:e.disabledItemsFocusable??!1,itemChildrenIndentation:e.itemChildrenIndentation??"12px"});H.wrapRoot=({children:e,instance:t})=>S.jsx(h.TreeViewItemDepthContext.Provider,{value:n=>{var s;return((s=t.getItemMeta(n))==null?void 0:s.depth)??0},children:e});H.params={disabledItemsFocusable:!0,items:!0,isItemDisabled:!0,getItemLabel:!0,getItemId:!0,onItemClick:!0,itemChildrenIndentation:!0};const se=({instance:e,params:t,models:n})=>{const s=x.useMemo(()=>{const r=new Map;return n.expandedItems.value.forEach(u=>{r.set(u,!0)}),r},[n.expandedItems.value]),c=(r,u)=>{var b;(b=t.onExpandedItemsChange)==null||b.call(t,r,u),n.expandedItems.setControlledValue(u)},y=x.useCallback(r=>s.has(r),[s]),I=x.useCallback(r=>{var u;return!!((u=e.getItemMeta(r))!=null&&u.expandable)},[e]),p=K.useEventCallback((r,u)=>{const b=e.isItemExpanded(u);e.setItemExpansion(r,u,!b)}),g=K.useEventCallback((r,u,b)=>{if(e.isItemExpanded(u)===b)return;let a;b?a=[u].concat(n.expandedItems.value):a=n.expandedItems.value.filter(l=>l!==u),t.onItemExpansionToggle&&t.onItemExpansionToggle(r,u,b),c(r,a)}),f=(r,u)=>{const b=e.getItemMeta(u),a=e.getItemOrderedChildrenIds(b.parentId).filter(d=>e.isItemExpandable(d)&&!e.isItemExpanded(d)),l=n.expandedItems.value.concat(a);a.length>0&&(t.onItemExpansionToggle&&a.forEach(d=>{t.onItemExpansionToggle(r,d,!0)}),c(r,l))},o=x.useMemo(()=>t.expansionTrigger?t.expansionTrigger:e.isTreeViewEditable?"iconContainer":"content",[t.expansionTrigger,e.isTreeViewEditable]);return{publicAPI:{setItemExpansion:g},instance:{isItemExpanded:y,isItemExpandable:I,setItemExpansion:g,toggleItemExpansion:p,expandAllSiblings:f},contextValue:{expansion:{expansionTrigger:o}}}};se.models={expandedItems:{getDefaultValue:e=>e.defaultExpandedItems}};const vt=[];se.getDefaultizedParams=({params:e})=>C._extends({},e,{defaultExpandedItems:e.defaultExpandedItems??vt});se.params={expandedItems:!0,defaultExpandedItems:!0,onExpandedItemsChange:!0,onItemExpansionToggle:!0,expansionTrigger:!0};const oe=e=>Array.isArray(e)?e:e!=null?[e]:[],me=e=>{const t={};return e.forEach(n=>{t[n]=!0}),t},re=({instance:e,params:t,models:n})=>{const s=x.useRef(null),c=x.useRef({}),y=x.useMemo(()=>{const a=new Map;return Array.isArray(n.selectedItems.value)?n.selectedItems.value.forEach(l=>{a.set(l,!0)}):n.selectedItems.value!=null&&a.set(n.selectedItems.value,!0),a},[n.selectedItems.value]),I=(a,l)=>{if(t.onItemSelectionToggle)if(t.multiSelect){const d=l.filter(P=>!e.isItemSelected(P)),m=n.selectedItems.value.filter(P=>!l.includes(P));d.forEach(P=>{t.onItemSelectionToggle(a,P,!0)}),m.forEach(P=>{t.onItemSelectionToggle(a,P,!1)})}else l!==n.selectedItems.value&&(n.selectedItems.value!=null&&t.onItemSelectionToggle(a,n.selectedItems.value,!1),l!=null&&t.onItemSelectionToggle(a,l,!0));t.onSelectedItemsChange&&t.onSelectedItemsChange(a,l),n.selectedItems.setControlledValue(l)},p=a=>y.has(a),g=({event:a,itemId:l,keepExistingSelection:d=!1,shouldBeSelected:m})=>{if(t.disableSelection)return;let P;if(d){const v=oe(n.selectedItems.value),E=e.isItemSelected(l);E&&(m===!1||m==null)?P=v.filter(R=>R!==l):!E&&(m===!0||m==null)?P=[l].concat(v):P=v}else m===!1||m==null&&e.isItemSelected(l)?P=t.multiSelect?[]:null:P=t.multiSelect?[l]:l;I(a,P),s.current=l,c.current={}},f=(a,[l,d])=>{if(t.disableSelection||!t.multiSelect)return;let m=oe(n.selectedItems.value).slice();Object.keys(c.current).length>0&&(m=m.filter(R=>!c.current[R]));const P=me(m),v=h.getNonDisabledItemsInRange(e,l,d),E=v.filter(R=>!P[R]);m=m.concat(E),I(a,m),c.current=me(v)};return{getRootProps:()=>({"aria-multiselectable":t.multiSelect}),publicAPI:{selectItem:g},instance:{isItemSelected:p,selectItem:g,selectAllNavigableItems:a=>{if(t.disableSelection||!t.multiSelect)return;const l=h.getAllNavigableItems(e);I(a,l),c.current=me(l)},expandSelectionRange:(a,l)=>{if(s.current!=null){const[d,m]=h.findOrderInTremauxTree(e,l,s.current);f(a,[d,m])}},selectRangeFromStartToItem:(a,l)=>{f(a,[h.getFirstNavigableItem(e),l])},selectRangeFromItemToEnd:(a,l)=>{f(a,[l,h.getLastNavigableItem(e)])},selectItemFromArrowNavigation:(a,l,d)=>{if(t.disableSelection||!t.multiSelect)return;let m=oe(n.selectedItems.value).slice();Object.keys(c.current).length===0?(m.push(d),c.current={[l]:!0,[d]:!0}):(c.current[l]||(c.current={}),c.current[d]?(m=m.filter(P=>P!==l),delete c.current[l]):(m.push(d),c.current[d]=!0)),I(a,m)}},contextValue:{selection:{multiSelect:t.multiSelect,checkboxSelection:t.checkboxSelection,disableSelection:t.disableSelection}}}};re.models={selectedItems:{getDefaultValue:e=>e.defaultSelectedItems}};const kt=[];re.getDefaultizedParams=({params:e})=>C._extends({},e,{disableSelection:e.disableSelection??!1,multiSelect:e.multiSelect??!1,checkboxSelection:e.checkboxSelection??!1,defaultSelectedItems:e.defaultSelectedItems??(e.multiSelect?kt:null)});re.params={disableSelection:!0,multiSelect:!0,checkboxSelection:!0,defaultSelectedItems:!0,selectedItems:!0,onSelectedItemsChange:!0,onItemSelectionToggle:!0};const Me=1e3;class Dt{constructor(t=Me){this.timeouts=new Map,this.cleanupTimeout=Me,this.cleanupTimeout=t}register(t,n,s){this.timeouts||(this.timeouts=new Map);const c=setTimeout(()=>{typeof n=="function"&&n(),this.timeouts.delete(s.cleanupToken)},this.cleanupTimeout);this.timeouts.set(s.cleanupToken,c)}unregister(t){const n=this.timeouts.get(t.cleanupToken);n&&(this.timeouts.delete(t.cleanupToken),clearTimeout(n))}reset(){this.timeouts&&(this.timeouts.forEach((t,n)=>{this.unregister({cleanupToken:n})}),this.timeouts=void 0)}}class Mt{constructor(){this.registry=new FinalizationRegistry(t=>{typeof t=="function"&&t()})}register(t,n,s){this.registry.register(t,n,s)}unregister(t){this.registry.unregister(t)}reset(){}}class Ot{}function _t(e){let t=0;return function(s,c,y){e.registry===null&&(e.registry=typeof FinalizationRegistry<"u"?new Mt:new Dt);const[I]=x.useState(new Ot),p=x.useRef(null),g=x.useRef(void 0);g.current=y;const f=x.useRef(null);if(!p.current&&g.current){const o=(r,u)=>{var b;u.defaultMuiPrevented||(b=g.current)==null||b.call(g,r,u)};p.current=s.$$subscribeEvent(c,o),t+=1,f.current={cleanupToken:t},e.registry.register(I,()=>{var r;(r=p.current)==null||r.call(p),p.current=null,f.current=null},f.current)}else!g.current&&p.current&&(p.current(),p.current=null,f.current&&(e.registry.unregister(f.current),f.current=null));x.useEffect(()=>{if(!p.current&&g.current){const o=(r,u)=>{var b;u.defaultMuiPrevented||(b=g.current)==null||b.call(g,r,u)};p.current=s.$$subscribeEvent(c,o)}return f.current&&e.registry&&(e.registry.unregister(f.current),f.current=null),()=>{var o;(o=p.current)==null||o.call(p),p.current=null}},[s,c])}}const Vt={registry:null},jt=_t(Vt),je=(e=document)=>{const t=e.activeElement;return t?t.shadowRoot?je(t.shadowRoot):t:null},Ft=(e,t)=>{let n=oe(t).find(s=>{if(!e.isItemNavigable(s))return!1;const c=e.getItemMeta(s);return c&&(c.parentId==null||e.isItemExpanded(c.parentId))});return n==null&&(n=h.getFirstNavigableItem(e)),n},be=({instance:e,params:t,state:n,setState:s,models:c,rootRef:y})=>{const I=Ft(e,c.selectedItems.value),p=K.useEventCallback(l=>{const d=typeof l=="function"?l(n.focusedItemId):l;n.focusedItemId!==d&&s(m=>C._extends({},m,{focusedItemId:d}))}),g=x.useCallback(()=>!!y.current&&y.current.contains(je(ct.ownerDocument(y.current))),[y]),f=x.useCallback(l=>n.focusedItemId===l&&g(),[n.focusedItemId,g]),o=l=>{const d=e.getItemMeta(l);return d&&(d.parentId==null||e.isItemExpanded(d.parentId))},r=(l,d)=>{const m=e.getItemDOMElement(d);m&&m.focus(),p(d),t.onItemFocus&&t.onItemFocus(l,d)},u=K.useEventCallback((l,d)=>{o(d)&&r(l,d)}),b=K.useEventCallback(()=>{if(n.focusedItemId==null)return;if(e.getItemMeta(n.focusedItemId)){const d=e.getItemDOMElement(n.focusedItemId);d&&d.blur()}p(null)}),T=l=>l===I;jt(e,"removeItem",({id:l})=>{n.focusedItemId===l&&r(null,I)});const a=l=>d=>{var m;(m=l.onFocus)==null||m.call(l,d),!d.defaultMuiPrevented&&d.target===d.currentTarget&&r(d,I)};return{getRootProps:l=>({onFocus:a(l)}),publicAPI:{focusItem:u},instance:{isItemFocused:f,canItemBeTabbed:T,focusItem:u,removeFocusedItem:b}}};be.getInitialState=()=>({focusedItemId:null});be.params={onItemFocus:!0};function At(e){return!!e&&e.length===1&&!!e.match(/\S/)}const Fe=({instance:e,params:t,state:n})=>{const s=at.useRtl(),c=x.useRef({}),y=K.useEventCallback(o=>{c.current=o(c.current)});x.useEffect(()=>{if(e.areItemUpdatesPrevented())return;const o={},r=u=>{o[u.id]=u.label.substring(0,1).toLowerCase()};Object.values(n.items.itemMetaMap).forEach(r),c.current=o},[n.items.itemMetaMap,t.getItemId,e]);const I=(o,r)=>{const u=r.toLowerCase(),b=d=>{const m=h.getNextNavigableItem(e,d);return m===null?h.getFirstNavigableItem(e):m};let T=null,a=b(o);const l={};for(;T==null&&!l[a];)c.current[a]===u?T=a:(l[a]=!0,a=b(a));return T},p=o=>!t.disableSelection&&!e.isItemDisabled(o),g=o=>!e.isItemDisabled(o)&&e.isItemExpandable(o);return{instance:{updateFirstCharMap:y,handleItemKeyDown:(o,r)=>{if(o.defaultMuiPrevented||o.altKey||h.isTargetInDescendants(o.target,o.currentTarget))return;const u=o.ctrlKey||o.metaKey,b=o.key;switch(!0){case(b===" "&&p(r)):{o.preventDefault(),t.multiSelect&&o.shiftKey?e.expandSelectionRange(o,r):e.selectItem({event:o,itemId:r,keepExistingSelection:t.multiSelect,shouldBeSelected:t.multiSelect?void 0:!0});break}case b==="Enter":{h.hasPlugin(e,h.useTreeViewLabel)&&e.isItemEditable(r)&&!e.isItemBeingEdited(r)?e.setEditedItemId(r):g(r)?(e.toggleItemExpansion(o,r),o.preventDefault()):p(r)&&(t.multiSelect?(o.preventDefault(),e.selectItem({event:o,itemId:r,keepExistingSelection:!0})):e.isItemSelected(r)||(e.selectItem({event:o,itemId:r}),o.preventDefault()));break}case b==="ArrowDown":{const T=h.getNextNavigableItem(e,r);T&&(o.preventDefault(),e.focusItem(o,T),t.multiSelect&&o.shiftKey&&p(T)&&e.selectItemFromArrowNavigation(o,r,T));break}case b==="ArrowUp":{const T=h.getPreviousNavigableItem(e,r);T&&(o.preventDefault(),e.focusItem(o,T),t.multiSelect&&o.shiftKey&&p(T)&&e.selectItemFromArrowNavigation(o,r,T));break}case(b==="ArrowRight"&&!s||b==="ArrowLeft"&&s):{if(u)return;if(e.isItemExpanded(r)){const T=h.getNextNavigableItem(e,r);T&&(e.focusItem(o,T),o.preventDefault())}else g(r)&&(e.toggleItemExpansion(o,r),o.preventDefault());break}case(b==="ArrowLeft"&&!s||b==="ArrowRight"&&s):{if(u)return;if(g(r)&&e.isItemExpanded(r))e.toggleItemExpansion(o,r),o.preventDefault();else{const T=e.getItemMeta(r).parentId;T&&(e.focusItem(o,T),o.preventDefault())}break}case b==="Home":{p(r)&&t.multiSelect&&u&&o.shiftKey?e.selectRangeFromStartToItem(o,r):e.focusItem(o,h.getFirstNavigableItem(e)),o.preventDefault();break}case b==="End":{p(r)&&t.multiSelect&&u&&o.shiftKey?e.selectRangeFromItemToEnd(o,r):e.focusItem(o,h.getLastNavigableItem(e)),o.preventDefault();break}case b==="*":{e.expandAllSiblings(o,r),o.preventDefault();break}case(String.fromCharCode(o.keyCode)==="A"&&u&&t.multiSelect&&!t.disableSelection):{e.selectAllNavigableItems(o),o.preventDefault();break}case(!u&&!o.shiftKey&&At(b)):{const T=I(r,b);T!=null&&(e.focusItem(o,T),o.preventDefault());break}}}}}};Fe.params={};const Ae=({slots:e,slotProps:t})=>({contextValue:{icons:{slots:{collapseIcon:e.collapseIcon,expandIcon:e.expandIcon,endIcon:e.endIcon},slotProps:{collapseIcon:t.collapseIcon,expandIcon:t.expandIcon,endIcon:t.endIcon}}}});Ae.params={};const Lt=[H,se,re,be,Fe,Ae,h.useTreeViewLabel];function Le(e){const{instance:t,items:{onItemClick:n},selection:{multiSelect:s,checkboxSelection:c,disableSelection:y},expansion:{expansionTrigger:I}}=h.useTreeViewContext(),p=t.isItemExpandable(e),g=t.isItemExpanded(e),f=t.isItemFocused(e),o=t.isItemSelected(e),r=t.isItemDisabled(e),u=t!=null&&t.isItemBeingEdited?t==null?void 0:t.isItemBeingEdited(e):!1,b=t.isItemEditable?t.isItemEditable(e):!1,T=E=>{if(!r){f||t.focusItem(E,e);const R=s&&(E.shiftKey||E.ctrlKey||E.metaKey);p&&!(R&&t.isItemExpanded(e))&&t.toggleItemExpansion(E,e)}},a=E=>{r||(f||t.focusItem(E,e),s&&(E.shiftKey||E.ctrlKey||E.metaKey)?E.shiftKey?t.expandSelectionRange(E,e):t.selectItem({event:E,itemId:e,keepExistingSelection:!0}):t.selectItem({event:E,itemId:e,shouldBeSelected:!0}))},l=E=>{if(y||r)return;const R=E.nativeEvent.shiftKey;s&&R?t.expandSelectionRange(E,e):t.selectItem({event:E,itemId:e,keepExistingSelection:s,shouldBeSelected:E.target.checked})},d=E=>{(E.shiftKey||E.ctrlKey||E.metaKey||r)&&E.preventDefault()},m=()=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemEditable(e)&&(t.isItemBeingEdited(e)?t.setEditedItemId(null):t.setEditedItemId(e))};return{disabled:r,expanded:g,selected:o,focused:f,editable:b,editing:u,disableSelection:y,checkboxSelection:c,handleExpansion:T,handleSelection:a,handleCheckboxSelection:l,handleContentClick:n,preventSelection:d,expansionTrigger:I,toggleItemEditing:m,handleSaveItemLabel:(E,R)=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,R),m(),t.focusItem(E,e))},handleCancelItemLabelEditing:E=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(m(),t.focusItem(E,e))}}}const Nt=["classes","className","displayIcon","expansionIcon","icon","label","itemId","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps"],he=x.forwardRef(function(t,n){const{classes:s,className:c,displayIcon:y,expansionIcon:I,icon:p,label:g,itemId:f,onClick:o,onMouseDown:r,dragAndDropOverlayProps:u,labelInputProps:b}=t,T=j._objectWithoutPropertiesLoose(t,Nt),{disabled:a,expanded:l,selected:d,focused:m,editing:P,editable:v,disableSelection:E,checkboxSelection:R,handleExpansion:k,handleSelection:A,handleCheckboxSelection:B,handleContentClick:_,preventSelection:L,expansionTrigger:X,toggleItemEditing:G}=Le(f),N=p||I||y,J=x.useRef(null),ie=M=>{L(M),r&&r(M)},le=M=>{var Y;_==null||_(M,f),!((Y=J.current)!=null&&Y.contains(M.target))&&(X==="content"&&k(M),R||A(M),o&&o(M))},ce=M=>{M.defaultMuiPrevented||G()};return S.jsxs("div",C._extends({},T,{className:i.clsx(s.root,c,l&&s.expanded,d&&s.selected,m&&s.focused,a&&s.disabled,P&&s.editing,v&&s.editable),onClick:le,onMouseDown:ie,ref:n,children:[S.jsx("div",{className:s.iconContainer,children:N}),R&&S.jsx(ut.Checkbox,{className:s.checkbox,checked:d,onChange:B,disabled:a||E,ref:J,tabIndex:-1}),P?S.jsx(h.TreeItem2LabelInput,C._extends({},b,{className:s.labelInput})):S.jsx("div",C._extends({className:s.label},v&&{onDoubleClick:ce},{children:g})),u&&S.jsx(h.TreeItem2DragAndDropOverlay,C._extends({},u))]}))});process.env.NODE_ENV!=="production"&&(he.propTypes={classes:i.PropTypes.object.isRequired,className:i.PropTypes.string,displayIcon:i.PropTypes.node,dragAndDropOverlayProps:i.PropTypes.shape({action:i.PropTypes.oneOf(["make-child","move-to-parent","reorder-above","reorder-below"]),style:i.PropTypes.object}),expansionIcon:i.PropTypes.node,icon:i.PropTypes.node,itemId:i.PropTypes.string.isRequired,label:i.PropTypes.node,labelInputProps:i.PropTypes.shape({autoFocus:i.PropTypes.oneOf([!0]),"data-element":i.PropTypes.oneOf(["labelInput"]),onBlur:i.PropTypes.func,onChange:i.PropTypes.func,onKeyDown:i.PropTypes.func,type:i.PropTypes.oneOf(["text"]),value:i.PropTypes.string})});const $t=["children","className","slots","slotProps","ContentComponent","ContentProps","itemId","id","label","onClick","onMouseDown","onFocus","onBlur","onKeyDown"],qt=["ownerState"],Ut=["ownerState"],Kt=["ownerState"],Bt=h.createUseThemeProps(),zt=e=>{const{classes:t}=e,n={root:["root"],content:["content"],expanded:["expanded"],selected:["selected"],focused:["focused"],disabled:["disabled"],iconContainer:["iconContainer"],checkbox:["checkbox"],label:["label"],labelInput:["labelInput"],editing:["editing"],editable:["editable"],groupTransition:["groupTransition"]};return F.composeClasses(n,h.getTreeItemUtilityClass,t)},Wt=F.styled("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),Ht=F.styled(he,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${h.treeItemClasses.iconContainer}`]:t.iconContainer},t.label&&{[`& .${h.treeItemClasses.label}`]:t.label}],shouldForwardProp:e=>F.shouldForwardProp(e)&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${h.treeItemClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${h.treeItemClasses.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${h.treeItemClasses.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:i.alpha(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:i.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:i.alpha(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${h.treeItemClasses.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:i.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${h.treeItemClasses.iconContainer}`]:{width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${h.treeItemClasses.label}`]:C._extends({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1),[`& .${h.treeItemClasses.checkbox}`]:{padding:0},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}}]})),Xt=F.styled(h.Collapse,{name:"MuiTreeItem",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>F.shouldForwardProp(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]}),Ne=x.forwardRef(function(t,n){var Ce,we,Re,Se;const{icons:s,runItemPlugins:c,items:{disabledItemsFocusable:y,indentationAtItemLevel:I},selection:{disableSelection:p},expansion:{expansionTrigger:g},treeId:f,instance:o}=h.useTreeViewContext(),r=x.useContext(h.TreeViewItemDepthContext),u=Bt({props:t,name:"MuiTreeItem"}),{children:b,className:T,slots:a,slotProps:l,ContentComponent:d=he,ContentProps:m,itemId:P,id:v,label:E,onClick:R,onMouseDown:k,onBlur:A,onKeyDown:B}=u,_=j._objectWithoutPropertiesLoose(u,$t),{expanded:L,focused:X,selected:G,disabled:N,editing:J,handleExpansion:ie,handleCancelItemLabelEditing:le,handleSaveItemLabel:ce}=Le(P);process.env.NODE_ENV!=="production"&&(u.ContentComponent&&h.warnOnce(["MUI X: The ContentComponent prop of the TreeItem component is deprecated and will be removed in the next major release.","You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.","For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/."]),u.ContentProps&&h.warnOnce(["MUI X: The ContentProps prop of the TreeItem component is deprecated and will be removed in the next major release.","You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.","For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/."]));const{contentRef:M,rootRef:Y,propsEnhancers:O}=c(u),Q=x.useRef(null),Te=x.useRef(null),Ue=Ie.useForkRef(n,Y,Q),Ke=Ie.useForkRef(m==null?void 0:m.ref,M,Te),z={expandIcon:(a==null?void 0:a.expandIcon)??s.slots.expandIcon??h.TreeViewExpandIcon,collapseIcon:(a==null?void 0:a.collapseIcon)??s.slots.collapseIcon??h.TreeViewCollapseIcon,endIcon:(a==null?void 0:a.endIcon)??s.slots.endIcon,icon:a==null?void 0:a.icon,groupTransition:a==null?void 0:a.groupTransition},ye=w=>Array.isArray(w)?w.length>0&&w.some(ye):!!w,Z=ye(b),ae=C._extends({},u,{expanded:L,focused:X,selected:G,disabled:N,indentationAtItemLevel:I}),D=zt(ae),xe=z.groupTransition??void 0,Be=q.useSlotProps({elementType:xe,ownerState:{},externalSlotProps:l==null?void 0:l.groupTransition,additionalProps:C._extends({unmountOnExit:!0,in:L,component:"ul",role:"group"},I?{indentationAtItemLevel:!0}:{}),className:D.groupTransition}),ze=w=>{g==="iconContainer"&&ie(w)},ue=L?z.collapseIcon:z.expandIcon,We=q.useSlotProps({elementType:ue,ownerState:{},externalSlotProps:w=>L?C._extends({},V.resolveComponentProps(s.slotProps.collapseIcon,w),V.resolveComponentProps(l==null?void 0:l.collapseIcon,w)):C._extends({},V.resolveComponentProps(s.slotProps.expandIcon,w),V.resolveComponentProps(l==null?void 0:l.expandIcon,w)),additionalProps:{onClick:ze}}),He=j._objectWithoutPropertiesLoose(We,qt),Xe=Z&&ue?S.jsx(ue,C._extends({},He)):null,de=Z?void 0:z.endIcon,Ge=q.useSlotProps({elementType:de,ownerState:{},externalSlotProps:w=>Z?{}:C._extends({},V.resolveComponentProps(s.slotProps.endIcon,w),V.resolveComponentProps(l==null?void 0:l.endIcon,w))}),Je=j._objectWithoutPropertiesLoose(Ge,Ut),Ye=de?S.jsx(de,C._extends({},Je)):null,pe=z.icon,Qe=q.useSlotProps({elementType:pe,ownerState:{},externalSlotProps:l==null?void 0:l.icon}),Ze=j._objectWithoutPropertiesLoose(Qe,Kt),et=pe?S.jsx(pe,C._extends({},Ze)):null;let ee;G?ee=!0:p||N?ee=void 0:ee=!1;function tt(w){!X&&(!N||y)&&w.currentTarget===w.target&&o.focusItem(w,P)}function nt(w){var $,W,ve,ke;A==null||A(w),!(J||w.relatedTarget&&h.isTargetInDescendants(w.relatedTarget,Q.current)&&(w.target&&((W=($=w.target)==null?void 0:$.dataset)==null?void 0:W.element)==="labelInput"&&h.isTargetInDescendants(w.target,Q.current)||((ke=(ve=w.relatedTarget)==null?void 0:ve.dataset)==null?void 0:ke.element)==="labelInput"))&&o.removeFocusedItem()}const ot=w=>{var $,W;B==null||B(w),((W=($=w.target)==null?void 0:$.dataset)==null?void 0:W.element)!=="labelInput"&&o.handleItemKeyDown(w,P)},st=h.generateTreeItemIdAttribute({itemId:P,treeId:f,id:v}),rt=o.canItemBeTabbed(P)?0:-1,te={rootRefObject:Q,contentRefObject:Te,interactions:{handleSaveItemLabel:ce,handleCancelItemLabelEditing:le}},it=((Ce=O.root)==null?void 0:Ce.call(O,C._extends({},te,{externalEventHandlers:V.extractEventHandlers(_)})))??{},lt=((we=O.content)==null?void 0:we.call(O,C._extends({},te,{externalEventHandlers:V.extractEventHandlers(m)})))??{},Pe=((Re=O.dragAndDropOverlay)==null?void 0:Re.call(O,C._extends({},te,{externalEventHandlers:{}})))??{},Ee=((Se=O.labelInput)==null?void 0:Se.call(O,C._extends({},te,{externalEventHandlers:{}})))??{};return S.jsx(h.TreeItem2Provider,{itemId:P,children:S.jsxs(Wt,C._extends({className:i.clsx(D.root,T),role:"treeitem","aria-expanded":Z?L:void 0,"aria-selected":ee,"aria-disabled":N||void 0,id:st,tabIndex:rt},_,{ownerState:ae,onFocus:tt,onBlur:nt,onKeyDown:ot,ref:Ue,style:I?C._extends({},_.style,{"--TreeView-itemDepth":typeof r=="function"?r(P):r}):_.style},it,{children:[S.jsx(Ht,C._extends({as:d,classes:{root:D.content,expanded:D.expanded,selected:D.selected,focused:D.focused,disabled:D.disabled,editable:D.editable,editing:D.editing,iconContainer:D.iconContainer,label:D.label,labelInput:D.labelInput,checkbox:D.checkbox},label:E,itemId:P,onClick:R,onMouseDown:k,icon:et,expansionIcon:Xe,displayIcon:Ye,ownerState:ae},m,lt,Pe.action==null?{}:{dragAndDropOverlayProps:Pe},Ee.value==null?{}:{labelInputProps:Ee},{ref:Ke})),b&&S.jsx(Xt,C._extends({as:xe},Be,{children:b}))]}))})});process.env.NODE_ENV!=="production"&&(Ne.propTypes={children:i.PropTypes.node,classes:i.PropTypes.object,className:i.PropTypes.string,ContentComponent:pt.elementTypeAcceptingRef,ContentProps:i.PropTypes.object,disabled:i.PropTypes.bool,itemId:i.PropTypes.string.isRequired,label:i.PropTypes.node,onFocus:dt.unsupportedProp,onKeyDown:i.PropTypes.func,slotProps:i.PropTypes.object,slots:i.PropTypes.object,sx:i.PropTypes.oneOfType([i.PropTypes.arrayOf(i.PropTypes.oneOfType([i.PropTypes.func,i.PropTypes.object,i.PropTypes.bool])),i.PropTypes.func,i.PropTypes.object])});const Gt=["ownerState"];function Jt({slots:e,slotProps:t,label:n,id:s,itemId:c,itemsToRender:y}){const I=(e==null?void 0:e.item)??Ne,p=q.useSlotProps({elementType:I,externalSlotProps:t==null?void 0:t.item,additionalProps:{itemId:c,id:s,label:n},ownerState:{itemId:c,label:n}}),g=j._objectWithoutPropertiesLoose(p,Gt),f=x.useMemo(()=>y?S.jsx($e,{itemsToRender:y,slots:e,slotProps:t}):null,[y,e,t]);return S.jsx(I,C._extends({},g,{children:f}))}function $e(e){const{itemsToRender:t,slots:n,slotProps:s}=e;return S.jsx(x.Fragment,{children:t.map(c=>S.jsx(Jt,{slots:n,slotProps:s,label:c.label,id:c.id,itemId:c.itemId,itemsToRender:c.children},c.itemId))})}const Yt=h.createUseThemeProps(),Qt=e=>{const{classes:t}=e,n={root:["root"]};return F.composeClasses(n,mt,t)},Zt=F.styled("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"}),qe=x.forwardRef(function(t,n){const s=Yt({props:t,name:"MuiRichTreeView"});process.env.NODE_ENV!=="production"&&s.children!=null&&h.warnOnce(["MUI X: The Rich Tree View component does not support JSX children.","If you want to add items, you need to use the `items` prop.","Check the documentation for more details: https://mui.com/x/react-tree-view/rich-tree-view/items/."]);const{getRootProps:c,contextValue:y,instance:I}=Et({plugins:Lt,rootRef:n,props:s}),{slots:p,slotProps:g}=s,f=Qt(s),o=(p==null?void 0:p.root)??Zt,r=q.useSlotProps({elementType:o,externalSlotProps:g==null?void 0:g.root,className:f.root,getSlotProps:c,ownerState:s});return S.jsx(Ct,{value:y,children:S.jsx(o,C._extends({},r,{children:S.jsx($e,{slots:p,slotProps:g,itemsToRender:I.getItemsToRender()})}))})});process.env.NODE_ENV!=="production"&&(qe.propTypes={apiRef:i.PropTypes.shape({current:i.PropTypes.shape({focusItem:i.PropTypes.func.isRequired,getItem:i.PropTypes.func.isRequired,getItemDOMElement:i.PropTypes.func.isRequired,getItemOrderedChildrenIds:i.PropTypes.func.isRequired,getItemTree:i.PropTypes.func.isRequired,selectItem:i.PropTypes.func.isRequired,setItemExpansion:i.PropTypes.func.isRequired,updateItemLabel:i.PropTypes.func.isRequired})}),checkboxSelection:i.PropTypes.bool,classes:i.PropTypes.object,className:i.PropTypes.string,defaultExpandedItems:i.PropTypes.arrayOf(i.PropTypes.string),defaultSelectedItems:i.PropTypes.any,disabledItemsFocusable:i.PropTypes.bool,disableSelection:i.PropTypes.bool,expandedItems:i.PropTypes.arrayOf(i.PropTypes.string),expansionTrigger:i.PropTypes.oneOf(["content","iconContainer"]),experimentalFeatures:i.PropTypes.shape({indentationAtItemLevel:i.PropTypes.bool,labelEditing:i.PropTypes.bool}),getItemId:i.PropTypes.func,getItemLabel:i.PropTypes.func,id:i.PropTypes.string,isItemDisabled:i.PropTypes.func,isItemEditable:i.PropTypes.oneOfType([i.PropTypes.func,i.PropTypes.bool]),itemChildrenIndentation:i.PropTypes.oneOfType([i.PropTypes.number,i.PropTypes.string]),items:i.PropTypes.array.isRequired,multiSelect:i.PropTypes.bool,onExpandedItemsChange:i.PropTypes.func,onItemClick:i.PropTypes.func,onItemExpansionToggle:i.PropTypes.func,onItemFocus:i.PropTypes.func,onItemLabelChange:i.PropTypes.func,onItemSelectionToggle:i.PropTypes.func,onSelectedItemsChange:i.PropTypes.func,selectedItems:i.PropTypes.any,slotProps:i.PropTypes.object,slots:i.PropTypes.object,sx:i.PropTypes.oneOfType([i.PropTypes.arrayOf(i.PropTypes.oneOfType([i.PropTypes.func,i.PropTypes.object,i.PropTypes.bool])),i.PropTypes.func,i.PropTypes.object])});const en=({items:e,selectedItemId:t,handleSelectedItemChange:n,iconColor:s="primary",hasNoIcons:c=!1,maxHeight:y=300,defaultExpandedItems:I=[]})=>{const[p,g]=ne.useState(I),f=ne.useMemo(()=>fe.buildItemDataMap(e),[e]);ne.useEffect(()=>{if(t){const r=fe.findItemPath(e,t);if(r){const u=r.slice(0,-1);g(b=>{const T=u.filter(a=>!b.includes(a));return T.length>0?[...b,...T]:b})}}},[t,e]);const o=(r,u)=>{g(u)};return S.jsx(De.TreeContainer,{maxHeight:y,"data-treeview-root":"true",children:S.jsx(qe,{items:e,selectedItems:t,expandedItems:p,onExpandedItemsChange:o,itemChildrenIndentation:De.DEFAULT_CHILDREN_INDENT,onSelectedItemsChange:n,getItemId:fe.getItemId,slots:{item:r=>{const u=r.itemId?f[r.itemId]:void 0;return S.jsx(h.CustomTreeItem,{...r,itemData:u,iconColor:s,hasNoIcons:c})}}})})};module.exports=en;
|
|
@@ -1842,19 +1842,20 @@ const no = ({
|
|
|
1842
1842
|
handleSelectedItemChange: n,
|
|
1843
1843
|
iconColor: r = "primary",
|
|
1844
1844
|
hasNoIcons: l = !1,
|
|
1845
|
-
maxHeight: x = 300
|
|
1845
|
+
maxHeight: x = 300,
|
|
1846
|
+
defaultExpandedItems: I = []
|
|
1846
1847
|
}) => {
|
|
1847
|
-
const [
|
|
1848
|
+
const [f, g] = yt(I), p = Ct(() => Kt(e), [e]);
|
|
1848
1849
|
return wt(() => {
|
|
1849
1850
|
if (t) {
|
|
1850
|
-
const
|
|
1851
|
-
if (
|
|
1852
|
-
const
|
|
1853
|
-
|
|
1854
|
-
const
|
|
1855
|
-
(
|
|
1851
|
+
const s = Ut(e, t);
|
|
1852
|
+
if (s) {
|
|
1853
|
+
const u = s.slice(0, -1);
|
|
1854
|
+
g((b) => {
|
|
1855
|
+
const h = u.filter(
|
|
1856
|
+
(c) => !b.includes(c)
|
|
1856
1857
|
);
|
|
1857
|
-
return
|
|
1858
|
+
return h.length > 0 ? [...b, ...h] : b;
|
|
1858
1859
|
});
|
|
1859
1860
|
}
|
|
1860
1861
|
}
|
|
@@ -1863,21 +1864,21 @@ const no = ({
|
|
|
1863
1864
|
{
|
|
1864
1865
|
items: e,
|
|
1865
1866
|
selectedItems: t,
|
|
1866
|
-
expandedItems:
|
|
1867
|
-
onExpandedItemsChange: (
|
|
1868
|
-
|
|
1867
|
+
expandedItems: f,
|
|
1868
|
+
onExpandedItemsChange: (s, u) => {
|
|
1869
|
+
g(u);
|
|
1869
1870
|
},
|
|
1870
1871
|
itemChildrenIndentation: Nt,
|
|
1871
1872
|
onSelectedItemsChange: n,
|
|
1872
1873
|
getItemId: Bt,
|
|
1873
1874
|
slots: {
|
|
1874
|
-
item: (
|
|
1875
|
-
const
|
|
1875
|
+
item: (s) => {
|
|
1876
|
+
const u = s.itemId ? p[s.itemId] : void 0;
|
|
1876
1877
|
return /* @__PURE__ */ S(
|
|
1877
1878
|
_t,
|
|
1878
1879
|
{
|
|
1879
|
-
...
|
|
1880
|
-
itemData:
|
|
1880
|
+
...s,
|
|
1881
|
+
itemData: u,
|
|
1881
1882
|
iconColor: r,
|
|
1882
1883
|
hasNoIcons: l
|
|
1883
1884
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cgi-learning-hub/ui",
|
|
3
|
-
"version": "1.5.0-dev.
|
|
3
|
+
"version": "1.5.0-dev.1743686462",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "CGI Learning-hub Team",
|
|
6
6
|
"description": "@cgi-learning-hub/ui is an open-source React component library that implements UI for HUB's features",
|