const SidingRefDimensions = Object.freeze({ WIDTH: (DirectionUnitDependentAttribute) => DirectionUnitDependentAttribute._fFirst, HEIGHT: (DirectionUnitDependentAttribute) => DirectionUnitDependentAttribute._fSecond }) /** * Simple Dimensions container for the height and width in pixels. */ class Dimensions extends DirectionUnitDependentAttribute { constructor(defaultValue = 0, defaultUnit = SizeUnits.PIXEL) { super(); this._unit = defaultUnit; this._fFirst = defaultValue; this._fSecond = defaultValue; } /** * Sets width (x) value of amount * @param {number} amount * @returns {Dimensions} this Dimensions Modifier */ width(amount) { this._fFirst = amount; return this; } /** * Sets height (y) value of amount * @param {number} amount * @returns {Dimensions} this Dimensions Modifier */ height(amount) { this._fSecond = amount; return this; } getOrderedValues() { return this.getOrderedValues().slice(2) } getSidingRefValueMap() { return { [SidingRefDimensions.WIDTH]: this.getBySidingRef(SidingRefDimensions.WIDTH), [SidingRefDimensions.HEIGHT]: this.getBySidingRef(SidingRefDimensions.HEIGHT) } } } class DimensionsChain extends Dimensions { _modifier; constructor(modifier) { super(); this._modifier = modifier; } /** * * @returns {Modifier|ChainableModifier} */ toModifier() { return this._modifier .dimensions(this); } /** * * @returns {Modifier|ChainableModifier} */ ensureModifier() { return this.toModifier() } } class ChainableDimensions extends DimensionsChain { toComponent() { return this._modifier .dimensions(this) .toComponent(); } componentChild(innerComponent) { return this._modifier .dimensions(this) .toComponent() .componentChild(innerComponent); } componentChildren(innerComponent) { return this._modifier .dimensions(this) .toComponent() .componentChildren(innerComponent); } }