calcLeftPositionMode() {
        switch (this.positionMode.left) {
            case 'target': {
                this.position.left = this.originNodeRect.left - this.alignTarget.offsetLeft;
                this.horizontalTransformOrigin += 'left';
                break;
            }
            case 'target-left': {
                this.position.left = this.originNodeRect.left;
                this.horizontalTransformOrigin += 'left';
                break;
            }
            case 'target-right': {
                this.position.left = this.originNodeRect.right - this.openMenuNodeRect.width + (this.openMenuNodeRect.right - this.alignTargetRect.right);
                this.horizontalTransformOrigin += 'right';
                break;
            }
            case 'cascade': {
                let willFitRight = (this.originNodeRect.right + this.openMenuNodeRect.width) < this.bounds.right;
                this.position.left = willFitRight ? this.originNodeRect.right - this.originNode.style.left : this.originNodeRect.left - this.originNode.style.left - this.openMenuNodeRect.width;
                this.horizontalTransformOrigin += willFitRight ? 'left' : 'right';
                break;
            }
            case 'right': {
                this.position.left = this.originNodeRect.right - this.openMenuNodeRect.width;
                this.horizontalTransformOrigin += 'right';
                break;
            }
            case 'left': {
                this.position.left = this.originNodeRect.left;
                this.horizontalTransformOrigin += 'left';
                break;
            }
            default: {
                assert(`Invalid target mode '${this.positionMode.left}' specified for paper-menu on X axis.`);
            }
        }
    }
Calcs left position based on the left position mode