text: import legaoBuiltin from '@alilc/b6-compact-legao-builtin';
  
  import { message, Notification as notification, Modal as modal } from 'antd';
  
  import { mocks } from '@alilc/b6-util-mocks';
  
  import { createRef } from 'rax';
  
  export class RefsManager {
    constructor() {
      this.refInsStore = {};
    }
  
    clearNullRefs() {
      Object.keys(this.refInsStore).forEach((refName) => {
        const filteredInsList = this.refInsStore[refName].filter((insRef) => !!insRef.current);
        if (filteredInsList.length > 0) {
          this.refInsStore[refName] = filteredInsList;
        } else {
          delete this.refInsStore[refName];
        }
      });
    }
  
    get(refName) {
      this.clearNullRefs();
      if (this.refInsStore[refName] && this.refInsStore[refName].length > 0) {
        return this.refInsStore[refName][0].current;
      }
  
      return null;
    }
  
    getAll(refName) {
      this.clearNullRefs();
      if (this.refInsStore[refName] && this.refInsStore[refName].length > 0) {
        return this.refInsStore[refName].map((i) => i.current);
      }
  
      return [];
    }
  
    linkRef(refName) {
      const refIns = createRef();
      this.refInsStore[refName] = this.refInsStore[refName] || [];
      this.refInsStore[refName].push(refIns);
      return refIns;
    }
  }
  
  export default {
    legaoBuiltin,
  
    message,
  
    notification,
  
    mocks,
  
    modal,
  };
  