@microsoft/fast-html 1.0.0-alpha.4 → 1.0.0-alpha.40

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.
Files changed (68) hide show
  1. package/README.md +242 -18
  2. package/dist/dts/components/element.d.ts +10 -0
  3. package/dist/dts/components/index.d.ts +3 -1
  4. package/dist/dts/components/observer-map.d.ts +27 -0
  5. package/dist/dts/components/schema.d.ts +144 -0
  6. package/dist/dts/components/template.d.ts +83 -7
  7. package/dist/dts/components/utilities.d.ts +126 -37
  8. package/dist/dts/index.d.ts +1 -1
  9. package/dist/dts/tsdoc-metadata.json +1 -1
  10. package/dist/esm/components/element.js +73 -0
  11. package/dist/esm/components/index.js +3 -1
  12. package/dist/esm/components/observer-map.js +68 -0
  13. package/dist/esm/components/observer-map.spec.js +39 -0
  14. package/dist/esm/components/schema.js +250 -0
  15. package/dist/esm/components/schema.spec.js +484 -0
  16. package/dist/esm/components/template.js +235 -213
  17. package/dist/esm/components/utilities.js +990 -64
  18. package/dist/esm/components/utilities.spec.js +522 -93
  19. package/dist/esm/index.js +1 -1
  20. package/dist/fast-html.api.json +350 -1
  21. package/dist/fast-html.d.ts +283 -6
  22. package/dist/fast-html.untrimmed.d.ts +283 -6
  23. package/package.json +27 -38
  24. package/rules/attribute-directives.yml +38 -0
  25. package/rules/call-expression-with-event-argument.yml +41 -0
  26. package/rules/member-expression.yml +33 -0
  27. package/rules/tag-function-to-template-literal.yml +16 -0
  28. package/dist/dts/fixtures/binding/binding.spec.d.ts +0 -1
  29. package/dist/dts/fixtures/binding/main.d.ts +0 -1
  30. package/dist/dts/fixtures/children/children.spec.d.ts +0 -1
  31. package/dist/dts/fixtures/children/main.d.ts +0 -1
  32. package/dist/dts/fixtures/dot-syntax/dot-syntax.spec.d.ts +0 -1
  33. package/dist/dts/fixtures/dot-syntax/main.d.ts +0 -1
  34. package/dist/dts/fixtures/event/event.spec.d.ts +0 -1
  35. package/dist/dts/fixtures/event/main.d.ts +0 -1
  36. package/dist/dts/fixtures/partial/main.d.ts +0 -1
  37. package/dist/dts/fixtures/partial/partial.spec.d.ts +0 -1
  38. package/dist/dts/fixtures/ref/main.d.ts +0 -1
  39. package/dist/dts/fixtures/ref/ref.spec.d.ts +0 -1
  40. package/dist/dts/fixtures/repeat/main.d.ts +0 -1
  41. package/dist/dts/fixtures/repeat/repeat.spec.d.ts +0 -1
  42. package/dist/dts/fixtures/slotted/main.d.ts +0 -1
  43. package/dist/dts/fixtures/slotted/slotted.spec.d.ts +0 -1
  44. package/dist/dts/fixtures/when/main.d.ts +0 -1
  45. package/dist/dts/fixtures/when/when.spec.d.ts +0 -1
  46. package/dist/esm/fixtures/attribute/attribute.spec.js +0 -23
  47. package/dist/esm/fixtures/attribute/main.js +0 -19
  48. package/dist/esm/fixtures/binding/binding.spec.js +0 -17
  49. package/dist/esm/fixtures/binding/main.js +0 -19
  50. package/dist/esm/fixtures/children/children.spec.js +0 -33
  51. package/dist/esm/fixtures/children/main.js +0 -24
  52. package/dist/esm/fixtures/dot-syntax/dot-syntax.spec.js +0 -9
  53. package/dist/esm/fixtures/dot-syntax/main.js +0 -16
  54. package/dist/esm/fixtures/event/event.spec.js +0 -12
  55. package/dist/esm/fixtures/event/main.js +0 -16
  56. package/dist/esm/fixtures/partial/main.js +0 -31
  57. package/dist/esm/fixtures/partial/partial.spec.js +0 -14
  58. package/dist/esm/fixtures/ref/main.js +0 -14
  59. package/dist/esm/fixtures/ref/ref.spec.js +0 -13
  60. package/dist/esm/fixtures/repeat/main.js +0 -19
  61. package/dist/esm/fixtures/repeat/repeat.spec.js +0 -26
  62. package/dist/esm/fixtures/slotted/main.js +0 -22
  63. package/dist/esm/fixtures/slotted/slotted.spec.js +0 -25
  64. package/dist/esm/fixtures/when/main.js +0 -146
  65. package/dist/esm/fixtures/when/when.spec.js +0 -82
  66. package/dist/esm/tsconfig.tsbuildinfo +0 -1
  67. /package/dist/dts/{fixtures/attribute/attribute.spec.d.ts → components/observer-map.spec.d.ts} +0 -0
  68. /package/dist/dts/{fixtures/attribute/main.d.ts → components/schema.spec.d.ts} +0 -0
