@cgi-learning-hub/ui 1.4.0-dev.1742394029 → 1.4.0-dev.1742469130
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/components/TreeView/TreeView.cjs.js +7 -7
- package/dist/components/TreeView/TreeView.es.js +414 -414
- package/dist/components/TreeView/style.cjs.js +1 -1
- package/dist/components/TreeView/style.es.js +15 -10
- package/dist/components/TreeView/types.d.ts +4 -0
- package/dist/components/stories/TreeView.stories.cjs.js +9 -3
- package/dist/components/stories/TreeView.stories.d.ts +1 -0
- package/dist/components/stories/TreeView.stories.es.js +267 -144
- package/package.json +1 -1
- package/dist/components/TreeView/style.d.ts +0 -12
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";const S=require("react/jsx-runtime"),
|
|
2
|
-
`))},[
|
|
3
|
-
`))},[JSON.stringify(
|
|
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()),
|
|
5
|
-
`));if(c[
|
|
6
|
-
`));const b=n?n(
|
|
7
|
-
`));c[p]={id:p,label:b,parentId:i,idAttribute:void 0,expandable:!!((a=d.children)!=null&&a.length),disabled:t?t(d):!1,depth:o},T[p]=d;const x=i??U;g[x]||(g[x]=[]),g[x].push(p),(l=d.children)==null||l.forEach(u=>f(u,o+1,p))};e.forEach(d=>f(d,0,null));const m={};return Object.keys(g).forEach(d=>{m[d]=St(g[d])}),{itemMetaMap:c,itemMap:T,itemOrderedChildrenIds:g,itemChildrenIndexes:m}},H=({instance:e,params:t,state:n,setState:s,experimentalFeatures:c})=>{const T=y.useCallback(u=>n.items.itemMetaMap[u],[n.items.itemMetaMap]),g=y.useCallback(u=>n.items.itemMap[u],[n.items.itemMap]),f=y.useCallback(()=>{const u=I=>{const P=n.items.itemMap[I],v=j._objectWithoutPropertiesLoose(P,vt),E=n.items.itemOrderedChildrenIds[I];return E&&(v.children=E.map(u)),v};return n.items.itemOrderedChildrenIds[U].map(u)},[n.items.itemMap,n.items.itemOrderedChildrenIds]),m=y.useCallback(u=>{if(u==null)return!1;let I=e.getItemMeta(u);if(!I)return!1;if(I.disabled)return!0;for(;I.parentId!=null;)if(I=e.getItemMeta(I.parentId),I.disabled)return!0;return!1},[e]),d=y.useCallback(u=>{const I=e.getItemMeta(u).parentId??U;return n.items.itemChildrenIndexes[I][u]},[e,n.items.itemChildrenIndexes]),o=y.useCallback(u=>n.items.itemOrderedChildrenIds[u??U]??[],[n.items.itemOrderedChildrenIds]),i=u=>{const I=e.getItemMeta(u);return I==null?null:document.getElementById(h.generateTreeItemIdAttribute({treeId:n.id.treeId,itemId:u,id:I.idAttribute}))},p=u=>t.disabledItemsFocusable?!0:!e.isItemDisabled(u),b=y.useRef(!1),x=y.useCallback(()=>{b.current=!0},[]),a=y.useCallback(()=>b.current,[]);return y.useEffect(()=>{e.areItemUpdatesPrevented()||s(u=>{const I=Ve({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(u.items.itemMetaMap).forEach(P=>{I.itemMetaMap[P.id]||Rt(e,"removeItem",{id:P.id})}),C._extends({},u,{items:I})})},[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:g,getItemDOMElement:i,getItemTree:f,getItemOrderedChildrenIds:o},instance:{getItemMeta:T,getItem:g,getItemTree:f,getItemsToRender:()=>{const u=I=>{var v;const P=n.items.itemMetaMap[I];return{label:P.label,itemId:P.id,id:P.idAttribute,children:(v=n.items.itemOrderedChildrenIds[I])==null?void 0:v.map(u)}};return n.items.itemOrderedChildrenIds[U].map(u)},getItemIndex:d,getItemDOMElement:i,getItemOrderedChildrenIds:o,isItemDisabled:m,isItemNavigable:p,preventItemUpdates:x,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=y.useMemo(()=>{const i=new Map;return n.expandedItems.value.forEach(p=>{i.set(p,!0)}),i},[n.expandedItems.value]),c=(i,p)=>{var b;(b=t.onExpandedItemsChange)==null||b.call(t,i,p),n.expandedItems.setControlledValue(p)},T=y.useCallback(i=>s.has(i),[s]),g=y.useCallback(i=>{var p;return!!((p=e.getItemMeta(i))!=null&&p.expandable)},[e]),f=K.useEventCallback((i,p)=>{const b=e.isItemExpanded(p);e.setItemExpansion(i,p,!b)}),m=K.useEventCallback((i,p,b)=>{if(e.isItemExpanded(p)===b)return;let a;b?a=[p].concat(n.expandedItems.value):a=n.expandedItems.value.filter(l=>l!==p),t.onItemExpansionToggle&&t.onItemExpansionToggle(i,p,b),c(i,a)}),d=(i,p)=>{const b=e.getItemMeta(p),a=e.getItemOrderedChildrenIds(b.parentId).filter(u=>e.isItemExpandable(u)&&!e.isItemExpanded(u)),l=n.expandedItems.value.concat(a);a.length>0&&(t.onItemExpansionToggle&&a.forEach(u=>{t.onItemExpansionToggle(i,u,!0)}),c(i,l))},o=y.useMemo(()=>t.expansionTrigger?t.expansionTrigger:e.isTreeViewEditable?"iconContainer":"content",[t.expansionTrigger,e.isTreeViewEditable]);return{publicAPI:{setItemExpansion:m},instance:{isItemExpanded:T,isItemExpandable:g,setItemExpansion:m,toggleItemExpansion:f,expandAllSiblings:d},contextValue:{expansion:{expansionTrigger:o}}}};se.models={expandedItems:{getDefaultValue:e=>e.defaultExpandedItems}};const kt=[];se.getDefaultizedParams=({params:e})=>C._extends({},e,{defaultExpandedItems:e.defaultExpandedItems??kt});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=y.useRef(null),c=y.useRef({}),T=y.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]),g=(a,l)=>{if(t.onItemSelectionToggle)if(t.multiSelect){const u=l.filter(P=>!e.isItemSelected(P)),I=n.selectedItems.value.filter(P=>!l.includes(P));u.forEach(P=>{t.onItemSelectionToggle(a,P,!0)}),I.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)},f=a=>T.has(a),m=({event:a,itemId:l,keepExistingSelection:u=!1,shouldBeSelected:I})=>{if(t.disableSelection)return;let P;if(u){const v=oe(n.selectedItems.value),E=e.isItemSelected(l);E&&(I===!1||I==null)?P=v.filter(R=>R!==l):!E&&(I===!0||I==null)?P=[l].concat(v):P=v}else I===!1||I==null&&e.isItemSelected(l)?P=t.multiSelect?[]:null:P=t.multiSelect?[l]:l;g(a,P),s.current=l,c.current={}},d=(a,[l,u])=>{if(t.disableSelection||!t.multiSelect)return;let I=oe(n.selectedItems.value).slice();Object.keys(c.current).length>0&&(I=I.filter(R=>!c.current[R]));const P=me(I),v=h.getNonDisabledItemsInRange(e,l,u),E=v.filter(R=>!P[R]);I=I.concat(E),g(a,I),c.current=me(v)};return{getRootProps:()=>({"aria-multiselectable":t.multiSelect}),publicAPI:{selectItem:m},instance:{isItemSelected:f,selectItem:m,selectAllNavigableItems:a=>{if(t.disableSelection||!t.multiSelect)return;const l=h.getAllNavigableItems(e);g(a,l),c.current=me(l)},expandSelectionRange:(a,l)=>{if(s.current!=null){const[u,I]=h.findOrderInTremauxTree(e,l,s.current);d(a,[u,I])}},selectRangeFromStartToItem:(a,l)=>{d(a,[h.getFirstNavigableItem(e),l])},selectRangeFromItemToEnd:(a,l)=>{d(a,[l,h.getLastNavigableItem(e)])},selectItemFromArrowNavigation:(a,l,u)=>{if(t.disableSelection||!t.multiSelect)return;let I=oe(n.selectedItems.value).slice();Object.keys(c.current).length===0?(I.push(u),c.current={[l]:!0,[u]:!0}):(c.current[l]||(c.current={}),c.current[u]?(I=I.filter(P=>P!==l),delete c.current[l]):(I.push(u),c.current[u]=!0)),g(a,I)}},contextValue:{selection:{multiSelect:t.multiSelect,checkboxSelection:t.checkboxSelection,disableSelection:t.disableSelection}}}};re.models={selectedItems:{getDefaultValue:e=>e.defaultSelectedItems}};const Dt=[];re.getDefaultizedParams=({params:e})=>C._extends({},e,{disableSelection:e.disableSelection??!1,multiSelect:e.multiSelect??!1,checkboxSelection:e.checkboxSelection??!1,defaultSelectedItems:e.defaultSelectedItems??(e.multiSelect?Dt:null)});re.params={disableSelection:!0,multiSelect:!0,checkboxSelection:!0,defaultSelectedItems:!0,selectedItems:!0,onSelectedItemsChange:!0,onItemSelectionToggle:!0};const Me=1e3;class Mt{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 Ot{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 _t{}function Vt(e){let t=0;return function(s,c,T){e.registry===null&&(e.registry=typeof FinalizationRegistry<"u"?new Ot:new Mt);const[g]=y.useState(new _t),f=y.useRef(null),m=y.useRef(void 0);m.current=T;const d=y.useRef(null);if(!f.current&&m.current){const o=(i,p)=>{var b;p.defaultMuiPrevented||(b=m.current)==null||b.call(m,i,p)};f.current=s.$$subscribeEvent(c,o),t+=1,d.current={cleanupToken:t},e.registry.register(g,()=>{var i;(i=f.current)==null||i.call(f),f.current=null,d.current=null},d.current)}else!m.current&&f.current&&(f.current(),f.current=null,d.current&&(e.registry.unregister(d.current),d.current=null));y.useEffect(()=>{if(!f.current&&m.current){const o=(i,p)=>{var b;p.defaultMuiPrevented||(b=m.current)==null||b.call(m,i,p)};f.current=s.$$subscribeEvent(c,o)}return d.current&&e.registry&&(e.registry.unregister(d.current),d.current=null),()=>{var o;(o=f.current)==null||o.call(f),f.current=null}},[s,c])}}const jt={registry:null},Ft=Vt(jt),je=(e=document)=>{const t=e.activeElement;return t?t.shadowRoot?je(t.shadowRoot):t:null},At=(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:T})=>{const g=At(e,c.selectedItems.value),f=K.useEventCallback(l=>{const u=typeof l=="function"?l(n.focusedItemId):l;n.focusedItemId!==u&&s(I=>C._extends({},I,{focusedItemId:u}))}),m=y.useCallback(()=>!!T.current&&T.current.contains(je(at.ownerDocument(T.current))),[T]),d=y.useCallback(l=>n.focusedItemId===l&&m(),[n.focusedItemId,m]),o=l=>{const u=e.getItemMeta(l);return u&&(u.parentId==null||e.isItemExpanded(u.parentId))},i=(l,u)=>{const I=e.getItemDOMElement(u);I&&I.focus(),f(u),t.onItemFocus&&t.onItemFocus(l,u)},p=K.useEventCallback((l,u)=>{o(u)&&i(l,u)}),b=K.useEventCallback(()=>{if(n.focusedItemId==null)return;if(e.getItemMeta(n.focusedItemId)){const u=e.getItemDOMElement(n.focusedItemId);u&&u.blur()}f(null)}),x=l=>l===g;Ft(e,"removeItem",({id:l})=>{n.focusedItemId===l&&i(null,g)});const a=l=>u=>{var I;(I=l.onFocus)==null||I.call(l,u),!u.defaultMuiPrevented&&u.target===u.currentTarget&&i(u,g)};return{getRootProps:l=>({onFocus:a(l)}),publicAPI:{focusItem:p},instance:{isItemFocused:d,canItemBeTabbed:x,focusItem:p,removeFocusedItem:b}}};be.getInitialState=()=>({focusedItemId:null});be.params={onItemFocus:!0};function Lt(e){return!!e&&e.length===1&&!!e.match(/\S/)}const Fe=({instance:e,params:t,state:n})=>{const s=ut.useRtl(),c=y.useRef({}),T=K.useEventCallback(o=>{c.current=o(c.current)});y.useEffect(()=>{if(e.areItemUpdatesPrevented())return;const o={},i=p=>{o[p.id]=p.label.substring(0,1).toLowerCase()};Object.values(n.items.itemMetaMap).forEach(i),c.current=o},[n.items.itemMetaMap,t.getItemId,e]);const g=(o,i)=>{const p=i.toLowerCase(),b=u=>{const I=h.getNextNavigableItem(e,u);return I===null?h.getFirstNavigableItem(e):I};let x=null,a=b(o);const l={};for(;x==null&&!l[a];)c.current[a]===p?x=a:(l[a]=!0,a=b(a));return x},f=o=>!t.disableSelection&&!e.isItemDisabled(o),m=o=>!e.isItemDisabled(o)&&e.isItemExpandable(o);return{instance:{updateFirstCharMap:T,handleItemKeyDown:(o,i)=>{if(o.defaultMuiPrevented||o.altKey||h.isTargetInDescendants(o.target,o.currentTarget))return;const p=o.ctrlKey||o.metaKey,b=o.key;switch(!0){case(b===" "&&f(i)):{o.preventDefault(),t.multiSelect&&o.shiftKey?e.expandSelectionRange(o,i):e.selectItem({event:o,itemId:i,keepExistingSelection:t.multiSelect,shouldBeSelected:t.multiSelect?void 0:!0});break}case b==="Enter":{h.hasPlugin(e,h.useTreeViewLabel)&&e.isItemEditable(i)&&!e.isItemBeingEdited(i)?e.setEditedItemId(i):m(i)?(e.toggleItemExpansion(o,i),o.preventDefault()):f(i)&&(t.multiSelect?(o.preventDefault(),e.selectItem({event:o,itemId:i,keepExistingSelection:!0})):e.isItemSelected(i)||(e.selectItem({event:o,itemId:i}),o.preventDefault()));break}case b==="ArrowDown":{const x=h.getNextNavigableItem(e,i);x&&(o.preventDefault(),e.focusItem(o,x),t.multiSelect&&o.shiftKey&&f(x)&&e.selectItemFromArrowNavigation(o,i,x));break}case b==="ArrowUp":{const x=h.getPreviousNavigableItem(e,i);x&&(o.preventDefault(),e.focusItem(o,x),t.multiSelect&&o.shiftKey&&f(x)&&e.selectItemFromArrowNavigation(o,i,x));break}case(b==="ArrowRight"&&!s||b==="ArrowLeft"&&s):{if(p)return;if(e.isItemExpanded(i)){const x=h.getNextNavigableItem(e,i);x&&(e.focusItem(o,x),o.preventDefault())}else m(i)&&(e.toggleItemExpansion(o,i),o.preventDefault());break}case(b==="ArrowLeft"&&!s||b==="ArrowRight"&&s):{if(p)return;if(m(i)&&e.isItemExpanded(i))e.toggleItemExpansion(o,i),o.preventDefault();else{const x=e.getItemMeta(i).parentId;x&&(e.focusItem(o,x),o.preventDefault())}break}case b==="Home":{f(i)&&t.multiSelect&&p&&o.shiftKey?e.selectRangeFromStartToItem(o,i):e.focusItem(o,h.getFirstNavigableItem(e)),o.preventDefault();break}case b==="End":{f(i)&&t.multiSelect&&p&&o.shiftKey?e.selectRangeFromItemToEnd(o,i):e.focusItem(o,h.getLastNavigableItem(e)),o.preventDefault();break}case b==="*":{e.expandAllSiblings(o,i),o.preventDefault();break}case(String.fromCharCode(o.keyCode)==="A"&&p&&t.multiSelect&&!t.disableSelection):{e.selectAllNavigableItems(o),o.preventDefault();break}case(!p&&!o.shiftKey&&Lt(b)):{const x=g(i,b);x!=null&&(e.focusItem(o,x),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 Nt=[H,se,re,be,Fe,Ae,h.useTreeViewLabel];function Le(e){const{instance:t,items:{onItemClick:n},selection:{multiSelect:s,checkboxSelection:c,disableSelection:T},expansion:{expansionTrigger:g}}=h.useTreeViewContext(),f=t.isItemExpandable(e),m=t.isItemExpanded(e),d=t.isItemFocused(e),o=t.isItemSelected(e),i=t.isItemDisabled(e),p=t!=null&&t.isItemBeingEdited?t==null?void 0:t.isItemBeingEdited(e):!1,b=t.isItemEditable?t.isItemEditable(e):!1,x=E=>{if(!i){d||t.focusItem(E,e);const R=s&&(E.shiftKey||E.ctrlKey||E.metaKey);f&&!(R&&t.isItemExpanded(e))&&t.toggleItemExpansion(E,e)}},a=E=>{i||(d||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(T||i)return;const R=E.nativeEvent.shiftKey;s&&R?t.expandSelectionRange(E,e):t.selectItem({event:E,itemId:e,keepExistingSelection:s,shouldBeSelected:E.target.checked})},u=E=>{(E.shiftKey||E.ctrlKey||E.metaKey||i)&&E.preventDefault()},I=()=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemEditable(e)&&(t.isItemBeingEdited(e)?t.setEditedItemId(null):t.setEditedItemId(e))};return{disabled:i,expanded:m,selected:o,focused:d,editable:b,editing:p,disableSelection:T,checkboxSelection:c,handleExpansion:x,handleSelection:a,handleCheckboxSelection:l,handleContentClick:n,preventSelection:u,expansionTrigger:g,toggleItemEditing:I,handleSaveItemLabel:(E,R)=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,R),I(),t.focusItem(E,e))},handleCancelItemLabelEditing:E=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(I(),t.focusItem(E,e))}}}const $t=["classes","className","displayIcon","expansionIcon","icon","label","itemId","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps"],he=y.forwardRef(function(t,n){const{classes:s,className:c,displayIcon:T,expansionIcon:g,icon:f,label:m,itemId:d,onClick:o,onMouseDown:i,dragAndDropOverlayProps:p,labelInputProps:b}=t,x=j._objectWithoutPropertiesLoose(t,$t),{disabled:a,expanded:l,selected:u,focused:I,editing:P,editable:v,disableSelection:E,checkboxSelection:R,handleExpansion:k,handleSelection:A,handleCheckboxSelection:B,handleContentClick:_,preventSelection:L,expansionTrigger:X,toggleItemEditing:G}=Le(d),N=f||g||T,J=y.useRef(null),ie=M=>{L(M),i&&i(M)},le=M=>{var Y;_==null||_(M,d),!((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({},x,{className:r.clsx(s.root,c,l&&s.expanded,u&&s.selected,I&&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(dt.Checkbox,{className:s.checkbox,checked:u,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:m})),p&&S.jsx(h.TreeItem2DragAndDropOverlay,C._extends({},p))]}))});process.env.NODE_ENV!=="production"&&(he.propTypes={classes:r.PropTypes.object.isRequired,className:r.PropTypes.string,displayIcon:r.PropTypes.node,dragAndDropOverlayProps:r.PropTypes.shape({action:r.PropTypes.oneOf(["make-child","move-to-parent","reorder-above","reorder-below"]),style:r.PropTypes.object}),expansionIcon:r.PropTypes.node,icon:r.PropTypes.node,itemId:r.PropTypes.string.isRequired,label:r.PropTypes.node,labelInputProps:r.PropTypes.shape({autoFocus:r.PropTypes.oneOf([!0]),"data-element":r.PropTypes.oneOf(["labelInput"]),onBlur:r.PropTypes.func,onChange:r.PropTypes.func,onKeyDown:r.PropTypes.func,type:r.PropTypes.oneOf(["text"]),value:r.PropTypes.string})});const qt=["children","className","slots","slotProps","ContentComponent","ContentProps","itemId","id","label","onClick","onMouseDown","onFocus","onBlur","onKeyDown"],Ut=["ownerState"],Kt=["ownerState"],Bt=["ownerState"],zt=h.createUseThemeProps(),Wt=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)},Ht=F.styled("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),Xt=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})`:r.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}))`:r.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})`:r.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}))`:r.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))`}}]})),Gt=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=y.forwardRef(function(t,n){var Ce,we,Re,Se;const{icons:s,runItemPlugins:c,items:{disabledItemsFocusable:T,indentationAtItemLevel:g},selection:{disableSelection:f},expansion:{expansionTrigger:m},treeId:d,instance:o}=h.useTreeViewContext(),i=y.useContext(h.TreeViewItemDepthContext),p=zt({props:t,name:"MuiTreeItem"}),{children:b,className:x,slots:a,slotProps:l,ContentComponent:u=he,ContentProps:I,itemId:P,id:v,label:E,onClick:R,onMouseDown:k,onBlur:A,onKeyDown:B}=p,_=j._objectWithoutPropertiesLoose(p,qt),{expanded:L,focused:X,selected:G,disabled:N,editing:J,handleExpansion:ie,handleCancelItemLabelEditing:le,handleSaveItemLabel:ce}=Le(P);process.env.NODE_ENV!=="production"&&(p.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/."]),p.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(p),Q=y.useRef(null),Te=y.useRef(null),Ue=Ie.useForkRef(n,Y,Q),Ke=Ie.useForkRef(I==null?void 0:I.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},xe=w=>Array.isArray(w)?w.length>0&&w.some(xe):!!w,Z=xe(b),ae=C._extends({},p,{expanded:L,focused:X,selected:G,disabled:N,indentationAtItemLevel:g}),D=Wt(ae),ye=z.groupTransition??void 0,Be=q.useSlotProps({elementType:ye,ownerState:{},externalSlotProps:l==null?void 0:l.groupTransition,additionalProps:C._extends({unmountOnExit:!0,in:L,component:"ul",role:"group"},g?{indentationAtItemLevel:!0}:{}),className:D.groupTransition}),ze=w=>{m==="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,Ut),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,Kt),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,Bt),et=pe?S.jsx(pe,C._extends({},Ze)):null;let ee;G?ee=!0:f||N?ee=void 0:ee=!1;function tt(w){!X&&(!N||T)&&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:d,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(I)})))??{},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(Ht,C._extends({className:r.clsx(D.root,x),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:g?C._extends({},_.style,{"--TreeView-itemDepth":typeof i=="function"?i(P):i}):_.style},it,{children:[S.jsx(Xt,C._extends({as:u,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},I,lt,Pe.action==null?{}:{dragAndDropOverlayProps:Pe},Ee.value==null?{}:{labelInputProps:Ee},{ref:Ke})),b&&S.jsx(Gt,C._extends({as:ye},Be,{children:b}))]}))})});process.env.NODE_ENV!=="production"&&(Ne.propTypes={children:r.PropTypes.node,classes:r.PropTypes.object,className:r.PropTypes.string,ContentComponent:ft.elementTypeAcceptingRef,ContentProps:r.PropTypes.object,disabled:r.PropTypes.bool,itemId:r.PropTypes.string.isRequired,label:r.PropTypes.node,onFocus:pt.unsupportedProp,onKeyDown:r.PropTypes.func,slotProps:r.PropTypes.object,slots:r.PropTypes.object,sx:r.PropTypes.oneOfType([r.PropTypes.arrayOf(r.PropTypes.oneOfType([r.PropTypes.func,r.PropTypes.object,r.PropTypes.bool])),r.PropTypes.func,r.PropTypes.object])});const Jt=["ownerState"];function Yt({slots:e,slotProps:t,label:n,id:s,itemId:c,itemsToRender:T}){const g=(e==null?void 0:e.item)??Ne,f=q.useSlotProps({elementType:g,externalSlotProps:t==null?void 0:t.item,additionalProps:{itemId:c,id:s,label:n},ownerState:{itemId:c,label:n}}),m=j._objectWithoutPropertiesLoose(f,Jt),d=y.useMemo(()=>T?S.jsx($e,{itemsToRender:T,slots:e,slotProps:t}):null,[T,e,t]);return S.jsx(g,C._extends({},m,{children:d}))}function $e(e){const{itemsToRender:t,slots:n,slotProps:s}=e;return S.jsx(y.Fragment,{children:t.map(c=>S.jsx(Yt,{slots:n,slotProps:s,label:c.label,id:c.id,itemId:c.itemId,itemsToRender:c.children},c.itemId))})}const Qt=h.createUseThemeProps(),Zt=e=>{const{classes:t}=e,n={root:["root"]};return F.composeClasses(n,It,t)},en=F.styled("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"}),qe=y.forwardRef(function(t,n){const s=Qt({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:T,instance:g}=Ct({plugins:Nt,rootRef:n,props:s}),{slots:f,slotProps:m}=s,d=Zt(s),o=(f==null?void 0:f.root)??en,i=q.useSlotProps({elementType:o,externalSlotProps:m==null?void 0:m.root,className:d.root,getSlotProps:c,ownerState:s});return S.jsx(wt,{value:T,children:S.jsx(o,C._extends({},i,{children:S.jsx($e,{slots:f,slotProps:m,itemsToRender:g.getItemsToRender()})}))})});process.env.NODE_ENV!=="production"&&(qe.propTypes={apiRef:r.PropTypes.shape({current:r.PropTypes.shape({focusItem:r.PropTypes.func.isRequired,getItem:r.PropTypes.func.isRequired,getItemDOMElement:r.PropTypes.func.isRequired,getItemOrderedChildrenIds:r.PropTypes.func.isRequired,getItemTree:r.PropTypes.func.isRequired,selectItem:r.PropTypes.func.isRequired,setItemExpansion:r.PropTypes.func.isRequired,updateItemLabel:r.PropTypes.func.isRequired})}),checkboxSelection:r.PropTypes.bool,classes:r.PropTypes.object,className:r.PropTypes.string,defaultExpandedItems:r.PropTypes.arrayOf(r.PropTypes.string),defaultSelectedItems:r.PropTypes.any,disabledItemsFocusable:r.PropTypes.bool,disableSelection:r.PropTypes.bool,expandedItems:r.PropTypes.arrayOf(r.PropTypes.string),expansionTrigger:r.PropTypes.oneOf(["content","iconContainer"]),experimentalFeatures:r.PropTypes.shape({indentationAtItemLevel:r.PropTypes.bool,labelEditing:r.PropTypes.bool}),getItemId:r.PropTypes.func,getItemLabel:r.PropTypes.func,id:r.PropTypes.string,isItemDisabled:r.PropTypes.func,isItemEditable:r.PropTypes.oneOfType([r.PropTypes.func,r.PropTypes.bool]),itemChildrenIndentation:r.PropTypes.oneOfType([r.PropTypes.number,r.PropTypes.string]),items:r.PropTypes.array.isRequired,multiSelect:r.PropTypes.bool,onExpandedItemsChange:r.PropTypes.func,onItemClick:r.PropTypes.func,onItemExpansionToggle:r.PropTypes.func,onItemFocus:r.PropTypes.func,onItemLabelChange:r.PropTypes.func,onItemSelectionToggle:r.PropTypes.func,onSelectedItemsChange:r.PropTypes.func,selectedItems:r.PropTypes.any,slotProps:r.PropTypes.object,slots:r.PropTypes.object,sx:r.PropTypes.oneOfType([r.PropTypes.arrayOf(r.PropTypes.oneOfType([r.PropTypes.func,r.PropTypes.object,r.PropTypes.bool])),r.PropTypes.func,r.PropTypes.object])});const tn=({items:e,selectedItemId:t,handleSelectedItemChange:n,iconColor:s="primary"})=>{const[c,T]=ne.useState([]),g=ne.useMemo(()=>fe.buildItemDataMap(e),[e]);ne.useEffect(()=>{if(t){const m=fe.findItemPath(e,t);if(m){const d=m.slice(0,-1);T(o=>{const i=d.filter(p=>!o.includes(p));return i.length>0?[...o,...i]:o})}}},[t,e]);const f=(m,d)=>{T(d)};return S.jsx(ct.Box,{sx:De.treeContainerStyle,"data-treeview-root":"true",children:S.jsx(qe,{items:e,selectedItems:t,expandedItems:c,onExpandedItemsChange:f,itemChildrenIndentation:De.DEFAULT_CHILDREN_INDENT,onSelectedItemsChange:n,getItemId:fe.getItemId,slots:{item:m=>{const d=m.itemId?g[m.itemId]:void 0;return S.jsx(h.CustomTreeItem,{...m,itemData:d,iconColor:s})}}})})};module.exports=tn;
|
|
1
|
+
"use strict";const S=require("react/jsx-runtime"),ne=require("react"),h=require("../../CustomTreeItem-BIl2yiro.cjs"),De=require("./style.cjs.js"),fe=require("./utils.cjs.js"),C=require("../../ButtonBase-NqQjeQ4X.cjs"),r=require("../../generateUtilityClasses-KugHyZhN.cjs"),j=require("../../TransitionGroupContext-Zt4NoR0u.cjs"),K=require("../../useEventCallback-C0-Qw3Sm.cjs"),ct=require("../../ownerDocument-4MViGo3k.cjs"),at=require("../../index-9hEUqvaJ.cjs"),ut=require("../../Checkbox-BZYoJieY.cjs"),Ie=require("../../useForkRef-CTI33h-3.cjs"),q=require("../../useSlotProps-DfO7r_4Y.cjs"),V=require("../../resolveComponentProps-Byi_59AN.cjs"),F=require("../../DefaultPropsProvider-BTnRBr0O.cjs"),dt=require("../../unsupportedProp-Bn6XWqwH.cjs"),pt=require("../../elementTypeAcceptingRef-GoqLuvj1.cjs");function ft(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const x=ft(ne);function mt(e){return r.generateUtilityClass("MuiRichTreeView",e)}r.generateUtilityClasses("MuiRichTreeView",["root"]);const It=(e,t)=>{const n=x.useRef({}),[s,c]=x.useState(()=>{const m={};return e.forEach(f=>{f.models&&Object.entries(f.models).forEach(([g,u])=>{n.current[g]={isControlled:t[g]!==void 0,getDefaultValue:u.getDefaultValue},m[g]=u.getDefaultValue(t)})}),m}),y=Object.fromEntries(Object.entries(n.current).map(([m,f])=>{const g=t[m]??s[m];return[m,{value:g,setControlledValue:u=>{f.isControlled||c(o=>C._extends({},o,{[m]:u}))}}]}));return process.env.NODE_ENV!=="production"&&Object.entries(n.current).forEach(([m,f])=>{const g=t[m],u=f.getDefaultValue(t);x.useEffect(()=>{f.isControlled!==(g!==void 0)&&console.error([`MUI X: A component is changing the ${f.isControlled?"":"un"}controlled ${m} state of TreeView to be ${f.isControlled?"un":""}controlled.`,"Elements should not switch from uncontrolled to controlled (or vice versa).",`Decide between using a controlled or uncontrolled ${m} element for the lifetime of the component.`,"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.","More info: https://fb.me/react-controlled-components"].join(`
|
|
2
|
+
`))},[g]);const{current:o}=x.useRef(u);x.useEffect(()=>{!f.isControlled&&o!==u&&console.error([`MUI X: A component is changing the default ${m} state of an uncontrolled TreeView after being initialized. To suppress this warning opt to use a controlled TreeView.`].join(`
|
|
3
|
+
`))},[JSON.stringify(u)])}),y};class gt{constructor(){this.maxListeners=20,this.warnOnce=!1,this.events={}}on(t,n,s={}){let c=this.events[t];if(c||(c={highPriority:new Map,regular:new Map},this.events[t]=c),s.isFirst?c.highPriority.set(n,!0):c.regular.set(n,!0),process.env.NODE_ENV!=="production"){const y=c.highPriority.size+c.regular.size;y>this.maxListeners&&!this.warnOnce&&(this.warnOnce=!0,console.warn([`Possible EventEmitter memory leak detected. ${y} ${t} listeners added.`].join(`
|
|
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 m=c.length-1;m>=0;m-=1){const f=c[m];s.highPriority.has(f)&&f.apply(this,n)}for(let m=0;m<y.length;m+=1){const f=y[m];s.regular.has(f)&&f.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,m={}]=s;m.defaultMuiPrevented=!1,!(bt(m)&&m.isPropagationStopped())&&e.emit(c,y,m)},[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,m=j._objectWithoutPropertiesLoose(e.props,Tt);const f={};y.forEach(d=>{Object.assign(f,d.params)});const g={},u={};Object.keys(m).forEach(d=>{const b=m[d];f[d]?g[d]=b:u[d]=b});const o=c??{},i=y.reduce((d,b)=>b.getDefaultizedParams?b.getDefaultizedParams({params:d,experimentalFeatures:o}):d,g);return{apiRef:s,forwardedProps:u,pluginParams:i,slots:t??{},slotProps:n??{},experimentalFeatures:o}},xt=({plugins:e,instance:t,publicAPI:n,rootRef:s})=>({runItemPlugins:f=>{let g=null,u=null;const o=[],i={};e.forEach(T=>{if(!T.itemPlugin)return;const a=T.itemPlugin({props:f,rootRef:g,contentRef:u});a!=null&&a.rootRef&&(g=a.rootRef),a!=null&&a.contentRef&&(u=a.contentRef),a!=null&&a.propsEnhancers&&(o.push(a.propsEnhancers),Object.keys(a.propsEnhancers).forEach(l=>{i[l]=!0}))});const d=T=>a=>{const l={};return o.forEach(p=>{const I=p[T];I!=null&&Object.assign(l,I(a))}),l},b=Object.fromEntries(Object.keys(i).map(T=>[T,d(T)]));return{contentRef:u,rootRef:g,propsEnhancers:b}},wrapItem:({itemId:f,children:g})=>{let u=g;for(let o=e.length-1;o>=0;o-=1){const i=e[o];i.wrapItem&&(u=i.wrapItem({itemId:f,children:u,instance:t}))}return u},wrapRoot:({children:f})=>{let g=f;for(let u=e.length-1;u>=0;u-=1){const o=e[u];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:m,experimentalFeatures:f,slots:g,slotProps:u}=yt({plugins:s,props:n}),o=It(s,c),d=x.useRef({}).current,b=Pt(m),T=x.useRef(null),a=Ie.useForkRef(T,t),l=xt({plugins:s,instance:d,publicAPI:b,rootRef:T}),[p,I]=x.useState(()=>{const R={};return s.forEach(k=>{k.getInitialState&&Object.assign(R,k.getInitialState(c))}),R}),P=[],v=R=>{const k=R({instance:d,params:c,slots:g,slotProps:u,experimentalFeatures:f,state:p,setState:I,rootRef:T,models:o,plugins:s});k.getRootProps&&P.push(k.getRootProps),k.publicAPI&&Object.assign(b,k.publicAPI),k.instance&&Object.assign(d,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:d}};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={},m={[U]:[]},f=(u,o,i)=>{var a,l;const d=s?s(u):u.id;if(d==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(u)].join(`
|
|
5
|
+
`));if(c[d]!=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: "${d}"`].join(`
|
|
6
|
+
`));const b=n?n(u):u.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(u)].join(`
|
|
7
|
+
`));c[d]={id:d,label:b,parentId:i,idAttribute:void 0,expandable:!!((a=u.children)!=null&&a.length),disabled:t?t(u):!1,depth:o},y[d]=u;const T=i??U;m[T]||(m[T]=[]),m[T].push(d),(l=u.children)==null||l.forEach(p=>f(p,o+1,d))};e.forEach(u=>f(u,0,null));const g={};return Object.keys(m).forEach(u=>{g[u]=Rt(m[u])}),{itemMetaMap:c,itemMap:y,itemOrderedChildrenIds:m,itemChildrenIndexes:g}},H=({instance:e,params:t,state:n,setState:s,experimentalFeatures:c})=>{const y=x.useCallback(p=>n.items.itemMetaMap[p],[n.items.itemMetaMap]),m=x.useCallback(p=>n.items.itemMap[p],[n.items.itemMap]),f=x.useCallback(()=>{const p=I=>{const P=n.items.itemMap[I],v=j._objectWithoutPropertiesLoose(P,St),E=n.items.itemOrderedChildrenIds[I];return E&&(v.children=E.map(p)),v};return n.items.itemOrderedChildrenIds[U].map(p)},[n.items.itemMap,n.items.itemOrderedChildrenIds]),g=x.useCallback(p=>{if(p==null)return!1;let I=e.getItemMeta(p);if(!I)return!1;if(I.disabled)return!0;for(;I.parentId!=null;)if(I=e.getItemMeta(I.parentId),I.disabled)return!0;return!1},[e]),u=x.useCallback(p=>{const I=e.getItemMeta(p).parentId??U;return n.items.itemChildrenIndexes[I][p]},[e,n.items.itemChildrenIndexes]),o=x.useCallback(p=>n.items.itemOrderedChildrenIds[p??U]??[],[n.items.itemOrderedChildrenIds]),i=p=>{const I=e.getItemMeta(p);return I==null?null:document.getElementById(h.generateTreeItemIdAttribute({treeId:n.id.treeId,itemId:p,id:I.idAttribute}))},d=p=>t.disabledItemsFocusable?!0:!e.isItemDisabled(p),b=x.useRef(!1),T=x.useCallback(()=>{b.current=!0},[]),a=x.useCallback(()=>b.current,[]);return x.useEffect(()=>{e.areItemUpdatesPrevented()||s(p=>{const I=Ve({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(p.items.itemMetaMap).forEach(P=>{I.itemMetaMap[P.id]||wt(e,"removeItem",{id:P.id})}),C._extends({},p,{items:I})})},[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:m,getItemDOMElement:i,getItemTree:f,getItemOrderedChildrenIds:o},instance:{getItemMeta:y,getItem:m,getItemTree:f,getItemsToRender:()=>{const p=I=>{var v;const P=n.items.itemMetaMap[I];return{label:P.label,itemId:P.id,id:P.idAttribute,children:(v=n.items.itemOrderedChildrenIds[I])==null?void 0:v.map(p)}};return n.items.itemOrderedChildrenIds[U].map(p)},getItemIndex:u,getItemDOMElement:i,getItemOrderedChildrenIds:o,isItemDisabled:g,isItemNavigable:d,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 i=new Map;return n.expandedItems.value.forEach(d=>{i.set(d,!0)}),i},[n.expandedItems.value]),c=(i,d)=>{var b;(b=t.onExpandedItemsChange)==null||b.call(t,i,d),n.expandedItems.setControlledValue(d)},y=x.useCallback(i=>s.has(i),[s]),m=x.useCallback(i=>{var d;return!!((d=e.getItemMeta(i))!=null&&d.expandable)},[e]),f=K.useEventCallback((i,d)=>{const b=e.isItemExpanded(d);e.setItemExpansion(i,d,!b)}),g=K.useEventCallback((i,d,b)=>{if(e.isItemExpanded(d)===b)return;let a;b?a=[d].concat(n.expandedItems.value):a=n.expandedItems.value.filter(l=>l!==d),t.onItemExpansionToggle&&t.onItemExpansionToggle(i,d,b),c(i,a)}),u=(i,d)=>{const b=e.getItemMeta(d),a=e.getItemOrderedChildrenIds(b.parentId).filter(p=>e.isItemExpandable(p)&&!e.isItemExpanded(p)),l=n.expandedItems.value.concat(a);a.length>0&&(t.onItemExpansionToggle&&a.forEach(p=>{t.onItemExpansionToggle(i,p,!0)}),c(i,l))},o=x.useMemo(()=>t.expansionTrigger?t.expansionTrigger:e.isTreeViewEditable?"iconContainer":"content",[t.expansionTrigger,e.isTreeViewEditable]);return{publicAPI:{setItemExpansion:g},instance:{isItemExpanded:y,isItemExpandable:m,setItemExpansion:g,toggleItemExpansion:f,expandAllSiblings:u},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]),m=(a,l)=>{if(t.onItemSelectionToggle)if(t.multiSelect){const p=l.filter(P=>!e.isItemSelected(P)),I=n.selectedItems.value.filter(P=>!l.includes(P));p.forEach(P=>{t.onItemSelectionToggle(a,P,!0)}),I.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)},f=a=>y.has(a),g=({event:a,itemId:l,keepExistingSelection:p=!1,shouldBeSelected:I})=>{if(t.disableSelection)return;let P;if(p){const v=oe(n.selectedItems.value),E=e.isItemSelected(l);E&&(I===!1||I==null)?P=v.filter(R=>R!==l):!E&&(I===!0||I==null)?P=[l].concat(v):P=v}else I===!1||I==null&&e.isItemSelected(l)?P=t.multiSelect?[]:null:P=t.multiSelect?[l]:l;m(a,P),s.current=l,c.current={}},u=(a,[l,p])=>{if(t.disableSelection||!t.multiSelect)return;let I=oe(n.selectedItems.value).slice();Object.keys(c.current).length>0&&(I=I.filter(R=>!c.current[R]));const P=me(I),v=h.getNonDisabledItemsInRange(e,l,p),E=v.filter(R=>!P[R]);I=I.concat(E),m(a,I),c.current=me(v)};return{getRootProps:()=>({"aria-multiselectable":t.multiSelect}),publicAPI:{selectItem:g},instance:{isItemSelected:f,selectItem:g,selectAllNavigableItems:a=>{if(t.disableSelection||!t.multiSelect)return;const l=h.getAllNavigableItems(e);m(a,l),c.current=me(l)},expandSelectionRange:(a,l)=>{if(s.current!=null){const[p,I]=h.findOrderInTremauxTree(e,l,s.current);u(a,[p,I])}},selectRangeFromStartToItem:(a,l)=>{u(a,[h.getFirstNavigableItem(e),l])},selectRangeFromItemToEnd:(a,l)=>{u(a,[l,h.getLastNavigableItem(e)])},selectItemFromArrowNavigation:(a,l,p)=>{if(t.disableSelection||!t.multiSelect)return;let I=oe(n.selectedItems.value).slice();Object.keys(c.current).length===0?(I.push(p),c.current={[l]:!0,[p]:!0}):(c.current[l]||(c.current={}),c.current[p]?(I=I.filter(P=>P!==l),delete c.current[l]):(I.push(p),c.current[p]=!0)),m(a,I)}},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[m]=x.useState(new Ot),f=x.useRef(null),g=x.useRef(void 0);g.current=y;const u=x.useRef(null);if(!f.current&&g.current){const o=(i,d)=>{var b;d.defaultMuiPrevented||(b=g.current)==null||b.call(g,i,d)};f.current=s.$$subscribeEvent(c,o),t+=1,u.current={cleanupToken:t},e.registry.register(m,()=>{var i;(i=f.current)==null||i.call(f),f.current=null,u.current=null},u.current)}else!g.current&&f.current&&(f.current(),f.current=null,u.current&&(e.registry.unregister(u.current),u.current=null));x.useEffect(()=>{if(!f.current&&g.current){const o=(i,d)=>{var b;d.defaultMuiPrevented||(b=g.current)==null||b.call(g,i,d)};f.current=s.$$subscribeEvent(c,o)}return u.current&&e.registry&&(e.registry.unregister(u.current),u.current=null),()=>{var o;(o=f.current)==null||o.call(f),f.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 m=Ft(e,c.selectedItems.value),f=K.useEventCallback(l=>{const p=typeof l=="function"?l(n.focusedItemId):l;n.focusedItemId!==p&&s(I=>C._extends({},I,{focusedItemId:p}))}),g=x.useCallback(()=>!!y.current&&y.current.contains(je(ct.ownerDocument(y.current))),[y]),u=x.useCallback(l=>n.focusedItemId===l&&g(),[n.focusedItemId,g]),o=l=>{const p=e.getItemMeta(l);return p&&(p.parentId==null||e.isItemExpanded(p.parentId))},i=(l,p)=>{const I=e.getItemDOMElement(p);I&&I.focus(),f(p),t.onItemFocus&&t.onItemFocus(l,p)},d=K.useEventCallback((l,p)=>{o(p)&&i(l,p)}),b=K.useEventCallback(()=>{if(n.focusedItemId==null)return;if(e.getItemMeta(n.focusedItemId)){const p=e.getItemDOMElement(n.focusedItemId);p&&p.blur()}f(null)}),T=l=>l===m;jt(e,"removeItem",({id:l})=>{n.focusedItemId===l&&i(null,m)});const a=l=>p=>{var I;(I=l.onFocus)==null||I.call(l,p),!p.defaultMuiPrevented&&p.target===p.currentTarget&&i(p,m)};return{getRootProps:l=>({onFocus:a(l)}),publicAPI:{focusItem:d},instance:{isItemFocused:u,canItemBeTabbed:T,focusItem:d,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={},i=d=>{o[d.id]=d.label.substring(0,1).toLowerCase()};Object.values(n.items.itemMetaMap).forEach(i),c.current=o},[n.items.itemMetaMap,t.getItemId,e]);const m=(o,i)=>{const d=i.toLowerCase(),b=p=>{const I=h.getNextNavigableItem(e,p);return I===null?h.getFirstNavigableItem(e):I};let T=null,a=b(o);const l={};for(;T==null&&!l[a];)c.current[a]===d?T=a:(l[a]=!0,a=b(a));return T},f=o=>!t.disableSelection&&!e.isItemDisabled(o),g=o=>!e.isItemDisabled(o)&&e.isItemExpandable(o);return{instance:{updateFirstCharMap:y,handleItemKeyDown:(o,i)=>{if(o.defaultMuiPrevented||o.altKey||h.isTargetInDescendants(o.target,o.currentTarget))return;const d=o.ctrlKey||o.metaKey,b=o.key;switch(!0){case(b===" "&&f(i)):{o.preventDefault(),t.multiSelect&&o.shiftKey?e.expandSelectionRange(o,i):e.selectItem({event:o,itemId:i,keepExistingSelection:t.multiSelect,shouldBeSelected:t.multiSelect?void 0:!0});break}case b==="Enter":{h.hasPlugin(e,h.useTreeViewLabel)&&e.isItemEditable(i)&&!e.isItemBeingEdited(i)?e.setEditedItemId(i):g(i)?(e.toggleItemExpansion(o,i),o.preventDefault()):f(i)&&(t.multiSelect?(o.preventDefault(),e.selectItem({event:o,itemId:i,keepExistingSelection:!0})):e.isItemSelected(i)||(e.selectItem({event:o,itemId:i}),o.preventDefault()));break}case b==="ArrowDown":{const T=h.getNextNavigableItem(e,i);T&&(o.preventDefault(),e.focusItem(o,T),t.multiSelect&&o.shiftKey&&f(T)&&e.selectItemFromArrowNavigation(o,i,T));break}case b==="ArrowUp":{const T=h.getPreviousNavigableItem(e,i);T&&(o.preventDefault(),e.focusItem(o,T),t.multiSelect&&o.shiftKey&&f(T)&&e.selectItemFromArrowNavigation(o,i,T));break}case(b==="ArrowRight"&&!s||b==="ArrowLeft"&&s):{if(d)return;if(e.isItemExpanded(i)){const T=h.getNextNavigableItem(e,i);T&&(e.focusItem(o,T),o.preventDefault())}else g(i)&&(e.toggleItemExpansion(o,i),o.preventDefault());break}case(b==="ArrowLeft"&&!s||b==="ArrowRight"&&s):{if(d)return;if(g(i)&&e.isItemExpanded(i))e.toggleItemExpansion(o,i),o.preventDefault();else{const T=e.getItemMeta(i).parentId;T&&(e.focusItem(o,T),o.preventDefault())}break}case b==="Home":{f(i)&&t.multiSelect&&d&&o.shiftKey?e.selectRangeFromStartToItem(o,i):e.focusItem(o,h.getFirstNavigableItem(e)),o.preventDefault();break}case b==="End":{f(i)&&t.multiSelect&&d&&o.shiftKey?e.selectRangeFromItemToEnd(o,i):e.focusItem(o,h.getLastNavigableItem(e)),o.preventDefault();break}case b==="*":{e.expandAllSiblings(o,i),o.preventDefault();break}case(String.fromCharCode(o.keyCode)==="A"&&d&&t.multiSelect&&!t.disableSelection):{e.selectAllNavigableItems(o),o.preventDefault();break}case(!d&&!o.shiftKey&&At(b)):{const T=m(i,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:m}}=h.useTreeViewContext(),f=t.isItemExpandable(e),g=t.isItemExpanded(e),u=t.isItemFocused(e),o=t.isItemSelected(e),i=t.isItemDisabled(e),d=t!=null&&t.isItemBeingEdited?t==null?void 0:t.isItemBeingEdited(e):!1,b=t.isItemEditable?t.isItemEditable(e):!1,T=E=>{if(!i){u||t.focusItem(E,e);const R=s&&(E.shiftKey||E.ctrlKey||E.metaKey);f&&!(R&&t.isItemExpanded(e))&&t.toggleItemExpansion(E,e)}},a=E=>{i||(u||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||i)return;const R=E.nativeEvent.shiftKey;s&&R?t.expandSelectionRange(E,e):t.selectItem({event:E,itemId:e,keepExistingSelection:s,shouldBeSelected:E.target.checked})},p=E=>{(E.shiftKey||E.ctrlKey||E.metaKey||i)&&E.preventDefault()},I=()=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemEditable(e)&&(t.isItemBeingEdited(e)?t.setEditedItemId(null):t.setEditedItemId(e))};return{disabled:i,expanded:g,selected:o,focused:u,editable:b,editing:d,disableSelection:y,checkboxSelection:c,handleExpansion:T,handleSelection:a,handleCheckboxSelection:l,handleContentClick:n,preventSelection:p,expansionTrigger:m,toggleItemEditing:I,handleSaveItemLabel:(E,R)=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,R),I(),t.focusItem(E,e))},handleCancelItemLabelEditing:E=>{h.hasPlugin(t,h.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(I(),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:m,icon:f,label:g,itemId:u,onClick:o,onMouseDown:i,dragAndDropOverlayProps:d,labelInputProps:b}=t,T=j._objectWithoutPropertiesLoose(t,Nt),{disabled:a,expanded:l,selected:p,focused:I,editing:P,editable:v,disableSelection:E,checkboxSelection:R,handleExpansion:k,handleSelection:A,handleCheckboxSelection:B,handleContentClick:_,preventSelection:L,expansionTrigger:X,toggleItemEditing:G}=Le(u),N=f||m||y,J=x.useRef(null),ie=M=>{L(M),i&&i(M)},le=M=>{var Y;_==null||_(M,u),!((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:r.clsx(s.root,c,l&&s.expanded,p&&s.selected,I&&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:p,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})),d&&S.jsx(h.TreeItem2DragAndDropOverlay,C._extends({},d))]}))});process.env.NODE_ENV!=="production"&&(he.propTypes={classes:r.PropTypes.object.isRequired,className:r.PropTypes.string,displayIcon:r.PropTypes.node,dragAndDropOverlayProps:r.PropTypes.shape({action:r.PropTypes.oneOf(["make-child","move-to-parent","reorder-above","reorder-below"]),style:r.PropTypes.object}),expansionIcon:r.PropTypes.node,icon:r.PropTypes.node,itemId:r.PropTypes.string.isRequired,label:r.PropTypes.node,labelInputProps:r.PropTypes.shape({autoFocus:r.PropTypes.oneOf([!0]),"data-element":r.PropTypes.oneOf(["labelInput"]),onBlur:r.PropTypes.func,onChange:r.PropTypes.func,onKeyDown:r.PropTypes.func,type:r.PropTypes.oneOf(["text"]),value:r.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})`:r.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}))`:r.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})`:r.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}))`:r.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:m},selection:{disableSelection:f},expansion:{expansionTrigger:g},treeId:u,instance:o}=h.useTreeViewContext(),i=x.useContext(h.TreeViewItemDepthContext),d=Bt({props:t,name:"MuiTreeItem"}),{children:b,className:T,slots:a,slotProps:l,ContentComponent:p=he,ContentProps:I,itemId:P,id:v,label:E,onClick:R,onMouseDown:k,onBlur:A,onKeyDown:B}=d,_=j._objectWithoutPropertiesLoose(d,$t),{expanded:L,focused:X,selected:G,disabled:N,editing:J,handleExpansion:ie,handleCancelItemLabelEditing:le,handleSaveItemLabel:ce}=Le(P);process.env.NODE_ENV!=="production"&&(d.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/."]),d.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(d),Q=x.useRef(null),Te=x.useRef(null),Ue=Ie.useForkRef(n,Y,Q),Ke=Ie.useForkRef(I==null?void 0:I.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({},d,{expanded:L,focused:X,selected:G,disabled:N,indentationAtItemLevel:m}),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"},m?{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:f||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:u,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(I)})))??{},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:r.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:m?C._extends({},_.style,{"--TreeView-itemDepth":typeof i=="function"?i(P):i}):_.style},it,{children:[S.jsx(Ht,C._extends({as:p,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},I,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:r.PropTypes.node,classes:r.PropTypes.object,className:r.PropTypes.string,ContentComponent:pt.elementTypeAcceptingRef,ContentProps:r.PropTypes.object,disabled:r.PropTypes.bool,itemId:r.PropTypes.string.isRequired,label:r.PropTypes.node,onFocus:dt.unsupportedProp,onKeyDown:r.PropTypes.func,slotProps:r.PropTypes.object,slots:r.PropTypes.object,sx:r.PropTypes.oneOfType([r.PropTypes.arrayOf(r.PropTypes.oneOfType([r.PropTypes.func,r.PropTypes.object,r.PropTypes.bool])),r.PropTypes.func,r.PropTypes.object])});const Gt=["ownerState"];function Jt({slots:e,slotProps:t,label:n,id:s,itemId:c,itemsToRender:y}){const m=(e==null?void 0:e.item)??Ne,f=q.useSlotProps({elementType:m,externalSlotProps:t==null?void 0:t.item,additionalProps:{itemId:c,id:s,label:n},ownerState:{itemId:c,label:n}}),g=j._objectWithoutPropertiesLoose(f,Gt),u=x.useMemo(()=>y?S.jsx($e,{itemsToRender:y,slots:e,slotProps:t}):null,[y,e,t]);return S.jsx(m,C._extends({},g,{children:u}))}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:m}=Et({plugins:Lt,rootRef:n,props:s}),{slots:f,slotProps:g}=s,u=Qt(s),o=(f==null?void 0:f.root)??Zt,i=q.useSlotProps({elementType:o,externalSlotProps:g==null?void 0:g.root,className:u.root,getSlotProps:c,ownerState:s});return S.jsx(Ct,{value:y,children:S.jsx(o,C._extends({},i,{children:S.jsx($e,{slots:f,slotProps:g,itemsToRender:m.getItemsToRender()})}))})});process.env.NODE_ENV!=="production"&&(qe.propTypes={apiRef:r.PropTypes.shape({current:r.PropTypes.shape({focusItem:r.PropTypes.func.isRequired,getItem:r.PropTypes.func.isRequired,getItemDOMElement:r.PropTypes.func.isRequired,getItemOrderedChildrenIds:r.PropTypes.func.isRequired,getItemTree:r.PropTypes.func.isRequired,selectItem:r.PropTypes.func.isRequired,setItemExpansion:r.PropTypes.func.isRequired,updateItemLabel:r.PropTypes.func.isRequired})}),checkboxSelection:r.PropTypes.bool,classes:r.PropTypes.object,className:r.PropTypes.string,defaultExpandedItems:r.PropTypes.arrayOf(r.PropTypes.string),defaultSelectedItems:r.PropTypes.any,disabledItemsFocusable:r.PropTypes.bool,disableSelection:r.PropTypes.bool,expandedItems:r.PropTypes.arrayOf(r.PropTypes.string),expansionTrigger:r.PropTypes.oneOf(["content","iconContainer"]),experimentalFeatures:r.PropTypes.shape({indentationAtItemLevel:r.PropTypes.bool,labelEditing:r.PropTypes.bool}),getItemId:r.PropTypes.func,getItemLabel:r.PropTypes.func,id:r.PropTypes.string,isItemDisabled:r.PropTypes.func,isItemEditable:r.PropTypes.oneOfType([r.PropTypes.func,r.PropTypes.bool]),itemChildrenIndentation:r.PropTypes.oneOfType([r.PropTypes.number,r.PropTypes.string]),items:r.PropTypes.array.isRequired,multiSelect:r.PropTypes.bool,onExpandedItemsChange:r.PropTypes.func,onItemClick:r.PropTypes.func,onItemExpansionToggle:r.PropTypes.func,onItemFocus:r.PropTypes.func,onItemLabelChange:r.PropTypes.func,onItemSelectionToggle:r.PropTypes.func,onSelectedItemsChange:r.PropTypes.func,selectedItems:r.PropTypes.any,slotProps:r.PropTypes.object,slots:r.PropTypes.object,sx:r.PropTypes.oneOfType([r.PropTypes.arrayOf(r.PropTypes.oneOfType([r.PropTypes.func,r.PropTypes.object,r.PropTypes.bool])),r.PropTypes.func,r.PropTypes.object])});const en=({items:e,selectedItemId:t,handleSelectedItemChange:n,iconColor:s="primary",height:c=300})=>{const[y,m]=ne.useState([]),f=ne.useMemo(()=>fe.buildItemDataMap(e),[e]);ne.useEffect(()=>{if(t){const u=fe.findItemPath(e,t);if(u){const o=u.slice(0,-1);m(i=>{const d=o.filter(b=>!i.includes(b));return d.length>0?[...i,...d]:i})}}},[t,e]);const g=(u,o)=>{m(o)};return S.jsx(De.TreeContainer,{height:c,"data-treeview-root":"true",children:S.jsx(qe,{items:e,selectedItems:t,expandedItems:y,onExpandedItemsChange:g,itemChildrenIndentation:De.DEFAULT_CHILDREN_INDENT,onSelectedItemsChange:n,getItemId:fe.getItemId,slots:{item:u=>{const o=u.itemId?f[u.itemId]:void 0;return S.jsx(h.CustomTreeItem,{...u,itemData:o,iconColor:s})}}})})};module.exports=en;
|