@mapsight/vector-style-compiler 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +366 -0
- package/bin/vector-style-compiler.js +2 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +83 -0
- package/dist/cli.js.map +1 -0
- package/dist/cssToRules/mapDeclaration.d.ts +16 -0
- package/dist/cssToRules/mapDeclaration.d.ts.map +1 -0
- package/dist/cssToRules/mapDeclaration.js +24 -0
- package/dist/cssToRules/mapDeclaration.js.map +1 -0
- package/dist/cssToRules/mapRule.d.ts +41 -0
- package/dist/cssToRules/mapRule.d.ts.map +1 -0
- package/dist/cssToRules/mapRule.js +60 -0
- package/dist/cssToRules/mapRule.js.map +1 -0
- package/dist/cssToRules/mapSelector.d.ts +27 -0
- package/dist/cssToRules/mapSelector.d.ts.map +1 -0
- package/dist/cssToRules/mapSelector.js +61 -0
- package/dist/cssToRules/mapSelector.js.map +1 -0
- package/dist/cssToRules/mapSelectorPart.d.ts +48 -0
- package/dist/cssToRules/mapSelectorPart.d.ts.map +1 -0
- package/dist/cssToRules/mapSelectorPart.js +106 -0
- package/dist/cssToRules/mapSelectorPart.js.map +1 -0
- package/dist/cssToRules/mapValue.d.ts +20 -0
- package/dist/cssToRules/mapValue.d.ts.map +1 -0
- package/dist/cssToRules/mapValue.js +67 -0
- package/dist/cssToRules/mapValue.js.map +1 -0
- package/dist/cssToRules.d.ts +50 -0
- package/dist/cssToRules.d.ts.map +1 -0
- package/dist/cssToRules.js +32 -0
- package/dist/cssToRules.js.map +1 -0
- package/dist/helpers/Replacer.d.ts +11 -0
- package/dist/helpers/Replacer.d.ts.map +1 -0
- package/dist/helpers/Replacer.js +28 -0
- package/dist/helpers/Replacer.js.map +1 -0
- package/dist/helpers/compileDeclarationBlock.d.ts +14 -0
- package/dist/helpers/compileDeclarationBlock.d.ts.map +1 -0
- package/dist/helpers/compileDeclarationBlock.js +38 -0
- package/dist/helpers/compileDeclarationBlock.js.map +1 -0
- package/dist/helpers/createModulesMapFromDependencies.d.ts +5 -0
- package/dist/helpers/createModulesMapFromDependencies.d.ts.map +1 -0
- package/dist/helpers/createModulesMapFromDependencies.js +31 -0
- package/dist/helpers/createModulesMapFromDependencies.js.map +1 -0
- package/dist/helpers/ensureObject.d.ts +3 -0
- package/dist/helpers/ensureObject.d.ts.map +1 -0
- package/dist/helpers/ensureObject.js +12 -0
- package/dist/helpers/ensureObject.js.map +1 -0
- package/dist/helpers/pathToExpression.d.ts +2 -0
- package/dist/helpers/pathToExpression.d.ts.map +1 -0
- package/dist/helpers/pathToExpression.js +6 -0
- package/dist/helpers/pathToExpression.js.map +1 -0
- package/dist/helpers/uniqueSerialized.d.ts +2 -0
- package/dist/helpers/uniqueSerialized.d.ts.map +1 -0
- package/dist/helpers/uniqueSerialized.js +5 -0
- package/dist/helpers/uniqueSerialized.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/rulesToTree.d.ts +20 -0
- package/dist/rulesToTree.d.ts.map +1 -0
- package/dist/rulesToTree.js +43 -0
- package/dist/rulesToTree.js.map +1 -0
- package/dist/template.d.ts +16 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +22 -0
- package/dist/template.js.map +1 -0
- package/dist/template.source.d.ts +3 -0
- package/dist/template.source.d.ts.map +1 -0
- package/dist/template.source.js +50 -0
- package/dist/template.source.js.map +1 -0
- package/dist/treeToProgram.d.ts +3 -0
- package/dist/treeToProgram.d.ts.map +1 -0
- package/dist/treeToProgram.js +158 -0
- package/dist/treeToProgram.js.map +1 -0
- package/package.json +67 -0
- package/src/data/custom-css-properties.json +200 -0
- package/src/js/cli.ts +98 -0
- package/src/js/cssToRules/mapDeclaration.ts +45 -0
- package/src/js/cssToRules/mapRule.ts +98 -0
- package/src/js/cssToRules/mapSelector.ts +78 -0
- package/src/js/cssToRules/mapSelectorPart.ts +161 -0
- package/src/js/cssToRules/mapValue.ts +84 -0
- package/src/js/cssToRules.ts +49 -0
- package/src/js/helpers/Replacer.ts +50 -0
- package/src/js/helpers/compileDeclarationBlock.ts +60 -0
- package/src/js/helpers/createModulesMapFromDependencies.ts +40 -0
- package/src/js/helpers/ensureObject.ts +17 -0
- package/src/js/helpers/pathToExpression.ts +5 -0
- package/src/js/helpers/uniqueSerialized.ts +7 -0
- package/src/js/index.ts +28 -0
- package/src/js/rulesToTree.ts +83 -0
- package/src/js/template.source.js +56 -0
- package/src/js/template.ts +50 -0
- package/src/js/treeToProgram.ts +220 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uniqueSerialized.d.ts","sourceRoot":"","sources":["../../src/js/helpers/uniqueSerialized.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAIjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uniqueSerialized.js","sourceRoot":"","sources":["../../src/js/helpers/uniqueSerialized.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,+BAA+B,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAI,CAAW;IACtD,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,CACzB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Template } from "./template.ts";
|
|
2
|
+
export type Options = {
|
|
3
|
+
template?: Template;
|
|
4
|
+
additionalData?: Record<string, string | number>;
|
|
5
|
+
baseIndent?: number;
|
|
6
|
+
};
|
|
7
|
+
export default function compileMapsightVectorStyle(content: string, { template, additionalData, baseIndent, }?: Options): string;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/js/index.ts"],"names":[],"mappings":"AAEA,OAAwB,EAAC,KAAK,QAAQ,EAAC,MAAM,eAAe,CAAC;AAG7D,MAAM,MAAM,OAAO,GAAG;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,0BAA0B,CACjD,OAAO,EAAE,MAAM,EACf,EACC,QAA0B,EAC1B,cAAmB,EACnB,UAAc,GACd,GAAE,OAAY,UAUf"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import cssToRules from "./cssToRules.js";
|
|
2
|
+
import rulesToTree from "./rulesToTree.js";
|
|
3
|
+
import defaultTemplate from "./template.js";
|
|
4
|
+
import treeToProgram from "./treeToProgram.js";
|
|
5
|
+
export default function compileMapsightVectorStyle(content, { template = defaultTemplate, additionalData = {}, baseIndent = 2, } = {}) {
|
|
6
|
+
const rules = cssToRules(content);
|
|
7
|
+
const tree = rulesToTree(rules.rules);
|
|
8
|
+
return template({
|
|
9
|
+
__meta: rules.__meta,
|
|
10
|
+
program1: treeToProgram(tree, "hash", baseIndent),
|
|
11
|
+
program2: treeToProgram(tree, "declaration", baseIndent),
|
|
12
|
+
...additionalData,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/js/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,eAAgC,MAAM,eAAe,CAAC;AAC7D,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAQ/C,MAAM,CAAC,OAAO,UAAU,0BAA0B,CACjD,OAAe,EACf,EACC,QAAQ,GAAG,eAAe,EAC1B,cAAc,GAAG,EAAE,EACnB,UAAU,GAAG,CAAC,MACF,EAAE;IAEf,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC;QACf,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC;QACjD,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC;QACxD,GAAG,cAAc;KACjB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Rules } from "./cssToRules.ts";
|
|
2
|
+
import type { DeclarationNode } from "./cssToRules/mapDeclaration.ts";
|
|
3
|
+
import type { Check } from "./cssToRules/mapSelectorPart.ts";
|
|
4
|
+
export type TreeLeaf = {
|
|
5
|
+
declarations?: DeclarationNode;
|
|
6
|
+
children: Child[];
|
|
7
|
+
stylePropExpressions?: Array<string>;
|
|
8
|
+
};
|
|
9
|
+
export type Child = {
|
|
10
|
+
conditions: Array<Array<Check>>;
|
|
11
|
+
declarations?: DeclarationNode;
|
|
12
|
+
stylePropExpressions?: Array<string>;
|
|
13
|
+
};
|
|
14
|
+
export type Tree = {
|
|
15
|
+
[style: string]: {
|
|
16
|
+
[state: string]: TreeLeaf;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export default function rulesToTree(rules: Rules["rules"]): Tree;
|
|
20
|
+
//# sourceMappingURL=rulesToTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rulesToTree.d.ts","sourceRoot":"","sources":["../src/js/rulesToTree.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,iCAAiC,CAAC;AAE3D,MAAM,MAAM,QAAQ,GAAG;IACtB,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,oBAAoB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IACnB,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,oBAAoB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IAClB,CAAC,KAAK,EAAE,MAAM,GAAG;QAChB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC1B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QA0DxD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import deepExtend from "@mapsight/lib-js/object/deep-extend";
|
|
2
|
+
export default function rulesToTree(rules) {
|
|
3
|
+
const tree = {};
|
|
4
|
+
rules.forEach((rule) => {
|
|
5
|
+
const ruleTree = {};
|
|
6
|
+
rule.conditions.forEach((condition) => {
|
|
7
|
+
const style = condition.style || "default";
|
|
8
|
+
const state = condition.state || "default";
|
|
9
|
+
ruleTree[style] ??= {};
|
|
10
|
+
ruleTree[style][state] ??= [];
|
|
11
|
+
if (condition.checks) {
|
|
12
|
+
ruleTree[style][state].push(condition.checks);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
Object.keys(ruleTree).forEach((style) => {
|
|
16
|
+
const sub = ruleTree[style];
|
|
17
|
+
if (!sub) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const styleTree = tree[style] || {};
|
|
21
|
+
Object.keys(sub).forEach((state) => {
|
|
22
|
+
const stateTree = styleTree[state] ?? {
|
|
23
|
+
children: [],
|
|
24
|
+
};
|
|
25
|
+
const conditions = sub[state];
|
|
26
|
+
if (conditions?.length) {
|
|
27
|
+
stateTree.children.push({
|
|
28
|
+
conditions: conditions,
|
|
29
|
+
declarations: rule.declarations,
|
|
30
|
+
stylePropExpressions: rule.__meta.stylePropExpressions,
|
|
31
|
+
});
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
stateTree.stylePropExpressions = (stateTree.stylePropExpressions || []).concat(rule.__meta.stylePropExpressions);
|
|
35
|
+
stateTree.declarations = deepExtend(stateTree.declarations || {}, rule.declarations);
|
|
36
|
+
styleTree[state] = stateTree;
|
|
37
|
+
});
|
|
38
|
+
tree[style] = styleTree;
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
return tree;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=rulesToTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rulesToTree.js","sourceRoot":"","sources":["../src/js/rulesToTree.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qCAAqC,CAAC;AAwB7D,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAqB;IACxD,MAAM,IAAI,GAAS,EAAE,CAAC;IAEtB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,MAAM,QAAQ,GAGV,EAAE,CAAC;QAEP,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC;YAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC;YAE3C,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAE9B,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACtB,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACR,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClC,MAAM,SAAS,GAAyB,SAAS,CAAC,KAAK,CAAC,IAAI;oBAC3D,QAAQ,EAAE,EAAE;iBACZ,CAAC;gBAEF,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;oBACxB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACvB,UAAU,EAAE,UAAU;wBACtB,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;qBACtD,CAAC,CAAC;oBACH,OAAO;gBACR,CAAC;gBACD,SAAS,CAAC,oBAAoB,GAAG,CAChC,SAAS,CAAC,oBAAoB,IAAI,EAAE,CACpC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAE3C,SAAS,CAAC,YAAY,GAAG,UAAU,CAClC,SAAS,CAAC,YAAY,IAAI,EAAE,EAC5B,IAAI,CAAC,YAAY,CACjB,CAAC;gBAEF,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QACzB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type TemplateArgs<TAdditionalData extends Record<string, unknown> = Record<string, unknown>> = TAdditionalData & {
|
|
2
|
+
__meta: {
|
|
3
|
+
styleNames: string[];
|
|
4
|
+
stateNames: string[];
|
|
5
|
+
groupNames: string[];
|
|
6
|
+
declarationNames: string[];
|
|
7
|
+
styleProps: string[];
|
|
8
|
+
stylePropExpressions: string[];
|
|
9
|
+
};
|
|
10
|
+
program1: string;
|
|
11
|
+
program2: string;
|
|
12
|
+
};
|
|
13
|
+
export type Template<TAdditionalData extends Record<string, unknown> = Record<string, unknown>> = (args: TemplateArgs<TAdditionalData>) => string;
|
|
14
|
+
declare const defaultTemplate: ({ __meta, program1, program2 }: TemplateArgs) => string;
|
|
15
|
+
export default defaultTemplate;
|
|
16
|
+
//# sourceMappingURL=template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../src/js/template.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,YAAY,CACvB,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACtE,eAAe,GAAG;IACrB,MAAM,EAAE;QACP,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,oBAAoB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,QAAQ,CACnB,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACtE,CAAC,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC;AAYpD,QAAA,MAAM,eAAe,GAAI,gCAA8B,YAAY,WAclE,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
package/dist/template.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import createModulesMapFromDependencies from "./helpers/createModulesMapFromDependencies.js";
|
|
4
|
+
const templateSource = readFileSync(resolve(import.meta.dirname, "template.source.js"), "utf8");
|
|
5
|
+
const replaceTag = (content, tag, value) => {
|
|
6
|
+
const pattern = `\\/\\*\\s*${tag}-start:\\s*\\*\\/[\\s\\S]*?\\/\\*\\s*:${tag}-end\\s*\\*\\/`;
|
|
7
|
+
return content.replace(new RegExp(pattern, "g"), () => value);
|
|
8
|
+
};
|
|
9
|
+
const defaultTemplate = ({ __meta, program1, program2 }) => {
|
|
10
|
+
const { declarationNames, styleProps, styleNames } = __meta;
|
|
11
|
+
const { map: constructorMap, imports: styleImports } = createModulesMapFromDependencies(declarationNames);
|
|
12
|
+
let result = "// @ts-nocheck\n" + templateSource;
|
|
13
|
+
result = replaceTag(result, "styleImports", styleImports);
|
|
14
|
+
result = replaceTag(result, "constructorMap", constructorMap);
|
|
15
|
+
result = replaceTag(result, "styleNames", JSON.stringify(styleNames));
|
|
16
|
+
result = replaceTag(result, "styleProps", JSON.stringify(styleProps));
|
|
17
|
+
result = replaceTag(result, "program1", program1);
|
|
18
|
+
result = replaceTag(result, "program2", program2);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
export default defaultTemplate;
|
|
22
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../src/js/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AACrC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,OAAO,gCAAgC,MAAM,+CAA+C,CAAC;AAoB7F,MAAM,cAAc,GAAG,YAAY,CAClC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,EAClD,MAAM,CACN,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,GAAW,EAAE,KAAa,EAAE,EAAE;IAClE,MAAM,OAAO,GAAG,aAAa,GAAG,yCAAyC,GAAG,gBAAgB,CAAC;IAC7F,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAe,EAAE,EAAE;IACtE,MAAM,EAAC,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC;IAC1D,MAAM,EAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAC,GACjD,gCAAgC,CAAC,gBAAgB,CAAC,CAAC;IAEpD,IAAI,MAAM,GAAG,kBAAkB,GAAG,cAAc,CAAC;IACjD,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACtE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACtE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAElD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.source.d.ts","sourceRoot":"","sources":["../src/js/template.source.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import get from "@mapsight/lib-js/object/getPath";
|
|
2
|
+
import replace from "@mapsight/lib-js/string/replaceRegex";
|
|
3
|
+
import createCachedStyleFunction from "@mapsight/lib-ol/style/createCachedStyleFunction";
|
|
4
|
+
/* styleImports-start: */
|
|
5
|
+
import __vectorStyle_circle from "ol/style/Circle";
|
|
6
|
+
/* :styleImports-end */
|
|
7
|
+
/** @type {(value: unknown) => string} */
|
|
8
|
+
const createHash = /* @__PURE__ */ (value) =>
|
|
9
|
+
/* @__PURE__ */ JSON.stringify(value);
|
|
10
|
+
/** @type {import('@mapsight/lib-ol/style/createCachedStyleFunction').StyleFunctionOptions} */
|
|
11
|
+
const styleOptions = {
|
|
12
|
+
constructorsMap: /* constructorMap-start: */ {
|
|
13
|
+
circle: __vectorStyle_circle,
|
|
14
|
+
} /* :constructorMap-end */,
|
|
15
|
+
allowedStyles: /* styleNames-start: */ [] /* :styleNames-end */,
|
|
16
|
+
allowedProps: /* styleProps-start: */ ["test"] /* :styleProps-end */,
|
|
17
|
+
declarationHashFunction: (env, props, hashPrefix, geometryType, style) => {
|
|
18
|
+
/** @type {Array<string|number>} */
|
|
19
|
+
const hash = [hashPrefix, geometryType];
|
|
20
|
+
// noinspection UnnecessaryLocalVariableJS
|
|
21
|
+
/** @type {(a: string|number) => void} */
|
|
22
|
+
const h = (a) => {
|
|
23
|
+
hash.push(a);
|
|
24
|
+
};
|
|
25
|
+
/* program1-start: */
|
|
26
|
+
h(1);
|
|
27
|
+
h("@" + createHash(style));
|
|
28
|
+
h("@" + createHash(props["test"]));
|
|
29
|
+
h("@" + createHash(env["test"]));
|
|
30
|
+
h("@" + createHash(get(props, ["path", "to", "test"])));
|
|
31
|
+
/* :program1-end */
|
|
32
|
+
return hash.join("|");
|
|
33
|
+
},
|
|
34
|
+
declarationFunction: (env, props, geometryType, style) => {
|
|
35
|
+
/** @type {Record<string, unknown>} */
|
|
36
|
+
const d = {};
|
|
37
|
+
/* program2-start: */
|
|
38
|
+
d.zIndex = 1;
|
|
39
|
+
d.calcTest = { value: "" + replace("a", "e", "hallo") + "" };
|
|
40
|
+
d.a = env.a;
|
|
41
|
+
d.b = props.b;
|
|
42
|
+
d.geometryType = geometryType;
|
|
43
|
+
d.style = style;
|
|
44
|
+
d.test = "foo";
|
|
45
|
+
/* :program2-end */
|
|
46
|
+
return d;
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
export default createCachedStyleFunction(styleOptions);
|
|
50
|
+
//# sourceMappingURL=template.source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.source.js","sourceRoot":"","sources":["../src/js/template.source.js"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,iCAAiC,CAAC;AAClD,OAAO,OAAO,MAAM,sCAAsC,CAAC;AAC3D,OAAO,yBAAyB,MAAM,kDAAkD,CAAC;AACzF,yBAAyB;AACzB,OAAO,oBAAoB,MAAM,iBAAiB,CAAC;AAEnD,uBAAuB;AAEvB,yCAAyC;AACzC,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE;AAC5C,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,8FAA8F;AAC9F,MAAM,YAAY,GAAG;IACpB,eAAe,EAAE,2BAA2B,CAAC;QAC5C,MAAM,EAAE,oBAAoB;KAC5B,CAAC,yBAAyB;IAC3B,aAAa,EAAE,uBAAuB,CAAC,EAAE,CAAC,qBAAqB;IAC/D,YAAY,EAAE,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,qBAAqB;IACpE,uBAAuB,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;QACxE,mCAAmC;QACnC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACxC,0CAA0C;QAC1C,yCAAyC;QACzC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC,CAAC;QAEF,qBAAqB;QACrB,CAAC,CAAC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,mBAAmB;QAEnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,mBAAmB,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE;QACxD,sCAAsC;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC;QAEb,qBAAqB;QACrB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACb,CAAC,CAAC,QAAQ,GAAG,EAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAC,CAAC;QAC3D,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC;QAC9B,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;QACf,mBAAmB;QAEnB,OAAO,CAAC,CAAC;IACV,CAAC;CACD,CAAC;AAEF,eAAe,yBAAyB,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeToProgram.d.ts","sourceRoot":"","sources":["../src/js/treeToProgram.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAQ,IAAI,EAAW,MAAM,kBAAkB,CAAC;AA4G5D,MAAM,CAAC,OAAO,UAAU,aAAa,CACpC,IAAI,EAAE,IAAI,EACV,MAAM,SAAgB,EACtB,UAAU,SAAI,UAkGd"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { compileDeclarationBlock, } from "./helpers/compileDeclarationBlock.js";
|
|
2
|
+
import pathToExpression from "./helpers/pathToExpression.js";
|
|
3
|
+
const dict = "abcdefghijklmnopqrstuvwxyz";
|
|
4
|
+
function aliasName(n) {
|
|
5
|
+
if (n < 1)
|
|
6
|
+
throw new Error("n must be greater than 0");
|
|
7
|
+
let result = "";
|
|
8
|
+
let i = n;
|
|
9
|
+
while (i > 0) {
|
|
10
|
+
const j = (i - 1) % dict.length;
|
|
11
|
+
// Prepend the character to fix the read-order direction
|
|
12
|
+
result = dict[j] + result;
|
|
13
|
+
// Divide instead of subtract to shift to the next base digit
|
|
14
|
+
i = Math.floor((i - 1) / dict.length);
|
|
15
|
+
}
|
|
16
|
+
return `$${result}`;
|
|
17
|
+
}
|
|
18
|
+
function indent(depth = 0) {
|
|
19
|
+
return [
|
|
20
|
+
"\n" + "\t".repeat(depth),
|
|
21
|
+
"\n" + "\t".repeat(depth + 1),
|
|
22
|
+
"\n" + "\t".repeat(depth + 2),
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
function encodeDeclarationNode(node) {
|
|
26
|
+
if (!node) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return Object.fromEntries(Object.entries(node).map(([key, node]) => {
|
|
30
|
+
if (node === null) {
|
|
31
|
+
return ["value", null];
|
|
32
|
+
}
|
|
33
|
+
return [
|
|
34
|
+
key,
|
|
35
|
+
typeof node === "object"
|
|
36
|
+
? encodeDeclarationNode(node)
|
|
37
|
+
: node,
|
|
38
|
+
];
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
function checkToExpression(check, aliases) {
|
|
42
|
+
switch (check.type) {
|
|
43
|
+
case "js":
|
|
44
|
+
return check.expression;
|
|
45
|
+
case "geometryType":
|
|
46
|
+
return `geometryType == ${check.value}`;
|
|
47
|
+
case "value": {
|
|
48
|
+
let property = pathToExpression(check.target, check.path);
|
|
49
|
+
if (aliases) {
|
|
50
|
+
if (aliases.has(property)) {
|
|
51
|
+
property = aliases.get(property);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
const alias = aliasName(aliases.size + 1);
|
|
55
|
+
aliases.set(property, alias);
|
|
56
|
+
property = alias;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return "value" in check
|
|
60
|
+
? `${property} == ${check.value}`
|
|
61
|
+
: property;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function checkToExpressionWithAlias(check, aliases) {
|
|
66
|
+
const expression = checkToExpression(check, aliases);
|
|
67
|
+
if (aliases.has(expression)) {
|
|
68
|
+
return aliases.get(expression);
|
|
69
|
+
}
|
|
70
|
+
const alias = aliasName(aliases.size + 1);
|
|
71
|
+
aliases.set(expression, alias);
|
|
72
|
+
return alias;
|
|
73
|
+
}
|
|
74
|
+
function buildConditionExpression(child, aliases) {
|
|
75
|
+
const expressions = child.conditions.map((checks) => {
|
|
76
|
+
const checkExpression = checks.map((check) => {
|
|
77
|
+
const expression = checkToExpressionWithAlias(check, aliases);
|
|
78
|
+
return check.negate ? `!${expression}` : expression;
|
|
79
|
+
});
|
|
80
|
+
return checkExpression.length > 1
|
|
81
|
+
? `(${checkExpression.join(" && ")})`
|
|
82
|
+
: checkExpression[0];
|
|
83
|
+
});
|
|
84
|
+
return expressions.length > 1
|
|
85
|
+
? `(${expressions.join(" || ")})`
|
|
86
|
+
: expressions[0];
|
|
87
|
+
}
|
|
88
|
+
export default function treeToProgram(tree, target = "declaration", baseIndent = 0) {
|
|
89
|
+
let declarationCounter = 0;
|
|
90
|
+
function programDeclarationBody(subTree, depth, aliases) {
|
|
91
|
+
const [_] = indent(depth);
|
|
92
|
+
let result = "";
|
|
93
|
+
declarationCounter++;
|
|
94
|
+
if (target === "hash") {
|
|
95
|
+
result += `${_}h(${declarationCounter});`;
|
|
96
|
+
if (subTree.stylePropExpressions) {
|
|
97
|
+
subTree.stylePropExpressions.forEach((stylePropExpression) => {
|
|
98
|
+
let alias;
|
|
99
|
+
if (aliases.has(stylePropExpression)) {
|
|
100
|
+
alias = aliases.get(stylePropExpression);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
alias = aliasName(aliases.size + 1);
|
|
104
|
+
aliases.set(stylePropExpression, alias);
|
|
105
|
+
}
|
|
106
|
+
result += `${_}h('@' + createHash(${alias}));`;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (target === "declaration") {
|
|
111
|
+
const block = encodeDeclarationNode(subTree.declarations);
|
|
112
|
+
if (block) {
|
|
113
|
+
result += compileDeclarationBlock(block, "d", _);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
function stateToProgram(subTree, depth = 0) {
|
|
119
|
+
const [_] = indent(depth);
|
|
120
|
+
const aliases = new Map();
|
|
121
|
+
let program = "";
|
|
122
|
+
if (subTree.declarations) {
|
|
123
|
+
program += programDeclarationBody(subTree, depth, aliases);
|
|
124
|
+
}
|
|
125
|
+
if (subTree.children) {
|
|
126
|
+
const programParts = subTree.children.map((child) => {
|
|
127
|
+
const expression = buildConditionExpression(child, aliases);
|
|
128
|
+
return `if (${expression}) {${programDeclarationBody(child, depth + 2, aliases)}${_}}`;
|
|
129
|
+
});
|
|
130
|
+
if (programParts.length) {
|
|
131
|
+
program += `${_}${programParts.join(_)}`;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const aliasesPrograms = Array.from(aliases.entries()).map(([expression, alias]) => `const ${alias} = /* @__PURE__ */${expression};`);
|
|
135
|
+
if (aliasesPrograms.length) {
|
|
136
|
+
program = `${_}{${_}${aliasesPrograms.join(_)}${_}${program}${_}}`;
|
|
137
|
+
}
|
|
138
|
+
return program;
|
|
139
|
+
}
|
|
140
|
+
function styleToProgram(subTree, depth = 0) {
|
|
141
|
+
const cases = Object.keys(subTree).filter((a) => a !== "default");
|
|
142
|
+
const [_, __, ___] = indent(depth);
|
|
143
|
+
return ((subTree.default ? stateToProgram(subTree.default, depth) : "") +
|
|
144
|
+
(cases.length
|
|
145
|
+
? `${_}switch (state) {${cases.map((a) => `${__}case '${a}':${stateToProgram(subTree[a], depth + 2)}${___}break;`).join("")}${_}}`
|
|
146
|
+
: ""));
|
|
147
|
+
}
|
|
148
|
+
function stylesToProgram(rootTree, depth = 0) {
|
|
149
|
+
const cases = Object.keys(rootTree).filter((a) => a !== "default");
|
|
150
|
+
const [_, __, ___] = indent(depth);
|
|
151
|
+
return ((rootTree.default ? styleToProgram(rootTree.default, depth) : "") +
|
|
152
|
+
(cases.length
|
|
153
|
+
? `${_}switch (style) {${cases.map((a) => `${__}case '${a}':${styleToProgram(rootTree[a], depth + 2)}${___}break;`).join("")}${_}}`
|
|
154
|
+
: ""));
|
|
155
|
+
}
|
|
156
|
+
return stylesToProgram(tree, baseIndent);
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=treeToProgram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeToProgram.js","sourceRoot":"","sources":["../src/js/treeToProgram.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mapsight/vector-style-compiler",
|
|
3
|
+
"description": "Mapsight Vector Style Compiler",
|
|
4
|
+
"version": "8.0.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"vector-style-compiler": "./bin/vector-style-compiler.js"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"@types/css": "^0.0.38",
|
|
11
|
+
"@types/lodash": "^4.17.24",
|
|
12
|
+
"@types/node": "^24.12.4",
|
|
13
|
+
"css": "^3.0.0",
|
|
14
|
+
"lodash": "^4.18.1",
|
|
15
|
+
"@mapsight/lib-js": "^3.0.0"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@types/pidusage": "^2.0.5",
|
|
19
|
+
"chokidar": "^5.0.0",
|
|
20
|
+
"fs-extra": "^11.3.5",
|
|
21
|
+
"json": "^11.0.0",
|
|
22
|
+
"mkdirp": "^3.0.1",
|
|
23
|
+
"pidtree": "^0.6.0",
|
|
24
|
+
"pidusage": "^4.0.1",
|
|
25
|
+
"playwright": "^1.60.0",
|
|
26
|
+
"replace-in-file": "^8.4.0",
|
|
27
|
+
"sass": "^1.99.0",
|
|
28
|
+
"vite": "^8.0.13",
|
|
29
|
+
"vitest": "^4.1.6",
|
|
30
|
+
"@mapsight/core": "^14.0.0",
|
|
31
|
+
"@mapsight/lib-ol": "^4.0.0"
|
|
32
|
+
},
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"types": "./dist/index.d.ts",
|
|
36
|
+
"default": "./dist/index.js"
|
|
37
|
+
},
|
|
38
|
+
"./*": {
|
|
39
|
+
"types": "./dist/*.d.ts",
|
|
40
|
+
"default": "./dist/*.js"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"license": "UNLICENSED",
|
|
44
|
+
"main": "./dist/index.js",
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"ol": "^10.9.0",
|
|
47
|
+
"@mapsight/core": "^14.0.0",
|
|
48
|
+
"@mapsight/lib-ol": "^4.0.0"
|
|
49
|
+
},
|
|
50
|
+
"types": "./dist/index.d.ts",
|
|
51
|
+
"scripts": {
|
|
52
|
+
"bench": "node __tests__/performance.engines.bench.ts",
|
|
53
|
+
"build": "run-s build:setup build:modules",
|
|
54
|
+
"build:modules": "tsc -p tsconfig.build.json",
|
|
55
|
+
"build:setup": "mkdirp dist",
|
|
56
|
+
"clean": "rimraf dist",
|
|
57
|
+
"clean-build": "run-s clean build",
|
|
58
|
+
"copy": "run-p copy:*",
|
|
59
|
+
"copy:templates": "cp src/js/template.source.js dist/template.source.js",
|
|
60
|
+
"data:sort-custom-css-properties": "json -I -f src/data/custom-css-properties.json -o jsony-tab -e 'this.sort((a, b) => a.name.localeCompare(b.name))' -A",
|
|
61
|
+
"lint": "eslint",
|
|
62
|
+
"test": "vitest run",
|
|
63
|
+
"typecheck": "tsc --noEmit",
|
|
64
|
+
"update-readme": "node scripts/update-readme.mts",
|
|
65
|
+
"watch": "tsc --watch"
|
|
66
|
+
}
|
|
67
|
+
}
|