_getViewportOffset(parent, direction) {
		let offset = { x: 0, y: 0 }

		if (typeof this.offset.viewport.x === 'function') {
			offset.x = parent.w * this.offset.viewport.x(this, parent, direction)
		} else if (isFloat(this.offset.viewport.x)) {
			offset.x = parent.w * this.offset.viewport.x
		} else if (isInt(this.offset.viewport.x)) {
			offset.x = this.offset.viewport.x
		}

		if (typeof this.offset.viewport.y === 'function') {
			offset.y = parent.h * this.offset.viewport.y(this, parent, direction)
		} else if (isFloat(this.offset.viewport.y)) {
			offset.y = parent.h * this.offset.viewport.y
		} else if (isInt(this.offset.viewport.y)) {
			offset.y = this.offset.viewport.y
		}

		return offset
	}
Get the calculated offset to place on the viewport
@param {{w: number, h: number}} parent
@param {string} direction top, bottom, left, right
@returns {{x: number, y: number}}
@private