vxe-table 4.16.17 → 4.16.19

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 (242) hide show
  1. package/es/colgroup/style.css +0 -0
  2. package/es/colgroup/style.min.css +0 -0
  3. package/es/column/style.css +0 -0
  4. package/es/column/style.min.css +0 -0
  5. package/es/grid/style.css +86 -0
  6. package/es/grid/style.min.css +1 -0
  7. package/es/iconfont.1758609514163.ttf +0 -0
  8. package/es/iconfont.1758609514163.woff +0 -0
  9. package/es/iconfont.1758609514163.woff2 +0 -0
  10. package/es/index.esm.js +3 -0
  11. package/es/locale/lang/ar-EG.d.ts +2 -0
  12. package/es/locale/lang/de-DE.d.ts +2 -0
  13. package/es/locale/lang/en-US.d.ts +2 -0
  14. package/es/locale/lang/es-ES.d.ts +2 -0
  15. package/es/locale/lang/fr-FR.d.ts +2 -0
  16. package/es/locale/lang/hu-HU.d.ts +2 -0
  17. package/es/locale/lang/hy-AM.d.ts +2 -0
  18. package/es/locale/lang/id-ID.d.ts +2 -0
  19. package/es/locale/lang/it-IT.d.ts +2 -0
  20. package/es/locale/lang/ja-JP.d.ts +2 -0
  21. package/es/locale/lang/ko-KR.d.ts +2 -0
  22. package/es/locale/lang/ms-MY.d.ts +2 -0
  23. package/es/locale/lang/nb-NO.d.ts +2 -0
  24. package/es/locale/lang/pt-BR.d.ts +2 -0
  25. package/es/locale/lang/ru-RU.d.ts +2 -0
  26. package/es/locale/lang/th-TH.d.ts +2 -0
  27. package/es/locale/lang/ug-CN.d.ts +2 -0
  28. package/es/locale/lang/uk-UA.d.ts +2 -0
  29. package/es/locale/lang/uz-UZ.d.ts +2 -0
  30. package/es/locale/lang/vi-VN.d.ts +2 -0
  31. package/es/locale/lang/zh-CHT.d.ts +2 -0
  32. package/es/locale/lang/zh-CN.d.ts +2 -0
  33. package/es/locale/lang/zh-HK.d.ts +2 -0
  34. package/es/locale/lang/zh-MO.d.ts +2 -0
  35. package/es/locale/lang/zh-TW.d.ts +2 -0
  36. package/es/style.css +1 -1
  37. package/es/table/module/filter/hook.js +21 -5
  38. package/es/table/module/filter/panel.js +4 -4
  39. package/es/table/module/menu/panel.js +27 -14
  40. package/es/table/src/cell.js +10 -7
  41. package/es/table/src/table.js +22 -22
  42. package/es/table/style.css +3657 -0
  43. package/es/table/style.min.css +1 -0
  44. package/es/toolbar/style.css +90 -0
  45. package/es/toolbar/style.min.css +1 -0
  46. package/es/ui/index.js +1 -1
  47. package/es/ui/src/log.js +1 -1
  48. package/es/ui/style.css +0 -0
  49. package/es/ui/style.min.css +0 -0
  50. package/es/v-x-e-table/style.css +0 -0
  51. package/es/v-x-e-table/style.min.css +0 -0
  52. package/es/vxe-colgroup/style.css +0 -0
  53. package/es/vxe-colgroup/style.min.css +0 -0
  54. package/es/vxe-column/style.css +0 -0
  55. package/es/vxe-column/style.min.css +0 -0
  56. package/es/vxe-grid/style.css +86 -0
  57. package/es/vxe-grid/style.min.css +1 -0
  58. package/es/vxe-table/style.css +3657 -0
  59. package/es/vxe-table/style.min.css +1 -0
  60. package/es/vxe-toolbar/style.css +90 -0
  61. package/es/vxe-toolbar/style.min.css +1 -0
  62. package/es/vxe-ui/style.css +0 -0
  63. package/es/vxe-ui/style.min.css +0 -0
  64. package/es/vxe-v-x-e-table/style.css +0 -0
  65. package/es/vxe-v-x-e-table/style.min.css +0 -0
  66. package/helper/vetur/attributes.json +1 -1
  67. package/helper/vetur/tags.json +1 -1
  68. package/lib/colgroup/style/index.js +1 -0
  69. package/lib/colgroup/style/style.css +0 -0
  70. package/lib/colgroup/style/style.min.css +0 -0
  71. package/lib/column/style/index.js +1 -0
  72. package/lib/column/style/style.css +0 -0
  73. package/lib/column/style/style.min.css +0 -0
  74. package/lib/grid/style/index.js +1 -0
  75. package/lib/grid/style/style.css +86 -0
  76. package/lib/grid/style/style.min.css +1 -0
  77. package/lib/iconfont.1758609514163.ttf +0 -0
  78. package/lib/iconfont.1758609514163.woff +0 -0
  79. package/lib/iconfont.1758609514163.woff2 +0 -0
  80. package/lib/index.common.js +22 -0
  81. package/lib/index.umd.js +73 -25
  82. package/lib/index.umd.min.js +1 -1
  83. package/lib/locale/lang/ar-EG.d.ts +2 -0
  84. package/lib/locale/lang/ar-EG.min.js +1 -1
  85. package/lib/locale/lang/ar-EG.umd.js +806 -0
  86. package/lib/locale/lang/de-DE.d.ts +2 -0
  87. package/lib/locale/lang/de-DE.min.js +1 -1
  88. package/lib/locale/lang/de-DE.umd.js +806 -0
  89. package/lib/locale/lang/en-US.d.ts +2 -0
  90. package/lib/locale/lang/en-US.min.js +1 -1
  91. package/lib/locale/lang/en-US.umd.js +806 -0
  92. package/lib/locale/lang/es-ES.d.ts +2 -0
  93. package/lib/locale/lang/es-ES.min.js +1 -1
  94. package/lib/locale/lang/es-ES.umd.js +806 -0
  95. package/lib/locale/lang/fr-FR.d.ts +2 -0
  96. package/lib/locale/lang/fr-FR.min.js +1 -1
  97. package/lib/locale/lang/fr-FR.umd.js +806 -0
  98. package/lib/locale/lang/hu-HU.d.ts +2 -0
  99. package/lib/locale/lang/hu-HU.min.js +1 -1
  100. package/lib/locale/lang/hu-HU.umd.js +806 -0
  101. package/lib/locale/lang/hy-AM.d.ts +2 -0
  102. package/lib/locale/lang/hy-AM.min.js +1 -1
  103. package/lib/locale/lang/hy-AM.umd.js +806 -0
  104. package/lib/locale/lang/id-ID.d.ts +2 -0
  105. package/lib/locale/lang/id-ID.min.js +1 -1
  106. package/lib/locale/lang/id-ID.umd.js +806 -0
  107. package/lib/locale/lang/it-IT.d.ts +2 -0
  108. package/lib/locale/lang/it-IT.min.js +1 -1
  109. package/lib/locale/lang/it-IT.umd.js +806 -0
  110. package/lib/locale/lang/ja-JP.d.ts +2 -0
  111. package/lib/locale/lang/ja-JP.min.js +1 -1
  112. package/lib/locale/lang/ja-JP.umd.js +806 -0
  113. package/lib/locale/lang/ko-KR.d.ts +2 -0
  114. package/lib/locale/lang/ko-KR.min.js +1 -1
  115. package/lib/locale/lang/ko-KR.umd.js +806 -0
  116. package/lib/locale/lang/ms-MY.d.ts +2 -0
  117. package/lib/locale/lang/ms-MY.min.js +1 -1
  118. package/lib/locale/lang/ms-MY.umd.js +806 -0
  119. package/lib/locale/lang/nb-NO.d.ts +2 -0
  120. package/lib/locale/lang/nb-NO.min.js +1 -1
  121. package/lib/locale/lang/nb-NO.umd.js +806 -0
  122. package/lib/locale/lang/pt-BR.d.ts +2 -0
  123. package/lib/locale/lang/pt-BR.min.js +1 -1
  124. package/lib/locale/lang/pt-BR.umd.js +806 -0
  125. package/lib/locale/lang/ru-RU.d.ts +2 -0
  126. package/lib/locale/lang/ru-RU.min.js +1 -1
  127. package/lib/locale/lang/ru-RU.umd.js +806 -0
  128. package/lib/locale/lang/th-TH.d.ts +2 -0
  129. package/lib/locale/lang/th-TH.min.js +1 -1
  130. package/lib/locale/lang/th-TH.umd.js +806 -0
  131. package/lib/locale/lang/ug-CN.d.ts +2 -0
  132. package/lib/locale/lang/ug-CN.min.js +1 -1
  133. package/lib/locale/lang/ug-CN.umd.js +806 -0
  134. package/lib/locale/lang/uk-UA.d.ts +2 -0
  135. package/lib/locale/lang/uk-UA.min.js +1 -1
  136. package/lib/locale/lang/uk-UA.umd.js +806 -0
  137. package/lib/locale/lang/uz-UZ.d.ts +2 -0
  138. package/lib/locale/lang/uz-UZ.min.js +1 -1
  139. package/lib/locale/lang/uz-UZ.umd.js +806 -0
  140. package/lib/locale/lang/vi-VN.d.ts +2 -0
  141. package/lib/locale/lang/vi-VN.min.js +1 -1
  142. package/lib/locale/lang/vi-VN.umd.js +806 -0
  143. package/lib/locale/lang/zh-CHT.d.ts +2 -0
  144. package/lib/locale/lang/zh-CHT.min.js +1 -1
  145. package/lib/locale/lang/zh-CHT.umd.js +806 -0
  146. package/lib/locale/lang/zh-CN.d.ts +2 -0
  147. package/lib/locale/lang/zh-CN.min.js +1 -1
  148. package/lib/locale/lang/zh-CN.umd.js +808 -0
  149. package/lib/locale/lang/zh-HK.d.ts +2 -0
  150. package/lib/locale/lang/zh-HK.min.js +1 -1
  151. package/lib/locale/lang/zh-HK.umd.js +23 -0
  152. package/lib/locale/lang/zh-MO.d.ts +2 -0
  153. package/lib/locale/lang/zh-MO.min.js +1 -1
  154. package/lib/locale/lang/zh-MO.umd.js +23 -0
  155. package/lib/locale/lang/zh-TW.d.ts +2 -0
  156. package/lib/locale/lang/zh-TW.min.js +1 -1
  157. package/lib/locale/lang/zh-TW.umd.js +23 -0
  158. package/lib/style.css +1 -1
  159. package/lib/table/module/custom/hook.js +430 -0
  160. package/lib/table/module/custom/hook.min.js +1 -0
  161. package/lib/table/module/custom/panel.js +1193 -0
  162. package/lib/table/module/custom/panel.min.js +1 -0
  163. package/lib/table/module/edit/hook.js +1308 -0
  164. package/lib/table/module/edit/hook.min.js +1 -0
  165. package/lib/table/module/export/export-panel.js +467 -0
  166. package/lib/table/module/export/export-panel.min.js +1 -0
  167. package/lib/table/module/export/hook.js +1888 -0
  168. package/lib/table/module/export/hook.min.js +1 -0
  169. package/lib/table/module/export/import-panel.js +226 -0
  170. package/lib/table/module/export/import-panel.min.js +1 -0
  171. package/lib/table/module/export/util.js +20 -0
  172. package/lib/table/module/export/util.min.js +1 -0
  173. package/lib/table/module/filter/hook.js +458 -0
  174. package/lib/table/module/filter/hook.min.js +1 -0
  175. package/lib/table/module/filter/panel.js +265 -0
  176. package/lib/table/module/filter/panel.min.js +1 -0
  177. package/lib/table/module/keyboard/hook.js +579 -0
  178. package/lib/table/module/keyboard/hook.min.js +1 -0
  179. package/lib/table/module/menu/hook.js +392 -0
  180. package/lib/table/module/menu/hook.min.js +1 -0
  181. package/lib/table/module/menu/panel.js +150 -0
  182. package/lib/table/module/menu/panel.min.js +1 -0
  183. package/lib/table/module/validator/hook.js +681 -0
  184. package/lib/table/module/validator/hook.min.js +1 -0
  185. package/lib/table/src/cell.js +9 -4
  186. package/lib/table/src/cell.min.js +1 -1
  187. package/lib/table/src/header.min.js +1 -0
  188. package/lib/table/src/props.js +318 -0
  189. package/lib/table/src/props.min.js +1 -0
  190. package/lib/table/src/store.js +15 -0
  191. package/lib/table/src/store.min.js +1 -0
  192. package/lib/table/src/table.js +924 -0
  193. package/lib/table/src/table.min.js +1 -0
  194. package/lib/table/src/use/cell-view.js +57 -0
  195. package/lib/table/src/use/cell-view.min.js +1 -0
  196. package/lib/table/src/use/index.js +16 -0
  197. package/lib/table/src/use/index.min.js +1 -0
  198. package/lib/table/src/util.js +916 -0
  199. package/lib/table/src/util.min.js +1 -0
  200. package/lib/table/style/index.js +1 -0
  201. package/lib/table/style/style.css +3657 -0
  202. package/lib/table/style/style.min.css +1 -0
  203. package/lib/toolbar/style/index.js +1 -0
  204. package/lib/toolbar/style/style.css +90 -0
  205. package/lib/toolbar/style/style.min.css +1 -0
  206. package/lib/ui/index.js +1 -1
  207. package/lib/ui/index.min.js +1 -1
  208. package/lib/ui/src/log.js +1 -1
  209. package/lib/ui/src/log.min.js +1 -1
  210. package/lib/ui/style/index.js +1 -0
  211. package/lib/ui/style/style.css +0 -0
  212. package/lib/ui/style/style.min.css +0 -0
  213. package/lib/v-x-e-table/style/index.js +1 -0
  214. package/lib/v-x-e-table/style/style.css +0 -0
  215. package/lib/v-x-e-table/style/style.min.css +0 -0
  216. package/lib/vxe-colgroup/style/index.js +1 -0
  217. package/lib/vxe-colgroup/style/style.css +0 -0
  218. package/lib/vxe-colgroup/style/style.min.css +0 -0
  219. package/lib/vxe-column/style/index.js +1 -0
  220. package/lib/vxe-column/style/style.css +0 -0
  221. package/lib/vxe-column/style/style.min.css +0 -0
  222. package/lib/vxe-grid/style/index.js +1 -0
  223. package/lib/vxe-grid/style/style.css +86 -0
  224. package/lib/vxe-grid/style/style.min.css +1 -0
  225. package/lib/vxe-table/style/index.js +1 -0
  226. package/lib/vxe-table/style/style.css +3657 -0
  227. package/lib/vxe-table/style/style.min.css +1 -0
  228. package/lib/vxe-toolbar/style/index.js +1 -0
  229. package/lib/vxe-toolbar/style/style.css +90 -0
  230. package/lib/vxe-toolbar/style/style.min.css +1 -0
  231. package/lib/vxe-ui/style/index.js +1 -0
  232. package/lib/vxe-ui/style/style.css +0 -0
  233. package/lib/vxe-ui/style/style.min.css +0 -0
  234. package/lib/vxe-v-x-e-table/style/index.js +1 -0
  235. package/lib/vxe-v-x-e-table/style/style.css +0 -0
  236. package/lib/vxe-v-x-e-table/style/style.min.css +0 -0
  237. package/package.json +1 -1
  238. package/packages/table/module/filter/hook.ts +23 -6
  239. package/packages/table/module/filter/panel.ts +4 -4
  240. package/packages/table/module/menu/panel.ts +29 -16
  241. package/packages/table/src/cell.ts +10 -7
  242. package/packages/table/src/table.ts +22 -22
