@ibyar/core 0.8.6 → 1.0.0
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/annotation/context.d.ts +41 -0
- package/annotation/context.d.ts.map +1 -0
- package/annotation/context.js +79 -0
- package/annotation/context.js.map +1 -0
- package/annotation/decorators.d.ts +20 -285
- package/annotation/decorators.d.ts.map +1 -0
- package/annotation/decorators.js +92 -84
- package/annotation/decorators.js.map +1 -1
- package/annotation/options.d.ts +275 -0
- package/annotation/options.d.ts.map +1 -0
- package/annotation/options.js +2 -0
- package/annotation/options.js.map +1 -0
- package/binding/binding.expressions.d.ts +1 -0
- package/binding/binding.expressions.d.ts.map +1 -0
- package/binding/binding.expressions.js +138 -125
- package/binding/binding.expressions.js.map +1 -1
- package/component/component.d.ts +12 -11
- package/component/component.d.ts.map +1 -0
- package/component/component.js +37 -44
- package/component/component.js.map +1 -1
- package/component/custom-element.d.ts +1 -0
- package/component/custom-element.d.ts.map +1 -0
- package/component/events.d.ts +1 -0
- package/component/events.d.ts.map +1 -0
- package/component/events.js +4 -3
- package/component/events.js.map +1 -1
- package/component/lifecycle.d.ts +1 -0
- package/component/lifecycle.d.ts.map +1 -0
- package/component/reflect.d.ts +12 -15
- package/component/reflect.d.ts.map +1 -0
- package/component/reflect.js +27 -47
- package/component/reflect.js.map +1 -1
- package/context/stack.d.ts +1 -0
- package/context/stack.d.ts.map +1 -0
- package/context/subscription.d.ts +1 -0
- package/context/subscription.d.ts.map +1 -0
- package/directive/directive.d.ts +1 -0
- package/directive/directive.d.ts.map +1 -0
- package/directive/directive.js +8 -0
- package/directive/directive.js.map +1 -1
- package/directive/parser.d.ts +1 -0
- package/directive/parser.d.ts.map +1 -0
- package/directive/parser.js +9 -7
- package/directive/parser.js.map +1 -1
- package/directive/providers.d.ts +1 -0
- package/directive/providers.d.ts.map +1 -0
- package/directive/providers.js +2 -1
- package/directive/providers.js.map +1 -1
- package/html/deserialize.d.ts +1 -0
- package/html/deserialize.d.ts.map +1 -0
- package/html/expression.d.ts +1 -0
- package/html/expression.d.ts.map +1 -0
- package/html/expression.js +2 -2
- package/html/expression.js.map +1 -1
- package/html/types.d.ts +1 -0
- package/html/types.d.ts.map +1 -0
- package/index.d.ts +2 -2
- package/index.d.ts.map +1 -0
- package/index.js +1 -2
- package/index.js.map +1 -1
- package/linker/change-detector-ref.d.ts +1 -0
- package/linker/change-detector-ref.d.ts.map +1 -0
- package/linker/template-ref.d.ts +1 -0
- package/linker/template-ref.d.ts.map +1 -0
- package/linker/template-ref.js +5 -0
- package/linker/template-ref.js.map +1 -1
- package/linker/view-container-ref.d.ts +4 -2
- package/linker/view-container-ref.d.ts.map +1 -0
- package/linker/view-container-ref.js +8 -7
- package/linker/view-container-ref.js.map +1 -1
- package/linker/view-ref.d.ts +1 -0
- package/linker/view-ref.d.ts.map +1 -0
- package/linker/view-ref.js +5 -2
- package/linker/view-ref.js.map +1 -1
- package/node.d.ts +1 -0
- package/node.d.ts.map +1 -0
- package/package.json +6 -7
- package/pipe/pipe.d.ts +1 -0
- package/pipe/pipe.d.ts.map +1 -0
- package/pipe/pipe.js +2 -1
- package/pipe/pipe.js.map +1 -1
- package/providers/provider.d.ts +15 -13
- package/providers/provider.d.ts.map +1 -0
- package/providers/provider.js +13 -16
- package/providers/provider.js.map +1 -1
- package/utils/elements-util.d.ts +1 -0
- package/utils/elements-util.d.ts.map +1 -0
- package/utils/path.d.ts +1 -0
- package/utils/path.d.ts.map +1 -0
- package/utils/typeof.d.ts +3 -0
- package/utils/typeof.d.ts.map +1 -0
- package/utils/typeof.js.map +1 -1
- package/utils/utils.d.ts +1 -0
- package/utils/utils.d.ts.map +1 -0
- package/view/base-view.d.ts +1 -0
- package/view/base-view.d.ts.map +1 -0
- package/view/base-view.js +30 -16
- package/view/base-view.js.map +1 -1
- package/view/form-view.d.ts +1 -0
- package/view/form-view.d.ts.map +1 -0
- package/view/form-view.js +70 -67
- package/view/form-view.js.map +1 -1
- package/view/mutation.d.ts +1 -0
- package/view/mutation.d.ts.map +1 -0
- package/view/mutation.js +37 -36
- package/view/mutation.js.map +1 -1
- package/view/render.d.ts +1 -0
- package/view/render.d.ts.map +1 -0
- package/view/render.js +9 -8
- package/view/render.js.map +1 -1
- package/view/utils.d.ts +4 -3
- package/view/utils.d.ts.map +1 -0
- package/view/utils.js.map +1 -1
- package/view/view.d.ts +5 -4
- package/view/view.d.ts.map +1 -0
- package/view/view.js +19 -3
- package/view/view.js.map +1 -1
- package/zone/bootstrap.d.ts +1 -0
- package/zone/bootstrap.d.ts.map +1 -0
- package/zone/proxy.d.ts +1 -0
- package/zone/proxy.d.ts.map +1 -0
- package/zone/proxy.js +1 -0
- package/zone/proxy.js.map +1 -1
- package/zone/task.d.ts +1 -0
- package/zone/task.d.ts.map +1 -0
- package/zone/task.js +11 -3
- package/zone/task.js.map +1 -1
- package/zone/zone.d.ts +1 -0
- package/zone/zone.d.ts.map +1 -0
- package/zone/zone.js +8 -6
- package/zone/zone.js.map +1 -1
- package/providers/injector.d.ts +0 -10
- package/providers/injector.js +0 -27
- package/providers/injector.js.map +0 -1
|
@@ -1,136 +1,149 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { InfixExpressionNode, findReactiveScopeByEventMap, Scope, MemberExpression, Deserializer } from '@ibyar/expressions';
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { InfixExpressionNode, findReactiveScopeByEventMap, Scope, Deserializer } from '@ibyar/expressions';
|
|
4
3
|
import { createSubscriptionDestroyer } from '../context/subscription.js';
|
|
5
4
|
import { isOnDestroy } from '../component/lifecycle.js';
|
|
6
5
|
import { AsyncPipeProvider, AsyncPipeScope, PipeProvider } from '../pipe/pipe.js';
|
|
7
|
-
let OneWayAssignmentExpression =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
6
|
+
export let OneWayAssignmentExpression = (() => {
|
|
7
|
+
let _classDecorators = [Deserializer('OneWayAssignment')];
|
|
8
|
+
let _classDescriptor;
|
|
9
|
+
let _classExtraInitializers = [];
|
|
10
|
+
let _classThis;
|
|
11
|
+
var OneWayAssignmentExpression = class extends InfixExpressionNode {
|
|
12
|
+
static {
|
|
13
|
+
__esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
|
|
14
|
+
OneWayAssignmentExpression = _classThis = _classDescriptor.value;
|
|
15
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
16
|
+
}
|
|
17
|
+
static fromJSON(node, deserializer) {
|
|
18
|
+
return new OneWayAssignmentExpression(deserializer(node.left), deserializer(node.right));
|
|
19
|
+
}
|
|
20
|
+
static visit(node, visitNode) {
|
|
21
|
+
visitNode(node.left);
|
|
22
|
+
visitNode(node.right);
|
|
23
|
+
}
|
|
24
|
+
rightEvents = this.right.events();
|
|
25
|
+
constructor(left, right) {
|
|
26
|
+
super('=:', left, right);
|
|
27
|
+
}
|
|
28
|
+
set(stack, value) {
|
|
29
|
+
return this.left.set(stack, value);
|
|
30
|
+
}
|
|
31
|
+
get(stack) {
|
|
32
|
+
const rv = this.right.get(stack);
|
|
33
|
+
this.set(stack, rv);
|
|
34
|
+
return rv;
|
|
35
|
+
}
|
|
36
|
+
subscribe(stack, pipelineNames) {
|
|
37
|
+
const subscriptions = [];
|
|
38
|
+
if (pipelineNames?.length) {
|
|
39
|
+
const syncPipeScope = Scope.blockScope();
|
|
40
|
+
const asyncPipeScope = AsyncPipeScope.blockScope();
|
|
41
|
+
let hasAsync = false, hasSync = false;
|
|
42
|
+
pipelineNames.forEach(pipelineName => {
|
|
43
|
+
const scope = stack.findScope(pipelineName);
|
|
44
|
+
const pipe = scope.get(pipelineName);
|
|
45
|
+
if (scope instanceof AsyncPipeProvider) {
|
|
46
|
+
hasAsync = true;
|
|
47
|
+
asyncPipeScope.set(pipelineName, pipe);
|
|
48
|
+
if (isOnDestroy(pipe.prototype)) {
|
|
49
|
+
subscriptions.push(createSubscriptionDestroyer(() => asyncPipeScope.unsubscribe(pipelineName)));
|
|
50
|
+
}
|
|
41
51
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
52
|
+
else if (scope instanceof PipeProvider) {
|
|
53
|
+
hasSync = true;
|
|
54
|
+
syncPipeScope.set(pipelineName, pipe);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
hasSync && stack.pushScope(syncPipeScope);
|
|
58
|
+
hasAsync && stack.pushScope(asyncPipeScope);
|
|
59
|
+
}
|
|
60
|
+
const tuples = findReactiveScopeByEventMap(this.rightEvents, stack);
|
|
61
|
+
const callback = () => this.get(stack);
|
|
62
|
+
tuples.forEach(tuple => {
|
|
63
|
+
const subscription = tuple[1].subscribe(tuple[0], callback);
|
|
64
|
+
subscriptions.push(subscription);
|
|
47
65
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
tuples.forEach(tuple => {
|
|
54
|
-
const subscription = tuple[1].subscribe(tuple[0], callback);
|
|
55
|
-
subscriptions.push(subscription);
|
|
56
|
-
});
|
|
57
|
-
return subscriptions;
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
OneWayAssignmentExpression = OneWayAssignmentExpression_1 = __decorate([
|
|
61
|
-
Deserializer('OneWayAssignment'),
|
|
62
|
-
__metadata("design:paramtypes", [MemberExpression, Object])
|
|
63
|
-
], OneWayAssignmentExpression);
|
|
64
|
-
export { OneWayAssignmentExpression };
|
|
66
|
+
return subscriptions;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
return OneWayAssignmentExpression = _classThis;
|
|
70
|
+
})();
|
|
65
71
|
/**
|
|
66
72
|
* the default behavior is assign the right hand side to the left hand side.
|
|
67
73
|
*
|
|
68
74
|
*
|
|
69
75
|
*/
|
|
70
|
-
let TwoWayAssignmentExpression =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
76
|
+
export let TwoWayAssignmentExpression = (() => {
|
|
77
|
+
let _classDecorators_1 = [Deserializer('TwoWayAssignment')];
|
|
78
|
+
let _classDescriptor_1;
|
|
79
|
+
let _classExtraInitializers_1 = [];
|
|
80
|
+
let _classThis_1;
|
|
81
|
+
var TwoWayAssignmentExpression = class extends InfixExpressionNode {
|
|
82
|
+
static {
|
|
83
|
+
__esDecorate(null, _classDescriptor_1 = { value: this }, _classDecorators_1, { kind: "class", name: this.name }, null, _classExtraInitializers_1);
|
|
84
|
+
TwoWayAssignmentExpression = _classThis_1 = _classDescriptor_1.value;
|
|
85
|
+
__runInitializers(_classThis_1, _classExtraInitializers_1);
|
|
86
|
+
}
|
|
87
|
+
static fromJSON(node, deserializer) {
|
|
88
|
+
return new TwoWayAssignmentExpression(deserializer(node.left), deserializer(node.right));
|
|
89
|
+
}
|
|
90
|
+
static visit(node, visitNode) {
|
|
91
|
+
visitNode(node.left);
|
|
92
|
+
visitNode(node.right);
|
|
93
|
+
}
|
|
94
|
+
rightEvents = this.right.events();
|
|
95
|
+
leftEvents = this.left.events();
|
|
96
|
+
constructor(left, right) {
|
|
97
|
+
super('=::', left, right);
|
|
98
|
+
}
|
|
99
|
+
set(stack, value) {
|
|
100
|
+
return this.setRTL(stack, value);
|
|
101
|
+
}
|
|
102
|
+
get(stack) {
|
|
103
|
+
return this.getRTL(stack);
|
|
104
|
+
}
|
|
105
|
+
setRTL(stack, value) {
|
|
106
|
+
return this.left.set(stack, value);
|
|
107
|
+
}
|
|
108
|
+
getRTL(stack) {
|
|
109
|
+
const rv = this.right.get(stack);
|
|
110
|
+
this.setRTL(stack, rv);
|
|
111
|
+
return rv;
|
|
112
|
+
}
|
|
113
|
+
actionRTL(stack) {
|
|
114
|
+
return () => this.getRTL(stack);
|
|
115
|
+
}
|
|
116
|
+
setLTR(stack, value) {
|
|
117
|
+
return this.right.set(stack, value);
|
|
118
|
+
}
|
|
119
|
+
getLTR(stack) {
|
|
120
|
+
const lv = this.left.get(stack);
|
|
121
|
+
this.setLTR(stack, lv);
|
|
122
|
+
return lv;
|
|
123
|
+
}
|
|
124
|
+
actionLTR(stack) {
|
|
125
|
+
return () => this.getLTR(stack);
|
|
126
|
+
}
|
|
127
|
+
subscribeToEvents(stack, tuples, actionCallback) {
|
|
128
|
+
const subscriptions = [];
|
|
129
|
+
tuples.forEach(tuple => {
|
|
130
|
+
const subscription = tuple[1].subscribe(tuple[0], actionCallback);
|
|
131
|
+
subscriptions.push(subscription);
|
|
132
|
+
});
|
|
133
|
+
return subscriptions;
|
|
134
|
+
}
|
|
135
|
+
subscribe(stack) {
|
|
136
|
+
// right to left
|
|
137
|
+
const rightTuples = findReactiveScopeByEventMap(this.rightEvents, stack);
|
|
138
|
+
const rtlAction = this.actionRTL(stack);
|
|
139
|
+
const rtlSubscriptions = this.subscribeToEvents(stack, rightTuples, rtlAction);
|
|
140
|
+
// left to right
|
|
141
|
+
const leftTuples = findReactiveScopeByEventMap(this.leftEvents, stack);
|
|
142
|
+
const ltrAction = this.actionLTR(stack);
|
|
143
|
+
const ltrSubscriptions = this.subscribeToEvents(stack, leftTuples, ltrAction);
|
|
144
|
+
return rtlSubscriptions.concat(ltrSubscriptions);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
return TwoWayAssignmentExpression = _classThis_1;
|
|
148
|
+
})();
|
|
136
149
|
//# sourceMappingURL=binding.expressions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.expressions.js","sourceRoot":"","sources":["../../../src/core/binding/binding.expressions.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tExpressionNode, InfixExpressionNode, ScopeSubscription,\n\tStack, findReactiveScopeByEventMap, ReactiveScope,\n\tContext, ValueChangedCallback, Scope,\n\tMemberExpression, Identifier, Deserializer,\n\tVisitNodeType, NodeDeserializer\n} from '@ibyar/expressions';\nimport { createSubscriptionDestroyer } from '../context/subscription.js';\nimport { isOnDestroy } from '../component/lifecycle.js';\nimport { AsyncPipeProvider, AsyncPipeScope, PipeProvider } from '../pipe/pipe.js';\n\ntype OneWayOperator = '=:';\ntype TwoWayOperator = '=::';\ntype BindingOperators = OneWayOperator | TwoWayOperator;\n\nexport interface BindingAssignment extends InfixExpressionNode<BindingOperators> {\n\tsubscribe(stack: Stack, pipelineNames?: string[]): ScopeSubscription<Context>[];\n}\n\n\n@Deserializer('OneWayAssignment')\nexport class OneWayAssignmentExpression extends InfixExpressionNode<OneWayOperator> implements BindingAssignment {\n\tstatic fromJSON(node: OneWayAssignmentExpression, deserializer: NodeDeserializer): OneWayAssignmentExpression {\n\t\treturn new OneWayAssignmentExpression(\n\t\t\tdeserializer(node.left) as MemberExpression,\n\t\t\tdeserializer(node.right)\n\t\t);\n\t}\n\tstatic visit(node: OneWayAssignmentExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t}\n\n\tdeclare protected left: MemberExpression;\n\tprivate rightEvents = this.right.events();\n\tconstructor(left: MemberExpression, right: ExpressionNode) {\n\t\tsuper('=:', left, right);\n\t}\n\tset(stack: Stack, value: any) {\n\t\treturn this.left.set(stack, value);\n\t}\n\tget(stack: Stack): any {\n\t\tconst rv = this.right.get(stack);\n\t\tthis.set(stack, rv);\n\t\treturn rv;\n\t}\n\tsubscribe(stack: Stack, pipelineNames?: string[]): ScopeSubscription<Context>[] {\n\t\tconst subscriptions: ScopeSubscription<Context>[] = [];\n\t\tif (pipelineNames?.length) {\n\t\t\tconst syncPipeScope = Scope.blockScope();\n\t\t\tconst asyncPipeScope = AsyncPipeScope.blockScope();\n\t\t\tlet hasAsync = false, hasSync = false;\n\t\t\tpipelineNames.forEach(pipelineName => {\n\t\t\t\tconst scope = stack.findScope(pipelineName);\n\t\t\t\tconst pipe = scope.get(pipelineName)!;\n\t\t\t\tif (scope instanceof AsyncPipeProvider) {\n\t\t\t\t\thasAsync = true;\n\t\t\t\t\tasyncPipeScope.set(pipelineName, pipe);\n\t\t\t\t\tif (isOnDestroy(pipe.prototype)) {\n\t\t\t\t\t\tsubscriptions.push(createSubscriptionDestroyer(() => asyncPipeScope.unsubscribe(pipelineName)));\n\t\t\t\t\t}\n\t\t\t\t} else if (scope instanceof PipeProvider) {\n\t\t\t\t\thasSync = true;\n\t\t\t\t\tsyncPipeScope.set(pipelineName, pipe);\n\t\t\t\t}\n\t\t\t});\n\t\t\thasSync && stack.pushScope(syncPipeScope);\n\t\t\thasAsync && stack.pushScope(asyncPipeScope);\n\t\t}\n\t\tconst tuples = findReactiveScopeByEventMap(this.rightEvents, stack);\n\t\tconst callback: ValueChangedCallback = () => this.get(stack);\n\t\ttuples.forEach(tuple => {\n\t\t\tconst subscription = tuple[1].subscribe(tuple[0], callback);\n\t\t\tsubscriptions.push(subscription);\n\t\t});\n\t\treturn subscriptions;\n\t}\n}\n\n\n/**\n * the default behavior is assign the right hand side to the left hand side.\n * \n * \n */\n@Deserializer('TwoWayAssignment')\nexport class TwoWayAssignmentExpression extends InfixExpressionNode<TwoWayOperator> implements BindingAssignment {\n\tstatic fromJSON(node: TwoWayAssignmentExpression, deserializer: NodeDeserializer): TwoWayAssignmentExpression {\n\t\treturn new TwoWayAssignmentExpression(\n\t\t\tdeserializer(node.left) as MemberExpression,\n\t\t\tdeserializer(node.right) as MemberExpression | Identifier\n\t\t);\n\t}\n\tstatic visit(node: TwoWayAssignmentExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t}\n\n\tdeclare protected left: MemberExpression;\n\tdeclare protected right: MemberExpression | Identifier;\n\n\tprivate rightEvents = this.right.events();\n\tprivate leftEvents = this.left.events();\n\tconstructor(left: MemberExpression, right: MemberExpression | Identifier) {\n\t\tsuper('=::', left, right);\n\t}\n\n\tset(stack: Stack, value: any) {\n\t\treturn this.setRTL(stack, value);\n\t}\n\tget(stack: Stack): any {\n\t\treturn this.getRTL(stack);\n\t}\n\n\tprivate setRTL(stack: Stack, value: any) {\n\t\treturn this.left.set(stack, value);\n\t}\n\tprivate getRTL(stack: Stack): any {\n\t\tconst rv = this.right.get(stack);\n\t\tthis.setRTL(stack, rv);\n\t\treturn rv;\n\t}\n\tprivate actionRTL(stack: Stack): ValueChangedCallback {\n\t\treturn () => this.getRTL(stack);\n\t}\n\n\tprivate setLTR(stack: Stack, value: any) {\n\t\treturn this.right.set(stack, value);\n\t}\n\tprivate getLTR(stack: Stack): any {\n\t\tconst lv = this.left.get(stack);\n\t\tthis.setLTR(stack, lv);\n\t\treturn lv;\n\t}\n\tprivate actionLTR(stack: Stack): ValueChangedCallback {\n\t\treturn () => this.getLTR(stack);\n\t}\n\n\tprivate subscribeToEvents(stack: Stack, tuples: [string, ReactiveScope<Context>][], actionCallback: ValueChangedCallback) {\n\t\tconst subscriptions: ScopeSubscription<Context>[] = [];\n\t\ttuples.forEach(tuple => {\n\t\t\tconst subscription = tuple[1].subscribe(tuple[0], actionCallback);\n\t\t\tsubscriptions.push(subscription);\n\t\t});\n\t\treturn subscriptions;\n\t}\n\n\tsubscribe(stack: Stack): ScopeSubscription<Context>[] {\n\n\t\t// right to left\n\t\tconst rightTuples = findReactiveScopeByEventMap(this.rightEvents, stack);\n\t\tconst rtlAction = this.actionRTL(stack);\n\t\tconst rtlSubscriptions = this.subscribeToEvents(stack, rightTuples, rtlAction);\n\n\t\t// left to right \n\t\tconst leftTuples = findReactiveScopeByEventMap(this.leftEvents, stack);\n\t\tconst ltrAction = this.actionLTR(stack);\n\t\tconst ltrSubscriptions = this.subscribeToEvents(stack, leftTuples, ltrAction);\n\n\t\treturn rtlSubscriptions.concat(ltrSubscriptions);\n\t}\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"binding.expressions.js","sourceRoot":"","sources":["../../../src/core/binding/binding.expressions.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tExpressionNode, InfixExpressionNode, ScopeSubscription,\n\tStack, findReactiveScopeByEventMap, ReactiveScope,\n\tContext, ValueChangedCallback, Scope,\n\tMemberExpression, Identifier, Deserializer,\n\tVisitNodeType, NodeDeserializer\n} from '@ibyar/expressions';\nimport { createSubscriptionDestroyer } from '../context/subscription.js';\nimport { isOnDestroy } from '../component/lifecycle.js';\nimport { AsyncPipeProvider, AsyncPipeScope, PipeProvider } from '../pipe/pipe.js';\n\ntype OneWayOperator = '=:';\ntype TwoWayOperator = '=::';\ntype BindingOperators = OneWayOperator | TwoWayOperator;\n\nexport interface BindingAssignment extends InfixExpressionNode<BindingOperators> {\n\tsubscribe(stack: Stack, pipelineNames?: string[]): ScopeSubscription<Context>[];\n}\n\n\n@Deserializer('OneWayAssignment')\nexport class OneWayAssignmentExpression extends InfixExpressionNode<OneWayOperator> implements BindingAssignment {\n\tstatic fromJSON(node: OneWayAssignmentExpression, deserializer: NodeDeserializer): OneWayAssignmentExpression {\n\t\treturn new OneWayAssignmentExpression(\n\t\t\tdeserializer(node.left) as MemberExpression,\n\t\t\tdeserializer(node.right)\n\t\t);\n\t}\n\tstatic visit(node: OneWayAssignmentExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t}\n\n\tdeclare protected left: MemberExpression;\n\tprivate rightEvents = this.right.events();\n\tconstructor(left: MemberExpression, right: ExpressionNode) {\n\t\tsuper('=:', left, right);\n\t}\n\tset(stack: Stack, value: any) {\n\t\treturn this.left.set(stack, value);\n\t}\n\tget(stack: Stack): any {\n\t\tconst rv = this.right.get(stack);\n\t\tthis.set(stack, rv);\n\t\treturn rv;\n\t}\n\tsubscribe(stack: Stack, pipelineNames?: string[]): ScopeSubscription<Context>[] {\n\t\tconst subscriptions: ScopeSubscription<Context>[] = [];\n\t\tif (pipelineNames?.length) {\n\t\t\tconst syncPipeScope = Scope.blockScope();\n\t\t\tconst asyncPipeScope = AsyncPipeScope.blockScope();\n\t\t\tlet hasAsync = false, hasSync = false;\n\t\t\tpipelineNames.forEach(pipelineName => {\n\t\t\t\tconst scope = stack.findScope(pipelineName);\n\t\t\t\tconst pipe = scope.get(pipelineName)!;\n\t\t\t\tif (scope instanceof AsyncPipeProvider) {\n\t\t\t\t\thasAsync = true;\n\t\t\t\t\tasyncPipeScope.set(pipelineName, pipe);\n\t\t\t\t\tif (isOnDestroy(pipe.prototype)) {\n\t\t\t\t\t\tsubscriptions.push(createSubscriptionDestroyer(() => asyncPipeScope.unsubscribe(pipelineName)));\n\t\t\t\t\t}\n\t\t\t\t} else if (scope instanceof PipeProvider) {\n\t\t\t\t\thasSync = true;\n\t\t\t\t\tsyncPipeScope.set(pipelineName, pipe);\n\t\t\t\t}\n\t\t\t});\n\t\t\thasSync && stack.pushScope(syncPipeScope);\n\t\t\thasAsync && stack.pushScope(asyncPipeScope);\n\t\t}\n\t\tconst tuples = findReactiveScopeByEventMap(this.rightEvents, stack);\n\t\tconst callback: ValueChangedCallback = () => this.get(stack);\n\t\ttuples.forEach(tuple => {\n\t\t\tconst subscription = tuple[1].subscribe(tuple[0], callback);\n\t\t\tsubscriptions.push(subscription);\n\t\t});\n\t\treturn subscriptions;\n\t}\n}\n\n\n/**\n * the default behavior is assign the right hand side to the left hand side.\n * \n * \n */\n@Deserializer('TwoWayAssignment')\nexport class TwoWayAssignmentExpression extends InfixExpressionNode<TwoWayOperator> implements BindingAssignment {\n\tstatic fromJSON(node: TwoWayAssignmentExpression, deserializer: NodeDeserializer): TwoWayAssignmentExpression {\n\t\treturn new TwoWayAssignmentExpression(\n\t\t\tdeserializer(node.left) as MemberExpression,\n\t\t\tdeserializer(node.right) as MemberExpression | Identifier\n\t\t);\n\t}\n\tstatic visit(node: TwoWayAssignmentExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t}\n\n\tdeclare protected left: MemberExpression;\n\tdeclare protected right: MemberExpression | Identifier;\n\n\tprivate rightEvents = this.right.events();\n\tprivate leftEvents = this.left.events();\n\tconstructor(left: MemberExpression, right: MemberExpression | Identifier) {\n\t\tsuper('=::', left, right);\n\t}\n\n\tset(stack: Stack, value: any) {\n\t\treturn this.setRTL(stack, value);\n\t}\n\tget(stack: Stack): any {\n\t\treturn this.getRTL(stack);\n\t}\n\n\tprivate setRTL(stack: Stack, value: any) {\n\t\treturn this.left.set(stack, value);\n\t}\n\tprivate getRTL(stack: Stack): any {\n\t\tconst rv = this.right.get(stack);\n\t\tthis.setRTL(stack, rv);\n\t\treturn rv;\n\t}\n\tprivate actionRTL(stack: Stack): ValueChangedCallback {\n\t\treturn () => this.getRTL(stack);\n\t}\n\n\tprivate setLTR(stack: Stack, value: any) {\n\t\treturn this.right.set(stack, value);\n\t}\n\tprivate getLTR(stack: Stack): any {\n\t\tconst lv = this.left.get(stack);\n\t\tthis.setLTR(stack, lv);\n\t\treturn lv;\n\t}\n\tprivate actionLTR(stack: Stack): ValueChangedCallback {\n\t\treturn () => this.getLTR(stack);\n\t}\n\n\tprivate subscribeToEvents(stack: Stack, tuples: [string, ReactiveScope<Context>][], actionCallback: ValueChangedCallback) {\n\t\tconst subscriptions: ScopeSubscription<Context>[] = [];\n\t\ttuples.forEach(tuple => {\n\t\t\tconst subscription = tuple[1].subscribe(tuple[0], actionCallback);\n\t\t\tsubscriptions.push(subscription);\n\t\t});\n\t\treturn subscriptions;\n\t}\n\n\tsubscribe(stack: Stack): ScopeSubscription<Context>[] {\n\n\t\t// right to left\n\t\tconst rightTuples = findReactiveScopeByEventMap(this.rightEvents, stack);\n\t\tconst rtlAction = this.actionRTL(stack);\n\t\tconst rtlSubscriptions = this.subscribeToEvents(stack, rightTuples, rtlAction);\n\n\t\t// left to right \n\t\tconst leftTuples = findReactiveScopeByEventMap(this.leftEvents, stack);\n\t\tconst ltrAction = this.actionLTR(stack);\n\t\tconst ltrSubscriptions = this.subscribeToEvents(stack, leftTuples, ltrAction);\n\n\t\treturn rtlSubscriptions.concat(ltrSubscriptions);\n\t}\n\n}\n"]}
|
package/component/component.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MetadataClass, MetadataContext } from '@ibyar/decorators';
|
|
2
|
+
import type { Class, TypeOf } from '../utils/typeof.js';
|
|
2
3
|
import type { ZoneType } from '../zone/bootstrap.js';
|
|
3
4
|
import { Tag, DomNode, DomRenderNode, DomElementNode } from '@ibyar/elements';
|
|
4
5
|
import { HTMLComponent, ValueControl } from './custom-element.js';
|
|
5
6
|
import { AttributeDirective, StructuralDirective } from '../directive/directive.js';
|
|
6
|
-
import { ComponentOptions, PipeOptions, ServiceOptions, DirectiveOptions } from '../annotation/
|
|
7
|
+
import { ComponentOptions, PipeOptions, ServiceOptions, DirectiveOptions } from '../annotation/options.js';
|
|
7
8
|
import { ChildRef, HostBindingRef, InputPropertyRef, ListenerRef, OutputPropertyRef, PropertyRef } from './reflect.js';
|
|
8
9
|
export interface ServiceRef<T> {
|
|
9
10
|
provideIn: TypeOf<CustomElementConstructor> | 'root' | 'platform' | 'any';
|
|
@@ -34,7 +35,7 @@ export interface ComponentRef<T> {
|
|
|
34
35
|
compiledTemplate?: DomNode;
|
|
35
36
|
styles: string;
|
|
36
37
|
extend: Tag;
|
|
37
|
-
viewClass:
|
|
38
|
+
viewClass: MetadataClass<HTMLComponent<T>> & CustomElementConstructor;
|
|
38
39
|
modelClass: TypeOf<T>;
|
|
39
40
|
inputs: InputPropertyRef[];
|
|
40
41
|
outputs: OutputPropertyRef[];
|
|
@@ -45,10 +46,9 @@ export interface ComponentRef<T> {
|
|
|
45
46
|
hostListeners: ListenerRef[];
|
|
46
47
|
viewBindings?: DomElementNode;
|
|
47
48
|
windowBindings?: DomElementNode;
|
|
48
|
-
encapsulation: 'custom' | 'shadow-dom' | 'template' | 'shadow-dom-template';
|
|
49
|
+
encapsulation: 'custom' | 'shadow-dom' | 'template' | 'shadow-dom-template' | 'shadow-slot';
|
|
49
50
|
isShadowDom: boolean;
|
|
50
|
-
|
|
51
|
-
shadowDomDelegatesFocus: boolean;
|
|
51
|
+
shadowRootInit: ShadowRootInit;
|
|
52
52
|
formAssociated: boolean | TypeOf<ValueControl<any>>;
|
|
53
53
|
zone?: ZoneType;
|
|
54
54
|
}
|
|
@@ -58,11 +58,12 @@ export declare class Components {
|
|
|
58
58
|
private static patchTemplate;
|
|
59
59
|
private static createOutputs;
|
|
60
60
|
private static parseHostNode;
|
|
61
|
-
static defineDirective(modelClass:
|
|
62
|
-
static definePipe(modelClass:
|
|
63
|
-
static defineService(modelClass:
|
|
64
|
-
static defineComponent<T extends
|
|
65
|
-
static defineView<T extends HTMLElement>(viewClass:
|
|
61
|
+
static defineDirective(modelClass: MetadataClass, opts: DirectiveOptions, metadata: MetadataContext): void;
|
|
62
|
+
static definePipe<T extends Class>(modelClass: MetadataClass<T>, opts: PipeOptions, metadata: MetadataContext): void;
|
|
63
|
+
static defineService<T extends Class>(modelClass: MetadataClass<T>, opts: ServiceOptions, metadata: MetadataContext): void;
|
|
64
|
+
static defineComponent<T extends Class>(modelClass: MetadataClass<T>, opts: ComponentOptions<T>, metadata: MetadataContext): void;
|
|
65
|
+
static defineView<T extends HTMLElement>(viewClass: MetadataClass<T>, opt: {
|
|
66
66
|
selector: string;
|
|
67
67
|
} & ElementDefinitionOptions): void;
|
|
68
68
|
}
|
|
69
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/core/component/component.ts"],"names":[],"mappings":"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"}
|
package/component/component.js
CHANGED
|
@@ -2,9 +2,11 @@ import { findByTagName, htmlParser, templateParser, canAttachShadow, directiveRe
|
|
|
2
2
|
import { ClassRegistryProvider } from '../providers/provider.js';
|
|
3
3
|
import { initCustomElementView } from '../view/view.js';
|
|
4
4
|
import { buildExpressionNodes } from '../html/expression.js';
|
|
5
|
-
import { ListenerRef
|
|
5
|
+
import { ListenerRef } from './reflect.js';
|
|
6
6
|
import { deserializeExpressionNodes } from '../html/deserialize.js';
|
|
7
|
-
|
|
7
|
+
const DEFAULT_SHADOW_ROOT_INIT = { mode: 'open', delegatesFocus: false, slotAssignment: 'named' };
|
|
8
|
+
class Components {
|
|
9
|
+
static EMPTY_LIST = Object.freeze([]);
|
|
8
10
|
static emptyList() {
|
|
9
11
|
return Components.EMPTY_LIST;
|
|
10
12
|
}
|
|
@@ -12,7 +14,7 @@ export class Components {
|
|
|
12
14
|
if (child instanceof DomElementNode && child.templateRefName?.name) {
|
|
13
15
|
const ref = templates.find(node => child.templateRefName?.name === node.templateRefName?.name);
|
|
14
16
|
if (ref?.outputs) {
|
|
15
|
-
(child.outputs
|
|
17
|
+
(child.outputs ??= []).push(...ref.outputs);
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
if (child instanceof DomParentNode) {
|
|
@@ -42,7 +44,7 @@ export class Components {
|
|
|
42
44
|
windowListeners.push(new ListenerRef(event, listener.args, listener.modelCallbackName));
|
|
43
45
|
}
|
|
44
46
|
else {
|
|
45
|
-
(templateListeners[host]
|
|
47
|
+
(templateListeners[host] ??= []).push(new ListenerRef(event, listener.args, listener.modelCallbackName));
|
|
46
48
|
}
|
|
47
49
|
});
|
|
48
50
|
const result = {};
|
|
@@ -73,44 +75,36 @@ export class Components {
|
|
|
73
75
|
}
|
|
74
76
|
return result;
|
|
75
77
|
}
|
|
76
|
-
static defineDirective(modelClass, opts) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (bootstrap.hostListeners?.length || bootstrap.hostBindings?.length) {
|
|
78
|
+
static defineDirective(modelClass, opts, metadata) {
|
|
79
|
+
Object.assign(metadata, opts);
|
|
80
|
+
if (metadata.hostListeners?.length || metadata.hostBindings?.length) {
|
|
80
81
|
const hostNode = Components.parseHostNode({
|
|
81
82
|
prototype: modelClass.prototype,
|
|
82
|
-
hostBindings:
|
|
83
|
-
hostListeners:
|
|
83
|
+
hostBindings: metadata.hostBindings,
|
|
84
|
+
hostListeners: metadata.hostListeners,
|
|
84
85
|
});
|
|
85
|
-
|
|
86
|
+
metadata.viewBindings = hostNode.host;
|
|
86
87
|
}
|
|
87
|
-
|
|
88
|
+
metadata.modelClass = modelClass;
|
|
88
89
|
ClassRegistryProvider.registerDirective(modelClass);
|
|
89
90
|
directiveRegistry.register(opts.selector, {
|
|
90
|
-
inputs:
|
|
91
|
-
outputs:
|
|
91
|
+
inputs: metadata.inputs?.map(input => input.viewAttribute),
|
|
92
|
+
outputs: metadata.outputs?.map(output => output.viewAttribute),
|
|
92
93
|
});
|
|
93
94
|
}
|
|
94
|
-
static definePipe(modelClass, opts) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
bootstrap[key] = Reflect.get(opts, key);
|
|
98
|
-
}
|
|
99
|
-
bootstrap.modelClass = modelClass;
|
|
95
|
+
static definePipe(modelClass, opts, metadata) {
|
|
96
|
+
Object.assign(metadata, opts);
|
|
97
|
+
metadata.modelClass = modelClass;
|
|
100
98
|
ClassRegistryProvider.registerPipe(modelClass);
|
|
101
99
|
}
|
|
102
|
-
static defineService(modelClass, opts) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
bootstrap.modelClass = modelClass;
|
|
108
|
-
bootstrap.name = modelClass.name;
|
|
100
|
+
static defineService(modelClass, opts, metadata) {
|
|
101
|
+
Object.assign(metadata, opts);
|
|
102
|
+
metadata.modelClass = modelClass;
|
|
103
|
+
metadata.name = modelClass.name;
|
|
109
104
|
ClassRegistryProvider.registerService(modelClass);
|
|
110
105
|
}
|
|
111
|
-
static defineComponent(modelClass, opts) {
|
|
112
|
-
const
|
|
113
|
-
const componentRef = Object.assign({}, opts, bootstrap);
|
|
106
|
+
static defineComponent(modelClass, opts, metadata) {
|
|
107
|
+
const componentRef = Object.assign(metadata, opts);
|
|
114
108
|
componentRef.extend = findByTagName(opts.extend);
|
|
115
109
|
if (typeof componentRef.template === 'string') {
|
|
116
110
|
if (componentRef.styles) {
|
|
@@ -141,16 +135,17 @@ export class Components {
|
|
|
141
135
|
// didn't find this template in 'index.html' document
|
|
142
136
|
}
|
|
143
137
|
}
|
|
144
|
-
componentRef.inputs
|
|
145
|
-
componentRef.outputs
|
|
146
|
-
componentRef.viewChild
|
|
147
|
-
componentRef.ViewChildren
|
|
148
|
-
componentRef.hostBindings
|
|
149
|
-
componentRef.hostListeners
|
|
150
|
-
componentRef.encapsulation
|
|
151
|
-
componentRef.isShadowDom = /shadow
|
|
152
|
-
|
|
153
|
-
|
|
138
|
+
componentRef.inputs ||= Components.emptyList();
|
|
139
|
+
componentRef.outputs ||= Components.emptyList();
|
|
140
|
+
componentRef.viewChild ||= Components.emptyList();
|
|
141
|
+
componentRef.ViewChildren ||= Components.emptyList();
|
|
142
|
+
componentRef.hostBindings ||= Components.emptyList();
|
|
143
|
+
componentRef.hostListeners ||= Components.emptyList();
|
|
144
|
+
componentRef.encapsulation ||= 'custom';
|
|
145
|
+
componentRef.isShadowDom = /shadow/g.test(componentRef.encapsulation);
|
|
146
|
+
if (componentRef.isShadowDom) {
|
|
147
|
+
componentRef.shadowRootInit = Object.assign({}, DEFAULT_SHADOW_ROOT_INIT, (componentRef.shadowRootInit ?? {}));
|
|
148
|
+
}
|
|
154
149
|
if (componentRef.hostListeners.length || componentRef.hostBindings.length) {
|
|
155
150
|
const hostNode = Components.parseHostNode({
|
|
156
151
|
prototype: modelClass.prototype,
|
|
@@ -182,10 +177,8 @@ export class Components {
|
|
|
182
177
|
}
|
|
183
178
|
componentRef.modelClass = modelClass;
|
|
184
179
|
componentRef.viewClass = initCustomElementView(modelClass, componentRef);
|
|
185
|
-
ReflectComponents.setComponentRef(componentRef.modelClass, componentRef);
|
|
186
|
-
ReflectComponents.setComponentRef(componentRef.viewClass, componentRef);
|
|
187
180
|
ClassRegistryProvider.registerComponent(modelClass);
|
|
188
|
-
ClassRegistryProvider.registerView(
|
|
181
|
+
ClassRegistryProvider.registerView(componentRef.viewClass);
|
|
189
182
|
const options = {};
|
|
190
183
|
const parentTagName = componentRef.extend?.name;
|
|
191
184
|
if (parentTagName) {
|
|
@@ -200,5 +193,5 @@ export class Components {
|
|
|
200
193
|
customElements.define(opt.selector, viewClass, Object.assign({}, opt, { selector: undefined }));
|
|
201
194
|
}
|
|
202
195
|
}
|
|
203
|
-
Components
|
|
196
|
+
export { Components };
|
|
204
197
|
//# sourceMappingURL=component.js.map
|