@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,96 +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><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->Hello<!--fe:/b--></span></template></host-event-element>
|
|
28
|
-
<host-multi-element disabled><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->World<!--fe:/b--></span></template></host-multi-element>
|
|
29
|
-
<host-static-element id="static-host"><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->first<!--fe:/b--> <!--fe:b-->second<!--fe:/b--></span></template></host-static-element>
|
|
30
|
-
<host-events-element text="content text"><template shadowrootmode="open" shadowroot="open"><!--fe:b-->content text<!--fe:/b--></template></host-events-element>
|
|
31
|
-
<host-multi-content-element first="a" second="b"><template shadowrootmode="open" shadowroot="open"><span first="a" second="b" data-fe="2"></span></template></host-multi-content-element>
|
|
32
|
-
<host-text-binding-element text="text content"><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->text content<!--fe:/b--></span></template></host-text-binding-element>
|
|
33
|
-
<host-property-element text="property test"><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->property test<!--fe:/b--></span></template></host-property-element>
|
|
34
|
-
<host-all-types-element text="all types" attr="value" disabled><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->all types<!--fe:/b--></span></template></host-all-types-element>
|
|
35
|
-
<host-perm-attr-first text="perm attr first" attr="value" disabled><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->perm attr first<!--fe:/b--></span></template></host-perm-attr-first>
|
|
36
|
-
<host-perm-bool-first text="perm bool first" attr="value" disabled><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->perm bool first<!--fe:/b--></span></template></host-perm-bool-first>
|
|
37
|
-
<host-perm-prop-first text="perm prop first" attr="value" disabled><template shadowrootmode="open" shadowroot="open"><span><!--fe:b-->perm prop first<!--fe:/b--></span></template></host-perm-prop-first>
|
|
38
|
-
<f-template name="host-event-element">
|
|
39
|
-
<template @click="{handleClick()}">
|
|
40
|
-
<span>{{greeting}}</span>
|
|
41
|
-
</template>
|
|
42
|
-
</f-template>
|
|
43
|
-
<f-template name="host-multi-element">
|
|
44
|
-
<template @click="{handleClick()}" ?disabled="{{isDisabled}}">
|
|
45
|
-
<span>{{text}}</span>
|
|
46
|
-
</template>
|
|
47
|
-
</f-template>
|
|
48
|
-
<f-template name="host-static-element">
|
|
49
|
-
<template id="static-host" @click="{handleClick()}">
|
|
50
|
-
<span>{{first}} {{second}}</span>
|
|
51
|
-
</template>
|
|
52
|
-
</f-template>
|
|
53
|
-
<f-template name="host-events-element">
|
|
54
|
-
<template @click="{handleClick()}" @mouseenter="{handleMouseEnter()}">
|
|
55
|
-
{{text}}
|
|
56
|
-
</template>
|
|
57
|
-
</f-template>
|
|
58
|
-
<f-template name="host-multi-content-element">
|
|
59
|
-
<template @click="{handleClick()}">
|
|
60
|
-
<span first="{{first}}" second="{{second}}"></span>
|
|
61
|
-
</template>
|
|
62
|
-
</f-template>
|
|
63
|
-
<f-template name="host-text-binding-element">
|
|
64
|
-
<template @click="{handleClick()}">
|
|
65
|
-
<span>{{text}}</span>
|
|
66
|
-
</template>
|
|
67
|
-
</f-template>
|
|
68
|
-
<f-template name="host-property-element">
|
|
69
|
-
<template :title="{hostTitle}">
|
|
70
|
-
<span>{{text}}</span>
|
|
71
|
-
</template>
|
|
72
|
-
</f-template>
|
|
73
|
-
<f-template name="host-all-types-element">
|
|
74
|
-
<template @click="{handleClick()}" ?disabled="{{isDisabled}}" :title="{hostTitle}" attr="{{hostAttr}}">
|
|
75
|
-
<span>{{text}}</span>
|
|
76
|
-
</template>
|
|
77
|
-
</f-template>
|
|
78
|
-
<f-template name="host-perm-attr-first">
|
|
79
|
-
<template attr="{{hostAttr}}" :title="{hostTitle}" ?disabled="{{isDisabled}}" @click="{handleClick()}">
|
|
80
|
-
<span>{{text}}</span>
|
|
81
|
-
</template>
|
|
82
|
-
</f-template>
|
|
83
|
-
<f-template name="host-perm-bool-first">
|
|
84
|
-
<template ?disabled="{{isDisabled}}" @click="{handleClick()}" attr="{{hostAttr}}" :title="{hostTitle}">
|
|
85
|
-
<span>{{text}}</span>
|
|
86
|
-
</template>
|
|
87
|
-
</f-template>
|
|
88
|
-
<f-template name="host-perm-prop-first">
|
|
89
|
-
<template :title="{hostTitle}" attr="{{hostAttr}}" @click="{handleClick()}" ?disabled="{{isDisabled}}">
|
|
90
|
-
<span>{{text}}</span>
|
|
91
|
-
</template>
|
|
92
|
-
</f-template>
|
|
93
|
-
|
|
94
|
-
<script type="module" src="./main.ts"></script>
|
|
95
|
-
</body>
|
|
96
|
-
</html>
|
|
@@ -1,222 +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
|
-
// Test 1: Element with single host event binding and content attribute binding
|
|
8
|
-
class HostEventElement extends FASTElement {
|
|
9
|
-
@attr
|
|
10
|
-
greeting: string = "Hello";
|
|
11
|
-
|
|
12
|
-
public clickCount = 0;
|
|
13
|
-
|
|
14
|
-
public handleClick = (): void => {
|
|
15
|
-
this.clickCount++;
|
|
16
|
-
console.log(`host-event clicked: ${this.clickCount}`);
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
HostEventElement.define({
|
|
20
|
-
name: "host-event-element",
|
|
21
|
-
template: declarativeTemplate(),
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
// Test 2: Element with multiple host bindings (event + boolean)
|
|
25
|
-
class HostMultiElement extends FASTElement {
|
|
26
|
-
@attr
|
|
27
|
-
text: string = "World";
|
|
28
|
-
|
|
29
|
-
@observable
|
|
30
|
-
isDisabled: boolean = true;
|
|
31
|
-
|
|
32
|
-
public clickCount = 0;
|
|
33
|
-
|
|
34
|
-
public handleClick = (): void => {
|
|
35
|
-
this.clickCount++;
|
|
36
|
-
console.log(`host-multi clicked: ${this.clickCount}`);
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
HostMultiElement.define({
|
|
40
|
-
name: "host-multi-element",
|
|
41
|
-
template: declarativeTemplate(),
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
// Test 3: Element with static attribute and multiple content bindings
|
|
45
|
-
class HostStaticElement extends FASTElement {
|
|
46
|
-
@attr
|
|
47
|
-
first: string = "first";
|
|
48
|
-
|
|
49
|
-
@attr
|
|
50
|
-
second: string = "second";
|
|
51
|
-
|
|
52
|
-
public clickCount = 0;
|
|
53
|
-
|
|
54
|
-
public handleClick = (): void => {
|
|
55
|
-
this.clickCount++;
|
|
56
|
-
console.log(`host-static clicked: ${this.clickCount}`);
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
HostStaticElement.define({
|
|
60
|
-
name: "host-static-element",
|
|
61
|
-
template: declarativeTemplate(),
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
// Test 4: Element with multiple host events
|
|
65
|
-
class HostEventsElement extends FASTElement {
|
|
66
|
-
@attr
|
|
67
|
-
text: string = "content text";
|
|
68
|
-
|
|
69
|
-
public clickCount = 0;
|
|
70
|
-
public mouseEnterCount = 0;
|
|
71
|
-
|
|
72
|
-
public handleClick = (): void => {
|
|
73
|
-
this.clickCount++;
|
|
74
|
-
console.log(`host-events clicked: ${this.clickCount}`);
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
public handleMouseEnter = (): void => {
|
|
78
|
-
this.mouseEnterCount++;
|
|
79
|
-
console.log(`host-events mouseenter: ${this.mouseEnterCount}`);
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
HostEventsElement.define({
|
|
83
|
-
name: "host-events-element",
|
|
84
|
-
template: declarativeTemplate(),
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
// Test 5: Element with host event and multiple content attribute bindings
|
|
88
|
-
// KEY TEST: Verifies content binding indexes are 0,1 not offset by host bindings
|
|
89
|
-
class HostMultiContentElement extends FASTElement {
|
|
90
|
-
@attr
|
|
91
|
-
first: string = "a";
|
|
92
|
-
|
|
93
|
-
@attr
|
|
94
|
-
second: string = "b";
|
|
95
|
-
|
|
96
|
-
public clickCount = 0;
|
|
97
|
-
|
|
98
|
-
public handleClick = (): void => {
|
|
99
|
-
this.clickCount++;
|
|
100
|
-
console.log(`host-multi-content clicked: ${this.clickCount}`);
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
HostMultiContentElement.define({
|
|
104
|
-
name: "host-multi-content-element",
|
|
105
|
-
template: declarativeTemplate(),
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
// Test 6: Element with host event and content text binding
|
|
109
|
-
class HostTextBindingElement extends FASTElement {
|
|
110
|
-
@attr
|
|
111
|
-
text: string = "text content";
|
|
112
|
-
|
|
113
|
-
public clickCount = 0;
|
|
114
|
-
|
|
115
|
-
public handleClick = (): void => {
|
|
116
|
-
this.clickCount++;
|
|
117
|
-
console.log(`host-text-binding clicked: ${this.clickCount}`);
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
HostTextBindingElement.define({
|
|
121
|
-
name: "host-text-binding-element",
|
|
122
|
-
template: declarativeTemplate(),
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
// Test 7: Element with host property binding
|
|
126
|
-
class HostPropertyElement extends FASTElement {
|
|
127
|
-
@attr
|
|
128
|
-
text: string = "property test";
|
|
129
|
-
|
|
130
|
-
@observable
|
|
131
|
-
hostTitle: string = "tooltip text";
|
|
132
|
-
|
|
133
|
-
public clickCount = 0;
|
|
134
|
-
}
|
|
135
|
-
HostPropertyElement.define({
|
|
136
|
-
name: "host-property-element",
|
|
137
|
-
template: declarativeTemplate(),
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
// Test 8: Element with all host binding types (event + boolean + property + attribute)
|
|
141
|
-
class HostAllTypesElement extends FASTElement {
|
|
142
|
-
@attr
|
|
143
|
-
text: string = "all types";
|
|
144
|
-
|
|
145
|
-
@observable
|
|
146
|
-
isDisabled: boolean = true;
|
|
147
|
-
|
|
148
|
-
@observable
|
|
149
|
-
hostTitle: string = "all types tooltip";
|
|
150
|
-
|
|
151
|
-
@attr({ attribute: "attr" })
|
|
152
|
-
hostAttr: string = "value";
|
|
153
|
-
|
|
154
|
-
public clickCount = 0;
|
|
155
|
-
|
|
156
|
-
public handleClick = (): void => {
|
|
157
|
-
this.clickCount++;
|
|
158
|
-
console.log(`host-all-types clicked: ${this.clickCount}`);
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
HostAllTypesElement.define({
|
|
162
|
-
name: "host-all-types-element",
|
|
163
|
-
template: declarativeTemplate(),
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
// Base class for permutation tests - all have same properties/behavior
|
|
167
|
-
class HostPermutationBase extends FASTElement {
|
|
168
|
-
@attr
|
|
169
|
-
text: string = "";
|
|
170
|
-
|
|
171
|
-
@observable
|
|
172
|
-
isDisabled: boolean = true;
|
|
173
|
-
|
|
174
|
-
@observable
|
|
175
|
-
hostTitle: string = "permutation tooltip";
|
|
176
|
-
|
|
177
|
-
@attr({ attribute: "attr" })
|
|
178
|
-
hostAttr: string = "value";
|
|
179
|
-
|
|
180
|
-
public clickCount = 0;
|
|
181
|
-
|
|
182
|
-
public handleClick = (): void => {
|
|
183
|
-
this.clickCount++;
|
|
184
|
-
console.log(`${this.tagName.toLowerCase()} clicked: ${this.clickCount}`);
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
// Test 9: Permutation - attribute first
|
|
189
|
-
class HostPermAttrFirst extends HostPermutationBase {
|
|
190
|
-
@attr
|
|
191
|
-
override text: string = "perm attr first";
|
|
192
|
-
}
|
|
193
|
-
HostPermAttrFirst.define({
|
|
194
|
-
name: "host-perm-attr-first",
|
|
195
|
-
template: declarativeTemplate(),
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
// Test 10: Permutation - boolean first
|
|
199
|
-
class HostPermBoolFirst extends HostPermutationBase {
|
|
200
|
-
@attr
|
|
201
|
-
override text: string = "perm bool first";
|
|
202
|
-
}
|
|
203
|
-
HostPermBoolFirst.define({
|
|
204
|
-
name: "host-perm-bool-first",
|
|
205
|
-
template: declarativeTemplate(),
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
// Test 11: Permutation - property first
|
|
209
|
-
class HostPermPropFirst extends HostPermutationBase {
|
|
210
|
-
@attr
|
|
211
|
-
override text: string = "perm prop first";
|
|
212
|
-
}
|
|
213
|
-
HostPermPropFirst.define({
|
|
214
|
-
name: "host-perm-prop-first",
|
|
215
|
-
template: declarativeTemplate(),
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
enableHydration({
|
|
219
|
-
hydrationComplete() {
|
|
220
|
-
(window as any).hydrationCompleted = true;
|
|
221
|
-
},
|
|
222
|
-
});
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
<f-template name="host-event-element">
|
|
2
|
-
<template @click="{handleClick()}">
|
|
3
|
-
<span>{{greeting}}</span>
|
|
4
|
-
</template>
|
|
5
|
-
</f-template>
|
|
6
|
-
<f-template name="host-multi-element">
|
|
7
|
-
<template @click="{handleClick()}" ?disabled="{{isDisabled}}">
|
|
8
|
-
<span>{{text}}</span>
|
|
9
|
-
</template>
|
|
10
|
-
</f-template>
|
|
11
|
-
<f-template name="host-static-element">
|
|
12
|
-
<template id="static-host" @click="{handleClick()}">
|
|
13
|
-
<span>{{first}} {{second}}</span>
|
|
14
|
-
</template>
|
|
15
|
-
</f-template>
|
|
16
|
-
<f-template name="host-events-element">
|
|
17
|
-
<template @click="{handleClick()}" @mouseenter="{handleMouseEnter()}">
|
|
18
|
-
{{text}}
|
|
19
|
-
</template>
|
|
20
|
-
</f-template>
|
|
21
|
-
<f-template name="host-multi-content-element">
|
|
22
|
-
<template @click="{handleClick()}">
|
|
23
|
-
<span first="{{first}}" second="{{second}}"></span>
|
|
24
|
-
</template>
|
|
25
|
-
</f-template>
|
|
26
|
-
<f-template name="host-text-binding-element">
|
|
27
|
-
<template @click="{handleClick()}">
|
|
28
|
-
<span>{{text}}</span>
|
|
29
|
-
</template>
|
|
30
|
-
</f-template>
|
|
31
|
-
<f-template name="host-property-element">
|
|
32
|
-
<template :title="{hostTitle}">
|
|
33
|
-
<span>{{text}}</span>
|
|
34
|
-
</template>
|
|
35
|
-
</f-template>
|
|
36
|
-
<f-template name="host-all-types-element">
|
|
37
|
-
<template @click="{handleClick()}" ?disabled="{{isDisabled}}" :title="{hostTitle}" attr="{{hostAttr}}">
|
|
38
|
-
<span>{{text}}</span>
|
|
39
|
-
</template>
|
|
40
|
-
</f-template>
|
|
41
|
-
<f-template name="host-perm-attr-first">
|
|
42
|
-
<template attr="{{hostAttr}}" :title="{hostTitle}" ?disabled="{{isDisabled}}" @click="{handleClick()}">
|
|
43
|
-
<span>{{text}}</span>
|
|
44
|
-
</template>
|
|
45
|
-
</f-template>
|
|
46
|
-
<f-template name="host-perm-bool-first">
|
|
47
|
-
<template ?disabled="{{isDisabled}}" @click="{handleClick()}" attr="{{hostAttr}}" :title="{hostTitle}">
|
|
48
|
-
<span>{{text}}</span>
|
|
49
|
-
</template>
|
|
50
|
-
</f-template>
|
|
51
|
-
<f-template name="host-perm-prop-first">
|
|
52
|
-
<template :title="{hostTitle}" attr="{{hostAttr}}" @click="{handleClick()}" ?disabled="{{isDisabled}}">
|
|
53
|
-
<span>{{text}}</span>
|
|
54
|
-
</template>
|
|
55
|
-
</f-template>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Directives
|
|
2
|
-
|
|
3
|
-
Fixtures for testing attribute and element directives available in FAST
|
|
4
|
-
Element's declarative templates.
|
|
5
|
-
|
|
6
|
-
| Fixture | Description |
|
|
7
|
-
|---|---|
|
|
8
|
-
| `children` | The `f-children` directive for injecting child nodes into templates. |
|
|
9
|
-
| `ref` | The `f-ref` directive for obtaining direct references to DOM elements. |
|
|
10
|
-
| `repeat` | The `f-repeat` directive for iterating over arrays with binding context access. |
|
|
11
|
-
| `slotted` | The `f-slotted` directive for filtering slotted content. |
|
|
12
|
-
| `when` | The `f-when` conditional directive with boolean and comparison operators. |
|
|
@@ -1,15 +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"><ul data-fe="1"><!--fe:b--><!--fe:r--><li><!--fe:b-->Foo<!--fe:/b--></li><!--fe:/r--><!--fe:r--><li><!--fe:b-->Bar<!--fe:/b--></li><!--fe:/r--><!--fe:/b--></ul></template></test-element>
|
|
9
|
-
<f-template name="test-element">
|
|
10
|
-
<template><ul f-children="{listItems}"><f-repeat value="{{item in list}}"><li>{{item}}</li></f-repeat></ul></template>
|
|
11
|
-
</f-template>
|
|
12
|
-
|
|
13
|
-
<script type="module" src="./main.ts"></script>
|
|
14
|
-
</body>
|
|
15
|
-
</html>
|
|
@@ -1,22 +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 { observable } from "@microsoft/fast-element/observable.js";
|
|
5
|
-
|
|
6
|
-
class TestElement extends FASTElement {
|
|
7
|
-
@observable
|
|
8
|
-
listItems: Node[] = [];
|
|
9
|
-
|
|
10
|
-
@observable
|
|
11
|
-
list: Array<string> = ["Foo", "Bar"];
|
|
12
|
-
}
|
|
13
|
-
TestElement.define({
|
|
14
|
-
name: "test-element",
|
|
15
|
-
template: declarativeTemplate(),
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
enableHydration({
|
|
19
|
-
hydrationComplete() {
|
|
20
|
-
(window as any).hydrationCompleted = true;
|
|
21
|
-
},
|
|
22
|
-
});
|
|
@@ -1,15 +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"><video data-fe="1"></video></template></test-element>
|
|
9
|
-
<f-template name="test-element">
|
|
10
|
-
<template><video f-ref="{video}"></video></template>
|
|
11
|
-
</f-template>
|
|
12
|
-
|
|
13
|
-
<script type="module" src="./main.ts"></script>
|
|
14
|
-
</body>
|
|
15
|
-
</html>
|
|
@@ -1,17 +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
|
-
|
|
5
|
-
class TestElement extends FASTElement {
|
|
6
|
-
public video: HTMLVideoElement | null = null;
|
|
7
|
-
}
|
|
8
|
-
TestElement.define({
|
|
9
|
-
name: "test-element",
|
|
10
|
-
template: declarativeTemplate(),
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
enableHydration({
|
|
14
|
-
hydrationComplete() {
|
|
15
|
-
(window as any).hydrationCompleted = true;
|
|
16
|
-
},
|
|
17
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{}
|
|
@@ -1,21 +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 item_parent="{{item_parent}}"></test-element>
|
|
9
|
-
<test-element-with-observer-map
|
|
10
|
-
item_parent="{{item_parent}}"
|
|
11
|
-
></test-element-with-observer-map>
|
|
12
|
-
<test-element-inner-when></test-element-inner-when>
|
|
13
|
-
<test-element-interval-updates></test-element-interval-updates>
|
|
14
|
-
<test-element-no-item-repeat-binding
|
|
15
|
-
list="{{emptyList}}"
|
|
16
|
-
></test-element-no-item-repeat-binding>
|
|
17
|
-
<test-element-empty-array :list="{{emptyList}}"></test-element-empty-array>
|
|
18
|
-
<test-element-event :list="{{eventList}}"></test-element-event>
|
|
19
|
-
<script type="module" src="./main.ts"></script>
|
|
20
|
-
</body>
|
|
21
|
-
</html>
|