@fecp/mobile 1.1.23 → 1.1.24

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 (135) hide show
  1. package/es/mobile.css +11 -11
  2. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.mjs +121 -0
  3. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/clipboard.mjs +55 -0
  4. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/commands.mjs +44 -0
  5. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/config.mjs +24 -0
  6. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/configStore.mjs +9 -0
  7. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/core.mjs +10 -0
  8. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/dataStore.mjs +4 -0
  9. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/event.mjs +151 -0
  10. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/formats.mjs +44 -0
  11. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/hooks.mjs +5 -0
  12. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18n.mjs +55 -0
  13. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18nStore.mjs +8 -0
  14. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/icon.mjs +16 -0
  15. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/iconStore.mjs +4 -0
  16. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/interceptor.mjs +49 -0
  17. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/log.mjs +17 -0
  18. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/menus.mjs +44 -0
  19. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/permission.mjs +60 -0
  20. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/renderer.mjs +34 -0
  21. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/resize.mjs +80 -0
  22. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/store.mjs +39 -0
  23. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/theme.mjs +20 -0
  24. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/themeStore.mjs +6 -0
  25. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/useFns.mjs +27 -0
  26. package/es/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/validators.mjs +5 -0
  27. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/colgroup/index.mjs +14 -0
  28. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/column/index.mjs +14 -0
  29. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/components.mjs +23 -0
  30. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/grid/index.mjs +16 -0
  31. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/grid/src/grid.mjs +1221 -0
  32. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/locale/lang/zh-CN.mjs +714 -0
  33. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/index.mjs +25 -0
  34. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/custom/hook.mjs +256 -0
  35. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/custom/panel.mjs +987 -0
  36. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/edit/hook.mjs +875 -0
  37. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/export-panel.mjs +478 -0
  38. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/hook.mjs +1456 -0
  39. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/import-panel.mjs +221 -0
  40. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/util.mjs +23 -0
  41. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/filter/hook.mjs +343 -0
  42. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/filter/panel.mjs +220 -0
  43. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/keyboard/hook.mjs +474 -0
  44. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/menu/hook.mjs +283 -0
  45. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/menu/panel.mjs +150 -0
  46. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/validator/hook.mjs +471 -0
  47. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/render/index.mjs +953 -0
  48. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/body.mjs +772 -0
  49. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/cell.mjs +1058 -0
  50. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/column.mjs +166 -0
  51. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/columnInfo.mjs +161 -0
  52. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/emits.mjs +97 -0
  53. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/footer.mjs +349 -0
  54. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/group.mjs +45 -0
  55. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/header.mjs +367 -0
  56. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/props.mjs +279 -0
  57. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/table.mjs +10668 -0
  58. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/use/cell-view.mjs +37 -0
  59. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/util.mjs +537 -0
  60. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/index.mjs +12 -0
  61. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/src/toolbar.mjs +527 -0
  62. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/index.mjs +360 -0
  63. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/dom.mjs +157 -0
  64. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/log.mjs +9 -0
  65. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/utils.mjs +49 -0
  66. package/es/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/vn.mjs +42 -0
  67. package/es/packages/mobile/src/components/dataDisplay/table/Table.vue.mjs +6 -5
  68. package/lib/mobile.css +11 -11
  69. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.js +118 -0
  70. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/clipboard.js +55 -0
  71. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/commands.js +44 -0
  72. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/config.js +24 -0
  73. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/configStore.js +9 -0
  74. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/core.js +10 -0
  75. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/dataStore.js +4 -0
  76. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/event.js +151 -0
  77. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/formats.js +44 -0
  78. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/hooks.js +5 -0
  79. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18n.js +55 -0
  80. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18nStore.js +8 -0
  81. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/icon.js +16 -0
  82. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/iconStore.js +4 -0
  83. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/interceptor.js +49 -0
  84. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/log.js +17 -0
  85. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/menus.js +44 -0
  86. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/permission.js +60 -0
  87. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/renderer.js +34 -0
  88. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/resize.js +80 -0
  89. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/store.js +39 -0
  90. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/theme.js +20 -0
  91. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/themeStore.js +6 -0
  92. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/useFns.js +27 -0
  93. package/lib/node_modules/.pnpm/@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/validators.js +5 -0
  94. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/colgroup/index.js +15 -0
  95. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/column/index.js +15 -0
  96. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/components.js +23 -0
  97. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/grid/index.js +16 -0
  98. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/grid/src/grid.js +1221 -0
  99. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/locale/lang/zh-CN.js +714 -0
  100. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/index.js +26 -0
  101. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/custom/hook.js +257 -0
  102. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/custom/panel.js +987 -0
  103. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/edit/hook.js +876 -0
  104. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/export-panel.js +478 -0
  105. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/hook.js +1457 -0
  106. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/import-panel.js +221 -0
  107. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/export/util.js +23 -0
  108. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/filter/hook.js +344 -0
  109. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/filter/panel.js +220 -0
  110. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/keyboard/hook.js +475 -0
  111. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/menu/hook.js +284 -0
  112. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/menu/panel.js +150 -0
  113. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/module/validator/hook.js +472 -0
  114. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/render/index.js +954 -0
  115. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/body.js +772 -0
  116. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/cell.js +1058 -0
  117. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/column.js +166 -0
  118. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/columnInfo.js +161 -0
  119. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/emits.js +97 -0
  120. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/footer.js +349 -0
  121. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/group.js +45 -0
  122. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/header.js +367 -0
  123. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/props.js +279 -0
  124. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/table.js +10668 -0
  125. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/use/cell-view.js +37 -0
  126. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/src/util.js +537 -0
  127. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/index.js +13 -0
  128. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/src/toolbar.js +527 -0
  129. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/index.js +360 -0
  130. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/dom.js +157 -0
  131. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/log.js +9 -0
  132. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/utils.js +49 -0
  133. package/lib/node_modules/.pnpm/vxe-table@4.13.27_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/ui/src/vn.js +42 -0
  134. package/lib/packages/mobile/src/components/dataDisplay/table/Table.vue.js +6 -5
  135. package/package.json +1 -1
