From 09aa9ef8ac882820824f2bc7b383754ec2a3c5ff Mon Sep 17 00:00:00 2001 From: khtiana Date: Mon, 25 Oct 2021 17:21:32 +0800 Subject: [PATCH 1/3] support margin auto --- deps/weex-styler/lib/validator.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/deps/weex-styler/lib/validator.js b/deps/weex-styler/lib/validator.js index 52782e3..94ea5c0 100644 --- a/deps/weex-styler/lib/validator.js +++ b/deps/weex-styler/lib/validator.js @@ -194,6 +194,7 @@ var URL_REGEXP = /^url\(\s*['"]?\s*([^()]+?)\s*['"]?\s*\)$/ var NAME_REGEXP = /^[a-zA-Z_]+[a-zA-Z0-9-]*$/ var INT_REGEXP = /^[-+]?[0-9]+$/ var ID_REGEXP = /^\"@id\d+\"$/ +var AUTO_REGEXP = 'auto' var DATE_REGEXP = /(^([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((1[02]|0?[13578])-([12][0-9]|3[01]|0?[1-9]))|((11|0?[469])-(30|[12][0-9]|0?[1-9]))|(0?2-(1[0-9]|2[0-8]|0?[1-9])))$)|(^(([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[13579][26])00))-(0?)2-29$)/ var TRANSFORM_REGEXP = /[0-9a-zA-Z]+\s*\(\s*[0-9(a-zA-Z-|%)\.]+\s*(,\s*[0-9(a-zA-Z-|%)\.]+)*\)/g var TRANSFORM_ITEM_REGEXP = /^([0-9a-zA-Z]+)\s*\((.*)\)$/ @@ -225,6 +226,9 @@ var ANYTHING_VALIDATOR = function ANYTHING_VALIDATOR(v) { */ var PERCENTAGE_LENGTH_VALIDATOR = function PERCENTAGE_LENGTH_VALIDATOR(v) { v = (v || '').toString().trim() + if (v.match(AUTO_REGEXP)) { + return { value: v } + } if (v.match(ID_REGEXP)) { return { value: v } } else { -- Gitee From 4bfc96ca16ed08571c7291221a74bd7dcf0ce3ad Mon Sep 17 00:00:00 2001 From: khtiana Date: Wed, 27 Oct 2021 19:48:06 +0800 Subject: [PATCH 2/3] support margin auto --- deps/weex-styler/lib/validator.js | 64 ++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/deps/weex-styler/lib/validator.js b/deps/weex-styler/lib/validator.js index 94ea5c0..3ce6546 100644 --- a/deps/weex-styler/lib/validator.js +++ b/deps/weex-styler/lib/validator.js @@ -194,7 +194,7 @@ var URL_REGEXP = /^url\(\s*['"]?\s*([^()]+?)\s*['"]?\s*\)$/ var NAME_REGEXP = /^[a-zA-Z_]+[a-zA-Z0-9-]*$/ var INT_REGEXP = /^[-+]?[0-9]+$/ var ID_REGEXP = /^\"@id\d+\"$/ -var AUTO_REGEXP = 'auto' +var AUTO_REGEXP = /^auto$/ var DATE_REGEXP = /(^([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((1[02]|0?[13578])-([12][0-9]|3[01]|0?[1-9]))|((11|0?[469])-(30|[12][0-9]|0?[1-9]))|(0?2-(1[0-9]|2[0-8]|0?[1-9])))$)|(^(([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[13579][26])00))-(0?)2-29$)/ var TRANSFORM_REGEXP = /[0-9a-zA-Z]+\s*\(\s*[0-9(a-zA-Z-|%)\.]+\s*(,\s*[0-9(a-zA-Z-|%)\.]+)*\)/g var TRANSFORM_ITEM_REGEXP = /^([0-9a-zA-Z]+)\s*\((.*)\)$/ @@ -226,8 +226,28 @@ var ANYTHING_VALIDATOR = function ANYTHING_VALIDATOR(v) { */ var PERCENTAGE_LENGTH_VALIDATOR = function PERCENTAGE_LENGTH_VALIDATOR(v) { v = (v || '').toString().trim() - if (v.match(AUTO_REGEXP)) { - return { value: v } + if (v.match(ID_REGEXP)) { + return { value: v } + } else { + return LENGTH(v, SUPPORT_CSS_PERCENTAGE_UNIT) + } +} + +/** + * the values below is valid + * - 'auto' + * - number + * - number + 'px'|'%'|'vp'| 'fp' + * + * @param {string} v + * @return {function} a function to return + * - value: number|null + * - reason(k, v, result) + */ +var AUTO_PERCENTAGE_LENGTH_VALIDATOR = function AUTO_PERCENTAGE_LENGTH_VALIDATOR(v) { + v = (v || '').toString().trim() + if (v.match(AUTO_REGEXP)) { + return { value: v } } if (v.match(ID_REGEXP)) { return { value: v } @@ -355,6 +375,12 @@ var SHORTHAND_PERCENTAGE_LENGTH_VALIDATOR = function SHORTHAND_PERCENTAGE_LENGTH return SHORTHAND_VALIDATOR(v, rule) } +var SHORTHAND_AUTO_PERCENTAGE_LENGTH_VALIDATOR = function SHORTHAND_AUTO_PERCENTAGE_LENGTH_VALIDATOR(v) { + v = (v || '').toString().trim() + let rule = AUTO_PERCENTAGE_LENGTH_VALIDATOR + return SHORTHAND_VALIDATOR(v, rule) +} + var SHORTHAND_LENGTH_VALIDATOR = function SHORTHAND_LENGTH_VALIDATOR(v) { v = (v || '').toString().trim() let rule = LENGTH_VALIDATOR @@ -565,7 +591,7 @@ var SHORTHAND_VALIDATOR = function SHORTHAND_VALIDATOR(v, validateFunction, isAr reason = res.reason break } - value.push(res.value) + value.push(res.value) if (res.reason) { reason.push(res.reason) } @@ -2090,11 +2116,11 @@ var RICH_PROP_NAME_GROUPS = { paddingBottom: PERCENTAGE_LENGTH_VALIDATOR, paddingStart: PERCENTAGE_LENGTH_VALIDATOR, paddingEnd: PERCENTAGE_LENGTH_VALIDATOR, - margin: SHORTHAND_PERCENTAGE_LENGTH_VALIDATOR, - marginLeft: PERCENTAGE_LENGTH_VALIDATOR, - marginRight: PERCENTAGE_LENGTH_VALIDATOR, - marginTop: PERCENTAGE_LENGTH_VALIDATOR, - marginBottom: PERCENTAGE_LENGTH_VALIDATOR, + margin: SHORTHAND_AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginLeft: AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginRight: AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginTop: AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginBottom: AUTO_PERCENTAGE_LENGTH_VALIDATOR, marginStart: PERCENTAGE_LENGTH_VALIDATOR, marginEnd: PERCENTAGE_LENGTH_VALIDATOR, placeholderColor: COLOR_VALIDATOR, @@ -2638,11 +2664,11 @@ var LITE_PROP_NAME_GROUPS = { paddingRight: LENGTH_VALIDATOR, paddingTop: LENGTH_VALIDATOR, paddingBottom: LENGTH_VALIDATOR, - margin:SHORTHAND_PERCENTAGE_LENGTH_VALIDATOR, - marginLeft: PERCENTAGE_LENGTH_VALIDATOR, - marginRight: PERCENTAGE_LENGTH_VALIDATOR, - marginTop: PERCENTAGE_LENGTH_VALIDATOR, - marginBottom: PERCENTAGE_LENGTH_VALIDATOR, + margin:SHORTHAND_AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginLeft: AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginRight: AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginTop: AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginBottom: AUTO_PERCENTAGE_LENGTH_VALIDATOR, strokeWidth: LENGTH_VALIDATOR, }, border:{ @@ -2712,11 +2738,11 @@ var CARD_PROP_NAME_GROUPS = { paddingBottom: PERCENTAGE_LENGTH_VALIDATOR, paddingStart: PERCENTAGE_LENGTH_VALIDATOR, paddingEnd: PERCENTAGE_LENGTH_VALIDATOR, - margin: SHORTHAND_PERCENTAGE_LENGTH_VALIDATOR, - marginLeft: PERCENTAGE_LENGTH_VALIDATOR, - marginRight: PERCENTAGE_LENGTH_VALIDATOR, - marginTop: PERCENTAGE_LENGTH_VALIDATOR, - marginBottom: PERCENTAGE_LENGTH_VALIDATOR, + margin: SHORTHAND_AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginLeft: AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginRight: AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginTop: AUTO_PERCENTAGE_LENGTH_VALIDATOR, + marginBottom: AUTO_PERCENTAGE_LENGTH_VALIDATOR, marginStart: PERCENTAGE_LENGTH_VALIDATOR, marginEnd: PERCENTAGE_LENGTH_VALIDATOR, columns: NUMBER_VALIDATOR, -- Gitee From 1839f6387db361e4b60e3859d97b1203c6cb06e9 Mon Sep 17 00:00:00 2001 From: khtiana Date: Thu, 28 Oct 2021 09:35:22 +0800 Subject: [PATCH 3/3] support margin auto --- deps/weex-styler/lib/validator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/weex-styler/lib/validator.js b/deps/weex-styler/lib/validator.js index 3ce6546..850d7bc 100644 --- a/deps/weex-styler/lib/validator.js +++ b/deps/weex-styler/lib/validator.js @@ -591,7 +591,7 @@ var SHORTHAND_VALIDATOR = function SHORTHAND_VALIDATOR(v, validateFunction, isAr reason = res.reason break } - value.push(res.value) + value.push(res.value) if (res.reason) { reason.push(res.reason) } -- Gitee