76a0f647f890a599b6aa0916ccac06350eb165ac30dd339b80686363d5316e1f4c665a7f3136ad3d15d468bbdfbe3ca2450a024f1ce4f5922f6da54c86b70a 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var util = require('../util.js');
  5. function useExpand(watcherData) {
  6. const instance = vue.getCurrentInstance();
  7. const defaultExpandAll = vue.ref(false);
  8. const expandRows = vue.ref([]);
  9. const updateExpandRows = () => {
  10. const data = watcherData.data.value || [];
  11. const rowKey = watcherData.rowKey.value;
  12. if (defaultExpandAll.value) {
  13. expandRows.value = data.slice();
  14. } else if (rowKey) {
  15. const expandRowsMap = util.getKeysMap(expandRows.value, rowKey);
  16. expandRows.value = data.reduce((prev, row) => {
  17. const rowId = util.getRowIdentity(row, rowKey);
  18. const rowInfo = expandRowsMap[rowId];
  19. if (rowInfo) {
  20. prev.push(row);
  21. }
  22. return prev;
  23. }, []);
  24. } else {
  25. expandRows.value = [];
  26. }
  27. };
  28. const toggleRowExpansion = (row, expanded) => {
  29. const changed = util.toggleRowStatus(expandRows.value, row, expanded, void 0, void 0, void 0, watcherData.rowKey.value);
  30. if (changed) {
  31. instance.emit("expand-change", row, expandRows.value.slice());
  32. }
  33. };
  34. const setExpandRowKeys = (rowKeys) => {
  35. instance.store.assertRowKey();
  36. const data = watcherData.data.value || [];
  37. const rowKey = watcherData.rowKey.value;
  38. const keysMap = util.getKeysMap(data, rowKey);
  39. expandRows.value = rowKeys.reduce((prev, cur) => {
  40. const info = keysMap[cur];
  41. if (info) {
  42. prev.push(info.row);
  43. }
  44. return prev;
  45. }, []);
  46. };
  47. const isRowExpanded = (row) => {
  48. const rowKey = watcherData.rowKey.value;
  49. if (rowKey) {
  50. const expandMap = util.getKeysMap(expandRows.value, rowKey);
  51. return !!expandMap[util.getRowIdentity(row, rowKey)];
  52. }
  53. return expandRows.value.includes(row);
  54. };
  55. return {
  56. updateExpandRows,
  57. toggleRowExpansion,
  58. setExpandRowKeys,
  59. isRowExpanded,
  60. states: {
  61. expandRows,
  62. defaultExpandAll
  63. }
  64. };
  65. }
  66. exports["default"] = useExpand;
  67. //# sourceMappingURL=expand.js.map