@joist/element 3.1.1 → 3.2.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/attr.ts +22 -28
- package/src/lib/element.ts +9 -0
- package/src/lib/listen.ts +6 -11
- package/src/lib/metadata.ts +9 -18
- package/target/lib/attr.js +22 -29
- package/target/lib/attr.js.map +1 -1
- package/target/lib/attr.test.js +46 -26
- package/target/lib/attr.test.js.map +1 -1
- package/target/lib/element.d.ts +5 -11
- package/target/lib/element.js +16 -6
- package/target/lib/element.js.map +1 -1
- package/target/lib/element.test.js +17 -11
- package/target/lib/element.test.js.map +1 -1
- package/target/lib/listen.d.ts +1 -1
- package/target/lib/listen.js +4 -6
- package/target/lib/listen.js.map +1 -1
- package/target/lib/metadata.d.ts +9 -0
- package/target/lib/metadata.js +16 -0
- package/target/lib/metadata.js.map +1 -0
- package/target/lib/shadow.d.ts +1 -1
- package/target/lib/shadow.js +2 -4
- package/target/lib/shadow.js.map +1 -1
- package/target/lib/shadow.test.js +19 -10
- package/target/lib/shadow.test.js.map +1 -1
- package/target/lib/tag-name.d.ts +1 -1
- package/target/lib/tag-name.js +4 -9
- package/target/lib/tag-name.js.map +1 -1
- package/target/lib/tag-name.test.js +18 -6
- package/target/lib/tag-name.test.js.map +1 -1
- package/target/lib.d.ts +1 -0
- package/target/lib.js +1 -0
- package/target/lib.js.map +1 -1
package/package.json
CHANGED
package/src/lib/attr.ts
CHANGED
|
@@ -4,49 +4,43 @@ export function attr<This extends HTMLElement>(
|
|
|
4
4
|
{ get, set }: ClassAccessorDecoratorTarget<This, unknown>,
|
|
5
5
|
ctx: ClassAccessorDecoratorContext<This>
|
|
6
6
|
): ClassAccessorDecoratorResult<This, any> {
|
|
7
|
+
const name = String(ctx.name);
|
|
7
8
|
const meta = metadataStore.read(ctx.metadata);
|
|
8
|
-
meta.attrs.push(
|
|
9
|
+
meta.attrs.push(name);
|
|
9
10
|
|
|
10
11
|
return {
|
|
11
12
|
set(value: unknown) {
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
} else {
|
|
20
|
-
this.setAttribute(ctx.name, String(value));
|
|
21
|
-
}
|
|
13
|
+
if (value === true) {
|
|
14
|
+
this.setAttribute(name, '');
|
|
15
|
+
} else if (value === false) {
|
|
16
|
+
this.removeAttribute(name);
|
|
17
|
+
} else {
|
|
18
|
+
this.setAttribute(name, String(value));
|
|
22
19
|
}
|
|
23
20
|
|
|
24
|
-
|
|
21
|
+
set.call(this, value);
|
|
25
22
|
},
|
|
26
23
|
get() {
|
|
27
24
|
const ogValue = get.call(this);
|
|
25
|
+
const attr = this.getAttribute(name);
|
|
28
26
|
|
|
29
|
-
if (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (attr === '') {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// treat as number
|
|
39
|
-
if (typeof ogValue === 'number') {
|
|
40
|
-
return Number(attr);
|
|
41
|
-
}
|
|
27
|
+
if (attr !== null) {
|
|
28
|
+
// treat as boolean
|
|
29
|
+
if (attr === '') {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
42
32
|
|
|
43
|
-
|
|
44
|
-
|
|
33
|
+
// treat as number
|
|
34
|
+
if (typeof ogValue === 'number') {
|
|
35
|
+
return Number(attr);
|
|
45
36
|
}
|
|
37
|
+
|
|
38
|
+
// treat as string
|
|
39
|
+
return attr;
|
|
46
40
|
}
|
|
47
41
|
|
|
48
42
|
// no readable value return original
|
|
49
43
|
return ogValue;
|
|
50
|
-
}
|
|
44
|
+
}
|
|
51
45
|
};
|
|
52
46
|
}
|
package/src/lib/element.ts
CHANGED
|
@@ -19,6 +19,15 @@ export function element<Target extends CustomElementConstructor>(
|
|
|
19
19
|
return class JoistElement extends Base {
|
|
20
20
|
// make all attrs observable
|
|
21
21
|
static observedAttributes = [...meta.attrs];
|
|
22
|
+
constructor(...args: any[]) {
|
|
23
|
+
super(...args);
|
|
24
|
+
|
|
25
|
+
const root = this.shadowRoot || this;
|
|
26
|
+
|
|
27
|
+
for (let [event, listener] of meta.listeners) {
|
|
28
|
+
root.addEventListener(event, listener.bind(this));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
22
31
|
|
|
23
32
|
connectedCallback() {
|
|
24
33
|
for (let attr of meta.attrs) {
|
package/src/lib/listen.ts
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
) {
|
|
1
|
+
import { metadataStore } from './metadata.js';
|
|
2
|
+
|
|
3
|
+
export function listen<This extends HTMLElement>(event: string) {
|
|
5
4
|
return (value: (e: Event) => void, ctx: ClassMethodDecoratorContext<This>) => {
|
|
6
|
-
ctx.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Promise.resolve().then(() => {
|
|
10
|
-
root(this).addEventListener(event, value.bind(this));
|
|
11
|
-
});
|
|
12
|
-
});
|
|
5
|
+
const metadata = metadataStore.read(ctx.metadata);
|
|
6
|
+
|
|
7
|
+
metadata.listeners.set(event, value);
|
|
13
8
|
};
|
|
14
9
|
}
|
package/src/lib/metadata.ts
CHANGED
|
@@ -1,28 +1,19 @@
|
|
|
1
1
|
(Symbol as any).metadata ??= Symbol('Symbol.metadata');
|
|
2
2
|
|
|
3
|
-
export abstract class MetadataStore<T> {
|
|
4
|
-
#data = new WeakMap<object, T>();
|
|
5
|
-
|
|
6
|
-
read<T extends object>(value: T) {
|
|
7
|
-
if (!this.#data.has(value)) {
|
|
8
|
-
this.#data.set(value, this.init());
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
return this.#data.get(value)!;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
abstract init(): T;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
3
|
export class ElementMetadata {
|
|
18
4
|
attrs: string[] = [];
|
|
19
5
|
tagName?: (val: any) => string;
|
|
6
|
+
listeners = new Map<string, (e: Event) => void>();
|
|
20
7
|
}
|
|
21
8
|
|
|
22
|
-
export class
|
|
23
|
-
|
|
24
|
-
|
|
9
|
+
export class MetadataStore extends WeakMap<object, ElementMetadata> {
|
|
10
|
+
read(value: object) {
|
|
11
|
+
if (!this.has(value)) {
|
|
12
|
+
this.set(value, new ElementMetadata());
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return this.get(value)!;
|
|
25
16
|
}
|
|
26
17
|
}
|
|
27
18
|
|
|
28
|
-
export const metadataStore = new
|
|
19
|
+
export const metadataStore = new MetadataStore();
|
package/target/lib/attr.js
CHANGED
|
@@ -1,42 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
import { ElementMetadata } from './element';
|
|
1
|
+
import { metadataStore } from './metadata.js';
|
|
3
2
|
export function attr({ get, set }, ctx) {
|
|
4
|
-
|
|
5
|
-
const meta = ctx.metadata
|
|
6
|
-
meta.attrs.push(
|
|
3
|
+
const name = String(ctx.name);
|
|
4
|
+
const meta = metadataStore.read(ctx.metadata);
|
|
5
|
+
meta.attrs.push(name);
|
|
7
6
|
return {
|
|
8
7
|
set(value) {
|
|
9
|
-
if (
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
else {
|
|
15
|
-
this.removeAttribute(ctx.name);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
this.setAttribute(ctx.name, String(value));
|
|
20
|
-
}
|
|
8
|
+
if (value === true) {
|
|
9
|
+
this.setAttribute(name, '');
|
|
10
|
+
}
|
|
11
|
+
else if (value === false) {
|
|
12
|
+
this.removeAttribute(name);
|
|
21
13
|
}
|
|
22
|
-
|
|
14
|
+
else {
|
|
15
|
+
this.setAttribute(name, String(value));
|
|
16
|
+
}
|
|
17
|
+
set.call(this, value);
|
|
23
18
|
},
|
|
24
19
|
get() {
|
|
25
20
|
const ogValue = get.call(this);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (attr
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return Number(attr);
|
|
34
|
-
}
|
|
35
|
-
return attr;
|
|
21
|
+
const attr = this.getAttribute(name);
|
|
22
|
+
if (attr !== null) {
|
|
23
|
+
if (attr === '') {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (typeof ogValue === 'number') {
|
|
27
|
+
return Number(attr);
|
|
36
28
|
}
|
|
29
|
+
return attr;
|
|
37
30
|
}
|
|
38
31
|
return ogValue;
|
|
39
|
-
}
|
|
32
|
+
}
|
|
40
33
|
};
|
|
41
34
|
}
|
|
42
35
|
//# sourceMappingURL=attr.js.map
|
package/target/lib/attr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attr.js","sourceRoot":"","sources":["../../src/lib/attr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attr.js","sourceRoot":"","sources":["../../src/lib/attr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,IAAI,CAClB,EAAE,GAAG,EAAE,GAAG,EAA+C,EACzD,GAAwC;IAExC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEtB,OAAO;QACL,GAAG,CAAC,KAAc;YAChB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,GAAG;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAElB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAGD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBAGD,OAAO,IAAI,CAAC;YACd,CAAC;YAGD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/target/lib/attr.test.js
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { expect, fixture, html } from '@open-wc/testing';
|
|
3
3
|
import { attr } from './attr.js';
|
|
4
|
-
describe('
|
|
4
|
+
describe('@attr()', () => {
|
|
5
5
|
it('should read and parse the correct values', async () => {
|
|
6
6
|
let MyElement = (() => {
|
|
7
7
|
let _classSuper = HTMLElement;
|
|
8
|
-
let _instanceExtraInitializers = [];
|
|
9
8
|
let _value1_decorators;
|
|
10
9
|
let _value1_initializers = [];
|
|
10
|
+
let _value1_extraInitializers = [];
|
|
11
11
|
let _value2_decorators;
|
|
12
12
|
let _value2_initializers = [];
|
|
13
|
+
let _value2_extraInitializers = [];
|
|
13
14
|
let _value3_decorators;
|
|
14
15
|
let _value3_initializers = [];
|
|
16
|
+
let _value3_extraInitializers = [];
|
|
15
17
|
let _value4_decorators;
|
|
16
18
|
let _value4_initializers = [];
|
|
19
|
+
let _value4_extraInitializers = [];
|
|
17
20
|
return class MyElement extends _classSuper {
|
|
18
21
|
static {
|
|
19
22
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
@@ -21,24 +24,28 @@ describe('observable: attr()', () => {
|
|
|
21
24
|
_value2_decorators = [attr];
|
|
22
25
|
_value3_decorators = [attr];
|
|
23
26
|
_value4_decorators = [attr];
|
|
24
|
-
__esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers,
|
|
25
|
-
__esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers,
|
|
26
|
-
__esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers,
|
|
27
|
-
__esDecorate(this, null, _value4_decorators, { kind: "accessor", name: "value4", static: false, private: false, access: { has: obj => "value4" in obj, get: obj => obj.value4, set: (obj, value) => { obj.value4 = value; } }, metadata: _metadata }, _value4_initializers,
|
|
27
|
+
__esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers, _value1_extraInitializers);
|
|
28
|
+
__esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers, _value2_extraInitializers);
|
|
29
|
+
__esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers, _value3_extraInitializers);
|
|
30
|
+
__esDecorate(this, null, _value4_decorators, { kind: "accessor", name: "value4", static: false, private: false, access: { has: obj => "value4" in obj, get: obj => obj.value4, set: (obj, value) => { obj.value4 = value; } }, metadata: _metadata }, _value4_initializers, _value4_extraInitializers);
|
|
28
31
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
29
32
|
}
|
|
30
|
-
#value1_accessor_storage =
|
|
33
|
+
#value1_accessor_storage = __runInitializers(this, _value1_initializers, 100);
|
|
31
34
|
get value1() { return this.#value1_accessor_storage; }
|
|
32
35
|
set value1(value) { this.#value1_accessor_storage = value; }
|
|
33
|
-
#value2_accessor_storage = __runInitializers(this, _value2_initializers, 0);
|
|
36
|
+
#value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
|
|
34
37
|
get value2() { return this.#value2_accessor_storage; }
|
|
35
38
|
set value2(value) { this.#value2_accessor_storage = value; }
|
|
36
|
-
#value3_accessor_storage = __runInitializers(this, _value3_initializers, false);
|
|
39
|
+
#value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, false));
|
|
37
40
|
get value3() { return this.#value3_accessor_storage; }
|
|
38
41
|
set value3(value) { this.#value3_accessor_storage = value; }
|
|
39
|
-
#value4_accessor_storage = __runInitializers(this, _value4_initializers, 'hello');
|
|
42
|
+
#value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, 'hello'));
|
|
40
43
|
get value4() { return this.#value4_accessor_storage; }
|
|
41
44
|
set value4(value) { this.#value4_accessor_storage = value; }
|
|
45
|
+
constructor() {
|
|
46
|
+
super(...arguments);
|
|
47
|
+
__runInitializers(this, _value4_extraInitializers);
|
|
48
|
+
}
|
|
42
49
|
};
|
|
43
50
|
})();
|
|
44
51
|
customElements.define('attr-test-2', MyElement);
|
|
@@ -51,33 +58,39 @@ describe('observable: attr()', () => {
|
|
|
51
58
|
it('should not write falsy props to attributes', async () => {
|
|
52
59
|
let MyElement = (() => {
|
|
53
60
|
let _classSuper = HTMLElement;
|
|
54
|
-
let _instanceExtraInitializers = [];
|
|
55
61
|
let _value1_decorators;
|
|
56
62
|
let _value1_initializers = [];
|
|
63
|
+
let _value1_extraInitializers = [];
|
|
57
64
|
let _value2_decorators;
|
|
58
65
|
let _value2_initializers = [];
|
|
66
|
+
let _value2_extraInitializers = [];
|
|
59
67
|
let _value3_decorators;
|
|
60
68
|
let _value3_initializers = [];
|
|
69
|
+
let _value3_extraInitializers = [];
|
|
61
70
|
return class MyElement extends _classSuper {
|
|
62
71
|
static {
|
|
63
72
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
64
73
|
_value1_decorators = [attr];
|
|
65
74
|
_value2_decorators = [attr];
|
|
66
75
|
_value3_decorators = [attr];
|
|
67
|
-
__esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers,
|
|
68
|
-
__esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers,
|
|
69
|
-
__esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers,
|
|
76
|
+
__esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers, _value1_extraInitializers);
|
|
77
|
+
__esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers, _value2_extraInitializers);
|
|
78
|
+
__esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers, _value3_extraInitializers);
|
|
70
79
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
71
80
|
}
|
|
72
|
-
#value1_accessor_storage =
|
|
81
|
+
#value1_accessor_storage = __runInitializers(this, _value1_initializers, undefined);
|
|
73
82
|
get value1() { return this.#value1_accessor_storage; }
|
|
74
83
|
set value1(value) { this.#value1_accessor_storage = value; }
|
|
75
|
-
#value2_accessor_storage = __runInitializers(this, _value2_initializers, null);
|
|
84
|
+
#value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, null));
|
|
76
85
|
get value2() { return this.#value2_accessor_storage; }
|
|
77
86
|
set value2(value) { this.#value2_accessor_storage = value; }
|
|
78
|
-
#value3_accessor_storage = __runInitializers(this, _value3_initializers, '');
|
|
87
|
+
#value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, ''));
|
|
79
88
|
get value3() { return this.#value3_accessor_storage; }
|
|
80
89
|
set value3(value) { this.#value3_accessor_storage = value; }
|
|
90
|
+
constructor() {
|
|
91
|
+
super(...arguments);
|
|
92
|
+
__runInitializers(this, _value3_extraInitializers);
|
|
93
|
+
}
|
|
81
94
|
};
|
|
82
95
|
})();
|
|
83
96
|
customElements.define('attr-test-3', MyElement);
|
|
@@ -89,15 +102,18 @@ describe('observable: attr()', () => {
|
|
|
89
102
|
it('should update attributes when props are changed', async () => {
|
|
90
103
|
let MyElement = (() => {
|
|
91
104
|
let _classSuper = HTMLElement;
|
|
92
|
-
let _instanceExtraInitializers = [];
|
|
93
105
|
let _value1_decorators;
|
|
94
106
|
let _value1_initializers = [];
|
|
107
|
+
let _value1_extraInitializers = [];
|
|
95
108
|
let _value2_decorators;
|
|
96
109
|
let _value2_initializers = [];
|
|
110
|
+
let _value2_extraInitializers = [];
|
|
97
111
|
let _value3_decorators;
|
|
98
112
|
let _value3_initializers = [];
|
|
113
|
+
let _value3_extraInitializers = [];
|
|
99
114
|
let _value4_decorators;
|
|
100
115
|
let _value4_initializers = [];
|
|
116
|
+
let _value4_extraInitializers = [];
|
|
101
117
|
return class MyElement extends _classSuper {
|
|
102
118
|
static {
|
|
103
119
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
@@ -105,24 +121,28 @@ describe('observable: attr()', () => {
|
|
|
105
121
|
_value2_decorators = [attr];
|
|
106
122
|
_value3_decorators = [attr];
|
|
107
123
|
_value4_decorators = [attr];
|
|
108
|
-
__esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers,
|
|
109
|
-
__esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers,
|
|
110
|
-
__esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers,
|
|
111
|
-
__esDecorate(this, null, _value4_decorators, { kind: "accessor", name: "value4", static: false, private: false, access: { has: obj => "value4" in obj, get: obj => obj.value4, set: (obj, value) => { obj.value4 = value; } }, metadata: _metadata }, _value4_initializers,
|
|
124
|
+
__esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers, _value1_extraInitializers);
|
|
125
|
+
__esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers, _value2_extraInitializers);
|
|
126
|
+
__esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers, _value3_extraInitializers);
|
|
127
|
+
__esDecorate(this, null, _value4_decorators, { kind: "accessor", name: "value4", static: false, private: false, access: { has: obj => "value4" in obj, get: obj => obj.value4, set: (obj, value) => { obj.value4 = value; } }, metadata: _metadata }, _value4_initializers, _value4_extraInitializers);
|
|
112
128
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
113
129
|
}
|
|
114
|
-
#value1_accessor_storage =
|
|
130
|
+
#value1_accessor_storage = __runInitializers(this, _value1_initializers, 'hello');
|
|
115
131
|
get value1() { return this.#value1_accessor_storage; }
|
|
116
132
|
set value1(value) { this.#value1_accessor_storage = value; }
|
|
117
|
-
#value2_accessor_storage = __runInitializers(this, _value2_initializers, 0);
|
|
133
|
+
#value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
|
|
118
134
|
get value2() { return this.#value2_accessor_storage; }
|
|
119
135
|
set value2(value) { this.#value2_accessor_storage = value; }
|
|
120
|
-
#value3_accessor_storage = __runInitializers(this, _value3_initializers, true);
|
|
136
|
+
#value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, true));
|
|
121
137
|
get value3() { return this.#value3_accessor_storage; }
|
|
122
138
|
set value3(value) { this.#value3_accessor_storage = value; }
|
|
123
|
-
#value4_accessor_storage = __runInitializers(this, _value4_initializers, false);
|
|
139
|
+
#value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, false));
|
|
124
140
|
get value4() { return this.#value4_accessor_storage; }
|
|
125
141
|
set value4(value) { this.#value4_accessor_storage = value; }
|
|
142
|
+
constructor() {
|
|
143
|
+
super(...arguments);
|
|
144
|
+
__runInitializers(this, _value4_extraInitializers);
|
|
145
|
+
}
|
|
126
146
|
};
|
|
127
147
|
})();
|
|
128
148
|
customElements.define('attr-test-4', MyElement);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
|
package/target/lib/element.d.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
attrs: string[];
|
|
3
|
-
}
|
|
4
|
-
export interface ElementCtx {
|
|
5
|
-
metadata: {
|
|
6
|
-
el: ElementMetadata;
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
export declare function element<T extends new (...args: any[]) => HTMLElement>(Base: T, ctx: ClassDecoratorContext<T>): {
|
|
1
|
+
export declare function element<Target extends CustomElementConstructor>(Base: Target, ctx: ClassDecoratorContext<Target>): {
|
|
10
2
|
new (...args: any[]): {
|
|
11
3
|
connectedCallback(): void;
|
|
12
4
|
accessKey: string;
|
|
@@ -32,7 +24,7 @@ export declare function element<T extends new (...args: any[]) => HTMLElement>(B
|
|
|
32
24
|
click(): void;
|
|
33
25
|
hidePopover(): void;
|
|
34
26
|
showPopover(): void;
|
|
35
|
-
togglePopover(force?: boolean | undefined):
|
|
27
|
+
togglePopover(force?: boolean | undefined): boolean;
|
|
36
28
|
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
37
29
|
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
38
30
|
removeEventListener<K_1 extends keyof HTMLElementEventMap>(type: K_1, listener: (this: HTMLElement, ev: HTMLElementEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
|
|
@@ -168,6 +160,7 @@ export declare function element<T extends new (...args: any[]) => HTMLElement>(B
|
|
|
168
160
|
ariaColIndex: string | null;
|
|
169
161
|
ariaColSpan: string | null;
|
|
170
162
|
ariaCurrent: string | null;
|
|
163
|
+
ariaDescription: string | null;
|
|
171
164
|
ariaDisabled: string | null;
|
|
172
165
|
ariaExpanded: string | null;
|
|
173
166
|
ariaHasPopup: string | null;
|
|
@@ -238,6 +231,7 @@ export declare function element<T extends new (...args: any[]) => HTMLElement>(B
|
|
|
238
231
|
onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
|
|
239
232
|
onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
240
233
|
onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
|
|
234
|
+
onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
241
235
|
onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
|
|
242
236
|
oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
243
237
|
oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
@@ -334,4 +328,4 @@ export declare function element<T extends new (...args: any[]) => HTMLElement>(B
|
|
|
334
328
|
focus(options?: FocusOptions | undefined): void;
|
|
335
329
|
};
|
|
336
330
|
observedAttributes: string[];
|
|
337
|
-
} &
|
|
331
|
+
} & Target;
|
package/target/lib/element.js
CHANGED
|
@@ -1,15 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
attrs = [];
|
|
3
|
-
}
|
|
1
|
+
import { metadataStore } from './metadata.js';
|
|
4
2
|
export function element(Base, ctx) {
|
|
5
|
-
const
|
|
3
|
+
const meta = metadataStore.read(ctx.metadata);
|
|
4
|
+
ctx.addInitializer(function () {
|
|
5
|
+
if (meta.tagName) {
|
|
6
|
+
const val = meta.tagName(this);
|
|
7
|
+
if (!customElements.get(val)) {
|
|
8
|
+
customElements.define(val, this);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
return class JoistElement extends Base {
|
|
7
|
-
static observedAttributes = [...
|
|
13
|
+
static observedAttributes = [...meta.attrs];
|
|
8
14
|
constructor(...args) {
|
|
9
15
|
super(...args);
|
|
16
|
+
const root = this.shadowRoot || this;
|
|
17
|
+
for (let [event, listener] of meta.listeners) {
|
|
18
|
+
root.addEventListener(event, listener.bind(this));
|
|
19
|
+
}
|
|
10
20
|
}
|
|
11
21
|
connectedCallback() {
|
|
12
|
-
for (let attr of
|
|
22
|
+
for (let attr of meta.attrs) {
|
|
13
23
|
const value = Reflect.get(this, attr);
|
|
14
24
|
if (value !== null && value !== undefined && value !== '') {
|
|
15
25
|
if (typeof value === 'boolean') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,GAAkC;IAElC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE9C,GAAG,CAAC,cAAc,CAAC;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,YAAa,SAAQ,IAAI;QAEpC,MAAM,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,YAAY,GAAG,IAAW;YACxB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAEf,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;YAErC,KAAK,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,iBAAiB;YACf,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAGtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBAC1D,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC/B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;4BAEnB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBAEN,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { expect, fixture, html } from '@open-wc/testing';
|
|
|
3
3
|
import { attr } from './attr.js';
|
|
4
4
|
import { element } from './element.js';
|
|
5
5
|
import { tagName } from './tag-name.js';
|
|
6
|
-
describe('element()', () => {
|
|
6
|
+
describe('@element()', () => {
|
|
7
7
|
it('should write default value to attribute', async () => {
|
|
8
8
|
let MyElement = (() => {
|
|
9
9
|
let _classDecorators = [element];
|
|
@@ -11,16 +11,18 @@ describe('element()', () => {
|
|
|
11
11
|
let _classExtraInitializers = [];
|
|
12
12
|
let _classThis;
|
|
13
13
|
let _classSuper = HTMLElement;
|
|
14
|
-
let _staticExtraInitializers = [];
|
|
15
|
-
let _instanceExtraInitializers = [];
|
|
16
14
|
let _static_tag_decorators;
|
|
17
15
|
let _static_tag_initializers = [];
|
|
16
|
+
let _static_tag_extraInitializers = [];
|
|
18
17
|
let _value1_decorators;
|
|
19
18
|
let _value1_initializers = [];
|
|
19
|
+
let _value1_extraInitializers = [];
|
|
20
20
|
let _value2_decorators;
|
|
21
21
|
let _value2_initializers = [];
|
|
22
|
+
let _value2_extraInitializers = [];
|
|
22
23
|
let _value3_decorators;
|
|
23
24
|
let _value3_initializers = [];
|
|
25
|
+
let _value3_extraInitializers = [];
|
|
24
26
|
var MyElement = class extends _classSuper {
|
|
25
27
|
static { _classThis = this; }
|
|
26
28
|
static {
|
|
@@ -29,26 +31,30 @@ describe('element()', () => {
|
|
|
29
31
|
_value1_decorators = [attr];
|
|
30
32
|
_value2_decorators = [attr];
|
|
31
33
|
_value3_decorators = [attr];
|
|
32
|
-
__esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers,
|
|
33
|
-
__esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers,
|
|
34
|
-
__esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers,
|
|
35
|
-
__esDecorate(null, null, _static_tag_decorators, { kind: "field", name: "tag", static: true, private: false, access: { has: obj => "tag" in obj, get: obj => obj.tag, set: (obj, value) => { obj.tag = value; } }, metadata: _metadata }, _static_tag_initializers,
|
|
34
|
+
__esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers, _value1_extraInitializers);
|
|
35
|
+
__esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers, _value2_extraInitializers);
|
|
36
|
+
__esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers, _value3_extraInitializers);
|
|
37
|
+
__esDecorate(null, null, _static_tag_decorators, { kind: "field", name: "tag", static: true, private: false, access: { has: obj => "tag" in obj, get: obj => obj.tag, set: (obj, value) => { obj.tag = value; } }, metadata: _metadata }, _static_tag_initializers, _static_tag_extraInitializers);
|
|
36
38
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
37
39
|
MyElement = _classThis = _classDescriptor.value;
|
|
38
40
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
39
|
-
__runInitializers(_classThis, _staticExtraInitializers);
|
|
40
41
|
}
|
|
41
42
|
static tag = __runInitializers(_classThis, _static_tag_initializers, 'element-1');
|
|
42
|
-
#value1_accessor_storage =
|
|
43
|
+
#value1_accessor_storage = __runInitializers(this, _value1_initializers, 'hello');
|
|
43
44
|
get value1() { return this.#value1_accessor_storage; }
|
|
44
45
|
set value1(value) { this.#value1_accessor_storage = value; }
|
|
45
|
-
#value2_accessor_storage = __runInitializers(this, _value2_initializers, 0);
|
|
46
|
+
#value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
|
|
46
47
|
get value2() { return this.#value2_accessor_storage; }
|
|
47
48
|
set value2(value) { this.#value2_accessor_storage = value; }
|
|
48
|
-
#value3_accessor_storage = __runInitializers(this, _value3_initializers, true);
|
|
49
|
+
#value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, true));
|
|
49
50
|
get value3() { return this.#value3_accessor_storage; }
|
|
50
51
|
set value3(value) { this.#value3_accessor_storage = value; }
|
|
52
|
+
constructor() {
|
|
53
|
+
super(...arguments);
|
|
54
|
+
__runInitializers(this, _value3_extraInitializers);
|
|
55
|
+
}
|
|
51
56
|
static {
|
|
57
|
+
__runInitializers(_classThis, _static_tag_extraInitializers);
|
|
52
58
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
53
59
|
}
|
|
54
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.test.js","sourceRoot":"","sources":["../../src/lib/element.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"element.test.js","sourceRoot":"","sources":["../../src/lib/element.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YAEjD,SAAS;oCADd,OAAO;;;;8BACgB,WAAW;;;;;;;;;;;;;iCAAnB,SAAQ,WAAW;;;;8CAChC,OAAO;0CAEP,IAAI;0CACJ,IAAI;0CACJ,IAAI;oBAFC,uKAAS,MAAM,6BAAN,MAAM,uFAAW;oBAC1B,uKAAS,MAAM,6BAAN,MAAM,uFAAK;oBACpB,uKAAS,MAAM,6BAAN,MAAM,uFAAQ;oBAJpB,iKAAO,GAAG,6BAAH,GAAG,+FAAe;oBADpC,6KAMC;;;;gBALU,MAAM,CAAC,GAAG,2DAAG,WAAW,EAAC;gBAE5B,yEAAkB,OAAO,EAAC;gBAA1B,IAAS,MAAM,4CAAW;gBAA1B,IAAS,MAAM,kDAAW;gBAC1B,8HAAkB,CAAC,GAAC;gBAApB,IAAS,MAAM,4CAAK;gBAApB,IAAS,MAAM,kDAAK;gBACpB,8HAAkB,IAAI,GAAC;gBAAvB,IAAS,MAAM,4CAAQ;gBAAvB,IAAS,MAAM,kDAAQ;;;;;;;oBALzB,uDAAS;;;;;QAQf,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAEnE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/target/lib/listen.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function listen<This extends HTMLElement>(event: string
|
|
1
|
+
export declare function listen<This extends HTMLElement>(event: string): (value: (e: Event) => void, ctx: ClassMethodDecoratorContext<This>) => void;
|
package/target/lib/listen.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { metadataStore } from './metadata.js';
|
|
2
|
+
export function listen(event) {
|
|
2
3
|
return (value, ctx) => {
|
|
3
|
-
ctx.
|
|
4
|
-
|
|
5
|
-
root(this).addEventListener(event, value.bind(this));
|
|
6
|
-
});
|
|
7
|
-
});
|
|
4
|
+
const metadata = metadataStore.read(ctx.metadata);
|
|
5
|
+
metadata.listeners.set(event, value);
|
|
8
6
|
};
|
|
9
7
|
}
|
|
10
8
|
//# sourceMappingURL=listen.js.map
|
package/target/lib/listen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/lib/listen.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/lib/listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,MAAM,CAA2B,KAAa;IAC5D,OAAO,CAAC,KAAyB,EAAE,GAAsC,EAAE,EAAE;QAC3E,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class ElementMetadata {
|
|
2
|
+
attrs: string[];
|
|
3
|
+
tagName?: (val: any) => string;
|
|
4
|
+
listeners: Map<string, (e: Event) => void>;
|
|
5
|
+
}
|
|
6
|
+
export declare class MetadataStore extends WeakMap<object, ElementMetadata> {
|
|
7
|
+
read(value: object): ElementMetadata;
|
|
8
|
+
}
|
|
9
|
+
export declare const metadataStore: MetadataStore;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Symbol.metadata ??= Symbol('Symbol.metadata');
|
|
2
|
+
export class ElementMetadata {
|
|
3
|
+
attrs = [];
|
|
4
|
+
tagName;
|
|
5
|
+
listeners = new Map();
|
|
6
|
+
}
|
|
7
|
+
export class MetadataStore extends WeakMap {
|
|
8
|
+
read(value) {
|
|
9
|
+
if (!this.has(value)) {
|
|
10
|
+
this.set(value, new ElementMetadata());
|
|
11
|
+
}
|
|
12
|
+
return this.get(value);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export const metadataStore = new MetadataStore();
|
|
16
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEvD,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAa,EAAE,CAAC;IACrB,OAAO,CAAwB;IAC/B,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;CACnD;AAED,MAAM,OAAO,aAAc,SAAQ,OAAgC;IACjE,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
package/target/lib/shadow.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ShadowResult } from './result.js';
|
|
2
|
-
export declare function shadow<This extends HTMLElement, T extends ShadowResult>(_: undefined,
|
|
2
|
+
export declare function shadow<This extends HTMLElement, T extends ShadowResult>(_: undefined, _ctx: ClassFieldDecoratorContext<This, T>): (this: This, result: T) => T;
|
package/target/lib/shadow.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
export function shadow(_,
|
|
2
|
-
|
|
1
|
+
export function shadow(_, _ctx) {
|
|
2
|
+
return function (result) {
|
|
3
3
|
if (!this.shadowRoot) {
|
|
4
4
|
this.attachShadow({ mode: 'open' });
|
|
5
5
|
}
|
|
6
|
-
});
|
|
7
|
-
return function (result) {
|
|
8
6
|
result.execute(this.shadowRoot);
|
|
9
7
|
return result;
|
|
10
8
|
};
|
package/target/lib/shadow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/lib/shadow.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,CAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/lib/shadow.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,CAAY,EACZ,IAAyC;IAEzC,OAAO,UAAsB,MAAS;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -6,21 +6,25 @@ describe('template', () => {
|
|
|
6
6
|
it('should apply a stylesheet', () => {
|
|
7
7
|
let MyElement = (() => {
|
|
8
8
|
let _classSuper = HTMLElement;
|
|
9
|
-
let _instanceExtraInitializers = [];
|
|
10
9
|
let _styles_decorators;
|
|
11
10
|
let _styles_initializers = [];
|
|
11
|
+
let _styles_extraInitializers = [];
|
|
12
12
|
return class MyElement extends _classSuper {
|
|
13
13
|
static {
|
|
14
14
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
15
15
|
_styles_decorators = [shadow];
|
|
16
|
-
__esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers,
|
|
16
|
+
__esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers, _styles_extraInitializers);
|
|
17
17
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
18
18
|
}
|
|
19
|
-
styles =
|
|
19
|
+
styles = __runInitializers(this, _styles_initializers, css `
|
|
20
20
|
:host {
|
|
21
21
|
display: flex;
|
|
22
22
|
}
|
|
23
|
-
`)
|
|
23
|
+
`);
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
__runInitializers(this, _styles_extraInitializers);
|
|
27
|
+
}
|
|
24
28
|
};
|
|
25
29
|
})();
|
|
26
30
|
customElements.define('template-1', MyElement);
|
|
@@ -30,26 +34,31 @@ describe('template', () => {
|
|
|
30
34
|
it('should apply html', () => {
|
|
31
35
|
let MyElement = (() => {
|
|
32
36
|
let _classSuper = HTMLElement;
|
|
33
|
-
let _instanceExtraInitializers = [];
|
|
34
37
|
let _styles_decorators;
|
|
35
38
|
let _styles_initializers = [];
|
|
39
|
+
let _styles_extraInitializers = [];
|
|
36
40
|
let _template_decorators;
|
|
37
41
|
let _template_initializers = [];
|
|
42
|
+
let _template_extraInitializers = [];
|
|
38
43
|
return class MyElement extends _classSuper {
|
|
39
44
|
static {
|
|
40
45
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
41
46
|
_styles_decorators = [shadow];
|
|
42
47
|
_template_decorators = [shadow];
|
|
43
|
-
__esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers,
|
|
44
|
-
__esDecorate(null, null, _template_decorators, { kind: "field", name: "template", static: false, private: false, access: { has: obj => "template" in obj, get: obj => obj.template, set: (obj, value) => { obj.template = value; } }, metadata: _metadata }, _template_initializers,
|
|
48
|
+
__esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers, _styles_extraInitializers);
|
|
49
|
+
__esDecorate(null, null, _template_decorators, { kind: "field", name: "template", static: false, private: false, access: { has: obj => "template" in obj, get: obj => obj.template, set: (obj, value) => { obj.template = value; } }, metadata: _metadata }, _template_initializers, _template_extraInitializers);
|
|
45
50
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
46
51
|
}
|
|
47
|
-
styles =
|
|
52
|
+
styles = __runInitializers(this, _styles_initializers, css `
|
|
48
53
|
:host {
|
|
49
54
|
display: flex;
|
|
50
55
|
}
|
|
51
|
-
`)
|
|
52
|
-
template = __runInitializers(this, _template_initializers, html `<slot></slot>`);
|
|
56
|
+
`);
|
|
57
|
+
template = (__runInitializers(this, _styles_extraInitializers), __runInitializers(this, _template_initializers, html `<slot></slot>`));
|
|
58
|
+
constructor() {
|
|
59
|
+
super(...arguments);
|
|
60
|
+
__runInitializers(this, _template_extraInitializers);
|
|
61
|
+
}
|
|
53
62
|
};
|
|
54
63
|
})();
|
|
55
64
|
customElements.define('template-2', MyElement);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow.test.js","sourceRoot":"","sources":["../../src/lib/shadow.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YAC7B,SAAS;8BAAS,WAAW;;;;yBAA7B,SAAU,SAAQ,WAAW;;;0CAChC,MAAM;oBAAC,oKAAA,MAAM,6BAAN,MAAM,
|
|
1
|
+
{"version":3,"file":"shadow.test.js","sourceRoot":"","sources":["../../src/lib/shadow.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YAC7B,SAAS;8BAAS,WAAW;;;;yBAA7B,SAAU,SAAQ,WAAW;;;0CAChC,MAAM;oBAAC,oKAAA,MAAM,6BAAN,MAAM,uFAIZ;;;gBAJM,MAAM,iDAAG,GAAG,CAAA;;;;OAInB,EAAC;;;;;;;QAGJ,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/C,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACrB,SAAS;8BAAS,WAAW;;;;;;;yBAA7B,SAAU,SAAQ,WAAW;;;0CAChC,MAAM;4CAMN,MAAM;oBANC,oKAAA,MAAM,6BAAN,MAAM,uFAIZ;oBAEM,0KAAA,QAAQ,6BAAR,QAAQ,2FAAuB;;;gBAN/B,MAAM,iDAAG,GAAG,CAAA;;;;OAInB,EAAC;gBAEM,QAAQ,wGAAG,IAAI,CAAA,eAAe,GAAC;;;;;;;QAGzC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/C,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/target/lib/tag-name.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function tagName(_val: unknown,
|
|
1
|
+
export declare function tagName<This extends typeof HTMLElement>(_val: unknown, ctx: ClassFieldDecoratorContext<This, string>): void;
|
package/target/lib/tag-name.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
customElements.define(val, this);
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
return val;
|
|
9
|
-
};
|
|
1
|
+
import { metadataStore } from './metadata.js';
|
|
2
|
+
export function tagName(_val, ctx) {
|
|
3
|
+
const metadata = metadataStore.read(ctx.metadata);
|
|
4
|
+
metadata.tagName = ctx.access.get;
|
|
10
5
|
}
|
|
11
6
|
//# sourceMappingURL=tag-name.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-name.js","sourceRoot":"","sources":["../../src/lib/tag-name.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"tag-name.js","sourceRoot":"","sources":["../../src/lib/tag-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,OAAO,CACrB,IAAa,EACb,GAA6C;IAE7C,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAElD,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACpC,CAAC"}
|
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { element } from './element.js';
|
|
2
3
|
import { tagName } from './tag-name.js';
|
|
3
4
|
describe('tag-name', () => {
|
|
4
5
|
it('should define a custom element', async () => {
|
|
5
6
|
let MyElement = (() => {
|
|
7
|
+
let _classDecorators = [element];
|
|
8
|
+
let _classDescriptor;
|
|
9
|
+
let _classExtraInitializers = [];
|
|
10
|
+
let _classThis;
|
|
6
11
|
let _classSuper = HTMLElement;
|
|
7
|
-
let _staticExtraInitializers = [];
|
|
8
12
|
let _static_tagName_decorators;
|
|
9
13
|
let _static_tagName_initializers = [];
|
|
10
|
-
|
|
14
|
+
let _static_tagName_extraInitializers = [];
|
|
15
|
+
var MyElement = class extends _classSuper {
|
|
16
|
+
static { _classThis = this; }
|
|
11
17
|
static {
|
|
12
18
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
13
19
|
_static_tagName_decorators = [tagName];
|
|
14
|
-
__esDecorate(null, null, _static_tagName_decorators, { kind: "field", name: "tagName", static: true, private: false, access: { has: obj => "tagName" in obj, get: obj => obj.tagName, set: (obj, value) => { obj.tagName = value; } }, metadata: _metadata }, _static_tagName_initializers,
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
__esDecorate(null, null, _static_tagName_decorators, { kind: "field", name: "tagName", static: true, private: false, access: { has: obj => "tagName" in obj, get: obj => obj.tagName, set: (obj, value) => { obj.tagName = value; } }, metadata: _metadata }, _static_tagName_initializers, _static_tagName_extraInitializers);
|
|
21
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
22
|
+
MyElement = _classThis = _classDescriptor.value;
|
|
23
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
24
|
+
}
|
|
25
|
+
static tagName = __runInitializers(_classThis, _static_tagName_initializers, 'tn-test-1');
|
|
26
|
+
static {
|
|
27
|
+
__runInitializers(_classThis, _static_tagName_extraInitializers);
|
|
28
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
17
29
|
}
|
|
18
|
-
static tagName = __runInitializers(this, _static_tagName_initializers, 'tn-test-1');
|
|
19
30
|
};
|
|
31
|
+
return MyElement = _classThis;
|
|
20
32
|
})();
|
|
21
33
|
return customElements.whenDefined(MyElement.tagName);
|
|
22
34
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-name.test.js","sourceRoot":"","sources":["../../src/lib/tag-name.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"tag-name.test.js","sourceRoot":"","sources":["../../src/lib/tag-name.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAExC,SAAS;oCADd,OAAO;;;;8BACgB,WAAW;;;;iCAAnB,SAAQ,WAAW;;;;kDAChC,OAAO;oBAAC,6KAAO,OAAO,6BAAP,OAAO,uGAAe;oBADxC,6KAEC;;;;gBADU,MAAM,CAAC,OAAO,+DAAG,WAAW,EAAC;;;oBADlC,uDAAS;;;;;QAIf,OAAO,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/target/lib.d.ts
CHANGED
package/target/lib.js
CHANGED
package/target/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
|