mirror of
https://github.com/google/blockly.git
synced 2026-01-04 23:50:12 +01:00
* feat: Added a comment_drag event. * Add workspace comment resize events. * Addressing PR feedback. * Fixed chai imports in new test files. * Addressing more PR feedback.
63 lines
1.4 KiB
TypeScript
63 lines
1.4 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2019 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* Utility methods for size calculation.
|
|
* These methods are not specific to Blockly, and could be factored out into
|
|
* a JavaScript framework such as Closure.
|
|
*
|
|
* @class
|
|
*/
|
|
// Former goog.module ID: Blockly.utils.Size
|
|
|
|
/**
|
|
* Class for representing sizes consisting of a width and height.
|
|
*/
|
|
export class Size {
|
|
/**
|
|
* @param width Width.
|
|
* @param height Height.
|
|
*/
|
|
constructor(
|
|
public width: number,
|
|
public height: number,
|
|
) {}
|
|
|
|
/**
|
|
* Compares sizes for equality.
|
|
*
|
|
* @param a A Size.
|
|
* @param b A Size.
|
|
* @returns True iff the sizes have equal widths and equal heights, or if both
|
|
* are null.
|
|
*/
|
|
static equals(a?: Size | null, b?: Size | null): boolean {
|
|
if (a === b) {
|
|
return true;
|
|
}
|
|
if (!a || !b) {
|
|
return false;
|
|
}
|
|
return a.width === b.width && a.height === b.height;
|
|
}
|
|
|
|
/**
|
|
* Returns a new size with the maximum width and height values out of both
|
|
* sizes.
|
|
*/
|
|
static max(a: Size, b: Size): Size {
|
|
return new Size(Math.max(a.width, b.width), Math.max(a.height, b.height));
|
|
}
|
|
|
|
/**
|
|
* Returns a new size with the minimum width and height values out of both
|
|
* sizes.
|
|
*/
|
|
static min(a: Size, b: Size): Size {
|
|
return new Size(Math.min(a.width, b.width), Math.min(a.height, b.height));
|
|
}
|
|
}
|