@joist/element 2.0.1-next.1637807849.0 → 3.0.0-2
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 +22 -106
- package/package.json +33 -18
- package/target/lib/attr.d.ts +1 -0
- package/target/lib/attr.js +76 -0
- package/target/lib/attr.js.map +1 -0
- package/target/lib/attr.test.d.ts +1 -0
- package/target/lib/attr.test.js +122 -0
- package/target/lib/attr.test.js.map +1 -0
- package/target/lib/listen.d.ts +1 -0
- package/target/lib/listen.js +13 -0
- package/target/lib/listen.js.map +1 -0
- package/target/lib/result.d.ts +6 -0
- package/target/lib/result.js +9 -0
- package/target/lib/result.js.map +1 -0
- package/target/lib/shadow.d.ts +2 -0
- package/target/lib/shadow.js +16 -0
- package/target/lib/shadow.js.map +1 -0
- package/target/lib/shadow.test.d.ts +1 -0
- package/target/lib/shadow.test.js +54 -0
- package/target/lib/shadow.test.js.map +1 -0
- package/target/lib/tag-name.d.ts +1 -0
- package/target/lib/tag-name.js +11 -0
- package/target/lib/tag-name.js.map +1 -0
- package/target/lib/tag-name.test.d.ts +0 -0
- package/target/lib/tag-name.test.js +2 -0
- package/target/lib/tag-name.test.js.map +1 -0
- package/target/lib/tags.d.ts +9 -0
- package/target/lib/tags.js +22 -0
- package/target/lib/tags.js.map +1 -0
- package/target/lib.d.ts +6 -0
- package/target/lib.js +7 -0
- package/target/lib.js.map +1 -0
- package/target/tsconfig.tsbuildinfo +1 -0
- package/observable/package.json +0 -4
- package/styled/package.json +0 -4
- package/target/build/lib/observable.d.ts +0 -324
- package/target/build/lib/observable.js +0 -73
- package/target/build/lib/observable.js.map +0 -1
- package/target/build/lib/styled.d.ts +0 -310
- package/target/build/lib/styled.js +0 -45
- package/target/build/lib/styled.js.map +0 -1
- package/target/build/lib.d.ts +0 -2
- package/target/build/lib.js +0 -3
- package/target/build/lib.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,120 +1,36 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Element
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Create a shadow root and apply styles and html as defined
|
|
4
4
|
|
|
5
5
|
#### Installation:
|
|
6
6
|
|
|
7
7
|
```BASH
|
|
8
|
-
npm i @joist/
|
|
8
|
+
npm i @joist/element
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
#### Example:
|
|
12
12
|
|
|
13
13
|
```TS
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
class
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
static deps = [FooService];
|
|
24
|
-
|
|
25
|
-
constructor(private foo: FooService) {}
|
|
26
|
-
|
|
27
|
-
sayHello() {
|
|
28
|
-
return 'Hello From BarService and ' + this.foo.sayHello();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const app = new Injector();
|
|
33
|
-
|
|
34
|
-
app.get(BarService).sayHello(); // Hello from BarService and Hello from FooService
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
```TS
|
|
38
|
-
import { Injector } from '@joist/di';
|
|
39
|
-
import { inject } from '@joist/di/decorators';
|
|
40
|
-
|
|
41
|
-
class FooService {
|
|
42
|
-
sayHello() {
|
|
43
|
-
return 'Hello From FooService';
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
class BarService {
|
|
48
|
-
constructor(@inject(FooService) private foo: FooService) {}
|
|
49
|
-
|
|
50
|
-
sayHello() {
|
|
51
|
-
return 'Hello From BarService and ' + this.foo.sayHello();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const app = new Injector();
|
|
56
|
-
|
|
57
|
-
app.get(BarService).sayHello(); // Hello from BarService and Hello from FooService
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
#### Override A Service:
|
|
61
|
-
|
|
62
|
-
```TS
|
|
63
|
-
import { Injector } from '@joist/di';
|
|
64
|
-
import { inject } from '@joist/di/decorators';
|
|
65
|
-
|
|
66
|
-
class FooService {
|
|
67
|
-
sayHello() {
|
|
68
|
-
return 'Hello From FooService';
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
class BarService {
|
|
73
|
-
constructor(@inject(FooService) private foo: FooService) {}
|
|
74
|
-
|
|
75
|
-
sayHello() {
|
|
76
|
-
return 'Hello From BarService and ' + this.foo.sayHello();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// Override FooService with an alternate implementation
|
|
81
|
-
const app = new Injector({
|
|
82
|
-
providers: [
|
|
83
|
-
{
|
|
84
|
-
provide: FooService,
|
|
85
|
-
use: class extends FooService {
|
|
86
|
-
sayHello() {
|
|
87
|
-
return 'IT HAS BEEN OVERRIDEN'
|
|
88
|
-
}
|
|
89
|
-
}
|
|
14
|
+
import { styles, template, css, html, define, listen, attr } from '@joist/element';
|
|
15
|
+
|
|
16
|
+
export class MyElement extends HTMLElement {
|
|
17
|
+
@define static tagName = 'my-element';
|
|
18
|
+
|
|
19
|
+
@styles styles = css`
|
|
20
|
+
:host {
|
|
21
|
+
display: block;
|
|
22
|
+
color: red;
|
|
90
23
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
```TS
|
|
102
|
-
class FooService {
|
|
103
|
-
static providedInRoot = true;
|
|
104
|
-
|
|
105
|
-
sayHello() {
|
|
106
|
-
return 'Hello From FooService';
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
```TS
|
|
112
|
-
import { service } from '@joist/di/decorators';
|
|
113
|
-
|
|
114
|
-
@service()
|
|
115
|
-
class FooService {
|
|
116
|
-
sayHello() {
|
|
117
|
-
return 'Hello From FooService';
|
|
24
|
+
`;
|
|
25
|
+
|
|
26
|
+
@template template = html`
|
|
27
|
+
<slot></slot>
|
|
28
|
+
`;
|
|
29
|
+
|
|
30
|
+
@attr accessor value = 0;
|
|
31
|
+
|
|
32
|
+
@listen('click') onClick() {
|
|
33
|
+
console.log('clicked!')
|
|
118
34
|
}
|
|
119
35
|
}
|
|
120
36
|
```
|
package/package.json
CHANGED
|
@@ -1,34 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joist/element",
|
|
3
|
-
"version": "
|
|
4
|
-
"main": "./target/
|
|
5
|
-
"module": "./target/
|
|
3
|
+
"version": "3.0.0-2",
|
|
4
|
+
"main": "./target/lib.js",
|
|
5
|
+
"module": "./target/lib.js",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
|
-
"import": "./target/
|
|
8
|
+
"import": "./target/lib.js"
|
|
9
9
|
},
|
|
10
|
-
"
|
|
11
|
-
"import": "./target/
|
|
12
|
-
},
|
|
13
|
-
"./styled": {
|
|
14
|
-
"import": "./target/build/lib/styled.js"
|
|
10
|
+
"./*": {
|
|
11
|
+
"import": "./target/lib/*.js"
|
|
15
12
|
}
|
|
16
13
|
},
|
|
17
14
|
"files": [
|
|
18
|
-
"target
|
|
19
|
-
"observable/package.json",
|
|
20
|
-
"styled/package.json"
|
|
15
|
+
"target"
|
|
21
16
|
],
|
|
22
17
|
"sideEffects": false,
|
|
23
|
-
"description": "
|
|
18
|
+
"description": "Intelligently apply styles to WebComponents",
|
|
24
19
|
"repository": {
|
|
25
20
|
"type": "git",
|
|
26
21
|
"url": "git+https://github.com/deebloo/joist.git"
|
|
27
22
|
},
|
|
28
23
|
"keywords": [
|
|
29
24
|
"TypeScript",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
25
|
+
"WebComponents",
|
|
26
|
+
"CSS",
|
|
27
|
+
"ShadowDOM"
|
|
32
28
|
],
|
|
33
29
|
"author": "deebloo",
|
|
34
30
|
"license": "MIT",
|
|
@@ -39,8 +35,27 @@
|
|
|
39
35
|
"access": "public"
|
|
40
36
|
},
|
|
41
37
|
"scripts": {
|
|
42
|
-
"test": "
|
|
43
|
-
"build": "
|
|
38
|
+
"test": "wireit",
|
|
39
|
+
"build": "wireit"
|
|
40
|
+
},
|
|
41
|
+
"wireit": {
|
|
42
|
+
"build": {
|
|
43
|
+
"command": "tsc --build --pretty",
|
|
44
|
+
"clean": "if-file-deleted",
|
|
45
|
+
"files": [
|
|
46
|
+
"src/**",
|
|
47
|
+
"tsconfig.json"
|
|
48
|
+
],
|
|
49
|
+
"output": [
|
|
50
|
+
"target/**"
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"test": {
|
|
54
|
+
"command": "wtr --config ../../wtr.config.mjs --port 8001",
|
|
55
|
+
"dependencies": [
|
|
56
|
+
"build"
|
|
57
|
+
]
|
|
58
|
+
}
|
|
44
59
|
},
|
|
45
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "e6e36105708633b45a0585b066a89f07a7ac78cb"
|
|
46
61
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function attr<This extends HTMLElement>({ get, set }: ClassAccessorDecoratorTarget<This, unknown>, ctx: ClassAccessorDecoratorContext<This>): ClassAccessorDecoratorResult<This, any>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export function attr({ get, set }, ctx) {
|
|
2
|
+
return {
|
|
3
|
+
init(value) {
|
|
4
|
+
if (typeof ctx.name === 'string') {
|
|
5
|
+
if (this.hasAttribute(ctx.name)) {
|
|
6
|
+
const attr = this.getAttribute(ctx.name);
|
|
7
|
+
// treat as boolean
|
|
8
|
+
if (attr === '') {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
// treat as number
|
|
12
|
+
if (typeof value === 'number') {
|
|
13
|
+
return Number(attr);
|
|
14
|
+
}
|
|
15
|
+
// treat as string
|
|
16
|
+
return attr;
|
|
17
|
+
}
|
|
18
|
+
// should set attributes AFTER init to allow setup to complete
|
|
19
|
+
// If we do not do this the attributeChangedCallback could fire before init.
|
|
20
|
+
// If the user attempts to read or write to this property it will fail
|
|
21
|
+
// this also normalizes when the attributeChangedCallback is called in different rendering scenarios
|
|
22
|
+
Promise.resolve().then(() => {
|
|
23
|
+
const cached = get.call(this);
|
|
24
|
+
if (cached === true) {
|
|
25
|
+
// set boolean attribute
|
|
26
|
+
this.setAttribute(ctx.name.toString(), '');
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// set key/value attribute
|
|
30
|
+
const attrValue = String(cached);
|
|
31
|
+
if (attrValue !== this.getAttribute(ctx.name.toString())) {
|
|
32
|
+
this.setAttribute(ctx.name.toString(), String(cached));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
},
|
|
39
|
+
set(value) {
|
|
40
|
+
if (typeof ctx.name === 'string') {
|
|
41
|
+
if (typeof value === 'boolean') {
|
|
42
|
+
if (value) {
|
|
43
|
+
this.setAttribute(ctx.name, '');
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.removeAttribute(ctx.name);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.setAttribute(ctx.name, String(value));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return set.call(this, value);
|
|
54
|
+
},
|
|
55
|
+
get() {
|
|
56
|
+
const ogValue = get.call(this);
|
|
57
|
+
if (typeof ctx.name === 'string') {
|
|
58
|
+
const attr = this.getAttribute(ctx.name);
|
|
59
|
+
// treat as attribute
|
|
60
|
+
if (attr === '') {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
// treat as number
|
|
64
|
+
if (typeof ogValue === 'number') {
|
|
65
|
+
return Number(attr);
|
|
66
|
+
}
|
|
67
|
+
// treat as string
|
|
68
|
+
return attr;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return ogValue;
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=attr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attr.js","sourceRoot":"","sources":["../../src/lib/attr.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,IAAI,CAClB,EAAE,GAAG,EAAE,GAAG,EAA+C,EACzD,GAAwC;IAExC,OAAO;QACL,IAAI,CAAC,KAAc;YACjB,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAChC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAEzC,mBAAmB;oBACnB,IAAI,IAAI,KAAK,EAAE,EAAE;wBACf,OAAO,IAAI,CAAC;qBACb;oBAED,kBAAkB;oBAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;wBAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;qBACrB;oBAED,kBAAkB;oBAClB,OAAO,IAAI,CAAC;iBACb;gBAED,8DAA8D;gBAC9D,4EAA4E;gBAC5E,sEAAsE;gBACtE,oGAAoG;gBACpG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE9B,IAAI,MAAM,KAAK,IAAI,EAAE;wBACnB,wBAAwB;wBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;qBAC5C;yBAAM;wBACL,0BAA0B;wBAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;wBAEjC,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;4BACxD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;yBACxD;qBACF;gBACH,CAAC,CAAC,CAAC;aACJ;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QACD,GAAG,CAAC,KAAc;YAChB,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAChC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;oBAC9B,IAAI,KAAK,EAAE;wBACT,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;qBACjC;yBAAM;wBACL,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBAChC;iBACF;qBAAM;oBACL,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC5C;aACF;YAED,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEzC,qBAAqB;gBACrB,IAAI,IAAI,KAAK,EAAE,EAAE;oBACf,OAAO,IAAI,CAAC;iBACb;gBAED,kBAAkB;gBAClB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oBAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;iBACrB;gBAED,kBAAkB;gBAClB,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,OAAO,CAAC;aAChB;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { expect, fixture, html } from '@open-wc/testing';
|
|
3
|
+
import { attr } from './attr.js';
|
|
4
|
+
describe('observable: attr()', () => {
|
|
5
|
+
it('should write default value to attribute', async () => {
|
|
6
|
+
let MyElement = (() => {
|
|
7
|
+
let _instanceExtraInitializers = [];
|
|
8
|
+
let _hello_decorators;
|
|
9
|
+
let _hello_initializers = [];
|
|
10
|
+
return class MyElement extends HTMLElement {
|
|
11
|
+
static {
|
|
12
|
+
_hello_decorators = [attr];
|
|
13
|
+
__esDecorate(this, null, _hello_decorators, { kind: "accessor", name: "hello", static: false, private: false, access: { has: obj => "hello" in obj, get: obj => obj.hello, set: (obj, value) => { obj.hello = value; } } }, _hello_initializers, _instanceExtraInitializers);
|
|
14
|
+
}
|
|
15
|
+
#hello_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _hello_initializers, 'world'));
|
|
16
|
+
get hello() { return this.#hello_accessor_storage; }
|
|
17
|
+
set hello(value) { this.#hello_accessor_storage = value; }
|
|
18
|
+
};
|
|
19
|
+
})();
|
|
20
|
+
customElements.define('attr-test-1', MyElement);
|
|
21
|
+
const el = await fixture(html `<attr-test-1></attr-test-1>`);
|
|
22
|
+
expect(el.getAttribute('hello')).to.equal('world');
|
|
23
|
+
});
|
|
24
|
+
it('should read default value from attribute', async () => {
|
|
25
|
+
let MyElement = (() => {
|
|
26
|
+
let _instanceExtraInitializers_1 = [];
|
|
27
|
+
let _hello_decorators;
|
|
28
|
+
let _hello_initializers = [];
|
|
29
|
+
return class MyElement extends HTMLElement {
|
|
30
|
+
static {
|
|
31
|
+
_hello_decorators = [attr];
|
|
32
|
+
__esDecorate(this, null, _hello_decorators, { kind: "accessor", name: "hello", static: false, private: false, access: { has: obj => "hello" in obj, get: obj => obj.hello, set: (obj, value) => { obj.hello = value; } } }, _hello_initializers, _instanceExtraInitializers_1);
|
|
33
|
+
}
|
|
34
|
+
#hello_accessor_storage = (__runInitializers(this, _instanceExtraInitializers_1), __runInitializers(this, _hello_initializers, 'world'));
|
|
35
|
+
get hello() { return this.#hello_accessor_storage; }
|
|
36
|
+
set hello(value) { this.#hello_accessor_storage = value; }
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
customElements.define('attr-test-2', MyElement);
|
|
40
|
+
const el = await fixture(html `<attr-test-2 hello="foo"></attr-test-2>`);
|
|
41
|
+
expect(el.hello).to.equal('foo');
|
|
42
|
+
});
|
|
43
|
+
it('should write boolean attr values', async () => {
|
|
44
|
+
let MyElement = (() => {
|
|
45
|
+
let _instanceExtraInitializers_2 = [];
|
|
46
|
+
let _hello_decorators;
|
|
47
|
+
let _hello_initializers = [];
|
|
48
|
+
return class MyElement extends HTMLElement {
|
|
49
|
+
static {
|
|
50
|
+
_hello_decorators = [attr];
|
|
51
|
+
__esDecorate(this, null, _hello_decorators, { kind: "accessor", name: "hello", static: false, private: false, access: { has: obj => "hello" in obj, get: obj => obj.hello, set: (obj, value) => { obj.hello = value; } } }, _hello_initializers, _instanceExtraInitializers_2);
|
|
52
|
+
}
|
|
53
|
+
#hello_accessor_storage = (__runInitializers(this, _instanceExtraInitializers_2), __runInitializers(this, _hello_initializers, true));
|
|
54
|
+
get hello() { return this.#hello_accessor_storage; }
|
|
55
|
+
set hello(value) { this.#hello_accessor_storage = value; }
|
|
56
|
+
};
|
|
57
|
+
})();
|
|
58
|
+
customElements.define('attr-test-3', MyElement);
|
|
59
|
+
const el = await fixture(html `<attr-test-3></attr-test-3>`);
|
|
60
|
+
expect(el.getAttribute('hello')).to.equal('');
|
|
61
|
+
el.hello = false;
|
|
62
|
+
expect(el.getAttribute('hello')).to.equal(null);
|
|
63
|
+
});
|
|
64
|
+
it('should parse to boolean values', async () => {
|
|
65
|
+
let MyElement = (() => {
|
|
66
|
+
let _instanceExtraInitializers_3 = [];
|
|
67
|
+
let _hello_decorators;
|
|
68
|
+
let _hello_initializers = [];
|
|
69
|
+
return class MyElement extends HTMLElement {
|
|
70
|
+
static {
|
|
71
|
+
_hello_decorators = [attr];
|
|
72
|
+
__esDecorate(this, null, _hello_decorators, { kind: "accessor", name: "hello", static: false, private: false, access: { has: obj => "hello" in obj, get: obj => obj.hello, set: (obj, value) => { obj.hello = value; } } }, _hello_initializers, _instanceExtraInitializers_3);
|
|
73
|
+
}
|
|
74
|
+
#hello_accessor_storage = (__runInitializers(this, _instanceExtraInitializers_3), __runInitializers(this, _hello_initializers, false));
|
|
75
|
+
get hello() { return this.#hello_accessor_storage; }
|
|
76
|
+
set hello(value) { this.#hello_accessor_storage = value; }
|
|
77
|
+
};
|
|
78
|
+
})();
|
|
79
|
+
customElements.define('attr-test-4', MyElement);
|
|
80
|
+
const el = await fixture(html `<attr-test-4 hello></attr-test-4>`);
|
|
81
|
+
expect(el.hello).to.equal(true);
|
|
82
|
+
});
|
|
83
|
+
it('should read attributes as number if prop is of type number', async () => {
|
|
84
|
+
let MyElement = (() => {
|
|
85
|
+
let _instanceExtraInitializers_4 = [];
|
|
86
|
+
let _value_decorators;
|
|
87
|
+
let _value_initializers = [];
|
|
88
|
+
return class MyElement extends HTMLElement {
|
|
89
|
+
static {
|
|
90
|
+
_value_decorators = [attr];
|
|
91
|
+
__esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } } }, _value_initializers, _instanceExtraInitializers_4);
|
|
92
|
+
}
|
|
93
|
+
#value_accessor_storage = (__runInitializers(this, _instanceExtraInitializers_4), __runInitializers(this, _value_initializers, 0));
|
|
94
|
+
get value() { return this.#value_accessor_storage; }
|
|
95
|
+
set value(value) { this.#value_accessor_storage = value; }
|
|
96
|
+
};
|
|
97
|
+
})();
|
|
98
|
+
customElements.define('attr-test-5', MyElement);
|
|
99
|
+
const el = await fixture(html `<attr-test-5 value="100"></attr-test-5>`);
|
|
100
|
+
expect(el.value).to.equal(100);
|
|
101
|
+
});
|
|
102
|
+
it('should NOT read attributes as number if prop is of type string', async () => {
|
|
103
|
+
let MyElement = (() => {
|
|
104
|
+
let _instanceExtraInitializers_5 = [];
|
|
105
|
+
let _value_decorators;
|
|
106
|
+
let _value_initializers = [];
|
|
107
|
+
return class MyElement extends HTMLElement {
|
|
108
|
+
static {
|
|
109
|
+
_value_decorators = [attr];
|
|
110
|
+
__esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } } }, _value_initializers, _instanceExtraInitializers_5);
|
|
111
|
+
}
|
|
112
|
+
#value_accessor_storage = (__runInitializers(this, _instanceExtraInitializers_5), __runInitializers(this, _value_initializers, '0'));
|
|
113
|
+
get value() { return this.#value_accessor_storage; }
|
|
114
|
+
set value(value) { this.#value_accessor_storage = value; }
|
|
115
|
+
};
|
|
116
|
+
})();
|
|
117
|
+
customElements.define('attr-test-6', MyElement);
|
|
118
|
+
const el = await fixture(html `<attr-test-6 value="100"></attr-test-6>`);
|
|
119
|
+
expect(el.value).to.equal('100');
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
//# sourceMappingURL=attr.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function listen<This extends HTMLElement>(event: string): (value: (e: Event) => void, ctx: ClassMethodDecoratorContext<This>) => void;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function listen(event) {
|
|
2
|
+
return (value, ctx) => {
|
|
3
|
+
ctx.addInitializer(function () {
|
|
4
|
+
// method initializers are run before fields and accessors.
|
|
5
|
+
// we want to wait till after all have run so we can check if there is a shadowRoot or not.
|
|
6
|
+
Promise.resolve().then(() => {
|
|
7
|
+
const root = this.shadowRoot || this;
|
|
8
|
+
root.addEventListener(event, value.bind(this));
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=listen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/lib/listen.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAA2B,KAAa;IAC5D,OAAO,CAAC,KAAyB,EAAE,GAAsC,EAAE,EAAE;QAC3E,GAAG,CAAC,cAAc,CAAC;YACjB,2DAA2D;YAC3D,2FAA2F;YAC3F,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;gBAErC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/lib/result.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,cAAc;IAClC,OAAO,CAAuB;IAC9B,MAAM,CAAQ;IAEd,YAAY,GAAyB,EAAE,GAAG,MAAa;QACrD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CAGF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function shadow(_, ctx) {
|
|
2
|
+
const shadow = applyShadow(ctx);
|
|
3
|
+
return (result) => {
|
|
4
|
+
const root = shadow();
|
|
5
|
+
result.apply(root);
|
|
6
|
+
return result;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function applyShadow(ctx) {
|
|
10
|
+
let shadow;
|
|
11
|
+
ctx.addInitializer(function () {
|
|
12
|
+
shadow = this.shadowRoot || this.attachShadow({ mode: 'open' });
|
|
13
|
+
});
|
|
14
|
+
return () => shadow;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=shadow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/lib/shadow.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,CAAY,EACZ,GAAwC;IAExC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAEhC,OAAO,CAAC,MAAS,EAAE,EAAE;QACnB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QAEtB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,GAAyE;IAEzE,IAAI,MAAkB,CAAC;IAEvB,GAAG,CAAC,cAAc,CAAC;QACjB,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { expect } from '@open-wc/testing';
|
|
3
|
+
import { css, html } from './tags.js';
|
|
4
|
+
import { shadow } from './shadow.js';
|
|
5
|
+
describe('template', () => {
|
|
6
|
+
it('should apply a stylesheet', () => {
|
|
7
|
+
let MyElement = (() => {
|
|
8
|
+
let _instanceExtraInitializers = [];
|
|
9
|
+
let _styles_decorators;
|
|
10
|
+
let _styles_initializers = [];
|
|
11
|
+
return class MyElement extends HTMLElement {
|
|
12
|
+
static {
|
|
13
|
+
_styles_decorators = [shadow];
|
|
14
|
+
__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; } } }, _styles_initializers, _instanceExtraInitializers);
|
|
15
|
+
}
|
|
16
|
+
styles = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _styles_initializers, css `
|
|
17
|
+
:host {
|
|
18
|
+
display: flex;
|
|
19
|
+
}
|
|
20
|
+
`));
|
|
21
|
+
};
|
|
22
|
+
})();
|
|
23
|
+
customElements.define('template-1', MyElement);
|
|
24
|
+
const el = new MyElement();
|
|
25
|
+
expect(el.shadowRoot.adoptedStyleSheets.length).to.eq(1);
|
|
26
|
+
});
|
|
27
|
+
it('should apply html', () => {
|
|
28
|
+
let MyElement = (() => {
|
|
29
|
+
let _instanceExtraInitializers_1 = [];
|
|
30
|
+
let _styles_decorators;
|
|
31
|
+
let _styles_initializers = [];
|
|
32
|
+
let _template_decorators;
|
|
33
|
+
let _template_initializers = [];
|
|
34
|
+
return class MyElement extends HTMLElement {
|
|
35
|
+
static {
|
|
36
|
+
_styles_decorators = [shadow];
|
|
37
|
+
_template_decorators = [shadow];
|
|
38
|
+
__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; } } }, _styles_initializers, _instanceExtraInitializers_1);
|
|
39
|
+
__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; } } }, _template_initializers, _instanceExtraInitializers_1);
|
|
40
|
+
}
|
|
41
|
+
styles = (__runInitializers(this, _instanceExtraInitializers_1), __runInitializers(this, _styles_initializers, css `
|
|
42
|
+
:host {
|
|
43
|
+
display: flex;
|
|
44
|
+
}
|
|
45
|
+
`));
|
|
46
|
+
template = __runInitializers(this, _template_initializers, html `<slot></slot>`);
|
|
47
|
+
};
|
|
48
|
+
})();
|
|
49
|
+
customElements.define('template-2', MyElement);
|
|
50
|
+
const el = new MyElement();
|
|
51
|
+
expect(el.shadowRoot?.innerHTML).to.eq('<slot></slot>');
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=shadow.test.js.map
|
|
@@ -0,0 +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;;;;yBAAT,SAAU,SAAQ,WAAW;;0CAChC,MAAM;oBAAC,oKAAA,MAAM,6BAAN,MAAM,mEAIZ;;gBAJM,MAAM,uGAAG,GAAG,CAAA;;;;OAInB,GAAC;;;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;;;;;;yBAAT,SAAU,SAAQ,WAAW;;0CAChC,MAAM;4CAMN,MAAM;oBANC,oKAAA,MAAM,6BAAN,MAAM,qEAIZ;oBAEM,0KAAA,QAAQ,6BAAR,QAAQ,uEAAuB;;gBAN/B,MAAM,yGAAG,GAAG,CAAA;;;;OAInB,GAAC;gBAEM,QAAQ,mDAAG,IAAI,CAAA,eAAe,EAAC;;;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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function tagName(_val: unknown, _ctx: ClassFieldDecoratorContext): (this: CustomElementConstructor, val: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-name.js","sourceRoot":"","sources":["../../src/lib/tag-name.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO,CAAC,IAAa,EAAE,IAAgC;IACrE,OAAO,UAA0C,GAAW;QAC1D,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC5B,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aAClC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-name.test.js","sourceRoot":"","sources":["../../src/lib/tag-name.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TemplateResult } from './result.js';
|
|
2
|
+
export declare class HTMLResult extends TemplateResult {
|
|
3
|
+
apply(root: ShadowRoot): void;
|
|
4
|
+
}
|
|
5
|
+
export declare function html(strings: TemplateStringsArray): HTMLResult;
|
|
6
|
+
export declare class CSSResult extends TemplateResult {
|
|
7
|
+
apply(root: ShadowRoot): void;
|
|
8
|
+
}
|
|
9
|
+
export declare function css(strings: TemplateStringsArray): CSSResult;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TemplateResult } from './result.js';
|
|
2
|
+
export class HTMLResult extends TemplateResult {
|
|
3
|
+
apply(root) {
|
|
4
|
+
const el = document.createElement('template');
|
|
5
|
+
el.innerHTML = this.strings.join(',');
|
|
6
|
+
root.append(el.content.cloneNode(true));
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function html(strings) {
|
|
10
|
+
return new HTMLResult(strings);
|
|
11
|
+
}
|
|
12
|
+
export class CSSResult extends TemplateResult {
|
|
13
|
+
apply(root) {
|
|
14
|
+
const sheet = new CSSStyleSheet();
|
|
15
|
+
sheet.replaceSync(this.strings.join(''));
|
|
16
|
+
root.adoptedStyleSheets = [...root.adoptedStyleSheets, sheet];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function css(strings) {
|
|
20
|
+
return new CSSResult(strings);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/lib/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,KAAK,CAAC,IAAgB;QACpB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9C,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,UAAU,IAAI,CAAC,OAA6B;IAChD,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,OAAO,SAAU,SAAQ,cAAc;IAC3C,KAAK,CAAC,IAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;QAClC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;CACF;AAED,MAAM,UAAU,GAAG,CAAC,OAA6B;IAC/C,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
|
package/target/lib.d.ts
ADDED