@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.
Files changed (94) hide show
  1. package/README.md +366 -0
  2. package/bin/vector-style-compiler.js +2 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +83 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/cssToRules/mapDeclaration.d.ts +16 -0
  8. package/dist/cssToRules/mapDeclaration.d.ts.map +1 -0
  9. package/dist/cssToRules/mapDeclaration.js +24 -0
  10. package/dist/cssToRules/mapDeclaration.js.map +1 -0
  11. package/dist/cssToRules/mapRule.d.ts +41 -0
  12. package/dist/cssToRules/mapRule.d.ts.map +1 -0
  13. package/dist/cssToRules/mapRule.js +60 -0
  14. package/dist/cssToRules/mapRule.js.map +1 -0
  15. package/dist/cssToRules/mapSelector.d.ts +27 -0
  16. package/dist/cssToRules/mapSelector.d.ts.map +1 -0
  17. package/dist/cssToRules/mapSelector.js +61 -0
  18. package/dist/cssToRules/mapSelector.js.map +1 -0
  19. package/dist/cssToRules/mapSelectorPart.d.ts +48 -0
  20. package/dist/cssToRules/mapSelectorPart.d.ts.map +1 -0
  21. package/dist/cssToRules/mapSelectorPart.js +106 -0
  22. package/dist/cssToRules/mapSelectorPart.js.map +1 -0
  23. package/dist/cssToRules/mapValue.d.ts +20 -0
  24. package/dist/cssToRules/mapValue.d.ts.map +1 -0
  25. package/dist/cssToRules/mapValue.js +67 -0
  26. package/dist/cssToRules/mapValue.js.map +1 -0
  27. package/dist/cssToRules.d.ts +50 -0
  28. package/dist/cssToRules.d.ts.map +1 -0
  29. package/dist/cssToRules.js +32 -0
  30. package/dist/cssToRules.js.map +1 -0
  31. package/dist/helpers/Replacer.d.ts +11 -0
  32. package/dist/helpers/Replacer.d.ts.map +1 -0
  33. package/dist/helpers/Replacer.js +28 -0
  34. package/dist/helpers/Replacer.js.map +1 -0
  35. package/dist/helpers/compileDeclarationBlock.d.ts +14 -0
  36. package/dist/helpers/compileDeclarationBlock.d.ts.map +1 -0
  37. package/dist/helpers/compileDeclarationBlock.js +38 -0
  38. package/dist/helpers/compileDeclarationBlock.js.map +1 -0
  39. package/dist/helpers/createModulesMapFromDependencies.d.ts +5 -0
  40. package/dist/helpers/createModulesMapFromDependencies.d.ts.map +1 -0
  41. package/dist/helpers/createModulesMapFromDependencies.js +31 -0
  42. package/dist/helpers/createModulesMapFromDependencies.js.map +1 -0
  43. package/dist/helpers/ensureObject.d.ts +3 -0
  44. package/dist/helpers/ensureObject.d.ts.map +1 -0
  45. package/dist/helpers/ensureObject.js +12 -0
  46. package/dist/helpers/ensureObject.js.map +1 -0
  47. package/dist/helpers/pathToExpression.d.ts +2 -0
  48. package/dist/helpers/pathToExpression.d.ts.map +1 -0
  49. package/dist/helpers/pathToExpression.js +6 -0
  50. package/dist/helpers/pathToExpression.js.map +1 -0
  51. package/dist/helpers/uniqueSerialized.d.ts +2 -0
  52. package/dist/helpers/uniqueSerialized.d.ts.map +1 -0
  53. package/dist/helpers/uniqueSerialized.js +5 -0
  54. package/dist/helpers/uniqueSerialized.js.map +1 -0
  55. package/dist/index.d.ts +8 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +15 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/rulesToTree.d.ts +20 -0
  60. package/dist/rulesToTree.d.ts.map +1 -0
  61. package/dist/rulesToTree.js +43 -0
  62. package/dist/rulesToTree.js.map +1 -0
  63. package/dist/template.d.ts +16 -0
  64. package/dist/template.d.ts.map +1 -0
  65. package/dist/template.js +22 -0
  66. package/dist/template.js.map +1 -0
  67. package/dist/template.source.d.ts +3 -0
  68. package/dist/template.source.d.ts.map +1 -0
  69. package/dist/template.source.js +50 -0
  70. package/dist/template.source.js.map +1 -0
  71. package/dist/treeToProgram.d.ts +3 -0
  72. package/dist/treeToProgram.d.ts.map +1 -0
  73. package/dist/treeToProgram.js +158 -0
  74. package/dist/treeToProgram.js.map +1 -0
  75. package/package.json +67 -0
  76. package/src/data/custom-css-properties.json +200 -0
  77. package/src/js/cli.ts +98 -0
  78. package/src/js/cssToRules/mapDeclaration.ts +45 -0
  79. package/src/js/cssToRules/mapRule.ts +98 -0
  80. package/src/js/cssToRules/mapSelector.ts +78 -0
  81. package/src/js/cssToRules/mapSelectorPart.ts +161 -0
  82. package/src/js/cssToRules/mapValue.ts +84 -0
  83. package/src/js/cssToRules.ts +49 -0
  84. package/src/js/helpers/Replacer.ts +50 -0
  85. package/src/js/helpers/compileDeclarationBlock.ts +60 -0
  86. package/src/js/helpers/createModulesMapFromDependencies.ts +40 -0
  87. package/src/js/helpers/ensureObject.ts +17 -0
  88. package/src/js/helpers/pathToExpression.ts +5 -0
  89. package/src/js/helpers/uniqueSerialized.ts +7 -0
  90. package/src/js/index.ts +28 -0
  91. package/src/js/rulesToTree.ts +83 -0
  92. package/src/js/template.source.js +56 -0
  93. package/src/js/template.ts +50 -0
  94. 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,5 @@
1
+ import unique from "@mapsight/lib-js/array/unique";
2
+ export default function uniqueSerialized(a) {
3
+ return unique(a.map((b) => JSON.stringify(b))).map((b) => JSON.parse(b));
4
+ }
5
+ //# sourceMappingURL=uniqueSerialized.js.map
@@ -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"}
@@ -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"}
@@ -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,3 @@
1
+ declare const _default: import("@mapsight/lib-ol/style/styleFunction").MapsightStyleFunction;
2
+ export default _default;
3
+ //# sourceMappingURL=template.source.d.ts.map
@@ -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,3 @@
1
+ import type { Tree } from "./rulesToTree.ts";
2
+ export default function treeToProgram(tree: Tree, target?: string, baseIndent?: number): string;
3
+ //# sourceMappingURL=treeToProgram.d.ts.map
@@ -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
+ }