vxe-table 3.18.0-beta.8 → 3.18.1

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 (54) hide show
  1. package/es/locale/lang/en-US.js +12 -12
  2. package/es/style.css +1 -1
  3. package/es/table/module/edit/mixin.js +58 -20
  4. package/es/table/module/filter/mixin.js +12 -10
  5. package/es/table/module/keyboard/mixin.js +175 -172
  6. package/es/table/module/menu/mixin.js +16 -9
  7. package/es/table/module/validator/mixin.js +4 -2
  8. package/es/table/src/methods.js +344 -46
  9. package/es/table/src/store.js +8 -0
  10. package/es/table/src/table.js +35 -9
  11. package/es/ui/index.js +1 -1
  12. package/es/ui/src/log.js +1 -1
  13. package/lib/index.umd.js +713 -289
  14. package/lib/index.umd.min.js +1 -1
  15. package/lib/locale/lang/en-US.js +12 -12
  16. package/lib/locale/lang/en-US.min.js +1 -1
  17. package/lib/locale/lang/en-US.umd.js +12 -12
  18. package/lib/style.css +1 -1
  19. package/lib/table/module/edit/mixin.js +55 -16
  20. package/lib/table/module/edit/mixin.min.js +1 -1
  21. package/lib/table/module/filter/mixin.js +12 -10
  22. package/lib/table/module/filter/mixin.min.js +1 -1
  23. package/lib/table/module/keyboard/mixin.js +184 -185
  24. package/lib/table/module/keyboard/mixin.min.js +1 -1
  25. package/lib/table/module/menu/mixin.js +20 -13
  26. package/lib/table/module/menu/mixin.min.js +1 -1
  27. package/lib/table/module/validator/mixin.js +4 -2
  28. package/lib/table/module/validator/mixin.min.js +1 -1
  29. package/lib/table/src/methods.js +388 -52
  30. package/lib/table/src/methods.min.js +1 -1
  31. package/lib/table/src/store.js +15 -0
  32. package/lib/table/src/store.min.js +1 -0
  33. package/lib/table/src/table.js +39 -9
  34. package/lib/table/src/table.min.js +1 -1
  35. package/lib/ui/index.js +1 -1
  36. package/lib/ui/index.min.js +1 -1
  37. package/lib/ui/src/log.js +1 -1
  38. package/lib/ui/src/log.min.js +1 -1
  39. package/package.json +1 -1
  40. package/packages/locale/lang/en-US.ts +12 -12
  41. package/packages/table/module/edit/mixin.ts +59 -23
  42. package/packages/table/module/filter/mixin.ts +17 -13
  43. package/packages/table/module/keyboard/mixin.ts +169 -165
  44. package/packages/table/module/menu/mixin.ts +16 -9
  45. package/packages/table/module/validator/mixin.ts +8 -4
  46. package/packages/table/src/methods.ts +362 -50
  47. package/packages/table/src/store.ts +15 -0
  48. package/packages/table/src/table.ts +37 -9
  49. /package/es/{iconfont.1755775629306.ttf → iconfont.1756272539382.ttf} +0 -0
  50. /package/es/{iconfont.1755775629306.woff → iconfont.1756272539382.woff} +0 -0
  51. /package/es/{iconfont.1755775629306.woff2 → iconfont.1756272539382.woff2} +0 -0
  52. /package/lib/{iconfont.1755775629306.ttf → iconfont.1756272539382.ttf} +0 -0
  53. /package/lib/{iconfont.1755775629306.woff → iconfont.1756272539382.woff} +0 -0
  54. /package/lib/{iconfont.1755775629306.woff2 → iconfont.1756272539382.woff2} +0 -0
@@ -11,6 +11,7 @@ import TableFooterComponent from './footer'
11
11
  import { tableProps } from './props'
12
12
  import { getSlotVNs } from '../../ui/src/vn'
13
13
  import { warnLog, errLog } from '../../ui/src/log'
14
+ import { crossTableDragRowGlobal, getCrossTableDragRowInfo } from './store'
14
15
  import TableCustomPanelComponent from '../module/custom/panel'
15
16
  import TableFilterPanelComponent from '../module/filter/panel'
16
17
  import TableImportPanelComponent from '../module/export/import-panel'
