@lvce-editor/main-area-worker 9.37.7 → 9.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2854,6 +2854,8 @@ const create$1 = (uid, uri, x, y, width, height, platform, assetDir, tabHeight =
2854
2854
  minGroupHeightPx: 80,
2855
2855
  minGroupWidthPx: 250,
2856
2856
  platform,
2857
+ pointerDownGroupIndex: -1,
2858
+ pointerDownTabIndex: -1,
2857
2859
  splitButtonEnabled: false,
2858
2860
  tabHeight,
2859
2861
  uid,
@@ -2865,10 +2867,14 @@ const create$1 = (uid, uri, x, y, width, height, platform, assetDir, tabHeight =
2865
2867
  set(uid, state, state);
2866
2868
  };
2867
2869
 
2868
- const isEqual$2 = (oldState, newState) => {
2870
+ const isEqual$3 = (oldState, newState) => {
2869
2871
  return false;
2870
2872
  };
2871
2873
 
2874
+ const isEqual$2 = (oldState, newState) => {
2875
+ return oldState.pointerDownGroupIndex === newState.pointerDownGroupIndex && oldState.pointerDownTabIndex === newState.pointerDownTabIndex;
2876
+ };
2877
+
2872
2878
  const isEqual$1 = (oldState, newState) => {
2873
2879
  return oldState.dragOverlay === newState.dragOverlay && oldState.layout === newState.layout;
2874
2880
  };
@@ -2877,12 +2883,13 @@ const RenderItems = 4;
2877
2883
  const RenderCss = 10;
2878
2884
  const RenderIncremental = 11;
2879
2885
  const RenderPendingViewletUpdate = 12;
2886
+ const RenderDragData = 13;
2880
2887
 
2881
2888
  const isPendingViewletUpdateEqual = (oldState, newState) => {
2882
2889
  return newState.pendingViewletUpdate === undefined;
2883
2890
  };
2884
- const modules = [isEqual$1, isEqual$2, isPendingViewletUpdateEqual];
2885
- const numbers = [RenderIncremental, RenderCss, RenderPendingViewletUpdate];
2891
+ const modules = [isEqual$1, isEqual$3, isPendingViewletUpdateEqual, isEqual$2];
2892
+ const numbers = [RenderIncremental, RenderCss, RenderPendingViewletUpdate, RenderDragData];
2886
2893
 
2887
2894
  const diff = (oldState, newState) => {
2888
2895
  const diffResult = [];
@@ -4700,7 +4707,16 @@ const handleClickTab = async (state, groupIndexRaw, indexRaw, button = 0) => {
4700
4707
  }
4701
4708
  const groupIndex = Number.parseInt(groupIndexRaw);
4702
4709
  const index = Number.parseInt(indexRaw);
4703
- return selectTab(state, groupIndex, index);
4710
+ const group = state.layout.groups[groupIndex];
4711
+ if (!group || index < 0 || index >= group.tabs.length) {
4712
+ return state;
4713
+ }
4714
+ const newState = await selectTab(state, groupIndex, index);
4715
+ return {
4716
+ ...newState,
4717
+ pointerDownGroupIndex: groupIndex,
4718
+ pointerDownTabIndex: index
4719
+ };
4704
4720
  };
4705
4721
 
4706
4722
  const show2 = async (uid, menuId, x, y, args) => {
@@ -4874,6 +4890,10 @@ const handleDragOver = (state, eventX, eventY) => {
4874
4890
  };
4875
4891
  };
4876
4892
 
4893
+ const handleDragStart = state => {
4894
+ return state;
4895
+ };
4896
+
4877
4897
  const openUrisWithContext = async (context, uris, reuseExisting = true) => {
4878
4898
  for (const uri of uris) {
4879
4899
  await openUriWithContext(context, {
@@ -6609,6 +6629,39 @@ const renderCss = (oldState, newState) => {
6609
6629
  return [SetCss, newState.uid, css];
6610
6630
  };
6611
6631
 
6632
+ const ensureUri = uri => {
6633
+ return uri.startsWith('/') ? `file://${uri}` : uri;
6634
+ };
6635
+ const renderDragData = (oldState, newState) => {
6636
+ const {
6637
+ layout,
6638
+ pointerDownGroupIndex,
6639
+ pointerDownTabIndex,
6640
+ uid
6641
+ } = newState;
6642
+ const {
6643
+ groups
6644
+ } = layout;
6645
+ if (pointerDownGroupIndex === -1 || pointerDownTabIndex === -1) {
6646
+ return [];
6647
+ }
6648
+ const tab = groups[pointerDownGroupIndex]?.tabs[pointerDownTabIndex];
6649
+ if (!tab?.uri) {
6650
+ return [];
6651
+ }
6652
+ const data = ensureUri(tab.uri);
6653
+ return ['Viewlet.setDragData', uid, {
6654
+ items: [{
6655
+ data,
6656
+ type: 'text/uri-list'
6657
+ }, {
6658
+ data,
6659
+ type: 'text/plain'
6660
+ }],
6661
+ label: tab.title
6662
+ }];
6663
+ };
6664
+
6612
6665
  const mergeClassNames = (...classNames) => {
6613
6666
  return classNames.filter(Boolean).join(' ');
6614
6667
  };
@@ -6900,6 +6953,9 @@ const HandleSashCornerPointerUp = 22;
6900
6953
  const HandleDragOver = 23;
6901
6954
  const HandleDragLeave = 24;
6902
6955
  const HandleDrop = 25;
6956
+ const HandleDragStart = 26;
6957
+ const HandleDragEnd = 27;
6958
+ const HandleTabMouseUp = 28;
6903
6959
 
6904
6960
  const dragOverlayVirtualDom = {
6905
6961
  childCount: 0,
@@ -7094,9 +7150,13 @@ const renderTab = (tab, isActive, tabIndex, groupIndex) => {
7094
7150
  className,
7095
7151
  'data-groupIndex': groupIndex,
7096
7152
  'data-index': tabIndex,
7153
+ draggable: true,
7097
7154
  onContextMenu: HandleTabContextMenu,
7098
7155
  onDblClick: HandleDoubleClick,
7156
+ onDragEnd: HandleDragEnd,
7157
+ onDragStart: HandleDragStart,
7099
7158
  onMouseDown: HandleClickTab,
7159
+ onMouseUp: HandleTabMouseUp,
7100
7160
  role: Tab$1,
7101
7161
  title: tab.uriTitle || tab.uri || tab.title,
7102
7162
  type: Div
@@ -7469,6 +7529,8 @@ const getRenderer = diffType => {
7469
7529
  switch (diffType) {
7470
7530
  case RenderCss:
7471
7531
  return renderCss;
7532
+ case RenderDragData:
7533
+ return renderDragData;
7472
7534
  case RenderIncremental:
7473
7535
  return renderIncremental;
7474
7536
  case RenderItems:
@@ -7562,6 +7624,16 @@ const renderEventListeners = () => {
7562
7624
  name: HandleDrop,
7563
7625
  params: ['handleDrop', DataTransferFiles2],
7564
7626
  preventDefault: true
7627
+ }, {
7628
+ dragEffect: 'copyMove',
7629
+ name: HandleDragStart,
7630
+ params: ['handleDragStart']
7631
+ }, {
7632
+ name: HandleDragEnd,
7633
+ params: ['handleDragEnd']
7634
+ }, {
7635
+ name: HandleTabMouseUp,
7636
+ params: ['handleTabMouseUp']
7565
7637
  }];
7566
7638
  };
7567
7639
 
@@ -7660,6 +7732,17 @@ const reopenEditorWith = async context => {
7660
7732
  }
7661
7733
  };
7662
7734
 
7735
+ const resetPointerDown = state => {
7736
+ if (state.pointerDownGroupIndex === -1 && state.pointerDownTabIndex === -1) {
7737
+ return state;
7738
+ }
7739
+ return {
7740
+ ...state,
7741
+ pointerDownGroupIndex: -1,
7742
+ pointerDownTabIndex: -1
7743
+ };
7744
+ };
7745
+
7663
7746
  const resize$1 = (state, dimensions) => {
7664
7747
  return {
7665
7748
  ...state,
@@ -8070,8 +8153,10 @@ const commandMap = {
8070
8153
  'MainArea.handleClickTogglePreview': wrapSerialCommand(handleClickTogglePreview),
8071
8154
  'MainArea.handleContextMenu': wrapSerialCommand(handleContextMenu),
8072
8155
  'MainArea.handleDoubleClick': wrapSerialCommand(handleDoubleClick),
8156
+ 'MainArea.handleDragEnd': wrapSerialCommand(resetPointerDown),
8073
8157
  'MainArea.handleDragLeave': wrapSerialCommand(handleDragLeave),
8074
8158
  'MainArea.handleDragOver': wrapSerialCommand(handleDragOver),
8159
+ 'MainArea.handleDragStart': wrapSerialCommand(handleDragStart),
8075
8160
  'MainArea.handleDrop': wrapSerialAsyncCommand(handleDrop),
8076
8161
  'MainArea.handleHeaderDoubleClick': wrapSerialCommand(handleHeaderDoubleClick),
8077
8162
  'MainArea.handleIconThemeChange': wrapSerialCommand(handleIconThemeChange),
@@ -8084,6 +8169,7 @@ const commandMap = {
8084
8169
  'MainArea.handleSashPointerMove': wrapSerialCommand(handleSashPointerMove),
8085
8170
  'MainArea.handleSashPointerUp': wrapSerialCommand(handleSashPointerUp),
8086
8171
  'MainArea.handleTabContextMenu': wrapSerialCommand(handleTabContextMenu),
8172
+ 'MainArea.handleTabMouseUp': wrapSerialCommand(resetPointerDown),
8087
8173
  'MainArea.handleUriChange': wrapSerialCommand(handleUriChange),
8088
8174
  'MainArea.handleWorkspaceChange': wrapSerialCommand(handleWorkspaceChange),
8089
8175
  'MainArea.handleWorkspaceRefresh': wrapAsyncCommand(handleWorkspaceRefreshWithContext),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/main-area-worker",
3
- "version": "9.37.7",
3
+ "version": "9.38.0",
4
4
  "description": "Main Area Worker",
5
5
  "repository": {
6
6
  "type": "git",