@cgi-learning-hub/ui 1.4.0-dev.1742031677 → 1.4.0-dev.1742033609
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/{CustomTreeItem-GHUeoYTN.cjs → CustomTreeItem-dmAy1wfu.cjs} +3 -3
- package/dist/{CustomTreeItem-CyfVhVMC.js → CustomTreeItem-kFMLEWpp.js} +88 -87
- package/dist/components/TreeView/TreeView.cjs.js +7 -7
- package/dist/components/TreeView/TreeView.es.js +291 -292
- package/dist/components/TreeView/components/CustomTreeItem.cjs.js +1 -1
- package/dist/components/TreeView/components/CustomTreeItem.d.ts +1 -2
- package/dist/components/TreeView/components/CustomTreeItem.es.js +3 -3
- package/dist/components/TreeView/style.cjs.js +1 -1
- package/dist/components/TreeView/style.d.ts +1 -0
- package/dist/components/TreeView/style.es.js +7 -6
- package/dist/components/stories/TreeView.stories.cjs.js +30 -2
- package/dist/components/stories/TreeView.stories.d.ts +1 -0
- package/dist/components/stories/TreeView.stories.es.js +309 -147
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";const
|
|
2
|
-
`))},[m]);const{current:o}=y.useRef(
|
|
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()),h=Array.from(s.regular.keys());for(let g=c.length-1;g>=0;g-=1){const f=c[g];s.highPriority.has(f)&&f.apply(this,n)}for(let g=0;g<h.length;g+=1){const f=h[g];s.regular.has(f)&&f.apply(this,n)}}once(t,n){const s=this;this.on(t,function c(...h){s.removeListener(t,c),n.apply(s,h)})}}const xt=e=>e.isPropagationStopped!==void 0,
|
|
5
|
-
`));if(c[
|
|
6
|
-
`));const b=n?n(
|
|
7
|
-
`));c[u]={id:u,label:b,parentId:i,idAttribute:void 0,expandable:!!((a=p.children)!=null&&a.length),disabled:t?t(p):!1,depth:o},h[u]=p;const T=i??K;g[T]||(g[T]=[]),g[T].push(u),(l=p.children)==null||l.forEach(d=>f(d,o+1,u))};e.forEach(p=>f(p,0,null));const m={};return Object.keys(g).forEach(p=>{m[p]=kt(g[p])}),{itemMetaMap:c,itemMap:h,itemOrderedChildrenIds:g,itemChildrenIndexes:m}},H=({instance:e,params:t,state:n,setState:s,experimentalFeatures:c})=>{const h=y.useCallback(d=>n.items.itemMetaMap[d],[n.items.itemMetaMap]),g=y.useCallback(d=>n.items.itemMap[d],[n.items.itemMap]),f=y.useCallback(()=>{const d=I=>{const P=n.items.itemMap[I],v=j._objectWithoutPropertiesLoose(P,Dt),E=n.items.itemOrderedChildrenIds[I];return E&&(v.children=E.map(d)),v};return n.items.itemOrderedChildrenIds[K].map(d)},[n.items.itemMap,n.items.itemOrderedChildrenIds]),m=y.useCallback(d=>{if(d==null)return!1;let I=e.getItemMeta(d);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]),p=y.useCallback(d=>{const I=e.getItemMeta(d).parentId??K;return n.items.itemChildrenIndexes[I][d]},[e,n.items.itemChildrenIndexes]),o=y.useCallback(d=>n.items.itemOrderedChildrenIds[d??K]??[],[n.items.itemOrderedChildrenIds]),i=d=>{const I=e.getItemMeta(d);return I==null?null:document.getElementById(x.generateTreeItemIdAttribute({treeId:n.id.treeId,itemId:d,id:I.idAttribute}))},u=d=>t.disabledItemsFocusable?!0:!e.isItemDisabled(d),b=y.useRef(!1),T=y.useCallback(()=>{b.current=!0},[]),a=y.useCallback(()=>b.current,[]);return y.useEffect(()=>{e.areItemUpdatesPrevented()||s(d=>{const I=Ve({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(d.items.itemMetaMap).forEach(P=>{I.itemMetaMap[P.id]||vt(e,"removeItem",{id:P.id})}),C._extends({},d,{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:h,getItem:g,getItemTree:f,getItemsToRender:()=>{const d=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(d)}};return n.items.itemOrderedChildrenIds[K].map(d)},getItemIndex:p,getItemDOMElement:i,getItemOrderedChildrenIds:o,isItemDisabled:m,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})=>R.jsx(x.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(u=>{i.set(u,!0)}),i},[n.expandedItems.value]),c=(i,u)=>{var b;(b=t.onExpandedItemsChange)==null||b.call(t,i,u),n.expandedItems.setControlledValue(u)},h=y.useCallback(i=>s.has(i),[s]),g=y.useCallback(i=>{var u;return!!((u=e.getItemMeta(i))!=null&&u.expandable)},[e]),f=U.useEventCallback((i,u)=>{const b=e.isItemExpanded(u);e.setItemExpansion(i,u,!b)}),m=U.useEventCallback((i,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(i,u,b),c(i,a)}),p=(i,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(i,d,!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:h,isItemExpandable:g,setItemExpansion:m,toggleItemExpansion:f,expandAllSiblings:p},contextValue:{expansion:{expansionTrigger:o}}}};se.models={expandedItems:{getDefaultValue:e=>e.defaultExpandedItems}};const Mt=[];se.getDefaultizedParams=({params:e})=>C._extends({},e,{defaultExpandedItems:e.defaultExpandedItems??Mt});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({}),h=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 d=l.filter(P=>!e.isItemSelected(P)),I=n.selectedItems.value.filter(P=>!l.includes(P));d.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=>h.has(a),m=({event:a,itemId:l,keepExistingSelection:d=!1,shouldBeSelected:I})=>{if(t.disableSelection)return;let P;if(d){const v=oe(n.selectedItems.value),E=e.isItemSelected(l);E&&(I===!1||I==null)?P=v.filter(S=>S!==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={}},p=(a,[l,d])=>{if(t.disableSelection||!t.multiSelect)return;let I=oe(n.selectedItems.value).slice();Object.keys(c.current).length>0&&(I=I.filter(S=>!c.current[S]));const P=me(I),v=x.getNonDisabledItemsInRange(e,l,d),E=v.filter(S=>!P[S]);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=x.getAllNavigableItems(e);g(a,l),c.current=me(l)},expandSelectionRange:(a,l)=>{if(s.current!=null){const[d,I]=x.findOrderInTremauxTree(e,l,s.current);p(a,[d,I])}},selectRangeFromStartToItem:(a,l)=>{p(a,[x.getFirstNavigableItem(e),l])},selectRangeFromItemToEnd:(a,l)=>{p(a,[l,x.getLastNavigableItem(e)])},selectItemFromArrowNavigation:(a,l,d)=>{if(t.disableSelection||!t.multiSelect)return;let I=oe(n.selectedItems.value).slice();Object.keys(c.current).length===0?(I.push(d),c.current={[l]:!0,[d]:!0}):(c.current[l]||(c.current={}),c.current[d]?(I=I.filter(P=>P!==l),delete c.current[l]):(I.push(d),c.current[d]=!0)),g(a,I)}},contextValue:{selection:{multiSelect:t.multiSelect,checkboxSelection:t.checkboxSelection,disableSelection:t.disableSelection}}}};re.models={selectedItems:{getDefaultValue:e=>e.defaultSelectedItems}};const Ot=[];re.getDefaultizedParams=({params:e})=>C._extends({},e,{disableSelection:e.disableSelection??!1,multiSelect:e.multiSelect??!1,checkboxSelection:e.checkboxSelection??!1,defaultSelectedItems:e.defaultSelectedItems??(e.multiSelect?Ot:null)});re.params={disableSelection:!0,multiSelect:!0,checkboxSelection:!0,defaultSelectedItems:!0,selectedItems:!0,onSelectedItemsChange:!0,onItemSelectionToggle:!0};const Me=1e3;class _t{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 Vt{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 jt{}function Ft(e){let t=0;return function(s,c,h){e.registry===null&&(e.registry=typeof FinalizationRegistry<"u"?new Vt:new _t);const[g]=y.useState(new jt),f=y.useRef(null),m=y.useRef(void 0);m.current=h;const p=y.useRef(null);if(!f.current&&m.current){const o=(i,u)=>{var b;u.defaultMuiPrevented||(b=m.current)==null||b.call(m,i,u)};f.current=s.$$subscribeEvent(c,o),t+=1,p.current={cleanupToken:t},e.registry.register(g,()=>{var i;(i=f.current)==null||i.call(f),f.current=null,p.current=null},p.current)}else!m.current&&f.current&&(f.current(),f.current=null,p.current&&(e.registry.unregister(p.current),p.current=null));y.useEffect(()=>{if(!f.current&&m.current){const o=(i,u)=>{var b;u.defaultMuiPrevented||(b=m.current)==null||b.call(m,i,u)};f.current=s.$$subscribeEvent(c,o)}return p.current&&e.registry&&(e.registry.unregister(p.current),p.current=null),()=>{var o;(o=f.current)==null||o.call(f),f.current=null}},[s,c])}}const At={registry:null},Lt=Ft(At),je=(e=document)=>{const t=e.activeElement;return t?t.shadowRoot?je(t.shadowRoot):t:null},$t=(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=x.getFirstNavigableItem(e)),n},he=({instance:e,params:t,state:n,setState:s,models:c,rootRef:h})=>{const g=$t(e,c.selectedItems.value),f=U.useEventCallback(l=>{const d=typeof l=="function"?l(n.focusedItemId):l;n.focusedItemId!==d&&s(I=>C._extends({},I,{focusedItemId:d}))}),m=y.useCallback(()=>!!h.current&&h.current.contains(je(ut.ownerDocument(h.current))),[h]),p=y.useCallback(l=>n.focusedItemId===l&&m(),[n.focusedItemId,m]),o=l=>{const d=e.getItemMeta(l);return d&&(d.parentId==null||e.isItemExpanded(d.parentId))},i=(l,d)=>{const I=e.getItemDOMElement(d);I&&I.focus(),f(d),t.onItemFocus&&t.onItemFocus(l,d)},u=U.useEventCallback((l,d)=>{o(d)&&i(l,d)}),b=U.useEventCallback(()=>{if(n.focusedItemId==null)return;if(e.getItemMeta(n.focusedItemId)){const d=e.getItemDOMElement(n.focusedItemId);d&&d.blur()}f(null)}),T=l=>l===g;Lt(e,"removeItem",({id:l})=>{n.focusedItemId===l&&i(null,g)});const a=l=>d=>{var I;(I=l.onFocus)==null||I.call(l,d),!d.defaultMuiPrevented&&d.target===d.currentTarget&&i(d,g)};return{getRootProps:l=>({onFocus:a(l)}),publicAPI:{focusItem:u},instance:{isItemFocused:p,canItemBeTabbed:T,focusItem:u,removeFocusedItem:b}}};he.getInitialState=()=>({focusedItemId:null});he.params={onItemFocus:!0};function Nt(e){return!!e&&e.length===1&&!!e.match(/\S/)}const Fe=({instance:e,params:t,state:n})=>{const s=dt.useRtl(),c=y.useRef({}),h=U.useEventCallback(o=>{c.current=o(c.current)});y.useEffect(()=>{if(e.areItemUpdatesPrevented())return;const o={},i=u=>{o[u.id]=u.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 u=i.toLowerCase(),b=d=>{const I=x.getNextNavigableItem(e,d);return I===null?x.getFirstNavigableItem(e):I};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},f=o=>!t.disableSelection&&!e.isItemDisabled(o),m=o=>!e.isItemDisabled(o)&&e.isItemExpandable(o);return{instance:{updateFirstCharMap:h,handleItemKeyDown:(o,i)=>{if(o.defaultMuiPrevented||o.altKey||x.isTargetInDescendants(o.target,o.currentTarget))return;const u=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":{x.hasPlugin(e,x.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 T=x.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=x.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(u)return;if(e.isItemExpanded(i)){const T=x.getNextNavigableItem(e,i);T&&(e.focusItem(o,T),o.preventDefault())}else m(i)&&(e.toggleItemExpansion(o,i),o.preventDefault());break}case(b==="ArrowLeft"&&!s||b==="ArrowRight"&&s):{if(u)return;if(m(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&&u&&o.shiftKey?e.selectRangeFromStartToItem(o,i):e.focusItem(o,x.getFirstNavigableItem(e)),o.preventDefault();break}case b==="End":{f(i)&&t.multiSelect&&u&&o.shiftKey?e.selectRangeFromItemToEnd(o,i):e.focusItem(o,x.getLastNavigableItem(e)),o.preventDefault();break}case b==="*":{e.expandAllSiblings(o,i),o.preventDefault();break}case(String.fromCharCode(o.keyCode)==="A"&&u&&t.multiSelect&&!t.disableSelection):{e.selectAllNavigableItems(o),o.preventDefault();break}case(!u&&!o.shiftKey&&Nt(b)):{const T=g(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 qt=[H,se,re,he,Fe,Ae,x.useTreeViewLabel];function Le(e){const{instance:t,items:{onItemClick:n},selection:{multiSelect:s,checkboxSelection:c,disableSelection:h},expansion:{expansionTrigger:g}}=x.useTreeViewContext(),f=t.isItemExpandable(e),m=t.isItemExpanded(e),p=t.isItemFocused(e),o=t.isItemSelected(e),i=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(!i){p||t.focusItem(E,e);const S=s&&(E.shiftKey||E.ctrlKey||E.metaKey);f&&!(S&&t.isItemExpanded(e))&&t.toggleItemExpansion(E,e)}},a=E=>{i||(p||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(h||i)return;const S=E.nativeEvent.shiftKey;s&&S?t.expandSelectionRange(E,e):t.selectItem({event:E,itemId:e,keepExistingSelection:s,shouldBeSelected:E.target.checked})},d=E=>{(E.shiftKey||E.ctrlKey||E.metaKey||i)&&E.preventDefault()},I=()=>{x.hasPlugin(t,x.useTreeViewLabel)&&t.isItemEditable(e)&&(t.isItemBeingEdited(e)?t.setEditedItemId(null):t.setEditedItemId(e))};return{disabled:i,expanded:m,selected:o,focused:p,editable:b,editing:u,disableSelection:h,checkboxSelection:c,handleExpansion:T,handleSelection:a,handleCheckboxSelection:l,handleContentClick:n,preventSelection:d,expansionTrigger:g,toggleItemEditing:I,handleSaveItemLabel:(E,S)=>{x.hasPlugin(t,x.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,S),I(),t.focusItem(E,e))},handleCancelItemLabelEditing:E=>{x.hasPlugin(t,x.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(I(),t.focusItem(E,e))}}}const Kt=["classes","className","displayIcon","expansionIcon","icon","label","itemId","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps"],Te=y.forwardRef(function(t,n){const{classes:s,className:c,displayIcon:h,expansionIcon:g,icon:f,label:m,itemId:p,onClick:o,onMouseDown:i,dragAndDropOverlayProps:u,labelInputProps:b}=t,T=j._objectWithoutPropertiesLoose(t,Kt),{disabled:a,expanded:l,selected:d,focused:I,editing:P,editable:v,disableSelection:E,checkboxSelection:S,handleExpansion:k,handleSelection:A,handleCheckboxSelection:B,handleContentClick:_,preventSelection:L,expansionTrigger:X,toggleItemEditing:G}=Le(p),$=f||g||h,J=y.useRef(null),ie=M=>{L(M),i&&i(M)},le=M=>{var Y;_==null||_(M,p),!((Y=J.current)!=null&&Y.contains(M.target))&&(X==="content"&&k(M),S||A(M),o&&o(M))},ce=M=>{M.defaultMuiPrevented||G()};return R.jsxs("div",C._extends({},T,{className:r.clsx(s.root,c,l&&s.expanded,d&&s.selected,I&&s.focused,a&&s.disabled,P&&s.editing,v&&s.editable),onClick:le,onMouseDown:ie,ref:n,children:[R.jsx("div",{className:s.iconContainer,children:$}),S&&R.jsx(pt.Checkbox,{className:s.checkbox,checked:d,onChange:B,disabled:a||E,ref:J,tabIndex:-1}),P?R.jsx(x.TreeItem2LabelInput,C._extends({},b,{className:s.labelInput})):R.jsx("div",C._extends({className:s.label},v&&{onDoubleClick:ce},{children:m})),u&&R.jsx(x.TreeItem2DragAndDropOverlay,C._extends({},u))]}))});process.env.NODE_ENV!=="production"&&(Te.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 Ut=["children","className","slots","slotProps","ContentComponent","ContentProps","itemId","id","label","onClick","onMouseDown","onFocus","onBlur","onKeyDown"],Bt=["ownerState"],zt=["ownerState"],Wt=["ownerState"],Ht=x.createUseThemeProps(),Xt=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,x.getTreeItemUtilityClass,t)},Gt=F.styled("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),Jt=F.styled(Te,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${x.treeItemClasses.iconContainer}`]:t.iconContainer},t.label&&{[`& .${x.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"}},[`&.${x.treeItemClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${x.treeItemClasses.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${x.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)}},[`&.${x.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)}},[`& .${x.treeItemClasses.iconContainer}`]:{width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${x.treeItemClasses.label}`]:C._extends({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1),[`& .${x.treeItemClasses.checkbox}`]:{padding:0},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}}]})),Yt=F.styled(ft.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}}]}),$e=y.forwardRef(function(t,n){var we,Se,Re,ve;const{icons:s,runItemPlugins:c,items:{disabledItemsFocusable:h,indentationAtItemLevel:g},selection:{disableSelection:f},expansion:{expansionTrigger:m},treeId:p,instance:o}=x.useTreeViewContext(),i=y.useContext(x.TreeViewItemDepthContext),u=Ht({props:t,name:"MuiTreeItem"}),{children:b,className:T,slots:a,slotProps:l,ContentComponent:d=Te,ContentProps:I,itemId:P,id:v,label:E,onClick:S,onMouseDown:k,onBlur:A,onKeyDown:B}=u,_=j._objectWithoutPropertiesLoose(u,Ut),{expanded:L,focused:X,selected:G,disabled:$,editing:J,handleExpansion:ie,handleCancelItemLabelEditing:le,handleSaveItemLabel:ce}=Le(P);process.env.NODE_ENV!=="production"&&(u.ContentComponent&&Ie.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&&Ie.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=y.useRef(null),xe=y.useRef(null),Ke=ge.useForkRef(n,Y,Q),Ue=ge.useForkRef(I==null?void 0:I.ref,M,xe),z={expandIcon:(a==null?void 0:a.expandIcon)??s.slots.expandIcon??x.TreeViewExpandIcon,collapseIcon:(a==null?void 0:a.collapseIcon)??s.slots.collapseIcon??x.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:$,indentationAtItemLevel:g}),D=Xt(ae),Pe=z.groupTransition??void 0,Be=q.useSlotProps({elementType:Pe,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,Bt),Xe=Z&&ue?R.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,zt),Ye=de?R.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,Wt),et=pe?R.jsx(pe,C._extends({},Ze)):null;let ee;G?ee=!0:f||$?ee=void 0:ee=!1;function tt(w){!X&&(!$||h)&&w.currentTarget===w.target&&o.focusItem(w,P)}function nt(w){var N,W,ke,De;A==null||A(w),!(J||w.relatedTarget&&x.isTargetInDescendants(w.relatedTarget,Q.current)&&(w.target&&((W=(N=w.target)==null?void 0:N.dataset)==null?void 0:W.element)==="labelInput"&&x.isTargetInDescendants(w.target,Q.current)||((De=(ke=w.relatedTarget)==null?void 0:ke.dataset)==null?void 0:De.element)==="labelInput"))&&o.removeFocusedItem()}const ot=w=>{var N,W;B==null||B(w),((W=(N=w.target)==null?void 0:N.dataset)==null?void 0:W.element)!=="labelInput"&&o.handleItemKeyDown(w,P)},st=x.generateTreeItemIdAttribute({itemId:P,treeId:p,id:v}),rt=o.canItemBeTabbed(P)?0:-1,te={rootRefObject:Q,contentRefObject:xe,interactions:{handleSaveItemLabel:ce,handleCancelItemLabelEditing:le}},it=((we=O.root)==null?void 0:we.call(O,C._extends({},te,{externalEventHandlers:V.extractEventHandlers(_)})))??{},lt=((Se=O.content)==null?void 0:Se.call(O,C._extends({},te,{externalEventHandlers:V.extractEventHandlers(I)})))??{},Ee=((Re=O.dragAndDropOverlay)==null?void 0:Re.call(O,C._extends({},te,{externalEventHandlers:{}})))??{},Ce=((ve=O.labelInput)==null?void 0:ve.call(O,C._extends({},te,{externalEventHandlers:{}})))??{};return R.jsx(x.TreeItem2Provider,{itemId:P,children:R.jsxs(Gt,C._extends({className:r.clsx(D.root,T),role:"treeitem","aria-expanded":Z?L:void 0,"aria-selected":ee,"aria-disabled":$||void 0,id:st,tabIndex:rt},_,{ownerState:ae,onFocus:tt,onBlur:nt,onKeyDown:ot,ref:Ke,style:g?C._extends({},_.style,{"--TreeView-itemDepth":typeof i=="function"?i(P):i}):_.style},it,{children:[R.jsx(Jt,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:S,onMouseDown:k,icon:et,expansionIcon:Xe,displayIcon:Ye,ownerState:ae},I,lt,Ee.action==null?{}:{dragAndDropOverlayProps:Ee},Ce.value==null?{}:{labelInputProps:Ce},{ref:Ue})),b&&R.jsx(Yt,C._extends({as:Pe},Be,{children:b}))]}))})});process.env.NODE_ENV!=="production"&&($e.propTypes={children:r.PropTypes.node,classes:r.PropTypes.object,className:r.PropTypes.string,ContentComponent:It.elementTypeAcceptingRef,ContentProps:r.PropTypes.object,disabled:r.PropTypes.bool,itemId:r.PropTypes.string.isRequired,label:r.PropTypes.node,onFocus:mt.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 Qt=["ownerState"];function Zt({slots:e,slotProps:t,label:n,id:s,itemId:c,itemsToRender:h}){const g=(e==null?void 0:e.item)??$e,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,Qt),p=y.useMemo(()=>h?R.jsx(Ne,{itemsToRender:h,slots:e,slotProps:t}):null,[h,e,t]);return R.jsx(g,C._extends({},m,{children:p}))}function Ne(e){const{itemsToRender:t,slots:n,slotProps:s}=e;return R.jsx(y.Fragment,{children:t.map(c=>R.jsx(Zt,{slots:n,slotProps:s,label:c.label,id:c.id,itemId:c.itemId,itemsToRender:c.children},c.itemId))})}const en=x.createUseThemeProps(),tn=e=>{const{classes:t}=e,n={root:["root"]};return F.composeClasses(n,bt,t)},nn=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=en({props:t,name:"MuiRichTreeView"});process.env.NODE_ENV!=="production"&&s.children!=null&&Ie.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:h,instance:g}=St({plugins:qt,rootRef:n,props:s}),{slots:f,slotProps:m}=s,p=tn(s),o=(f==null?void 0:f.root)??nn,i=q.useSlotProps({elementType:o,externalSlotProps:m==null?void 0:m.root,className:p.root,getSlotProps:c,ownerState:s});return R.jsx(Rt,{value:h,children:R.jsx(o,C._extends({},i,{children:R.jsx(Ne,{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 on=({items:e,selectedItemId:t,handleSelectedItemChange:n,iconColor:s="primary"})=>{const[c,h]=ne.useState([]),g=ne.useMemo(()=>fe.buildItemDataMap(e),[e]);ne.useEffect(()=>{if(t){const m=fe.findItemPath(e,t);if(m){const p=m.slice(0,-1);h(o=>{const i=[...o];let u=!1;return p.forEach(b=>{i.includes(b)||(i.push(b),u=!0)}),u?i:o})}}},[t,e]);const f=(m,p)=>{h(p)};return R.jsx(ct.Box,{sx:at.treeContainerStyle,children:R.jsx(qe,{items:e,selectedItems:t,expandedItems:c,onExpandedItemsChange:f,itemChildrenIndentation:"50px",onSelectedItemsChange:n,getItemId:fe.getItemId,slots:{item:m=>{const p=m.itemId?g[m.itemId]:void 0;return R.jsx(x.CustomTreeItem,{...m,itemData:p,iconColor:s})}}})})};module.exports=on;
|
|
1
|
+
"use strict";const S=require("react/jsx-runtime"),at=require("../../Box-DYA49L7w.cjs"),ne=require("react"),x=require("../../CustomTreeItem-dmAy1wfu.cjs"),Me=require("./style.cjs.js"),fe=require("./utils.cjs.js"),C=require("../../ButtonBase-D6tfI-8D.cjs"),r=require("../../generateUtilityClasses-De8NU9_E.cjs"),j=require("../../TransitionGroupContext-Zt4NoR0u.cjs"),K=require("../../useEventCallback-C0-Qw3Sm.cjs"),ut=require("../../ownerDocument-4MViGo3k.cjs"),dt=require("../../index-Cr54V0sz.cjs"),pt=require("../../Checkbox-DQgPXaym.cjs"),Ie=require("../../warning-DMUNDgRg.cjs"),ge=require("../../useForkRef-CTI33h-3.cjs"),q=require("../../useSlotProps-BTRhbYwP.cjs"),V=require("../../resolveComponentProps-PuUs-PsA.cjs"),F=require("../../DefaultPropsProvider-wpBXjN8r.cjs"),ft=require("../../Collapse-Bvxtq7n-.cjs"),mt=require("../../unsupportedProp-Bn6XWqwH.cjs"),It=require("../../elementTypeAcceptingRef-BjgxF5Bq.cjs");function gt(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 y=gt(ne);function bt(e){return r.generateUtilityClass("MuiRichTreeView",e)}r.generateUtilityClasses("MuiRichTreeView",["root"]);const ht=(e,t)=>{const n=y.useRef({}),[s,c]=y.useState(()=>{const g={};return e.forEach(f=>{f.models&&Object.entries(f.models).forEach(([m,d])=>{n.current[m]={isControlled:t[m]!==void 0,getDefaultValue:d.getDefaultValue},g[m]=d.getDefaultValue(t)})}),g}),h=Object.fromEntries(Object.entries(n.current).map(([g,f])=>{const m=t[g]??s[g];return[g,{value:m,setControlledValue:d=>{f.isControlled||c(o=>C._extends({},o,{[g]:d}))}}]}));return process.env.NODE_ENV!=="production"&&Object.entries(n.current).forEach(([g,f])=>{const m=t[g],d=f.getDefaultValue(t);y.useEffect(()=>{f.isControlled!==(m!==void 0)&&console.error([`MUI X: A component is changing the ${f.isControlled?"":"un"}controlled ${g} 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 ${g} 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
|
+
`))},[m]);const{current:o}=y.useRef(d);y.useEffect(()=>{!f.isControlled&&o!==d&&console.error([`MUI X: A component is changing the default ${g} state of an uncontrolled TreeView after being initialized. To suppress this warning opt to use a controlled TreeView.`].join(`
|
|
3
|
+
`))},[JSON.stringify(d)])}),h};class Tt{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 h=c.highPriority.size+c.regular.size;h>this.maxListeners&&!this.warnOnce&&(this.warnOnce=!0,console.warn([`Possible EventEmitter memory leak detected. ${h} ${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()),h=Array.from(s.regular.keys());for(let g=c.length-1;g>=0;g-=1){const f=c[g];s.highPriority.has(f)&&f.apply(this,n)}for(let g=0;g<h.length;g+=1){const f=h[g];s.regular.has(f)&&f.apply(this,n)}}once(t,n){const s=this;this.on(t,function c(...h){s.removeListener(t,c),n.apply(s,h)})}}const xt=e=>e.isPropagationStopped!==void 0,_e=()=>{const[e]=y.useState(()=>new Tt),t=y.useCallback((...s)=>{const[c,h,g={}]=s;g.defaultMuiPrevented=!1,!(xt(g)&&g.isPropagationStopped())&&e.emit(c,h,g)},[e]),n=y.useCallback((s,c)=>(e.on(s,c),()=>{e.removeListener(s,c)}),[e]);return{instance:{$$publishEvent:t,$$subscribeEvent:n}}};_e.params={};const Ve=({plugins:e})=>{const t=new Set(e);return{instance:{getAvailablePlugins:()=>t}}};Ve.params={};const be=({params:e,state:t,setState:n})=>{y.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??x.createTreeViewDefaultId()})}))},[n,e.id]);const s=e.id??t.id.treeId;return{getRootProps:()=>({id:s}),contextValue:{treeId:s}}};be.params={id:!0};be.getInitialState=({id:e})=>({id:{treeId:e??void 0}});const yt=[_e,Ve,be],Pt=["slots","slotProps","apiRef","experimentalFeatures"],Et=e=>{let{props:{slots:t,slotProps:n,apiRef:s,experimentalFeatures:c},plugins:h}=e,g=j._objectWithoutPropertiesLoose(e.props,Pt);const f={};h.forEach(p=>{Object.assign(f,p.params)});const m={},d={};Object.keys(g).forEach(p=>{const b=g[p];f[p]?m[p]=b:d[p]=b});const o=c??{},i=h.reduce((p,b)=>b.getDefaultizedParams?b.getDefaultizedParams({params:p,experimentalFeatures:o}):p,m);return{apiRef:s,forwardedProps:d,pluginParams:i,slots:t??{},slotProps:n??{},experimentalFeatures:o}},Ct=({plugins:e,instance:t,publicAPI:n,rootRef:s})=>({runItemPlugins:f=>{let m=null,d=null;const o=[],i={};e.forEach(T=>{if(!T.itemPlugin)return;const a=T.itemPlugin({props:f,rootRef:m,contentRef:d});a!=null&&a.rootRef&&(m=a.rootRef),a!=null&&a.contentRef&&(d=a.contentRef),a!=null&&a.propsEnhancers&&(o.push(a.propsEnhancers),Object.keys(a.propsEnhancers).forEach(l=>{i[l]=!0}))});const p=T=>a=>{const l={};return o.forEach(u=>{const I=u[T];I!=null&&Object.assign(l,I(a))}),l},b=Object.fromEntries(Object.keys(i).map(T=>[T,p(T)]));return{contentRef:d,rootRef:m,propsEnhancers:b}},wrapItem:({itemId:f,children:m})=>{let d=m;for(let o=e.length-1;o>=0;o-=1){const i=e[o];i.wrapItem&&(d=i.wrapItem({itemId:f,children:d,instance:t}))}return d},wrapRoot:({children:f})=>{let m=f;for(let d=e.length-1;d>=0;d-=1){const o=e[d];o.wrapRoot&&(m=o.wrapRoot({children:m,instance:t}))}return m},instance:t,rootRef:s,publicAPI:n});function wt(e){const t=y.useRef({});return e?(e.current==null&&(e.current={}),e.current):t.current}const Rt=({plugins:e,rootRef:t,props:n})=>{const s=[...yt,...e],{pluginParams:c,forwardedProps:h,apiRef:g,experimentalFeatures:f,slots:m,slotProps:d}=Et({plugins:s,props:n}),o=ht(s,c),p=y.useRef({}).current,b=wt(g),T=y.useRef(null),a=ge.useForkRef(T,t),l=Ct({plugins:s,instance:p,publicAPI:b,rootRef:T}),[u,I]=y.useState(()=>{const R={};return s.forEach(k=>{k.getInitialState&&Object.assign(R,k.getInitialState(c))}),R}),P=[],v=R=>{const k=R({instance:p,params:c,slots:m,slotProps:d,experimentalFeatures:f,state:u,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(p,k.instance),k.contextValue&&Object.assign(l,k.contextValue)};return s.forEach(v),{getRootProps:(R={})=>{const k=C._extends({role:"tree"},h,R,{ref:a});return P.forEach(A=>{Object.assign(k,A(R))}),k},rootRef:a,contextValue:l,instance:p}};function St(e){const{value:t,children:n}=e;return S.jsx(x.TreeViewContext.Provider,{value:t,children:t.wrapRoot({children:n,instance:t.instance})})}const vt=(e,t,n)=>{e.$$publishEvent(t,n)},U="__TREE_VIEW_ROOT_PARENT_ID__",kt=e=>{const t={};return e.forEach((n,s)=>{t[n]=s}),t},Dt=["children"],je=({items:e,isItemDisabled:t,getItemLabel:n,getItemId:s})=>{const c={},h={},g={[U]:[]},f=(d,o,i)=>{var a,l;const p=s?s(d):d.id;if(p==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(d)].join(`
|
|
5
|
+
`));if(c[p]!=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: "${p}"`].join(`
|
|
6
|
+
`));const b=n?n(d):d.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(d)].join(`
|
|
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},h[p]=d;const T=i??U;g[T]||(g[T]=[]),g[T].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]=kt(g[d])}),{itemMetaMap:c,itemMap:h,itemOrderedChildrenIds:g,itemChildrenIndexes:m}},H=({instance:e,params:t,state:n,setState:s,experimentalFeatures:c})=>{const h=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,Dt),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(x.generateTreeItemIdAttribute({treeId:n.id.treeId,itemId:u,id:I.idAttribute}))},p=u=>t.disabledItemsFocusable?!0:!e.isItemDisabled(u),b=y.useRef(!1),T=y.useCallback(()=>{b.current=!0},[]),a=y.useCallback(()=>b.current,[]);return y.useEffect(()=>{e.areItemUpdatesPrevented()||s(u=>{const I=je({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(u.items.itemMetaMap).forEach(P=>{I.itemMetaMap[P.id]||vt(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:h,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:T,areItemUpdatesPrevented:a},contextValue:{items:{onItemClick:t.onItemClick,disabledItemsFocusable:t.disabledItemsFocusable,indentationAtItemLevel:c.indentationAtItemLevel??!1}}}};H.getInitialState=e=>({items:je({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(x.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)},h=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:h,isItemExpandable:g,setItemExpansion:m,toggleItemExpansion:f,expandAllSiblings:d},contextValue:{expansion:{expansionTrigger:o}}}};se.models={expandedItems:{getDefaultValue:e=>e.defaultExpandedItems}};const Mt=[];se.getDefaultizedParams=({params:e})=>C._extends({},e,{defaultExpandedItems:e.defaultExpandedItems??Mt});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({}),h=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=>h.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=x.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=x.getAllNavigableItems(e);g(a,l),c.current=me(l)},expandSelectionRange:(a,l)=>{if(s.current!=null){const[u,I]=x.findOrderInTremauxTree(e,l,s.current);d(a,[u,I])}},selectRangeFromStartToItem:(a,l)=>{d(a,[x.getFirstNavigableItem(e),l])},selectRangeFromItemToEnd:(a,l)=>{d(a,[l,x.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 Ot=[];re.getDefaultizedParams=({params:e})=>C._extends({},e,{disableSelection:e.disableSelection??!1,multiSelect:e.multiSelect??!1,checkboxSelection:e.checkboxSelection??!1,defaultSelectedItems:e.defaultSelectedItems??(e.multiSelect?Ot:null)});re.params={disableSelection:!0,multiSelect:!0,checkboxSelection:!0,defaultSelectedItems:!0,selectedItems:!0,onSelectedItemsChange:!0,onItemSelectionToggle:!0};const Oe=1e3;class _t{constructor(t=Oe){this.timeouts=new Map,this.cleanupTimeout=Oe,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 Vt{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 jt{}function Ft(e){let t=0;return function(s,c,h){e.registry===null&&(e.registry=typeof FinalizationRegistry<"u"?new Vt:new _t);const[g]=y.useState(new jt),f=y.useRef(null),m=y.useRef(void 0);m.current=h;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 At={registry:null},Lt=Ft(At),Fe=(e=document)=>{const t=e.activeElement;return t?t.shadowRoot?Fe(t.shadowRoot):t:null},Nt=(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=x.getFirstNavigableItem(e)),n},he=({instance:e,params:t,state:n,setState:s,models:c,rootRef:h})=>{const g=Nt(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(()=>!!h.current&&h.current.contains(Fe(ut.ownerDocument(h.current))),[h]),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)}),T=l=>l===g;Lt(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:T,focusItem:p,removeFocusedItem:b}}};he.getInitialState=()=>({focusedItemId:null});he.params={onItemFocus:!0};function $t(e){return!!e&&e.length===1&&!!e.match(/\S/)}const Ae=({instance:e,params:t,state:n})=>{const s=dt.useRtl(),c=y.useRef({}),h=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=x.getNextNavigableItem(e,u);return I===null?x.getFirstNavigableItem(e):I};let T=null,a=b(o);const l={};for(;T==null&&!l[a];)c.current[a]===p?T=a:(l[a]=!0,a=b(a));return T},f=o=>!t.disableSelection&&!e.isItemDisabled(o),m=o=>!e.isItemDisabled(o)&&e.isItemExpandable(o);return{instance:{updateFirstCharMap:h,handleItemKeyDown:(o,i)=>{if(o.defaultMuiPrevented||o.altKey||x.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":{x.hasPlugin(e,x.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 T=x.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=x.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(p)return;if(e.isItemExpanded(i)){const T=x.getNextNavigableItem(e,i);T&&(e.focusItem(o,T),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 T=e.getItemMeta(i).parentId;T&&(e.focusItem(o,T),o.preventDefault())}break}case b==="Home":{f(i)&&t.multiSelect&&p&&o.shiftKey?e.selectRangeFromStartToItem(o,i):e.focusItem(o,x.getFirstNavigableItem(e)),o.preventDefault();break}case b==="End":{f(i)&&t.multiSelect&&p&&o.shiftKey?e.selectRangeFromItemToEnd(o,i):e.focusItem(o,x.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&&$t(b)):{const T=g(i,b);T!=null&&(e.focusItem(o,T),o.preventDefault());break}}}}}};Ae.params={};const Le=({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}}}});Le.params={};const qt=[H,se,re,he,Ae,Le,x.useTreeViewLabel];function Ne(e){const{instance:t,items:{onItemClick:n},selection:{multiSelect:s,checkboxSelection:c,disableSelection:h},expansion:{expansionTrigger:g}}=x.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,T=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(h||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=()=>{x.hasPlugin(t,x.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:h,checkboxSelection:c,handleExpansion:T,handleSelection:a,handleCheckboxSelection:l,handleContentClick:n,preventSelection:u,expansionTrigger:g,toggleItemEditing:I,handleSaveItemLabel:(E,R)=>{x.hasPlugin(t,x.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,R),I(),t.focusItem(E,e))},handleCancelItemLabelEditing:E=>{x.hasPlugin(t,x.useTreeViewLabel)&&t.isItemBeingEditedRef(e)&&(I(),t.focusItem(E,e))}}}const Ut=["classes","className","displayIcon","expansionIcon","icon","label","itemId","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps"],Te=y.forwardRef(function(t,n){const{classes:s,className:c,displayIcon:h,expansionIcon:g,icon:f,label:m,itemId:d,onClick:o,onMouseDown:i,dragAndDropOverlayProps:p,labelInputProps:b}=t,T=j._objectWithoutPropertiesLoose(t,Ut),{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}=Ne(d),N=f||g||h,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({},T,{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(pt.Checkbox,{className:s.checkbox,checked:u,onChange:B,disabled:a||E,ref:J,tabIndex:-1}),P?S.jsx(x.TreeItem2LabelInput,C._extends({},b,{className:s.labelInput})):S.jsx("div",C._extends({className:s.label},v&&{onDoubleClick:ce},{children:m})),p&&S.jsx(x.TreeItem2DragAndDropOverlay,C._extends({},p))]}))});process.env.NODE_ENV!=="production"&&(Te.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 Kt=["children","className","slots","slotProps","ContentComponent","ContentProps","itemId","id","label","onClick","onMouseDown","onFocus","onBlur","onKeyDown"],Bt=["ownerState"],zt=["ownerState"],Wt=["ownerState"],Ht=x.createUseThemeProps(),Xt=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,x.getTreeItemUtilityClass,t)},Gt=F.styled("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),Jt=F.styled(Te,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${x.treeItemClasses.iconContainer}`]:t.iconContainer},t.label&&{[`& .${x.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"}},[`&.${x.treeItemClasses.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${x.treeItemClasses.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${x.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)}},[`&.${x.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)}},[`& .${x.treeItemClasses.iconContainer}`]:{width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${x.treeItemClasses.label}`]:C._extends({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1),[`& .${x.treeItemClasses.checkbox}`]:{padding:0},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}}]})),Yt=F.styled(ft.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}}]}),$e=y.forwardRef(function(t,n){var we,Re,Se,ve;const{icons:s,runItemPlugins:c,items:{disabledItemsFocusable:h,indentationAtItemLevel:g},selection:{disableSelection:f},expansion:{expansionTrigger:m},treeId:d,instance:o}=x.useTreeViewContext(),i=y.useContext(x.TreeViewItemDepthContext),p=Ht({props:t,name:"MuiTreeItem"}),{children:b,className:T,slots:a,slotProps:l,ContentComponent:u=Te,ContentProps:I,itemId:P,id:v,label:E,onClick:R,onMouseDown:k,onBlur:A,onKeyDown:B}=p,_=j._objectWithoutPropertiesLoose(p,Kt),{expanded:L,focused:X,selected:G,disabled:N,editing:J,handleExpansion:ie,handleCancelItemLabelEditing:le,handleSaveItemLabel:ce}=Ne(P);process.env.NODE_ENV!=="production"&&(p.ContentComponent&&Ie.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&&Ie.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),xe=y.useRef(null),Ke=ge.useForkRef(n,Y,Q),Be=ge.useForkRef(I==null?void 0:I.ref,M,xe),z={expandIcon:(a==null?void 0:a.expandIcon)??s.slots.expandIcon??x.TreeViewExpandIcon,collapseIcon:(a==null?void 0:a.collapseIcon)??s.slots.collapseIcon??x.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({},p,{expanded:L,focused:X,selected:G,disabled:N,indentationAtItemLevel:g}),D=Xt(ae),Pe=z.groupTransition??void 0,ze=q.useSlotProps({elementType:Pe,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}),We=w=>{m==="iconContainer"&&ie(w)},ue=L?z.collapseIcon:z.expandIcon,He=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:We}}),Xe=j._objectWithoutPropertiesLoose(He,Bt),Ge=Z&&ue?S.jsx(ue,C._extends({},Xe)):null,de=Z?void 0:z.endIcon,Je=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))}),Ye=j._objectWithoutPropertiesLoose(Je,zt),Qe=de?S.jsx(de,C._extends({},Ye)):null,pe=z.icon,Ze=q.useSlotProps({elementType:pe,ownerState:{},externalSlotProps:l==null?void 0:l.icon}),et=j._objectWithoutPropertiesLoose(Ze,Wt),tt=pe?S.jsx(pe,C._extends({},et)):null;let ee;G?ee=!0:f||N?ee=void 0:ee=!1;function nt(w){!X&&(!N||h)&&w.currentTarget===w.target&&o.focusItem(w,P)}function ot(w){var $,W,ke,De;A==null||A(w),!(J||w.relatedTarget&&x.isTargetInDescendants(w.relatedTarget,Q.current)&&(w.target&&((W=($=w.target)==null?void 0:$.dataset)==null?void 0:W.element)==="labelInput"&&x.isTargetInDescendants(w.target,Q.current)||((De=(ke=w.relatedTarget)==null?void 0:ke.dataset)==null?void 0:De.element)==="labelInput"))&&o.removeFocusedItem()}const st=w=>{var $,W;B==null||B(w),((W=($=w.target)==null?void 0:$.dataset)==null?void 0:W.element)!=="labelInput"&&o.handleItemKeyDown(w,P)},rt=x.generateTreeItemIdAttribute({itemId:P,treeId:d,id:v}),it=o.canItemBeTabbed(P)?0:-1,te={rootRefObject:Q,contentRefObject:xe,interactions:{handleSaveItemLabel:ce,handleCancelItemLabelEditing:le}},lt=((we=O.root)==null?void 0:we.call(O,C._extends({},te,{externalEventHandlers:V.extractEventHandlers(_)})))??{},ct=((Re=O.content)==null?void 0:Re.call(O,C._extends({},te,{externalEventHandlers:V.extractEventHandlers(I)})))??{},Ee=((Se=O.dragAndDropOverlay)==null?void 0:Se.call(O,C._extends({},te,{externalEventHandlers:{}})))??{},Ce=((ve=O.labelInput)==null?void 0:ve.call(O,C._extends({},te,{externalEventHandlers:{}})))??{};return S.jsx(x.TreeItem2Provider,{itemId:P,children:S.jsxs(Gt,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:rt,tabIndex:it},_,{ownerState:ae,onFocus:nt,onBlur:ot,onKeyDown:st,ref:Ke,style:g?C._extends({},_.style,{"--TreeView-itemDepth":typeof i=="function"?i(P):i}):_.style},lt,{children:[S.jsx(Jt,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:tt,expansionIcon:Ge,displayIcon:Qe,ownerState:ae},I,ct,Ee.action==null?{}:{dragAndDropOverlayProps:Ee},Ce.value==null?{}:{labelInputProps:Ce},{ref:Be})),b&&S.jsx(Yt,C._extends({as:Pe},ze,{children:b}))]}))})});process.env.NODE_ENV!=="production"&&($e.propTypes={children:r.PropTypes.node,classes:r.PropTypes.object,className:r.PropTypes.string,ContentComponent:It.elementTypeAcceptingRef,ContentProps:r.PropTypes.object,disabled:r.PropTypes.bool,itemId:r.PropTypes.string.isRequired,label:r.PropTypes.node,onFocus:mt.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 Qt=["ownerState"];function Zt({slots:e,slotProps:t,label:n,id:s,itemId:c,itemsToRender:h}){const g=(e==null?void 0:e.item)??$e,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,Qt),d=y.useMemo(()=>h?S.jsx(qe,{itemsToRender:h,slots:e,slotProps:t}):null,[h,e,t]);return S.jsx(g,C._extends({},m,{children:d}))}function qe(e){const{itemsToRender:t,slots:n,slotProps:s}=e;return S.jsx(y.Fragment,{children:t.map(c=>S.jsx(Zt,{slots:n,slotProps:s,label:c.label,id:c.id,itemId:c.itemId,itemsToRender:c.children},c.itemId))})}const en=x.createUseThemeProps(),tn=e=>{const{classes:t}=e,n={root:["root"]};return F.composeClasses(n,bt,t)},nn=F.styled("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"}),Ue=y.forwardRef(function(t,n){const s=en({props:t,name:"MuiRichTreeView"});process.env.NODE_ENV!=="production"&&s.children!=null&&Ie.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:h,instance:g}=Rt({plugins:qt,rootRef:n,props:s}),{slots:f,slotProps:m}=s,d=tn(s),o=(f==null?void 0:f.root)??nn,i=q.useSlotProps({elementType:o,externalSlotProps:m==null?void 0:m.root,className:d.root,getSlotProps:c,ownerState:s});return S.jsx(St,{value:h,children:S.jsx(o,C._extends({},i,{children:S.jsx(qe,{slots:f,slotProps:m,itemsToRender:g.getItemsToRender()})}))})});process.env.NODE_ENV!=="production"&&(Ue.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 on=({items:e,selectedItemId:t,handleSelectedItemChange:n,iconColor:s="primary"})=>{const[c,h]=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);h(o=>{const i=d.filter(p=>!o.includes(p));return i.length>0?[...o,...i]:o})}}},[t,e]);const f=(m,d)=>{h(d)};return S.jsx(at.Box,{sx:Me.treeContainerStyle,"data-treeview-root":"true",children:S.jsx(Ue,{items:e,selectedItems:t,expandedItems:c,onExpandedItemsChange:f,itemChildrenIndentation:Me.DEFAULT_CHILDREN_INDENT,onSelectedItemsChange:n,getItemId:fe.getItemId,slots:{item:m=>{const d=m.itemId?g[m.itemId]:void 0;return S.jsx(x.CustomTreeItem,{...m,itemData:d,iconColor:s})}}})})};module.exports=on;
|