@@ -0,0 +1,1457 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ const index = require("../../../../../../../../../_virtual/index.js");
4
+ require("../../../ui/index.js");
5
+ const util = require("../../src/util.js");
6
+ const utils = require("../../../ui/src/utils.js");
7
+ const dom = require("../../../ui/src/dom.js");
8
+ const util$1 = require("./util.js");
9
+ const log = require("../../../ui/src/log.js");
10
+ const index_esm = require("../../../../../../../@vxe-ui_core@4.1.3_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.js");
11
+ const { getI18n, hooks, renderer } = index_esm.VxeUI;
12
+ let htmlCellElem;
13
+ const csvBOM = "\uFEFF";
14
+ const enterSymbol = "\r\n";
15
+ function defaultFilterExportColumn(column) {
16
+ return column.field || ["seq", "checkbox", "radio"].indexOf(column.type) > -1;
17
+ }
18
+ const getConvertColumns = (columns) => {
19
+ const result = [];
20
+ columns.forEach((column) => {
21
+ if (column.childNodes && column.childNodes.length) {
22
+ result.push(column);
23
+ result.push(...getConvertColumns(column.childNodes));
24
+ } else {
25
+ result.push(column);
26
+ }
27
+ });
28
+ return result;
29
+ };
30
+ const convertToRows = (originColumns) => {
31
+ let maxLevel = 1;
32
+ const traverse = (column, parent) => {
33
+ if (parent) {
34
+ column._level = parent._level + 1;
35
+ if (maxLevel < column._level) {
36
+ maxLevel = column._level;
37
+ }
38
+ }
39
+ if (column.childNodes && column.childNodes.length) {
40
+ let colSpan = 0;
41
+ column.childNodes.forEach((subColumn) => {
42
+ traverse(subColumn, column);
43
+ colSpan += subColumn._colSpan;
44
+ });
45
+ column._colSpan = colSpan;
46
+ } else {
47
+ column._colSpan = 1;
48
+ }
49
+ };
50
+ originColumns.forEach((column) => {
51
+ column._level = 1;
52
+ traverse(column);
53
+ });
54
+ const rows = [];
55
+ for (let i = 0; i < maxLevel; i++) {
56
+ rows.push([]);
57
+ }
58
+ const allColumns = getConvertColumns(originColumns);
59
+ allColumns.forEach((column) => {
60
+ if (column.childNodes && column.childNodes.length) {
61
+ column._rowSpan = 1;
62
+ } else {
63
+ column._rowSpan = maxLevel - column._level + 1;
64
+ }
65
+ rows[column._level - 1].push(column);
66
+ });
67
+ return rows;
68
+ };
69
+ function toTableBorder(border) {
70
+ if (border === true) {
71
+ return "full";
72
+ }
73
+ if (border) {
74
+ return border;
75
+ }
76
+ return "default";
77
+ }
78
+ function getBooleanValue(cellValue) {
79
+ return cellValue === "TRUE" || cellValue === "true" || cellValue === true;
80
+ }
81
+ function getFooterData($xeTable, opts, footerTableData) {
82
+ const { footerFilterMethod } = opts;
83
+ return footerFilterMethod ? footerTableData.filter((items, index2) => footerFilterMethod({ $table: $xeTable, items, $rowIndex: index2 })) : footerTableData;
84
+ }
85
+ function getCsvCellTypeLabel(column, cellValue) {
86
+ if (cellValue) {
87
+ if (column.type === "seq") {
88
+ return ` ${cellValue}`;
89
+ }
90
+ switch (column.cellType) {
91
+ case "string":
92
+ if (!isNaN(cellValue)) {
93
+ return ` ${cellValue}`;
94
+ }
95
+ break;
96
+ case "number":
97
+ break;
98
+ default:
99
+ if (cellValue.length >= 12 && !isNaN(cellValue)) {
100
+ return ` ${cellValue}`;
101
+ }
102
+ break;
103
+ }
104
+ }
105
+ return cellValue;
106
+ }
107
+ function toTxtCellLabel(val) {
108
+ if (/[",\s\n]/.test(val)) {
109
+ return `"${val.replace(/"/g, '""')}"`;
110
+ }
111
+ return val;
112
+ }
113
+ function getElementsByTagName(elem, qualifiedName) {
114
+ return elem.getElementsByTagName(qualifiedName);
115
+ }
116
+ function getTxtCellKey(now) {
117
+ return `#${now}@${index.default.uniqueId()}`;
118
+ }
119
+ function replaceTxtCell(cell, vMaps) {
120
+ return cell.replace(/#\d+@\d+/g, (key) => index.default.hasOwnProp(vMaps, key) ? vMaps[key] : key);
121
+ }
122
+ function getTxtCellValue(val, vMaps) {
123
+ const rest = replaceTxtCell(val, vMaps);
124
+ return rest.replace(/^"+$/g, (qVal) => '"'.repeat(Math.ceil(qVal.length / 2)));
125
+ }
126
+ function toExportField(tableConf, field) {
127
+ const { fieldMaps, titleMaps } = tableConf;
128
+ if (!fieldMaps[field]) {
129
+ const teCol = titleMaps[field];
130
+ if (teCol && teCol.field) {
131
+ field = teCol.field;
132
+ }
133
+ }
134
+ return field;
135
+ }
136
+ function parseCsvAndTxt(tableConf, content, cellSeparator) {
137
+ const list = content.split(enterSymbol);
138
+ const rows = [];
139
+ let fields = [];
140
+ if (list.length) {
141
+ const vMaps = {};
142
+ const now = Date.now();
143
+ list.forEach((rVal) => {
144
+ if (rVal) {
145
+ const item = {};
146
+ rVal = rVal.replace(/("")|(\n)/g, (text, dVal) => {
147
+ const key = getTxtCellKey(now);
148
+ vMaps[key] = dVal ? '"' : "\n";
149
+ return key;
150
+ }).replace(/"(.*?)"/g, (text, cVal) => {
151
+ const key = getTxtCellKey(now);
152
+ vMaps[key] = replaceTxtCell(cVal, vMaps);
153
+ return key;
154
+ });
155
+ const cells = rVal.split(cellSeparator);
156
+ if (!fields.length) {
157
+ fields = cells.map((val) => toExportField(tableConf, getTxtCellValue(val.trim(), vMaps)));
158
+ } else {
159
+ cells.forEach((val, colIndex) => {
160
+ if (colIndex < fields.length) {
161
+ item[fields[colIndex]] = getTxtCellValue(val.trim(), vMaps);
162
+ }
163
+ });
164
+ rows.push(item);
165
+ }
166
+ }
167
+ });
168
+ }
169
+ return { fields, rows };
170
+ }
171
+ function parseCsv(tableConf, content) {
172
+ return parseCsvAndTxt(tableConf, content, ",");
173
+ }
174
+ function parseTxt(tableConf, content) {
175
+ return parseCsvAndTxt(tableConf, content, " ");
176
+ }
177
+ function parseHTML(tableConf, content) {
178
+ const domParser = new DOMParser();
179
+ const xmlDoc = domParser.parseFromString(content, "text/html");
180
+ const bodyNodes = getElementsByTagName(xmlDoc, "body");
181
+ const rows = [];
182
+ const fields = [];
183
+ if (bodyNodes.length) {
184
+ const tableNodes = getElementsByTagName(bodyNodes[0], "table");
185
+ if (tableNodes.length) {
186
+ const theadNodes = getElementsByTagName(tableNodes[0], "thead");
187
+ if (theadNodes.length) {
188
+ index.default.arrayEach(getElementsByTagName(theadNodes[0], "tr"), (rowNode) => {
189
+ index.default.arrayEach(getElementsByTagName(rowNode, "th"), (cellNode) => {
190
+ fields.push(toExportField(tableConf, cellNode.textContent || ""));
191
+ });
192
+ });
193
+ const tbodyNodes = getElementsByTagName(tableNodes[0], "tbody");
194
+ if (tbodyNodes.length) {
195
+ index.default.arrayEach(getElementsByTagName(tbodyNodes[0], "tr"), (rowNode) => {
196
+ const item = {};
197
+ index.default.arrayEach(getElementsByTagName(rowNode, "td"), (cellNode, colIndex) => {
198
+ if (fields[colIndex]) {
199
+ item[fields[colIndex]] = cellNode.textContent || "";
200
+ }
201
+ });
202
+ rows.push(item);
203
+ });
204
+ }
205
+ }
206
+ }
207
+ }
208
+ return { fields, rows };
209
+ }
210
+ function parseXML(tableConf, content) {
211
+ const domParser = new DOMParser();
212
+ const xmlDoc = domParser.parseFromString(content, "application/xml");
213
+ const sheetNodes = getElementsByTagName(xmlDoc, "Worksheet");
214
+ const rows = [];
215
+ const fields = [];
216
+ if (sheetNodes.length) {
217
+ const tableNodes = getElementsByTagName(sheetNodes[0], "Table");
218
+ if (tableNodes.length) {
219
+ const rowNodes = getElementsByTagName(tableNodes[0], "Row");
220
+ if (rowNodes.length) {
221
+ index.default.arrayEach(getElementsByTagName(rowNodes[0], "Cell"), (cellNode) => {
222
+ fields.push(toExportField(tableConf, cellNode.textContent || ""));
223
+ });
224
+ index.default.arrayEach(rowNodes, (rowNode, index$1) => {
225
+ if (index$1) {
226
+ const item = {};
227
+ const cellNodes = getElementsByTagName(rowNode, "Cell");
228
+ index.default.arrayEach(cellNodes, (cellNode, colIndex) => {
229
+ if (fields[colIndex]) {
230
+ item[fields[colIndex]] = cellNode.textContent;
231
+ }
232
+ });
233
+ rows.push(item);
234
+ }
235
+ });
236
+ }
237
+ }
238
+ }
239
+ return { fields, rows };
240
+ }
241
+ function clearColumnConvert(columns) {
242
+ index.default.eachTree(columns, (column) => {
243
+ delete column._level;
244
+ delete column._colSpan;
245
+ delete column._rowSpan;
246
+ delete column._children;
247
+ delete column.childNodes;
248
+ }, { children: "children" });
249
+ }
250
+ const tableExportMethodKeys = ["exportData", "importByFile", "importData", "saveFile", "readFile", "print", "getPrintHtml", "openImport", "closeImport", "openExport", "closeExport", "openPrint", "closePrint"];
251
+ hooks.add("tableExportModule", {
252
+ setupTable($xeTable) {
253
+ const { props, reactData, internalData } = $xeTable;
254
+ const { computeTreeOpts, computePrintOpts, computeExportOpts, computeImportOpts, computeCustomOpts, computeSeqOpts, computeRadioOpts, computeCheckboxOpts, computeColumnOpts } = $xeTable.getComputeMaps();
255
+ const $xeGrid = vue.inject("$xeGrid", null);
256
+ const hasTreeChildren = (row) => {
257
+ const treeOpts = computeTreeOpts.value;
258
+ const childrenField = treeOpts.children || treeOpts.childrenField;
259
+ return row[childrenField] && row[childrenField].length;
260
+ };
261
+ const getSeq = (cellValue, row, $rowIndex, column, $columnIndex) => {
262
+ const seqOpts = computeSeqOpts.value;
263
+ const seqMethod = seqOpts.seqMethod || column.seqMethod;
264
+ if (seqMethod) {
265
+ return seqMethod({
266
+ $table: $xeTable,
267
+ row,
268
+ rowIndex: $xeTable.getRowIndex(row),
269
+ $rowIndex,
270
+ column,
271
+ columnIndex: $xeTable.getColumnIndex(column),
272
+ $columnIndex
273
+ });
274
+ }
275
+ return cellValue;
276
+ };
277
+ function getHeaderTitle(opts, column) {
278
+ const columnOpts = computeColumnOpts.value;
279
+ const headExportMethod = column.headerExportMethod || columnOpts.headerExportMethod;
280
+ return headExportMethod ? headExportMethod({ column, options: opts, $table: $xeTable }) : (opts.isTitle ? column.getTitle() : column.field) || "";
281
+ }
282
+ const toBooleanValue = (cellValue) => {
283
+ return index.default.isBoolean(cellValue) ? cellValue ? "TRUE" : "FALSE" : cellValue;
284
+ };
285
+ const toStringValue = (cellValue) => {
286
+ return utils.eqEmptyValue(cellValue) ? "" : `${cellValue}`;
287
+ };
288
+ const getBodyLabelData = (opts, columns, datas) => {
289
+ const { isAllExpand, mode } = opts;
290
+ const { treeConfig } = props;
291
+ const radioOpts = computeRadioOpts.value;
292
+ const checkboxOpts = computeCheckboxOpts.value;
293
+ const treeOpts = computeTreeOpts.value;
294
+ const columnOpts = computeColumnOpts.value;
295
+ if (!htmlCellElem) {
296
+ htmlCellElem = document.createElement("div");
297
+ }
298
+ if (treeConfig) {
299
+ const childrenField = treeOpts.children || treeOpts.childrenField;
300
+ const rest = [];
301
+ const expandMaps = /* @__PURE__ */ new Map();
302
+ index.default.eachTree(datas, (item, $rowIndex, items, path, parent, nodes) => {
303
+ const row = item._row || item;
304
+ const parentRow = parent && parent._row ? parent._row : parent;
305
+ if (isAllExpand || !parentRow || expandMaps.has(parentRow) && $xeTable.isTreeExpandByRow(parentRow)) {
306
+ const hasRowChild = hasTreeChildren(row);
307
+ const item2 = {
308
+ _row: row,
309
+ _level: nodes.length - 1,
310
+ _hasChild: hasRowChild,
311
+ _expand: hasRowChild && $xeTable.isTreeExpandByRow(row)
312
+ };
313
+ columns.forEach((column, $columnIndex) => {
314
+ let cellValue = "";
315
+ const renderOpts = column.editRender || column.cellRender;
316
+ let bodyExportMethod = column.exportMethod || columnOpts.exportMethod;
317
+ if (!bodyExportMethod && renderOpts && renderOpts.name) {
318
+ const compConf = renderer.get(renderOpts.name);
319
+ if (compConf) {
320
+ bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod;
321
+ }
322
+ }
323
+ if (!bodyExportMethod) {
324
+ bodyExportMethod = columnOpts.exportMethod;
325
+ }
326
+ if (bodyExportMethod) {
327
+ cellValue = bodyExportMethod({ $table: $xeTable, row, column, options: opts });
328
+ } else {
329
+ switch (column.type) {
330
+ case "seq": {
331
+ const seqVal = path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : ".").join("");
332
+ cellValue = mode === "all" ? seqVal : getSeq(seqVal, row, $rowIndex, column, $columnIndex);
333
+ break;
334
+ }
335
+ case "checkbox":
336
+ cellValue = toBooleanValue($xeTable.isCheckedByCheckboxRow(row));
337
+ item2._checkboxLabel = checkboxOpts.labelField ? index.default.get(row, checkboxOpts.labelField) : "";
338
+ item2._checkboxDisabled = checkboxOpts.checkMethod && !checkboxOpts.checkMethod({ $table: $xeTable, row });
339
+ break;
340
+ case "radio":
341
+ cellValue = toBooleanValue($xeTable.isCheckedByRadioRow(row));
342
+ item2._radioLabel = radioOpts.labelField ? index.default.get(row, radioOpts.labelField) : "";
343
+ item2._radioDisabled = radioOpts.checkMethod && !radioOpts.checkMethod({ $table: $xeTable, row });
344
+ break;
345
+ default:
346
+ if (opts.original) {
347
+ cellValue = util.getCellValue(row, column);
348
+ } else {
349
+ cellValue = $xeTable.getCellLabel(row, column);
350
+ if (column.type === "html") {
351
+ htmlCellElem.innerHTML = cellValue;
352
+ cellValue = htmlCellElem.innerText.trim();
353
+ } else {
354
+ const cell = $xeTable.getCellElement(row, column);
355
+ if (cell && !dom.hasClass(cell, "is--progress")) {
356
+ cellValue = cell.innerText.trim();
357
+ }
358
+ }
359
+ }
360
+ }
361
+ }
362
+ item2[column.id] = toStringValue(cellValue);
363
+ });
364
+ expandMaps.set(row, 1);
365
+ rest.push(Object.assign(item2, row));
366
+ }
367
+ }, { children: childrenField });
368
+ return rest;
369
+ }
370
+ return datas.map((row, $rowIndex) => {
371
+ const item = {
372
+ _row: row
373
+ };
374
+ columns.forEach((column, $columnIndex) => {
375
+ let cellValue = "";
376
+ const renderOpts = column.editRender || column.cellRender;
377
+ let bodyExportMethod = column.exportMethod || columnOpts.exportMethod;
378
+ if (!bodyExportMethod && renderOpts && renderOpts.name) {
379
+ const compConf = renderer.get(renderOpts.name);
380
+ if (compConf) {
381
+ bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod;
382
+ }
383
+ }
384
+ if (bodyExportMethod) {
385
+ cellValue = bodyExportMethod({ $table: $xeTable, row, column, options: opts });
386
+ } else {
387
+ switch (column.type) {
388
+ case "seq": {
389
+ const seqValue = $rowIndex + 1;
390
+ cellValue = mode === "all" ? seqValue : getSeq(seqValue, row, $rowIndex, column, $columnIndex);
391
+ break;
392
+ }
393
+ case "checkbox":
394
+ cellValue = toBooleanValue($xeTable.isCheckedByCheckboxRow(row));
395
+ item._checkboxLabel = checkboxOpts.labelField ? index.default.get(row, checkboxOpts.labelField) : "";
396
+ item._checkboxDisabled = checkboxOpts.checkMethod && !checkboxOpts.checkMethod({ $table: $xeTable, row });
397
+ break;
398
+ case "radio":
399
+ cellValue = toBooleanValue($xeTable.isCheckedByRadioRow(row));
400
+ item._radioLabel = radioOpts.labelField ? index.default.get(row, radioOpts.labelField) : "";
401
+ item._radioDisabled = radioOpts.checkMethod && !radioOpts.checkMethod({ $table: $xeTable, row });
402
+ break;
403
+ default:
404
+ if (opts.original) {
405
+ cellValue = util.getCellValue(row, column);
406
+ } else {
407
+ cellValue = $xeTable.getCellLabel(row, column);
408
+ if (column.type === "html") {
409
+ htmlCellElem.innerHTML = cellValue;
410
+ cellValue = htmlCellElem.innerText.trim();
411
+ } else {
412
+ const cell = $xeTable.getCellElement(row, column);
413
+ if (cell && !dom.hasClass(cell, "is--progress")) {
414
+ cellValue = cell.innerText.trim();
415
+ }
416
+ }
417
+ }
418
+ }
419
+ }
420
+ item[column.id] = toStringValue(cellValue);
421
+ });
422
+ return item;
423
+ });
424
+ };
425
+ const getExportData = (opts) => {
426
+ const { columns, dataFilterMethod } = opts;
427
+ let datas = opts.data;
428
+ if (dataFilterMethod) {
429
+ datas = datas.filter((row, index2) => dataFilterMethod({ $table: $xeTable, row, $rowIndex: index2 }));
430
+ }
431
+ return getBodyLabelData(opts, columns, datas);
432
+ };
433
+ const getFooterCellValue = (opts, row, column) => {
434
+ const columnOpts = computeColumnOpts.value;
435
+ const renderOpts = column.editRender || column.cellRender;
436
+ let footLabelMethod = column.footerExportMethod;
437
+ if (!footLabelMethod && renderOpts && renderOpts.name) {
438
+ const compConf = renderer.get(renderOpts.name);
439
+ if (compConf) {
440
+ footLabelMethod = compConf.tableFooterExportMethod || compConf.footerExportMethod;
441
+ }
442
+ }
443
+ if (!footLabelMethod) {
444
+ footLabelMethod = columnOpts.footerExportMethod;
445
+ }
446
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
447
+ if (footLabelMethod) {
448
+ return footLabelMethod({ $table: $xeTable, items: row, itemIndex: _columnIndex, row, _columnIndex, column, options: opts });
449
+ }
450
+ if (index.default.isArray(row)) {
451
+ return index.default.toValueString(row[_columnIndex]);
452
+ }
453
+ return index.default.get(row, column.field);
454
+ };
455
+ const toCsv = ($xeTable2, opts, columns, datas) => {
456
+ let content = csvBOM;
457
+ if (opts.isHeader) {
458
+ content += columns.map((column) => toTxtCellLabel(getHeaderTitle(opts, column))).join(",") + enterSymbol;
459
+ }
460
+ datas.forEach((row) => {
461
+ content += columns.map((column) => toTxtCellLabel(getCsvCellTypeLabel(column, row[column.id]))).join(",") + enterSymbol;
462
+ });
463
+ if (opts.isFooter) {
464
+ const { footerTableData } = reactData;
465
+ const footers = getFooterData($xeTable2, opts, footerTableData);
466
+ footers.forEach((row) => {
467
+ content += columns.map((column) => toTxtCellLabel(getFooterCellValue(opts, row, column))).join(",") + enterSymbol;
468
+ });
469
+ }
470
+ return content;
471
+ };
472
+ const toTxt = ($xeTable2, opts, columns, datas) => {
473
+ let content = "";
474
+ if (opts.isHeader) {
475
+ content += columns.map((column) => toTxtCellLabel(getHeaderTitle(opts, column))).join(" ") + enterSymbol;
476
+ }
477
+ datas.forEach((row) => {
478
+ content += columns.map((column) => toTxtCellLabel(row[column.id])).join(" ") + enterSymbol;
479
+ });
480
+ if (opts.isFooter) {
481
+ const { footerTableData } = reactData;
482
+ const footers = getFooterData($xeTable2, opts, footerTableData);
483
+ footers.forEach((row) => {
484
+ content += columns.map((column) => toTxtCellLabel(getFooterCellValue(opts, row, column))).join(" ") + enterSymbol;
485
+ });
486
+ }
487
+ return content;
488
+ };
489
+ const hasEllipsis = (column, property, allColumnOverflow) => {
490
+ const columnOverflow = column[property];
491
+ const headOverflow = index.default.isUndefined(columnOverflow) || index.default.isNull(columnOverflow) ? allColumnOverflow : columnOverflow;
492
+ const showEllipsis = headOverflow === "ellipsis";
493
+ const showTitle = headOverflow === "title";
494
+ const showTooltip = headOverflow === true || headOverflow === "tooltip";
495
+ let isEllipsis = showTitle || showTooltip || showEllipsis;
496
+ const { scrollXLoad, scrollYLoad } = reactData;
497
+ if ((scrollXLoad || scrollYLoad) && !isEllipsis) {
498
+ isEllipsis = true;
499
+ }
500
+ return isEllipsis;
501
+ };
502
+ const toHtml = (opts, columns, datas) => {
503
+ const { id, border, treeConfig, headerAlign: allHeaderAlign, align: allAlign, footerAlign: allFooterAlign, showOverflow: allColumnOverflow, showHeaderOverflow: allColumnHeaderOverflow } = props;
504
+ const { isAllSelected, isIndeterminate } = reactData;
505
+ const { mergeBodyCellMaps } = internalData;
506
+ const treeOpts = computeTreeOpts.value;
507
+ const { print: isPrint, isHeader, isFooter, isColgroup, isMerge, colgroups, original } = opts;
508
+ const allCls = "check-all";
509
+ const clss = [
510
+ "vxe-table",
511
+ `border--${toTableBorder(border)}`,
512
+ isPrint ? "is--print" : "",
513
+ isHeader ? "is--header" : ""
514
+ ].filter((cls) => cls);
515
+ const tables = [
516
+ `<table class="${clss.join(" ")}" border="0" cellspacing="0" cellpadding="0">`,
517
+ `<colgroup>${columns.map((column) => `<col style="width:${column.renderWidth}px">`).join("")}</colgroup>`
518
+ ];
519
+ if (isHeader) {
520
+ tables.push("<thead>");
521
+ if (isColgroup && !original) {
522
+ colgroups.forEach((cols) => {
523
+ tables.push(`<tr>${cols.map((column) => {
524
+ const headAlign = column.headerAlign || column.align || allHeaderAlign || allAlign;
525
+ const classNames = hasEllipsis(column, "showHeaderOverflow", allColumnHeaderOverflow) ? ["col--ellipsis"] : [];
526
+ const cellTitle = getHeaderTitle(opts, column);
527
+ let childWidth = 0;
528
+ let countChild = 0;
529
+ index.default.eachTree([column], (item) => {
530
+ if (!item.childNodes || !column.childNodes.length) {
531
+ countChild++;
532
+ }
533
+ childWidth += item.renderWidth;
534
+ }, { children: "childNodes" });
535
+ const cellWidth = childWidth - countChild;
536
+ if (headAlign) {
537
+ classNames.push(`col--${headAlign}`);
538
+ }
539
+ if (column.type === "checkbox") {
540
+ return `<th class="${classNames.join(" ")}" colspan="${column._colSpan}" rowspan="${column._rowSpan}"><div ${isPrint ? "" : `style="width: ${cellWidth}px"`}><input type="checkbox" class="${allCls}" ${isAllSelected ? "checked" : ""}><span>${cellTitle}</span></div></th>`;
541
+ }
542
+ return `<th class="${classNames.join(" ")}" colspan="${column._colSpan}" rowspan="${column._rowSpan}" title="${cellTitle}"><div ${isPrint ? "" : `style="width: ${cellWidth}px"`}><span>${utils.formatText(cellTitle, true)}</span></div></th>`;
543
+ }).join("")}</tr>`);
544
+ });
545
+ } else {
546
+ tables.push(`<tr>${columns.map((column) => {
547
+ const headAlign = column.headerAlign || column.align || allHeaderAlign || allAlign;
548
+ const classNames = hasEllipsis(column, "showHeaderOverflow", allColumnHeaderOverflow) ? ["col--ellipsis"] : [];
549
+ const cellTitle = getHeaderTitle(opts, column);
550
+ if (headAlign) {
551
+ classNames.push(`col--${headAlign}`);
552
+ }
553
+ if (column.type === "checkbox") {
554
+ return `<th class="${classNames.join(" ")}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="checkbox" class="${allCls}" ${isAllSelected ? "checked" : ""}><span>${cellTitle}</span></div></th>`;
555
+ }
556
+ return `<th class="${classNames.join(" ")}" title="${cellTitle}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><span>${utils.formatText(cellTitle, true)}</span></div></th>`;
557
+ }).join("")}</tr>`);
558
+ }
559
+ tables.push("</thead>");
560
+ }
561
+ if (datas.length) {
562
+ tables.push("<tbody>");
563
+ if (treeConfig) {
564
+ datas.forEach((item) => {
565
+ tables.push("<tr>" + columns.map((column) => {
566
+ const colid = column.id;
567
+ const cellAlign = column.align || allAlign;
568
+ const classNames = hasEllipsis(column, "showOverflow", allColumnOverflow) ? ["col--ellipsis"] : [];
569
+ const cellValue = item[colid];
570
+ if (cellAlign) {
571
+ classNames.push(`col--${cellAlign}`);
572
+ }
573
+ if (column.treeNode) {
574
+ let treeIcon = "";
575
+ if (item._hasChild) {
576
+ treeIcon = `<i class="${item._expand ? "vxe-table--tree-fold-icon" : "vxe-table--tree-unfold-icon"}"></i>`;
577
+ }
578
+ classNames.push("vxe-table--tree-node");
579
+ if (column.type === "radio") {
580
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${item._level * treeOpts.indent}px"><div class="vxe-table--tree-icon-wrapper">${treeIcon}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${id}" ${item._radioDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._radioLabel}</span></div></div></div></td>`;
581
+ } else if (column.type === "checkbox") {
582
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${item._level * treeOpts.indent}px"><div class="vxe-table--tree-icon-wrapper">${treeIcon}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${item._checkboxDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._checkboxLabel}</span></div></div></div></td>`;
583
+ }
584
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${item._level * treeOpts.indent}px"><div class="vxe-table--tree-icon-wrapper">${treeIcon}</div><div class="vxe-table--tree-cell">${cellValue}</div></div></div></td>`;
585
+ }
586
+ if (column.type === "radio") {
587
+ return `<td class="${classNames.join(" ")}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="radio" name="radio_${id}" ${item._radioDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._radioLabel}</span></div></td>`;
588
+ } else if (column.type === "checkbox") {
589
+ return `<td class="${classNames.join(" ")}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="checkbox" ${item._checkboxDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._checkboxLabel}</span></div></td>`;
590
+ }
591
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}>${utils.formatText(cellValue, true)}</div></td>`;
592
+ }).join("") + "</tr>");
593
+ });
594
+ } else {
595
+ datas.forEach((item) => {
596
+ tables.push("<tr>" + columns.map((column) => {
597
+ const cellAlign = column.align || allAlign;
598
+ const classNames = hasEllipsis(column, "showOverflow", allColumnOverflow) ? ["col--ellipsis"] : [];
599
+ const cellValue = item[column.id];
600
+ let rowSpan = 1;
601
+ let colSpan = 1;
602
+ if (isMerge) {
603
+ const _rowIndex = $xeTable.getVTRowIndex(item._row);
604
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
605
+ const spanRest = mergeBodyCellMaps[`${_rowIndex}:${_columnIndex}`];
606
+ if (spanRest) {
607
+ const { rowspan, colspan } = spanRest;
608
+ if (!rowspan || !colspan) {
609
+ return "";
610
+ }
611
+ if (rowspan > 1) {
612
+ rowSpan = rowspan;
613
+ }
614
+ if (colspan > 1) {
615
+ colSpan = colspan;
616
+ }
617
+ }
618
+ }
619
+ if (cellAlign) {
620
+ classNames.push(`col--${cellAlign}`);
621
+ }
622
+ if (column.type === "radio") {
623
+ return `<td class="${classNames.join(" ")}" rowspan="${rowSpan}" colspan="${colSpan}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="radio" name="radio_${id}" ${item._radioDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._radioLabel}</span></div></td>`;
624
+ } else if (column.type === "checkbox") {
625
+ return `<td class="${classNames.join(" ")}" rowspan="${rowSpan}" colspan="${colSpan}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}><input type="checkbox" ${item._checkboxDisabled ? "disabled " : ""}${getBooleanValue(cellValue) ? "checked" : ""}><span>${item._checkboxLabel}</span></div></td>`;
626
+ }
627
+ return `<td class="${classNames.join(" ")}" rowspan="${rowSpan}" colspan="${colSpan}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}>${utils.formatText(cellValue, true)}</div></td>`;
628
+ }).join("") + "</tr>");
629
+ });
630
+ }
631
+ tables.push("</tbody>");
632
+ }
633
+ if (isFooter) {
634
+ const { footerTableData } = reactData;
635
+ const footers = getFooterData($xeTable, opts, footerTableData);
636
+ if (footers.length) {
637
+ tables.push("<tfoot>");
638
+ footers.forEach((row) => {
639
+ tables.push(`<tr>${columns.map((column) => {
640
+ const footAlign = column.footerAlign || column.align || allFooterAlign || allAlign;
641
+ const classNames = hasEllipsis(column, "showOverflow", allColumnOverflow) ? ["col--ellipsis"] : [];
642
+ const cellValue = getFooterCellValue(opts, row, column);
643
+ if (footAlign) {
644
+ classNames.push(`col--${footAlign}`);
645
+ }
646
+ return `<td class="${classNames.join(" ")}" title="${cellValue}"><div ${isPrint ? "" : `style="width: ${column.renderWidth}px"`}>${utils.formatText(cellValue, true)}</div></td>`;
647
+ }).join("")}</tr>`);
648
+ });
649
+ tables.push("</tfoot>");
650
+ }
651
+ }
652
+ const script = !isAllSelected && isIndeterminate ? `<script>(function(){var a=document.querySelector(".${allCls}");if(a){a.indeterminate=true}})()<\/script>` : "";
653
+ tables.push("</table>", script);
654
+ return isPrint ? tables.join("") : util$1.createHtmlPage(opts, tables.join(""));
655
+ };
656
+ const toXML = (opts, columns, datas) => {
657
+ let xml = [
658
+ '<?xml version="1.0"?>',
659
+ '<?mso-application progid="Excel.Sheet"?>',
660
+ '<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">',
661
+ '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">',
662
+ "<Version>16.00</Version>",
663
+ "</DocumentProperties>",
664
+ '<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">',
665
+ "<WindowHeight>7920</WindowHeight>",
666
+ "<WindowWidth>21570</WindowWidth>",
667
+ "<WindowTopX>32767</WindowTopX>",
668
+ "<WindowTopY>32767</WindowTopY>",
669
+ "<ProtectStructure>False</ProtectStructure>",
670
+ "<ProtectWindows>False</ProtectWindows>",
671
+ "</ExcelWorkbook>",
672
+ `<Worksheet ss:Name="${opts.sheetName}">`,
673
+ "<Table>",
674
+ columns.map((column) => `<Column ss:Width="${column.renderWidth}"/>`).join("")
675
+ ].join("");
676
+ if (opts.isHeader) {
677
+ xml += `<Row>${columns.map((column) => `<Cell><Data ss:Type="String">${getHeaderTitle(opts, column)}</Data></Cell>`).join("")}</Row>`;
678
+ }
679
+ datas.forEach((row) => {
680
+ xml += "<Row>" + columns.map((column) => `<Cell><Data ss:Type="String">${row[column.id]}</Data></Cell>`).join("") + "</Row>";
681
+ });
682
+ if (opts.isFooter) {
683
+ const { footerTableData } = reactData;
684
+ const footers = getFooterData($xeTable, opts, footerTableData);
685
+ footers.forEach((row) => {
686
+ xml += `<Row>${columns.map((column) => `<Cell><Data ss:Type="String">${getFooterCellValue(opts, row, column)}</Data></Cell>`).join("")}</Row>`;
687
+ });
688
+ }
689
+ return `${xml}</Table></Worksheet></Workbook>`;
690
+ };
691
+ const getContent = ($xeTable2, opts, columns, datas) => {
692
+ if (columns.length) {
693
+ switch (opts.type) {
694
+ case "csv":
695
+ return toCsv($xeTable2, opts, columns, datas);
696
+ case "txt":
697
+ return toTxt($xeTable2, opts, columns, datas);
698
+ case "html":
699
+ return toHtml(opts, columns, datas);
700
+ case "xml":
701
+ return toXML(opts, columns, datas);
702
+ }
703
+ }
704
+ return "";
705
+ };
706
+ const downloadFile = (opts, content) => {
707
+ const { filename, type, download } = opts;
708
+ if (!download) {
709
+ const blob = util$1.getExportBlobByContent(content, opts);
710
+ return Promise.resolve({ type, content, blob });
711
+ }
712
+ if (index_esm.VxeUI.saveFile) {
713
+ index_esm.VxeUI.saveFile({ filename, type, content }).then(() => {
714
+ if (opts.message !== false) {
715
+ if (index_esm.VxeUI.modal) {
716
+ index_esm.VxeUI.modal.message({ content: getI18n("vxe.table.expSuccess"), status: "success" });
717
+ }
718
+ }
719
+ });
720
+ }
721
+ };
722
+ const handleExport = (opts) => {
723
+ const { remote, columns, colgroups, exportMethod, afterExportMethod } = opts;
724
+ return new Promise((resolve) => {
725
+ if (remote) {
726
+ const params = { options: opts, $table: $xeTable, $grid: $xeGrid };
727
+ resolve(exportMethod ? exportMethod(params) : params);
728
+ } else {
729
+ const datas = getExportData(opts);
730
+ resolve($xeTable.preventEvent(null, "event.export", { options: opts, columns, colgroups, datas }, () => {
731
+ return downloadFile(opts, getContent($xeTable, opts, columns, datas));
732
+ }));
733
+ }
734
+ }).then((params) => {
735
+ clearColumnConvert(columns);
736
+ if (!opts.print) {
737
+ if (afterExportMethod) {
738
+ afterExportMethod({ status: true, options: opts, $table: $xeTable, $grid: $xeGrid });
739
+ }
740
+ }
741
+ return Object.assign({ status: true }, params);
742
+ }).catch(() => {
743
+ clearColumnConvert(columns);
744
+ if (!opts.print) {
745
+ if (afterExportMethod) {
746
+ afterExportMethod({ status: false, options: opts, $table: $xeTable, $grid: $xeGrid });
747
+ }
748
+ }
749
+ const params = { status: false };
750
+ return Promise.reject(params);
751
+ });
752
+ };
753
+ const handleImport = (content, opts) => {
754
+ const { tableFullColumn, _importResolve, _importReject } = internalData;
755
+ let rest = { fields: [], rows: [] };
756
+ const tableFieldMaps = {};
757
+ const tableTitleMaps = {};
758
+ tableFullColumn.forEach((column) => {
759
+ const field = column.field;
760
+ const title = column.getTitle();
761
+ if (field) {
762
+ tableFieldMaps[field] = column;
763
+ }
764
+ if (title) {
765
+ tableTitleMaps[column.getTitle()] = column;
766
+ }
767
+ });
768
+ const tableConf = {
769
+ fieldMaps: tableFieldMaps,
770
+ titleMaps: tableTitleMaps
771
+ };
772
+ switch (opts.type) {
773
+ case "csv":
774
+ rest = parseCsv(tableConf, content);
775
+ break;
776
+ case "txt":
777
+ rest = parseTxt(tableConf, content);
778
+ break;
779
+ case "html":
780
+ rest = parseHTML(tableConf, content);
781
+ break;
782
+ case "xml":
783
+ rest = parseXML(tableConf, content);
784
+ break;
785
+ }
786
+ const { fields, rows } = rest;
787
+ const status = fields.some((field) => tableFieldMaps[field] || tableTitleMaps[field]);
788
+ if (status) {
789
+ $xeTable.createData(rows).then((data) => {
790
+ let loadRest;
791
+ if (opts.mode === "insert" || opts.mode === "insertBottom") {
792
+ loadRest = $xeTable.insertAt(data, -1);
793
+ }
794
+ if (opts.mode === "insertTop") {
795
+ loadRest = $xeTable.insert(data);
796
+ } else {
797
+ loadRest = $xeTable.reloadData(data);
798
+ }
799
+ if (opts.message !== false) {
800
+ if (index_esm.VxeUI.modal) {
801
+ index_esm.VxeUI.modal.message({ content: getI18n("vxe.table.impSuccess", [rows.length]), status: "success" });
802
+ }
803
+ }
804
+ return loadRest.then(() => {
805
+ if (_importResolve) {
806
+ _importResolve({ status: true });
807
+ }
808
+ });
809
+ });
810
+ } else if (opts.message !== false) {
811
+ if (index_esm.VxeUI.modal) {
812
+ index_esm.VxeUI.modal.message({ content: getI18n("vxe.error.impFields"), status: "error" });
813
+ }
814
+ if (_importReject) {
815
+ _importReject({ status: false });
816
+ }
817
+ }
818
+ };
819
+ const handleFileImport = (file, opts) => {
820
+ const { importMethod, afterImportMethod } = opts;
821
+ const { type, filename } = utils.parseFile(file);
822
+ const importOpts = computeImportOpts.value;
823
+ if (!importMethod && !index.default.includes(index.default.keys(importOpts._typeMaps), type)) {
824
+ if (opts.message !== false) {
825
+ if (index_esm.VxeUI.modal) {
826
+ index_esm.VxeUI.modal.message({ content: getI18n("vxe.error.notType", [type]), status: "error" });
827
+ }
828
+ }
829
+ const params = { status: false };
830
+ return Promise.reject(params);
831
+ }
832
+ const rest = new Promise((resolve, reject) => {
833
+ const _importResolve = (params) => {
834
+ resolve(params);
835
+ internalData._importResolve = null;
836
+ internalData._importReject = null;
837
+ };
838
+ const _importReject = (params) => {
839
+ reject(params);
840
+ internalData._importResolve = null;
841
+ internalData._importReject = null;
842
+ };
843
+ internalData._importResolve = _importResolve;
844
+ internalData._importReject = _importReject;
845
+ if (window.FileReader) {
846
+ const options = Object.assign({ mode: "insertTop" }, opts, { type, filename });
847
+ if (options.remote) {
848
+ if (importMethod) {
849
+ Promise.resolve(importMethod({ file, options, $table: $xeTable })).then(() => {
850
+ _importResolve({ status: true });
851
+ }).catch(() => {
852
+ _importResolve({ status: true });
853
+ });
854
+ } else {
855
+ _importResolve({ status: true });
856
+ }
857
+ } else {
858
+ const { tableFullColumn } = internalData;
859
+ $xeTable.preventEvent(null, "event.import", { file, options, columns: tableFullColumn }, () => {
860
+ const reader = new FileReader();
861
+ reader.onerror = () => {
862
+ log.errLog("vxe.error.notType", [type]);
863
+ _importReject({ status: false });
864
+ };
865
+ reader.onload = (e) => {
866
+ handleImport(e.target.result, options);
867
+ };
868
+ reader.readAsText(file, options.encoding || "UTF-8");
869
+ });
870
+ }
871
+ } else {
872
+ log.errLog("vxe.error.notExp");
873
+ _importResolve({ status: true });
874
+ }
875
+ });
876
+ return rest.then(() => {
877
+ if (afterImportMethod) {
878
+ afterImportMethod({ status: true, options: opts, $table: $xeTable });
879
+ }
880
+ }).catch((e) => {
881
+ if (afterImportMethod) {
882
+ afterImportMethod({ status: false, options: opts, $table: $xeTable });
883
+ }
884
+ return Promise.reject(e);
885
+ });
886
+ };
887
+ const handleFilterColumns = (exportOpts, column, columns) => {
888
+ return columns.some((item) => {
889
+ if (util.isColumnInfo(item)) {
890
+ return column.id === item.id;
891
+ } else if (index.default.isString(item)) {
892
+ return column.field === item;
893
+ } else {
894
+ const colid = item.id || item.colId;
895
+ const type = item.type;
896
+ const field = item.field;
897
+ if (colid) {
898
+ return column.id === colid;
899
+ } else if (field && type) {
900
+ return column.field === field && column.type === type;
901
+ } else if (field) {
902
+ return column.field === field;
903
+ } else if (type) {
904
+ return column.type === type;
905
+ }
906
+ }
907
+ return false;
908
+ });
909
+ };
910
+ const handleFilterFields = (exportOpts, column, includeFields, excludeFields) => {
911
+ if (excludeFields) {
912
+ if (index.default.includes(excludeFields, column.field)) {
913
+ return false;
914
+ }
915
+ }
916
+ if (includeFields) {
917
+ if (index.default.includes(includeFields, column.field)) {
918
+ return true;
919
+ }
920
+ return false;
921
+ }
922
+ return exportOpts.original ? column.field : defaultFilterExportColumn(column);
923
+ };
924
+ const handleExportAndPrint = (options, isPrint) => {
925
+ const { treeConfig, showHeader, showFooter } = props;
926
+ const { initStore, isGroup, footerTableData, exportStore, exportParams } = reactData;
927
+ const { collectColumn, mergeBodyList, mergeFooterList } = internalData;
928
+ const exportOpts = computeExportOpts.value;
929
+ const hasTree = treeConfig;
930
+ const customOpts = computeCustomOpts.value;
931
+ const selectRecords = $xeTable.getCheckboxRecords();
932
+ const proxyOpts = $xeGrid ? $xeGrid.getComputeMaps().computeProxyOpts.value : {};
933
+ const hasFooter = !!footerTableData.length;
934
+ const hasMerge = !!(mergeBodyList.length || mergeFooterList.length);
935
+ const defOpts = Object.assign({
936
+ message: true,
937
+ isHeader: showHeader,
938
+ isTitle: showHeader,
939
+ isFooter: showFooter,
940
+ isColgroup: isGroup,
941
+ isMerge: hasMerge,
942
+ useStyle: true,
943
+ current: "current",
944
+ modes: (proxyOpts.ajax && proxyOpts.ajax.queryAll ? ["all"] : []).concat(["current", "selected", "empty"])
945
+ }, options);
946
+ const types = defOpts.types || index.default.keys(exportOpts._typeMaps);
947
+ const modes = defOpts.modes || [];
948
+ const checkMethod = customOpts.checkMethod;
949
+ const exportColumns = collectColumn.slice(0);
950
+ const { columns, excludeFields, includeFields } = defOpts;
951
+ const typeList = types.map((value) => {
952
+ return {
953
+ value,
954
+ label: getI18n(`vxe.export.types.${value}`)
955
+ };
956
+ });
957
+ const modeList = modes.map((item) => {
958
+ if (item && item.value) {
959
+ return {
960
+ value: item.value,
961
+ label: item.label || item.value
962
+ };
963
+ }
964
+ return {
965
+ value: item,
966
+ label: getI18n(`vxe.export.modes.${item}`)
967
+ };
968
+ });
969
+ index.default.eachTree(exportColumns, (column, index2, items, path, parent) => {
970
+ const isColGroup = column.children && column.children.length;
971
+ let isChecked = false;
972
+ if (columns && columns.length) {
973
+ isChecked = handleFilterColumns(defOpts, column, columns);
974
+ } else if (excludeFields || includeFields) {
975
+ isChecked = handleFilterFields(defOpts, column, includeFields, excludeFields);
976
+ } else {
977
+ isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
978
+ }
979
+ column.checked = isChecked;
980
+ column.halfChecked = false;
981
+ column.disabled = parent && parent.disabled || (checkMethod ? !checkMethod({ $table: $xeTable, column }) : false);
982
+ });
983
+ Object.assign(exportStore, {
984
+ columns: exportColumns,
985
+ typeList,
986
+ modeList,
987
+ hasFooter,
988
+ hasMerge,
989
+ hasTree,
990
+ isPrint,
991
+ hasColgroup: isGroup,
992
+ visible: true
993
+ });
994
+ Object.assign(exportParams, {
995
+ mode: selectRecords.length ? "selected" : "current"
996
+ }, defOpts);
997
+ const { filename, sheetName, mode, type } = exportParams;
998
+ if (filename) {
999
+ if (index.default.isFunction(filename)) {
1000
+ exportParams.filename = filename({
1001
+ options: defOpts,
1002
+ $table: $xeTable,
1003
+ $grid: $xeGrid
1004
+ });
1005
+ } else {
1006
+ exportParams.filename = `${filename}`;
1007
+ }
1008
+ }
1009
+ if (sheetName) {
1010
+ if (index.default.isFunction(sheetName)) {
1011
+ exportParams.sheetName = sheetName({
1012
+ options: defOpts,
1013
+ $table: $xeTable,
1014
+ $grid: $xeGrid
1015
+ });
1016
+ } else {
1017
+ exportParams.sheetName = `${sheetName}`;
1018
+ }
1019
+ }
1020
+ if (!modeList.some((item) => item.value === mode)) {
1021
+ exportParams.mode = modeList[0].value;
1022
+ }
1023
+ if (!typeList.some((item) => item.value === type)) {
1024
+ exportParams.type = typeList[0].value;
1025
+ }
1026
+ initStore.export = true;
1027
+ return vue.nextTick();
1028
+ };
1029
+ const handleCloseExport = () => {
1030
+ if (index_esm.VxeUI.modal) {
1031
+ return index_esm.VxeUI.modal.close("VXE_EXPORT_MODAL");
1032
+ }
1033
+ return Promise.resolve();
1034
+ };
1035
+ const exportMethods = {
1036
+ /**
1037
+ * 导出文件,支持 csv/html/xml/txt
1038
+ * 如果是树表格,则默认是导出所有节点
1039
+ * 如果是启用了虚拟滚动,则只能导出数据源,可以配合 dataFilterMethod 函数转换数据
1040
+ * @param {Object} options 参数
1041
+ */
1042
+ exportData(options) {
1043
+ const { treeConfig, showHeader, showFooter } = props;
1044
+ const { isGroup } = reactData;
1045
+ const { tableFullColumn, afterFullData, collectColumn, mergeBodyList, mergeFooterList } = internalData;
1046
+ const exportOpts = computeExportOpts.value;
1047
+ const treeOpts = computeTreeOpts.value;
1048
+ const proxyOpts = $xeGrid ? $xeGrid.getComputeMaps().computeProxyOpts.value : {};
1049
+ const hasMerge = !!(mergeBodyList.length || mergeFooterList.length);
1050
+ const opts = Object.assign({
1051
+ message: true,
1052
+ isHeader: showHeader,
1053
+ isTitle: showHeader,
1054
+ isFooter: showFooter,
1055
+ isColgroup: isGroup,
1056
+ isMerge: hasMerge,
1057
+ useStyle: true,
1058
+ current: "current",
1059
+ modes: (proxyOpts.ajax && proxyOpts.ajax.queryAll ? ["all"] : []).concat(["current", "selected", "empty"]),
1060
+ download: true,
1061
+ type: "csv"
1062
+ // filename: '',
1063
+ // sheetName: '',
1064
+ // original: false,
1065
+ // isAllExpand: false,
1066
+ // data: null,
1067
+ // remote: false,
1068
+ // dataFilterMethod: null,
1069
+ // footerFilterMethod: null,
1070
+ // exportMethod: null,
1071
+ // columnFilterMethod: null,
1072
+ // beforeExportMethod: null,
1073
+ // afterExportMethod: null
1074
+ }, exportOpts, options);
1075
+ let { filename, sheetName, type, mode, columns, original, columnFilterMethod, beforeExportMethod, includeFields, excludeFields } = opts;
1076
+ let groups = [];
1077
+ const selectRecords = $xeTable.getCheckboxRecords();
1078
+ if (!mode) {
1079
+ mode = selectRecords.length ? "selected" : "current";
1080
+ }
1081
+ const customCols = columns && columns.length ? columns : index.default.searchTree(collectColumn, (column) => {
1082
+ const isColGroup = column.children && column.children.length;
1083
+ let isChecked = false;
1084
+ if (columns && columns.length) {
1085
+ isChecked = handleFilterColumns(opts, column, columns);
1086
+ } else if (excludeFields || includeFields) {
1087
+ isChecked = handleFilterFields(opts, column, includeFields, excludeFields);
1088
+ } else {
1089
+ isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
1090
+ }
1091
+ return isChecked;
1092
+ }, { children: "children", mapChildren: "childNodes", original: true });
1093
+ const handleOptions = Object.assign({}, opts, { filename: "", sheetName: "" });
1094
+ if (!customCols && !columnFilterMethod) {
1095
+ handleOptions.columnFilterMethod = ({ column }) => {
1096
+ if (excludeFields) {
1097
+ if (index.default.includes(excludeFields, column.field)) {
1098
+ return false;
1099
+ }
1100
+ }
1101
+ if (includeFields) {
1102
+ if (index.default.includes(includeFields, column.field)) {
1103
+ return true;
1104
+ }
1105
+ return false;
1106
+ }
1107
+ return original ? column.field : defaultFilterExportColumn(column);
1108
+ };
1109
+ }
1110
+ if (customCols) {
1111
+ handleOptions._isCustomColumn = true;
1112
+ groups = index.default.searchTree(index.default.mapTree(customCols, (item) => {
1113
+ let targetColumn;
1114
+ if (item) {
1115
+ if (util.isColumnInfo(item)) {
1116
+ targetColumn = item;
1117
+ } else if (index.default.isString(item)) {
1118
+ targetColumn = $xeTable.getColumnByField(item);
1119
+ } else {
1120
+ const colid = item.id || item.colId;
1121
+ const type2 = item.type;
1122
+ const field = item.field;
1123
+ if (colid) {
1124
+ targetColumn = $xeTable.getColumnById(colid);
1125
+ } else if (field && type2) {
1126
+ targetColumn = tableFullColumn.find((column) => column.field === field && column.type === type2);
1127
+ } else if (field) {
1128
+ targetColumn = $xeTable.getColumnByField(field);
1129
+ } else if (type2) {
1130
+ targetColumn = tableFullColumn.find((column) => column.type === type2);
1131
+ }
1132
+ }
1133
+ return targetColumn || {};
1134
+ }
1135
+ }, {
1136
+ children: "childNodes",
1137
+ mapChildren: "_children"
1138
+ }), (column, index2) => util.isColumnInfo(column) && (!columnFilterMethod || columnFilterMethod({ $table: $xeTable, column, $columnIndex: index2 })), {
1139
+ children: "_children",
1140
+ mapChildren: "childNodes",
1141
+ original: true
1142
+ });
1143
+ } else {
1144
+ groups = index.default.searchTree(isGroup ? collectColumn : tableFullColumn, (column, index2) => column.visible && (!columnFilterMethod || columnFilterMethod({ $table: $xeTable, column, $columnIndex: index2 })), { children: "children", mapChildren: "childNodes", original: true });
1145
+ }
1146
+ const cols = [];
1147
+ index.default.eachTree(groups, (column) => {
1148
+ const isColGroup = column.children && column.children.length;
1149
+ if (!isColGroup) {
1150
+ cols.push(column);
1151
+ }
1152
+ }, { children: "childNodes" });
1153
+ handleOptions.columns = cols;
1154
+ handleOptions.colgroups = convertToRows(groups);
1155
+ if (filename) {
1156
+ if (index.default.isFunction(filename)) {
1157
+ handleOptions.filename = filename({
1158
+ options: opts,
1159
+ $table: $xeTable,
1160
+ $grid: $xeGrid
1161
+ });
1162
+ } else {
1163
+ handleOptions.filename = `${filename}`;
1164
+ }
1165
+ }
1166
+ if (!handleOptions.filename) {
1167
+ handleOptions.filename = getI18n(handleOptions.original ? "vxe.table.expOriginFilename" : "vxe.table.expFilename", [index.default.toDateString(Date.now(), "yyyyMMddHHmmss")]);
1168
+ }
1169
+ if (sheetName) {
1170
+ if (index.default.isFunction(sheetName)) {
1171
+ handleOptions.sheetName = sheetName({
1172
+ options: opts,
1173
+ $table: $xeTable,
1174
+ $grid: $xeGrid
1175
+ });
1176
+ } else {
1177
+ handleOptions.sheetName = `${sheetName}`;
1178
+ }
1179
+ }
1180
+ if (!handleOptions.sheetName) {
1181
+ handleOptions.sheetName = document.title || "";
1182
+ }
1183
+ if (!handleOptions.exportMethod && !index.default.includes(index.default.keys(exportOpts._typeMaps), type)) {
1184
+ log.errLog("vxe.error.notType", [type]);
1185
+ const params = { status: false };
1186
+ return Promise.reject(params);
1187
+ }
1188
+ if (!handleOptions.print) {
1189
+ if (beforeExportMethod) {
1190
+ beforeExportMethod({ options: handleOptions, $table: $xeTable, $grid: $xeGrid });
1191
+ }
1192
+ }
1193
+ if (!handleOptions.data) {
1194
+ handleOptions.data = [];
1195
+ if (mode === "selected") {
1196
+ if (["html", "pdf"].indexOf(type) > -1 && treeConfig) {
1197
+ handleOptions.data = index.default.searchTree($xeTable.getTableData().fullData, (item) => $xeTable.findRowIndexOf(selectRecords, item) > -1, Object.assign({}, treeOpts, { data: "_row" }));
1198
+ } else {
1199
+ handleOptions.data = selectRecords;
1200
+ }
1201
+ } else if (mode === "all") {
1202
+ if ($xeGrid && !handleOptions.remote) {
1203
+ const gridReactData = $xeGrid.reactData;
1204
+ const { computeProxyOpts } = $xeGrid.getComputeMaps();
1205
+ const proxyOpts2 = computeProxyOpts.value;
1206
+ const { sortData } = gridReactData;
1207
+ const { beforeQueryAll, afterQueryAll, ajax = {} } = proxyOpts2;
1208
+ const resConfigs = proxyOpts2.response || proxyOpts2.props || {};
1209
+ const ajaxMethods = ajax.queryAll;
1210
+ const queryAllSuccessMethods = ajax.queryAllSuccess;
1211
+ const queryAllErrorMethods = ajax.queryAllError;
1212
+ if (ajaxMethods) {
1213
+ const params = {
1214
+ $table: $xeTable,
1215
+ $grid: $xeGrid,
1216
+ sort: sortData.length ? sortData[0] : {},
1217
+ sorts: sortData,
1218
+ filters: gridReactData.filterData,
1219
+ form: gridReactData.formData,
1220
+ options: handleOptions
1221
+ };
1222
+ return Promise.resolve((beforeQueryAll || ajaxMethods)(params)).then((rest) => {
1223
+ const listProp = resConfigs.list;
1224
+ handleOptions.data = (listProp ? index.default.isFunction(listProp) ? listProp({ data: rest, $grid: $xeGrid }) : index.default.get(rest, listProp) : rest) || [];
1225
+ if (afterQueryAll) {
1226
+ afterQueryAll(params);
1227
+ }
1228
+ if (queryAllSuccessMethods) {
1229
+ queryAllSuccessMethods(Object.assign(Object.assign({}, params), { response: rest }));
1230
+ }
1231
+ return handleExport(handleOptions);
1232
+ }).catch((rest) => {
1233
+ if (queryAllErrorMethods) {
1234
+ queryAllErrorMethods(Object.assign(Object.assign({}, params), { response: rest }));
1235
+ }
1236
+ });
1237
+ }
1238
+ }
1239
+ }
1240
+ if (mode === "current") {
1241
+ handleOptions.data = afterFullData;
1242
+ }
1243
+ }
1244
+ return handleExport(handleOptions);
1245
+ },
1246
+ importByFile(file, options) {
1247
+ const opts = Object.assign({}, options);
1248
+ const { beforeImportMethod } = opts;
1249
+ if (beforeImportMethod) {
1250
+ beforeImportMethod({ options: opts, $table: $xeTable });
1251
+ }
1252
+ return handleFileImport(file, opts);
1253
+ },
1254
+ importData(options) {
1255
+ const importOpts = computeImportOpts.value;
1256
+ const opts = Object.assign({
1257
+ types: index.default.keys(importOpts._typeMaps)
1258
+ // beforeImportMethod: null,
1259
+ // afterImportMethod: null
1260
+ }, importOpts, options);
1261
+ const { beforeImportMethod, afterImportMethod } = opts;
1262
+ if (beforeImportMethod) {
1263
+ beforeImportMethod({ options: opts, $table: $xeTable });
1264
+ }
1265
+ return index_esm.VxeUI.readFile(opts).catch((e) => {
1266
+ if (afterImportMethod) {
1267
+ afterImportMethod({ status: false, options: opts, $table: $xeTable });
1268
+ }
1269
+ return Promise.reject(e);
1270
+ }).then((params) => {
1271
+ const { file } = params;
1272
+ return handleFileImport(file, opts);
1273
+ });
1274
+ },
1275
+ saveFile(options) {
1276
+ return index_esm.VxeUI.saveFile(options);
1277
+ },
1278
+ readFile(options) {
1279
+ return index_esm.VxeUI.readFile(options);
1280
+ },
1281
+ print(options) {
1282
+ const printOpts = computePrintOpts.value;
1283
+ const opts = Object.assign({
1284
+ original: false
1285
+ // beforePrintMethod
1286
+ }, printOpts, options, {
1287
+ type: "html",
1288
+ download: false,
1289
+ remote: false,
1290
+ print: true
1291
+ });
1292
+ const { sheetName } = opts;
1293
+ let printTitle = "";
1294
+ if (sheetName) {
1295
+ if (index.default.isFunction(sheetName)) {
1296
+ printTitle = sheetName({
1297
+ options: opts,
1298
+ $table: $xeTable,
1299
+ $grid: $xeGrid
1300
+ });
1301
+ } else {
1302
+ printTitle = `${sheetName}`;
1303
+ }
1304
+ }
1305
+ if (!printTitle) {
1306
+ printTitle = document.title || "";
1307
+ }
1308
+ const beforePrintMethod = opts.beforePrintMethod;
1309
+ const tableHtml = opts.html || opts.content;
1310
+ return new Promise((resolve, reject) => {
1311
+ if (index_esm.VxeUI.print) {
1312
+ if (tableHtml) {
1313
+ resolve(index_esm.VxeUI.print({
1314
+ title: printTitle,
1315
+ html: tableHtml,
1316
+ customStyle: opts.style,
1317
+ beforeMethod: beforePrintMethod ? ({ html }) => {
1318
+ return beforePrintMethod({
1319
+ html,
1320
+ content: html,
1321
+ options: opts,
1322
+ $table: $xeTable
1323
+ });
1324
+ } : void 0
1325
+ }));
1326
+ } else {
1327
+ resolve(exportMethods.exportData(opts).then(({ content }) => {
1328
+ return index_esm.VxeUI.print({
1329
+ title: printTitle,
1330
+ html: content,
1331
+ customStyle: opts.style,
1332
+ beforeMethod: beforePrintMethod ? ({ html }) => {
1333
+ return beforePrintMethod({
1334
+ html,
1335
+ content: html,
1336
+ options: opts,
1337
+ $table: $xeTable
1338
+ });
1339
+ } : void 0
1340
+ });
1341
+ }));
1342
+ }
1343
+ } else {
1344
+ const e = { status: false };
1345
+ reject(e);
1346
+ }
1347
+ });
1348
+ },
1349
+ getPrintHtml(options) {
1350
+ const printOpts = computePrintOpts.value;
1351
+ const opts = Object.assign({
1352
+ original: false
1353
+ // beforePrintMethod
1354
+ }, printOpts, options, {
1355
+ type: "html",
1356
+ download: false,
1357
+ remote: false,
1358
+ print: true
1359
+ });
1360
+ return $xeTable.exportData(opts).then(({ content }) => {
1361
+ return {
1362
+ html: content
1363
+ };
1364
+ });
1365
+ },
1366
+ closeImport() {
1367
+ if (index_esm.VxeUI.modal) {
1368
+ return index_esm.VxeUI.modal.close("VXE_IMPORT_MODAL");
1369
+ }
1370
+ return Promise.resolve();
1371
+ },
1372
+ openImport(options) {
1373
+ const { treeConfig, importConfig } = props;
1374
+ const { initStore, importStore, importParams } = reactData;
1375
+ const importOpts = computeImportOpts.value;
1376
+ const defOpts = Object.assign({
1377
+ mode: "insertTop",
1378
+ message: true,
1379
+ types: index.default.keys(importOpts._typeMaps),
1380
+ modes: ["insertTop", "covering"]
1381
+ }, importOpts, options);
1382
+ const types = defOpts.types || [];
1383
+ const modes = defOpts.modes || [];
1384
+ const isTree = !!treeConfig;
1385
+ if (isTree) {
1386
+ if (defOpts.message) {
1387
+ if (index_esm.VxeUI.modal) {
1388
+ index_esm.VxeUI.modal.message({ content: getI18n("vxe.error.treeNotImp"), status: "error" });
1389
+ }
1390
+ }
1391
+ return;
1392
+ }
1393
+ if (!importConfig) {
1394
+ log.errLog("vxe.error.reqProp", ["import-config"]);
1395
+ }
1396
+ const typeList = types.map((value) => {
1397
+ return {
1398
+ value,
1399
+ label: getI18n(`vxe.export.types.${value}`)
1400
+ };
1401
+ });
1402
+ const modeList = modes.map((item) => {
1403
+ if (item && item.value) {
1404
+ return {
1405
+ value: item.value,
1406
+ label: item.label || item.value
1407
+ };
1408
+ }
1409
+ return {
1410
+ value: item,
1411
+ label: getI18n(`vxe.import.modes.${item}`)
1412
+ };
1413
+ });
1414
+ Object.assign(importStore, {
1415
+ file: null,
1416
+ type: "",
1417
+ filename: "",
1418
+ modeList,
1419
+ typeList,
1420
+ visible: true
1421
+ });
1422
+ Object.assign(importParams, defOpts);
1423
+ if (!modeList.some((item) => item.value === importParams.mode)) {
1424
+ importParams.mode = modeList[0].value;
1425
+ }
1426
+ initStore.import = true;
1427
+ },
1428
+ closeExport: handleCloseExport,
1429
+ openExport(options) {
1430
+ const exportOpts = computeExportOpts.value;
1431
+ const defOpts = Object.assign({
1432
+ message: true,
1433
+ types: index.default.keys(exportOpts._typeMaps)
1434
+ }, exportOpts, options);
1435
+ if (!props.exportConfig) {
1436
+ log.errLog("vxe.error.reqProp", ["export-config"]);
1437
+ }
1438
+ handleExportAndPrint(defOpts);
1439
+ },
1440
+ closePrint: handleCloseExport,
1441
+ openPrint(options) {
1442
+ const printOpts = computePrintOpts.value;
1443
+ const defOpts = Object.assign({
1444
+ message: true
1445
+ }, printOpts, options);
1446
+ if (!props.printConfig) {
1447
+ log.errLog("vxe.error.reqProp", ["print-config"]);
1448
+ }
1449
+ handleExportAndPrint(defOpts, true);
1450
+ }
1451
+ };
1452
+ return exportMethods;
1453
+ },
1454
+ setupGrid($xeGrid) {
1455
+ return $xeGrid.extendTableMethods(tableExportMethodKeys);
1456
+ }
1457
+ });