commonUtil.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.VALUE_SPLIT = exports.SHOW_PARENT = exports.SHOW_CHILD = void 0;
  6. exports.fillFieldNames = fillFieldNames;
  7. exports.isLeaf = isLeaf;
  8. exports.scrollIntoParentView = scrollIntoParentView;
  9. exports.toPathKey = toPathKey;
  10. exports.toPathKeys = toPathKeys;
  11. exports.toPathValueStr = toPathValueStr;
  12. var VALUE_SPLIT = '__RC_CASCADER_SPLIT__';
  13. exports.VALUE_SPLIT = VALUE_SPLIT;
  14. var SHOW_PARENT = 'SHOW_PARENT';
  15. exports.SHOW_PARENT = SHOW_PARENT;
  16. var SHOW_CHILD = 'SHOW_CHILD';
  17. exports.SHOW_CHILD = SHOW_CHILD;
  18. function toPathKey(value) {
  19. return value.join(VALUE_SPLIT);
  20. }
  21. function toPathKeys(value) {
  22. return value.map(toPathKey);
  23. }
  24. function toPathValueStr(pathKey) {
  25. return pathKey.split(VALUE_SPLIT);
  26. }
  27. function fillFieldNames(fieldNames) {
  28. var _ref = fieldNames || {},
  29. label = _ref.label,
  30. value = _ref.value,
  31. children = _ref.children;
  32. var val = value || 'value';
  33. return {
  34. label: label || 'label',
  35. value: val,
  36. key: val,
  37. children: children || 'children'
  38. };
  39. }
  40. function isLeaf(option, fieldNames) {
  41. var _option$isLeaf, _option$fieldNames$ch;
  42. return (_option$isLeaf = option.isLeaf) !== null && _option$isLeaf !== void 0 ? _option$isLeaf : !((_option$fieldNames$ch = option[fieldNames.children]) !== null && _option$fieldNames$ch !== void 0 && _option$fieldNames$ch.length);
  43. }
  44. function scrollIntoParentView(element) {
  45. var parent = element.parentElement;
  46. if (!parent) {
  47. return;
  48. }
  49. var elementToParent = element.offsetTop - parent.offsetTop; // offsetParent may not be parent.
  50. if (elementToParent - parent.scrollTop < 0) {
  51. parent.scrollTo({
  52. top: elementToParent
  53. });
  54. } else if (elementToParent + element.offsetHeight - parent.scrollTop > parent.offsetHeight) {
  55. parent.scrollTo({
  56. top: elementToParent + element.offsetHeight - parent.offsetHeight
  57. });
  58. }
  59. }