diff --git a/packages/core/src/types/node.ts b/packages/core/src/types/node.ts index 4b40685b..d6c5dc84 100644 --- a/packages/core/src/types/node.ts +++ b/packages/core/src/types/node.ts @@ -11,6 +11,7 @@ export interface CoordinateExtentRange { range: 'parent' | CoordinateExtent /** Values are top, right, bottom, left, you can use these the same as CSS padding */ padding: + | number | [padding: number] | [paddingY: number, paddingX: number] | [paddingTop: number, paddingX: number, paddingBottom: number] diff --git a/packages/core/src/utils/drag.ts b/packages/core/src/utils/drag.ts index a603542c..16762b92 100644 --- a/packages/core/src/utils/drag.ts +++ b/packages/core/src/utils/drag.ts @@ -61,17 +61,21 @@ export function getEventHandlerParams({ return [id ? extendedDragItems.find((n) => n.id === id)! : extendedDragItems[0], extendedDragItems] } -function getExtentPadding(padding: number[]) { - switch (padding.length) { - case 1: - return [padding[0], padding[0], padding[0], padding[0]] - case 2: - return [padding[0], padding[1], padding[0], padding[1]] - case 3: - return [padding[0], padding[1], padding[2], padding[1]] - default: - return padding || [0, 0, 0, 0] +function getExtentPadding(padding: CoordinateExtentRange['padding']): [number, number, number, number] { + if (Array.isArray(padding)) { + switch (padding.length) { + case 1: + return [padding[0], padding[0], padding[0], padding[0]] + case 2: + return [padding[0], padding[1], padding[0], padding[1]] + case 3: + return [padding[0], padding[1], padding[2], padding[1]] + default: + return padding || [0, 0, 0, 0] + } } + + return [padding, padding, padding, padding] } function getParentExtent(