util.js 922 B

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