util.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.genDataNodeKey = genDataNodeKey;
  6. exports.getRemovable = getRemovable;
  7. exports.stringify = stringify;
  8. /**
  9. * We trade Map as deps which may change with same value but different ref object.
  10. * We should make it as hash for deps
  11. * */
  12. function stringify(obj) {
  13. var tgt;
  14. if (obj instanceof Map) {
  15. tgt = {};
  16. obj.forEach(function (v, k) {
  17. tgt[k] = v;
  18. });
  19. } else {
  20. tgt = obj;
  21. }
  22. return JSON.stringify(tgt);
  23. }
  24. var RC_TABS_DOUBLE_QUOTE = 'TABS_DQ';
  25. function genDataNodeKey(key) {
  26. return String(key).replace(/"/g, RC_TABS_DOUBLE_QUOTE);
  27. }
  28. function getRemovable(closable, closeIcon, editable, disabled) {
  29. if (
  30. // Only editable tabs can be removed
  31. !editable ||
  32. // Tabs cannot be removed when disabled
  33. disabled ||
  34. // closable is false
  35. closable === false ||
  36. // If closable is undefined, the remove button should be hidden when closeIcon is null or false
  37. closable === undefined && (closeIcon === false || closeIcon === null)) {
  38. return false;
  39. }
  40. return true;
  41. }