@microsoft/fast-element 2.9.2 → 2.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +58 -0
- package/CHANGELOG.md +22 -1
- package/dist/dts/binding/one-way.d.ts +1 -1
- package/dist/dts/binding/two-way.d.ts +2 -2
- package/dist/dts/components/attributes.d.ts +1 -1
- package/dist/dts/components/element-controller.d.ts +19 -8
- package/dist/dts/components/fast-definitions.d.ts +4 -4
- package/dist/dts/components/fast-element.d.ts +2 -2
- package/dist/dts/context.d.ts +1 -1
- package/dist/dts/di/di.d.ts +2 -2
- package/dist/dts/dom-policy.d.ts +3 -3
- package/dist/dts/index.d.ts +41 -28
- package/dist/dts/observable.d.ts +4 -2
- package/dist/dts/observation/arrays.d.ts +1 -1
- package/dist/dts/observation/observable.d.ts +1 -1
- package/dist/dts/observation/update-queue.d.ts +1 -1
- package/dist/dts/platform.d.ts +1 -1
- package/dist/dts/state/state.d.ts +1 -1
- package/dist/dts/state/watch.d.ts +1 -1
- package/dist/dts/styles/css-binding-directive.d.ts +1 -1
- package/dist/dts/styles/css.d.ts +2 -2
- package/dist/dts/templating/children.d.ts +1 -2
- package/dist/dts/templating/compiler.d.ts +2 -2
- package/dist/dts/templating/html-binding-directive.d.ts +3 -3
- package/dist/dts/templating/html-directive.d.ts +2 -2
- package/dist/dts/templating/node-observation.d.ts +1 -1
- package/dist/dts/templating/ref.d.ts +1 -1
- package/dist/dts/templating/render.d.ts +4 -4
- package/dist/dts/templating/repeat.d.ts +4 -4
- package/dist/dts/templating/slotted.d.ts +1 -1
- package/dist/dts/templating/template.d.ts +2 -2
- package/dist/dts/templating/view.d.ts +2 -2
- package/dist/esm/binding/one-way.js +1 -1
- package/dist/esm/binding/two-way.js +3 -3
- package/dist/esm/components/element-controller.js +69 -23
- package/dist/esm/components/fast-definitions.js +1 -1
- package/dist/esm/context.js +2 -2
- package/dist/esm/di/di.js +61 -51
- package/dist/esm/dom-policy.js +2 -2
- package/dist/esm/dom.js +2 -2
- package/dist/esm/index.js +21 -22
- package/dist/esm/interfaces.js +38 -0
- package/dist/esm/observable.js +1 -1
- package/dist/esm/observation/arrays.js +17 -10
- package/dist/esm/observation/observable.js +3 -3
- package/dist/esm/styles/css.js +2 -2
- package/dist/esm/templating/children.js +5 -8
- package/dist/esm/templating/compiler.js +5 -5
- package/dist/esm/templating/html-binding-directive.js +2 -2
- package/dist/esm/templating/node-observation.js +1 -1
- package/dist/esm/templating/render.js +4 -4
- package/dist/esm/templating/repeat.js +4 -4
- package/dist/esm/templating/slotted.js +1 -1
- package/dist/esm/templating/template.js +7 -7
- package/dist/fast-element.api.json +70 -11
- package/dist/fast-element.debug.js +2312 -2224
- package/dist/fast-element.debug.min.js +2 -2
- package/dist/fast-element.js +2312 -2224
- package/dist/fast-element.min.js +2 -2
- package/dist/fast-element.untrimmed.d.ts +17 -7
- package/docs/api-report.api.md +5 -4
- package/package.json +4 -3
- package/playwright.config.ts +18 -0
- package/test/index.html +11 -0
- package/test/main.ts +10 -0
- package/test/vite.config.ts +19 -0
- package/dist/dts/observation/observable.bench.d.ts +0 -18
- package/dist/dts/templating/render.bench.d.ts +0 -3
- package/dist/dts/templating/repeat-basic-reverse.bench.d.ts +0 -3
- package/dist/dts/templating/repeat-basic-shift.bench.d.ts +0 -3
- package/dist/dts/templating/when-basic.bench.d.ts +0 -3
- package/dist/dts/templating/when-conditional.bench.d.ts +0 -3
- package/dist/dts/templating/when-switch.bench.d.ts +0 -3
- package/dist/esm/observation/observable.bench.js +0 -79
- package/dist/esm/templating/render.bench.js +0 -56
- package/dist/esm/templating/repeat-basic-reverse.bench.js +0 -43
- package/dist/esm/templating/repeat-basic-shift.bench.js +0 -43
- package/dist/esm/templating/when-basic.bench.js +0 -36
- package/dist/esm/templating/when-conditional.bench.js +0 -39
- package/dist/esm/templating/when-switch.bench.js +0 -68
- package/scripts/run-benchmarks.js +0 -46
- package/tensile.config.js +0 -12
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { attr, FASTElement, Observable } from "../index.js";
|
|
11
|
-
import { _random, adjectives, nouns } from "../__test__/utilities.js";
|
|
12
|
-
export class TestObservable extends FASTElement {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
this._greetMessage = "";
|
|
16
|
-
this._name = "";
|
|
17
|
-
this._exit = false;
|
|
18
|
-
}
|
|
19
|
-
connectedCallback() {
|
|
20
|
-
super.connectedCallback();
|
|
21
|
-
const first = this.firstName[0].toUpperCase() + this.firstName.slice(1);
|
|
22
|
-
const last = this.lastName[0].toUpperCase() + this.lastName.slice(1);
|
|
23
|
-
this.name = `${first} ${last}`;
|
|
24
|
-
this.greetMessage = `Welcome to FAST, ${this.name} !!`;
|
|
25
|
-
}
|
|
26
|
-
get greetMessage() {
|
|
27
|
-
Observable.track(this, "greetMessage");
|
|
28
|
-
return this._greetMessage;
|
|
29
|
-
}
|
|
30
|
-
set greetMessage(value) {
|
|
31
|
-
this._greetMessage = value;
|
|
32
|
-
Observable.notify(this, "greetMessage");
|
|
33
|
-
}
|
|
34
|
-
get name() {
|
|
35
|
-
Observable.track(this, "name");
|
|
36
|
-
return this._name;
|
|
37
|
-
}
|
|
38
|
-
set name(value) {
|
|
39
|
-
this._name = value;
|
|
40
|
-
Observable.notify(this, "name");
|
|
41
|
-
}
|
|
42
|
-
get exit() {
|
|
43
|
-
Observable.track(this, "exit");
|
|
44
|
-
return this._exit;
|
|
45
|
-
}
|
|
46
|
-
set exit(value) {
|
|
47
|
-
this._exit = value;
|
|
48
|
-
Observable.notify(this, "exit");
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
__decorate([
|
|
52
|
-
attr,
|
|
53
|
-
__metadata("design:type", String)
|
|
54
|
-
], TestObservable.prototype, "firstName", void 0);
|
|
55
|
-
__decorate([
|
|
56
|
-
attr,
|
|
57
|
-
__metadata("design:type", String)
|
|
58
|
-
], TestObservable.prototype, "lastName", void 0);
|
|
59
|
-
TestObservable.define({
|
|
60
|
-
name: "test-observable",
|
|
61
|
-
});
|
|
62
|
-
const itemRenderer = () => {
|
|
63
|
-
const testObservable = document.createElement("test-observable");
|
|
64
|
-
testObservable.setAttribute("firstname", adjectives[_random(adjectives.length)]);
|
|
65
|
-
testObservable.setAttribute("lastname", nouns[_random(nouns.length)]);
|
|
66
|
-
const notifier = Observable.getNotifier(testObservable);
|
|
67
|
-
const handler = {
|
|
68
|
-
handleChange(source, propertyName) {
|
|
69
|
-
if (propertyName === "greetMessage")
|
|
70
|
-
source._exit = true;
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
notifier.subscribe(handler, "greetMessage");
|
|
74
|
-
testObservable.greetMessage = `Goodbye ${testObservable.name}, see you next time!`;
|
|
75
|
-
notifier.unsubscribe(handler, "greetMessage");
|
|
76
|
-
return testObservable;
|
|
77
|
-
};
|
|
78
|
-
export default itemRenderer;
|
|
79
|
-
export { tests } from "@tensile-perf/web-components";
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { attr, css, FASTElement, html, oneTime, repeat } from "../index.js";
|
|
11
|
-
import { data } from "../__test__/utilities.js";
|
|
12
|
-
const xItemTemplate = html `
|
|
13
|
-
<div @click="${x => x.onClick}" class="item">${x => x.value}</div>
|
|
14
|
-
`;
|
|
15
|
-
const styles = css `
|
|
16
|
-
.item {
|
|
17
|
-
display: flex;
|
|
18
|
-
}
|
|
19
|
-
`;
|
|
20
|
-
class XItem extends FASTElement {
|
|
21
|
-
onClick(e) {
|
|
22
|
-
console.log(e.type);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
__decorate([
|
|
26
|
-
attr,
|
|
27
|
-
__metadata("design:type", Object)
|
|
28
|
-
], XItem.prototype, "value", void 0);
|
|
29
|
-
XItem.define({
|
|
30
|
-
name: "x-item",
|
|
31
|
-
template: xItemTemplate,
|
|
32
|
-
styles,
|
|
33
|
-
});
|
|
34
|
-
const xAppTemplate = html `
|
|
35
|
-
<div id="test-container">
|
|
36
|
-
${repeat(x => x.items, html `
|
|
37
|
-
<x-item :value="${oneTime((x) => x.label)}"></x-item>
|
|
38
|
-
`)}
|
|
39
|
-
</div>
|
|
40
|
-
`;
|
|
41
|
-
class XApp extends FASTElement {
|
|
42
|
-
constructor() {
|
|
43
|
-
super(...arguments);
|
|
44
|
-
this.items = data;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
XApp.define({
|
|
48
|
-
name: "x-app",
|
|
49
|
-
template: xAppTemplate,
|
|
50
|
-
});
|
|
51
|
-
const itemRenderer = () => {
|
|
52
|
-
const testRender = document.createElement("x-app");
|
|
53
|
-
return testRender;
|
|
54
|
-
};
|
|
55
|
-
export default itemRenderer;
|
|
56
|
-
export { tests } from "@tensile-perf/web-components";
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { attr, FASTElement, html, nullableNumberConverter, repeat } from "../index.js";
|
|
11
|
-
class TestRepeat extends FASTElement {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.count = 0;
|
|
15
|
-
this.items = new Array(this.count).fill("foo");
|
|
16
|
-
}
|
|
17
|
-
connectedCallback() {
|
|
18
|
-
super.connectedCallback();
|
|
19
|
-
this.items.reverse();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
__decorate([
|
|
23
|
-
attr({
|
|
24
|
-
mode: "fromView",
|
|
25
|
-
converter: nullableNumberConverter,
|
|
26
|
-
}),
|
|
27
|
-
__metadata("design:type", Number)
|
|
28
|
-
], TestRepeat.prototype, "count", void 0);
|
|
29
|
-
TestRepeat.define({
|
|
30
|
-
name: "test-repeat",
|
|
31
|
-
template: html `
|
|
32
|
-
${repeat(x => x.items, html `
|
|
33
|
-
<span>${x => x}</span>
|
|
34
|
-
`)}
|
|
35
|
-
`,
|
|
36
|
-
});
|
|
37
|
-
const itemRenderer = () => {
|
|
38
|
-
const testRepeat = document.createElement("test-repeat");
|
|
39
|
-
testRepeat.setAttribute("count", "100");
|
|
40
|
-
return testRepeat;
|
|
41
|
-
};
|
|
42
|
-
export default itemRenderer;
|
|
43
|
-
export { tests } from "@tensile-perf/web-components";
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { attr, FASTElement, html, nullableNumberConverter, repeat } from "../index.js";
|
|
11
|
-
class TestRepeat extends FASTElement {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.count = 0;
|
|
15
|
-
this.items = new Array(this.count).fill("foo");
|
|
16
|
-
}
|
|
17
|
-
connectedCallback() {
|
|
18
|
-
super.connectedCallback();
|
|
19
|
-
this.items.shift();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
__decorate([
|
|
23
|
-
attr({
|
|
24
|
-
mode: "fromView",
|
|
25
|
-
converter: nullableNumberConverter,
|
|
26
|
-
}),
|
|
27
|
-
__metadata("design:type", Number)
|
|
28
|
-
], TestRepeat.prototype, "count", void 0);
|
|
29
|
-
TestRepeat.define({
|
|
30
|
-
name: "test-repeat",
|
|
31
|
-
template: html `
|
|
32
|
-
${repeat(x => x.items, html `
|
|
33
|
-
<span>${x => x}</span>
|
|
34
|
-
`)}
|
|
35
|
-
`,
|
|
36
|
-
});
|
|
37
|
-
const itemRenderer = () => {
|
|
38
|
-
const testRepeat = document.createElement("test-repeat");
|
|
39
|
-
testRepeat.setAttribute("count", "100");
|
|
40
|
-
return testRepeat;
|
|
41
|
-
};
|
|
42
|
-
export default itemRenderer;
|
|
43
|
-
export { tests } from "@tensile-perf/web-components";
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { attr, FASTElement, html, when } from "../index.js";
|
|
11
|
-
class TestWhen extends FASTElement {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.try = false;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
__decorate([
|
|
18
|
-
attr({
|
|
19
|
-
mode: "boolean",
|
|
20
|
-
}),
|
|
21
|
-
__metadata("design:type", Boolean)
|
|
22
|
-
], TestWhen.prototype, "try", void 0);
|
|
23
|
-
TestWhen.define({
|
|
24
|
-
name: "test-when",
|
|
25
|
-
template: html `
|
|
26
|
-
${when(x => x.try, html `
|
|
27
|
-
<span>Yes</span>
|
|
28
|
-
`)}
|
|
29
|
-
`,
|
|
30
|
-
});
|
|
31
|
-
const itemRenderer = () => {
|
|
32
|
-
const testWhen = document.createElement("test-when");
|
|
33
|
-
return testWhen;
|
|
34
|
-
};
|
|
35
|
-
export default itemRenderer;
|
|
36
|
-
export { tests } from "@tensile-perf/web-components";
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { attr, FASTElement, html, when } from "../index.js";
|
|
11
|
-
class TestWhen extends FASTElement {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.try = false;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
__decorate([
|
|
18
|
-
attr({
|
|
19
|
-
mode: "boolean",
|
|
20
|
-
}),
|
|
21
|
-
__metadata("design:type", Boolean)
|
|
22
|
-
], TestWhen.prototype, "try", void 0);
|
|
23
|
-
TestWhen.define({
|
|
24
|
-
name: "test-when",
|
|
25
|
-
template: html `
|
|
26
|
-
${when(x => x.try, html `
|
|
27
|
-
<span>Yes</span>
|
|
28
|
-
`)}
|
|
29
|
-
${when(x => !x.try, html `
|
|
30
|
-
<span>No</span>
|
|
31
|
-
`)}
|
|
32
|
-
`,
|
|
33
|
-
});
|
|
34
|
-
const itemRenderer = () => {
|
|
35
|
-
const testWhen = document.createElement("test-when");
|
|
36
|
-
return testWhen;
|
|
37
|
-
};
|
|
38
|
-
export default itemRenderer;
|
|
39
|
-
export { tests } from "@tensile-perf/web-components";
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { attr, FASTElement, html, nullableNumberConverter, when } from "../index.js";
|
|
11
|
-
const emotionalTemplates = {
|
|
12
|
-
depressed: html `
|
|
13
|
-
<div>
|
|
14
|
-
<span>I'm so depressed :O</span>
|
|
15
|
-
</div>
|
|
16
|
-
`,
|
|
17
|
-
sad: html `
|
|
18
|
-
<div>
|
|
19
|
-
<span>I'm so sad :(</span>
|
|
20
|
-
</div>
|
|
21
|
-
`,
|
|
22
|
-
happy: html `
|
|
23
|
-
<div>
|
|
24
|
-
<span>I'm so happy :)</span>
|
|
25
|
-
</div>
|
|
26
|
-
`,
|
|
27
|
-
ecstatic: html `
|
|
28
|
-
<div>
|
|
29
|
-
<span>I'm so ecstatic :D</span>
|
|
30
|
-
</div>
|
|
31
|
-
`,
|
|
32
|
-
indifferent: html `
|
|
33
|
-
<div>
|
|
34
|
-
<span>I'm indifferent :|</span>
|
|
35
|
-
</div>
|
|
36
|
-
`,
|
|
37
|
-
};
|
|
38
|
-
class TestWhen extends FASTElement {
|
|
39
|
-
constructor() {
|
|
40
|
-
super(...arguments);
|
|
41
|
-
this.value = 0;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
__decorate([
|
|
45
|
-
attr({
|
|
46
|
-
mode: "fromView",
|
|
47
|
-
converter: nullableNumberConverter,
|
|
48
|
-
}),
|
|
49
|
-
__metadata("design:type", Number)
|
|
50
|
-
], TestWhen.prototype, "value", void 0);
|
|
51
|
-
TestWhen.define({
|
|
52
|
-
name: "test-when",
|
|
53
|
-
template: html `
|
|
54
|
-
<button @click="${x => x.update(true)}">Click Me</button>
|
|
55
|
-
${when(x => x.value <= 1, emotionalTemplates.depressed)}
|
|
56
|
-
${when(x => x.value === 2 || x.value === 3, emotionalTemplates.sad)}
|
|
57
|
-
${when(x => x.value === 4 || x.value === 5, emotionalTemplates.indifferent)}
|
|
58
|
-
${when(x => x.value >= 6 && x.value < 9, emotionalTemplates.happy)}
|
|
59
|
-
${when(x => x.value === 9 || x.value === 10, emotionalTemplates.ecstatic)}
|
|
60
|
-
`,
|
|
61
|
-
});
|
|
62
|
-
const itemRenderer = () => {
|
|
63
|
-
const testWhen = document.createElement("test-when");
|
|
64
|
-
testWhen.click();
|
|
65
|
-
return testWhen;
|
|
66
|
-
};
|
|
67
|
-
export default itemRenderer;
|
|
68
|
-
export { tests } from "@tensile-perf/web-components";
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import fs from 'fs/promises';
|
|
2
|
-
import { fileURLToPath } from 'url';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
import { execSync } from 'child_process';
|
|
5
|
-
|
|
6
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = path.dirname(__filename);
|
|
8
|
-
const rootDir = path.join(__dirname, '..');
|
|
9
|
-
const tensileConfig = 'tensile.config.js';
|
|
10
|
-
|
|
11
|
-
try {
|
|
12
|
-
const esmOutput = path.join(rootDir, 'dist', 'esm');
|
|
13
|
-
const items = await fs.readdir(esmOutput);
|
|
14
|
-
|
|
15
|
-
// Collect all component folders
|
|
16
|
-
const folders = [];
|
|
17
|
-
for (const item of items) {
|
|
18
|
-
const itemPath = path.join(esmOutput, item);
|
|
19
|
-
const stats = await fs.lstat(itemPath);
|
|
20
|
-
if (stats.isDirectory()) {
|
|
21
|
-
folders.push(item);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Collect all .bench.js files
|
|
26
|
-
const benchFiles = [];
|
|
27
|
-
for (const folder of folders) {
|
|
28
|
-
const folderPath = path.join(esmOutput, folder);
|
|
29
|
-
const files = await fs.readdir(folderPath);
|
|
30
|
-
const filteredFiles = files.filter(file => file.endsWith('.bench.js'));
|
|
31
|
-
benchFiles.push(...filteredFiles.map(file => path.relative(rootDir, path.join(folderPath, file))));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Execute tensile for each .bench.js file
|
|
35
|
-
for (const file of benchFiles) {
|
|
36
|
-
try {
|
|
37
|
-
// eslint-disable-next-line no-undef
|
|
38
|
-
execSync(`tensile --file ./${file} --config ${tensileConfig} ${process.argv[2]}`, { stdio: 'inherit' });
|
|
39
|
-
} catch (error) {
|
|
40
|
-
console.error(`Error executing command for file ${file}: ${error.message}`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
} catch (error) {
|
|
45
|
-
console.error(`Error reading directory: ${error.message}`);
|
|
46
|
-
}
|
package/tensile.config.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const config = {
|
|
2
|
-
// Browsers to test against
|
|
3
|
-
browsers: ['chrome'],
|
|
4
|
-
|
|
5
|
-
// Importmaps for your test.
|
|
6
|
-
// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap
|
|
7
|
-
imports: {
|
|
8
|
-
'@tensile-perf/web-components': '/node_modules/@tensile-perf/web-components/lib/index.js',
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export default config;
|