commonUtil.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. export const VALUE_SPLIT = '__RC_CASCADER_SPLIT__';
  2. export const SHOW_PARENT = 'SHOW_PARENT';
  3. export const SHOW_CHILD = 'SHOW_CHILD';
  4. export function toPathKey(value) {
  5. return value.join(VALUE_SPLIT);
  6. }
  7. export function toPathKeys(value) {
  8. return value.map(toPathKey);
  9. }
  10. export function toPathValueStr(pathKey) {
  11. return pathKey.split(VALUE_SPLIT);
  12. }
  13. export function fillFieldNames(fieldNames) {
  14. const {
  15. label,
  16. value,
  17. children
  18. } = fieldNames || {};
  19. const val = value || 'value';
  20. return {
  21. label: label || 'label',
  22. value: val,
  23. key: val,
  24. children: children || 'children'
  25. };
  26. }
  27. export function isLeaf(option, fieldNames) {
  28. var _a, _b;
  29. return (_a = option.isLeaf) !== null && _a !== void 0 ? _a : !((_b = option[fieldNames.children]) === null || _b === void 0 ? void 0 : _b.length);
  30. }
  31. export function scrollIntoParentView(element) {
  32. const parent = element.parentElement;
  33. if (!parent) {
  34. return;
  35. }
  36. const elementToParent = element.offsetTop - parent.offsetTop; // offsetParent may not be parent.
  37. if (elementToParent - parent.scrollTop < 0) {
  38. parent.scrollTo({
  39. top: elementToParent
  40. });
  41. } else if (elementToParent + element.offsetHeight - parent.scrollTop > parent.offsetHeight) {
  42. parent.scrollTo({
  43. top: elementToParent + element.offsetHeight - parent.offsetHeight
  44. });
  45. }
  46. }