dockview 6.6.0 → 7.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +33 -26
  2. package/dist/cjs/index.d.ts +0 -9
  3. package/dist/cjs/index.js +12 -7
  4. package/dist/dockview.js +20486 -914
  5. package/dist/dockview.min.js +16 -2
  6. package/dist/dockview.min.js.map +1 -1
  7. package/dist/esm/index.d.ts +0 -9
  8. package/dist/esm/index.js +12 -7
  9. package/dist/package/main.cjs.js +856 -941
  10. package/dist/package/main.cjs.min.js +8 -2
  11. package/dist/package/main.esm.min.mjs +8 -2
  12. package/dist/package/main.esm.mjs +854 -934
  13. package/dist/styles/dockview.css +275 -13
  14. package/package.json +16 -12
  15. package/dist/cjs/dockview/defaultTab.d.ts +0 -7
  16. package/dist/cjs/dockview/defaultTab.js +0 -99
  17. package/dist/cjs/dockview/dockview.d.ts +0 -33
  18. package/dist/cjs/dockview/dockview.js +0 -285
  19. package/dist/cjs/dockview/headerActionsRenderer.d.ts +0 -24
  20. package/dist/cjs/dockview/headerActionsRenderer.js +0 -86
  21. package/dist/cjs/dockview/reactContentPart.d.ts +0 -21
  22. package/dist/cjs/dockview/reactContentPart.js +0 -52
  23. package/dist/cjs/dockview/reactContextMenuItemPart.d.ts +0 -14
  24. package/dist/cjs/dockview/reactContextMenuItemPart.js +0 -31
  25. package/dist/cjs/dockview/reactGroupDragGhostPart.d.ts +0 -20
  26. package/dist/cjs/dockview/reactGroupDragGhostPart.js +0 -32
  27. package/dist/cjs/dockview/reactHeaderPart.d.ts +0 -17
  28. package/dist/cjs/dockview/reactHeaderPart.js +0 -46
  29. package/dist/cjs/dockview/reactTabGroupChipPart.d.ts +0 -23
  30. package/dist/cjs/dockview/reactTabGroupChipPart.js +0 -36
  31. package/dist/cjs/dockview/reactWatermarkPart.d.ts +0 -18
  32. package/dist/cjs/dockview/reactWatermarkPart.js +0 -47
  33. package/dist/cjs/gridview/gridview.d.ts +0 -17
  34. package/dist/cjs/gridview/gridview.js +0 -105
  35. package/dist/cjs/gridview/view.d.ts +0 -9
  36. package/dist/cjs/gridview/view.js +0 -41
  37. package/dist/cjs/paneview/paneview.d.ts +0 -20
  38. package/dist/cjs/paneview/paneview.js +0 -137
  39. package/dist/cjs/paneview/view.d.ts +0 -19
  40. package/dist/cjs/paneview/view.js +0 -44
  41. package/dist/cjs/react.d.ts +0 -35
  42. package/dist/cjs/react.js +0 -183
  43. package/dist/cjs/splitview/splitview.d.ts +0 -17
  44. package/dist/cjs/splitview/splitview.js +0 -105
  45. package/dist/cjs/splitview/view.d.ts +0 -9
  46. package/dist/cjs/splitview/view.js +0 -39
  47. package/dist/cjs/svg.d.ts +0 -3
  48. package/dist/cjs/svg.js +0 -15
  49. package/dist/cjs/types.d.ts +0 -4
  50. package/dist/cjs/types.js +0 -2
  51. package/dist/esm/dockview/defaultTab.d.ts +0 -7
  52. package/dist/esm/dockview/defaultTab.js +0 -65
  53. package/dist/esm/dockview/dockview.d.ts +0 -33
  54. package/dist/esm/dockview/dockview.js +0 -252
  55. package/dist/esm/dockview/headerActionsRenderer.d.ts +0 -24
  56. package/dist/esm/dockview/headerActionsRenderer.js +0 -72
  57. package/dist/esm/dockview/reactContentPart.d.ts +0 -21
  58. package/dist/esm/dockview/reactContentPart.js +0 -43
  59. package/dist/esm/dockview/reactContextMenuItemPart.d.ts +0 -14
  60. package/dist/esm/dockview/reactContextMenuItemPart.js +0 -22
  61. package/dist/esm/dockview/reactGroupDragGhostPart.d.ts +0 -20
  62. package/dist/esm/dockview/reactGroupDragGhostPart.js +0 -23
  63. package/dist/esm/dockview/reactHeaderPart.d.ts +0 -17
  64. package/dist/esm/dockview/reactHeaderPart.js +0 -37
  65. package/dist/esm/dockview/reactTabGroupChipPart.d.ts +0 -23
  66. package/dist/esm/dockview/reactTabGroupChipPart.js +0 -27
  67. package/dist/esm/dockview/reactWatermarkPart.d.ts +0 -18
  68. package/dist/esm/dockview/reactWatermarkPart.js +0 -38
  69. package/dist/esm/gridview/gridview.d.ts +0 -17
  70. package/dist/esm/gridview/gridview.js +0 -72
  71. package/dist/esm/gridview/view.d.ts +0 -9
  72. package/dist/esm/gridview/view.js +0 -19
  73. package/dist/esm/paneview/paneview.d.ts +0 -20
  74. package/dist/esm/paneview/paneview.js +0 -104
  75. package/dist/esm/paneview/view.d.ts +0 -19
  76. package/dist/esm/paneview/view.js +0 -35
  77. package/dist/esm/react.d.ts +0 -35
  78. package/dist/esm/react.js +0 -134
  79. package/dist/esm/splitview/splitview.d.ts +0 -17
  80. package/dist/esm/splitview/splitview.js +0 -72
  81. package/dist/esm/splitview/view.d.ts +0 -9
  82. package/dist/esm/splitview/view.js +0 -17
  83. package/dist/esm/svg.d.ts +0 -3
  84. package/dist/esm/svg.js +0 -7
  85. package/dist/esm/types.d.ts +0 -4
  86. package/dist/esm/types.js +0 -1
