@joist/element 4.5.0 → 4.7.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/package.json +1 -1
- package/src/lib/define.ts +1 -1
- package/src/lib/element.ts +3 -2
- package/src/lib/tags.test.ts +34 -22
- package/src/lib.ts +1 -1
- package/target/lib/attr-changed.d.ts +0 -2
- package/target/lib/attr-changed.js +0 -12
- package/target/lib/attr-changed.js.map +0 -1
- package/target/lib/attr-changed.test.d.ts +0 -1
- package/target/lib/attr-changed.test.js +0 -117
- package/target/lib/attr-changed.test.js.map +0 -1
- package/target/lib/attr.d.ts +0 -6
- package/target/lib/attr.js +0 -66
- package/target/lib/attr.js.map +0 -1
- package/target/lib/attr.test.d.ts +0 -1
- package/target/lib/attr.test.js +0 -480
- package/target/lib/attr.test.js.map +0 -1
- package/target/lib/define.d.ts +0 -5
- package/target/lib/define.js +0 -14
- package/target/lib/define.js.map +0 -1
- package/target/lib/element.d.ts +0 -11
- package/target/lib/element.js +0 -112
- package/target/lib/element.js.map +0 -1
- package/target/lib/element.test.d.ts +0 -1
- package/target/lib/element.test.js +0 -329
- package/target/lib/element.test.js.map +0 -1
- package/target/lib/lifecycle.d.ts +0 -1
- package/target/lib/lifecycle.js +0 -8
- package/target/lib/lifecycle.js.map +0 -1
- package/target/lib/lifecycle.test.d.ts +0 -1
- package/target/lib/lifecycle.test.js +0 -48
- package/target/lib/lifecycle.test.js.map +0 -1
- package/target/lib/listen.d.ts +0 -2
- package/target/lib/listen.js +0 -26
- package/target/lib/listen.js.map +0 -1
- package/target/lib/listen.test.d.ts +0 -1
- package/target/lib/listen.test.js +0 -264
- package/target/lib/listen.test.js.map +0 -1
- package/target/lib/metadata.d.ts +0 -30
- package/target/lib/metadata.js +0 -21
- package/target/lib/metadata.js.map +0 -1
- package/target/lib/query-all.d.ts +0 -10
- package/target/lib/query-all.js +0 -40
- package/target/lib/query-all.js.map +0 -1
- package/target/lib/query-all.test.d.ts +0 -1
- package/target/lib/query-all.test.js +0 -195
- package/target/lib/query-all.test.js.map +0 -1
- package/target/lib/query.d.ts +0 -10
- package/target/lib/query.js +0 -36
- package/target/lib/query.js.map +0 -1
- package/target/lib/query.test.d.ts +0 -1
- package/target/lib/query.test.js +0 -188
- package/target/lib/query.test.js.map +0 -1
- package/target/lib/result.d.ts +0 -3
- package/target/lib/result.js +0 -2
- package/target/lib/result.js.map +0 -1
- package/target/lib/tags.d.ts +0 -14
- package/target/lib/tags.js +0 -44
- package/target/lib/tags.js.map +0 -1
- package/target/lib/tags.test.d.ts +0 -1
- package/target/lib/tags.test.js +0 -69
- package/target/lib/tags.test.js.map +0 -1
- package/target/lib.d.ts +0 -9
- package/target/lib.js +0 -9
- package/target/lib.js.map +0 -1
package/package.json
CHANGED
package/src/lib/define.ts
CHANGED
package/src/lib/element.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { define
|
|
1
|
+
import { define } from "./define.js";
|
|
2
|
+
import type { DefineOpts } from "./define.js";
|
|
2
3
|
import { type AttrMetadata, metadataStore } from "./metadata.js";
|
|
3
4
|
import type { ShadowResult } from "./result.js";
|
|
4
5
|
|
|
@@ -116,7 +117,7 @@ export function element<T extends ElementConstructor>(opts?: ElementOpts) {
|
|
|
116
117
|
},
|
|
117
118
|
};
|
|
118
119
|
|
|
119
|
-
return def[Base.name];
|
|
120
|
+
return def[Base.name] as T;
|
|
120
121
|
};
|
|
121
122
|
}
|
|
122
123
|
|
package/src/lib/tags.test.ts
CHANGED
|
@@ -36,40 +36,50 @@ describe("tags", () => {
|
|
|
36
36
|
|
|
37
37
|
describe("css", () => {
|
|
38
38
|
it("should create a CSSResult instance", () => {
|
|
39
|
-
const result = css`
|
|
39
|
+
const result = css`
|
|
40
|
+
div {
|
|
41
|
+
color: red;
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
40
44
|
assert.instanceOf(result, CSSResult);
|
|
41
45
|
});
|
|
42
46
|
|
|
43
47
|
it("should create a stylesheet with correct content", () => {
|
|
44
|
-
const result = css`
|
|
48
|
+
const result = css`
|
|
49
|
+
div {
|
|
50
|
+
color: red;
|
|
51
|
+
}
|
|
52
|
+
`;
|
|
45
53
|
|
|
46
54
|
const element = document.createElement("div");
|
|
47
55
|
const shadow = element.attachShadow({ mode: "open" });
|
|
48
56
|
result.apply(element);
|
|
49
57
|
|
|
50
58
|
assert.equal(shadow.adoptedStyleSheets.length, 1);
|
|
51
|
-
assert.equal(
|
|
52
|
-
shadow.adoptedStyleSheets[0].cssRules[0].cssText,
|
|
53
|
-
"div { color: red; }",
|
|
54
|
-
);
|
|
59
|
+
assert.equal(shadow.adoptedStyleSheets[0]!.cssRules[0]!.cssText, "div { color: red; }");
|
|
55
60
|
});
|
|
56
61
|
|
|
57
62
|
it("should apply CSS to shadow root", () => {
|
|
58
63
|
const element = document.createElement("div");
|
|
59
64
|
const shadow = element.attachShadow({ mode: "open" });
|
|
60
|
-
const result = css`
|
|
65
|
+
const result = css`
|
|
66
|
+
div {
|
|
67
|
+
color: red;
|
|
68
|
+
}
|
|
69
|
+
`;
|
|
61
70
|
result.apply(element);
|
|
62
71
|
|
|
63
72
|
assert.equal(shadow.adoptedStyleSheets.length, 1);
|
|
64
|
-
assert.equal(
|
|
65
|
-
shadow.adoptedStyleSheets[0].cssRules[0].cssText,
|
|
66
|
-
"div { color: red; }",
|
|
67
|
-
);
|
|
73
|
+
assert.equal(shadow.adoptedStyleSheets[0]!.cssRules[0]!.cssText, "div { color: red; }");
|
|
68
74
|
});
|
|
69
75
|
|
|
70
76
|
it("should not apply CSS if no shadow root", () => {
|
|
71
77
|
const element = document.createElement("div");
|
|
72
|
-
const result = css`
|
|
78
|
+
const result = css`
|
|
79
|
+
div {
|
|
80
|
+
color: red;
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
73
83
|
result.apply(element);
|
|
74
84
|
|
|
75
85
|
assert.equal(element.shadowRoot, null);
|
|
@@ -79,21 +89,23 @@ describe("tags", () => {
|
|
|
79
89
|
const element = document.createElement("div");
|
|
80
90
|
const shadow = element.attachShadow({ mode: "open" });
|
|
81
91
|
|
|
82
|
-
const sheet1 = css`
|
|
83
|
-
|
|
92
|
+
const sheet1 = css`
|
|
93
|
+
div {
|
|
94
|
+
color: red;
|
|
95
|
+
}
|
|
96
|
+
`;
|
|
97
|
+
const sheet2 = css`
|
|
98
|
+
span {
|
|
99
|
+
color: blue;
|
|
100
|
+
}
|
|
101
|
+
`;
|
|
84
102
|
|
|
85
103
|
sheet1.apply(element);
|
|
86
104
|
sheet2.apply(element);
|
|
87
105
|
|
|
88
106
|
assert.equal(shadow.adoptedStyleSheets.length, 2);
|
|
89
|
-
assert.equal(
|
|
90
|
-
|
|
91
|
-
"div { color: red; }",
|
|
92
|
-
);
|
|
93
|
-
assert.equal(
|
|
94
|
-
shadow.adoptedStyleSheets[1].cssRules[0].cssText,
|
|
95
|
-
"span { color: blue; }",
|
|
96
|
-
);
|
|
107
|
+
assert.equal(shadow.adoptedStyleSheets[0]!.cssRules[0]!.cssText, "div { color: red; }");
|
|
108
|
+
assert.equal(shadow.adoptedStyleSheets[1]!.cssRules[0]!.cssText, "span { color: blue; }");
|
|
97
109
|
});
|
|
98
110
|
});
|
|
99
111
|
});
|
package/src/lib.ts
CHANGED
|
@@ -4,6 +4,6 @@ export { listen } from "./lib/listen.js";
|
|
|
4
4
|
export { element } from "./lib/element.js";
|
|
5
5
|
export { query } from "./lib/query.js";
|
|
6
6
|
export { queryAll } from "./lib/query-all.js";
|
|
7
|
-
export { QueryResult } from "./lib/query.js";
|
|
7
|
+
export type { QueryResult } from "./lib/query.js";
|
|
8
8
|
export { ready } from "./lib/lifecycle.js";
|
|
9
9
|
export { attrChanged } from "./lib/attr-changed.js";
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { metadataStore } from "./metadata.js";
|
|
2
|
-
export function attrChanged(...names) {
|
|
3
|
-
return function attrChangedDecorator(cb, ctx) {
|
|
4
|
-
const meta = metadataStore.read(ctx.metadata);
|
|
5
|
-
for (const name of names) {
|
|
6
|
-
const val = meta.attrChanges.get(name) ?? new Set();
|
|
7
|
-
val.add(cb);
|
|
8
|
-
meta.attrChanges.set(name, val);
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=attr-changed.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attr-changed.js","sourceRoot":"","sources":["../../src/lib/attr-changed.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,aAAa,EAAE,MAAM,eAAe,CAAC;AAExE,MAAM,UAAU,WAAW,CAAC,GAAG,KAAe;IAC5C,OAAO,SAAS,oBAAoB,CAClC,EAAuB,EACvB,GAAsC;QAEtC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;YAEpD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
-
import { assert } from "chai";
|
|
3
|
-
import { attrChanged } from "./attr-changed.js";
|
|
4
|
-
import { attr } from "./attr.js";
|
|
5
|
-
import { element } from "./element.js";
|
|
6
|
-
it("should call specific attrbute callback", () => {
|
|
7
|
-
let args = [];
|
|
8
|
-
let MyElement = (() => {
|
|
9
|
-
let _classDecorators = [element({
|
|
10
|
-
tagName: "attr-changed-1",
|
|
11
|
-
})];
|
|
12
|
-
let _classDescriptor;
|
|
13
|
-
let _classExtraInitializers = [];
|
|
14
|
-
let _classThis;
|
|
15
|
-
let _classSuper = HTMLElement;
|
|
16
|
-
let _instanceExtraInitializers = [];
|
|
17
|
-
let _test_decorators;
|
|
18
|
-
let _test_initializers = [];
|
|
19
|
-
let _test_extraInitializers = [];
|
|
20
|
-
let _onTestChanged_decorators;
|
|
21
|
-
var MyElement = class extends _classSuper {
|
|
22
|
-
static { _classThis = this; }
|
|
23
|
-
static {
|
|
24
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
25
|
-
_test_decorators = [attr()];
|
|
26
|
-
_onTestChanged_decorators = [attrChanged("test")];
|
|
27
|
-
__esDecorate(this, null, _test_decorators, { kind: "accessor", name: "test", static: false, private: false, access: { has: obj => "test" in obj, get: obj => obj.test, set: (obj, value) => { obj.test = value; } }, metadata: _metadata }, _test_initializers, _test_extraInitializers);
|
|
28
|
-
__esDecorate(this, null, _onTestChanged_decorators, { kind: "method", name: "onTestChanged", static: false, private: false, access: { has: obj => "onTestChanged" in obj, get: obj => obj.onTestChanged }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
29
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
30
|
-
MyElement = _classThis = _classDescriptor.value;
|
|
31
|
-
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
32
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
33
|
-
}
|
|
34
|
-
#test_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _test_initializers, "hello"));
|
|
35
|
-
get test() { return this.#test_accessor_storage; }
|
|
36
|
-
set test(value) { this.#test_accessor_storage = value; }
|
|
37
|
-
onTestChanged(name, oldValue, newValue) {
|
|
38
|
-
args = [name, oldValue, newValue];
|
|
39
|
-
}
|
|
40
|
-
constructor() {
|
|
41
|
-
super(...arguments);
|
|
42
|
-
__runInitializers(this, _test_extraInitializers);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
return MyElement = _classThis;
|
|
46
|
-
})();
|
|
47
|
-
const el = new MyElement();
|
|
48
|
-
document.body.append(el);
|
|
49
|
-
assert.deepEqual(args, ["test", null, "hello"]);
|
|
50
|
-
el.setAttribute("test", "world");
|
|
51
|
-
assert.deepEqual(args, ["test", "hello", "world"]);
|
|
52
|
-
el.remove();
|
|
53
|
-
});
|
|
54
|
-
it("should call callback for multiple attributes", () => {
|
|
55
|
-
const args = [];
|
|
56
|
-
let MyElement = (() => {
|
|
57
|
-
let _classDecorators = [element({
|
|
58
|
-
tagName: "attr-changed-2",
|
|
59
|
-
})];
|
|
60
|
-
let _classDescriptor;
|
|
61
|
-
let _classExtraInitializers = [];
|
|
62
|
-
let _classThis;
|
|
63
|
-
let _classSuper = HTMLElement;
|
|
64
|
-
let _instanceExtraInitializers = [];
|
|
65
|
-
let _test1_decorators;
|
|
66
|
-
let _test1_initializers = [];
|
|
67
|
-
let _test1_extraInitializers = [];
|
|
68
|
-
let _test2_decorators;
|
|
69
|
-
let _test2_initializers = [];
|
|
70
|
-
let _test2_extraInitializers = [];
|
|
71
|
-
let _onTestChanged_decorators;
|
|
72
|
-
var MyElement = class extends _classSuper {
|
|
73
|
-
static { _classThis = this; }
|
|
74
|
-
static {
|
|
75
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
76
|
-
_test1_decorators = [attr()];
|
|
77
|
-
_test2_decorators = [attr()];
|
|
78
|
-
_onTestChanged_decorators = [attrChanged("test1", "test2")];
|
|
79
|
-
__esDecorate(this, null, _test1_decorators, { kind: "accessor", name: "test1", static: false, private: false, access: { has: obj => "test1" in obj, get: obj => obj.test1, set: (obj, value) => { obj.test1 = value; } }, metadata: _metadata }, _test1_initializers, _test1_extraInitializers);
|
|
80
|
-
__esDecorate(this, null, _test2_decorators, { kind: "accessor", name: "test2", static: false, private: false, access: { has: obj => "test2" in obj, get: obj => obj.test2, set: (obj, value) => { obj.test2 = value; } }, metadata: _metadata }, _test2_initializers, _test2_extraInitializers);
|
|
81
|
-
__esDecorate(this, null, _onTestChanged_decorators, { kind: "method", name: "onTestChanged", static: false, private: false, access: { has: obj => "onTestChanged" in obj, get: obj => obj.onTestChanged }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
82
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
83
|
-
MyElement = _classThis = _classDescriptor.value;
|
|
84
|
-
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
85
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
86
|
-
}
|
|
87
|
-
#test1_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _test1_initializers, "hello"));
|
|
88
|
-
get test1() { return this.#test1_accessor_storage; }
|
|
89
|
-
set test1(value) { this.#test1_accessor_storage = value; }
|
|
90
|
-
#test2_accessor_storage = (__runInitializers(this, _test1_extraInitializers), __runInitializers(this, _test2_initializers, "world"));
|
|
91
|
-
get test2() { return this.#test2_accessor_storage; }
|
|
92
|
-
set test2(value) { this.#test2_accessor_storage = value; }
|
|
93
|
-
onTestChanged(attr, oldValue, newValue) {
|
|
94
|
-
args.push([attr, oldValue, newValue]);
|
|
95
|
-
}
|
|
96
|
-
constructor() {
|
|
97
|
-
super(...arguments);
|
|
98
|
-
__runInitializers(this, _test2_extraInitializers);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
return MyElement = _classThis;
|
|
102
|
-
})();
|
|
103
|
-
const el = new MyElement();
|
|
104
|
-
document.body.append(el);
|
|
105
|
-
assert.deepEqual(args, [
|
|
106
|
-
["test1", null, "hello"],
|
|
107
|
-
["test2", null, "world"],
|
|
108
|
-
]);
|
|
109
|
-
el.setAttribute("test1", "world");
|
|
110
|
-
assert.deepEqual(args, [
|
|
111
|
-
["test1", null, "hello"],
|
|
112
|
-
["test2", null, "world"],
|
|
113
|
-
["test1", "hello", "world"],
|
|
114
|
-
]);
|
|
115
|
-
el.remove();
|
|
116
|
-
});
|
|
117
|
-
//# sourceMappingURL=attr-changed.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attr-changed.test.js","sourceRoot":"","sources":["../../src/lib/attr-changed.test.ts"],"names":[],"mappings":"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"}
|
package/target/lib/attr.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export interface AttrOpts {
|
|
2
|
-
name?: string;
|
|
3
|
-
observed?: boolean;
|
|
4
|
-
reflect?: boolean;
|
|
5
|
-
}
|
|
6
|
-
export declare function attr<This extends HTMLElement>(opts?: AttrOpts): (base: ClassAccessorDecoratorTarget<This, unknown>, ctx: ClassAccessorDecoratorContext<This>) => ClassAccessorDecoratorResult<This, any>;
|
package/target/lib/attr.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { metadataStore } from "./metadata.js";
|
|
2
|
-
export function attr(opts) {
|
|
3
|
-
return function attrDecorator(base, ctx) {
|
|
4
|
-
const attrName = opts?.name ?? parseAttrName(ctx.name);
|
|
5
|
-
const meta = metadataStore.read(ctx.metadata);
|
|
6
|
-
const reflect = opts?.reflect ?? true;
|
|
7
|
-
meta.attrs.set(attrName, {
|
|
8
|
-
propName: ctx.name,
|
|
9
|
-
observe: opts?.observed ?? true,
|
|
10
|
-
reflect,
|
|
11
|
-
access: base,
|
|
12
|
-
});
|
|
13
|
-
return {
|
|
14
|
-
init(value) {
|
|
15
|
-
if (typeof value === "boolean") {
|
|
16
|
-
return value;
|
|
17
|
-
}
|
|
18
|
-
const attrValue = this.getAttribute(attrName);
|
|
19
|
-
if (attrValue === null) {
|
|
20
|
-
return value;
|
|
21
|
-
}
|
|
22
|
-
if (typeof value === "number") {
|
|
23
|
-
return Number(attrValue);
|
|
24
|
-
}
|
|
25
|
-
return attrValue;
|
|
26
|
-
},
|
|
27
|
-
set(value) {
|
|
28
|
-
if (reflect) {
|
|
29
|
-
if (value === true) {
|
|
30
|
-
if (!this.hasAttribute(attrName)) {
|
|
31
|
-
this.setAttribute(attrName, "");
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
else if (value === false) {
|
|
35
|
-
if (this.hasAttribute(attrName)) {
|
|
36
|
-
this.removeAttribute(attrName);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
const strValue = String(value);
|
|
41
|
-
if (this.getAttribute(attrName) !== strValue) {
|
|
42
|
-
this.setAttribute(attrName, strValue);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
base.set.call(this, value);
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
function parseAttrName(val) {
|
|
52
|
-
let value;
|
|
53
|
-
if (typeof val === "symbol") {
|
|
54
|
-
if (val.description) {
|
|
55
|
-
value = val.description;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
throw new Error("Cannot handle Symbol property without description");
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
value = val;
|
|
63
|
-
}
|
|
64
|
-
return value.toLowerCase().replaceAll(" ", "-");
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=attr.js.map
|
package/target/lib/attr.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attr.js","sourceRoot":"","sources":["../../src/lib/attr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQ9C,MAAM,UAAU,IAAI,CAA2B,IAAe;IAC5D,OAAO,SAAS,aAAa,CAC3B,IAAiD,EACjD,GAAwC;QAExC,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACvB,QAAQ,EAAE,GAAG,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;YAC/B,OAAO;YACP,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,CAAC,KAAc;gBACjB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAE9C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3B,CAAC;gBAED,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,GAAG,CAAC,KAAc;gBAChB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACjC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBAClC,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;wBAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAChC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;wBACjC,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;wBAE/B,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAC7C,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAoB;IACzC,IAAI,KAAa,CAAC;IAElB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,GAAG,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|