function computeTipStyle()

in packages-rc/console-base-rc-beacon/src/rc/the-tip/index.tsx [41:102]


function computeTipStyle(width: number, tipAlign: IPropsBeaconTip['tipAlign']): CSSProperties {
  let t: number | undefined;
  let r: number | undefined;
  let b: number | undefined;
  let l: number | undefined;
  
  switch (tipAlign) {
    case 'tl':
      b = 12;
      r = -BEACON_SIZE;
      
      break;
    case 'tr':
      b = 12;
      l = 0;
      
      break;
    case 'bl':
      t = BEACON_SIZE_HALO;
      r = -BEACON_SIZE;
      
      break;
    case 'br':
      t = BEACON_SIZE_HALO;
      l = 0;
      
      break;
    case 'lt':
      b = -BEACON_SIZE;
      r = 12;
      
      break;
    case 'lb':
      t = 0;
      r = 12;
      
      break;
    case 'rt':
      b = -BEACON_SIZE;
      l = BEACON_SIZE_HALO;
      
      break;
    case 'rb':
      t = 0;
      l = BEACON_SIZE_HALO;
      
      break;
    default: // 等同 br
      t = BEACON_SIZE_HALO;
      l = 0;
      
      break;
  }
  
  return {
    width,
    top: t,
    right: r,
    bottom: b,
    left: l
  };
}