mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
chore: cleanup
This commit is contained in:
@@ -5,21 +5,21 @@ function mapSelectors(selector) {
|
||||
if (!selector) {
|
||||
return [];
|
||||
}
|
||||
return selector.split(/\s*(?![^(]*\)),\s*/).map(function (s) { return s.replace(/\u200C/g, ","); });
|
||||
return selector.split(/\s*(?![^(]*\)),\s*/).map(function (s) { return s.replace(/\u200C/g, ','); });
|
||||
}
|
||||
function mapPosition(node, css) {
|
||||
var res = {
|
||||
start: {
|
||||
line: node.loc.start.line,
|
||||
column: node.loc.start.column
|
||||
column: node.loc.start.column,
|
||||
},
|
||||
end: {
|
||||
line: node.loc.end.line,
|
||||
column: node.loc.end.column
|
||||
column: node.loc.end.column,
|
||||
},
|
||||
content: css
|
||||
content: css,
|
||||
};
|
||||
if (node.loc.source && node.loc.source !== "<unknown>") {
|
||||
if (node.loc.source && node.loc.source !== '<unknown>') {
|
||||
res.source = node.loc.source;
|
||||
}
|
||||
return res;
|
||||
@@ -29,41 +29,44 @@ function transformAst(node, css, type) {
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
if (node.type === "StyleSheet") {
|
||||
if (node.type === 'StyleSheet') {
|
||||
return {
|
||||
type: "stylesheet",
|
||||
type: 'stylesheet',
|
||||
stylesheet: {
|
||||
rules: node.children.map(function (child) { return transformAst(child, css); }).filter(function (child) { return child !== null; }).toArray(),
|
||||
parsingErrors: []
|
||||
}
|
||||
rules: node.children
|
||||
.map(function (child) { return transformAst(child, css); })
|
||||
.filter(function (child) { return child !== null; })
|
||||
.toArray(),
|
||||
parsingErrors: [],
|
||||
},
|
||||
};
|
||||
}
|
||||
if (node.type === "Atrule") {
|
||||
if (node.type === 'Atrule') {
|
||||
var atrule = {
|
||||
type: node.name,
|
||||
};
|
||||
if (node.name === "supports" || node.name === "media") {
|
||||
if (node.name === 'supports' || node.name === 'media') {
|
||||
atrule[node.name] = node.prelude.value;
|
||||
atrule.rules = transformAst(node.block, css);
|
||||
}
|
||||
else if (node.name === "page") {
|
||||
else if (node.name === 'page') {
|
||||
atrule.selectors = node.prelude ? mapSelectors(node.prelude.value) : [];
|
||||
atrule.declarations = transformAst(node.block, css);
|
||||
}
|
||||
else if (node.name === "document") {
|
||||
atrule.document = node.prelude ? node.prelude.value : "";
|
||||
atrule.vendor = "";
|
||||
else if (node.name === 'document') {
|
||||
atrule.document = node.prelude ? node.prelude.value : '';
|
||||
atrule.vendor = '';
|
||||
atrule.rules = transformAst(node.block, css);
|
||||
}
|
||||
else if (node.name === "font-face") {
|
||||
else if (node.name === 'font-face') {
|
||||
atrule.declarations = transformAst(node.block, css);
|
||||
}
|
||||
else if (node.name === "import" || node.name === "charset" || node.name === "namespace") {
|
||||
atrule[node.name] = node.prelude ? node.prelude.value : "";
|
||||
else if (node.name === 'import' || node.name === 'charset' || node.name === 'namespace') {
|
||||
atrule[node.name] = node.prelude ? node.prelude.value : '';
|
||||
}
|
||||
else if (node.name === "keyframes") {
|
||||
atrule.name = node.prelude ? node.prelude.value : "";
|
||||
atrule.keyframes = transformAst(node.block, css, "keyframe");
|
||||
else if (node.name === 'keyframes') {
|
||||
atrule.name = node.prelude ? node.prelude.value : '';
|
||||
atrule.keyframes = transformAst(node.block, css, 'keyframe');
|
||||
atrule.vendor = undefined;
|
||||
}
|
||||
else {
|
||||
@@ -72,17 +75,20 @@ function transformAst(node, css, type) {
|
||||
atrule.position = mapPosition(node, css);
|
||||
return atrule;
|
||||
}
|
||||
if (node.type === "Block") {
|
||||
return node.children.map(function (child) { return transformAst(child, css, type); }).filter(function (child) { return child !== null; }).toArray();
|
||||
if (node.type === 'Block') {
|
||||
return node.children
|
||||
.map(function (child) { return transformAst(child, css, type); })
|
||||
.filter(function (child) { return child !== null; })
|
||||
.toArray();
|
||||
}
|
||||
if (node.type === "Rule") {
|
||||
if (node.type === 'Rule') {
|
||||
var value = node.prelude.value;
|
||||
var res = {
|
||||
type: type != null ? type : "rule",
|
||||
type: type != null ? type : 'rule',
|
||||
declarations: transformAst(node.block, css),
|
||||
position: mapPosition(node, css)
|
||||
position: mapPosition(node, css),
|
||||
};
|
||||
if (type === "keyframe") {
|
||||
if (type === 'keyframe') {
|
||||
res.values = mapSelectors(value);
|
||||
}
|
||||
else {
|
||||
@@ -90,22 +96,22 @@ function transformAst(node, css, type) {
|
||||
}
|
||||
return res;
|
||||
}
|
||||
if (node.type === "Comment") {
|
||||
if (node.type === 'Comment') {
|
||||
return {
|
||||
type: "comment",
|
||||
type: 'comment',
|
||||
comment: node.value,
|
||||
position: mapPosition(node, css)
|
||||
position: mapPosition(node, css),
|
||||
};
|
||||
}
|
||||
if (node.type === "Declaration") {
|
||||
if (node.type === 'Declaration') {
|
||||
return {
|
||||
type: "declaration",
|
||||
type: 'declaration',
|
||||
property: node.property,
|
||||
value: node.value.value ? node.value.value.trim() : "",
|
||||
position: mapPosition(node, css)
|
||||
value: node.value.value ? node.value.value.trim() : '',
|
||||
position: mapPosition(node, css),
|
||||
};
|
||||
}
|
||||
if (node.type === "Raw") {
|
||||
if (node.type === 'Raw') {
|
||||
return null;
|
||||
}
|
||||
throw Error("Unknown node type " + node.type);
|
||||
@@ -120,7 +126,7 @@ function cssTreeParse(css, source) {
|
||||
filename: source,
|
||||
onParseError: function (error) {
|
||||
errors.push(source + ":" + error.line + ":" + error.column + ": " + error.formattedMessage);
|
||||
}
|
||||
},
|
||||
});
|
||||
if (errors.length > 0) {
|
||||
throw new Error(errors[0]);
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"css-tree-parser.js","sourceRoot":"","sources":["css-tree-parser.ts"],"names":[],"mappings":";;AAAA,qCAEkB;AAElB,SAAS,YAAY,CAAC,QAAgB;IAClC,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,EAAE,CAAC;KACb;IAED,OAAO,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,EAAzB,CAAyB,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,WAAW,CAAC,IAAI,EAAE,GAAG;IAC1B,IAAI,GAAG,GAAQ;QACX,KAAK,EAAE;YACH,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;YACzB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;SAChC;QACD,GAAG,EAAE;YACD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;YACvB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;SAC9B;QACD,OAAO,EAAE,GAAG;KACf,CAAC;IAEF,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE;QACpD,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;KAChC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAW;IAAX,qBAAA,EAAA,WAAW;IACxC,IAAI,CAAC,IAAI,EAAE;QACP,OAAO;KACV;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;QAC5B,OAAO;YACH,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE;gBACR,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,EAAxB,CAAwB,CAAC,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,KAAK,IAAI,EAAd,CAAc,CAAC,CAAC,OAAO,EAAE;gBACrG,aAAa,EAAE,EAAE;aACpB;SACJ,CAAC;KACL;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QACxB,IAAI,MAAM,GAAQ;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACvC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAChD;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YAC7B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACvD;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YACjC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAChD;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YAClC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACvD;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YACvF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YAClC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;SAC7B;aAAM;YACH,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAChD;QAED,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC;KACjB;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAA9B,CAA8B,CAAC,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,KAAK,IAAI,EAAd,CAAc,CAAC,CAAC,OAAO,EAAE,CAAC;KAC/G;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAE/B,IAAI,GAAG,GAAQ;YACX,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAClC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;YAC3C,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;SACnC,CAAC;QAEF,IAAI,IAAI,KAAK,UAAU,EAAE;YACrB,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;SACpC;aAAM;YACH,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,OAAO,GAAG,CAAC;KACd;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QACzB,OAAO;YACH,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;SACnC,CAAC;KACL;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;QAC7B,OAAO;YACH,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YACtD,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;SACnC,CAAC;KACL;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;QACrB,OAAO,IAAI,CAAC;KACf;IAED,MAAM,KAAK,CAAC,uBAAqB,IAAI,CAAC,IAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,YAAY,CAAC,GAAG,EAAE,MAAM;IACpC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,GAAG,GAAG,gBAAK,CAAC,GAAG,EAAE;QACjB,UAAU,EAAE,KAAK;QACjB,kBAAkB,EAAE,KAAK;QACzB,gBAAgB,EAAE,KAAK;QACvB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,MAAM;QAChB,YAAY,EAAE,UAAA,KAAK;YACf,MAAM,CAAC,IAAI,CAAI,MAAM,SAAI,KAAK,CAAC,IAAI,SAAI,KAAK,CAAC,MAAM,UAAK,KAAK,CAAC,gBAAkB,CAAC,CAAC;QACtF,CAAC;KACJ,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9B;IAED,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAlBD,oCAkBC"}
|
||||
{"version":3,"file":"css-tree-parser.js","sourceRoot":"","sources":["css-tree-parser.ts"],"names":[],"mappings":"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"}
|
||||
@@ -1,158 +1,148 @@
|
||||
import { parse } from "css-tree";
|
||||
import { parse } from 'css-tree';
|
||||
|
||||
function mapSelectors(selector: string): string[] {
|
||||
if (!selector) {
|
||||
return [];
|
||||
}
|
||||
if (!selector) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return selector
|
||||
.split(/\s*(?![^(]*\)),\s*/)
|
||||
.map((s) => s.replace(/\u200C/g, ","));
|
||||
return selector.split(/\s*(?![^(]*\)),\s*/).map((s) => s.replace(/\u200C/g, ','));
|
||||
}
|
||||
|
||||
function mapPosition(node, css) {
|
||||
let res: any = {
|
||||
start: {
|
||||
line: node.loc.start.line,
|
||||
column: node.loc.start.column,
|
||||
},
|
||||
end: {
|
||||
line: node.loc.end.line,
|
||||
column: node.loc.end.column,
|
||||
},
|
||||
content: css,
|
||||
};
|
||||
let res: any = {
|
||||
start: {
|
||||
line: node.loc.start.line,
|
||||
column: node.loc.start.column,
|
||||
},
|
||||
end: {
|
||||
line: node.loc.end.line,
|
||||
column: node.loc.end.column,
|
||||
},
|
||||
content: css,
|
||||
};
|
||||
|
||||
if (node.loc.source && node.loc.source !== "<unknown>") {
|
||||
res.source = node.loc.source;
|
||||
}
|
||||
if (node.loc.source && node.loc.source !== '<unknown>') {
|
||||
res.source = node.loc.source;
|
||||
}
|
||||
|
||||
return res;
|
||||
return res;
|
||||
}
|
||||
|
||||
function transformAst(node, css, type = null) {
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (node.type === "StyleSheet") {
|
||||
return {
|
||||
type: "stylesheet",
|
||||
stylesheet: {
|
||||
rules: node.children
|
||||
.map((child) => transformAst(child, css))
|
||||
.filter((child) => child !== null)
|
||||
.toArray(),
|
||||
parsingErrors: [],
|
||||
},
|
||||
};
|
||||
}
|
||||
if (node.type === 'StyleSheet') {
|
||||
return {
|
||||
type: 'stylesheet',
|
||||
stylesheet: {
|
||||
rules: node.children
|
||||
.map((child) => transformAst(child, css))
|
||||
.filter((child) => child !== null)
|
||||
.toArray(),
|
||||
parsingErrors: [],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
if (node.type === "Atrule") {
|
||||
let atrule: any = {
|
||||
type: node.name,
|
||||
};
|
||||
if (node.type === 'Atrule') {
|
||||
let atrule: any = {
|
||||
type: node.name,
|
||||
};
|
||||
|
||||
if (node.name === "supports" || node.name === "media") {
|
||||
atrule[node.name] = node.prelude.value;
|
||||
atrule.rules = transformAst(node.block, css);
|
||||
} else if (node.name === "page") {
|
||||
atrule.selectors = node.prelude
|
||||
? mapSelectors(node.prelude.value)
|
||||
: [];
|
||||
atrule.declarations = transformAst(node.block, css);
|
||||
} else if (node.name === "document") {
|
||||
atrule.document = node.prelude ? node.prelude.value : "";
|
||||
atrule.vendor = "";
|
||||
atrule.rules = transformAst(node.block, css);
|
||||
} else if (node.name === "font-face") {
|
||||
atrule.declarations = transformAst(node.block, css);
|
||||
} else if (
|
||||
node.name === "import" ||
|
||||
node.name === "charset" ||
|
||||
node.name === "namespace"
|
||||
) {
|
||||
atrule[node.name] = node.prelude ? node.prelude.value : "";
|
||||
} else if (node.name === "keyframes") {
|
||||
atrule.name = node.prelude ? node.prelude.value : "";
|
||||
atrule.keyframes = transformAst(node.block, css, "keyframe");
|
||||
atrule.vendor = undefined;
|
||||
} else {
|
||||
atrule.rules = transformAst(node.block, css);
|
||||
}
|
||||
if (node.name === 'supports' || node.name === 'media') {
|
||||
atrule[node.name] = node.prelude.value;
|
||||
atrule.rules = transformAst(node.block, css);
|
||||
} else if (node.name === 'page') {
|
||||
atrule.selectors = node.prelude ? mapSelectors(node.prelude.value) : [];
|
||||
atrule.declarations = transformAst(node.block, css);
|
||||
} else if (node.name === 'document') {
|
||||
atrule.document = node.prelude ? node.prelude.value : '';
|
||||
atrule.vendor = '';
|
||||
atrule.rules = transformAst(node.block, css);
|
||||
} else if (node.name === 'font-face') {
|
||||
atrule.declarations = transformAst(node.block, css);
|
||||
} else if (node.name === 'import' || node.name === 'charset' || node.name === 'namespace') {
|
||||
atrule[node.name] = node.prelude ? node.prelude.value : '';
|
||||
} else if (node.name === 'keyframes') {
|
||||
atrule.name = node.prelude ? node.prelude.value : '';
|
||||
atrule.keyframes = transformAst(node.block, css, 'keyframe');
|
||||
atrule.vendor = undefined;
|
||||
} else {
|
||||
atrule.rules = transformAst(node.block, css);
|
||||
}
|
||||
|
||||
atrule.position = mapPosition(node, css);
|
||||
atrule.position = mapPosition(node, css);
|
||||
|
||||
return atrule;
|
||||
}
|
||||
return atrule;
|
||||
}
|
||||
|
||||
if (node.type === "Block") {
|
||||
return node.children
|
||||
.map((child) => transformAst(child, css, type))
|
||||
.filter((child) => child !== null)
|
||||
.toArray();
|
||||
}
|
||||
if (node.type === 'Block') {
|
||||
return node.children
|
||||
.map((child) => transformAst(child, css, type))
|
||||
.filter((child) => child !== null)
|
||||
.toArray();
|
||||
}
|
||||
|
||||
if (node.type === "Rule") {
|
||||
let value = node.prelude.value;
|
||||
if (node.type === 'Rule') {
|
||||
let value = node.prelude.value;
|
||||
|
||||
let res: any = {
|
||||
type: type != null ? type : "rule",
|
||||
declarations: transformAst(node.block, css),
|
||||
position: mapPosition(node, css),
|
||||
};
|
||||
let res: any = {
|
||||
type: type != null ? type : 'rule',
|
||||
declarations: transformAst(node.block, css),
|
||||
position: mapPosition(node, css),
|
||||
};
|
||||
|
||||
if (type === "keyframe") {
|
||||
res.values = mapSelectors(value);
|
||||
} else {
|
||||
res.selectors = mapSelectors(value);
|
||||
}
|
||||
if (type === 'keyframe') {
|
||||
res.values = mapSelectors(value);
|
||||
} else {
|
||||
res.selectors = mapSelectors(value);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
if (node.type === "Comment") {
|
||||
return {
|
||||
type: "comment",
|
||||
comment: node.value,
|
||||
position: mapPosition(node, css),
|
||||
};
|
||||
}
|
||||
if (node.type === 'Comment') {
|
||||
return {
|
||||
type: 'comment',
|
||||
comment: node.value,
|
||||
position: mapPosition(node, css),
|
||||
};
|
||||
}
|
||||
|
||||
if (node.type === "Declaration") {
|
||||
return {
|
||||
type: "declaration",
|
||||
property: node.property,
|
||||
value: node.value.value ? node.value.value.trim() : "",
|
||||
position: mapPosition(node, css),
|
||||
};
|
||||
}
|
||||
if (node.type === 'Declaration') {
|
||||
return {
|
||||
type: 'declaration',
|
||||
property: node.property,
|
||||
value: node.value.value ? node.value.value.trim() : '',
|
||||
position: mapPosition(node, css),
|
||||
};
|
||||
}
|
||||
|
||||
if (node.type === "Raw") {
|
||||
return null;
|
||||
}
|
||||
if (node.type === 'Raw') {
|
||||
return null;
|
||||
}
|
||||
|
||||
throw Error(`Unknown node type ${node.type}`);
|
||||
throw Error(`Unknown node type ${node.type}`);
|
||||
}
|
||||
|
||||
export function cssTreeParse(css, source): any {
|
||||
let errors = [];
|
||||
let ast = parse(css, {
|
||||
parseValue: false,
|
||||
parseAtrulePrelude: false,
|
||||
parseRulePrelude: false,
|
||||
positions: true,
|
||||
filename: source,
|
||||
onParseError: (error) => {
|
||||
errors.push(
|
||||
`${source}:${error.line}:${error.column}: ${error.formattedMessage}`
|
||||
);
|
||||
},
|
||||
});
|
||||
let errors = [];
|
||||
let ast = parse(css, {
|
||||
parseValue: false,
|
||||
parseAtrulePrelude: false,
|
||||
parseRulePrelude: false,
|
||||
positions: true,
|
||||
filename: source,
|
||||
onParseError: (error) => {
|
||||
errors.push(`${source}:${error.line}:${error.column}: ${error.formattedMessage}`);
|
||||
},
|
||||
});
|
||||
|
||||
if (errors.length > 0) {
|
||||
throw new Error(errors[0]);
|
||||
}
|
||||
if (errors.length > 0) {
|
||||
throw new Error(errors[0]);
|
||||
}
|
||||
|
||||
return transformAst(ast, css);
|
||||
return transformAst(ast, css);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
22
nativescript-core/css/reworkcss.d.ts
vendored
22
nativescript-core/css/reworkcss.d.ts
vendored
@@ -1,33 +1,33 @@
|
||||
export interface Position {
|
||||
start: { line: number; column: number };
|
||||
end: { line: number; column: number };
|
||||
start: { line: number; column: number };
|
||||
end: { line: number; column: number };
|
||||
}
|
||||
|
||||
export interface Node {
|
||||
type: "rule" | "keyframes" | "declaration" | "import";
|
||||
position: Position;
|
||||
type: 'rule' | 'keyframes' | 'declaration' | 'import';
|
||||
position: Position;
|
||||
}
|
||||
|
||||
export interface Declaration extends Node {
|
||||
property: string;
|
||||
value: string;
|
||||
property: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export interface Rule extends Node {
|
||||
selectors: string[];
|
||||
declarations: Node[];
|
||||
selectors: string[];
|
||||
declarations: Node[];
|
||||
}
|
||||
|
||||
export interface Keyframes extends Rule {
|
||||
name: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface StyleSheet {
|
||||
rules: Node[];
|
||||
rules: Node[];
|
||||
}
|
||||
|
||||
export interface SyntaxTree {
|
||||
stylesheet: StyleSheet;
|
||||
stylesheet: StyleSheet;
|
||||
}
|
||||
|
||||
export function parse(css: string, options: any): SyntaxTree;
|
||||
|
||||
@@ -1,44 +1,44 @@
|
||||
const MODAL = "modal";
|
||||
const ROOT = "root";
|
||||
const MODAL = 'modal';
|
||||
const ROOT = 'root';
|
||||
const cssClasses = [];
|
||||
|
||||
export const CLASS_PREFIX = "ns-";
|
||||
export const CLASS_PREFIX = 'ns-';
|
||||
export const MODAL_ROOT_VIEW_CSS_CLASS = `${CLASS_PREFIX}${MODAL}`;
|
||||
export const ROOT_VIEW_CSS_CLASS = `${CLASS_PREFIX}${ROOT}`;
|
||||
|
||||
export function getSystemCssClasses(): string[] {
|
||||
return cssClasses;
|
||||
return cssClasses;
|
||||
}
|
||||
|
||||
export function pushToSystemCssClasses(value: string): number {
|
||||
cssClasses.push(value);
|
||||
cssClasses.push(value);
|
||||
|
||||
return cssClasses.length;
|
||||
return cssClasses.length;
|
||||
}
|
||||
|
||||
export function removeSystemCssClass(value: string): string {
|
||||
const index = cssClasses.indexOf(value);
|
||||
let removedElement;
|
||||
const index = cssClasses.indexOf(value);
|
||||
let removedElement;
|
||||
|
||||
if (index > -1) {
|
||||
removedElement = cssClasses.splice(index, 1);
|
||||
}
|
||||
if (index > -1) {
|
||||
removedElement = cssClasses.splice(index, 1);
|
||||
}
|
||||
|
||||
return removedElement;
|
||||
return removedElement;
|
||||
}
|
||||
|
||||
export function getModalRootViewCssClass(): string {
|
||||
return MODAL_ROOT_VIEW_CSS_CLASS;
|
||||
return MODAL_ROOT_VIEW_CSS_CLASS;
|
||||
}
|
||||
|
||||
export function getRootViewCssClasses(): string[] {
|
||||
return [ROOT_VIEW_CSS_CLASS, ...cssClasses];
|
||||
return [ROOT_VIEW_CSS_CLASS, ...cssClasses];
|
||||
}
|
||||
|
||||
export function pushToRootViewCssClasses(value: string): number {
|
||||
return pushToSystemCssClasses(value) + 1; // because of ROOT_VIEW_CSS_CLASS
|
||||
return pushToSystemCssClasses(value) + 1; // because of ROOT_VIEW_CSS_CLASS
|
||||
}
|
||||
|
||||
export function removeFromRootViewCssClasses(value: string): string {
|
||||
return removeSystemCssClass(value);
|
||||
return removeSystemCssClass(value);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user