Fix column width issue, add parse number in string

This commit is contained in:
xusui 2019-08-05 16:33:00 +08:00
Родитель 46ca50491c
Коммит a030ca8dc7
11 изменённых файлов: 83 добавлений и 36 удалений

Двоичные данные
dist/Assets/Images/Placeholders/avatar_default.png поставляемый

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 13 KiB

После

Ширина:  |  Высота:  |  Размер: 13 KiB

16
dist/Models/Containers/Column.js поставляемый
Просмотреть файл

@ -10,7 +10,21 @@ export class ColumnModel extends ScopeModel {
this.style = StringUtils.normalize(json.style);
this.height = StringUtils.normalize(json.height);
this.verticalContentAlignment = StringUtils.normalize(json.verticalContentAlignment, 'top');
this.width = StringUtils.normalize(json.width);
if (typeof json.width === 'number') {
this.width = json.width < 0 ? 0 : json.width;
}
else if (typeof json.width === 'string') {
let columnWidth = parseInt(json.width, 10);
if (isNaN(columnWidth)) {
let jsonLowerCase = json.width.toLowerCase();
if (jsonLowerCase === 'auto' || jsonLowerCase === 'stretch') {
this.width = jsonLowerCase;
}
}
else {
this.width = columnWidth < 0 ? 0 : columnWidth;
}
}
if (json.backgroundImage) {
this.backgroundImage = new BackgroundImageModel(json.backgroundImage, this, this.context);
this.context.fit = 'background';

14
dist/Utils/StringUtils.js поставляемый
Просмотреть файл

@ -16,14 +16,12 @@ export class StringUtils {
return valueString;
}
static normalize(value, defaultValue) {
if (value) {
if (typeof value === 'number') {
return value < 0 ? 0 : value;
}
if (typeof value === 'string') {
return value.toLocaleLowerCase();
}
if (value === null || value === undefined) {
return defaultValue;
}
return defaultValue;
if (typeof value === 'string') {
return value.toLowerCase();
}
return value;
}
}

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 13 KiB

После

Ширина:  |  Высота:  |  Размер: 13 KiB

Просмотреть файл

@ -10,7 +10,21 @@ export class ColumnModel extends ScopeModel {
this.style = StringUtils.normalize(json.style);
this.height = StringUtils.normalize(json.height);
this.verticalContentAlignment = StringUtils.normalize(json.verticalContentAlignment, 'top');
this.width = StringUtils.normalize(json.width);
if (typeof json.width === 'number') {
this.width = json.width < 0 ? 0 : json.width;
}
else if (typeof json.width === 'string') {
let columnWidth = parseInt(json.width, 10);
if (isNaN(columnWidth)) {
let jsonLowerCase = json.width.toLowerCase();
if (jsonLowerCase === 'auto' || jsonLowerCase === 'stretch') {
this.width = jsonLowerCase;
}
}
else {
this.width = columnWidth < 0 ? 0 : columnWidth;
}
}
if (json.backgroundImage) {
this.backgroundImage = new BackgroundImageModel(json.backgroundImage, this, this.context);
this.context.fit = 'background';

Просмотреть файл

@ -16,14 +16,12 @@ export class StringUtils {
return valueString;
}
static normalize(value, defaultValue) {
if (value) {
if (typeof value === 'number') {
return value < 0 ? 0 : value;
}
if (typeof value === 'string') {
return value.toLocaleLowerCase();
}
if (value === null || value === undefined) {
return defaultValue;
}
return defaultValue;
if (typeof value === 'string') {
return value.toLowerCase();
}
return value;
}
}

Просмотреть файл

@ -21,7 +21,20 @@ export class ColumnModel extends ScopeModel {
this.style = StringUtils.normalize(json.style);
this.height = StringUtils.normalize(json.height);
this.verticalContentAlignment = StringUtils.normalize(json.verticalContentAlignment, 'top');
this.width = StringUtils.normalize(json.width);
if (typeof json.width === 'number') {
this.width = json.width < 0 ? 0 : json.width;
} else if (typeof json.width === 'string') {
let columnWidth = parseInt(json.width, 10);
if (isNaN(columnWidth)) {
let jsonLowerCase = json.width.toLowerCase();
if (jsonLowerCase === 'auto' || jsonLowerCase === 'stretch') {
this.width = jsonLowerCase;
}
} else {
this.width = columnWidth < 0 ? 0 : columnWidth;
}
}
if (json.backgroundImage) {
this.backgroundImage = new BackgroundImageModel(json.backgroundImage, this, this.context);

Просмотреть файл

@ -16,14 +16,12 @@ export class StringUtils {
}
public static normalize(value: any, defaultValue?: any): any {
if (value) {
if (typeof value === 'number') {
return value < 0 ? 0 : value;
}
if (typeof value === 'string') {
return value.toLocaleLowerCase();
}
if (value === null || value === undefined) {
return defaultValue;
}
return defaultValue;
if (typeof value === 'string') {
return value.toLowerCase();
}
return value;
}
}

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 13 KiB

После

Ширина:  |  Высота:  |  Размер: 13 KiB

Просмотреть файл

@ -10,7 +10,21 @@ export class ColumnModel extends ScopeModel {
this.style = StringUtils.normalize(json.style);
this.height = StringUtils.normalize(json.height);
this.verticalContentAlignment = StringUtils.normalize(json.verticalContentAlignment, 'top');
this.width = StringUtils.normalize(json.width);
if (typeof json.width === 'number') {
this.width = json.width < 0 ? 0 : json.width;
}
else if (typeof json.width === 'string') {
let columnWidth = parseInt(json.width, 10);
if (isNaN(columnWidth)) {
let jsonLowerCase = json.width.toLowerCase();
if (jsonLowerCase === 'auto' || jsonLowerCase === 'stretch') {
this.width = jsonLowerCase;
}
}
else {
this.width = columnWidth < 0 ? 0 : columnWidth;
}
}
if (json.backgroundImage) {
this.backgroundImage = new BackgroundImageModel(json.backgroundImage, this, this.context);
this.context.fit = 'background';

Просмотреть файл

@ -16,14 +16,12 @@ export class StringUtils {
return valueString;
}
static normalize(value, defaultValue) {
if (value) {
if (typeof value === 'number') {
return value < 0 ? 0 : value;
}
if (typeof value === 'string') {
return value.toLocaleLowerCase();
}
if (value === null || value === undefined) {
return defaultValue;
}
return defaultValue;
if (typeof value === 'string') {
return value.toLowerCase();
}
return value;
}
}