@microsoft/fast-element 3.0.0-rc.1 → 3.0.0-rc.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/CHANGELOG.md +51 -1
- package/README.md +50 -14
- package/dist/context/context.api.json +13 -13
- package/dist/declarative/declarative.api.json +654 -15
- package/dist/di/di.api.json +15 -15
- package/dist/dts/__test__/helpers.d.ts +6 -0
- package/dist/dts/__test__/setup-node.d.ts +0 -0
- package/dist/dts/binding/binding.d.ts +15 -5
- package/dist/dts/binding/one-time.d.ts +1 -1
- package/dist/dts/binding/one-way.d.ts +1 -1
- package/dist/dts/binding/signal.d.ts +1 -1
- package/dist/dts/binding/two-way.d.ts +1 -1
- package/dist/dts/components/attributes.d.ts +1 -1
- package/dist/dts/components/enable-hydration.d.ts +22 -2
- package/dist/dts/components/fast-definitions.d.ts +7 -4
- package/dist/dts/components/fast-element.d.ts +42 -12
- package/dist/dts/components/hydration-tracker.d.ts +47 -4
- package/dist/dts/components/hydration.d.ts +5 -0
- package/dist/dts/context.d.ts +7 -7
- package/dist/dts/declarative/debug.d.ts +2 -3
- package/dist/dts/declarative/index.d.ts +3 -2
- package/dist/dts/declarative/interfaces.d.ts +1 -2
- package/dist/dts/declarative/template.d.ts +2 -1
- package/dist/dts/declarative/utilities.d.ts +50 -4
- package/dist/dts/di/di.d.ts +6 -6
- package/dist/dts/dom-policy.d.ts +22 -4
- package/dist/dts/dom.d.ts +4 -16
- package/dist/dts/hydration/diagnostics.d.ts +93 -0
- package/dist/dts/hydration/hydration-debugger.d.ts +35 -0
- package/dist/dts/hydration/messages.d.ts +62 -0
- package/dist/dts/hydration/target-builder.d.ts +26 -1
- package/dist/dts/hydration.d.ts +7 -3
- package/dist/dts/index.d.ts +7 -3
- package/dist/dts/interfaces.d.ts +1 -0
- package/dist/dts/observation/observable.d.ts +3 -3
- package/dist/dts/platform.d.ts +20 -4
- package/dist/dts/registry.d.ts +1 -0
- package/dist/dts/templating/children.d.ts +1 -1
- package/dist/dts/templating/compiler.d.ts +1 -1
- package/dist/dts/templating/html-binding-directive.d.ts +6 -2
- package/dist/dts/templating/html-directive.d.ts +2 -1
- package/dist/dts/templating/hydration-view.d.ts +24 -3
- package/dist/dts/templating/ref.d.ts +1 -1
- package/dist/dts/templating/render.d.ts +2 -2
- package/dist/dts/templating/repeat.d.ts +1 -1
- package/dist/dts/templating/slotted.d.ts +1 -1
- package/dist/dts/templating/template.d.ts +5 -5
- package/dist/dts/templating/when.d.ts +1 -1
- package/dist/dts/testing/fakes.d.ts +4 -4
- package/dist/esm/__test__/helpers.js +22 -0
- package/dist/esm/__test__/setup-node.js +18 -0
- package/dist/esm/binding/two-way.js +1 -2
- package/dist/esm/components/attributes.js +12 -8
- package/dist/esm/components/element-controller.js +11 -6
- package/dist/esm/components/enable-hydration.js +27 -3
- package/dist/esm/components/fast-definitions.js +19 -18
- package/dist/esm/components/hydration-tracker.js +34 -5
- package/dist/esm/components/hydration.js +85 -6
- package/dist/esm/debug.js +1 -0
- package/dist/esm/declarative/attribute-map.js +2 -1
- package/dist/esm/declarative/debug.js +0 -1
- package/dist/esm/declarative/index.js +1 -0
- package/dist/esm/declarative/interfaces.js +0 -1
- package/dist/esm/declarative/observer-map-utilities.js +58 -55
- package/dist/esm/declarative/template-bridge.js +4 -14
- package/dist/esm/declarative/template.js +4 -3
- package/dist/esm/declarative/utilities.js +236 -1
- package/dist/esm/di/di.js +2 -1
- package/dist/esm/dom-policy.js +33 -4
- package/dist/esm/hydration/diagnostics.js +50 -0
- package/dist/esm/hydration/hydration-debugger.js +112 -0
- package/dist/esm/hydration/messages.js +84 -0
- package/dist/esm/hydration/target-builder.js +65 -19
- package/dist/esm/hydration.js +3 -1
- package/dist/esm/index.js +6 -2
- package/dist/esm/interfaces.js +1 -0
- package/dist/esm/metadata.js +2 -8
- package/dist/esm/observation/notifier.js +2 -4
- package/dist/esm/registry.js +1 -0
- package/dist/esm/templating/html-binding-directive.js +1 -1
- package/dist/esm/templating/hydration-view.js +20 -27
- package/dist/esm/templating/render.js +39 -18
- package/dist/esm/templating/repeat.js +51 -17
- package/dist/esm/templating/view.js +1 -1
- package/dist/esm/testing/fixture.js +2 -2
- package/dist/esm/testing/timeout.js +2 -2
- package/dist/fast-element.api.json +1329 -99
- package/dist/fast-element.d.ts +147 -66
- package/dist/fast-element.debug.js +392 -99
- package/dist/fast-element.debug.min.js +2 -2
- package/dist/fast-element.js +392 -99
- package/dist/fast-element.min.js +2 -2
- package/dist/fast-element.untrimmed.d.ts +133 -70
- package/dist/hydration/hydration.api.json +1280 -57
- package/dist/styles/styles.api.json +1 -1
- package/package.json +21 -9
- package/ARCHITECTURE_FASTELEMENT.md +0 -63
- package/ARCHITECTURE_HTML_TAGGED_TEMPLATE_LITERAL.md +0 -36
- package/ARCHITECTURE_INTRO.md +0 -10
- package/ARCHITECTURE_OVERVIEW.md +0 -52
- package/ARCHITECTURE_UPDATES.md +0 -11
- package/CHANGELOG.json +0 -2275
- package/DECLARATIVE_DESIGN.md +0 -806
- package/DECLARATIVE_HTML.md +0 -470
- package/DECLARATIVE_MIGRATION.md +0 -215
- package/DECLARATIVE_RENDERING.md +0 -530
- package/DECLARATIVE_RENDERING_LIFECYCLE.md +0 -288
- package/DECLARATIVE_SCHEMA_OBSERVER_MAP.md +0 -489
- package/DESIGN.md +0 -615
- package/MIGRATION.md +0 -387
- package/SIZES.md +0 -25
- package/api-extractor.arrays.json +0 -15
- package/api-extractor.context.json +0 -15
- package/api-extractor.declarative.json +0 -15
- package/api-extractor.di.json +0 -15
- package/api-extractor.hydration.json +0 -15
- package/api-extractor.styles.json +0 -15
- package/biome.json +0 -4
- package/docs/ACKNOWLEDGEMENTS.md +0 -12
- package/docs/api-report.api.md +0 -1299
- package/docs/arrays/api-report.api.md +0 -114
- package/docs/context/api-report.api.md +0 -69
- package/docs/declarative/api-report.api.md +0 -397
- package/docs/di/api-report.api.md +0 -315
- package/docs/fast-element-2-changes.md +0 -15
- package/docs/hydration/api-report.api.md +0 -285
- package/docs/styles/api-report.api.md +0 -135
- package/playwright.config.ts +0 -26
- package/playwright.declarative.config.ts +0 -26
- package/playwright.declarative.webui.config.ts +0 -20
- package/scripts/declarative/build-fixtures-with-webui.js +0 -135
- package/scripts/declarative/build-fixtures.js +0 -49
- package/scripts/declarative/build-fixtures.utilities.js +0 -101
- package/scripts/measure-sizes.js +0 -219
- package/scripts/run-api-extractor.js +0 -70
- package/test/declarative/fixtures/README.md +0 -72
- package/test/declarative/fixtures/WRITING_FIXTURES.md +0 -330
- package/test/declarative/fixtures/bindings/README.md +0 -12
- package/test/declarative/fixtures/bindings/attribute/entry.html +0 -13
- package/test/declarative/fixtures/bindings/attribute/fast-build.config.json +0 -6
- package/test/declarative/fixtures/bindings/attribute/index.html +0 -25
- package/test/declarative/fixtures/bindings/attribute/main.ts +0 -41
- package/test/declarative/fixtures/bindings/attribute/state.json +0 -8
- package/test/declarative/fixtures/bindings/attribute/templates.html +0 -11
- package/test/declarative/fixtures/bindings/content/entry.html +0 -12
- package/test/declarative/fixtures/bindings/content/fast-build.config.json +0 -6
- package/test/declarative/fixtures/bindings/content/index.html +0 -19
- package/test/declarative/fixtures/bindings/content/main.ts +0 -27
- package/test/declarative/fixtures/bindings/content/state.json +0 -4
- package/test/declarative/fixtures/bindings/content/templates.html +0 -6
- package/test/declarative/fixtures/bindings/dot-syntax/entry.html +0 -11
- package/test/declarative/fixtures/bindings/dot-syntax/fast-build.config.json +0 -6
- package/test/declarative/fixtures/bindings/dot-syntax/index.html +0 -47
- package/test/declarative/fixtures/bindings/dot-syntax/main.ts +0 -59
- package/test/declarative/fixtures/bindings/dot-syntax/state.json +0 -16
- package/test/declarative/fixtures/bindings/dot-syntax/templates.html +0 -17
- package/test/declarative/fixtures/bindings/event/entry.html +0 -11
- package/test/declarative/fixtures/bindings/event/fast-build.config.json +0 -6
- package/test/declarative/fixtures/bindings/event/index.html +0 -43
- package/test/declarative/fixtures/bindings/event/main.ts +0 -43
- package/test/declarative/fixtures/bindings/event/state.json +0 -3
- package/test/declarative/fixtures/bindings/event/templates.html +0 -18
- package/test/declarative/fixtures/bindings/host/entry.html +0 -40
- package/test/declarative/fixtures/bindings/host/fast-build.config.json +0 -6
- package/test/declarative/fixtures/bindings/host/index.html +0 -96
- package/test/declarative/fixtures/bindings/host/main.ts +0 -222
- package/test/declarative/fixtures/bindings/host/state.json +0 -9
- package/test/declarative/fixtures/bindings/host/templates.html +0 -55
- package/test/declarative/fixtures/directives/README.md +0 -12
- package/test/declarative/fixtures/directives/children/entry.html +0 -11
- package/test/declarative/fixtures/directives/children/fast-build.config.json +0 -6
- package/test/declarative/fixtures/directives/children/index.html +0 -15
- package/test/declarative/fixtures/directives/children/main.ts +0 -22
- package/test/declarative/fixtures/directives/children/state.json +0 -3
- package/test/declarative/fixtures/directives/children/templates.html +0 -3
- package/test/declarative/fixtures/directives/ref/entry.html +0 -11
- package/test/declarative/fixtures/directives/ref/fast-build.config.json +0 -6
- package/test/declarative/fixtures/directives/ref/index.html +0 -15
- package/test/declarative/fixtures/directives/ref/main.ts +0 -17
- package/test/declarative/fixtures/directives/ref/state.json +0 -1
- package/test/declarative/fixtures/directives/ref/templates.html +0 -3
- package/test/declarative/fixtures/directives/repeat/entry.html +0 -21
- package/test/declarative/fixtures/directives/repeat/fast-build.config.json +0 -6
- package/test/declarative/fixtures/directives/repeat/index.html +0 -133
- package/test/declarative/fixtures/directives/repeat/main.ts +0 -110
- package/test/declarative/fixtures/directives/repeat/sprites.svg +0 -8
- package/test/declarative/fixtures/directives/repeat/state.json +0 -10
- package/test/declarative/fixtures/directives/repeat/templates.html +0 -75
- package/test/declarative/fixtures/directives/slotted/entry.html +0 -17
- package/test/declarative/fixtures/directives/slotted/fast-build.config.json +0 -6
- package/test/declarative/fixtures/directives/slotted/index.html +0 -27
- package/test/declarative/fixtures/directives/slotted/main.ts +0 -29
- package/test/declarative/fixtures/directives/slotted/state.json +0 -1
- package/test/declarative/fixtures/directives/slotted/templates.html +0 -7
- package/test/declarative/fixtures/directives/when/entry.html +0 -51
- package/test/declarative/fixtures/directives/when/fast-build.config.json +0 -6
- package/test/declarative/fixtures/directives/when/index.html +0 -136
- package/test/declarative/fixtures/directives/when/main.ts +0 -172
- package/test/declarative/fixtures/directives/when/state.json +0 -12
- package/test/declarative/fixtures/directives/when/templates.html +0 -75
- package/test/declarative/fixtures/ecosystem/README.md +0 -11
- package/test/declarative/fixtures/ecosystem/declarative-no-hydration/entry.html +0 -12
- package/test/declarative/fixtures/ecosystem/declarative-no-hydration/fast-build.config.json +0 -6
- package/test/declarative/fixtures/ecosystem/declarative-no-hydration/index.html +0 -20
- package/test/declarative/fixtures/ecosystem/declarative-no-hydration/main.ts +0 -68
- package/test/declarative/fixtures/ecosystem/declarative-no-hydration/state.json +0 -4
- package/test/declarative/fixtures/ecosystem/declarative-no-hydration/templates.html +0 -7
- package/test/declarative/fixtures/ecosystem/errors/entry.html +0 -12
- package/test/declarative/fixtures/ecosystem/errors/fast-build.config.json +0 -6
- package/test/declarative/fixtures/ecosystem/errors/index.html +0 -20
- package/test/declarative/fixtures/ecosystem/errors/main.ts +0 -17
- package/test/declarative/fixtures/ecosystem/errors/state.json +0 -1
- package/test/declarative/fixtures/ecosystem/errors/templates.html +0 -7
- package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/entry.html +0 -17
- package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/fast-build.config.json +0 -6
- package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/index.html +0 -56
- package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/main.ts +0 -134
- package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/state.json +0 -12
- package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/templates.html +0 -34
- package/test/declarative/fixtures/ecosystem/performance-metrics/entry.html +0 -25
- package/test/declarative/fixtures/ecosystem/performance-metrics/fast-build.config.json +0 -6
- package/test/declarative/fixtures/ecosystem/performance-metrics/fast-card.css +0 -10
- package/test/declarative/fixtures/ecosystem/performance-metrics/index.html +0 -181
- package/test/declarative/fixtures/ecosystem/performance-metrics/main.ts +0 -58
- package/test/declarative/fixtures/ecosystem/performance-metrics/state.json +0 -6
- package/test/declarative/fixtures/ecosystem/performance-metrics/templates.html +0 -15
- package/test/declarative/fixtures/extensions/README.md +0 -15
- package/test/declarative/fixtures/extensions/attribute-map/entry.html +0 -14
- package/test/declarative/fixtures/extensions/attribute-map/fast-build.config.json +0 -6
- package/test/declarative/fixtures/extensions/attribute-map/index.html +0 -31
- package/test/declarative/fixtures/extensions/attribute-map/main.ts +0 -40
- package/test/declarative/fixtures/extensions/attribute-map/state.json +0 -4
- package/test/declarative/fixtures/extensions/attribute-map/templates.html +0 -14
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/entry.html +0 -12
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/fast-build.config.json +0 -7
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/index.html +0 -25
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/main.ts +0 -31
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/state.json +0 -5
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/templates.html +0 -11
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/entry.html +0 -13
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/fast-build.config.json +0 -7
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/index.html +0 -23
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/main.ts +0 -37
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/state.json +0 -1
- package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/templates.html +0 -9
- package/test/declarative/fixtures/extensions/observer-map/entry.html +0 -15
- package/test/declarative/fixtures/extensions/observer-map/fast-build.config.json +0 -6
- package/test/declarative/fixtures/extensions/observer-map/index.html +0 -442
- package/test/declarative/fixtures/extensions/observer-map/main.ts +0 -482
- package/test/declarative/fixtures/extensions/observer-map/state.json +0 -158
- package/test/declarative/fixtures/extensions/observer-map/templates.html +0 -172
- package/test/declarative/fixtures/extensions/observer-map-config-object/entry.html +0 -16
- package/test/declarative/fixtures/extensions/observer-map-config-object/fast-build.config.json +0 -6
- package/test/declarative/fixtures/extensions/observer-map-config-object/index.html +0 -27
- package/test/declarative/fixtures/extensions/observer-map-config-object/main.ts +0 -53
- package/test/declarative/fixtures/extensions/observer-map-config-object/state.json +0 -9
- package/test/declarative/fixtures/extensions/observer-map-config-object/templates.html +0 -12
- package/test/declarative/fixtures/extensions/observer-map-deep-merge/README.md +0 -98
- package/test/declarative/fixtures/extensions/observer-map-deep-merge/entry.html +0 -156
- package/test/declarative/fixtures/extensions/observer-map-deep-merge/fast-build.config.json +0 -6
- package/test/declarative/fixtures/extensions/observer-map-deep-merge/index.html +0 -376
- package/test/declarative/fixtures/extensions/observer-map-deep-merge/main.ts +0 -366
- package/test/declarative/fixtures/extensions/observer-map-deep-merge/state.json +0 -69
- package/test/declarative/fixtures/extensions/observer-map-deep-merge/templates.html +0 -91
- package/test/declarative/fixtures/extensions/observer-map-properties/entry.html +0 -14
- package/test/declarative/fixtures/extensions/observer-map-properties/fast-build.config.json +0 -6
- package/test/declarative/fixtures/extensions/observer-map-properties/index.html +0 -110
- package/test/declarative/fixtures/extensions/observer-map-properties/main.ts +0 -175
- package/test/declarative/fixtures/extensions/observer-map-properties/state.json +0 -29
- package/test/declarative/fixtures/extensions/observer-map-properties/templates.html +0 -55
- package/test/declarative/fixtures/scenarios/README.md +0 -7
- package/test/declarative/fixtures/scenarios/nested-elements/entry.html +0 -16
- package/test/declarative/fixtures/scenarios/nested-elements/fast-build.config.json +0 -6
- package/test/declarative/fixtures/scenarios/nested-elements/index.html +0 -126
- package/test/declarative/fixtures/scenarios/nested-elements/main.ts +0 -214
- package/test/declarative/fixtures/scenarios/nested-elements/state.json +0 -10
- package/test/declarative/fixtures/scenarios/nested-elements/templates.html +0 -54
- package/test/declarative/index.html +0 -12
- package/test/declarative/vite.config.ts +0 -55
- package/test/declarative-main.ts +0 -6
- package/test/extension-subpaths-main.ts +0 -9
- package/test/index.html +0 -11
- package/test/main.ts +0 -109
- package/test/pure-declarative-main.ts +0 -1
- package/test/vite.config.ts +0 -19
- package/tsconfig.api-extractor.json +0 -6
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Bindings
|
|
2
|
-
|
|
3
|
-
Fixtures for testing the various binding types supported by FAST Element's
|
|
4
|
-
declarative templates.
|
|
5
|
-
|
|
6
|
-
| Fixture | Description |
|
|
7
|
-
|---|---|
|
|
8
|
-
| `attribute` | Attribute binding via `@attr` and `@observable` decorators on custom elements. |
|
|
9
|
-
| `content` | Content binding with `{{text}}` for escaped HTML and `{{{html}}}` for unescaped HTML injection. |
|
|
10
|
-
| `dot-syntax` | Dot-notation path access in bindings (e.g., `{{user.name}}`, `{{user.address.city}}`). |
|
|
11
|
-
| `event` | Event binding syntax with `@click="{handleClick()}"`, DOM event access via `$e`, and context access via `$c`. |
|
|
12
|
-
| `host` | Host element bindings for applying styles and attributes to the host element. |
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en-US">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title></title>
|
|
6
|
-
</head>
|
|
7
|
-
<body>
|
|
8
|
-
<test-element type="{{type}}"></test-element>
|
|
9
|
-
<test-element-property></test-element-property>
|
|
10
|
-
<test-element-expression></test-element-expression>
|
|
11
|
-
<script type="module" src="./main.ts"></script>
|
|
12
|
-
</body>
|
|
13
|
-
</html>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en-US">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title></title>
|
|
6
|
-
</head>
|
|
7
|
-
<body>
|
|
8
|
-
<test-element type="checkbox"><template shadowrootmode="open" shadowroot="open"><input type="checkbox" disabled data-fe="1"></template></test-element>
|
|
9
|
-
<test-element-property><template shadowrootmode="open" shadowroot="open"><input type="checkbox" disabled data-fe="1"></template></test-element-property>
|
|
10
|
-
<test-element-expression><template shadowrootmode="open" shadowroot="open"><input disabled type="button" data-fe="1"></template></test-element-expression>
|
|
11
|
-
<f-template name="test-element">
|
|
12
|
-
<template> <input type="{{type}}" disabled> </template>
|
|
13
|
-
</f-template>
|
|
14
|
-
<f-template name="test-element-property">
|
|
15
|
-
<template> <input type="checkbox" ?disabled="{{!isEnabled}}"> </template>
|
|
16
|
-
</f-template>
|
|
17
|
-
<f-template name="test-element-expression">
|
|
18
|
-
<template>
|
|
19
|
-
<input ?disabled="{{activeGroup == currentGroup}}" type="button">
|
|
20
|
-
</template>
|
|
21
|
-
</f-template>
|
|
22
|
-
|
|
23
|
-
<script type="module" src="./main.ts"></script>
|
|
24
|
-
</body>
|
|
25
|
-
</html>
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { attr } from "@microsoft/fast-element/attr.js";
|
|
2
|
-
import { declarativeTemplate } from "@microsoft/fast-element/declarative.js";
|
|
3
|
-
import { FASTElement } from "@microsoft/fast-element/fast-element.js";
|
|
4
|
-
import { enableHydration } from "@microsoft/fast-element/hydration.js";
|
|
5
|
-
import { observable } from "@microsoft/fast-element/observable.js";
|
|
6
|
-
|
|
7
|
-
class TestElement extends FASTElement {
|
|
8
|
-
@attr
|
|
9
|
-
type: string = "radio";
|
|
10
|
-
}
|
|
11
|
-
TestElement.define({
|
|
12
|
-
name: "test-element",
|
|
13
|
-
template: declarativeTemplate(),
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
class TestElementProperty extends FASTElement {
|
|
17
|
-
@observable
|
|
18
|
-
isEnabled: boolean = false;
|
|
19
|
-
}
|
|
20
|
-
TestElementProperty.define({
|
|
21
|
-
name: "test-element-property",
|
|
22
|
-
template: declarativeTemplate(),
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
class TestElementExpression extends FASTElement {
|
|
26
|
-
@attr({ attribute: "active-group" })
|
|
27
|
-
activeGroup: string = "";
|
|
28
|
-
|
|
29
|
-
@attr({ attribute: "current-group" })
|
|
30
|
-
currentGroup: string = "";
|
|
31
|
-
}
|
|
32
|
-
TestElementExpression.define({
|
|
33
|
-
name: "test-element-expression",
|
|
34
|
-
template: declarativeTemplate(),
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
enableHydration({
|
|
38
|
-
hydrationComplete() {
|
|
39
|
-
(window as any).hydrationCompleted = true;
|
|
40
|
-
},
|
|
41
|
-
});
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
<f-template name="test-element">
|
|
2
|
-
<template> <input type="{{type}}" disabled> </template>
|
|
3
|
-
</f-template>
|
|
4
|
-
<f-template name="test-element-property">
|
|
5
|
-
<template> <input type="checkbox" ?disabled="{{!isEnabled}}"> </template>
|
|
6
|
-
</f-template>
|
|
7
|
-
<f-template name="test-element-expression">
|
|
8
|
-
<template>
|
|
9
|
-
<input ?disabled="{{activeGroup == currentGroup}}" type="button">
|
|
10
|
-
</template>
|
|
11
|
-
</f-template>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en-US">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title></title>
|
|
6
|
-
</head>
|
|
7
|
-
<body>
|
|
8
|
-
<test-element text="{{text}}"></test-element>
|
|
9
|
-
<test-element-unescaped html="{{html}}"></test-element-unescaped>
|
|
10
|
-
<script type="module" src="./main.ts"></script>
|
|
11
|
-
</body>
|
|
12
|
-
</html>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en-US">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title></title>
|
|
6
|
-
</head>
|
|
7
|
-
<body>
|
|
8
|
-
<test-element text="Hello world"><template shadowrootmode="open" shadowroot="open"><!--fe:b-->Hello world<!--fe:/b--></template></test-element>
|
|
9
|
-
<test-element-unescaped html="<p>Hello world</p>"><template shadowrootmode="open" shadowroot="open"><!--fe:b--><p>Hello world</p><!--fe:/b--></template></test-element-unescaped>
|
|
10
|
-
<f-template name="test-element">
|
|
11
|
-
<template>{{text}}</template>
|
|
12
|
-
</f-template>
|
|
13
|
-
<f-template name="test-element-unescaped">
|
|
14
|
-
<template>{{{html}}}</template>
|
|
15
|
-
</f-template>
|
|
16
|
-
|
|
17
|
-
<script type="module" src="./main.ts"></script>
|
|
18
|
-
</body>
|
|
19
|
-
</html>
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { attr } from "@microsoft/fast-element/attr.js";
|
|
2
|
-
import { declarativeTemplate } from "@microsoft/fast-element/declarative.js";
|
|
3
|
-
import { FASTElement } from "@microsoft/fast-element/fast-element.js";
|
|
4
|
-
import { enableHydration } from "@microsoft/fast-element/hydration.js";
|
|
5
|
-
|
|
6
|
-
class TestElement extends FASTElement {
|
|
7
|
-
@attr
|
|
8
|
-
text: string = "Hello";
|
|
9
|
-
}
|
|
10
|
-
TestElement.define({
|
|
11
|
-
name: "test-element",
|
|
12
|
-
template: declarativeTemplate(),
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
class TestElementUnescaped extends FASTElement {
|
|
16
|
-
public html = `<p>Hello world</p>`;
|
|
17
|
-
}
|
|
18
|
-
TestElementUnescaped.define({
|
|
19
|
-
name: "test-element-unescaped",
|
|
20
|
-
template: declarativeTemplate(),
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
enableHydration({
|
|
24
|
-
hydrationComplete() {
|
|
25
|
-
(window as any).hydrationCompleted = true;
|
|
26
|
-
},
|
|
27
|
-
});
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en-US">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title></title>
|
|
6
|
-
</head>
|
|
7
|
-
<body>
|
|
8
|
-
<test-element><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->bar<!--fe:/b--></span>
|
|
9
|
-
<span><!--fe:b--><!--fe:/b--></span>
|
|
10
|
-
<span><!--fe:b-->FOO<!--fe:/b--></span>
|
|
11
|
-
<button data-fe="1">Set b</button>
|
|
12
|
-
<button data-fe="1">Set a.b1</button>
|
|
13
|
-
<button data-fe="1">Set a.b2.c</button>
|
|
14
|
-
<!--fe:b-->
|
|
15
|
-
<!--fe:b--><!--fe:r-->
|
|
16
|
-
<!--fe:b-->
|
|
17
|
-
<div><!--fe:b-->Item 1<!--fe:/b--></div>
|
|
18
|
-
<!--fe:/b-->
|
|
19
|
-
<!--fe:/r--><!--fe:r-->
|
|
20
|
-
<!--fe:b-->
|
|
21
|
-
<div><!--fe:b-->Item 2<!--fe:/b--></div>
|
|
22
|
-
<!--fe:/b-->
|
|
23
|
-
<!--fe:/r--><!--fe:r-->
|
|
24
|
-
<!--fe:b--><!--fe:/b-->
|
|
25
|
-
<!--fe:/r--><!--fe:/b-->
|
|
26
|
-
<!--fe:/b--></template></test-element>
|
|
27
|
-
<f-template name="test-element">
|
|
28
|
-
<template>
|
|
29
|
-
<span>{{object.b}}</span>
|
|
30
|
-
<span>{{object.a.b1}}</span>
|
|
31
|
-
<span>{{object.a.b2.c}}</span>
|
|
32
|
-
<button @click="{handleBClick()}">Set b</button>
|
|
33
|
-
<button @click="{handleAB1Click()}">Set a.b1</button>
|
|
34
|
-
<button @click="{handleAB2CClick()}">Set a.b2.c</button>
|
|
35
|
-
<f-when value="{{object.c}}">
|
|
36
|
-
<f-repeat value="{{item in object.c}}">
|
|
37
|
-
<f-when value="{{item.name && item.status == 'active'}}">
|
|
38
|
-
<div>{{item.name}}</div>
|
|
39
|
-
</f-when>
|
|
40
|
-
</f-repeat>
|
|
41
|
-
</f-when>
|
|
42
|
-
</template>
|
|
43
|
-
</f-template>
|
|
44
|
-
|
|
45
|
-
<script type="module" src="./main.ts"></script>
|
|
46
|
-
</body>
|
|
47
|
-
</html>
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { declarativeTemplate } from "@microsoft/fast-element/declarative.js";
|
|
2
|
-
import { FASTElement } from "@microsoft/fast-element/fast-element.js";
|
|
3
|
-
import { enableHydration } from "@microsoft/fast-element/hydration.js";
|
|
4
|
-
import { observerMap } from "@microsoft/fast-element/observer-map.js";
|
|
5
|
-
|
|
6
|
-
class TestElement extends FASTElement {
|
|
7
|
-
public object: any = {
|
|
8
|
-
a: {
|
|
9
|
-
b2: {
|
|
10
|
-
c: "FOO",
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
b: "bar",
|
|
14
|
-
c: [
|
|
15
|
-
{
|
|
16
|
-
name: "Item 1",
|
|
17
|
-
status: "active",
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
name: "Item 2",
|
|
21
|
-
status: "active",
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
status: "active",
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
public handleBClick = () => {
|
|
30
|
-
this.object.b = "Hello";
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
public handleAB1Click = () => {
|
|
34
|
-
if (this.object.a) {
|
|
35
|
-
this.object.a.b1 = "World";
|
|
36
|
-
} else {
|
|
37
|
-
this.object.a = {
|
|
38
|
-
b1: "World",
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
public handleAB2CClick = () => {
|
|
44
|
-
this.object.a.b2.c = "Pluto";
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
TestElement.define(
|
|
48
|
-
{
|
|
49
|
-
name: "test-element",
|
|
50
|
-
template: declarativeTemplate(),
|
|
51
|
-
},
|
|
52
|
-
[observerMap()],
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
enableHydration({
|
|
56
|
-
hydrationComplete() {
|
|
57
|
-
(window as any).hydrationCompleted = true;
|
|
58
|
-
},
|
|
59
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
<f-template name="test-element">
|
|
2
|
-
<template>
|
|
3
|
-
<span>{{object.b}}</span>
|
|
4
|
-
<span>{{object.a.b1}}</span>
|
|
5
|
-
<span>{{object.a.b2.c}}</span>
|
|
6
|
-
<button @click="{handleBClick()}">Set b</button>
|
|
7
|
-
<button @click="{handleAB1Click()}">Set a.b1</button>
|
|
8
|
-
<button @click="{handleAB2CClick()}">Set a.b2.c</button>
|
|
9
|
-
<f-when value="{{object.c}}">
|
|
10
|
-
<f-repeat value="{{item in object.c}}">
|
|
11
|
-
<f-when value="{{item.name && item.status == 'active'}}">
|
|
12
|
-
<div>{{item.name}}</div>
|
|
13
|
-
</f-when>
|
|
14
|
-
</f-repeat>
|
|
15
|
-
</f-when>
|
|
16
|
-
</template>
|
|
17
|
-
</f-template>
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en-US">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title></title>
|
|
6
|
-
</head>
|
|
7
|
-
<body>
|
|
8
|
-
<test-element foo="bar"><template shadowrootmode="open" shadowroot="open"><button type="button" data-fe="1">No arguments</button>
|
|
9
|
-
<button type="button" data-fe="1">modify foo</button>
|
|
10
|
-
<button type="button" data-fe="1">
|
|
11
|
-
event argument ($e)
|
|
12
|
-
</button>
|
|
13
|
-
<button type="button" data-fe="1">
|
|
14
|
-
context argument ($c)
|
|
15
|
-
</button>
|
|
16
|
-
<button type="button" data-fe="1">
|
|
17
|
-
multiple arguments ($e, $c)
|
|
18
|
-
</button>
|
|
19
|
-
<button type="button" data-fe="1">
|
|
20
|
-
context event argument ($c.event)
|
|
21
|
-
</button></template></test-element>
|
|
22
|
-
<f-template name="test-element">
|
|
23
|
-
<template>
|
|
24
|
-
<button type="button" @click="{handleNoArgsClick()}">No arguments</button>
|
|
25
|
-
<button type="button" @click="{handleModifyAttributeClick()}">modify foo</button>
|
|
26
|
-
<button type="button" @click="{handleDollarEArgClick($e)}">
|
|
27
|
-
event argument ($e)
|
|
28
|
-
</button>
|
|
29
|
-
<button type="button" @click="{handleContextArgClick($c)}">
|
|
30
|
-
context argument ($c)
|
|
31
|
-
</button>
|
|
32
|
-
<button type="button" @click="{handleMultiArgClick($e, $c)}">
|
|
33
|
-
multiple arguments ($e, $c)
|
|
34
|
-
</button>
|
|
35
|
-
<button type="button" @click="{handleContextEventArgClick($c.event)}">
|
|
36
|
-
context event argument ($c.event)
|
|
37
|
-
</button>
|
|
38
|
-
</template>
|
|
39
|
-
</f-template>
|
|
40
|
-
|
|
41
|
-
<script type="module" src="./main.ts"></script>
|
|
42
|
-
</body>
|
|
43
|
-
</html>
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { attr } from "@microsoft/fast-element/attr.js";
|
|
2
|
-
import { declarativeTemplate } from "@microsoft/fast-element/declarative.js";
|
|
3
|
-
import { FASTElement } from "@microsoft/fast-element/fast-element.js";
|
|
4
|
-
import { enableHydration } from "@microsoft/fast-element/hydration.js";
|
|
5
|
-
|
|
6
|
-
class TestElement extends FASTElement {
|
|
7
|
-
@attr
|
|
8
|
-
foo: string = "";
|
|
9
|
-
|
|
10
|
-
public handleNoArgsClick = (): void => {
|
|
11
|
-
console.log("no args");
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
public handleModifyAttributeClick = (): void => {
|
|
15
|
-
this.foo = "modified-by-click";
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
public handleDollarEArgClick = (e: MouseEvent): void => {
|
|
19
|
-
console.log(e.type);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
public handleContextArgClick = (c: any): void => {
|
|
23
|
-
console.log(c.event.type);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
public handleMultiArgClick = (e: MouseEvent, c: any): void => {
|
|
27
|
-
console.log(`${e.type},${c.event.type}`);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
public handleContextEventArgClick = (e: MouseEvent): void => {
|
|
31
|
-
console.log(e.type);
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
TestElement.define({
|
|
35
|
-
name: "test-element",
|
|
36
|
-
template: declarativeTemplate(),
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
enableHydration({
|
|
40
|
-
hydrationComplete() {
|
|
41
|
-
(window as any).hydrationCompleted = true;
|
|
42
|
-
},
|
|
43
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<f-template name="test-element">
|
|
2
|
-
<template>
|
|
3
|
-
<button type="button" @click="{handleNoArgsClick()}">No arguments</button>
|
|
4
|
-
<button type="button" @click="{handleModifyAttributeClick()}">modify foo</button>
|
|
5
|
-
<button type="button" @click="{handleDollarEArgClick($e)}">
|
|
6
|
-
event argument ($e)
|
|
7
|
-
</button>
|
|
8
|
-
<button type="button" @click="{handleContextArgClick($c)}">
|
|
9
|
-
context argument ($c)
|
|
10
|
-
</button>
|
|
11
|
-
<button type="button" @click="{handleMultiArgClick($e, $c)}">
|
|
12
|
-
multiple arguments ($e, $c)
|
|
13
|
-
</button>
|
|
14
|
-
<button type="button" @click="{handleContextEventArgClick($c.event)}">
|
|
15
|
-
context event argument ($c.event)
|
|
16
|
-
</button>
|
|
17
|
-
</template>
|
|
18
|
-
</f-template>
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en-US">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title>Host Bindings Test</title>
|
|
6
|
-
<style>
|
|
7
|
-
/* Ensure custom elements display as block to prevent overlap */
|
|
8
|
-
host-event-element,
|
|
9
|
-
host-multi-element,
|
|
10
|
-
host-static-element,
|
|
11
|
-
host-events-element,
|
|
12
|
-
host-multi-content-element,
|
|
13
|
-
host-text-binding-element,
|
|
14
|
-
host-property-element,
|
|
15
|
-
host-all-types-element,
|
|
16
|
-
host-perm-attr-first,
|
|
17
|
-
host-perm-bool-first,
|
|
18
|
-
host-perm-prop-first {
|
|
19
|
-
display: block;
|
|
20
|
-
margin: 10px 0;
|
|
21
|
-
padding: 10px;
|
|
22
|
-
border: 1px solid #ccc;
|
|
23
|
-
}
|
|
24
|
-
</style>
|
|
25
|
-
</head>
|
|
26
|
-
<body>
|
|
27
|
-
<host-event-element></host-event-element>
|
|
28
|
-
<host-multi-element disabled></host-multi-element>
|
|
29
|
-
<host-static-element id="static-host"></host-static-element>
|
|
30
|
-
<host-events-element text="content text"></host-events-element>
|
|
31
|
-
<host-multi-content-element first="a" second="b"></host-multi-content-element>
|
|
32
|
-
<host-text-binding-element text="text content"></host-text-binding-element>
|
|
33
|
-
<host-property-element text="property test"></host-property-element>
|
|
34
|
-
<host-all-types-element text="all types" attr="value" disabled></host-all-types-element>
|
|
35
|
-
<host-perm-attr-first text="perm attr first" attr="value" disabled></host-perm-attr-first>
|
|
36
|
-
<host-perm-bool-first text="perm bool first" attr="value" disabled></host-perm-bool-first>
|
|
37
|
-
<host-perm-prop-first text="perm prop first" attr="value" disabled></host-perm-prop-first>
|
|
38
|
-
<script type="module" src="./main.ts"></script>
|
|
39
|
-
</body>
|
|
40
|
-
</html>
|