@projectwallace/css-layer-tree 0.0.2 → 1.0.1
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 +2 -2
- package/dist/css-layer-tree.js +32 -34
- package/dist/css-layer-tree.umd.cjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ npm install @projectwallace/css-layer-tree
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
13
|
```js
|
|
14
|
-
import {
|
|
14
|
+
import { layer_tree } from '@projectwallace/css-layer-tree'
|
|
15
15
|
|
|
16
16
|
let css = `
|
|
17
17
|
@import url("test.css") layer;
|
|
@@ -25,7 +25,7 @@ let css = `
|
|
|
25
25
|
@layer {}
|
|
26
26
|
`
|
|
27
27
|
|
|
28
|
-
let tree =
|
|
28
|
+
let tree = layer_tree(css)
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
This example would result in this `tree`:
|
package/dist/css-layer-tree.js
CHANGED
|
@@ -11,14 +11,14 @@ class f {
|
|
|
11
11
|
* @param {T} location
|
|
12
12
|
*/
|
|
13
13
|
add_child(e, l, p) {
|
|
14
|
-
let
|
|
14
|
+
let i = this;
|
|
15
15
|
if (e.forEach((t) => {
|
|
16
|
-
|
|
17
|
-
}),
|
|
18
|
-
|
|
16
|
+
i = i.children.get(t);
|
|
17
|
+
}), i.children.has(l))
|
|
18
|
+
i.children.get(l).locations.push(p);
|
|
19
19
|
else {
|
|
20
20
|
const t = new f(l);
|
|
21
|
-
t.locations.push(p),
|
|
21
|
+
t.locations.push(p), i.children.set(l, t);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
@@ -39,8 +39,8 @@ class f {
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
function d(
|
|
43
|
-
let e =
|
|
42
|
+
function d(a) {
|
|
43
|
+
let e = a.loc;
|
|
44
44
|
if (e)
|
|
45
45
|
return {
|
|
46
46
|
line: e.start.line,
|
|
@@ -49,51 +49,49 @@ function d(i) {
|
|
|
49
49
|
end: e.end.offset
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
function _(
|
|
53
|
-
return
|
|
52
|
+
function _(a) {
|
|
53
|
+
return a.name.toLowerCase() === "layer";
|
|
54
54
|
}
|
|
55
|
-
function c(
|
|
56
|
-
return u.generate(
|
|
55
|
+
function c(a) {
|
|
56
|
+
return u.generate(a).split(".").map((e) => e.trim());
|
|
57
57
|
}
|
|
58
|
-
function h(
|
|
58
|
+
function h(a) {
|
|
59
59
|
let e = [], l = new f("root"), p = 0;
|
|
60
|
-
function
|
|
60
|
+
function i() {
|
|
61
61
|
return p++, `__anonymous-${p}__`;
|
|
62
62
|
}
|
|
63
|
-
return u.walk(
|
|
63
|
+
return u.walk(a, {
|
|
64
64
|
visit: "Atrule",
|
|
65
65
|
enter(t) {
|
|
66
66
|
if (_(t)) {
|
|
67
|
-
let
|
|
67
|
+
let n = d(t);
|
|
68
68
|
if (t.prelude === null) {
|
|
69
|
-
let r =
|
|
70
|
-
l.add_child(e, r,
|
|
69
|
+
let r = i();
|
|
70
|
+
l.add_child(e, r, n), e.push(r);
|
|
71
71
|
} else if (t.prelude.type === "AtrulePrelude")
|
|
72
72
|
if (t.block === null) {
|
|
73
|
-
let r = u.findAll(t.prelude, (
|
|
74
|
-
for (let
|
|
75
|
-
l.add_child(e,
|
|
73
|
+
let r = u.findAll(t.prelude, (s) => s.type === "Layer").map((s) => s.name);
|
|
74
|
+
for (let s of r)
|
|
75
|
+
l.add_child(e, s, n);
|
|
76
76
|
} else
|
|
77
77
|
for (let r of c(t.prelude))
|
|
78
|
-
l.add_child(e, r,
|
|
78
|
+
l.add_child(e, r, n), e.push(r);
|
|
79
79
|
} else if (t.name.toLowerCase() === "import" && t.prelude !== null && t.prelude.type === "AtrulePrelude") {
|
|
80
|
-
let
|
|
81
|
-
if (
|
|
82
|
-
for (let
|
|
83
|
-
l.add_child(e,
|
|
80
|
+
let n = d(t), r = t.prelude, s = u.find(r, (o) => o.type === "Layer");
|
|
81
|
+
if (s) {
|
|
82
|
+
for (let o of c(s))
|
|
83
|
+
l.add_child(e, o, n), e.push(o);
|
|
84
84
|
return this.skip;
|
|
85
85
|
}
|
|
86
|
-
if (u.find(r, (
|
|
87
|
-
return l.add_child([],
|
|
88
|
-
if (u.find(r, (a) => a.type === "Identifier" && a.name.toLowerCase() === "layer"))
|
|
89
|
-
return l.add_child([], n(), s), this.skip;
|
|
86
|
+
if (u.find(r, (o) => o.type === "Identifier" && o.name.toLowerCase() === "layer"))
|
|
87
|
+
return l.add_child([], i(), n), this.skip;
|
|
90
88
|
}
|
|
91
89
|
},
|
|
92
90
|
leave(t) {
|
|
93
91
|
if (_(t))
|
|
94
92
|
if (t.prelude !== null && t.prelude.type === "AtrulePrelude") {
|
|
95
|
-
let
|
|
96
|
-
for (let r = 0; r <
|
|
93
|
+
let n = c(t.prelude);
|
|
94
|
+
for (let r = 0; r < n.length; r++)
|
|
97
95
|
e.pop();
|
|
98
96
|
} else
|
|
99
97
|
e.pop();
|
|
@@ -101,8 +99,8 @@ function h(i) {
|
|
|
101
99
|
}
|
|
102
100
|
}), l.to_plain_object().children;
|
|
103
101
|
}
|
|
104
|
-
function
|
|
105
|
-
let e = u.parse(
|
|
102
|
+
function m(a) {
|
|
103
|
+
let e = u.parse(a, {
|
|
106
104
|
positions: !0,
|
|
107
105
|
parseAtrulePrelude: !0,
|
|
108
106
|
parseValue: !1,
|
|
@@ -112,6 +110,6 @@ function w(i) {
|
|
|
112
110
|
return h(e);
|
|
113
111
|
}
|
|
114
112
|
export {
|
|
115
|
-
|
|
113
|
+
m as layer_tree,
|
|
116
114
|
h as layer_tree_from_ast
|
|
117
115
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(i,p){typeof exports=="object"&&typeof module<"u"?p(exports,require("css-tree")):typeof define=="function"&&define.amd?define(["exports","css-tree"],p):(i=typeof globalThis<"u"?globalThis:i||self,p(i.cssLayerTree={},i.csstree))})(this,function(i,p){"use strict";function g(l){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const r in l)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(l,r);Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:()=>l[r]})}}return e.default=l,Object.freeze(e)}const f=g(p);class d{constructor(e){this.name=e,this.children=new Map,this.locations=[]}add_child(e,r,a){let s=this;if(e.forEach(t=>{s=s.children.get(t)}),s.children.has(r))s.children.get(r).locations.push(a);else{const t=new d(r);t.locations.push(a),s.children.set(r,t)}}to_plain_object(){return{name:this.name,locations:this.locations,children:Array.from(this.children.values(),e=>e.to_plain_object())}}}function y(l){let e=l.loc;if(e)return{line:e.start.line,column:e.start.column,start:e.start.offset,end:e.end.offset}}function h(l){return l.name.toLowerCase()==="layer"}function _(l){return f.generate(l).split(".").map(e=>e.trim())}function m(l){let e=[],r=new d("root"),a=0;function s(){return a++,`__anonymous-${a}__`}return f.walk(l,{visit:"Atrule",enter(t){if(h(t)){let o=y(t);if(t.prelude===null){let n=s();r.add_child(e,n,o),e.push(n)}else if(t.prelude.type==="AtrulePrelude")if(t.block===null){let n=f.findAll(t.prelude,u=>u.type==="Layer").map(u=>u.name);for(let u of n)r.add_child(e,u,o)}else for(let n of _(t.prelude))r.add_child(e,n,o),e.push(n)}else if(t.name.toLowerCase()==="import"&&t.prelude!==null&&t.prelude.type==="AtrulePrelude"){let o=y(t),n=t.prelude,u=f.find(n,c=>c.type==="Layer");if(u){for(let c of _(u))r.add_child(e,c,o),e.push(c);return this.skip}if(f.find(n,c=>c.type==="Identifier"&&c.name.toLowerCase()==="layer"))return r.add_child([],s(),o),this.skip}},leave(t){if(h(t))if(t.prelude!==null&&t.prelude.type==="AtrulePrelude"){let o=_(t.prelude);for(let n=0;n<o.length;n++)e.pop()}else e.pop();else t.name.toLowerCase()==="import"&&(e.length=0)}}),r.to_plain_object().children}function b(l){let e=f.parse(l,{positions:!0,parseAtrulePrelude:!0,parseValue:!1,parseRulePrelude:!1,parseCustomProperty:!1});return m(e)}i.layer_tree=b,i.layer_tree_from_ast=m,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
|