@@ -1,7 +1,13 @@
1
1
  /**
2
2
  * dockview
3
- * @version 6.6.0
3
+ * @version 7.0.2
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
7
- "use strict";var e=require("dockview-core"),t=require("react"),n=require("react-dom");const o=(e,n)=>{const[,o]=t.useState(0),r=t.useRef(e.componentProps);return t.useImperativeHandle(n,()=>({update:e=>{r.current=Object.assign(Object.assign({},r.current),e),o(e=>e+1)}}),[]),t.createElement(e.component,r.current)};o.displayName="DockviewReactJsBridge";const r=(()=>{let e=1;return{next:()=>`dockview_react_portal_key_${(e++).toString()}`}})(),a=t.createContext({});class i{constructor(e,t,n,o,r){this.parent=e,this.portalStore=t,this.component=n,this.parameters=o,this.context=r,this._initialProps={},this.disposed=!1,this.createPortal()}update(e){if(this.disposed)throw new Error("invalid operation: resource is already disposed");this.componentInstance?this.componentInstance.update(e):this._initialProps=Object.assign(Object.assign({},this._initialProps),e)}createPortal(){if(this.disposed)throw new Error("invalid operation: resource is already disposed");if(!c(this.component))throw new Error("Dockview: Only React.memo(...), React.ForwardRef(...) and functional components are accepted as components");const e=t.createElement(t.forwardRef(o),{component:this.component,componentProps:this.parameters,ref:e=>{this.componentInstance=e,Object.keys(this._initialProps).length>0&&(this.componentInstance.update(this._initialProps),this._initialProps={})}}),i=this.context?t.createElement(a.Provider,{value:this.context},e):e,s=n.createPortal(i,this.parent,r.next());this.ref={portal:s,disposable:this.portalStore.addPortal(s)}}dispose(){var e;null===(e=this.ref)||void 0===e||e.disposable.dispose(),this.disposed=!0}}const s=()=>{const[n,o]=t.useState([]);t.useDebugValue(`Portal count: ${n.length}`);return[n,t.useCallback(t=>{o(e=>[...e,t]);let n=!1;return e.DockviewDisposable.from(()=>{if(n)throw new Error("invalid operation: resource already disposed");n=!0,o(e=>e.filter(e=>e!==t))})},[])]};function c(e){return"function"==typeof e||!!(null==e?void 0:e.$$typeof)}class p{get element(){return this._element}constructor(t,n,o){this.id=t,this.component=n,this.reactPortalStore=o,this._onDidFocus=new e.DockviewEmitter,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new e.DockviewEmitter,this.onDidBlur=this._onDidBlur.event,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new i(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi})}update(e){var t;null===(t=this.part)||void 0===t||t.update({params:e.params})}layout(e,t){}dispose(){var e;this._onDidFocus.dispose(),this._onDidBlur.dispose(),null===(e=this.part)||void 0===e||e.dispose()}}class l{get element(){return this._element}constructor(e,t,n){this.id=e,this.component=t,this.reactPortalStore=n,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new i(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi,tabLocation:e.tabLocation})}update(e){var t;null===(t=this.part)||void 0===t||t.update({params:e.params})}layout(e,t){}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}class u{get element(){return this._element}constructor(e,t,n){this.id=e,this.component=t,this.reactPortalStore=n,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new i(this.element,this.reactPortalStore,this.component,{group:e.group,containerApi:e.containerApi})}focus(){}update(e){var t,n,o;this.parameters&&(this.parameters.params=e.params),null===(t=this.part)||void 0===t||t.update({params:null!==(o=null===(n=this.parameters)||void 0===n?void 0:n.params)&&void 0!==o?o:{}})}layout(e,t){}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}class d{get element(){return this._element}get part(){return this._part}constructor(t,n,o){this.component=t,this.reactPortalStore=n,this._group=o,this.mutableDisposable=new e.DockviewMutableDisposable,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(t){this.mutableDisposable.value=new e.DockviewCompositeDisposable(this._group.model.onDidAddPanel(()=>{this.updatePanels()}),this._group.model.onDidRemovePanel(()=>{this.updatePanels()}),this._group.model.onDidActivePanelChange(()=>{this.updateActivePanel()}),t.api.onDidActiveChange(()=>{this.updateGroupActive()}),t.api.onDidLocationChange(e=>{this.updateLocation(e.location)})),this._part=new i(this.element,this.reactPortalStore,this.component,{api:t.api,containerApi:t.containerApi,panels:this._group.model.panels,activePanel:this._group.model.activePanel,isGroupActive:this._group.api.isActive,group:this._group,headerPosition:this._group.model.headerPosition,location:t.api.location})}dispose(){var e;this.mutableDisposable.dispose(),null===(e=this._part)||void 0===e||e.dispose()}update(e){var t;null===(t=this._part)||void 0===t||t.update(e.params)}updatePanels(){this.update({params:{panels:this._group.model.panels}})}updateActivePanel(){this.update({params:{activePanel:this._group.model.activePanel}})}updateGroupActive(){this.update({params:{isGroupActive:this._group.api.isActive}})}updateLocation(e){this.update({params:{location:e}})}}class m{get element(){return this._element}constructor(e,t,n){this.id=e,this.component=t,this.reactPortalStore=n,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new i(this._element,this.reactPortalStore,this.component,e)}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}class h{get element(){return this._element}constructor(e,t){this.component=e,this.reactPortalStore=t,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.display="inline-flex"}init(e){this.part=new i(this._element,this.reactPortalStore,this.component,{tabGroup:e.tabGroup,api:e.api})}update(e){var t;null===(t=this.part)||void 0===t||t.update({tabGroup:e.tabGroup})}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}class f{get element(){return this._element}constructor(e,t){this.component=e,this.reactPortalStore=t,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.display="inline-flex"}init(e){this.part=new i(this._element,this.reactPortalStore,this.component,{group:e.group,api:e.api})}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}function v(e,t){return e?n=>new d(e,t,n):void 0}const P="props.defaultTabComponent";const w=t.forwardRef((n,o)=>{const r=t.useRef(null),a=t.useRef(void 0),[i,c]=s();t.useImperativeHandle(o,()=>r.current,[]);const d=t.useRef({});return t.useEffect(()=>{const t={};e.PROPERTY_KEYS_DOCKVIEW.forEach(e=>{const o=e,r=n[o];o in n&&r!==d.current[o]&&(t[o]=r)}),a.current&&a.current.updateOptions(t),d.current=n},e.PROPERTY_KEYS_DOCKVIEW.map(e=>n[e])),t.useEffect(()=>{var t;if(!r.current)return;const o=null!==(t=n.tabComponents)&&void 0!==t?t:{};n.defaultTabComponent&&(o[P]=n.defaultTabComponent);const i={createLeftHeaderActionComponent:v(n.leftHeaderActionsComponent,{addPortal:c}),createRightHeaderActionComponent:v(n.rightHeaderActionsComponent,{addPortal:c}),createPrefixHeaderActionComponent:v(n.prefixHeaderActionsComponent,{addPortal:c}),createComponent:e=>new p(e.id,n.components[e.name],{addPortal:c}),createTabComponent:e=>new l(e.id,o[e.name],{addPortal:c}),createWatermarkComponent:n.watermarkComponent?()=>new u("watermark",n.watermarkComponent,{addPortal:c}):void 0,defaultTabComponent:n.defaultTabComponent?P:void 0,createContextMenuItemComponent:e=>{if(e.component)return new m(e.id,e.component,{addPortal:c})}},s=function(t){return e.PROPERTY_KEYS_DOCKVIEW.reduce((e,n)=>(n in t&&(e[n]=t[n]),e),{})}(n);if(n.tabGroupChipComponent){const e=n.tabGroupChipComponent;s.createTabGroupChipComponent=()=>new h(e,{addPortal:c})}if(n.groupDragGhostComponent){const e=n.groupDragGhostComponent;s.createGroupDragGhostComponent=()=>new f(e,{addPortal:c})}const d=e.createDockview(r.current,Object.assign(Object.assign({},s),i)),{clientWidth:w,clientHeight:C}=r.current;return d.layout(w,C),n.onReady&&n.onReady({api:d}),a.current=d,()=>{a.current=void 0,d.dispose()}},[]),t.useEffect(()=>{if(!a.current)return()=>{};const e=a.current.onDidDrop(e=>{n.onDidDrop&&n.onDidDrop(e)});return()=>{e.dispose()}},[n.onDidDrop]),t.useEffect(()=>{if(!a.current)return()=>{};const e=a.current.onWillDrop(e=>{n.onWillDrop&&n.onWillDrop(e)});return()=>{e.dispose()}},[n.onWillDrop]),t.useEffect(()=>{a.current&&a.current.updateOptions({createTabGroupChipComponent:n.tabGroupChipComponent?()=>new h(n.tabGroupChipComponent,{addPortal:c}):void 0})},[n.tabGroupChipComponent]),t.useEffect(()=>{a.current&&a.current.updateOptions({createGroupDragGhostComponent:n.groupDragGhostComponent?()=>new f(n.groupDragGhostComponent,{addPortal:c}):void 0})},[n.groupDragGhostComponent]),t.useEffect(()=>{a.current&&a.current.updateOptions({createComponent:e=>new p(e.id,n.components[e.name],{addPortal:c})})},[n.components]),t.useEffect(()=>{var e;if(!a.current)return;const t=null!==(e=n.tabComponents)&&void 0!==e?e:{};n.defaultTabComponent&&(t[P]=n.defaultTabComponent),a.current.updateOptions({defaultTabComponent:n.defaultTabComponent?P:void 0,createTabComponent:e=>new l(e.id,t[e.name],{addPortal:c})})},[n.tabComponents,n.defaultTabComponent]),t.useEffect(()=>{a.current&&a.current.updateOptions({createWatermarkComponent:n.watermarkComponent?()=>new u("watermark",n.watermarkComponent,{addPortal:c}):void 0})},[n.watermarkComponent]),t.useEffect(()=>{a.current&&a.current.updateOptions({createRightHeaderActionComponent:v(n.rightHeaderActionsComponent,{addPortal:c})})},[n.rightHeaderActionsComponent]),t.useEffect(()=>{a.current&&a.current.updateOptions({createLeftHeaderActionComponent:v(n.leftHeaderActionsComponent,{addPortal:c})})},[n.leftHeaderActionsComponent]),t.useEffect(()=>{a.current&&a.current.updateOptions({createPrefixHeaderActionComponent:v(n.prefixHeaderActionsComponent,{addPortal:c})})},[n.prefixHeaderActionsComponent]),t.createElement("div",{style:{height:"100%",width:"100%"},ref:r},i)});w.displayName="DockviewComponent","function"==typeof SuppressedError&&SuppressedError;const C=()=>t.createElement("svg",{height:"11",width:"11",viewBox:"0 0 28 28","aria-hidden":"false",focusable:!1,className:"dv-svg"},t.createElement("path",{d:"M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z"}));class _ extends e.SplitviewPanel{constructor(e,t,n,o){super(e,t),this.reactComponent=n,this.reactPortalStore=o}getComponent(){var t,n;return new i(this.element,this.reactPortalStore,this.reactComponent,{params:null!==(n=null===(t=this._params)||void 0===t?void 0:t.params)&&void 0!==n?n:{},api:this.api,containerApi:new e.SplitviewApi(this._params.accessor)})}}const E=t.forwardRef((n,o)=>{const r=t.useRef(null),a=t.useRef(void 0),[i,c]=s();t.useImperativeHandle(o,()=>r.current,[]);const p=t.useRef({});return t.useEffect(()=>{const t={};e.PROPERTY_KEYS_SPLITVIEW.forEach(e=>{const o=e,r=n[o];o in n&&r!==p.current[o]&&(t[o]=r)}),a.current&&a.current.updateOptions(t),p.current=n},e.PROPERTY_KEYS_SPLITVIEW.map(e=>n[e])),t.useEffect(()=>{if(!r.current)return()=>{};const t={createComponent:e=>new _(e.id,e.name,n.components[e.name],{addPortal:c})},o=e.createSplitview(r.current,Object.assign(Object.assign({},function(t){return e.PROPERTY_KEYS_SPLITVIEW.reduce((e,n)=>(n in t&&(e[n]=t[n]),e),{})}(n)),t)),{clientWidth:i,clientHeight:s}=r.current;return o.layout(i,s),n.onReady&&n.onReady({api:o}),a.current=o,()=>{a.current=void 0,o.dispose()}},[]),t.useEffect(()=>{a.current&&a.current.updateOptions({createComponent:e=>new _(e.id,e.name,n.components[e.name],{addPortal:c})})},[n.components]),t.createElement("div",{style:{height:"100%",width:"100%"},ref:r},i)});E.displayName="SplitviewComponent";class g extends e.GridviewPanel{constructor(e,t,n,o){super(e,t),this.reactComponent=n,this.reactPortalStore=o}getComponent(){var t,n;return new i(this.element,this.reactPortalStore,this.reactComponent,{params:null!==(n=null===(t=this._params)||void 0===t?void 0:t.params)&&void 0!==n?n:{},api:this.api,containerApi:new e.GridviewApi(this._params.accessor)})}}const b=t.forwardRef((n,o)=>{const r=t.useRef(null),a=t.useRef(void 0),[i,c]=s();t.useImperativeHandle(o,()=>r.current,[]);const p=t.useRef({});return t.useEffect(()=>{const t={};e.PROPERTY_KEYS_GRIDVIEW.forEach(e=>{const o=e,r=n[o];o in n&&r!==p.current[o]&&(t[o]=r)}),a.current&&a.current.updateOptions(t),p.current=n},e.PROPERTY_KEYS_GRIDVIEW.map(e=>n[e])),t.useEffect(()=>{if(!r.current)return()=>{};const t={createComponent:e=>new g(e.id,e.name,n.components[e.name],{addPortal:c})},o=e.createGridview(r.current,Object.assign(Object.assign({},function(t){return e.PROPERTY_KEYS_GRIDVIEW.reduce((e,n)=>(n in t&&(e[n]=t[n]),e),{})}(n)),t)),{clientWidth:i,clientHeight:s}=r.current;return o.layout(i,s),n.onReady&&n.onReady({api:o}),a.current=o,()=>{a.current=void 0,o.dispose()}},[]),t.useEffect(()=>{a.current&&a.current.updateOptions({createComponent:e=>new g(e.id,e.name,n.components[e.name],{addPortal:c})})},[n.components]),t.createElement("div",{style:{height:"100%",width:"100%"},ref:r},i)});b.displayName="GridviewComponent";class D{get element(){return this._element}constructor(e,t,n){this.id=e,this.component=t,this.reactPortalStore=n,this._element=document.createElement("div"),this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new i(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,title:e.title,containerApi:e.containerApi})}toJSON(){return{id:this.id}}update(e){var t;null===(t=this.part)||void 0===t||t.update(e.params)}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}const R=t.forwardRef((n,o)=>{const r=t.useRef(null),a=t.useRef(void 0),[i,c]=s();t.useImperativeHandle(o,()=>r.current,[]);const p=t.useRef({});return t.useEffect(()=>{const t={};e.PROPERTY_KEYS_PANEVIEW.forEach(e=>{const o=e,r=n[o];o in n&&r!==p.current[o]&&(t[o]=r)}),a.current&&a.current.updateOptions(t),p.current=n},e.PROPERTY_KEYS_PANEVIEW.map(e=>n[e])),t.useEffect(()=>{var t;if(!r.current)return()=>{};const o=null!==(t=n.headerComponents)&&void 0!==t?t:{},i={createComponent:e=>new D(e.id,n.components[e.name],{addPortal:c}),createHeaderComponent:e=>new D(e.id,o[e.name],{addPortal:c})},s=e.createPaneview(r.current,Object.assign(Object.assign({},function(t){return e.PROPERTY_KEYS_PANEVIEW.reduce((e,n)=>(n in t&&(e[n]=t[n]),e),{})}(n)),i)),{clientWidth:p,clientHeight:l}=r.current;return s.layout(p,l),n.onReady&&n.onReady({api:s}),a.current=s,()=>{a.current=void 0,s.dispose()}},[]),t.useEffect(()=>{a.current&&a.current.updateOptions({createComponent:e=>new D(e.id,n.components[e.name],{addPortal:c})})},[n.components]),t.useEffect(()=>{var e;if(!a.current)return;const t=null!==(e=n.headerComponents)&&void 0!==e?e:{};a.current.updateOptions({createHeaderComponent:e=>new D(e.id,t[e.name],{addPortal:c})})},[n.headerComponents]),t.useEffect(()=>{if(!a.current)return()=>{};const e=a.current.onDidDrop(e=>{n.onDidDrop&&n.onDidDrop(e)});return()=>{e.dispose()}},[n.onDidDrop]),t.createElement("div",{style:{height:"100%",width:"100%"},ref:r},i)});R.displayName="PaneviewComponent",exports.DockviewDefaultTab=e=>{var{api:n,containerApi:o,params:r,hideClose:a,closeActionOverride:i,onPointerDown:s,onPointerUp:c,onPointerLeave:p,tabLocation:l}=e,u=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}(e,["api","containerApi","params","hideClose","closeActionOverride","onPointerDown","onPointerUp","onPointerLeave","tabLocation"]);const d=function(e){const[n,o]=t.useState(e.title);return t.useEffect(()=>{const t=e.onDidTitleChange(e=>{o(e.title)});return n!==e.title&&o(e.title),()=>{t.dispose()}},[e]),n}(n),m=t.useRef(!1),h=t.useCallback(e=>{e.preventDefault(),i?i():n.close()},[n,i]),f=t.useCallback(e=>{e.preventDefault()},[]),v=t.useCallback(e=>{m.current=1===e.button,null==s||s(e)},[s]),P=t.useCallback(e=>{m&&1===e.button&&!a&&(m.current=!1,h(e)),null==c||c(e)},[c,h,a]),w=t.useCallback(e=>{m.current=!1,null==p||p(e)},[p]);return t.createElement("div",Object.assign({"data-testid":"dockview-dv-default-tab"},u,{onPointerDown:v,onPointerUp:P,onPointerLeave:w,className:"dv-default-tab"}),t.createElement("span",{className:"dv-default-tab-content"},d),!a&&t.createElement("div",{className:"dv-default-tab-action",onPointerDown:f,onClick:h},t.createElement(C,null)))},exports.DockviewReact=w,exports.GridviewReact=b,exports.PaneviewReact=R,exports.ReactPart=i,exports.ReactPartContext=a,exports.SplitviewReact=E,exports.isReactComponent=c,exports.usePortalsLifecycle=s,Object.keys(e).forEach(function(t){"default"===t||Object.prototype.hasOwnProperty.call(exports,t)||Object.defineProperty(exports,t,{enumerable:!0,get:function(){return e[t]}})});
7
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("dockview-core");
8
+ /**
9
+ * dockview-modules
10
+ * @version 7.0.2
11
+ * @link https://github.com/mathuo/dockview
12
+ * @license MIT
13
+ */class t{constructor(e){this._host=e}attachToGroup(t){return new e.DockviewCompositeDisposable(t.model.onDidCreateTabGroup(e=>{this._host.fireDidCreateTabGroup(e)}),t.model.onDidDestroyTabGroup(e=>{this._host.fireDidDestroyTabGroup(e)}),t.model.onDidAddPanelToTabGroup(e=>{this._host.fireDidAddPanelToTabGroup(e)}),t.model.onDidRemovePanelFromTabGroup(e=>{this._host.fireDidRemovePanelFromTabGroup(e)}),t.model.onDidTabGroupChange(e=>{this._host.fireDidTabGroupChange(e)}),t.model.onDidTabGroupCollapsedChange(e=>{this._host.fireDidTabGroupCollapsedChange(e)}))}dispose(){}}const o=e.defineModule({name:"TabGroupChips",serviceKey:"tabGroupChipsService",create:e=>new t(e),init:(t,o)=>{const s=new Map;return new e.DockviewCompositeDisposable(t.onDidAddGroup(e=>{s.set(e,o.attachToGroup(e))}),t.onDidRemoveGroup(e=>{var t;null===(t=s.get(e))||void 0===t||t.dispose(),s.delete(e)}),{dispose:()=>{for(const e of s.values())e.dispose();s.clear()}})}});function s(t){if(!(t instanceof HTMLElement))return;const o=e.findRelativeZIndexParent(t);return(null==o?void 0:o.style.zIndex)?`calc(${o.style.zIndex} * 2)`:void 0}let n=0;const i=()=>"dv-ctx-menu-item-"+n++;function r(e){return"object"==typeof e}function a(e,t,o,s){const n=document.createElement("div");return n.className="dv-context-menu-item",n.setAttribute("role","menuitem"),s&&(n.classList.add("dv-context-menu-item--disabled"),n.setAttribute("aria-disabled","true")),n.textContent=e,s||n.addEventListener("click",()=>{o(),t()}),n}function c(){const e=document.createElement("div");return e.className="dv-context-menu-separator",e.setAttribute("role","separator"),e}function l(e){const t=document.createElement("div");t.className="dv-context-menu-rename";const o=document.createElement("input");return o.className="dv-context-menu-rename-input",o.type="text",o.placeholder="Name This Group",o.value=e.label,o.addEventListener("input",()=>{e.setLabel(o.value)}),o.addEventListener("keydown",e=>{"Escape"!==e.key&&"Enter"!==e.key&&e.stopPropagation()}),o.addEventListener("click",e=>{e.stopPropagation()}),t.appendChild(o),function(){if("undefined"==typeof window||!window.matchMedia)return!1;const e=window.matchMedia("(pointer: coarse)").matches,t=window.matchMedia("(pointer: fine)").matches;return e&&!t}()||requestAnimationFrame(()=>{o.focus(),o.select()}),t}function u(e,t){const o=document.createElement("div");if(o.className="dv-context-menu-color-picker",!t.enabled)return o;for(const s of t.entries()){const t=document.createElement("div");t.className="dv-context-menu-color-swatch",t.style.setProperty("--dv-tab-group-color",s.value),s.label&&(t.title=s.label),e.color===s.id&&t.classList.add("dv-context-menu-color-swatch--selected"),t.addEventListener("click",()=>{e.setColor(s.id)}),o.appendChild(t)}return o}class d{constructor(e){this.accessor=e}show(e,t,o){var n,l;if(!this.accessor.options.getTabContextMenuItems)return;const u=this.accessor.options.getTabContextMenuItems({panel:e,group:t,api:this.accessor.api,event:o});if(0===u.length)return;o.preventDefault();const d=this.accessor.getPopupServiceForGroup(t),p=()=>d.close(),h=document.createElement("div");h.className="dv-context-menu",h.setAttribute("role","menu");for(const o of u)if("separator"===o)h.appendChild(c());else if("close"===o)h.appendChild(a("Close",p,()=>e.api.close()));else if("closeOthers"===o)h.appendChild(a("Close Others",p,()=>{t.panels.filter(t=>t!==e).forEach(e=>e.api.close())}));else if("closeAll"===o)h.appendChild(a("Close All",p,()=>{[...t.panels].forEach(e=>e.api.close())}));else if(r(o)&&o.element)h.appendChild(o.element);else if(r(o)&&o.component){const s=null===(l=(n=this.accessor.options).createContextMenuItemComponent)||void 0===l?void 0:l.call(n,{id:i(),component:o.component});s&&(s.init({panel:e,group:t,api:this.accessor.api,close:p,componentProps:o.componentProps}),h.appendChild(s.element))}else r(o)&&o.label&&h.appendChild(a(o.label,p,()=>{var e;return null===(e=o.action)||void 0===e?void 0:e.call(o)},o.disabled));d.openPopover(h,{x:o.clientX,y:o.clientY,zIndex:s(o.target)})}showForChip(e,t,o){if(!this.accessor.options.getTabGroupChipContextMenuItems)return;const n=this.accessor.options.getTabGroupChipContextMenuItems({tabGroup:e,group:t,api:this.accessor.api,event:o});if(0===n.length)return;o.preventDefault();const i=this.accessor.getPopupServiceForGroup(t),d=()=>i.close(),p=document.createElement("div");p.className="dv-context-menu",p.setAttribute("role","menu");for(const t of n)"separator"===t?p.appendChild(c()):"rename"===t?p.appendChild(l(e)):"colorPicker"===t?p.appendChild(u(e,this.accessor.tabGroupColorPalette)):r(t)&&t.element?p.appendChild(t.element):r(t)&&t.label&&p.appendChild(a(t.label,d,()=>{var e;return null===(e=t.action)||void 0===e?void 0:e.call(t)},t.disabled));i.openPopover(p,{x:o.clientX,y:o.clientY,zIndex:s(o.target)})}}const p=e.defineModule({name:"ContextMenu",serviceKey:"contextMenuService",create:e=>new d(e)});class h{constructor(e){this.host=e}dispatchWillDragPanel(e){this.host.fireWillDragPanel(e)}dispatchWillDragGroup(e){this.host.fireWillDragGroup(e)}dispatchWillDrop(e){this.host.fireWillDrop(e)}dispatchWillShowOverlay(e){this.host.fireWillShowOverlay(e)}buildGroupDragGhost(e){const t=this.host.options.createGroupDragGhostComponent;if(!t)return;const o=t(e);return o.init({group:e,api:this.host.api}),{element:o.element,offsetX:30,offsetY:-10,dispose:o.dispose?()=>{var e;return null===(e=o.dispose)||void 0===e?void 0:e.call(o)}:void 0}}resolveOverlayModel(e,t){var o,s;return null===(s=(o=this.host.options).dropOverlayModel)||void 0===s?void 0:s.call(o,{location:e,group:t})}showPreviewOverlay(t,o){const s=t.model.contentDropTarget;return s.showOverlay(o),e.DockviewDisposable.from(()=>s.clearOverlay())}dispose(){}}const v=e.defineModule({name:"AdvancedDnD",serviceKey:"advancedDnDService",create:e=>new h(e)}),m="data-dv-kbd-moving";function f(e,t){const o=t.toLowerCase().split("+"),s=o[o.length-1],n=o.slice(0,-1);return e.ctrlKey===n.includes("ctrl")&&e.shiftKey===n.includes("shift")&&e.altKey===n.includes("alt")&&e.metaKey===(n.includes("meta")||n.includes("cmd"))&&e.key.toLowerCase()===s}function _(e){const t=e.keyboardNavigation;if(t)return!0===t?{}:t}const g={nextTab:"ctrl+]",prevTab:"ctrl+[",focusNextGroup:"f6",focusPrevGroup:"shift+f6",focusTabs:"ctrl+shift+\\"};class b extends e.DockviewCompositeDisposable{constructor(e){super(),this.host=e,this._focusWasInside=!1;const t=e.rootElement.ownerDocument,o=e=>this._onKeyDown(e);t.addEventListener("keydown",o,!0);const s=e=>{const t=e.target;t instanceof HTMLElement&&this.host.rootElement.contains(t)&&!t.closest('[role="dialog"]')&&(this._lastNonFloatFocus=t)};t.addEventListener("focusin",s,!0);const n=e=>this._onFloatingEscape(e);t.addEventListener("keydown",n,!1),this.addDisposables({dispose:()=>t.removeEventListener("keydown",o,!0)},{dispose:()=>t.removeEventListener("focusin",s,!0)},{dispose:()=>t.removeEventListener("keydown",n,!1)},e.onWillMutateLayout(e=>{"remove"===e.kind&&this._nav&&(this._focusWasInside=this._isFocusInside())}),e.onDidMutateLayout(e=>{"remove"===e.kind&&this._nav&&this._focusWasInside&&!this._isFocusInside()&&this._restoreFocus()}))}get _moveActive(){return this.host.rootElement.hasAttribute(m)}_isFocusInside(){const e=this.host.rootElement.ownerDocument.activeElement;return e instanceof Node&&this.host.rootElement.contains(e)}_onFloatingEscape(e){if(!this._nav||this._moveActive||e.defaultPrevented||"Escape"!==e.key)return;const t=e.target;if(!(t instanceof Element))return;const o=t.closest('[role="dialog"]');o&&this.host.rootElement.contains(o)&&(e.preventDefault(),e.stopPropagation(),this._returnFocusFromFloat())}_trapFloatTab(e){const t=e.target;if(!(t instanceof Element))return!1;const o=t.closest('[role="dialog"]');if(!o||!this.host.rootElement.contains(o))return!1;e.preventDefault();const s=this._tabbables(o);if(0===s.length)return!0;const n=o.ownerDocument.activeElement,i=n instanceof HTMLElement?s.indexOf(n):-1,r=s.length;return s[-1===i?e.shiftKey?r-1:0:(i+(e.shiftKey?-1:1)+r)%r].focus(),!0}_tabbables(e){const t=e.querySelectorAll("a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]");return Array.from(t).filter(e=>e.tabIndex>=0)}_returnFocusFromFloat(){var e;const t=this._lastNonFloatFocus;t&&t.isConnected&&this.host.rootElement.contains(t)&&!t.closest('[role="dialog"]')?t.focus():null===(e=this.host.groups.find(e=>"grid"===e.api.location.type))||void 0===e||e.model.focusContent()}get _nav(){return _(this.host.options)}get _keymap(){var e;return Object.assign(Object.assign({},g),null===(e=this._nav)||void 0===e?void 0:e.keymap)}_onKeyDown(e){if(!this._nav)return;if(this._moveActive)return;if(!(e.target instanceof Node&&this.host.rootElement.contains(e.target)))return;if("Tab"===e.key&&this._trapFloatTab(e))return;const t=this._keymap;f(e,t.nextTab)?(this._consume(e),this._switchTab(!1)):f(e,t.prevTab)?(this._consume(e),this._switchTab(!0)):f(e,t.focusNextGroup)?(this._consume(e),this._cycleGroup(!1)):f(e,t.focusPrevGroup)?(this._consume(e),this._cycleGroup(!0)):f(e,t.focusTabs)&&(this._consume(e),this._focusTabs())}_focusTabs(){var e;null===(e=this.host.activeGroup)||void 0===e||e.model.focusActiveTab()}_switchTab(e){const t=this.host.activeGroup;t&&(e?t.model.moveToPrevious():t.model.moveToNext(),t.model.focusContent())}_cycleGroup(e){const t=this.host.activeGroup,o=t?this.host.adjacentGroup(t,e):this.host.groups[0];this._focusGroup(o)}_focusGroup(e){e&&(e.api.setActive(),e.model.focusContent())}_restoreFocus(){var e;null===(e=this.host.activeGroup)||void 0===e||e.model.focusContent()}_consume(e){e.preventDefault(),e.stopPropagation()}}const y=e.defineModule({name:"Accessibility",serviceKey:"accessibilityService",create:e=>new b(e)}),w={ArrowLeft:"left",ArrowRight:"right",ArrowUp:"top",ArrowDown:"bottom"},D="ctrl+shift+arrowleft",G="ctrl+shift+arrowright",C="ctrl+shift+arrowup",k="ctrl+shift+arrowdown",x="ctrl+m";class E extends e.DockviewCompositeDisposable{constructor(e){super(),this.host=e,this._move=null;const t=e.rootElement.ownerDocument,o=e=>this._onKeyDown(e);t.addEventListener("keydown",o,!0),this.addDisposables({dispose:()=>this._exit()},{dispose:()=>t.removeEventListener("keydown",o,!0)})}get _enabled(){return!!_(this.host.options)}get _keymap(){var e,t,o,s,n,i,r;const a=null!==(t=null===(e=_(this.host.options))||void 0===e?void 0:e.keymap)&&void 0!==t?t:{};return{focusGroupLeft:null!==(o=a.focusGroupLeft)&&void 0!==o?o:D,focusGroupRight:null!==(s=a.focusGroupRight)&&void 0!==s?s:G,focusGroupUp:null!==(n=a.focusGroupUp)&&void 0!==n?n:C,focusGroupDown:null!==(i=a.focusGroupDown)&&void 0!==i?i:k,dock:null!==(r=a.dock)&&void 0!==r?r:x}}get _messages(){return e.resolveMessages(this.host.options.messages)}_onKeyDown(e){if(!this._enabled)return;if(this._move)return void this._onMoveKey(e);if(!(e.target instanceof Node&&this.host.rootElement.contains(e.target)))return;const t=this._keymap;f(e,t.dock)?this._enterMoveMode(e):f(e,t.focusGroupLeft)?(this._consume(e),this._focusGroupInDirection("left")):f(e,t.focusGroupRight)?(this._consume(e),this._focusGroupInDirection("right")):f(e,t.focusGroupUp)?(this._consume(e),this._focusGroupInDirection("up")):f(e,t.focusGroupDown)&&(this._consume(e),this._focusGroupInDirection("down"))}_focusGroupInDirection(e){const t=this.host.activeGroup;t&&this._focusGroup(this.host.adjacentGroupInDirection(t,e))}_focusGroup(e){e&&(e.api.setActive(),e.model.focusContent())}_restoreFocus(){var e;null===(e=this.host.activeGroup)||void 0===e||e.model.focusContent()}_enterMoveMode(e){const t=this.host.activePanel,o=this.host.groups;if(!t||0===o.length)return;e.preventDefault(),e.stopPropagation();const s=Math.max(0,o.indexOf(t.group));this._move={source:t,groups:o,groupIndex:s,phase:"target",position:"center"},this.host.rootElement.setAttribute(m,""),this._render()}_onMoveKey(e){const t=this._move;if("Escape"===e.key)return this._consume(e),void("edge"===t.phase?(t.phase="target",t.position="center",this._render()):(this._exit(),this.host.announce(this._messages.moveCancelled()),this._restoreFocus()));if("Enter"===e.key)return this._consume(e),void("target"===t.phase?(t.phase="edge",t.position="center",this._render()):this._commit());if("target"===t.phase){const o=t.groups.length;return void("ArrowRight"===e.key||"ArrowDown"===e.key?(this._consume(e),t.groupIndex=(t.groupIndex+1)%o,this._render()):"ArrowLeft"!==e.key&&"ArrowUp"!==e.key||(this._consume(e),t.groupIndex=(t.groupIndex-1+o)%o,this._render()))}const o=w[e.key];o?(this._consume(e),t.position=o,this._render()):" "!==e.key&&"c"!==e.key&&"C"!==e.key||(this._consume(e),t.position="center",this._render())}_render(){var e,t;const o=this._move,s=o.groups[o.groupIndex];this._clearPreview(),this._preview=this.host.showDropPreview(s,o.position);const n=null!==(t=null===(e=s.activePanel)||void 0===e?void 0:e.title)&&void 0!==t?t:s.id,i=this._messages;"target"===o.phase?this.host.announce(i.movePickTarget(this._label(o.source),n,o.groupIndex+1,o.groups.length)):this.host.announce(i.movePickEdge(o.position,n))}_commit(){var e,t;const o=this._move,s=o.groups[o.groupIndex],n=o.position,i=o.source,r=null!==(t=null===(e=s.activePanel)||void 0===e?void 0:e.title)&&void 0!==t?t:s.id,a=this._messages;this._exit();try{this.host.dockPanel(i,s,n),this.host.announce(a.moveCommitted(this._label(i),r,n))}catch(e){this.host.announce(a.moveNotAllowed())}this._restoreFocus()}_exit(){this._clearPreview(),this._move=null,this.host.rootElement.removeAttribute(m)}_clearPreview(){var e;null===(e=this._preview)||void 0===e||e.dispose(),this._preview=void 0}_consume(e){e.preventDefault(),e.stopPropagation()}_label(e){var t;return null!==(t=e.title)&&void 0!==t?t:e.id}}e.defineModule({name:"KeyboardDocking",serviceKey:"keyboardDockingService",create:e=>new E(e),dependsOn:[v,e.LiveRegionModule]});const T=[o,p,v,y];e.registerModules(T),e.markDockviewPackageLoaded(),Object.keys(e).forEach(function(t){"default"===t||Object.prototype.hasOwnProperty.call(exports,t)||Object.defineProperty(exports,t,{enumerable:!0,get:function(){return e[t]}})});
@@ -1,7 +1,13 @@
1
1
  /**
2
2
  * dockview
3
- * @version 6.6.0
3
+ * @version 7.0.2
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
7
- import{DockviewDisposable as e,DockviewEmitter as t,DockviewMutableDisposable as n,DockviewCompositeDisposable as o,PROPERTY_KEYS_DOCKVIEW as r,createDockview as a,SplitviewPanel as i,SplitviewApi as s,PROPERTY_KEYS_SPLITVIEW as c,createSplitview as p,GridviewPanel as l,GridviewApi as d,PROPERTY_KEYS_GRIDVIEW as u,createGridview as m,PROPERTY_KEYS_PANEVIEW as h,createPaneview as f}from"dockview-core";export*from"dockview-core";import v from"react";import C from"react-dom";const P=(e,t)=>{const[,n]=v.useState(0),o=v.useRef(e.componentProps);return v.useImperativeHandle(t,()=>({update:e=>{o.current=Object.assign(Object.assign({},o.current),e),n(e=>e+1)}}),[]),v.createElement(e.component,o.current)};P.displayName="DockviewReactJsBridge";const g=(()=>{let e=1;return{next:()=>`dockview_react_portal_key_${(e++).toString()}`}})(),w=v.createContext({});class _{constructor(e,t,n,o,r){this.parent=e,this.portalStore=t,this.component=n,this.parameters=o,this.context=r,this._initialProps={},this.disposed=!1,this.createPortal()}update(e){if(this.disposed)throw new Error("invalid operation: resource is already disposed");this.componentInstance?this.componentInstance.update(e):this._initialProps=Object.assign(Object.assign({},this._initialProps),e)}createPortal(){if(this.disposed)throw new Error("invalid operation: resource is already disposed");if(!y(this.component))throw new Error("Dockview: Only React.memo(...), React.ForwardRef(...) and functional components are accepted as components");const e=v.createElement(v.forwardRef(P),{component:this.component,componentProps:this.parameters,ref:e=>{this.componentInstance=e,Object.keys(this._initialProps).length>0&&(this.componentInstance.update(this._initialProps),this._initialProps={})}}),t=this.context?v.createElement(w.Provider,{value:this.context},e):e,n=C.createPortal(t,this.parent,g.next());this.ref={portal:n,disposable:this.portalStore.addPortal(n)}}dispose(){var e;null===(e=this.ref)||void 0===e||e.disposable.dispose(),this.disposed=!0}}const b=()=>{const[t,n]=v.useState([]);v.useDebugValue(`Portal count: ${t.length}`);return[t,v.useCallback(t=>{n(e=>[...e,t]);let o=!1;return e.from(()=>{if(o)throw new Error("invalid operation: resource already disposed");o=!0,n(e=>e.filter(e=>e!==t))})},[])]};function y(e){return"function"==typeof e||!!(null==e?void 0:e.$$typeof)}class E{get element(){return this._element}constructor(e,n,o){this.id=e,this.component=n,this.reactPortalStore=o,this._onDidFocus=new t,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new t,this.onDidBlur=this._onDidBlur.event,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new _(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi})}update(e){var t;null===(t=this.part)||void 0===t||t.update({params:e.params})}layout(e,t){}dispose(){var e;this._onDidFocus.dispose(),this._onDidBlur.dispose(),null===(e=this.part)||void 0===e||e.dispose()}}class D{get element(){return this._element}constructor(e,t,n){this.id=e,this.component=t,this.reactPortalStore=n,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new _(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi,tabLocation:e.tabLocation})}update(e){var t;null===(t=this.part)||void 0===t||t.update({params:e.params})}layout(e,t){}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}class O{get element(){return this._element}constructor(e,t,n){this.id=e,this.component=t,this.reactPortalStore=n,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new _(this.element,this.reactPortalStore,this.component,{group:e.group,containerApi:e.containerApi})}focus(){}update(e){var t,n,o;this.parameters&&(this.parameters.params=e.params),null===(t=this.part)||void 0===t||t.update({params:null!==(o=null===(n=this.parameters)||void 0===n?void 0:n.params)&&void 0!==o?o:{}})}layout(e,t){}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}class A{get element(){return this._element}get part(){return this._part}constructor(e,t,o){this.component=e,this.reactPortalStore=t,this._group=o,this.mutableDisposable=new n,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.mutableDisposable.value=new o(this._group.model.onDidAddPanel(()=>{this.updatePanels()}),this._group.model.onDidRemovePanel(()=>{this.updatePanels()}),this._group.model.onDidActivePanelChange(()=>{this.updateActivePanel()}),e.api.onDidActiveChange(()=>{this.updateGroupActive()}),e.api.onDidLocationChange(e=>{this.updateLocation(e.location)})),this._part=new _(this.element,this.reactPortalStore,this.component,{api:e.api,containerApi:e.containerApi,panels:this._group.model.panels,activePanel:this._group.model.activePanel,isGroupActive:this._group.api.isActive,group:this._group,headerPosition:this._group.model.headerPosition,location:e.api.location})}dispose(){var e;this.mutableDisposable.dispose(),null===(e=this._part)||void 0===e||e.dispose()}update(e){var t;null===(t=this._part)||void 0===t||t.update(e.params)}updatePanels(){this.update({params:{panels:this._group.model.panels}})}updateActivePanel(){this.update({params:{activePanel:this._group.model.activePanel}})}updateGroupActive(){this.update({params:{isGroupActive:this._group.api.isActive}})}updateLocation(e){this.update({params:{location:e}})}}class R{get element(){return this._element}constructor(e,t,n){this.id=e,this.component=t,this.reactPortalStore=n,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new _(this._element,this.reactPortalStore,this.component,e)}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}class S{get element(){return this._element}constructor(e,t){this.component=e,this.reactPortalStore=t,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.display="inline-flex"}init(e){this.part=new _(this._element,this.reactPortalStore,this.component,{tabGroup:e.tabGroup,api:e.api})}update(e){var t;null===(t=this.part)||void 0===t||t.update({tabGroup:e.tabGroup})}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}class H{get element(){return this._element}constructor(e,t){this.component=e,this.reactPortalStore=t,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.display="inline-flex"}init(e){this.part=new _(this._element,this.reactPortalStore,this.component,{group:e.group,api:e.api})}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}function k(e,t){return e?n=>new A(e,t,n):void 0}const G="props.defaultTabComponent";const L=v.forwardRef((e,t)=>{const n=v.useRef(null),o=v.useRef(void 0),[i,s]=b();v.useImperativeHandle(t,()=>n.current,[]);const c=v.useRef({});return v.useEffect(()=>{const t={};r.forEach(n=>{const o=n,r=e[o];o in e&&r!==c.current[o]&&(t[o]=r)}),o.current&&o.current.updateOptions(t),c.current=e},r.map(t=>e[t])),v.useEffect(()=>{var t;if(!n.current)return;const i=null!==(t=e.tabComponents)&&void 0!==t?t:{};e.defaultTabComponent&&(i[G]=e.defaultTabComponent);const c={createLeftHeaderActionComponent:k(e.leftHeaderActionsComponent,{addPortal:s}),createRightHeaderActionComponent:k(e.rightHeaderActionsComponent,{addPortal:s}),createPrefixHeaderActionComponent:k(e.prefixHeaderActionsComponent,{addPortal:s}),createComponent:t=>new E(t.id,e.components[t.name],{addPortal:s}),createTabComponent:e=>new D(e.id,i[e.name],{addPortal:s}),createWatermarkComponent:e.watermarkComponent?()=>new O("watermark",e.watermarkComponent,{addPortal:s}):void 0,defaultTabComponent:e.defaultTabComponent?G:void 0,createContextMenuItemComponent:e=>{if(e.component)return new R(e.id,e.component,{addPortal:s})}},p=function(e){return r.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{})}(e);if(e.tabGroupChipComponent){const t=e.tabGroupChipComponent;p.createTabGroupChipComponent=()=>new S(t,{addPortal:s})}if(e.groupDragGhostComponent){const t=e.groupDragGhostComponent;p.createGroupDragGhostComponent=()=>new H(t,{addPortal:s})}const l=a(n.current,Object.assign(Object.assign({},p),c)),{clientWidth:d,clientHeight:u}=n.current;return l.layout(d,u),e.onReady&&e.onReady({api:l}),o.current=l,()=>{o.current=void 0,l.dispose()}},[]),v.useEffect(()=>{if(!o.current)return()=>{};const t=o.current.onDidDrop(t=>{e.onDidDrop&&e.onDidDrop(t)});return()=>{t.dispose()}},[e.onDidDrop]),v.useEffect(()=>{if(!o.current)return()=>{};const t=o.current.onWillDrop(t=>{e.onWillDrop&&e.onWillDrop(t)});return()=>{t.dispose()}},[e.onWillDrop]),v.useEffect(()=>{o.current&&o.current.updateOptions({createTabGroupChipComponent:e.tabGroupChipComponent?()=>new S(e.tabGroupChipComponent,{addPortal:s}):void 0})},[e.tabGroupChipComponent]),v.useEffect(()=>{o.current&&o.current.updateOptions({createGroupDragGhostComponent:e.groupDragGhostComponent?()=>new H(e.groupDragGhostComponent,{addPortal:s}):void 0})},[e.groupDragGhostComponent]),v.useEffect(()=>{o.current&&o.current.updateOptions({createComponent:t=>new E(t.id,e.components[t.name],{addPortal:s})})},[e.components]),v.useEffect(()=>{var t;if(!o.current)return;const n=null!==(t=e.tabComponents)&&void 0!==t?t:{};e.defaultTabComponent&&(n[G]=e.defaultTabComponent),o.current.updateOptions({defaultTabComponent:e.defaultTabComponent?G:void 0,createTabComponent:e=>new D(e.id,n[e.name],{addPortal:s})})},[e.tabComponents,e.defaultTabComponent]),v.useEffect(()=>{o.current&&o.current.updateOptions({createWatermarkComponent:e.watermarkComponent?()=>new O("watermark",e.watermarkComponent,{addPortal:s}):void 0})},[e.watermarkComponent]),v.useEffect(()=>{o.current&&o.current.updateOptions({createRightHeaderActionComponent:k(e.rightHeaderActionsComponent,{addPortal:s})})},[e.rightHeaderActionsComponent]),v.useEffect(()=>{o.current&&o.current.updateOptions({createLeftHeaderActionComponent:k(e.leftHeaderActionsComponent,{addPortal:s})})},[e.leftHeaderActionsComponent]),v.useEffect(()=>{o.current&&o.current.updateOptions({createPrefixHeaderActionComponent:k(e.prefixHeaderActionsComponent,{addPortal:s})})},[e.prefixHeaderActionsComponent]),v.createElement("div",{style:{height:"100%",width:"100%"},ref:n},i)});L.displayName="DockviewComponent","function"==typeof SuppressedError&&SuppressedError;const x=()=>v.createElement("svg",{height:"11",width:"11",viewBox:"0 0 28 28","aria-hidden":"false",focusable:!1,className:"dv-svg"},v.createElement("path",{d:"M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z"}));const j=e=>{var{api:t,containerApi:n,params:o,hideClose:r,closeActionOverride:a,onPointerDown:i,onPointerUp:s,onPointerLeave:c,tabLocation:p}=e,l=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}(e,["api","containerApi","params","hideClose","closeActionOverride","onPointerDown","onPointerUp","onPointerLeave","tabLocation"]);const d=function(e){const[t,n]=v.useState(e.title);return v.useEffect(()=>{const o=e.onDidTitleChange(e=>{n(e.title)});return t!==e.title&&n(e.title),()=>{o.dispose()}},[e]),t}(t),u=v.useRef(!1),m=v.useCallback(e=>{e.preventDefault(),a?a():t.close()},[t,a]),h=v.useCallback(e=>{e.preventDefault()},[]),f=v.useCallback(e=>{u.current=1===e.button,null==i||i(e)},[i]),C=v.useCallback(e=>{u&&1===e.button&&!r&&(u.current=!1,m(e)),null==s||s(e)},[s,m,r]),P=v.useCallback(e=>{u.current=!1,null==c||c(e)},[c]);return v.createElement("div",Object.assign({"data-testid":"dockview-dv-default-tab"},l,{onPointerDown:f,onPointerUp:C,onPointerLeave:P,className:"dv-default-tab"}),v.createElement("span",{className:"dv-default-tab-content"},d),!r&&v.createElement("div",{className:"dv-default-tab-action",onPointerDown:h,onClick:m},v.createElement(x,null)))};class N extends i{constructor(e,t,n,o){super(e,t),this.reactComponent=n,this.reactPortalStore=o}getComponent(){var e,t;return new _(this.element,this.reactPortalStore,this.reactComponent,{params:null!==(t=null===(e=this._params)||void 0===e?void 0:e.params)&&void 0!==t?t:{},api:this.api,containerApi:new s(this._params.accessor)})}}const T=v.forwardRef((e,t)=>{const n=v.useRef(null),o=v.useRef(void 0),[r,a]=b();v.useImperativeHandle(t,()=>n.current,[]);const i=v.useRef({});return v.useEffect(()=>{const t={};c.forEach(n=>{const o=n,r=e[o];o in e&&r!==i.current[o]&&(t[o]=r)}),o.current&&o.current.updateOptions(t),i.current=e},c.map(t=>e[t])),v.useEffect(()=>{if(!n.current)return()=>{};const t={createComponent:t=>new N(t.id,t.name,e.components[t.name],{addPortal:a})},r=p(n.current,Object.assign(Object.assign({},function(e){return c.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{})}(e)),t)),{clientWidth:i,clientHeight:s}=n.current;return r.layout(i,s),e.onReady&&e.onReady({api:r}),o.current=r,()=>{o.current=void 0,r.dispose()}},[]),v.useEffect(()=>{o.current&&o.current.updateOptions({createComponent:t=>new N(t.id,t.name,e.components[t.name],{addPortal:a})})},[e.components]),v.createElement("div",{style:{height:"100%",width:"100%"},ref:n},r)});T.displayName="SplitviewComponent";class I extends l{constructor(e,t,n,o){super(e,t),this.reactComponent=n,this.reactPortalStore=o}getComponent(){var e,t;return new _(this.element,this.reactPortalStore,this.reactComponent,{params:null!==(t=null===(e=this._params)||void 0===e?void 0:e.params)&&void 0!==t?t:{},api:this.api,containerApi:new d(this._params.accessor)})}}const W=v.forwardRef((e,t)=>{const n=v.useRef(null),o=v.useRef(void 0),[r,a]=b();v.useImperativeHandle(t,()=>n.current,[]);const i=v.useRef({});return v.useEffect(()=>{const t={};u.forEach(n=>{const o=n,r=e[o];o in e&&r!==i.current[o]&&(t[o]=r)}),o.current&&o.current.updateOptions(t),i.current=e},u.map(t=>e[t])),v.useEffect(()=>{if(!n.current)return()=>{};const t={createComponent:t=>new I(t.id,t.name,e.components[t.name],{addPortal:a})},r=m(n.current,Object.assign(Object.assign({},function(e){return u.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{})}(e)),t)),{clientWidth:i,clientHeight:s}=n.current;return r.layout(i,s),e.onReady&&e.onReady({api:r}),o.current=r,()=>{o.current=void 0,r.dispose()}},[]),v.useEffect(()=>{o.current&&o.current.updateOptions({createComponent:t=>new I(t.id,t.name,e.components[t.name],{addPortal:a})})},[e.components]),v.createElement("div",{style:{height:"100%",width:"100%"},ref:n},r)});W.displayName="GridviewComponent";class B{get element(){return this._element}constructor(e,t,n){this.id=e,this.component=t,this.reactPortalStore=n,this._element=document.createElement("div"),this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new _(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,title:e.title,containerApi:e.containerApi})}toJSON(){return{id:this.id}}update(e){var t;null===(t=this.part)||void 0===t||t.update(e.params)}dispose(){var e;null===(e=this.part)||void 0===e||e.dispose()}}const F=v.forwardRef((e,t)=>{const n=v.useRef(null),o=v.useRef(void 0),[r,a]=b();v.useImperativeHandle(t,()=>n.current,[]);const i=v.useRef({});return v.useEffect(()=>{const t={};h.forEach(n=>{const o=n,r=e[o];o in e&&r!==i.current[o]&&(t[o]=r)}),o.current&&o.current.updateOptions(t),i.current=e},h.map(t=>e[t])),v.useEffect(()=>{var t;if(!n.current)return()=>{};const r=null!==(t=e.headerComponents)&&void 0!==t?t:{},i={createComponent:t=>new B(t.id,e.components[t.name],{addPortal:a}),createHeaderComponent:e=>new B(e.id,r[e.name],{addPortal:a})},s=f(n.current,Object.assign(Object.assign({},function(e){return h.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{})}(e)),i)),{clientWidth:c,clientHeight:p}=n.current;return s.layout(c,p),e.onReady&&e.onReady({api:s}),o.current=s,()=>{o.current=void 0,s.dispose()}},[]),v.useEffect(()=>{o.current&&o.current.updateOptions({createComponent:t=>new B(t.id,e.components[t.name],{addPortal:a})})},[e.components]),v.useEffect(()=>{var t;if(!o.current)return;const n=null!==(t=e.headerComponents)&&void 0!==t?t:{};o.current.updateOptions({createHeaderComponent:e=>new B(e.id,n[e.name],{addPortal:a})})},[e.headerComponents]),v.useEffect(()=>{if(!o.current)return()=>{};const t=o.current.onDidDrop(t=>{e.onDidDrop&&e.onDidDrop(t)});return()=>{t.dispose()}},[e.onDidDrop]),v.createElement("div",{style:{height:"100%",width:"100%"},ref:n},r)});F.displayName="PaneviewComponent";export{j as DockviewDefaultTab,L as DockviewReact,W as GridviewReact,F as PaneviewReact,_ as ReactPart,w as ReactPartContext,T as SplitviewReact,y as isReactComponent,b as usePortalsLifecycle};
7
+ import{defineModule as e,DockviewCompositeDisposable as t,DockviewDisposable as o,findRelativeZIndexParent as s,LiveRegionModule as n,resolveMessages as i,registerModules as r,markDockviewPackageLoaded as a}from"dockview-core";export*from"dockview-core";
8
+ /**
9
+ * dockview-modules
10
+ * @version 7.0.2
11
+ * @link https://github.com/mathuo/dockview
12
+ * @license MIT
13
+ */class c{constructor(e){this._host=e}attachToGroup(e){return new t(e.model.onDidCreateTabGroup(e=>{this._host.fireDidCreateTabGroup(e)}),e.model.onDidDestroyTabGroup(e=>{this._host.fireDidDestroyTabGroup(e)}),e.model.onDidAddPanelToTabGroup(e=>{this._host.fireDidAddPanelToTabGroup(e)}),e.model.onDidRemovePanelFromTabGroup(e=>{this._host.fireDidRemovePanelFromTabGroup(e)}),e.model.onDidTabGroupChange(e=>{this._host.fireDidTabGroupChange(e)}),e.model.onDidTabGroupCollapsedChange(e=>{this._host.fireDidTabGroupCollapsedChange(e)}))}dispose(){}}const l=e({name:"TabGroupChips",serviceKey:"tabGroupChipsService",create:e=>new c(e),init:(e,o)=>{const s=new Map;return new t(e.onDidAddGroup(e=>{s.set(e,o.attachToGroup(e))}),e.onDidRemoveGroup(e=>{var t;null===(t=s.get(e))||void 0===t||t.dispose(),s.delete(e)}),{dispose:()=>{for(const e of s.values())e.dispose();s.clear()}})}});function u(e){if(!(e instanceof HTMLElement))return;const t=s(e);return(null==t?void 0:t.style.zIndex)?`calc(${t.style.zIndex} * 2)`:void 0}let d=0;const h=()=>"dv-ctx-menu-item-"+d++;function p(e){return"object"==typeof e}function v(e,t,o,s){const n=document.createElement("div");return n.className="dv-context-menu-item",n.setAttribute("role","menuitem"),s&&(n.classList.add("dv-context-menu-item--disabled"),n.setAttribute("aria-disabled","true")),n.textContent=e,s||n.addEventListener("click",()=>{o(),t()}),n}function m(){const e=document.createElement("div");return e.className="dv-context-menu-separator",e.setAttribute("role","separator"),e}function f(e){const t=document.createElement("div");t.className="dv-context-menu-rename";const o=document.createElement("input");return o.className="dv-context-menu-rename-input",o.type="text",o.placeholder="Name This Group",o.value=e.label,o.addEventListener("input",()=>{e.setLabel(o.value)}),o.addEventListener("keydown",e=>{"Escape"!==e.key&&"Enter"!==e.key&&e.stopPropagation()}),o.addEventListener("click",e=>{e.stopPropagation()}),t.appendChild(o),function(){if("undefined"==typeof window||!window.matchMedia)return!1;const e=window.matchMedia("(pointer: coarse)").matches,t=window.matchMedia("(pointer: fine)").matches;return e&&!t}()||requestAnimationFrame(()=>{o.focus(),o.select()}),t}function _(e,t){const o=document.createElement("div");if(o.className="dv-context-menu-color-picker",!t.enabled)return o;for(const s of t.entries()){const t=document.createElement("div");t.className="dv-context-menu-color-swatch",t.style.setProperty("--dv-tab-group-color",s.value),s.label&&(t.title=s.label),e.color===s.id&&t.classList.add("dv-context-menu-color-swatch--selected"),t.addEventListener("click",()=>{e.setColor(s.id)}),o.appendChild(t)}return o}class g{constructor(e){this.accessor=e}show(e,t,o){var s,n;if(!this.accessor.options.getTabContextMenuItems)return;const i=this.accessor.options.getTabContextMenuItems({panel:e,group:t,api:this.accessor.api,event:o});if(0===i.length)return;o.preventDefault();const r=this.accessor.getPopupServiceForGroup(t),a=()=>r.close(),c=document.createElement("div");c.className="dv-context-menu",c.setAttribute("role","menu");for(const o of i)if("separator"===o)c.appendChild(m());else if("close"===o)c.appendChild(v("Close",a,()=>e.api.close()));else if("closeOthers"===o)c.appendChild(v("Close Others",a,()=>{t.panels.filter(t=>t!==e).forEach(e=>e.api.close())}));else if("closeAll"===o)c.appendChild(v("Close All",a,()=>{[...t.panels].forEach(e=>e.api.close())}));else if(p(o)&&o.element)c.appendChild(o.element);else if(p(o)&&o.component){const i=null===(n=(s=this.accessor.options).createContextMenuItemComponent)||void 0===n?void 0:n.call(s,{id:h(),component:o.component});i&&(i.init({panel:e,group:t,api:this.accessor.api,close:a,componentProps:o.componentProps}),c.appendChild(i.element))}else p(o)&&o.label&&c.appendChild(v(o.label,a,()=>{var e;return null===(e=o.action)||void 0===e?void 0:e.call(o)},o.disabled));r.openPopover(c,{x:o.clientX,y:o.clientY,zIndex:u(o.target)})}showForChip(e,t,o){if(!this.accessor.options.getTabGroupChipContextMenuItems)return;const s=this.accessor.options.getTabGroupChipContextMenuItems({tabGroup:e,group:t,api:this.accessor.api,event:o});if(0===s.length)return;o.preventDefault();const n=this.accessor.getPopupServiceForGroup(t),i=()=>n.close(),r=document.createElement("div");r.className="dv-context-menu",r.setAttribute("role","menu");for(const t of s)"separator"===t?r.appendChild(m()):"rename"===t?r.appendChild(f(e)):"colorPicker"===t?r.appendChild(_(e,this.accessor.tabGroupColorPalette)):p(t)&&t.element?r.appendChild(t.element):p(t)&&t.label&&r.appendChild(v(t.label,i,()=>{var e;return null===(e=t.action)||void 0===e?void 0:e.call(t)},t.disabled));n.openPopover(r,{x:o.clientX,y:o.clientY,zIndex:u(o.target)})}}const b=e({name:"ContextMenu",serviceKey:"contextMenuService",create:e=>new g(e)});class y{constructor(e){this.host=e}dispatchWillDragPanel(e){this.host.fireWillDragPanel(e)}dispatchWillDragGroup(e){this.host.fireWillDragGroup(e)}dispatchWillDrop(e){this.host.fireWillDrop(e)}dispatchWillShowOverlay(e){this.host.fireWillShowOverlay(e)}buildGroupDragGhost(e){const t=this.host.options.createGroupDragGhostComponent;if(!t)return;const o=t(e);return o.init({group:e,api:this.host.api}),{element:o.element,offsetX:30,offsetY:-10,dispose:o.dispose?()=>{var e;return null===(e=o.dispose)||void 0===e?void 0:e.call(o)}:void 0}}resolveOverlayModel(e,t){var o,s;return null===(s=(o=this.host.options).dropOverlayModel)||void 0===s?void 0:s.call(o,{location:e,group:t})}showPreviewOverlay(e,t){const s=e.model.contentDropTarget;return s.showOverlay(t),o.from(()=>s.clearOverlay())}dispose(){}}const w=e({name:"AdvancedDnD",serviceKey:"advancedDnDService",create:e=>new y(e)}),G="data-dv-kbd-moving";function D(e,t){const o=t.toLowerCase().split("+"),s=o[o.length-1],n=o.slice(0,-1);return e.ctrlKey===n.includes("ctrl")&&e.shiftKey===n.includes("shift")&&e.altKey===n.includes("alt")&&e.metaKey===(n.includes("meta")||n.includes("cmd"))&&e.key.toLowerCase()===s}function C(e){const t=e.keyboardNavigation;if(t)return!0===t?{}:t}const x={nextTab:"ctrl+]",prevTab:"ctrl+[",focusNextGroup:"f6",focusPrevGroup:"shift+f6",focusTabs:"ctrl+shift+\\"};class E extends t{constructor(e){super(),this.host=e,this._focusWasInside=!1;const t=e.rootElement.ownerDocument,o=e=>this._onKeyDown(e);t.addEventListener("keydown",o,!0);const s=e=>{const t=e.target;t instanceof HTMLElement&&this.host.rootElement.contains(t)&&!t.closest('[role="dialog"]')&&(this._lastNonFloatFocus=t)};t.addEventListener("focusin",s,!0);const n=e=>this._onFloatingEscape(e);t.addEventListener("keydown",n,!1),this.addDisposables({dispose:()=>t.removeEventListener("keydown",o,!0)},{dispose:()=>t.removeEventListener("focusin",s,!0)},{dispose:()=>t.removeEventListener("keydown",n,!1)},e.onWillMutateLayout(e=>{"remove"===e.kind&&this._nav&&(this._focusWasInside=this._isFocusInside())}),e.onDidMutateLayout(e=>{"remove"===e.kind&&this._nav&&this._focusWasInside&&!this._isFocusInside()&&this._restoreFocus()}))}get _moveActive(){return this.host.rootElement.hasAttribute(G)}_isFocusInside(){const e=this.host.rootElement.ownerDocument.activeElement;return e instanceof Node&&this.host.rootElement.contains(e)}_onFloatingEscape(e){if(!this._nav||this._moveActive||e.defaultPrevented||"Escape"!==e.key)return;const t=e.target;if(!(t instanceof Element))return;const o=t.closest('[role="dialog"]');o&&this.host.rootElement.contains(o)&&(e.preventDefault(),e.stopPropagation(),this._returnFocusFromFloat())}_trapFloatTab(e){const t=e.target;if(!(t instanceof Element))return!1;const o=t.closest('[role="dialog"]');if(!o||!this.host.rootElement.contains(o))return!1;e.preventDefault();const s=this._tabbables(o);if(0===s.length)return!0;const n=o.ownerDocument.activeElement,i=n instanceof HTMLElement?s.indexOf(n):-1,r=s.length;return s[-1===i?e.shiftKey?r-1:0:(i+(e.shiftKey?-1:1)+r)%r].focus(),!0}_tabbables(e){const t=e.querySelectorAll("a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]");return Array.from(t).filter(e=>e.tabIndex>=0)}_returnFocusFromFloat(){var e;const t=this._lastNonFloatFocus;t&&t.isConnected&&this.host.rootElement.contains(t)&&!t.closest('[role="dialog"]')?t.focus():null===(e=this.host.groups.find(e=>"grid"===e.api.location.type))||void 0===e||e.model.focusContent()}get _nav(){return C(this.host.options)}get _keymap(){var e;return Object.assign(Object.assign({},x),null===(e=this._nav)||void 0===e?void 0:e.keymap)}_onKeyDown(e){if(!this._nav)return;if(this._moveActive)return;if(!(e.target instanceof Node&&this.host.rootElement.contains(e.target)))return;if("Tab"===e.key&&this._trapFloatTab(e))return;const t=this._keymap;D(e,t.nextTab)?(this._consume(e),this._switchTab(!1)):D(e,t.prevTab)?(this._consume(e),this._switchTab(!0)):D(e,t.focusNextGroup)?(this._consume(e),this._cycleGroup(!1)):D(e,t.focusPrevGroup)?(this._consume(e),this._cycleGroup(!0)):D(e,t.focusTabs)&&(this._consume(e),this._focusTabs())}_focusTabs(){var e;null===(e=this.host.activeGroup)||void 0===e||e.model.focusActiveTab()}_switchTab(e){const t=this.host.activeGroup;t&&(e?t.model.moveToPrevious():t.model.moveToNext(),t.model.focusContent())}_cycleGroup(e){const t=this.host.activeGroup,o=t?this.host.adjacentGroup(t,e):this.host.groups[0];this._focusGroup(o)}_focusGroup(e){e&&(e.api.setActive(),e.model.focusContent())}_restoreFocus(){var e;null===(e=this.host.activeGroup)||void 0===e||e.model.focusContent()}_consume(e){e.preventDefault(),e.stopPropagation()}}const k=e({name:"Accessibility",serviceKey:"accessibilityService",create:e=>new E(e)}),T={ArrowLeft:"left",ArrowRight:"right",ArrowUp:"top",ArrowDown:"bottom"},P="ctrl+shift+arrowleft",A="ctrl+shift+arrowright",I="ctrl+shift+arrowup",F="ctrl+shift+arrowdown",L="ctrl+m";class M extends t{constructor(e){super(),this.host=e,this._move=null;const t=e.rootElement.ownerDocument,o=e=>this._onKeyDown(e);t.addEventListener("keydown",o,!0),this.addDisposables({dispose:()=>this._exit()},{dispose:()=>t.removeEventListener("keydown",o,!0)})}get _enabled(){return!!C(this.host.options)}get _keymap(){var e,t,o,s,n,i,r;const a=null!==(t=null===(e=C(this.host.options))||void 0===e?void 0:e.keymap)&&void 0!==t?t:{};return{focusGroupLeft:null!==(o=a.focusGroupLeft)&&void 0!==o?o:P,focusGroupRight:null!==(s=a.focusGroupRight)&&void 0!==s?s:A,focusGroupUp:null!==(n=a.focusGroupUp)&&void 0!==n?n:I,focusGroupDown:null!==(i=a.focusGroupDown)&&void 0!==i?i:F,dock:null!==(r=a.dock)&&void 0!==r?r:L}}get _messages(){return i(this.host.options.messages)}_onKeyDown(e){if(!this._enabled)return;if(this._move)return void this._onMoveKey(e);if(!(e.target instanceof Node&&this.host.rootElement.contains(e.target)))return;const t=this._keymap;D(e,t.dock)?this._enterMoveMode(e):D(e,t.focusGroupLeft)?(this._consume(e),this._focusGroupInDirection("left")):D(e,t.focusGroupRight)?(this._consume(e),this._focusGroupInDirection("right")):D(e,t.focusGroupUp)?(this._consume(e),this._focusGroupInDirection("up")):D(e,t.focusGroupDown)&&(this._consume(e),this._focusGroupInDirection("down"))}_focusGroupInDirection(e){const t=this.host.activeGroup;t&&this._focusGroup(this.host.adjacentGroupInDirection(t,e))}_focusGroup(e){e&&(e.api.setActive(),e.model.focusContent())}_restoreFocus(){var e;null===(e=this.host.activeGroup)||void 0===e||e.model.focusContent()}_enterMoveMode(e){const t=this.host.activePanel,o=this.host.groups;if(!t||0===o.length)return;e.preventDefault(),e.stopPropagation();const s=Math.max(0,o.indexOf(t.group));this._move={source:t,groups:o,groupIndex:s,phase:"target",position:"center"},this.host.rootElement.setAttribute(G,""),this._render()}_onMoveKey(e){const t=this._move;if("Escape"===e.key)return this._consume(e),void("edge"===t.phase?(t.phase="target",t.position="center",this._render()):(this._exit(),this.host.announce(this._messages.moveCancelled()),this._restoreFocus()));if("Enter"===e.key)return this._consume(e),void("target"===t.phase?(t.phase="edge",t.position="center",this._render()):this._commit());if("target"===t.phase){const o=t.groups.length;return void("ArrowRight"===e.key||"ArrowDown"===e.key?(this._consume(e),t.groupIndex=(t.groupIndex+1)%o,this._render()):"ArrowLeft"!==e.key&&"ArrowUp"!==e.key||(this._consume(e),t.groupIndex=(t.groupIndex-1+o)%o,this._render()))}const o=T[e.key];o?(this._consume(e),t.position=o,this._render()):" "!==e.key&&"c"!==e.key&&"C"!==e.key||(this._consume(e),t.position="center",this._render())}_render(){var e,t;const o=this._move,s=o.groups[o.groupIndex];this._clearPreview(),this._preview=this.host.showDropPreview(s,o.position);const n=null!==(t=null===(e=s.activePanel)||void 0===e?void 0:e.title)&&void 0!==t?t:s.id,i=this._messages;"target"===o.phase?this.host.announce(i.movePickTarget(this._label(o.source),n,o.groupIndex+1,o.groups.length)):this.host.announce(i.movePickEdge(o.position,n))}_commit(){var e,t;const o=this._move,s=o.groups[o.groupIndex],n=o.position,i=o.source,r=null!==(t=null===(e=s.activePanel)||void 0===e?void 0:e.title)&&void 0!==t?t:s.id,a=this._messages;this._exit();try{this.host.dockPanel(i,s,n),this.host.announce(a.moveCommitted(this._label(i),r,n))}catch(e){this.host.announce(a.moveNotAllowed())}this._restoreFocus()}_exit(){this._clearPreview(),this._move=null,this.host.rootElement.removeAttribute(G)}_clearPreview(){var e;null===(e=this._preview)||void 0===e||e.dispose(),this._preview=void 0}_consume(e){e.preventDefault(),e.stopPropagation()}_label(e){var t;return null!==(t=e.title)&&void 0!==t?t:e.id}}e({name:"KeyboardDocking",serviceKey:"keyboardDockingService",create:e=>new M(e),dependsOn:[w,n]});r([l,b,w,k]),a();