@@ -134,6 +135,7 @@ function renderEmptyBody (h: CreateElement, $xeTable: VxeTableConstructor & VxeT
134
135
  const renderDragTipContents = (h: CreateElement, $xeTable: VxeTableConstructor & VxeTablePrivateMethods) => {
135
136
  const props = $xeTable
136
137
  const reactData = $xeTable as unknown as TableReactData
138
+ const crossTableDragRowInfo = getCrossTableDragRowInfo($xeTable)
137
139
 
138
140
  const { dragConfig } = props
139
141
  const { dragRow, dragCol, dragTipText } = reactData
@@ -143,9 +145,10 @@ const renderDragTipContents = (h: CreateElement, $xeTable: VxeTableConstructor &
143
145
  const rTipSlot = rowDragSlots.tip || (dragConfig && dragConfig.slots ? dragConfig.slots.rowTip : null)
144
146
  const columnDragSlots = columnDragOpts.slots || {}
145
147
  const cTipSlot = columnDragSlots.tip
148
+ const dRow = dragRow || (rowDragOpts.isCrossTableDrag ? crossTableDragRowInfo.row : null)
146
149
 
147
- if (dragRow && rTipSlot) {
148
- return $xeTable.callSlot(rTipSlot, { row: dragRow }, h)
150
+ if (dRow && rTipSlot) {
151
+ return $xeTable.callSlot(rTipSlot, { row: dRow }, h)
149
152
  }
150
153
  if (dragCol && cTipSlot) {
151
154
  return $xeTable.callSlot(cTipSlot, { column: dragCol }, h)
@@ -155,12 +158,14 @@ const renderDragTipContents = (h: CreateElement, $xeTable: VxeTableConstructor &
155
158
 
156
159
  const renderDragTip = (h: CreateElement, $xeTable: VxeTableConstructor & VxeTablePrivateMethods) => {
157
160
  const reactData = $xeTable as unknown as TableReactData
161
+ const crossTableDragRowInfo = getCrossTableDragRowInfo($xeTable)
158
162
 
159
163
  const { dragRow, dragCol } = reactData
160
164
  const rowOpts = $xeTable.computeRowOpts
161
165
  const columnOpts = $xeTable.computeColumnOpts
162
166
  const rowDragOpts = $xeTable.computeRowDragOpts
163
167
  const columnDragOpts = $xeTable.computeColumnDragOpts
168
+ const dRow = dragRow || (rowDragOpts.isCrossTableDrag ? crossTableDragRowInfo.row : null)
164
169
 
165
170
  if (rowOpts.drag || columnOpts.drag) {
166
171
  return h('div', {
@@ -178,7 +183,7 @@ const renderDragTip = (h: CreateElement, $xeTable: VxeTableConstructor & VxeTabl
178
183
  'is--guides': columnDragOpts.showGuidesStatus
179
184
  }]
180
185
  }),
181
- (dragRow && rowDragOpts.showDragTip) || (dragCol && columnDragOpts.showDragTip)
186
+ (dRow && rowDragOpts.showDragTip) || (dragCol && columnDragOpts.showDragTip)
182
187
  ? h('div', {
183
188
  ref: 'refDragTipElem',
184
189
  class: 'vxe-table--drag-sort-tip'
@@ -190,7 +195,7 @@ const renderDragTip = (h: CreateElement, $xeTable: VxeTableConstructor & VxeTabl
190
195
  class: 'vxe-table--drag-sort-tip-status'
191
196
  }, [
192
197
  h('span', {
193
- class: ['vxe-table--drag-sort-tip-normal-status', dragRow ? getIcon().TABLE_DRAG_STATUS_ROW : getIcon().TABLE_DRAG_STATUS_COLUMN]
198
+ class: ['vxe-table--drag-sort-tip-normal-status', dRow ? getIcon().TABLE_DRAG_STATUS_ROW : getIcon().TABLE_DRAG_STATUS_COLUMN]
194
199
  }),
195
200
  h('span', {
196
201
  class: ['vxe-table--drag-sort-tip-sub-status', getIcon().TABLE_DRAG_STATUS_SUB_ROW]
@@ -740,9 +745,9 @@ export default {
740
745
 
741
746
  isCustomStatus: false,
742
747
 
743
- isDragRowMove: false,
748
+ isCrossDragRow: false,
744
749
  dragRow: null,
745
- isDragColMove: false,
750
+ isCrossDragCol: false,
746
751
  dragCol: null,
747
752
  dragTipText: '',
748
753
 
@@ -752,7 +757,9 @@ export default {
752
757
 
753
758
  reScrollFlag: 0,
754
759
  reLayoutFlag: 0,
755
- footFlag: 0
760
+ footFlag: 0,
761
+
762
+ crossTableDragRowInfo: crossTableDragRowGlobal
756
763
  }
757
764
  },
758
765
  computed: {
@@ -1545,6 +1552,7 @@ export default {
1545
1552
  const currentColumnOpts = $xeTable.computeCurrentColumnOpts
1546
1553
  const keyboardOpts = $xeTable.computeKeyboardOpts
1547
1554
  const aggregateOpts = $xeTable.computeAggregateOpts
1555
+ const rowDragOpts = $xeTable.computeRowDragOpts
1548
1556
  const { groupFields } = aggregateOpts
1549
1557
 
1550
1558
  if (props.rowId) {
@@ -1652,7 +1660,10 @@ export default {
1652
1660
  }
1653
1661
  }
1654
1662
  if (treeConfig && rowOpts.drag && !treeOpts.transform) {
1655
- warnLog('vxe.error.notSupportProp', ['column-config.drag', 'tree-config.transform=false', 'tree-config.transform=true'])
1663
+ warnLog('vxe.error.notSupportProp', ['row-config.drag', 'tree-config.transform=false', 'tree-config.transform=true'])
1664
+ }
1665
+ if (treeConfig && rowDragOpts.isCrossTableDrag && !rowDragOpts.isCrossDrag) {
1666
+ errLog('vxe.error.reqSupportProp', ['tree-config & row-drag-config.isCrossTableDrag', 'row-drag-config.isCrossDrag'])
1656
1667
  }
1657
1668
  if (props.dragConfig) {
1658
1669
  warnLog('vxe.error.delProp', ['drag-config', 'row-drag-config'])
@@ -1906,6 +1917,16 @@ export default {
1906
1917
  this.preventEvent(null, 'activated')
1907
1918
  },
1908
1919
  deactivated () {
1920
+ const $xeTable = this
1921
+ const reactData = $xeTable as unknown as TableReactData
1922
+ const internalData = $xeTable as unknown as TableInternalData
1923
+
1924
+ const { filterStore } = reactData
1925
+ if (filterStore.visible) {
1926
+ $xeTable.clearFilter()
1927
+ }
1928
+ $xeTable.closeTooltip()
1929
+ internalData.isActivated = false
1909
1930
  this.preventEvent(null, 'deactivated')
1910
1931
  },
1911
1932
  beforeDestroy () {
@@ -1963,6 +1984,7 @@ export default {
1963
1984
  const { isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, tableData, initStore, isRowGroupStatus, columnStore, filterStore, customStore } = reactData
1964
1985
  const { leftList, rightList } = columnStore
1965
1986
  const loadingSlot = slots.loading
1987
+ const rowDragOpts = $xeTable.computeRowDragOpts
1966
1988
  const tableTipConfig = $xeTable.computeTableTipConfig
1967
1989
  const validTipConfig = $xeTable.computeValidTipConfig
1968
1990
  const validOpts = $xeTable.computeValidOpts
@@ -1982,6 +2004,11 @@ export default {
1982
2004
  const columnDragOpts = $xeTable.computeColumnDragOpts
1983
2005
  const scrollbarXToTop = $xeTable.computeScrollbarXToTop
1984
2006
  const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft
2007
+ const { isCrossTableDrag } = rowDragOpts
2008
+ const rwOns: Record<string, any> = {}
2009
+ if (isCrossTableDrag && !tableData.length) {
2010
+ rwOns.onDragover = $xeTable.handleCrossTableRowDragoverEmptyEvent
2011
+ }
1985
2012
  return h('div', {
1986
2013
  ref: 'refElem',
1987
2014
  class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
@@ -2048,7 +2075,8 @@ export default {
2048
2075
  ]),
2049
2076
  h('div', {
2050
2077
  key: 'tw',
2051
- class: 'vxe-table--render-wrapper'
2078
+ class: 'vxe-table--render-wrapper',
2079
+ on: rwOns
2052
2080
  }, scrollbarXToTop
2053
2081
  ? [
2054
2082
  renderScrollX(h, $xeTable),