@@ -1,25 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { expect, test } from "@playwright/test";
3
- test.describe("f-template", () => __awaiter(void 0, void 0, void 0, function* () {
4
- test("create a slotted directive", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
5
- yield page.goto("/slotted");
6
- const classCount1 = yield page.evaluate(() => {
7
- var _a;
8
- const customElement = document.getElementsByTagName("test-element");
9
- return (_a = customElement.item(0)) === null || _a === void 0 ? void 0 : _a.classList.length;
10
- });
11
- expect(classCount1).toEqual(2);
12
- yield page.evaluate(() => {
13
- var _a;
14
- const customElement = document.getElementsByTagName("test-element");
15
- const newElement = document.createElement("button");
16
- (_a = customElement.item(0)) === null || _a === void 0 ? void 0 : _a.append(newElement);
17
- });
18
- const classCount2 = yield page.evaluate(() => {
19
- var _a;
20
- const customElement = document.getElementsByTagName("test-element");
21
- return (_a = customElement.item(0)) === null || _a === void 0 ? void 0 : _a.classList.length;
22
- });
23
- expect(classCount2).toEqual(3);
24
- }));
25
- }));
@@ -1,146 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { TemplateElement } from "@microsoft/fast-html";
3
- import { attr, FASTElement } from "@microsoft/fast-element";
4
- class TestElement extends FASTElement {
5
- constructor() {
6
- super(...arguments);
7
- this.show = false;
8
- }
9
- }
10
- __decorate([
11
- attr({ mode: "boolean" }),
12
- __metadata("design:type", Boolean)
13
- ], TestElement.prototype, "show", void 0);
14
- TestElement.define({
15
- name: "test-element",
16
- });
17
- class TestElementNot extends FASTElement {
18
- constructor() {
19
- super(...arguments);
20
- this.hide = false;
21
- }
22
- }
23
- __decorate([
24
- attr({ mode: "boolean" }),
25
- __metadata("design:type", Boolean)
26
- ], TestElementNot.prototype, "hide", void 0);
27
- TestElementNot.define({
28
- name: "test-element-not",
29
- });
30
- class TestElementEquals extends FASTElement {
31
- constructor() {
32
- super(...arguments);
33
- this.varA = 0;
34
- }
35
- }
36
- __decorate([
37
- attr({ attribute: "var-a" }),
38
- __metadata("design:type", Number)
39
- ], TestElementEquals.prototype, "varA", void 0);
40
- TestElementEquals.define({
41
- name: "test-element-equals",
42
- });
43
- class TestElementNotEquals extends FASTElement {
44
- constructor() {
45
- super(...arguments);
46
- this.varA = 0;
47
- }
48
- }
49
- __decorate([
50
- attr({ attribute: "var-a" }),
51
- __metadata("design:type", Number)
52
- ], TestElementNotEquals.prototype, "varA", void 0);
53
- TestElementNotEquals.define({
54
- name: "test-element-not-equals",
55
- });
56
- class TestElementGe extends FASTElement {
57
- constructor() {
58
- super(...arguments);
59
- this.varA = 0;
60
- }
61
- }
62
- __decorate([
63
- attr({ attribute: "var-a" }),
64
- __metadata("design:type", Number)
65
- ], TestElementGe.prototype, "varA", void 0);
66
- TestElementGe.define({
67
- name: "test-element-ge",
68
- });
69
- class TestElementGt extends FASTElement {
70
- constructor() {
71
- super(...arguments);
72
- this.varA = 0;
73
- }
74
- }
75
- __decorate([
76
- attr({ attribute: "var-a" }),
77
- __metadata("design:type", Number)
78
- ], TestElementGt.prototype, "varA", void 0);
79
- TestElementGt.define({
80
- name: "test-element-gt",
81
- });
82
- class TestElementLe extends FASTElement {
83
- constructor() {
84
- super(...arguments);
85
- this.varA = 0;
86
- }
87
- }
88
- __decorate([
89
- attr({ attribute: "var-a" }),
90
- __metadata("design:type", Number)
91
- ], TestElementLe.prototype, "varA", void 0);
92
- TestElementLe.define({
93
- name: "test-element-le",
94
- });
95
- class TestElementLt extends FASTElement {
96
- constructor() {
97
- super(...arguments);
98
- this.varA = 0;
99
- }
100
- }
101
- __decorate([
102
- attr({ attribute: "var-a" }),
103
- __metadata("design:type", Number)
104
- ], TestElementLt.prototype, "varA", void 0);
105
- TestElementLt.define({
106
- name: "test-element-lt",
107
- });
108
- class TestElementOr extends FASTElement {
109
- constructor() {
110
- super(...arguments);
111
- this.thisVar = false;
112
- this.thatVar = false;
113
- }
114
- }
115
- __decorate([
116
- attr({ attribute: "this-var", mode: "boolean" }),
117
- __metadata("design:type", Boolean)
118
- ], TestElementOr.prototype, "thisVar", void 0);
119
- __decorate([
120
- attr({ attribute: "that-var", mode: "boolean" }),
121
- __metadata("design:type", Boolean)
122
- ], TestElementOr.prototype, "thatVar", void 0);
123
- TestElementOr.define({
124
- name: "test-element-or",
125
- });
126
- class TestElementAnd extends FASTElement {
127
- constructor() {
128
- super(...arguments);
129
- this.thisVar = false;
130
- this.thatVar = false;
131
- }
132
- }
133
- __decorate([
134
- attr({ attribute: "this-var", mode: "boolean" }),
135
- __metadata("design:type", Boolean)
136
- ], TestElementAnd.prototype, "thisVar", void 0);
137
- __decorate([
138
- attr({ attribute: "that-var", mode: "boolean" }),
139
- __metadata("design:type", Boolean)
140
- ], TestElementAnd.prototype, "thatVar", void 0);
141
- TestElementAnd.define({
142
- name: "test-element-and",
143
- });
144
- TemplateElement.define({
145
- name: "f-template",
146
- });
@@ -1,82 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { expect, test } from "@playwright/test";
3
- test.describe("f-template", () => __awaiter(void 0, void 0, void 0, function* () {
4
- test("create a when directive for a boolean: true", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
5
- yield page.goto("/when");
6
- const customElementShow = yield page.locator("#show");
7
- const customElementHide = yield page.locator("#hide");
8
- yield expect(customElementShow).toHaveText("Hello world");
9
- yield expect(customElementHide).not.toHaveText("Hello world");
10
- yield page.evaluate(() => {
11
- const customElementShow = document.getElementById("show");
12
- const customElementHide = document.getElementById("hide");
13
- customElementShow === null || customElementShow === void 0 ? void 0 : customElementShow.removeAttribute("show");
14
- customElementHide === null || customElementHide === void 0 ? void 0 : customElementHide.setAttribute("show", "");
15
- });
16
- yield expect(customElementShow).not.toHaveText("Hello world");
17
- yield expect(customElementHide).toHaveText("Hello world");
18
- }));
19
- test("create a when directive for a boolean: false", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
20
- yield page.goto("/when");
21
- const customElementShow = yield page.locator("#show-not");
22
- const customElementHide = yield page.locator("#hide-not");
23
- yield expect(customElementShow).toHaveText("Hello world");
24
- yield expect(customElementHide).not.toHaveText("Hello world");
25
- }));
26
- test("create a when directive value uses equals", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
27
- yield page.goto("/when");
28
- const customElementShow = yield page.locator("#equals-true");
29
- const customElementHide = yield page.locator("#equals-false");
30
- yield expect(customElementShow).toHaveText("Equals 3");
31
- yield expect(customElementHide).not.toHaveText("Equals 3");
32
- }));
33
- test("create a when directive value uses not equals", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
34
- yield page.goto("/when");
35
- const customElementShow = yield page.locator("#not-equals-true");
36
- const customElementHide = yield page.locator("#not-equals-false");
37
- yield expect(customElementShow).toHaveText("Not equals 3");
38
- yield expect(customElementHide).not.toHaveText("Not equals 3");
39
- }));
40
- test("create a when directive value uses greater than or equals", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
41
- yield page.goto("/when");
42
- const customElementShow = yield page.locator("#ge-true");
43
- const customElementHide = yield page.locator("#ge-false");
44
- yield expect(customElementShow).toHaveText("Two and Over");
45
- yield expect(customElementHide).not.toHaveText("Two and Over");
46
- }));
47
- test("create a when directive value uses greater than", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
48
- yield page.goto("/when");
49
- const customElementShow = yield page.locator("#gt-true");
50
- const customElementHide = yield page.locator("#gt-false");
51
- yield expect(customElementShow).toHaveText("Over two");
52
- yield expect(customElementHide).not.toHaveText("Over two");
53
- }));
54
- test("create a when directive value uses less than or equals", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
55
- yield page.goto("/when");
56
- const customElementShow = yield page.locator("#le-true");
57
- const customElementHide = yield page.locator("#le-false");
58
- yield expect(customElementShow).toHaveText("Two and Under");
59
- yield expect(customElementHide).not.toHaveText("Two and Under");
60
- }));
61
- test("create a when directive value uses less than", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
62
- yield page.goto("/when");
63
- const customElementShow = yield page.locator("#lt-true");
64
- const customElementHide = yield page.locator("#lt-false");
65
- yield expect(customElementShow).toHaveText("Under two");
66
- yield expect(customElementHide).not.toHaveText("Under two");
67
- }));
68
- test("create a when directive value uses or", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
69
- yield page.goto("/when");
70
- const customElementShow = yield page.locator("#or-true");
71
- const customElementHide = yield page.locator("#or-false");
72
- yield expect(customElementShow).toHaveText("This or That");
73
- yield expect(customElementHide).not.toHaveText("This or That");
74
- }));
75
- test("create a when directive value uses and", ({ page }) => __awaiter(void 0, void 0, void 0, function* () {
76
- yield page.goto("/when");
77
- const customElementShow = yield page.locator("#and-true");
78
- const customElementHide = yield page.locator("#and-false");
79
- yield expect(customElementShow).toHaveText("This and That");
80
- yield expect(customElementHide).not.toHaveText("This and That");
81
- }));
82
- }));