@@ -0,0 +1 @@
1
+ var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getEditCell","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(_){let{props:C,reactData:I,internalData:E}=_,t=_.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:m,computeCheckboxOpts:R,computeTreeOpts:b,computeValidOpts:n}=_.getComputeMaps(),s=_xeUtils.default.browse(),p={},g={},A=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},a=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=t.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},d=()=>{var{editStore:e,tableColumn:t}=I,l=m.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))},F=(e,t)=>{let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:u}=E;var l=b.value;let{rowField:s,parentField:c,mapChildrenField:g}=l,w=l.children||l.childrenField,v=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(_,l),o=t?_xeUtils.default.findTree(i,e=>t===e[s],{children:g}):null;if(o){var o=o.item,a=u[(0,_util.getRowid)(_,o)],a=a?a.level:0;let e=o[w],t=o[g];_xeUtils.default.isArray(e)||(e=o[w]=[]),_xeUtils.default.isArray(t)||(t=o[w]=[]),e[v](l),t[v](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:e,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,u[r]=o}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[v](l),i[v](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=a,u[r]=a}})},u=(t,l,n)=>{let o=C.treeConfig;var e=I.isRowGroupStatus;let{tableFullTreeData:d,afterFullData:a,mergeBodyList:i,tableFullData:u,fullDataRowIdData:s,fullAllDataRowIdData:c,insertRowMaps:r,removeRowMaps:g}=E;var w=b.value;let{transform:v,parentField:x,rowField:f,mapChildrenField:h}=w,m=w.children||w.childrenField,R=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(_.defineField(t.map(e=>Object.assign(o&&v?{[h]:[],[m]:[]}:{},e))))),p=[];if(o&&v&&(p=_xeUtils.default.toArrayTree(R,{key:f,parentKey:x,children:m})),_xeUtils.default.eqNull(l))if(o&&v)F(R,!1);else if(e){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"]))}else R.forEach(e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[t]=l,c[t]=l,a.unshift(e),u.unshift(e)}),i.forEach(e=>{var t=e.row;0<=t&&(e.row=t+R.length)});else if(-1===l)if(o&&v)F(R,!0);else if(e){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"]))}else R.forEach(e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,_tIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[t]=l,c[t]=l,a.push(e),u.push(e)});else if(o&&v){let i=_xeUtils.default.findTree(d,e=>l[f]===e[f],{children:h});if(i){let r=i.parent,o=r?r[h]:d;w=c[(0,_util.getRowid)(_,r)];let a=w?w.level:0;if(p.forEach((e,t)=>{r?e[x]!==r[f]&&(e[x]=r[f],(0,_log.errLog)("vxe.error.errProp",[x+"="+e[x],x+"="+r[f]])):null!==e[x]&&(e[x]=null,_log.errLog)("vxe.error.errProp",[x+"="+e[x],"null"]);let l=i.index+t;n&&(l+=1),o.splice(l,0,e)}),_xeUtils.default.eachTree(p,e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:o,parent:r,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};e[m]&&(e[h]=e[m]),s[t]=l,c[t]=l},{children:m}),r){t=_xeUtils.default.findTree(d,e=>l[f]===e[f],{children:m});if(t){w=t.items;let e=t.index;n&&(e+=1),w.splice(e,0,...p)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),F(R,!0)}else if(e){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"]))}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<a.length&&(r=l):r=_.findRowIndexOf(a,l),-1===(r=n?Math.min(a.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));a.splice(r,0,...R);t=_.findRowIndexOf(u,l);-1<t?u.splice(t+(n?1:0),0,...R):u.push(...R),i.forEach(e=>{var{row:t,rowspan:l}=e;t>=r?e.row=t+R.length:(n?t+l>=r:t+l>r)&&(e.rowspan=l+R.length)})}w=e=>{var t=(0,_util.getRowid)(_,e);g[t]?(delete g[t],r[t]&&delete r[t]):r[t]=e};return o&&v?_xeUtils.default.eachTree(p,w,{children:h}):R.forEach(w),I.removeRowFlag++,I.insertRowFlag++,_.cacheRowMap(!1),_.updateScrollYStatus(),_.handleTableData(o&&v),o&&v||_.updateAfterDataIndex(),_.updateFooter(),_.handleUpdateBodyMerge(),_.checkSelectionStatus(),I.scrollYLoad&&_.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(_.updateCellAreas(),_.recalculate(!0))).then(()=>({row:R.length?R[R.length-1]:null,rows:R}))},r=(e,t,l,r)=>{var o=C.treeConfig;let{transform:a,rowField:i,parentField:n}=b.value;return o&&a?(_xeUtils.default.isArray(e)||(e=[e]),u(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))},S=(e,t)=>{var l=I.editStore,{actived:l,focused:r}=l,{row:o,column:a}=l,i=n.value;if(o||a){if(t&&(0,_util.getRowid)(_,t)!==(0,_util.getRowid)(_,o))return(0,_vue.nextTick)();d(),l.args=null,l.row=null,l.column=null,_.updateFooter(),_.dispatchEvent("edit-closed",{row:o,rowIndex:_.getRowIndex(o),$rowIndex:_.getVMRowIndex(o),column:a,columnIndex:_.getColumnIndex(a),$columnIndex:_.getVMColumnIndex(a)},e||null)}return r.row=null,r.column=null,i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&_.clearValidate?_.clearValidate():(0,_vue.nextTick)().then(()=>_.updateCellAreas())},i=(l,r,o,e)=>{let a=_.xeGrid,i=_.xeGantt;var{editConfig:t,mouseConfig:n}=C,{editStore:d,tableColumn:u}=I,s=m.value,c=s.mode,{actived:d,focused:g}=d;let{row:w,column:v}=l;var x=v.editRender,f=l.cell||_.getCellElement(w,v),h=s.beforeEditMethod||s.activeMethod;if((l.cell=f)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(x)&&!_.isPendingByRow(w)&&!_.isAggregateRecord(w)){if(d.row!==w||"cell"===c&&d.column!==v){let t="edit-disabled";if(!h||h(Object.assign(Object.assign({},l),{$table:_,$grid:a,$gantt:i}))){n&&(_.clearSelected(),_.clearCellAreas)&&(_.clearCellAreas(),_.clearCopyCellArea()),_.closeTooltip(),d.column&&S(r),t="edit-activated",v.renderHeight=f.offsetHeight,d.args=l,d.row=w,d.column=v,"row"===c?u.forEach(e=>A(w,e)):A(w,v);let e=s.afterEditMethod;(0,_vue.nextTick)(()=>{o&&_.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:_,$grid:a,$gantt:i}))})}_.dispatchEvent(t,{row:w,rowIndex:_.getRowIndex(w),$rowIndex:_.getVMRowIndex(w),column:v,columnIndex:_.getColumnIndex(v),$columnIndex:_.getVMColumnIndex(v)},r),"edit-activated"===t&&_.dispatchEvent("edit-actived",{row:w,rowIndex:_.getRowIndex(w),$rowIndex:_.getVMRowIndex(w),column:v,columnIndex:_.getColumnIndex(v),$columnIndex:_.getVMColumnIndex(v)},r)}else{t=d.column;n&&(_.clearSelected(),_.clearCellAreas)&&(_.clearCellAreas(),_.clearCopyCellArea()),t!==v&&(x=t.model,x.update&&(0,_util.setCellValue)(w,t,x.value),_.clearValidate)&&_.clearValidate(w,v),v.renderHeight=f.offsetHeight,d.args=l,d.column=v,e&&setTimeout(()=>{_.handleFocus(l,r)})}g.column=null,g.row=null,_.focus()}return(0,_vue.nextTick)()},w=(t,e,l)=>{var r=C.editConfig;let o=_xeUtils.default.isString(e)?_.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)&&!_.isAggregateRecord(t)?Promise.resolve(l?_.scrollToRow(t,o):null).then(()=>{var e=_.getCellElement(t,o);return e&&(i({row:t,rowIndex:_.getRowIndex(t),column:o,columnIndex:_.getColumnIndex(o),cell:e,$table:_},null,l,l),E._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return p={insert(e){return u(e,null)},insertAt(e,t){return u(e,t)},insertNextAt(e,t){return u(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=C.treeConfig,{editStore:l,isRowGroupStatus:r}=I;let{tableFullTreeData:o,selectCheckboxMaps:a,afterFullData:i,mergeBodyList:n,tableFullData:d,pendingRowMaps:u,insertRowMaps:s,removeRowMaps:c}=E;var g=R.value,w=b.value;let{transform:v,mapChildrenField:x}=w,f=w.children||w.childrenField;w=l.actived,l=g.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=d,e.forEach(e=>{var t;_.isInsertByRow(e)||(t=(0,_util.getRowid)(_,e),c[t]=e)}),l||(e.forEach(e=>{e=(0,_util.getRowid)(_,e);a[e]&&delete a[e]}),I.updateCheckboxFlag++),d===e?(e=h=d.slice(0),E.tableFullData=[],E.afterFullData=[],_.clearMergeCells()):t&&v?e.forEach(e=>{let t=(0,_util.getRowid)(_,e);var l=_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(_,e),{children:x}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(_,e),{children:f})),l=(l&&l.items.splice(l.index,1),_.findRowIndexOf(i,e));-1<l&&i.splice(l,1)}):r?(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"])):e.forEach(e=>{var t=_.findRowIndexOf(d,e);-1<t&&(t=d.splice(t,1),h.push(t[0]));let r=_.findRowIndexOf(i,e);-1<r&&(n.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),i.splice(r,1))}),w.row&&-1<_.findRowIndexOf(e,w.row)&&p.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(_,e);s[e]&&delete s[e],u[e]&&delete u[e]}),I.removeRowFlag++,I.insertRowFlag++,I.pendingRowFlag++,_.cacheRowMap(!1),_.handleTableData(t&&v),_.updateFooter(),_.handleUpdateBodyMerge(),t&&v||_.updateAfterDataIndex(),_.checkSelectionStatus(),I.scrollYLoad&&_.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(_.updateCellAreas(),_.recalculate(!0))).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return p.remove(_.getCheckboxRecords()).then(e=>(_.clearCheckboxRow(),e))},removeRadioRow(){var e=_.getRadioRecord();return p.remove(e||[]).then(e=>(_.clearRadioRow(),e))},removeCurrentRow(){var e=_.getCurrentRecord();return p.remove(e||[]).then(e=>(_.clearCurrentRow(),e))},getRecordset(){var e=p.getRemoveRecords(),t=_.getPendingRecords();let l=e.concat(t);var r=p.getUpdateRecords().filter(t=>!l.some(e=>_.eqRow(e,t)));return{insertRecords:p.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=E,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=E.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=C,l=E.tableFullData,r=b.value;return e?(d(),t?_xeUtils.default.filterTree(l,e=>_.isUpdateByRow(e),r):l.filter(e=>_.isUpdateByRow(e))):[]},getActiveRecord(){(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditCell"]);var e=I.editStore,t=E.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(_,l)]?Object.assign({},e,{row:l}):null},getEditRecord(){(0,_log.warnLog)("vxe.error.delFunc",["getEditRecord","getEditCell"]);var e=I.editStore,t=E.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(_,l)]?Object.assign({},e,{row:l}):null},getEditCell(){var e=I.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,rowIndex:_.getRowIndex(e),column:t,columnIndex:_.getColumnIndex(t)}:null},getSelectedCell(){var e=I.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}:null},clearActived(e){return(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),_.clearEdit(e)},clearEdit(e){return S(null,e)},clearSelected(){var e=I.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),_.isEditByRow(e)},isEditByRow(e){var t=I.editStore;return t.actived.row===e},setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),p.setEditRow(e)},setEditRow(e,t){var l=E.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender)),o=!1;return t&&(o=!0)!==t&&(r=_xeUtils.default.isString(t)?_.getColumnByField(t):t),w(e,r,o)},setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),p.setEditCell(e,t)},setEditCell(e,t){return w(e,t,!0)},setSelectCell(e,t){var l=I.tableData,r=m.value,t=_xeUtils.default.isString(t)?_.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=_.findRowIndexOf(l,e))&&t&&(l=_.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:_.getColumnIndex(t),cell:l},_.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return i(e,t,!0,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:S,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=m.value;if((0,_utils.isEnableConf)(n)){var u=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&u&&(e=u.tableAutoFocus||u.tableAutofocus||u.autofocus),!t&&u&&(t=u.tableAutoSelect||u.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?i.querySelector("input,textarea"):i.querySelector(e))&&l.focus()),l?t?l.select():s.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&_.scrollToRow(o,a)}},handleSelected(e,t){var l=C.mouseConfig,r=I.editStore,o=c.value;let a=m.value,{actived:i,selected:n}=r,{row:d,column:u}=e,s=l&&o.selected;return!s||n.row===d&&n.column===u||(i.row!==d||"cell"===a.mode&&i.column!==u)&&(S(t),_.clearSelected(),_.clearCellAreas&&(_.clearCellAreas(),_.clearCopyCellArea()),n.args=e,n.row=d,n.column=u,s&&g.addCellSelectedClass(),_.focus(),t)&&_.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=I.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=_.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},p),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)},setupGantt(e){return e.extendTableMethods(tableEditMethodKeys)}});
@@ -0,0 +1,467 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _vue = require("vue");
8
+ var _comp = require("../../../ui/src/comp");
9
+ var _ui = require("../../../ui");
10
+ var _xeUtils = _interopRequireDefault(require("xe-utils"));
11
+ var _utils = require("../../../ui/src/utils");
12
+ var _log = require("../../../ui/src/log");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ const {
15
+ getI18n,
16
+ getIcon
17
+ } = _ui.VxeUI;
18
+ var _default = exports.default = (0, _comp.defineVxeComponent)({
19
+ name: 'VxeTableExportPanel',
20
+ props: {
21
+ defaultOptions: Object,
22
+ storeData: Object
23
+ },
24
+ setup(props) {
25
+ const VxeUIModalComponent = _ui.VxeUI.getComponent('VxeModal');
26
+ const VxeUIButtonComponent = _ui.VxeUI.getComponent('VxeButton');
27
+ const VxeUISelectComponent = _ui.VxeUI.getComponent('VxeSelect');
28
+ const VxeUIInputComponent = _ui.VxeUI.getComponent('VxeInput');
29
+ const VxeUICheckboxComponent = _ui.VxeUI.getComponent('VxeCheckbox');
30
+ const $xeTable = (0, _vue.inject)('$xeTable', {});
31
+ const {
32
+ computeExportOpts,
33
+ computePrintOpts
34
+ } = $xeTable.getComputeMaps();
35
+ const reactData = (0, _vue.reactive)({
36
+ isAll: false,
37
+ isIndeterminate: false,
38
+ loading: false
39
+ });
40
+ const xButtonConfirm = (0, _vue.ref)();
41
+ const xInputFilename = (0, _vue.ref)();
42
+ const xInputSheetname = (0, _vue.ref)();
43
+ const computeCheckedAll = (0, _vue.computed)(() => {
44
+ const {
45
+ storeData
46
+ } = props;
47
+ return storeData.columns.every(column => column.checked);
48
+ });
49
+ const computeShowSheet = (0, _vue.computed)(() => {
50
+ const {
51
+ defaultOptions
52
+ } = props;
53
+ return ['html', 'xml', 'xlsx', 'pdf'].indexOf(defaultOptions.type) > -1;
54
+ });
55
+ const computeSupportMerge = (0, _vue.computed)(() => {
56
+ const {
57
+ storeData,
58
+ defaultOptions
59
+ } = props;
60
+ return !defaultOptions.original && defaultOptions.mode === 'current' && (storeData.isPrint || ['html', 'xlsx'].indexOf(defaultOptions.type) > -1);
61
+ });
62
+ // const computeSupportGroup = computed(() => {
63
+ // const { defaultOptions } = props
64
+ // return ['html', 'xlsx', 'csv', 'txt'].indexOf(defaultOptions.type) > -1
65
+ // })
66
+ const computeSupportStyle = (0, _vue.computed)(() => {
67
+ const {
68
+ defaultOptions
69
+ } = props;
70
+ return !defaultOptions.original && ['xlsx'].indexOf(defaultOptions.type) > -1;
71
+ });
72
+ const handleOptionCheck = column => {
73
+ const {
74
+ storeData
75
+ } = props;
76
+ const matchObj = _xeUtils.default.findTree(storeData.columns, item => item === column);
77
+ if (matchObj && matchObj.parent) {
78
+ const {
79
+ parent
80
+ } = matchObj;
81
+ if (parent.children && parent.children.length) {
82
+ parent.checked = parent.children.every(column => column.checked);
83
+ parent.halfChecked = !parent.checked && parent.children.some(column => column.checked || column.halfChecked);
84
+ handleOptionCheck(parent);
85
+ }
86
+ }
87
+ };
88
+ const checkStatus = () => {
89
+ const {
90
+ storeData
91
+ } = props;
92
+ const columns = storeData.columns;
93
+ reactData.isAll = columns.every(column => column.disabled || column.checked);
94
+ reactData.isIndeterminate = !reactData.isAll && columns.some(column => !column.disabled && (column.checked || column.halfChecked));
95
+ };
96
+ const changeOption = column => {
97
+ const isChecked = !column.checked;
98
+ _xeUtils.default.eachTree([column], item => {
99
+ item.checked = isChecked;
100
+ item.halfChecked = false;
101
+ });
102
+ handleOptionCheck(column);
103
+ checkStatus();
104
+ };
105
+ const allColumnEvent = () => {
106
+ const {
107
+ storeData
108
+ } = props;
109
+ const isAll = !reactData.isAll;
110
+ _xeUtils.default.eachTree(storeData.columns, column => {
111
+ if (!column.disabled) {
112
+ column.checked = isAll;
113
+ column.halfChecked = false;
114
+ }
115
+ });
116
+ reactData.isAll = isAll;
117
+ checkStatus();
118
+ };
119
+ const showEvent = () => {
120
+ (0, _vue.nextTick)(() => {
121
+ const filenameInp = xInputFilename.value;
122
+ const sheetnameInp = xInputSheetname.value;
123
+ const confirmBtn = xButtonConfirm.value;
124
+ const targetElem = filenameInp || sheetnameInp || confirmBtn;
125
+ if (targetElem) {
126
+ targetElem.focus();
127
+ }
128
+ });
129
+ checkStatus();
130
+ };
131
+ const getExportOption = () => {
132
+ const {
133
+ storeData,
134
+ defaultOptions
135
+ } = props;
136
+ const {
137
+ hasMerge,
138
+ columns
139
+ } = storeData;
140
+ const checkedAll = computeCheckedAll.value;
141
+ const supportMerge = computeSupportMerge.value;
142
+ const expColumns = _xeUtils.default.searchTree(columns, column => column.checked, {
143
+ children: 'children',
144
+ mapChildren: 'childNodes',
145
+ original: true
146
+ });
147
+ return Object.assign({}, defaultOptions, {
148
+ columns: expColumns,
149
+ isMerge: hasMerge && supportMerge && checkedAll ? defaultOptions.isMerge : false
150
+ });
151
+ };
152
+ const printEvent = () => {
153
+ const {
154
+ storeData
155
+ } = props;
156
+ const printOpts = computePrintOpts.value;
157
+ storeData.visible = false;
158
+ $xeTable.print(Object.assign({}, printOpts, getExportOption()));
159
+ };
160
+ const exportEvent = () => {
161
+ const {
162
+ storeData
163
+ } = props;
164
+ const exportOpts = computeExportOpts.value;
165
+ reactData.loading = true;
166
+ $xeTable.exportData(Object.assign({}, exportOpts, getExportOption())).then(() => {
167
+ reactData.loading = false;
168
+ storeData.visible = false;
169
+ }).catch(() => {
170
+ reactData.loading = false;
171
+ });
172
+ };
173
+ const cancelEvent = () => {
174
+ const {
175
+ storeData
176
+ } = props;
177
+ storeData.visible = false;
178
+ };
179
+ const confirmEvent = () => {
180
+ const {
181
+ storeData
182
+ } = props;
183
+ if (storeData.isPrint) {
184
+ printEvent();
185
+ } else {
186
+ exportEvent();
187
+ }
188
+ };
189
+ const renderVN = () => {
190
+ const $xeGrid = $xeTable.xeGrid;
191
+ const $xeGantt = $xeTable.xeGantt;
192
+ const {
193
+ defaultOptions,
194
+ storeData
195
+ } = props;
196
+ const {
197
+ isAll: isAllChecked,
198
+ isIndeterminate: isAllIndeterminate
199
+ } = reactData;
200
+ const {
201
+ hasTree,
202
+ hasMerge,
203
+ isPrint,
204
+ hasColgroup,
205
+ columns
206
+ } = storeData;
207
+ const {
208
+ isHeader
209
+ } = defaultOptions;
210
+ const cols = [];
211
+ const checkedAll = computeCheckedAll.value;
212
+ const showSheet = computeShowSheet.value;
213
+ const supportMerge = computeSupportMerge.value;
214
+ const supportStyle = computeSupportStyle.value;
215
+ // const supportGroup = computeSupportGroup.value
216
+ const slots = defaultOptions.slots || {};
217
+ const topSlot = slots.top;
218
+ const bottomSlot = slots.bottom;
219
+ const defaultSlot = slots.default;
220
+ const footerSlot = slots.footer;
221
+ const parameterSlot = slots.parameter;
222
+ _xeUtils.default.eachTree(columns, column => {
223
+ const colTitle = (0, _utils.formatText)(column.getTitle(), 1);
224
+ const isColGroup = column.children && column.children.length;
225
+ const isChecked = column.checked;
226
+ const indeterminate = column.halfChecked;
227
+ const isHtml = column.type === 'html';
228
+ cols.push((0, _vue.h)('li', {
229
+ key: column.id,
230
+ class: ['vxe-table-export--panel-column-option', `level--${column.level}`, {
231
+ 'is--group': isColGroup,
232
+ 'is--checked': isChecked,
233
+ 'is--indeterminate': indeterminate,
234
+ 'is--disabled': column.disabled
235
+ }],
236
+ title: isHtml ? '' : colTitle,
237
+ onClick: () => {
238
+ if (!column.disabled) {
239
+ changeOption(column);
240
+ }
241
+ }
242
+ }, [(0, _vue.h)('span', {
243
+ class: ['vxe-checkbox--icon', indeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
244
+ }), isHtml ? (0, _vue.h)('span', {
245
+ key: '1',
246
+ class: 'vxe-checkbox--label',
247
+ innerHTML: colTitle
248
+ }) : (0, _vue.h)('span', {
249
+ key: '0',
250
+ class: 'vxe-checkbox--label'
251
+ }, colTitle)]));
252
+ });
253
+ return VxeUIModalComponent ? (0, _vue.h)(VxeUIModalComponent, {
254
+ id: 'VXE_EXPORT_MODAL',
255
+ modelValue: storeData.visible,
256
+ title: getI18n(isPrint ? 'vxe.export.printTitle' : 'vxe.export.expTitle'),
257
+ className: 'vxe-table-export-popup-wrapper',
258
+ width: 660,
259
+ minWidth: 500,
260
+ minHeight: 400,
261
+ mask: true,
262
+ lockView: true,
263
+ showFooter: true,
264
+ escClosable: true,
265
+ maskClosable: true,
266
+ showMaximize: true,
267
+ resize: true,
268
+ loading: reactData.loading,
269
+ 'onUpdate:modelValue'(value) {
270
+ storeData.visible = value;
271
+ },
272
+ onShow: showEvent
273
+ }, {
274
+ default: () => {
275
+ const params = {
276
+ $table: $xeTable,
277
+ $grid: $xeGrid,
278
+ $gantt: $xeGantt,
279
+ options: defaultOptions,
280
+ columns,
281
+ params: defaultOptions.params
282
+ };
283
+ const hasEmptyData = defaultOptions.mode === 'empty';
284
+ return (0, _vue.h)('div', {
285
+ class: 'vxe-table-export--panel'
286
+ }, [topSlot ? (0, _vue.h)('div', {
287
+ class: 'vxe-table-export--panel-top'
288
+ }, $xeTable.callSlot(topSlot, params)) : (0, _vue.createCommentVNode)(), (0, _vue.h)('div', {
289
+ class: 'vxe-table-export--panel-body'
290
+ }, defaultSlot ? $xeTable.callSlot(defaultSlot, params) : [(0, _vue.h)('table', {
291
+ class: 'vxe-table-export--panel-table',
292
+ cellspacing: 0,
293
+ cellpadding: 0,
294
+ border: 0
295
+ }, [(0, _vue.h)('tbody', [[isPrint ? (0, _vue.createCommentVNode)() : (0, _vue.h)('tr', [(0, _vue.h)('td', getI18n('vxe.export.expName')), (0, _vue.h)('td', [VxeUIInputComponent ? (0, _vue.h)(VxeUIInputComponent, {
296
+ ref: xInputFilename,
297
+ modelValue: defaultOptions.filename,
298
+ type: 'text',
299
+ clearable: true,
300
+ placeholder: getI18n('vxe.export.expNamePlaceholder'),
301
+ 'onUpdate:modelValue'(value) {
302
+ defaultOptions.filename = value;
303
+ }
304
+ }) : (0, _vue.createCommentVNode)()])]), isPrint ? (0, _vue.createCommentVNode)() : (0, _vue.h)('tr', [(0, _vue.h)('td', getI18n('vxe.export.expType')), (0, _vue.h)('td', [VxeUISelectComponent ? (0, _vue.h)(VxeUISelectComponent, {
305
+ modelValue: defaultOptions.type,
306
+ options: storeData.typeList,
307
+ 'onUpdate:modelValue'(value) {
308
+ defaultOptions.type = value;
309
+ }
310
+ }) : (0, _vue.createCommentVNode)()])]), isPrint || showSheet ? (0, _vue.h)('tr', [(0, _vue.h)('td', getI18n('vxe.export.expSheetName')), (0, _vue.h)('td', [VxeUIInputComponent ? (0, _vue.h)(VxeUIInputComponent, {
311
+ ref: xInputSheetname,
312
+ modelValue: defaultOptions.sheetName,
313
+ type: 'text',
314
+ clearable: true,
315
+ placeholder: getI18n('vxe.export.expSheetNamePlaceholder'),
316
+ 'onUpdate:modelValue'(value) {
317
+ defaultOptions.sheetName = value;
318
+ }
319
+ }) : (0, _vue.createCommentVNode)()])]) : (0, _vue.createCommentVNode)(), (0, _vue.h)('tr', [(0, _vue.h)('td', getI18n('vxe.export.expMode')), (0, _vue.h)('td', [VxeUISelectComponent ? (0, _vue.h)(VxeUISelectComponent, {
320
+ modelValue: defaultOptions.mode,
321
+ options: storeData.modeList.map(item => {
322
+ return {
323
+ value: item.value,
324
+ label: getI18n(item.label)
325
+ };
326
+ }),
327
+ 'onUpdate:modelValue'(value) {
328
+ defaultOptions.mode = value;
329
+ }
330
+ }) : (0, _vue.createCommentVNode)()])]), (0, _vue.h)('tr', [(0, _vue.h)('td', [getI18n('vxe.export.expColumn')]), (0, _vue.h)('td', [(0, _vue.h)('div', {
331
+ class: 'vxe-table-export--panel-column'
332
+ }, [(0, _vue.h)('ul', {
333
+ class: 'vxe-table-export--panel-column-header'
334
+ }, [(0, _vue.h)('li', {
335
+ class: ['vxe-table-export--panel-column-option', {
336
+ 'is--checked': isAllChecked,
337
+ 'is--indeterminate': isAllIndeterminate
338
+ }],
339
+ title: getI18n('vxe.table.allTitle'),
340
+ onClick: allColumnEvent
341
+ }, [(0, _vue.h)('span', {
342
+ class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
343
+ }), (0, _vue.h)('span', {
344
+ class: 'vxe-checkbox--label'
345
+ }, getI18n('vxe.export.expCurrentColumn'))])]), (0, _vue.h)('ul', {
346
+ class: 'vxe-table-export--panel-column-body'
347
+ }, cols)])])]), (0, _vue.h)('tr', [(0, _vue.h)('td', getI18n('vxe.export.expOpts')), parameterSlot ? (0, _vue.h)('td', [(0, _vue.h)('div', {
348
+ class: 'vxe-table-export--panel-option-row'
349
+ }, $xeTable.callSlot(parameterSlot, params))]) : (0, _vue.h)('td', [(0, _vue.h)('div', {
350
+ class: 'vxe-table-export--panel-option-row'
351
+ }, [VxeUICheckboxComponent ? (0, _vue.h)(VxeUICheckboxComponent, {
352
+ modelValue: hasEmptyData || isHeader,
353
+ disabled: hasEmptyData,
354
+ title: getI18n('vxe.export.expHeaderTitle'),
355
+ content: getI18n('vxe.export.expOptHeader'),
356
+ 'onUpdate:modelValue'(value) {
357
+ defaultOptions.isHeader = value;
358
+ }
359
+ }) : (0, _vue.createCommentVNode)(), VxeUICheckboxComponent ? (0, _vue.h)(VxeUICheckboxComponent, {
360
+ modelValue: isHeader ? defaultOptions.isTitle : false,
361
+ disabled: !isHeader,
362
+ title: getI18n('vxe.export.expTitleTitle'),
363
+ content: getI18n('vxe.export.expOptTitle'),
364
+ 'onUpdate:modelValue'(value) {
365
+ defaultOptions.isTitle = value;
366
+ }
367
+ }) : (0, _vue.createCommentVNode)(), VxeUICheckboxComponent ? (0, _vue.h)(VxeUICheckboxComponent, {
368
+ modelValue: isHeader && hasColgroup && supportMerge ? defaultOptions.isColgroup : false,
369
+ title: getI18n('vxe.export.expColgroupTitle'),
370
+ disabled: !isHeader || !hasColgroup || !supportMerge,
371
+ content: getI18n('vxe.export.expOptColgroup'),
372
+ 'onUpdate:modelValue'(value) {
373
+ defaultOptions.isColgroup = value;
374
+ }
375
+ }) : (0, _vue.createCommentVNode)()]), (0, _vue.h)('div', {
376
+ class: 'vxe-table-export--panel-option-row'
377
+ }, [VxeUICheckboxComponent ? (0, _vue.h)(VxeUICheckboxComponent, {
378
+ modelValue: hasEmptyData ? false : defaultOptions.original,
379
+ disabled: hasEmptyData,
380
+ title: getI18n('vxe.export.expOriginalTitle'),
381
+ content: getI18n('vxe.export.expOptOriginal'),
382
+ 'onUpdate:modelValue'(value) {
383
+ defaultOptions.original = value;
384
+ }
385
+ }) : (0, _vue.createCommentVNode)(), VxeUICheckboxComponent ? (0, _vue.h)(VxeUICheckboxComponent, {
386
+ modelValue: hasMerge && supportMerge && checkedAll ? defaultOptions.isMerge : false,
387
+ title: getI18n('vxe.export.expMergeTitle'),
388
+ disabled: hasEmptyData || !hasMerge || !supportMerge || !checkedAll,
389
+ content: getI18n('vxe.export.expOptMerge'),
390
+ 'onUpdate:modelValue'(value) {
391
+ defaultOptions.isMerge = value;
392
+ }
393
+ }) : (0, _vue.createCommentVNode)(), isPrint || !VxeUICheckboxComponent ? (0, _vue.createCommentVNode)() : (0, _vue.h)(VxeUICheckboxComponent, {
394
+ modelValue: supportStyle ? defaultOptions.useStyle : false,
395
+ disabled: !supportStyle,
396
+ title: getI18n('vxe.export.expUseStyleTitle'),
397
+ content: getI18n('vxe.export.expOptUseStyle'),
398
+ 'onUpdate:modelValue'(value) {
399
+ defaultOptions.useStyle = value;
400
+ }
401
+ }), VxeUICheckboxComponent ? (0, _vue.h)(VxeUICheckboxComponent, {
402
+ modelValue: hasTree ? defaultOptions.isAllExpand : false,
403
+ disabled: hasEmptyData || !hasTree,
404
+ title: getI18n('vxe.export.expAllExpandTitle'),
405
+ content: getI18n('vxe.export.expOptAllExpand'),
406
+ 'onUpdate:modelValue'(value) {
407
+ defaultOptions.isAllExpand = value;
408
+ }
409
+ }) : (0, _vue.createCommentVNode)()]), (0, _vue.h)('div', {
410
+ class: 'vxe-table-export--panel-option-row'
411
+ }, [VxeUICheckboxComponent ? (0, _vue.h)(VxeUICheckboxComponent, {
412
+ modelValue: defaultOptions.isFooter,
413
+ disabled: !storeData.hasFooter,
414
+ title: getI18n('vxe.export.expFooterTitle'),
415
+ content: getI18n('vxe.export.expOptFooter'),
416
+ 'onUpdate:modelValue'(value) {
417
+ defaultOptions.isFooter = value;
418
+ }
419
+ }) : (0, _vue.createCommentVNode)()])])])]])])]), bottomSlot ? (0, _vue.h)('div', {
420
+ class: 'vxe-table-export--panel-bottom'
421
+ }, $xeTable.callSlot(bottomSlot, params)) : (0, _vue.createCommentVNode)()]);
422
+ },
423
+ footer() {
424
+ const params = {
425
+ $table: $xeTable,
426
+ $grid: $xeGrid,
427
+ $gantt: $xeGantt,
428
+ options: defaultOptions,
429
+ columns,
430
+ params: defaultOptions.params
431
+ };
432
+ return (0, _vue.h)('div', {
433
+ class: 'vxe-table-export--panel-footer'
434
+ }, footerSlot ? $xeTable.callSlot(footerSlot, params) : [(0, _vue.h)('div', {
435
+ class: 'vxe-table-export--panel-btns'
436
+ }, [VxeUIButtonComponent ? (0, _vue.h)(VxeUIButtonComponent, {
437
+ content: getI18n('vxe.export.expCancel'),
438
+ onClick: cancelEvent
439
+ }) : (0, _vue.createCommentVNode)(), VxeUIButtonComponent ? (0, _vue.h)(VxeUIButtonComponent, {
440
+ ref: xButtonConfirm,
441
+ status: 'primary',
442
+ content: getI18n(isPrint ? 'vxe.export.expPrint' : 'vxe.export.expConfirm'),
443
+ onClick: confirmEvent
444
+ }) : (0, _vue.createCommentVNode)()])]);
445
+ }
446
+ }) : (0, _vue.createCommentVNode)();
447
+ };
448
+ (0, _vue.nextTick)(() => {
449
+ if (!VxeUIModalComponent) {
450
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-modal']);
451
+ }
452
+ if (!VxeUIButtonComponent) {
453
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-button']);
454
+ }
455
+ if (!VxeUISelectComponent) {
456
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-select']);
457
+ }
458
+ if (!VxeUIInputComponent) {
459
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-input']);
460
+ }
461
+ if (!VxeUICheckboxComponent) {
462
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-checkbox']);
463
+ }
464
+ });
465
+ return renderVN;
466
+ }
467
+ });
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_ui=require("../../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../../ui/src/utils"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,getIcon}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableExportPanel",props:{defaultOptions:Object,storeData:Object},setup(f){let T=_ui.VxeUI.getComponent("VxeModal"),k=_ui.VxeUI.getComponent("VxeButton"),O=_ui.VxeUI.getComponent("VxeSelect"),E=_ui.VxeUI.getComponent("VxeInput"),N=_ui.VxeUI.getComponent("VxeCheckbox"),U=(0,_vue.inject)("$xeTable",{}),{computeExportOpts:l,computePrintOpts:o}=U.getComputeMaps(),y=(0,_vue.reactive)({isAll:!1,isIndeterminate:!1,loading:!1}),D=(0,_vue.ref)(),A=(0,_vue.ref)(),M=(0,_vue.ref)(),H=(0,_vue.computed)(()=>{var e=f.storeData;return e.columns.every(e=>e.checked)}),L=(0,_vue.computed)(()=>{var e=f.defaultOptions;return-1<["html","xml","xlsx","pdf"].indexOf(e.type)}),q=(0,_vue.computed)(()=>{var{storeData:e,defaultOptions:t}=f;return!t.original&&"current"===t.mode&&(e.isPrint||-1<["html","xlsx"].indexOf(t.type))}),B=(0,_vue.computed)(()=>{var e=f.defaultOptions;return!e.original&&-1<["xlsx"].indexOf(e.type)}),S=t=>{var e=f.storeData,e=_xeUtils.default.findTree(e.columns,e=>e===t);e&&e.parent&&(e=e.parent,e.children)&&e.children.length&&(e.checked=e.children.every(e=>e.checked),e.halfChecked=!e.checked&&e.children.some(e=>e.checked||e.halfChecked),S(e))},w=()=>{var e=f.storeData,e=e.columns;y.isAll=e.every(e=>e.disabled||e.checked),y.isIndeterminate=!y.isAll&&e.some(e=>!e.disabled&&(e.checked||e.halfChecked))},K=()=>{var e=f.storeData;let t=!y.isAll;_xeUtils.default.eachTree(e.columns,e=>{e.disabled||(e.checked=t,e.halfChecked=!1)}),y.isAll=t,w()},P=()=>{(0,_vue.nextTick)(()=>{var e=A.value,t=M.value,l=D.value,e=e||t||l;e&&e.focus()}),w()},a=()=>{var{storeData:e,defaultOptions:t}=f,{hasMerge:e,columns:l}=e,o=H.value,a=q.value,l=_xeUtils.default.searchTree(l,e=>e.checked,{children:"children",mapChildren:"childNodes",original:!0});return Object.assign({},t,{columns:l,isMerge:!!(e&&a&&o)&&t.isMerge})},t=()=>{var e=f.storeData,t=o.value;e.visible=!1,U.print(Object.assign({},t,a()))},r=()=>{let e=f.storeData;var t=l.value;y.loading=!0,U.exportData(Object.assign({},t,a())).then(()=>{y.loading=!1,e.visible=!1}).catch(()=>{y.loading=!1})},X=()=>{var e=f.storeData;e.visible=!1},j=()=>{var e=f.storeData;(e.isPrint?t:r)()};return(0,_vue.nextTick)(()=>{T||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),k||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),O||(0,_log.errLog)("vxe.error.reqComp",["vxe-select"]),E||(0,_log.errLog)("vxe.error.reqComp",["vxe-input"]),N||(0,_log.errLog)("vxe.error.reqComp",["vxe-checkbox"])}),()=>{let l=U.xeGrid,o=U.xeGantt,{defaultOptions:a,storeData:r}=f,{isAll:n,isIndeterminate:i}=y,{hasTree:u,hasMerge:p,isPrint:d,hasColgroup:v,columns:s}=r,x=a.isHeader,c=[],m=H.value,_=L.value,h=q.value,g=B.value;var e=a.slots||{};let C=e.top,b=e.bottom,V=e.default,t=e.footer,I=e.parameter;return _xeUtils.default.eachTree(s,e=>{var t=(0,_utils.formatText)(e.getTitle(),1),l=e.children&&e.children.length,o=e.checked,a=e.halfChecked,r="html"===e.type;c.push((0,_vue.h)("li",{key:e.id,class:["vxe-table-export--panel-column-option","level--"+e.level,{"is--group":l,"is--checked":o,"is--indeterminate":a,"is--disabled":e.disabled}],title:r?"":t,onClick:()=>{e.disabled||(e=>{let t=!e.checked;_xeUtils.default.eachTree([e],e=>{e.checked=t,e.halfChecked=!1}),S(e),w()})(e)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",a?getIcon().TABLE_CHECKBOX_INDETERMINATE:o?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),r?(0,_vue.h)("span",{key:"1",class:"vxe-checkbox--label",innerHTML:t}):(0,_vue.h)("span",{key:"0",class:"vxe-checkbox--label"},t)]))}),T?(0,_vue.h)(T,{id:"VXE_EXPORT_MODAL",modelValue:r.visible,title:getI18n(d?"vxe.export.printTitle":"vxe.export.expTitle"),className:"vxe-table-export-popup-wrapper",width:660,minWidth:500,minHeight:400,mask:!0,lockView:!0,showFooter:!0,escClosable:!0,maskClosable:!0,showMaximize:!0,resize:!0,loading:y.loading,"onUpdate:modelValue"(e){r.visible=e},onShow:P},{default:()=>{var e={$table:U,$grid:l,$gantt:o,options:a,columns:s,params:a.params},t="empty"===a.mode;return(0,_vue.h)("div",{class:"vxe-table-export--panel"},[C?(0,_vue.h)("div",{class:"vxe-table-export--panel-top"},U.callSlot(C,e)):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-table-export--panel-body"},V?U.callSlot(V,e):[(0,_vue.h)("table",{class:"vxe-table-export--panel-table",cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("tbody",[[d?(0,_vue.createCommentVNode)():(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.export.expName")),(0,_vue.h)("td",[E?(0,_vue.h)(E,{ref:A,modelValue:a.filename,type:"text",clearable:!0,placeholder:getI18n("vxe.export.expNamePlaceholder"),"onUpdate:modelValue"(e){a.filename=e}}):(0,_vue.createCommentVNode)()])]),d?(0,_vue.createCommentVNode)():(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.export.expType")),(0,_vue.h)("td",[O?(0,_vue.h)(O,{modelValue:a.type,options:r.typeList,"onUpdate:modelValue"(e){a.type=e}}):(0,_vue.createCommentVNode)()])]),d||_?(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.export.expSheetName")),(0,_vue.h)("td",[E?(0,_vue.h)(E,{ref:M,modelValue:a.sheetName,type:"text",clearable:!0,placeholder:getI18n("vxe.export.expSheetNamePlaceholder"),"onUpdate:modelValue"(e){a.sheetName=e}}):(0,_vue.createCommentVNode)()])]):(0,_vue.createCommentVNode)(),(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.export.expMode")),(0,_vue.h)("td",[O?(0,_vue.h)(O,{modelValue:a.mode,options:r.modeList.map(e=>({value:e.value,label:getI18n(e.label)})),"onUpdate:modelValue"(e){a.mode=e}}):(0,_vue.createCommentVNode)()])]),(0,_vue.h)("tr",[(0,_vue.h)("td",[getI18n("vxe.export.expColumn")]),(0,_vue.h)("td",[(0,_vue.h)("div",{class:"vxe-table-export--panel-column"},[(0,_vue.h)("ul",{class:"vxe-table-export--panel-column-header"},[(0,_vue.h)("li",{class:["vxe-table-export--panel-column-option",{"is--checked":n,"is--indeterminate":i}],title:getI18n("vxe.table.allTitle"),onClick:K},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?getIcon().TABLE_CHECKBOX_INDETERMINATE:n?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.export.expCurrentColumn"))])]),(0,_vue.h)("ul",{class:"vxe-table-export--panel-column-body"},c)])])]),(0,_vue.h)("tr",[(0,_vue.h)("td",getI18n("vxe.export.expOpts")),I?(0,_vue.h)("td",[(0,_vue.h)("div",{class:"vxe-table-export--panel-option-row"},U.callSlot(I,e))]):(0,_vue.h)("td",[(0,_vue.h)("div",{class:"vxe-table-export--panel-option-row"},[N?(0,_vue.h)(N,{modelValue:t||x,disabled:t,title:getI18n("vxe.export.expHeaderTitle"),content:getI18n("vxe.export.expOptHeader"),"onUpdate:modelValue"(e){a.isHeader=e}}):(0,_vue.createCommentVNode)(),N?(0,_vue.h)(N,{modelValue:!!x&&a.isTitle,disabled:!x,title:getI18n("vxe.export.expTitleTitle"),content:getI18n("vxe.export.expOptTitle"),"onUpdate:modelValue"(e){a.isTitle=e}}):(0,_vue.createCommentVNode)(),N?(0,_vue.h)(N,{modelValue:!!(x&&v&&h)&&a.isColgroup,title:getI18n("vxe.export.expColgroupTitle"),disabled:!x||!v||!h,content:getI18n("vxe.export.expOptColgroup"),"onUpdate:modelValue"(e){a.isColgroup=e}}):(0,_vue.createCommentVNode)()]),(0,_vue.h)("div",{class:"vxe-table-export--panel-option-row"},[N?(0,_vue.h)(N,{modelValue:!t&&a.original,disabled:t,title:getI18n("vxe.export.expOriginalTitle"),content:getI18n("vxe.export.expOptOriginal"),"onUpdate:modelValue"(e){a.original=e}}):(0,_vue.createCommentVNode)(),N?(0,_vue.h)(N,{modelValue:!!(p&&h&&m)&&a.isMerge,title:getI18n("vxe.export.expMergeTitle"),disabled:t||!p||!h||!m,content:getI18n("vxe.export.expOptMerge"),"onUpdate:modelValue"(e){a.isMerge=e}}):(0,_vue.createCommentVNode)(),d||!N?(0,_vue.createCommentVNode)():(0,_vue.h)(N,{modelValue:!!g&&a.useStyle,disabled:!g,title:getI18n("vxe.export.expUseStyleTitle"),content:getI18n("vxe.export.expOptUseStyle"),"onUpdate:modelValue"(e){a.useStyle=e}}),N?(0,_vue.h)(N,{modelValue:!!u&&a.isAllExpand,disabled:t||!u,title:getI18n("vxe.export.expAllExpandTitle"),content:getI18n("vxe.export.expOptAllExpand"),"onUpdate:modelValue"(e){a.isAllExpand=e}}):(0,_vue.createCommentVNode)()]),(0,_vue.h)("div",{class:"vxe-table-export--panel-option-row"},[N?(0,_vue.h)(N,{modelValue:a.isFooter,disabled:!r.hasFooter,title:getI18n("vxe.export.expFooterTitle"),content:getI18n("vxe.export.expOptFooter"),"onUpdate:modelValue"(e){a.isFooter=e}}):(0,_vue.createCommentVNode)()])])])]])])]),b?(0,_vue.h)("div",{class:"vxe-table-export--panel-bottom"},U.callSlot(b,e)):(0,_vue.createCommentVNode)()])},footer(){var e={$table:U,$grid:l,$gantt:o,options:a,columns:s,params:a.params};return(0,_vue.h)("div",{class:"vxe-table-export--panel-footer"},t?U.callSlot(t,e):[(0,_vue.h)("div",{class:"vxe-table-export--panel-btns"},[k?(0,_vue.h)(k,{content:getI18n("vxe.export.expCancel"),onClick:X}):(0,_vue.createCommentVNode)(),k?(0,_vue.h)(k,{ref:D,status:"primary",content:getI18n(d?"vxe.export.expPrint":"vxe.export.expConfirm"),onClick:j}):(0,_vue.createCommentVNode)()])])}}):(0,_vue.createCommentVNode)()}}});