text alignment
This commit is contained in:
parent
0beb8b8633
commit
db4990696c
31
dist/index.js
vendored
31
dist/index.js
vendored
@ -4185,12 +4185,18 @@ return __module.exports;
|
|||||||
|
|
||||||
class DoricTextNode extends DoricViewNode {
|
class DoricTextNode extends DoricViewNode {
|
||||||
build() {
|
build() {
|
||||||
return document.createElement('p');
|
const div = document.createElement('div');
|
||||||
|
div.style.display = "flex";
|
||||||
|
this.textElement = document.createElement('span');
|
||||||
|
div.appendChild(this.textElement);
|
||||||
|
div.style.justifyContent = "center";
|
||||||
|
div.style.alignItems = "center";
|
||||||
|
return div;
|
||||||
}
|
}
|
||||||
blendProps(v, propName, prop) {
|
blendProps(v, propName, prop) {
|
||||||
switch (propName) {
|
switch (propName) {
|
||||||
case 'text':
|
case 'text':
|
||||||
v.innerText = prop;
|
this.textElement.innerText = prop;
|
||||||
break;
|
break;
|
||||||
case 'textSize':
|
case 'textSize':
|
||||||
v.style.fontSize = toPixelString(prop);
|
v.style.fontSize = toPixelString(prop);
|
||||||
@ -4198,6 +4204,27 @@ return __module.exports;
|
|||||||
case 'textColor':
|
case 'textColor':
|
||||||
v.style.color = toRGBAString(prop);
|
v.style.color = toRGBAString(prop);
|
||||||
break;
|
break;
|
||||||
|
case 'textAlignment':
|
||||||
|
const gravity = prop;
|
||||||
|
if ((gravity & LEFT) === LEFT) {
|
||||||
|
v.style.justifyContent = "flex-start";
|
||||||
|
}
|
||||||
|
else if ((gravity & RIGHT) === RIGHT) {
|
||||||
|
v.style.justifyContent = "flex-end";
|
||||||
|
}
|
||||||
|
else if ((gravity & CENTER_X) === CENTER_X) {
|
||||||
|
v.style.justifyContent = "center";
|
||||||
|
}
|
||||||
|
if ((gravity & TOP) === TOP) {
|
||||||
|
v.style.alignItems = "flex-start";
|
||||||
|
}
|
||||||
|
else if ((gravity & BOTTOM) === BOTTOM) {
|
||||||
|
v.style.alignItems = "flex-end";
|
||||||
|
}
|
||||||
|
else if ((gravity & CENTER_Y) === CENTER_Y) {
|
||||||
|
v.style.alignItems = "center";
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
super.blendProps(v, propName, prop);
|
super.blendProps(v, propName, prop);
|
||||||
break;
|
break;
|
||||||
|
2
dist/index.js.map
vendored
2
dist/index.js.map
vendored
File diff suppressed because one or more lines are too long
@ -1,15 +1,21 @@
|
|||||||
import { DoricViewNode, FrameSize, toPixelString, toRGBAString } from "./DoricViewNode";
|
import { DoricViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, toRGBAString } from "./DoricViewNode";
|
||||||
|
|
||||||
export class DoricTextNode extends DoricViewNode {
|
export class DoricTextNode extends DoricViewNode {
|
||||||
|
textElement!: HTMLElement
|
||||||
build(): HTMLElement {
|
build(): HTMLElement {
|
||||||
return document.createElement('p')
|
const div = document.createElement('div')
|
||||||
|
div.style.display = "flex"
|
||||||
|
this.textElement = document.createElement('span')
|
||||||
|
div.appendChild(this.textElement)
|
||||||
|
div.style.justifyContent = "center"
|
||||||
|
div.style.alignItems = "center"
|
||||||
|
return div
|
||||||
}
|
}
|
||||||
|
|
||||||
blendProps(v: HTMLParagraphElement, propName: string, prop: any) {
|
blendProps(v: HTMLParagraphElement, propName: string, prop: any) {
|
||||||
switch (propName) {
|
switch (propName) {
|
||||||
case 'text':
|
case 'text':
|
||||||
v.innerText = prop
|
this.textElement.innerText = prop
|
||||||
break
|
break
|
||||||
case 'textSize':
|
case 'textSize':
|
||||||
v.style.fontSize = toPixelString(prop)
|
v.style.fontSize = toPixelString(prop)
|
||||||
@ -17,6 +23,23 @@ export class DoricTextNode extends DoricViewNode {
|
|||||||
case 'textColor':
|
case 'textColor':
|
||||||
v.style.color = toRGBAString(prop)
|
v.style.color = toRGBAString(prop)
|
||||||
break
|
break
|
||||||
|
case 'textAlignment':
|
||||||
|
const gravity: number = prop
|
||||||
|
if ((gravity & LEFT) === LEFT) {
|
||||||
|
v.style.justifyContent = "flex-start"
|
||||||
|
} else if ((gravity & RIGHT) === RIGHT) {
|
||||||
|
v.style.justifyContent = "flex-end"
|
||||||
|
} else if ((gravity & CENTER_X) === CENTER_X) {
|
||||||
|
v.style.justifyContent = "center"
|
||||||
|
}
|
||||||
|
if ((gravity & TOP) === TOP) {
|
||||||
|
v.style.alignItems = "flex-start"
|
||||||
|
} else if ((gravity & BOTTOM) === BOTTOM) {
|
||||||
|
v.style.alignItems = "flex-end"
|
||||||
|
} else if ((gravity & CENTER_Y) === CENTER_Y) {
|
||||||
|
v.style.alignItems = "center"
|
||||||
|
}
|
||||||
|
break
|
||||||
default:
|
default:
|
||||||
super.blendProps(v, propName, prop)
|
super.blendProps(v, propName, prop)
|
||||||
break
|
break
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { DoricGroupViewNode, LayoutSpec, FrameSize, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from "./DoricViewNode";
|
import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from "./DoricViewNode";
|
||||||
|
|
||||||
export class DoricVLayoutNode extends DoricGroupViewNode {
|
export class DoricVLayoutNode extends DoricGroupViewNode {
|
||||||
space = 0
|
space = 0
|
||||||
|
Reference in New Issue
Block a user