{"version":3,"file":"placement.cjs","sources":["../../../../packages/utils/placement.ts"],"sourcesContent":["import { placements } from '@antdv/constants';\n\nconst autoAdjustOverflowEnabled = {\n  adjustX: 1,\n  adjustY: 1,\n};\n\nconst autoAdjustOverflowDisabled = {\n  adjustX: 0,\n  adjustY: 0,\n};\n\nconst targetOffset = [0, 0];\n\nexport interface AdjustOverflow {\n  adjustX?: 0 | 1;\n  adjustY?: 0 | 1;\n}\n\nexport interface PlacementsConfig {\n  arrowWidth?: number;\n  horizontalArrowShift?: number;\n  verticalArrowShift?: number;\n  arrowPointAtCenter?: boolean;\n  autoAdjustOverflow?: boolean | AdjustOverflow;\n}\n\nexport function getOverflowOptions(autoAdjustOverflow?: boolean | AdjustOverflow) {\n  if (typeof autoAdjustOverflow === 'boolean')\n    return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n\n  return {\n    ...autoAdjustOverflowDisabled,\n    ...autoAdjustOverflow,\n  };\n}\n\nexport function getPlacements(config: PlacementsConfig) {\n  const {\n    arrowWidth = 4,\n    horizontalArrowShift = 16,\n    verticalArrowShift = 8,\n    autoAdjustOverflow,\n    arrowPointAtCenter,\n  } = config;\n  const placementMap = {\n    left: {\n      points: ['cr', 'cl'],\n      offset: [-4, 0],\n    },\n    right: {\n      points: ['cl', 'cr'],\n      offset: [4, 0],\n    },\n    top: {\n      points: ['bc', 'tc'],\n      offset: [0, -4],\n    },\n    bottom: {\n      points: ['tc', 'bc'],\n      offset: [0, 4],\n    },\n    topLeft: {\n      points: ['bl', 'tc'],\n      offset: [-(horizontalArrowShift + arrowWidth), -4],\n    },\n    leftTop: {\n      points: ['tr', 'cl'],\n      offset: [-4, -(verticalArrowShift + arrowWidth)],\n    },\n    topRight: {\n      points: ['br', 'tc'],\n      offset: [horizontalArrowShift + arrowWidth, -4],\n    },\n    rightTop: {\n      points: ['tl', 'cr'],\n      offset: [4, -(verticalArrowShift + arrowWidth)],\n    },\n    bottomRight: {\n      points: ['tr', 'bc'],\n      offset: [horizontalArrowShift + arrowWidth, 4],\n    },\n    rightBottom: {\n      points: ['bl', 'cr'],\n      offset: [4, verticalArrowShift + arrowWidth],\n    },\n    bottomLeft: {\n      points: ['tl', 'bc'],\n      offset: [-(horizontalArrowShift + arrowWidth), 4],\n    },\n    leftBottom: {\n      points: ['br', 'cl'],\n      offset: [-4, verticalArrowShift + arrowWidth],\n    },\n  };\n  Object.keys(placementMap).forEach((key) => {\n    placementMap[key] = arrowPointAtCenter\n      ? {\n          ...placementMap[key],\n          overflow: getOverflowOptions(autoAdjustOverflow),\n          targetOffset,\n        }\n      : {\n          ...placements[key],\n          overflow: getOverflowOptions(autoAdjustOverflow),\n        };\n\n    placementMap[key].ignoreShake = true;\n  });\n  return placementMap;\n}\n"],"names":["placements"],"mappings":"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"}