@microsoft/fast-element 2.0.0-beta.21 → 2.0.0-beta.23
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 +54 -0
- package/CHANGELOG.md +21 -1
- package/dist/dts/binding/binding.d.ts +49 -0
- package/dist/dts/binding/normalize.d.ts +9 -0
- package/dist/dts/binding/one-time.d.ts +11 -0
- package/dist/dts/binding/one-way.d.ts +20 -0
- package/dist/dts/{templating/binding-signal.d.ts → binding/signal.d.ts} +16 -3
- package/dist/dts/{templating/binding-two-way.d.ts → binding/two-way.d.ts} +6 -4
- package/dist/dts/components/element-controller.d.ts +20 -5
- package/dist/dts/context.d.ts +21 -8
- package/dist/dts/index.d.ts +7 -2
- package/dist/dts/interfaces.d.ts +9 -4
- package/dist/dts/metadata.d.ts +1 -0
- package/dist/dts/platform.d.ts +9 -1
- package/dist/dts/styles/css-binding-directive.d.ts +60 -0
- package/dist/dts/styles/css.d.ts +9 -2
- package/dist/dts/styles/host.d.ts +2 -5
- package/dist/dts/templating/{binding.d.ts → html-binding-directive.d.ts} +3 -34
- package/dist/dts/templating/html-directive.d.ts +3 -35
- package/dist/dts/templating/render.d.ts +19 -5
- package/dist/dts/templating/repeat.d.ts +3 -2
- package/dist/dts/templating/template.d.ts +2 -6
- package/dist/dts/templating/view.d.ts +16 -6
- package/dist/dts/testing/fakes.d.ts +2 -1
- package/dist/esm/binding/binding.js +18 -0
- package/dist/esm/binding/normalize.js +17 -0
- package/dist/esm/binding/one-time.js +21 -0
- package/dist/esm/binding/one-way.js +30 -0
- package/dist/esm/{templating/binding-signal.js → binding/signal.js} +20 -10
- package/dist/esm/{templating/binding-two-way.js → binding/two-way.js} +14 -15
- package/dist/esm/components/element-controller.js +33 -8
- package/dist/esm/context.js +22 -1
- package/dist/esm/index.js +9 -2
- package/dist/esm/interfaces.js +3 -3
- package/dist/esm/metadata.js +3 -1
- package/dist/esm/observation/observable.js +3 -6
- package/dist/esm/platform.js +9 -0
- package/dist/esm/styles/css-binding-directive.js +76 -0
- package/dist/esm/styles/css.js +14 -2
- package/dist/esm/templating/compiler.js +2 -1
- package/dist/esm/templating/{binding.js → html-binding-directive.js} +3 -70
- package/dist/esm/templating/html-directive.js +2 -25
- package/dist/esm/templating/render.js +25 -12
- package/dist/esm/templating/repeat.js +3 -3
- package/dist/esm/templating/template.js +9 -10
- package/dist/esm/templating/view.js +2 -6
- package/dist/esm/testing/fakes.js +1 -1
- package/dist/fast-element.api.json +1129 -222
- package/dist/fast-element.d.ts +125 -33
- package/dist/fast-element.debug.js +217 -117
- package/dist/fast-element.debug.min.js +1 -1
- package/dist/fast-element.js +217 -117
- package/dist/fast-element.min.js +1 -1
- package/dist/fast-element.untrimmed.d.ts +132 -72
- package/docs/api-report.md +52 -48
- package/package.json +5 -5
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,60 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/fast-element",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"date": "Tue, 28 Mar 2023 22:14:10 GMT",
|
|
6
|
+
"tag": "@microsoft/fast-element_v2.0.0-beta.23",
|
|
7
|
+
"version": "2.0.0-beta.23",
|
|
8
|
+
"comments": {
|
|
9
|
+
"prerelease": [
|
|
10
|
+
{
|
|
11
|
+
"author": "rob@bluespire.com",
|
|
12
|
+
"package": "@microsoft/fast-element",
|
|
13
|
+
"commit": "1d9c23ecd77a4079126b1156567b906efff66350",
|
|
14
|
+
"comment": "docs: add missing API docs"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "rob@bluespire.com",
|
|
18
|
+
"package": "@microsoft/fast-element",
|
|
19
|
+
"commit": "032285c2bf0311f9f44cbc875b40696fc8f62857",
|
|
20
|
+
"comment": "fix: correct types for a break in TypeScript 5 legacy decorators"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"date": "Sat, 11 Mar 2023 00:09:48 GMT",
|
|
27
|
+
"tag": "@microsoft/fast-element_v2.0.0-beta.22",
|
|
28
|
+
"version": "2.0.0-beta.22",
|
|
29
|
+
"comments": {
|
|
30
|
+
"prerelease": [
|
|
31
|
+
{
|
|
32
|
+
"author": "rob@bluespire.com",
|
|
33
|
+
"package": "@microsoft/fast-element",
|
|
34
|
+
"commit": "1c81922fbc9a7596330d53251975fb3f47357361",
|
|
35
|
+
"comment": "feat: add Context.for"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"author": "rob@bluespire.com",
|
|
39
|
+
"package": "@microsoft/fast-element",
|
|
40
|
+
"commit": "70eb15bc13d9f4d849bc5b1fe4d591a23e57c935",
|
|
41
|
+
"comment": "feat: enable data binding in CSS"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"author": "32497422+KingOfTac@users.noreply.github.com",
|
|
45
|
+
"package": "@microsoft/fast-element",
|
|
46
|
+
"commit": "d0ef0d6b1540ed90730187b45bdaf47aa9dcb183",
|
|
47
|
+
"comment": "add directives support for createElementTemplate"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"author": "rob@bluespire.com",
|
|
51
|
+
"package": "@microsoft/fast-element",
|
|
52
|
+
"commit": "24ec7cb05e955c5b916f611e96c47da665556604",
|
|
53
|
+
"comment": "fix: clean up toJSON noop on core fast-element types"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
},
|
|
4
58
|
{
|
|
5
59
|
"date": "Tue, 14 Feb 2023 04:02:35 GMT",
|
|
6
60
|
"tag": "@microsoft/fast-element_v2.0.0-beta.21",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
# Change Log - @microsoft/fast-element
|
|
2
2
|
|
|
3
|
-
This log was last generated on Tue,
|
|
3
|
+
This log was last generated on Tue, 28 Mar 2023 22:14:10 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 2.0.0-beta.23
|
|
8
|
+
|
|
9
|
+
Tue, 28 Mar 2023 22:14:10 GMT
|
|
10
|
+
|
|
11
|
+
### Changes
|
|
12
|
+
|
|
13
|
+
- docs: add missing API docs (rob@bluespire.com)
|
|
14
|
+
- fix: correct types for a break in TypeScript 5 legacy decorators (rob@bluespire.com)
|
|
15
|
+
|
|
16
|
+
## 2.0.0-beta.22
|
|
17
|
+
|
|
18
|
+
Sat, 11 Mar 2023 00:09:48 GMT
|
|
19
|
+
|
|
20
|
+
### Changes
|
|
21
|
+
|
|
22
|
+
- feat: add Context.for (rob@bluespire.com)
|
|
23
|
+
- feat: enable data binding in CSS (rob@bluespire.com)
|
|
24
|
+
- add directives support for createElementTemplate (32497422+KingOfTac@users.noreply.github.com)
|
|
25
|
+
- fix: clean up toJSON noop on core fast-element types (rob@bluespire.com)
|
|
26
|
+
|
|
7
27
|
## 2.0.0-beta.21
|
|
8
28
|
|
|
9
29
|
Tue, 14 Feb 2023 04:02:35 GMT
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { DOMAspect, DOMPolicy } from "../dom.js";
|
|
2
|
+
import type { Subscriber } from "../observation/notifier.js";
|
|
3
|
+
import type { Expression, ExpressionObserver } from "../observation/observable.js";
|
|
4
|
+
/**
|
|
5
|
+
* The directive from which a binding originates.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export interface BindingDirective {
|
|
10
|
+
/**
|
|
11
|
+
* The binding.
|
|
12
|
+
*/
|
|
13
|
+
readonly dataBinding: Binding;
|
|
14
|
+
/**
|
|
15
|
+
* The evaluated target aspect.
|
|
16
|
+
*/
|
|
17
|
+
readonly targetAspect?: string;
|
|
18
|
+
/**
|
|
19
|
+
* The type of aspect to target.
|
|
20
|
+
*/
|
|
21
|
+
readonly aspectType?: DOMAspect;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Captures a binding expression along with related information and capabilities.
|
|
25
|
+
*
|
|
26
|
+
* @public
|
|
27
|
+
*/
|
|
28
|
+
export declare abstract class Binding<TSource = any, TReturn = any, TParent = any> {
|
|
29
|
+
evaluate: Expression<TSource, TReturn, TParent>;
|
|
30
|
+
policy?: DOMPolicy | undefined;
|
|
31
|
+
isVolatile: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Options associated with the binding.
|
|
34
|
+
*/
|
|
35
|
+
options?: any;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a binding.
|
|
38
|
+
* @param evaluate - Evaluates the binding.
|
|
39
|
+
* @param policy - The security policy to associate with this binding.
|
|
40
|
+
* @param isVolatile - Indicates whether the binding is volatile.
|
|
41
|
+
*/
|
|
42
|
+
constructor(evaluate: Expression<TSource, TReturn, TParent>, policy?: DOMPolicy | undefined, isVolatile?: boolean);
|
|
43
|
+
/**
|
|
44
|
+
* Creates an observer capable of notifying a subscriber when the output of a binding changes.
|
|
45
|
+
* @param subscriber - The subscriber to changes in the binding.
|
|
46
|
+
* @param directive - The Binding directive to create the observer for.
|
|
47
|
+
*/
|
|
48
|
+
abstract createObserver(subscriber: Subscriber, directive: BindingDirective): ExpressionObserver<TSource, TReturn, TParent>;
|
|
49
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Expression } from "../observation/observable.js";
|
|
2
|
+
import { Binding } from "./binding.js";
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes the input value into a binding.
|
|
5
|
+
* @param value - The value to create the default binding for.
|
|
6
|
+
* @returns A binding configuration for the provided value.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare function normalizeBinding<TSource = any, TReturn = any, TParent = any>(value: Expression<TSource, TReturn, TParent> | Binding<TSource, TReturn, TParent> | {}): Binding<TSource, TReturn, TParent>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DOMPolicy } from "../dom.js";
|
|
2
|
+
import type { Expression } from "../observation/observable.js";
|
|
3
|
+
import { Binding } from "./binding.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a one time binding
|
|
6
|
+
* @param expression - The binding to refresh when signaled.
|
|
7
|
+
* @param policy - The security policy to associate with th binding.
|
|
8
|
+
* @returns A binding configuration.
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export declare function oneTime<T = any>(expression: Expression<T>, policy?: DOMPolicy): Binding<T>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DOMPolicy } from "../dom.js";
|
|
2
|
+
import { Expression } from "../observation/observable.js";
|
|
3
|
+
import { Binding } from "./binding.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates an standard binding.
|
|
6
|
+
* @param expression - The binding to refresh when changed.
|
|
7
|
+
* @param policy - The security policy to associate with th binding.
|
|
8
|
+
* @param isVolatile - Indicates whether the binding is volatile or not.
|
|
9
|
+
* @returns A binding configuration.
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export declare function oneWay<T = any>(expression: Expression<T>, policy?: DOMPolicy, isVolatile?: boolean): Binding<T>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates an event listener binding.
|
|
15
|
+
* @param expression - The binding to invoke when the event is raised.
|
|
16
|
+
* @param options - Event listener options.
|
|
17
|
+
* @returns A binding configuration.
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export declare function listener<T = any>(expression: Expression<T>, options?: AddEventListenerOptions): Binding<T>;
|
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
import type { Expression } from "../observation/observable.js";
|
|
2
2
|
import type { Subscriber } from "../observation/notifier.js";
|
|
3
3
|
import type { DOMPolicy } from "../dom.js";
|
|
4
|
-
import { Binding } from "./
|
|
4
|
+
import { Binding } from "./binding.js";
|
|
5
|
+
/**
|
|
6
|
+
* The gateway to signal APIs.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
5
9
|
export declare const Signal: Readonly<{
|
|
10
|
+
/**
|
|
11
|
+
* Subscribes to a signal.
|
|
12
|
+
* @param signal The signal to subscribe to.
|
|
13
|
+
* @param subscriber The subscriber.
|
|
14
|
+
*/
|
|
6
15
|
subscribe(signal: string, subscriber: Subscriber): void;
|
|
16
|
+
/**
|
|
17
|
+
* Unsubscribes from the signal.
|
|
18
|
+
* @param signal The signal to unsubscribe from.
|
|
19
|
+
* @param subscriber The subscriber.
|
|
20
|
+
*/
|
|
7
21
|
unsubscribe(signal: string, subscriber: Subscriber): void;
|
|
8
22
|
/**
|
|
9
|
-
* Sends the specified signal to
|
|
23
|
+
* Sends the specified signal to subscribers.
|
|
10
24
|
* @param signal - The signal to send.
|
|
11
|
-
* @public
|
|
12
25
|
*/
|
|
13
26
|
send(signal: string): void;
|
|
14
27
|
}>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { DOMPolicy } from "../dom.js";
|
|
2
2
|
import { Expression } from "../observation/observable.js";
|
|
3
|
-
import
|
|
4
|
-
import { Binding } from "./html-directive.js";
|
|
3
|
+
import { Binding, BindingDirective } from "./binding.js";
|
|
5
4
|
/**
|
|
6
5
|
* The twoWay binding options.
|
|
7
6
|
* @public
|
|
@@ -17,11 +16,14 @@ export declare type TwoWayBindingOptions = {
|
|
|
17
16
|
export interface TwoWaySettings {
|
|
18
17
|
/**
|
|
19
18
|
* Determines which event to listen to, to detect changes in the view.
|
|
20
|
-
* @param
|
|
19
|
+
* @param bindingSource - The directive to determine the change event for.
|
|
21
20
|
* @param target - The target element to determine the change event for.
|
|
22
21
|
*/
|
|
23
|
-
determineChangeEvent(
|
|
22
|
+
determineChangeEvent(bindingSource: BindingDirective, target: HTMLElement): string;
|
|
24
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Enables configuring two-way binding settings.
|
|
26
|
+
*/
|
|
25
27
|
export declare const TwoWaySettings: Readonly<{
|
|
26
28
|
/**
|
|
27
29
|
* Configures two-way binding.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PropertyChangeNotifier } from "../observation/notifier.js";
|
|
2
|
+
import { ExecutionContext, ExpressionController, SourceLifetime } from "../observation/observable.js";
|
|
2
3
|
import { ElementStyles } from "../styles/element-styles.js";
|
|
3
4
|
import type { HostBehavior, HostController } from "../styles/host.js";
|
|
4
5
|
import type { StyleStrategy, StyleTarget } from "../styles/style-strategy.js";
|
|
@@ -59,6 +60,18 @@ export declare class ElementController<TElement extends HTMLElement = HTMLElemen
|
|
|
59
60
|
* connected to the document.
|
|
60
61
|
*/
|
|
61
62
|
get isConnected(): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* The context the expression is evaluated against.
|
|
65
|
+
*/
|
|
66
|
+
get context(): ExecutionContext;
|
|
67
|
+
/**
|
|
68
|
+
* Indicates whether the controller is bound.
|
|
69
|
+
*/
|
|
70
|
+
get isBound(): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Indicates how the source's lifetime relates to the controller's lifetime.
|
|
73
|
+
*/
|
|
74
|
+
get sourceLifetime(): SourceLifetime | undefined;
|
|
62
75
|
/**
|
|
63
76
|
* Gets/sets the template used to render the component.
|
|
64
77
|
* @remarks
|
|
@@ -80,6 +93,13 @@ export declare class ElementController<TElement extends HTMLElement = HTMLElemen
|
|
|
80
93
|
* @internal
|
|
81
94
|
*/
|
|
82
95
|
constructor(element: TElement, definition: FASTElementDefinition);
|
|
96
|
+
/**
|
|
97
|
+
* Registers an unbind handler with the controller.
|
|
98
|
+
* @param behavior - An object to call when the controller unbinds.
|
|
99
|
+
*/
|
|
100
|
+
onUnbind(behavior: {
|
|
101
|
+
unbind(controller: ExpressionController<TElement>): any;
|
|
102
|
+
}): void;
|
|
83
103
|
/**
|
|
84
104
|
* Adds the behavior to the component.
|
|
85
105
|
* @param behavior - The behavior to add.
|
|
@@ -125,11 +145,6 @@ export declare class ElementController<TElement extends HTMLElement = HTMLElemen
|
|
|
125
145
|
* Only emits events if connected.
|
|
126
146
|
*/
|
|
127
147
|
emit(type: string, detail?: any, options?: Omit<CustomEventInit, "detail">): void | boolean;
|
|
128
|
-
/**
|
|
129
|
-
* Opts out of JSON stringification.
|
|
130
|
-
* @internal
|
|
131
|
-
*/
|
|
132
|
-
toJSON: () => undefined;
|
|
133
148
|
private renderTemplate;
|
|
134
149
|
/**
|
|
135
150
|
* Locates or creates a controller for the specified element.
|
package/dist/dts/context.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Constructable } from "./interfaces.js";
|
|
1
|
+
import { Constructable, ParameterDecorator } from "./interfaces.js";
|
|
2
2
|
/**
|
|
3
3
|
* A Context object defines an optional initial value for a Context, as well as a name identifier for debugging purposes.
|
|
4
4
|
* @public
|
|
@@ -42,13 +42,20 @@ export declare const Context: Readonly<{
|
|
|
42
42
|
* The event type used for W3C Context Protocol requests.
|
|
43
43
|
*/
|
|
44
44
|
eventType: "context-request";
|
|
45
|
+
/**
|
|
46
|
+
* Returns a FASTContext object from the global context registry matching the given name if found.
|
|
47
|
+
* Otherwise, returns a new FASTContext with this name.
|
|
48
|
+
* @param name - The name of the FASTContext to get or create.
|
|
49
|
+
* @returns A FASTContext object.
|
|
50
|
+
*/
|
|
51
|
+
for<T = unknown>(name: string): FASTContext<T>;
|
|
45
52
|
/**
|
|
46
53
|
* Creates a W3C Community Protocol-based Context object to use in requesting/providing
|
|
47
54
|
* context through the DOM.
|
|
48
55
|
* @param name - The name to use for the connext. Useful in debugging.
|
|
49
56
|
* @param initialValue - An optional initial value to use if a context handler isn't found.
|
|
50
57
|
*/
|
|
51
|
-
create<
|
|
58
|
+
create<T_1 = unknown>(name: string, initialValue?: T_1 | undefined): FASTContext<T_1>;
|
|
52
59
|
/**
|
|
53
60
|
* Sets the strategy used by all FAST-specific context requests made through the
|
|
54
61
|
* Context.request, Context.get, Context.defineProperty, and ContextDecorator APIs.
|
|
@@ -65,7 +72,7 @@ export declare const Context: Readonly<{
|
|
|
65
72
|
* Uses the default request strategy to locate the context. If no context is found
|
|
66
73
|
* then the initial value of the context is returned.
|
|
67
74
|
*/
|
|
68
|
-
get<
|
|
75
|
+
get<T_2 extends UnknownContext>(target: EventTarget, context: T_2): ContextType<T_2>;
|
|
69
76
|
/**
|
|
70
77
|
* Requests the context value for the target node.
|
|
71
78
|
* @param target - The target to request the context for.
|
|
@@ -76,7 +83,7 @@ export declare const Context: Readonly<{
|
|
|
76
83
|
* @remarks
|
|
77
84
|
* Uses the default request strategy to locate the context.
|
|
78
85
|
*/
|
|
79
|
-
request<
|
|
86
|
+
request<T_3 extends UnknownContext>(target: EventTarget, context: T_3, callback: ContextCallback<ContextType<T_3>>, multiple?: boolean): void;
|
|
80
87
|
/**
|
|
81
88
|
*
|
|
82
89
|
* @param target - The target to dispatch the context event on.
|
|
@@ -88,8 +95,14 @@ export declare const Context: Readonly<{
|
|
|
88
95
|
* This API does NOT use the default request strategy. It always dispatches
|
|
89
96
|
* an event through the DOM.
|
|
90
97
|
*/
|
|
91
|
-
dispatch<
|
|
92
|
-
|
|
98
|
+
dispatch<T_4 extends UnknownContext>(target: EventTarget, context: T_4, callback: ContextCallback<ContextType<T_4>>, multiple?: boolean): void;
|
|
99
|
+
/**
|
|
100
|
+
* Enables an event target to provide a context value.
|
|
101
|
+
* @param target The target to provide the context value for.
|
|
102
|
+
* @param context The context to provide the value for.
|
|
103
|
+
* @param value The value to provide for the context.
|
|
104
|
+
*/
|
|
105
|
+
provide<T_5 extends UnknownContext>(target: EventTarget, context: T_5, value: ContextType<T_5>): void;
|
|
93
106
|
/**
|
|
94
107
|
*
|
|
95
108
|
* @param target - The target on which to handle context requests.
|
|
@@ -99,7 +112,7 @@ export declare const Context: Readonly<{
|
|
|
99
112
|
* If a context is not provided then the callback will be invoked for all context
|
|
100
113
|
* requests that are received on the target.
|
|
101
114
|
*/
|
|
102
|
-
handle<
|
|
115
|
+
handle<T_6 extends UnknownContext>(target: EventTarget, callback: (event: ContextEvent<T_6>) => void, context?: T_6 | undefined): void;
|
|
103
116
|
/**
|
|
104
117
|
* Defines a getter-only property on the target that will return the context
|
|
105
118
|
* value for the target.
|
|
@@ -110,7 +123,7 @@ export declare const Context: Readonly<{
|
|
|
110
123
|
* Uses the default request strategy to locate the context and will return the
|
|
111
124
|
* initialValue if the context isn't handled.
|
|
112
125
|
*/
|
|
113
|
-
defineProperty<
|
|
126
|
+
defineProperty<T_7 extends UnknownContext>(target: Constructable<EventTarget> | EventTarget, propertyName: string, context: T_7): void;
|
|
114
127
|
}>;
|
|
115
128
|
/**
|
|
116
129
|
* An unknown context type.
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
export type { Callable, Constructable, Class, Disposable, FASTGlobal, TrustedTypesPolicy, } from "./interfaces.js";
|
|
2
|
-
export
|
|
2
|
+
export { FAST, emptyArray } from "./platform.js";
|
|
3
3
|
export * from "./dom.js";
|
|
4
4
|
export * from "./observation/observable.js";
|
|
5
5
|
export * from "./observation/notifier.js";
|
|
6
6
|
export * from "./observation/arrays.js";
|
|
7
7
|
export * from "./observation/update-queue.js";
|
|
8
|
+
export * from "./binding/binding.js";
|
|
9
|
+
export * from "./binding/one-way.js";
|
|
10
|
+
export * from "./binding/one-time.js";
|
|
11
|
+
export * from "./binding/normalize.js";
|
|
8
12
|
export * from "./styles/element-styles.js";
|
|
9
13
|
export * from "./styles/css.js";
|
|
10
14
|
export * from "./styles/css-directive.js";
|
|
11
15
|
export * from "./styles/host.js";
|
|
12
16
|
export * from "./styles/style-strategy.js";
|
|
17
|
+
export * from "./styles/css-binding-directive.js";
|
|
13
18
|
export * from "./templating/template.js";
|
|
14
19
|
export * from "./templating/compiler.js";
|
|
15
20
|
export { Markup, Parser } from "./templating/markup.js";
|
|
16
|
-
export * from "./templating/binding.js";
|
|
21
|
+
export * from "./templating/html-binding-directive.js";
|
|
17
22
|
export * from "./templating/html-directive.js";
|
|
18
23
|
export * from "./templating/ref.js";
|
|
19
24
|
export * from "./templating/when.js";
|
package/dist/dts/interfaces.d.ts
CHANGED
|
@@ -46,11 +46,16 @@ export declare type TrustedTypesPolicy = {
|
|
|
46
46
|
};
|
|
47
47
|
/**
|
|
48
48
|
* Reverses all readonly members, making them mutable.
|
|
49
|
-
* @
|
|
49
|
+
* @public
|
|
50
50
|
*/
|
|
51
51
|
export declare type Mutable<T> = {
|
|
52
52
|
-readonly [P in keyof T]: T[P];
|
|
53
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* A temporary type as a workaround for the TS compiler's erroneous built-in ParameterDecorator type.
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
export declare type ParameterDecorator = (target: Object, propertyKey: string | undefined, parameterIndex: number) => void;
|
|
54
59
|
/**
|
|
55
60
|
* The FAST global.
|
|
56
61
|
* @public
|
|
@@ -133,16 +138,16 @@ export declare const enum Message {
|
|
|
133
138
|
}
|
|
134
139
|
/**
|
|
135
140
|
* Determines whether or not an object is a function.
|
|
136
|
-
* @
|
|
141
|
+
* @public
|
|
137
142
|
*/
|
|
138
143
|
export declare const isFunction: (object: any) => object is Function;
|
|
139
144
|
/**
|
|
140
145
|
* Determines whether or not an object is a string.
|
|
141
|
-
* @
|
|
146
|
+
* @public
|
|
142
147
|
*/
|
|
143
148
|
export declare const isString: (object: any) => object is string;
|
|
144
149
|
/**
|
|
145
150
|
* A function which does nothing.
|
|
146
|
-
* @
|
|
151
|
+
* @public
|
|
147
152
|
*/
|
|
148
153
|
export declare const noop: () => undefined;
|
package/dist/dts/metadata.d.ts
CHANGED
package/dist/dts/platform.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FASTGlobal } from "./interfaces.js";
|
|
2
2
|
import "./polyfills.js";
|
|
3
3
|
/**
|
|
4
4
|
* The FAST global.
|
|
@@ -40,3 +40,11 @@ export declare function createTypeRegistry<TDefinition extends TypeDefinition>()
|
|
|
40
40
|
* @internal
|
|
41
41
|
*/
|
|
42
42
|
export declare function createMetadataLocator<TMetadata>(): (target: {}) => TMetadata[];
|
|
43
|
+
/**
|
|
44
|
+
* Makes a type noop for JSON serialization.
|
|
45
|
+
* @param type - The type to make noop for JSON serialization.
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
export declare function makeSerializationNoop(type: {
|
|
49
|
+
readonly prototype: any;
|
|
50
|
+
}): void;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Binding, BindingDirective } from "../binding/binding.js";
|
|
2
|
+
import type { Subscriber } from "../observation/notifier.js";
|
|
3
|
+
import type { ExpressionObserver } from "../observation/observable.js";
|
|
4
|
+
import { AddBehavior, CSSDirective } from "./css-directive.js";
|
|
5
|
+
import type { ComposableStyles } from "./element-styles.js";
|
|
6
|
+
import type { HostBehavior, HostController } from "./host.js";
|
|
7
|
+
declare type CSSBindingEntry = {
|
|
8
|
+
observer: ExpressionObserver;
|
|
9
|
+
controller: HostController;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Enables bindings in CSS.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export declare class CSSBindingDirective implements HostBehavior, Subscriber, CSSDirective, BindingDirective {
|
|
17
|
+
readonly dataBinding: Binding;
|
|
18
|
+
readonly targetAspect: string;
|
|
19
|
+
/**
|
|
20
|
+
* Creates an instance of CSSBindingDirective.
|
|
21
|
+
* @param dataBinding - The binding to use in CSS.
|
|
22
|
+
* @param targetAspect - The CSS property to target.
|
|
23
|
+
*/
|
|
24
|
+
constructor(dataBinding: Binding, targetAspect: string);
|
|
25
|
+
/**
|
|
26
|
+
* Creates a CSS fragment to interpolate into the CSS document.
|
|
27
|
+
* @returns - the string to interpolate into CSS
|
|
28
|
+
*/
|
|
29
|
+
createCSS(add: AddBehavior): ComposableStyles;
|
|
30
|
+
/**
|
|
31
|
+
* Executed when this behavior is attached to a controller.
|
|
32
|
+
* @param controller - Controls the behavior lifecycle.
|
|
33
|
+
*/
|
|
34
|
+
addedCallback(controller: HostController<HTMLElement & {
|
|
35
|
+
$cssBindings: Map<CSSBindingDirective, CSSBindingEntry>;
|
|
36
|
+
}>): void;
|
|
37
|
+
/**
|
|
38
|
+
* Executed when this behavior's host is connected.
|
|
39
|
+
* @param controller - Controls the behavior lifecycle.
|
|
40
|
+
*/
|
|
41
|
+
connectedCallback(controller: HostController<HTMLElement & {
|
|
42
|
+
$cssBindings: Map<CSSBindingDirective, CSSBindingEntry>;
|
|
43
|
+
}>): void;
|
|
44
|
+
/**
|
|
45
|
+
* Executed when this behavior is detached from a controller.
|
|
46
|
+
* @param controller - Controls the behavior lifecycle.
|
|
47
|
+
*/
|
|
48
|
+
removedCallback(controller: HostController<HTMLElement & {
|
|
49
|
+
$cssBindings: Map<CSSBindingDirective, CSSBindingEntry>;
|
|
50
|
+
}>): void;
|
|
51
|
+
/**
|
|
52
|
+
* Called when a subject this instance has subscribed to changes.
|
|
53
|
+
* @param subject - The subject of the change.
|
|
54
|
+
* @param args - The event args detailing the change that occurred.
|
|
55
|
+
*
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
58
|
+
handleChange(_: any, observer: ExpressionObserver): void;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
package/dist/dts/styles/css.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import type { Expression } from "../observation/observable.js";
|
|
2
|
+
import { Binding } from "../binding/binding.js";
|
|
1
3
|
import { CSSDirective } from "./css-directive.js";
|
|
2
4
|
import { ComposableStyles, ElementStyles } from "./element-styles.js";
|
|
5
|
+
/**
|
|
6
|
+
* Represents the types of values that can be interpolated into a template.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare type CSSValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | ComposableStyles | CSSDirective;
|
|
3
10
|
/**
|
|
4
11
|
* Transforms a template literal string into styles.
|
|
5
12
|
* @param strings - The string fragments that are interpolated with the values.
|
|
@@ -9,14 +16,14 @@ import { ComposableStyles, ElementStyles } from "./element-styles.js";
|
|
|
9
16
|
* Use the .partial method to create partial CSS fragments.
|
|
10
17
|
* @public
|
|
11
18
|
*/
|
|
12
|
-
export declare type CSSTemplateTag = ((strings: TemplateStringsArray, ...values:
|
|
19
|
+
export declare type CSSTemplateTag = (<TSource = any, TParent = any>(strings: TemplateStringsArray, ...values: CSSValue<TSource, TParent>[]) => ElementStyles) & {
|
|
13
20
|
/**
|
|
14
21
|
* Transforms a template literal string into partial CSS.
|
|
15
22
|
* @param strings - The string fragments that are interpolated with the values.
|
|
16
23
|
* @param values - The values that are interpolated with the string fragments.
|
|
17
24
|
* @public
|
|
18
25
|
*/
|
|
19
|
-
partial(strings: TemplateStringsArray, ...values:
|
|
26
|
+
partial<TSource = any, TParent = any>(strings: TemplateStringsArray, ...values: CSSValue<TSource, TParent>[]): CSSDirective;
|
|
20
27
|
};
|
|
21
28
|
/**
|
|
22
29
|
* Transforms a template literal string into styles.
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
+
import type { ExpressionController } from "../observation/observable.js";
|
|
1
2
|
import type { ElementStyles } from "./element-styles.js";
|
|
2
3
|
/**
|
|
3
4
|
* Controls the lifecycle and context of behaviors and styles
|
|
4
5
|
* associated with a component host.
|
|
5
6
|
* @public
|
|
6
7
|
*/
|
|
7
|
-
export interface HostController<TSource = any> {
|
|
8
|
-
/**
|
|
9
|
-
* The component source.
|
|
10
|
-
*/
|
|
11
|
-
readonly source: TSource;
|
|
8
|
+
export interface HostController<TSource = any> extends ExpressionController<TSource> {
|
|
12
9
|
/**
|
|
13
10
|
* Indicates whether the host is connected or not.
|
|
14
11
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ExecutionContext, Expression, ExpressionObserver } from "../observation/observable.js";
|
|
2
2
|
import { DOMAspect, DOMPolicy } from "../dom.js";
|
|
3
|
-
import {
|
|
3
|
+
import type { Binding, BindingDirective } from "../binding/binding.js";
|
|
4
|
+
import { AddViewBehaviorFactory, Aspected, HTMLDirective, ViewBehavior, ViewBehaviorFactory, ViewController } from "./html-directive.js";
|
|
4
5
|
/**
|
|
5
6
|
* A simple View that can be interpolated into HTML content.
|
|
6
7
|
* @public
|
|
@@ -42,7 +43,7 @@ export interface ContentTemplate {
|
|
|
42
43
|
* A directive that applies bindings.
|
|
43
44
|
* @public
|
|
44
45
|
*/
|
|
45
|
-
export declare class HTMLBindingDirective implements HTMLDirective, ViewBehaviorFactory, ViewBehavior, Aspected {
|
|
46
|
+
export declare class HTMLBindingDirective implements HTMLDirective, ViewBehaviorFactory, ViewBehavior, Aspected, BindingDirective {
|
|
46
47
|
dataBinding: Binding;
|
|
47
48
|
private data;
|
|
48
49
|
private updateTarget;
|
|
@@ -97,35 +98,3 @@ export declare class HTMLBindingDirective implements HTMLDirective, ViewBehavior
|
|
|
97
98
|
/** @internal */
|
|
98
99
|
handleChange(binding: Expression, observer: ExpressionObserver): void;
|
|
99
100
|
}
|
|
100
|
-
/**
|
|
101
|
-
* Creates an standard binding.
|
|
102
|
-
* @param expression - The binding to refresh when changed.
|
|
103
|
-
* @param policy - The security policy to associate with th binding.
|
|
104
|
-
* @param isVolatile - Indicates whether the binding is volatile or not.
|
|
105
|
-
* @returns A binding configuration.
|
|
106
|
-
* @public
|
|
107
|
-
*/
|
|
108
|
-
export declare function bind<T = any>(expression: Expression<T>, policy?: DOMPolicy, isVolatile?: boolean): Binding<T>;
|
|
109
|
-
/**
|
|
110
|
-
* Creates a one time binding
|
|
111
|
-
* @param expression - The binding to refresh when signaled.
|
|
112
|
-
* @param policy - The security policy to associate with th binding.
|
|
113
|
-
* @returns A binding configuration.
|
|
114
|
-
* @public
|
|
115
|
-
*/
|
|
116
|
-
export declare function oneTime<T = any>(expression: Expression<T>, policy?: DOMPolicy): Binding<T>;
|
|
117
|
-
/**
|
|
118
|
-
* Creates an event listener binding.
|
|
119
|
-
* @param expression - The binding to invoke when the event is raised.
|
|
120
|
-
* @param options - Event listener options.
|
|
121
|
-
* @returns A binding configuration.
|
|
122
|
-
* @public
|
|
123
|
-
*/
|
|
124
|
-
export declare function listener<T = any>(expression: Expression<T>, options?: AddEventListenerOptions): Binding<T>;
|
|
125
|
-
/**
|
|
126
|
-
* Normalizes the input value into a binding.
|
|
127
|
-
* @param value - The value to create the default binding for.
|
|
128
|
-
* @returns A binding configuration for the provided value.
|
|
129
|
-
* @public
|
|
130
|
-
*/
|
|
131
|
-
export declare function normalizeBinding<TSource = any, TReturn = any, TParent = any>(value: Expression<TSource, TReturn, TParent> | Binding<TSource, TReturn, TParent> | {}): Binding<TSource, TReturn, TParent>;
|