@ibyar/core 0.6.0 → 0.6.1
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/package.json +4 -4
- package/view/base-view.js +19 -14
- package/view/base-view.js.map +1 -1
- package/zone/bootstrap.d.ts +1 -1
- package/zone/proxy.d.ts +4 -4
- package/zone/proxy.js +13 -4
- package/zone/proxy.js.map +1 -1
- package/zone/zone.d.ts +2 -0
- package/zone/zone.js +9 -14
- package/zone/zone.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibyar/core",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "Implements Aurora's core functionality, low-level services, and utilities",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/ibyar/aurora/tree/dev/packages/core",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@ibyar/elements": "^0.6.
|
|
27
|
-
"@ibyar/expressions": "^0.6.
|
|
26
|
+
"@ibyar/elements": "^0.6.1",
|
|
27
|
+
"@ibyar/expressions": "^0.6.1",
|
|
28
28
|
"reflect-metadata": "^0.1.13",
|
|
29
29
|
"tslib": "^2.4.0"
|
|
30
30
|
},
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"typescript",
|
|
67
67
|
"front-end"
|
|
68
68
|
],
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "b2375dc0a3d6fea0231a3d91eb65f38a457e2a1e"
|
|
70
70
|
}
|
package/view/base-view.js
CHANGED
|
@@ -2,7 +2,9 @@ import { ReactiveScope, ReactiveScopeControl } from '@ibyar/expressions';
|
|
|
2
2
|
import { isAfterContentChecked, isAfterContentInit, isAfterViewChecked, isAfterViewInit, isDoCheck, isOnChanges, isOnDestroy, isOnInit } from '../component/lifecycle.js';
|
|
3
3
|
import { ComponentRender } from './render.js';
|
|
4
4
|
import { getCurrentZone } from '../zone/bootstrap.js';
|
|
5
|
+
import { ProxyAuroraZone } from '../zone/zone.js';
|
|
5
6
|
import { createModelChangeDetectorRef } from '../linker/change-detector-ref.js';
|
|
7
|
+
import { createZoneProxyHandler } from '../zone/proxy.js';
|
|
6
8
|
const FACTORY_CACHE = new WeakMap();
|
|
7
9
|
export function baseFactoryView(htmlElementType) {
|
|
8
10
|
if (FACTORY_CACHE.has(htmlElementType)) {
|
|
@@ -15,7 +17,7 @@ export function baseFactoryView(htmlElementType) {
|
|
|
15
17
|
this.onDestroyCalls = [];
|
|
16
18
|
this.doBlockCallback = () => {
|
|
17
19
|
if (isDoCheck(this._model)) {
|
|
18
|
-
this._zone.run(this._model.doCheck, this.
|
|
20
|
+
this._zone.run(this._model.doCheck, this._modelScope.getContextProxy());
|
|
19
21
|
}
|
|
20
22
|
};
|
|
21
23
|
this._componentRef = componentRef;
|
|
@@ -33,7 +35,10 @@ export function baseFactoryView(htmlElementType) {
|
|
|
33
35
|
const model = new modelClass(...args);
|
|
34
36
|
this._model = model;
|
|
35
37
|
const modelScope = ReactiveScopeControl.for(model);
|
|
36
|
-
|
|
38
|
+
const modelProxyRef = this._zone instanceof ProxyAuroraZone
|
|
39
|
+
? createZoneProxyHandler(model, this._zone)
|
|
40
|
+
: model;
|
|
41
|
+
modelScope.getContextProxy = () => modelProxyRef;
|
|
37
42
|
this._modelScope = modelScope;
|
|
38
43
|
this._viewScope = ReactiveScope.for({ 'this': this });
|
|
39
44
|
const elementScope = this._viewScope.getInnerScope('this');
|
|
@@ -149,7 +154,7 @@ export function baseFactoryView(htmlElementType) {
|
|
|
149
154
|
return;
|
|
150
155
|
}
|
|
151
156
|
if (isOnChanges(this._model)) {
|
|
152
|
-
this._zone.run(this._model.onChanges, this.
|
|
157
|
+
this._zone.run(this._model.onChanges, this._modelScope.getContextProxy());
|
|
153
158
|
}
|
|
154
159
|
this.doBlockCallback();
|
|
155
160
|
}
|
|
@@ -171,19 +176,19 @@ export function baseFactoryView(htmlElementType) {
|
|
|
171
176
|
attrs.forEach(attr => this.initOuterAttribute(attr));
|
|
172
177
|
}
|
|
173
178
|
if (isOnChanges(this._model)) {
|
|
174
|
-
this._zone.run(this._model.onChanges, this.
|
|
179
|
+
this._zone.run(this._model.onChanges, this._modelScope.getContextProxy());
|
|
175
180
|
}
|
|
176
181
|
if (isOnInit(this._model)) {
|
|
177
|
-
this._zone.run(this._model.onInit, this.
|
|
182
|
+
this._zone.run(this._model.onInit, this._modelScope.getContextProxy());
|
|
178
183
|
}
|
|
179
184
|
if (isDoCheck(this._model)) {
|
|
180
|
-
this._zone.run(this._model.doCheck, this.
|
|
185
|
+
this._zone.run(this._model.doCheck, this._modelScope.getContextProxy());
|
|
181
186
|
}
|
|
182
187
|
if (isAfterContentInit(this._model)) {
|
|
183
|
-
this._zone.run(this._model.afterContentInit, this.
|
|
188
|
+
this._zone.run(this._model.afterContentInit, this._modelScope.getContextProxy());
|
|
184
189
|
}
|
|
185
190
|
if (isAfterContentChecked(this._model)) {
|
|
186
|
-
this._zone.run(this._model.afterContentChecked, this.
|
|
191
|
+
this._zone.run(this._model.afterContentChecked, this._modelScope.getContextProxy());
|
|
187
192
|
}
|
|
188
193
|
// do once
|
|
189
194
|
if (this.childNodes.length === 0) {
|
|
@@ -193,20 +198,20 @@ export function baseFactoryView(htmlElementType) {
|
|
|
193
198
|
this._render.initHostListener();
|
|
194
199
|
}
|
|
195
200
|
if (isAfterViewInit(this._model)) {
|
|
196
|
-
this._zone.run(this._model.afterViewInit, this.
|
|
201
|
+
this._zone.run(this._model.afterViewInit, this._modelScope.getContextProxy());
|
|
197
202
|
}
|
|
198
203
|
if (isAfterViewChecked(this._model)) {
|
|
199
|
-
this._zone.run(this._model.afterViewChecked, this.
|
|
204
|
+
this._zone.run(this._model.afterViewChecked, this._modelScope.getContextProxy());
|
|
200
205
|
}
|
|
201
206
|
this.doBlockCallback = () => {
|
|
202
207
|
if (isDoCheck(this._model)) {
|
|
203
|
-
this._zone.run(this._model.doCheck, this.
|
|
208
|
+
this._zone.run(this._model.doCheck, this._modelScope.getContextProxy());
|
|
204
209
|
}
|
|
205
210
|
if (isAfterContentChecked(this._model)) {
|
|
206
|
-
this._zone.run(this._model.afterContentChecked, this.
|
|
211
|
+
this._zone.run(this._model.afterContentChecked, this._modelScope.getContextProxy());
|
|
207
212
|
}
|
|
208
213
|
if (isAfterViewChecked(this._model)) {
|
|
209
|
-
this._zone.run(this._model.afterViewChecked, this.
|
|
214
|
+
this._zone.run(this._model.afterViewChecked, this._modelScope.getContextProxy());
|
|
210
215
|
}
|
|
211
216
|
};
|
|
212
217
|
}
|
|
@@ -258,7 +263,7 @@ export function baseFactoryView(htmlElementType) {
|
|
|
258
263
|
disconnectedCallback() {
|
|
259
264
|
// notify first, then call model.onDestroy func
|
|
260
265
|
if (isOnDestroy(this._model)) {
|
|
261
|
-
this._zone.run(this._model.onDestroy, this.
|
|
266
|
+
this._zone.run(this._model.onDestroy, this._modelScope.getContextProxy());
|
|
262
267
|
}
|
|
263
268
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
264
269
|
this.subscriptions.splice(0, this.subscriptions.length);
|
package/view/base-view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-view.js","sourceRoot":"","sources":["../../../src/core/view/base-view.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAA8B,MAAM,oBAAoB,CAAC;AACrG,OAAO,EACN,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAC7D,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAC9D,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAEhF,MAAM,aAAa,GAAG,IAAI,OAAO,EAAmD,CAAC;AAErF,MAAM,UAAU,eAAe,CAAmB,eAAoC;IAErF,IAAI,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;QACvC,OAAO,aAAa,CAAC,GAAG,CAAC,eAAe,CAA6B,CAAC;KACtE;IACD,MAAM,UAAW,SAAQ,eAAe;QAevC,YAAY,YAA6B,EAAE,UAAqB;YAC/D,KAAK,EAAE,CAAC;YAJD,kBAAa,GAAiC,EAAE,CAAC;YACjD,mBAAc,GAAmB,EAAE,CAAC;YAgD5C,oBAAe,GAAG,GAAS,EAAE;gBAC5B,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;iBACjD;YACF,CAAC,CAAC;YAhDD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YAClC,IAAI,YAAY,CAAC,WAAW,EAAE;gBAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;oBACpC,IAAI,EAAE,YAAY,CAAC,aAAa;oBAChC,cAAc,EAAE,YAAY,CAAC,uBAAuB;iBACpD,CAAC,CAAC;aACH;YACD,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,iCAAiC;YAClD,MAAM,QAAQ,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACnB,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnD,UAAU,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;YACzC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAE9B,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,GAAG,CAA+B,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACpF,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAkC,MAAM,CAAE,CAAC;YAC7F,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACnC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,aAAoB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;oBACzE,IAAI,QAAQ,KAAK,QAAQ,EAAE;wBAC1B,OAAO;qBACP;oBACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,aAAoB,EAAE,QAAQ,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,aAAoB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;oBAC7E,IAAI,QAAQ,KAAK,QAAQ,EAAE;wBAC1B,OAAO;qBACP;oBACD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,aAAoB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAGH,8CAA8C;YAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACxD;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9D,CAAC;QAQD,eAAe;YACd,OAAO,IAAI,CAAC,aAAa,CAAC;QAC3B,CAAC;QAED,kBAAkB,CAAC,MAA0B;YAC5C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAChC,CAAC;QAED,kBAAkB;YACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC9B,CAAC;QAED,kBAAkB;YACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7C,CAAC;QAED,iBAAiB,CAAC,QAAgB;YACjC,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,QAAQ,GAAG,CAAC,EAAE;gBACjB,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC3C;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,iBAAiB,CAAC,QAAgB;YACjC,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,KAAK,GAAG,CAAC,EAAE;gBACd,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACxC;YACD,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,GAAG,CAAC,EAAE;gBACd,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACxC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,QAAQ,CAAC,QAAgB;YACxB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;QAClF,CAAC;QAED,QAAQ,CAAC,QAAgB;YACxB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;QAClF,CAAC;QAED,aAAa,CAAC,QAAgB;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,QAAQ,EAAE;gBACb,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;aAC3C;QACF,CAAC;QAED,aAAa,CAAC,QAAqB,EAAE,KAAU;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAkB,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAsB,EAAE,KAAK,CAAC,CAAC;aAC7D;QACF,CAAC;QAED,SAAS,CAAC,QAAgB;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;QACrF,CAAC;QAED,SAAS,CAAC,QAAgB;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;QACrF,CAAC;QAED,eAAe,CAAI,QAAgB;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,SAAS,EAAE;gBACd,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAoB,CAAC;aAC/D;YACD,OAAO;QACR,CAAC;QAED,OAAO,CAAC,QAAgB;YACvB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAEO,kBAAkB,CAAC,YAAoB,EAAE,KAAU;YAC1D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;gBAC1C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;aACnC;iBACI,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;gBACpC,IAAI,KAAK,EAAE;oBACV,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;iBACrC;qBAAM;oBACN,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBACnC;aACD;iBAAM;gBACN,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;aACxC;QACF,CAAC;QAED,YAAY,CAAC,YAAoB,EAAE,KAAU;YAC5C,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,YAAY,CAAC,YAAoB;YAChC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7E,CAAC;QAED,wBAAwB,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAgB;YACxE,IAAI,QAAQ,KAAK,QAAQ,EAAE;gBAC1B,OAAO;aACP;YACD,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aACnD;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;QAED,iBAAiB;YAChB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;gBAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;aACrD;YACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,SAAS,EAAE;oBAClE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;iBAChE;YACF,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7D,IAAI,KAAK,GAAW,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;aACrD;YAED,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aACnD;YACD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAChD;YACD,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aACjD;YACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1D;YACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC7D;YAED,UAAU;YACV,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,gBAAgB;gBAChB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAExB,4BAA4B;gBAC5B,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;aAChC;YAED,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aACvD;YACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE;gBAC3B,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;iBACjD;gBACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC7D;gBACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC1D;YACF,CAAC,CAAC;QACH,CAAC;QAGD,kBAAkB,CAAC,IAAU;YAC5B,sBAAsB;YACtB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YAC5B,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAChC,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;oBACvC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;iBACpE;aACD;iBACI,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACrC,kCAAkC;gBAClC,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC/D,wDAAwD;gBACxD,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7C,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;gBACtE,IAAI,QAAQ,GAAa,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;oBAC1C,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;aACH;iBAAM,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACxC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAM,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,IAAI,UAAU,EAAE;oBACf,kCAAkC;oBAClC,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC7C,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBACtE,IAAI,QAAQ,GAAa,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;oBAC5D,UAAU,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;wBACjC,QAAqB,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;iBACH;aACD;iBAAM;gBACN,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1C;QACF,CAAC;QACD,SAAS,CAAC,QAAoB;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QACD,eAAe;YACd,sBAAsB;YACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;QACD,oBAAoB;YACnB,+CAA+C;YAC/C,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aACnD;YACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACtC,IAAI;oBACH,QAAQ,EAAE,CAAC;iBACX;gBAAC,OAAO,KAAK,EAAE;oBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACrB;YACF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,aAAa;QACb,gBAAgB,CAAC,SAAiB,EAAE,QAAmD,EAAE,OAA2C;YACnI,IAAI,IAAI,GAAG,SAAS,IAAI,IAAI,EAAE;gBAC7B,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAY,EAAE,EAAE;oBACjD,QAAqB,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC,EAAE,OAAO,CAAC,CAAC;gBACZ,OAAO;aACP;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAM,SAAS,CAAC,CAAC;YACzD,IAAI,WAAW,EAAE;gBAChB,WAAW,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;oBAClC,QAAqB,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACH;QACF,CAAC;QAED,aAAa,CAAC,SAAiB,EAAE,KAAW;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAM,SAAS,CAAC,CAAC;YACxD,IAAI,UAAU,EAAE;gBACf,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,OAAO;aACP;QACF,CAAC;KACD;IAAA,CAAC;IACF,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC;AACnB,CAAC","sourcesContent":["import type { TypeOf } from '../utils/typeof.js';\nimport { ReactiveScope, ReactiveScopeControl, Context, ScopeSubscription } from '@ibyar/expressions';\nimport {\n\tisAfterContentChecked, isAfterContentInit, isAfterViewChecked,\n\tisAfterViewInit, isDoCheck, isOnChanges, isOnDestroy, isOnInit\n} from '../component/lifecycle.js';\nimport { ComponentRef, PropertyRef } from '../component/component.js';\nimport { BaseComponent, CustomElement, HTMLComponent, ModelType } from '../component/custom-element.js';\nimport { EventEmitter } from '../component/events.js';\nimport { ComponentRender } from './render.js';\nimport { getCurrentZone } from '../zone/bootstrap.js';\nimport { AuroraZone } from '../zone/zone.js';\nimport { createModelChangeDetectorRef } from '../linker/change-detector-ref.js';\n\nconst FACTORY_CACHE = new WeakMap<TypeOf<HTMLElement>, TypeOf<HTMLComponent<any>>>();\n\nexport function baseFactoryView<T extends object>(htmlElementType: TypeOf<HTMLElement>): TypeOf<HTMLComponent<T>> {\n\n\tif (FACTORY_CACHE.has(htmlElementType)) {\n\t\treturn FACTORY_CACHE.get(htmlElementType) as TypeOf<HTMLComponent<T>>;\n\t}\n\tclass CustomView extends htmlElementType implements BaseComponent<T>, CustomElement {\n\t\t_model: ModelType<T>;\n\t\t_parentComponent: HTMLComponent<object>;\n\t\t_render: ComponentRender<T>;\n\t\t_shadowRoot: ShadowRoot;\n\n\t\t_componentRef: ComponentRef<T>;\n\n\t\t_modelScope: ReactiveScopeControl<T>;\n\t\t_viewScope: ReactiveScope<{ 'this': BaseComponent<T> }>;\n\t\t_zone: AuroraZone;\n\n\t\tprivate subscriptions: ScopeSubscription<Context>[] = [];\n\t\tprivate onDestroyCalls: (() => void)[] = [];\n\n\t\tconstructor(componentRef: ComponentRef<T>, modelClass: TypeOf<T>) {\n\t\t\tsuper();\n\t\t\tthis._componentRef = componentRef;\n\t\t\tif (componentRef.isShadowDom) {\n\t\t\t\tthis._shadowRoot = this.attachShadow({\n\t\t\t\t\tmode: componentRef.shadowDomMode,\n\t\t\t\t\tdelegatesFocus: componentRef.shadowDomDelegatesFocus\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst args = []; /* resolve dependency injection*/\n\t\t\tconst detector = createModelChangeDetectorRef(() => this._modelScope);\n\t\t\targs.push(detector)\n\t\t\tthis._zone = getCurrentZone(componentRef.zone).fork();\n\t\t\targs.push(this._zone);\n\t\t\tconst model = new modelClass(...args);\n\t\t\tthis._model = model;\n\n\t\t\tconst modelScope = ReactiveScopeControl.for(model);\n\t\t\tmodelScope.getContextProxy = () => model;\n\t\t\tthis._modelScope = modelScope;\n\n\t\t\tthis._viewScope = ReactiveScope.for<{ 'this': BaseComponent<T> }>({ 'this': this });\n\t\t\tconst elementScope = this._viewScope.getInnerScope<ReactiveScope<BaseComponent<T>>>('this')!;\n\t\t\tcomponentRef.inputs.forEach(input => {\n\t\t\t\telementScope.subscribe(input.viewAttribute as any, (newValue, oldValue) => {\n\t\t\t\t\tif (newValue === oldValue) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis._modelScope.set(input.modelProperty as any, newValue);\n\t\t\t\t});\n\t\t\t\tthis._modelScope.subscribe(input.modelProperty as any, (newValue, oldValue) => {\n\t\t\t\t\tif (newValue === oldValue) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\telementScope.emit(input.viewAttribute as any, newValue, oldValue);\n\t\t\t\t});\n\t\t\t});\n\n\n\t\t\t// if property of the model has view decorator\n\t\t\tif (this._componentRef.view) {\n\t\t\t\tReflect.set(this._model, this._componentRef.view, this);\n\t\t\t}\n\t\t\tthis._render = new ComponentRender(this, this.subscriptions);\n\t\t}\n\n\t\tdoBlockCallback = (): void => {\n\t\t\tif (isDoCheck(this._model)) {\n\t\t\t\tthis._zone.run(this._model.doCheck, this._model);\n\t\t\t}\n\t\t};\n\n\t\tgetComponentRef(): ComponentRef<T> {\n\t\t\treturn this._componentRef;\n\t\t}\n\n\t\tsetParentComponent(parent: HTMLComponent<any>): void {\n\t\t\tthis._parentComponent = parent;\n\t\t}\n\n\t\tgetParentComponent(): HTMLComponent<any> {\n\t\t\treturn this._parentComponent;\n\t\t}\n\n\t\thasParentComponent(): boolean {\n\t\t\treturn this._parentComponent ? true : false;\n\t\t}\n\n\t\thasInputStartWith(viewProp: string): boolean {\n\t\t\tlet dotIndex = viewProp.indexOf('.');\n\t\t\tif (dotIndex > 0) {\n\t\t\t\tviewProp = viewProp.substring(0, dotIndex);\n\t\t\t}\n\t\t\treturn this.hasInput(viewProp);\n\t\t}\n\n\t\tgetInputStartWith(viewProp: string): PropertyRef | undefined {\n\t\t\tlet index = viewProp.indexOf('.');\n\t\t\tif (index > 0) {\n\t\t\t\tviewProp = viewProp.substring(0, index);\n\t\t\t}\n\t\t\tindex = viewProp.indexOf('[');\n\t\t\tif (index > 0) {\n\t\t\t\tviewProp = viewProp.substring(0, index);\n\t\t\t}\n\t\t\treturn this.getInput(viewProp);\n\t\t}\n\n\t\thasInput(viewProp: string): boolean {\n\t\t\treturn this._componentRef.inputs.some(input => input.viewAttribute === viewProp);\n\t\t}\n\n\t\tgetInput(viewProp: string): PropertyRef | undefined {\n\t\t\treturn this._componentRef.inputs.find(input => input.viewAttribute === viewProp);\n\t\t}\n\n\t\tgetInputValue(viewProp: string): any {\n\t\t\tconst inputRef = this.getInput(viewProp);\n\t\t\tif (inputRef) {\n\t\t\t\treturn this._model[inputRef.modelProperty];\n\t\t\t}\n\t\t}\n\n\t\tsetInputValue(viewProp: PropertyKey, value: any): void {\n\t\t\tconst inputRef = this.getInput(viewProp as string);\n\t\t\tif (inputRef) {\n\t\t\t\tthis._modelScope.set(inputRef.modelProperty as never, value);\n\t\t\t}\n\t\t}\n\n\t\thasOutput(viewProp: string): boolean {\n\t\t\treturn this._componentRef.outputs.some(output => output.viewAttribute === viewProp);\n\t\t}\n\n\t\tgetOutput(viewProp: string): PropertyRef | undefined {\n\t\t\treturn this._componentRef.outputs.find(output => output.viewAttribute === viewProp);\n\t\t}\n\n\t\tgetEventEmitter<V>(viewProp: string): EventEmitter<V> | undefined {\n\t\t\tconst outputRef = this.getOutput(viewProp);\n\t\t\tif (outputRef) {\n\t\t\t\treturn this._model[outputRef.modelProperty] as EventEmitter<V>;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\thasProp(propName: string): boolean {\n\t\t\treturn Reflect.has(this._model, propName);\n\t\t}\n\n\t\tprivate setAttributeHelper(attrViewName: string, value: any): void {\n\t\t\tif (value === null || value === undefined) {\n\t\t\t\tthis.removeAttribute(attrViewName);\n\t\t\t}\n\t\t\telse if (typeof value === 'boolean') {\n\t\t\t\tif (value) {\n\t\t\t\t\tsuper.setAttribute(attrViewName, '');\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeAttribute(attrViewName);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsuper.setAttribute(attrViewName, value);\n\t\t\t}\n\t\t}\n\n\t\tsetAttribute(attrViewName: string, value: any): void {\n\t\t\tthis.setInputValue(attrViewName, value);\n\t\t\tthis.setAttributeHelper(attrViewName, value);\n\t\t}\n\n\t\tgetAttribute(attrViewName: string): string | null {\n\t\t\treturn this.getInputValue(attrViewName) ?? super.getAttribute(attrViewName);\n\t\t}\n\n\t\tattributeChangedCallback(name: string, oldValue: string, newValue: string) {\n\t\t\tif (newValue === oldValue) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (isOnChanges(this._model)) {\n\t\t\t\tthis._zone.run(this._model.onChanges, this._model);\n\t\t\t}\n\t\t\tthis.doBlockCallback();\n\t\t}\n\n\t\tconnectedCallback() {\n\t\t\tif (this.subscriptions.length) {\n\t\t\t\tthis.subscriptions.forEach(sub => sub.unsubscribe());\n\t\t\t}\n\t\t\tthis.subscriptions.splice(0, this.subscriptions.length);\n\t\t\tconst cds = this._zone.onEmpty.subscribe(() => this._modelScope.detectChanges());\n\t\t\tthis.onDestroy(() => cds.unsubscribe());\n\t\t\tthis._componentRef.inputs.forEach(input => {\n\t\t\t\tconst inputDefaultValue = this._model[input.modelProperty];\n\t\t\t\tif (inputDefaultValue !== null && inputDefaultValue !== undefined) {\n\t\t\t\t\tthis.setAttributeHelper(input.viewAttribute, inputDefaultValue);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (!this.hasParentComponent() && this.attributes.length > 0) {\n\t\t\t\tlet attrs: Attr[] = Array.prototype.slice.call(this.attributes);\n\t\t\t\tattrs.forEach(attr => this.initOuterAttribute(attr));\n\t\t\t}\n\n\t\t\tif (isOnChanges(this._model)) {\n\t\t\t\tthis._zone.run(this._model.onChanges, this._model);\n\t\t\t}\n\t\t\tif (isOnInit(this._model)) {\n\t\t\t\tthis._zone.run(this._model.onInit, this._model);\n\t\t\t}\n\t\t\tif (isDoCheck(this._model)) {\n\t\t\t\tthis._zone.run(this._model.doCheck, this._model);\n\t\t\t}\n\t\t\tif (isAfterContentInit(this._model)) {\n\t\t\t\tthis._zone.run(this._model.afterContentInit, this._model);\n\t\t\t}\n\t\t\tif (isAfterContentChecked(this._model)) {\n\t\t\t\tthis._zone.run(this._model.afterContentChecked, this._model);\n\t\t\t}\n\n\t\t\t// do once\n\t\t\tif (this.childNodes.length === 0) {\n\t\t\t\t// setup ui view\n\t\t\t\tthis._render.initView();\n\n\t\t\t\t// init Host Listener events\n\t\t\t\tthis._render.initHostListener();\n\t\t\t}\n\n\t\t\tif (isAfterViewInit(this._model)) {\n\t\t\t\tthis._zone.run(this._model.afterViewInit, this._model);\n\t\t\t}\n\t\t\tif (isAfterViewChecked(this._model)) {\n\t\t\t\tthis._zone.run(this._model.afterViewChecked, this._model);\n\t\t\t}\n\t\t\tthis.doBlockCallback = () => {\n\t\t\t\tif (isDoCheck(this._model)) {\n\t\t\t\t\tthis._zone.run(this._model.doCheck, this._model);\n\t\t\t\t}\n\t\t\t\tif (isAfterContentChecked(this._model)) {\n\t\t\t\t\tthis._zone.run(this._model.afterContentChecked, this._model);\n\t\t\t\t}\n\t\t\t\tif (isAfterViewChecked(this._model)) {\n\t\t\t\t\tthis._zone.run(this._model.afterViewChecked, this._model);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\n\t\tinitOuterAttribute(attr: Attr) {\n\t\t\t// [window, this] scop\n\t\t\tlet elementAttr = attr.name;\n\t\t\tlet modelProperty = attr.value;\n\t\t\tif (elementAttr.startsWith('[')) {\n\t\t\t\telementAttr = elementAttr.substring(1, elementAttr.length - 1);\n\t\t\t\tif (Reflect.has(window, modelProperty)) {\n\t\t\t\t\tthis.setInputValue(elementAttr, Reflect.get(window, modelProperty));\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (elementAttr.startsWith('(')) {\n\t\t\t\t// (elementAttr)=\"modelProperty()\"\n\t\t\t\telementAttr = elementAttr.substring(1, elementAttr.length - 1);\n\t\t\t\t// this.handleEvent(element, elementAttr, viewProperty);\n\t\t\t\tmodelProperty = modelProperty.endsWith('()') ?\n\t\t\t\t\tmodelProperty.substring(0, modelProperty.length - 2) : modelProperty;\n\t\t\t\tlet callback: Function = Reflect.get(window, modelProperty);\n\t\t\t\tthis.addEventListener(elementAttr, event => {\n\t\t\t\t\tcallback(event);\n\t\t\t\t});\n\t\t\t} else if (elementAttr.startsWith('on')) {\n\t\t\t\tconst modelEvent = this.getEventEmitter<any>(elementAttr.substring(2));\n\t\t\t\tif (modelEvent) {\n\t\t\t\t\t// modelEvent.subscribe(listener);\n\t\t\t\t\tmodelProperty = modelProperty.endsWith('()') ?\n\t\t\t\t\t\tmodelProperty.substring(0, modelProperty.length - 2) : modelProperty;\n\t\t\t\t\tlet listener: Function = Reflect.get(window, modelProperty);\n\t\t\t\t\tmodelEvent.subscribe((data: any) => {\n\t\t\t\t\t\t(listener as Function)(data);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.setInputValue(attr.name, attr.value);\n\t\t\t}\n\t\t}\n\t\tonDestroy(callback: () => void) {\n\t\t\tthis.onDestroyCalls.push(callback);\n\t\t}\n\t\tadoptedCallback() {\n\t\t\t// restart the process\n\t\t\tthis.innerHTML = '';\n\t\t\tthis.connectedCallback();\n\t\t}\n\t\tdisconnectedCallback() {\n\t\t\t// notify first, then call model.onDestroy func\n\t\t\tif (isOnDestroy(this._model)) {\n\t\t\t\tthis._zone.run(this._model.onDestroy, this._model);\n\t\t\t}\n\t\t\tthis.subscriptions.forEach(sub => sub.unsubscribe());\n\t\t\tthis.subscriptions.splice(0, this.subscriptions.length);\n\t\t\tthis.onDestroyCalls.forEach(callback => {\n\t\t\t\ttry {\n\t\t\t\t\tcallback();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.onDestroyCalls.splice(0, this.onDestroyCalls.length);\n\t\t}\n\n\t\t// events api\n\t\taddEventListener(eventName: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void {\n\t\t\tif ('on' + eventName in this) {\n\t\t\t\tsuper.addEventListener(eventName, (event: Event) => {\n\t\t\t\t\t(listener as Function)(event);\n\t\t\t\t}, options);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst modelOutput = this.getEventEmitter<any>(eventName);\n\t\t\tif (modelOutput) {\n\t\t\t\tmodelOutput.subscribe((data: any) => {\n\t\t\t\t\t(listener as Function)(data);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\ttriggerOutput(eventName: string, value?: any): void {\n\t\t\tconst modelEvent = this.getEventEmitter<any>(eventName);\n\t\t\tif (modelEvent) {\n\t\t\t\tmodelEvent.emit(value);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\tFACTORY_CACHE.set(htmlElementType, CustomView);\n\treturn CustomView;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"base-view.js","sourceRoot":"","sources":["../../../src/core/view/base-view.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TypeOf } from '../utils/typeof.js';\nimport { ReactiveScope, ReactiveScopeControl, Context, ScopeSubscription } from '@ibyar/expressions';\nimport {\n\tisAfterContentChecked, isAfterContentInit, isAfterViewChecked,\n\tisAfterViewInit, isDoCheck, isOnChanges, isOnDestroy, isOnInit\n} from '../component/lifecycle.js';\nimport { ComponentRef, PropertyRef } from '../component/component.js';\nimport { BaseComponent, CustomElement, HTMLComponent, ModelType } from '../component/custom-element.js';\nimport { EventEmitter } from '../component/events.js';\nimport { ComponentRender } from './render.js';\nimport { getCurrentZone } from '../zone/bootstrap.js';\nimport { AuroraZone, ProxyAuroraZone } from '../zone/zone.js';\nimport { createModelChangeDetectorRef } from '../linker/change-detector-ref.js';\nimport { createZoneProxyHandler } from '../zone/proxy.js';\n\nconst FACTORY_CACHE = new WeakMap<TypeOf<HTMLElement>, TypeOf<HTMLComponent<any>>>();\n\nexport function baseFactoryView<T extends object>(htmlElementType: TypeOf<HTMLElement>): TypeOf<HTMLComponent<T>> {\n\n\tif (FACTORY_CACHE.has(htmlElementType)) {\n\t\treturn FACTORY_CACHE.get(htmlElementType) as TypeOf<HTMLComponent<T>>;\n\t}\n\tclass CustomView extends htmlElementType implements BaseComponent<T>, CustomElement {\n\t\t_model: ModelType<T>;\n\t\t_parentComponent: HTMLComponent<object>;\n\t\t_render: ComponentRender<T>;\n\t\t_shadowRoot: ShadowRoot;\n\n\t\t_componentRef: ComponentRef<T>;\n\n\t\t_modelScope: ReactiveScopeControl<T>;\n\t\t_viewScope: ReactiveScope<{ 'this': BaseComponent<T> }>;\n\t\t_zone: AuroraZone;\n\n\t\tprivate subscriptions: ScopeSubscription<Context>[] = [];\n\t\tprivate onDestroyCalls: (() => void)[] = [];\n\n\t\tconstructor(componentRef: ComponentRef<T>, modelClass: TypeOf<T>) {\n\t\t\tsuper();\n\t\t\tthis._componentRef = componentRef;\n\t\t\tif (componentRef.isShadowDom) {\n\t\t\t\tthis._shadowRoot = this.attachShadow({\n\t\t\t\t\tmode: componentRef.shadowDomMode,\n\t\t\t\t\tdelegatesFocus: componentRef.shadowDomDelegatesFocus\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst args = []; /* resolve dependency injection*/\n\t\t\tconst detector = createModelChangeDetectorRef(() => this._modelScope);\n\t\t\targs.push(detector)\n\t\t\tthis._zone = getCurrentZone(componentRef.zone).fork();\n\t\t\targs.push(this._zone);\n\t\t\tconst model = new modelClass(...args);\n\t\t\tthis._model = model;\n\n\t\t\tconst modelScope = ReactiveScopeControl.for(model);\n\t\t\tconst modelProxyRef = this._zone instanceof ProxyAuroraZone\n\t\t\t\t? createZoneProxyHandler(model, this._zone)\n\t\t\t\t: model;\n\t\t\tmodelScope.getContextProxy = () => modelProxyRef;\n\t\t\tthis._modelScope = modelScope;\n\n\t\t\tthis._viewScope = ReactiveScope.for<{ 'this': BaseComponent<T> }>({ 'this': this });\n\t\t\tconst elementScope = this._viewScope.getInnerScope<ReactiveScope<BaseComponent<T>>>('this')!;\n\t\t\tcomponentRef.inputs.forEach(input => {\n\t\t\t\telementScope.subscribe(input.viewAttribute as any, (newValue, oldValue) => {\n\t\t\t\t\tif (newValue === oldValue) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis._modelScope.set(input.modelProperty as any, newValue);\n\t\t\t\t});\n\t\t\t\tthis._modelScope.subscribe(input.modelProperty as any, (newValue, oldValue) => {\n\t\t\t\t\tif (newValue === oldValue) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\telementScope.emit(input.viewAttribute as any, newValue, oldValue);\n\t\t\t\t});\n\t\t\t});\n\n\n\t\t\t// if property of the model has view decorator\n\t\t\tif (this._componentRef.view) {\n\t\t\t\tReflect.set(this._model, this._componentRef.view, this);\n\t\t\t}\n\t\t\tthis._render = new ComponentRender(this, this.subscriptions);\n\t\t}\n\n\t\tdoBlockCallback = (): void => {\n\t\t\tif (isDoCheck(this._model)) {\n\t\t\t\tthis._zone.run(this._model.doCheck, this._modelScope.getContextProxy!());\n\t\t\t}\n\t\t};\n\n\t\tgetComponentRef(): ComponentRef<T> {\n\t\t\treturn this._componentRef;\n\t\t}\n\n\t\tsetParentComponent(parent: HTMLComponent<any>): void {\n\t\t\tthis._parentComponent = parent;\n\t\t}\n\n\t\tgetParentComponent(): HTMLComponent<any> {\n\t\t\treturn this._parentComponent;\n\t\t}\n\n\t\thasParentComponent(): boolean {\n\t\t\treturn this._parentComponent ? true : false;\n\t\t}\n\n\t\thasInputStartWith(viewProp: string): boolean {\n\t\t\tlet dotIndex = viewProp.indexOf('.');\n\t\t\tif (dotIndex > 0) {\n\t\t\t\tviewProp = viewProp.substring(0, dotIndex);\n\t\t\t}\n\t\t\treturn this.hasInput(viewProp);\n\t\t}\n\n\t\tgetInputStartWith(viewProp: string): PropertyRef | undefined {\n\t\t\tlet index = viewProp.indexOf('.');\n\t\t\tif (index > 0) {\n\t\t\t\tviewProp = viewProp.substring(0, index);\n\t\t\t}\n\t\t\tindex = viewProp.indexOf('[');\n\t\t\tif (index > 0) {\n\t\t\t\tviewProp = viewProp.substring(0, index);\n\t\t\t}\n\t\t\treturn this.getInput(viewProp);\n\t\t}\n\n\t\thasInput(viewProp: string): boolean {\n\t\t\treturn this._componentRef.inputs.some(input => input.viewAttribute === viewProp);\n\t\t}\n\n\t\tgetInput(viewProp: string): PropertyRef | undefined {\n\t\t\treturn this._componentRef.inputs.find(input => input.viewAttribute === viewProp);\n\t\t}\n\n\t\tgetInputValue(viewProp: string): any {\n\t\t\tconst inputRef = this.getInput(viewProp);\n\t\t\tif (inputRef) {\n\t\t\t\treturn this._model[inputRef.modelProperty];\n\t\t\t}\n\t\t}\n\n\t\tsetInputValue(viewProp: PropertyKey, value: any): void {\n\t\t\tconst inputRef = this.getInput(viewProp as string);\n\t\t\tif (inputRef) {\n\t\t\t\tthis._modelScope.set(inputRef.modelProperty as never, value);\n\t\t\t}\n\t\t}\n\n\t\thasOutput(viewProp: string): boolean {\n\t\t\treturn this._componentRef.outputs.some(output => output.viewAttribute === viewProp);\n\t\t}\n\n\t\tgetOutput(viewProp: string): PropertyRef | undefined {\n\t\t\treturn this._componentRef.outputs.find(output => output.viewAttribute === viewProp);\n\t\t}\n\n\t\tgetEventEmitter<V>(viewProp: string): EventEmitter<V> | undefined {\n\t\t\tconst outputRef = this.getOutput(viewProp);\n\t\t\tif (outputRef) {\n\t\t\t\treturn this._model[outputRef.modelProperty] as EventEmitter<V>;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\thasProp(propName: string): boolean {\n\t\t\treturn Reflect.has(this._model, propName);\n\t\t}\n\n\t\tprivate setAttributeHelper(attrViewName: string, value: any): void {\n\t\t\tif (value === null || value === undefined) {\n\t\t\t\tthis.removeAttribute(attrViewName);\n\t\t\t}\n\t\t\telse if (typeof value === 'boolean') {\n\t\t\t\tif (value) {\n\t\t\t\t\tsuper.setAttribute(attrViewName, '');\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeAttribute(attrViewName);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsuper.setAttribute(attrViewName, value);\n\t\t\t}\n\t\t}\n\n\t\tsetAttribute(attrViewName: string, value: any): void {\n\t\t\tthis.setInputValue(attrViewName, value);\n\t\t\tthis.setAttributeHelper(attrViewName, value);\n\t\t}\n\n\t\tgetAttribute(attrViewName: string): string | null {\n\t\t\treturn this.getInputValue(attrViewName) ?? super.getAttribute(attrViewName);\n\t\t}\n\n\t\tattributeChangedCallback(name: string, oldValue: string, newValue: string) {\n\t\t\tif (newValue === oldValue) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (isOnChanges(this._model)) {\n\t\t\t\tthis._zone.run(this._model.onChanges, this._modelScope.getContextProxy!());\n\t\t\t}\n\t\t\tthis.doBlockCallback();\n\t\t}\n\n\t\tconnectedCallback() {\n\t\t\tif (this.subscriptions.length) {\n\t\t\t\tthis.subscriptions.forEach(sub => sub.unsubscribe());\n\t\t\t}\n\t\t\tthis.subscriptions.splice(0, this.subscriptions.length);\n\t\t\tconst cds = this._zone.onEmpty.subscribe(() => this._modelScope.detectChanges());\n\t\t\tthis.onDestroy(() => cds.unsubscribe());\n\t\t\tthis._componentRef.inputs.forEach(input => {\n\t\t\t\tconst inputDefaultValue = this._model[input.modelProperty];\n\t\t\t\tif (inputDefaultValue !== null && inputDefaultValue !== undefined) {\n\t\t\t\t\tthis.setAttributeHelper(input.viewAttribute, inputDefaultValue);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (!this.hasParentComponent() && this.attributes.length > 0) {\n\t\t\t\tlet attrs: Attr[] = Array.prototype.slice.call(this.attributes);\n\t\t\t\tattrs.forEach(attr => this.initOuterAttribute(attr));\n\t\t\t}\n\n\t\t\tif (isOnChanges(this._model)) {\n\t\t\t\tthis._zone.run(this._model.onChanges, this._modelScope.getContextProxy!());\n\t\t\t}\n\t\t\tif (isOnInit(this._model)) {\n\t\t\t\tthis._zone.run(this._model.onInit, this._modelScope.getContextProxy!());\n\t\t\t}\n\t\t\tif (isDoCheck(this._model)) {\n\t\t\t\tthis._zone.run(this._model.doCheck, this._modelScope.getContextProxy!());\n\t\t\t}\n\t\t\tif (isAfterContentInit(this._model)) {\n\t\t\t\tthis._zone.run(this._model.afterContentInit, this._modelScope.getContextProxy!());\n\t\t\t}\n\t\t\tif (isAfterContentChecked(this._model)) {\n\t\t\t\tthis._zone.run(this._model.afterContentChecked, this._modelScope.getContextProxy!());\n\t\t\t}\n\n\t\t\t// do once\n\t\t\tif (this.childNodes.length === 0) {\n\t\t\t\t// setup ui view\n\t\t\t\tthis._render.initView();\n\n\t\t\t\t// init Host Listener events\n\t\t\t\tthis._render.initHostListener();\n\t\t\t}\n\n\t\t\tif (isAfterViewInit(this._model)) {\n\t\t\t\tthis._zone.run(this._model.afterViewInit, this._modelScope.getContextProxy!());\n\t\t\t}\n\t\t\tif (isAfterViewChecked(this._model)) {\n\t\t\t\tthis._zone.run(this._model.afterViewChecked, this._modelScope.getContextProxy!());\n\t\t\t}\n\t\t\tthis.doBlockCallback = () => {\n\t\t\t\tif (isDoCheck(this._model)) {\n\t\t\t\t\tthis._zone.run(this._model.doCheck, this._modelScope.getContextProxy!());\n\t\t\t\t}\n\t\t\t\tif (isAfterContentChecked(this._model)) {\n\t\t\t\t\tthis._zone.run(this._model.afterContentChecked, this._modelScope.getContextProxy!());\n\t\t\t\t}\n\t\t\t\tif (isAfterViewChecked(this._model)) {\n\t\t\t\t\tthis._zone.run(this._model.afterViewChecked, this._modelScope.getContextProxy!());\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\n\t\tinitOuterAttribute(attr: Attr) {\n\t\t\t// [window, this] scop\n\t\t\tlet elementAttr = attr.name;\n\t\t\tlet modelProperty = attr.value;\n\t\t\tif (elementAttr.startsWith('[')) {\n\t\t\t\telementAttr = elementAttr.substring(1, elementAttr.length - 1);\n\t\t\t\tif (Reflect.has(window, modelProperty)) {\n\t\t\t\t\tthis.setInputValue(elementAttr, Reflect.get(window, modelProperty));\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (elementAttr.startsWith('(')) {\n\t\t\t\t// (elementAttr)=\"modelProperty()\"\n\t\t\t\telementAttr = elementAttr.substring(1, elementAttr.length - 1);\n\t\t\t\t// this.handleEvent(element, elementAttr, viewProperty);\n\t\t\t\tmodelProperty = modelProperty.endsWith('()') ?\n\t\t\t\t\tmodelProperty.substring(0, modelProperty.length - 2) : modelProperty;\n\t\t\t\tlet callback: Function = Reflect.get(window, modelProperty);\n\t\t\t\tthis.addEventListener(elementAttr, event => {\n\t\t\t\t\tcallback(event);\n\t\t\t\t});\n\t\t\t} else if (elementAttr.startsWith('on')) {\n\t\t\t\tconst modelEvent = this.getEventEmitter<any>(elementAttr.substring(2));\n\t\t\t\tif (modelEvent) {\n\t\t\t\t\t// modelEvent.subscribe(listener);\n\t\t\t\t\tmodelProperty = modelProperty.endsWith('()') ?\n\t\t\t\t\t\tmodelProperty.substring(0, modelProperty.length - 2) : modelProperty;\n\t\t\t\t\tlet listener: Function = Reflect.get(window, modelProperty);\n\t\t\t\t\tmodelEvent.subscribe((data: any) => {\n\t\t\t\t\t\t(listener as Function)(data);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.setInputValue(attr.name, attr.value);\n\t\t\t}\n\t\t}\n\t\tonDestroy(callback: () => void) {\n\t\t\tthis.onDestroyCalls.push(callback);\n\t\t}\n\t\tadoptedCallback() {\n\t\t\t// restart the process\n\t\t\tthis.innerHTML = '';\n\t\t\tthis.connectedCallback();\n\t\t}\n\t\tdisconnectedCallback() {\n\t\t\t// notify first, then call model.onDestroy func\n\t\t\tif (isOnDestroy(this._model)) {\n\t\t\t\tthis._zone.run(this._model.onDestroy, this._modelScope.getContextProxy!());\n\t\t\t}\n\t\t\tthis.subscriptions.forEach(sub => sub.unsubscribe());\n\t\t\tthis.subscriptions.splice(0, this.subscriptions.length);\n\t\t\tthis.onDestroyCalls.forEach(callback => {\n\t\t\t\ttry {\n\t\t\t\t\tcallback();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.onDestroyCalls.splice(0, this.onDestroyCalls.length);\n\t\t}\n\n\t\t// events api\n\t\taddEventListener(eventName: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void {\n\t\t\tif ('on' + eventName in this) {\n\t\t\t\tsuper.addEventListener(eventName, (event: Event) => {\n\t\t\t\t\t(listener as Function)(event);\n\t\t\t\t}, options);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst modelOutput = this.getEventEmitter<any>(eventName);\n\t\t\tif (modelOutput) {\n\t\t\t\tmodelOutput.subscribe((data: any) => {\n\t\t\t\t\t(listener as Function)(data);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\ttriggerOutput(eventName: string, value?: any): void {\n\t\t\tconst modelEvent = this.getEventEmitter<any>(eventName);\n\t\t\tif (modelEvent) {\n\t\t\t\tmodelEvent.emit(value);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\tFACTORY_CACHE.set(htmlElementType, CustomView);\n\treturn CustomView;\n}\n"]}
|
package/zone/bootstrap.d.ts
CHANGED
|
@@ -18,4 +18,4 @@ export declare type ZoneType =
|
|
|
18
18
|
* call once to init the aurora zone, for the platform
|
|
19
19
|
*/
|
|
20
20
|
export declare function bootstrapZone(type?: ZoneType): void;
|
|
21
|
-
export declare function getCurrentZone(type?: ZoneType):
|
|
21
|
+
export declare function getCurrentZone(type?: ZoneType): ProxyAuroraZone | AuroraZone | ManualAuroraZone;
|
package/zone/proxy.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { RevocableProxy } from '@ibyar/expressions';
|
|
2
|
-
import {
|
|
2
|
+
import { ProxyAuroraZone } from './zone.js';
|
|
3
3
|
/**
|
|
4
4
|
* crete new proxy handler for object
|
|
5
5
|
*/
|
|
6
6
|
export declare class ZoneProxyHandler<T extends object> implements ProxyHandler<T> {
|
|
7
7
|
private _zone;
|
|
8
|
-
constructor(_zone:
|
|
8
|
+
constructor(_zone: ProxyAuroraZone);
|
|
9
9
|
defineProperty(target: T, p: string | symbol, attributes: PropertyDescriptor): boolean;
|
|
10
10
|
deleteProperty(target: T, p: string | symbol): boolean;
|
|
11
11
|
get(target: T, p: string | symbol, receiver: any): any;
|
|
12
12
|
set(target: T, p: string | symbol, value: any, receiver: any): boolean;
|
|
13
13
|
}
|
|
14
|
-
export declare function createRevocableZoneProxyHandler<T extends object>(model: T, zone:
|
|
15
|
-
export declare function createZoneProxyHandler<T extends object>(model: T, zone:
|
|
14
|
+
export declare function createRevocableZoneProxyHandler<T extends object>(model: T, zone: ProxyAuroraZone): RevocableProxy<T>;
|
|
15
|
+
export declare function createZoneProxyHandler<T extends object>(model: T, zone: ProxyAuroraZone): T;
|
package/zone/proxy.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { hasBindingHook } from '@ibyar/expressions';
|
|
2
|
+
const ProxyCache = new WeakMap();
|
|
2
3
|
/**
|
|
3
4
|
* crete new proxy handler for object
|
|
4
5
|
*/
|
|
@@ -7,20 +8,28 @@ export class ZoneProxyHandler {
|
|
|
7
8
|
this._zone = _zone;
|
|
8
9
|
}
|
|
9
10
|
defineProperty(target, p, attributes) {
|
|
10
|
-
|
|
11
|
+
this._zone.scheduleChangesDetection();
|
|
12
|
+
return Reflect.defineProperty(target, p, attributes);
|
|
11
13
|
}
|
|
12
14
|
deleteProperty(target, p) {
|
|
13
|
-
|
|
15
|
+
this._zone.scheduleChangesDetection();
|
|
16
|
+
return Reflect.deleteProperty(target, p);
|
|
14
17
|
}
|
|
15
18
|
get(target, p, receiver) {
|
|
16
19
|
const value = Reflect.get(target, p, receiver);
|
|
20
|
+
if (ProxyCache.has(value)) {
|
|
21
|
+
return ProxyCache.get(value);
|
|
22
|
+
}
|
|
17
23
|
if (!(value && typeof value === 'object') || hasBindingHook(value)) {
|
|
18
24
|
return value;
|
|
19
25
|
}
|
|
20
|
-
|
|
26
|
+
const proxy = createZoneProxyHandler(value, this._zone);
|
|
27
|
+
ProxyCache.set(value, proxy);
|
|
28
|
+
return proxy;
|
|
21
29
|
}
|
|
22
30
|
set(target, p, value, receiver) {
|
|
23
|
-
|
|
31
|
+
this._zone.scheduleChangesDetection();
|
|
32
|
+
return Reflect.set(target, p, value, receiver);
|
|
24
33
|
}
|
|
25
34
|
}
|
|
26
35
|
export function createRevocableZoneProxyHandler(model, zone) {
|
package/zone/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/core/zone/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AAGpE;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC5B,YAAoB,
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/core/zone/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AAGpE,MAAM,UAAU,GAAG,IAAI,OAAO,EAA8B,CAAC;AAE7D;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC5B,YAAoB,KAAsB;QAAtB,UAAK,GAAL,KAAK,CAAiB;IAAI,CAAC;IAC/C,cAAc,CAAC,MAAS,EAAE,CAAkB,EAAE,UAA8B;QAC3E,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IACD,cAAc,CAAC,MAAS,EAAE,CAAkB;QAC3C,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,GAAG,CAAC,MAAS,EAAE,CAAkB,EAAE,QAAa;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;YACnE,OAAO,KAAK,CAAC;SACb;QACD,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,GAAG,CAAC,MAAS,EAAE,CAAkB,EAAE,KAAU,EAAE,QAAa;QAC3D,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;CACD;AAED,MAAM,UAAU,+BAA+B,CAAmB,KAAQ,EAAE,IAAqB;IAChG,OAAO,KAAK,CAAC,SAAS,CAAI,KAAK,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAmB,KAAQ,EAAE,IAAqB;IACvF,OAAO,IAAI,KAAK,CAAI,KAAK,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC","sourcesContent":["import { hasBindingHook, RevocableProxy } from '@ibyar/expressions';\nimport { ProxyAuroraZone } from './zone.js';\n\nconst ProxyCache = new WeakMap<any, ZoneProxyHandler<any>>();\n\n/**\n * crete new proxy handler for object\n */\nexport class ZoneProxyHandler<T extends object> implements ProxyHandler<T> {\n\tconstructor(private _zone: ProxyAuroraZone) { }\n\tdefineProperty(target: T, p: string | symbol, attributes: PropertyDescriptor): boolean {\n\t\tthis._zone.scheduleChangesDetection();\n\t\treturn Reflect.defineProperty(target, p, attributes);\n\t}\n\tdeleteProperty(target: T, p: string | symbol): boolean {\n\t\tthis._zone.scheduleChangesDetection();\n\t\treturn Reflect.deleteProperty(target, p);\n\t}\n\tget(target: T, p: string | symbol, receiver: any): any {\n\t\tconst value = Reflect.get(target, p, receiver);\n\t\tif (ProxyCache.has(value)) {\n\t\t\treturn ProxyCache.get(value);\n\t\t}\n\t\tif (!(value && typeof value === 'object') || hasBindingHook(value)) {\n\t\t\treturn value;\n\t\t}\n\t\tconst proxy = createZoneProxyHandler(value, this._zone);\n\t\tProxyCache.set(value, proxy);\n\t\treturn proxy;\n\t}\n\tset(target: T, p: string | symbol, value: any, receiver: any): boolean {\n\t\tthis._zone.scheduleChangesDetection();\n\t\treturn Reflect.set(target, p, value, receiver);\n\t}\n}\n\nexport function createRevocableZoneProxyHandler<T extends object>(model: T, zone: ProxyAuroraZone): RevocableProxy<T> {\n\treturn Proxy.revocable<T>(model, new ZoneProxyHandler(zone));\n}\n\nexport function createZoneProxyHandler<T extends object>(model: T, zone: ProxyAuroraZone): T {\n\treturn new Proxy<T>(model, new ZoneProxyHandler(zone));\n}\n"]}
|
package/zone/zone.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export declare class ManualAuroraZone extends AbstractAuroraZone {
|
|
|
39
39
|
runOutsideAurora<T>(callback: (...args: any[]) => T): T;
|
|
40
40
|
}
|
|
41
41
|
export declare class ProxyAuroraZone extends AbstractAuroraZone {
|
|
42
|
+
private _cdPromise?;
|
|
42
43
|
constructor(parent?: AuroraZone);
|
|
43
44
|
fork(): AuroraZone;
|
|
44
45
|
private runCallback;
|
|
@@ -46,4 +47,5 @@ export declare class ProxyAuroraZone extends AbstractAuroraZone {
|
|
|
46
47
|
runTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;
|
|
47
48
|
runGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;
|
|
48
49
|
runOutsideAurora<T>(callback: (...args: any[]) => T): T;
|
|
50
|
+
scheduleChangesDetection(): void;
|
|
49
51
|
}
|
package/zone/zone.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/// <reference types='zone.js' />
|
|
2
|
-
import { hasBindingHook } from '@ibyar/expressions';
|
|
3
1
|
import { EventEmitter } from '../component/events.js';
|
|
4
|
-
import { createZoneProxyHandler } from './proxy.js';
|
|
5
2
|
const NOOP = () => { };
|
|
6
3
|
const EMPTY_PAYLOAD = {};
|
|
7
4
|
let LastId = 0;
|
|
@@ -147,7 +144,6 @@ export class ManualAuroraZone extends AbstractAuroraZone {
|
|
|
147
144
|
return callback();
|
|
148
145
|
}
|
|
149
146
|
}
|
|
150
|
-
const ReflectInterceptors = [Reflect.defineProperty, Reflect.deleteProperty, Reflect.get, Reflect.set];
|
|
151
147
|
export class ProxyAuroraZone extends AbstractAuroraZone {
|
|
152
148
|
constructor(parent) {
|
|
153
149
|
super();
|
|
@@ -163,16 +159,7 @@ export class ProxyAuroraZone extends AbstractAuroraZone {
|
|
|
163
159
|
runCallback(callback, applyThis, applyArgs) {
|
|
164
160
|
try {
|
|
165
161
|
before(this);
|
|
166
|
-
|
|
167
|
-
return callback.apply(void 0, applyArgs);
|
|
168
|
-
}
|
|
169
|
-
else if (applyThis) {
|
|
170
|
-
const proxy = createZoneProxyHandler(applyThis, this);
|
|
171
|
-
return callback.apply(proxy, applyArgs);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
return callback.apply(applyThis, applyArgs);
|
|
175
|
-
}
|
|
162
|
+
return callback.apply(applyThis, applyArgs);
|
|
176
163
|
}
|
|
177
164
|
catch (error) {
|
|
178
165
|
this.onCatch.emit();
|
|
@@ -194,5 +181,13 @@ export class ProxyAuroraZone extends AbstractAuroraZone {
|
|
|
194
181
|
runOutsideAurora(callback) {
|
|
195
182
|
return callback();
|
|
196
183
|
}
|
|
184
|
+
scheduleChangesDetection() {
|
|
185
|
+
this._cdPromise ?? (this._cdPromise = Promise
|
|
186
|
+
.resolve()
|
|
187
|
+
.then(() => {
|
|
188
|
+
this.runCallback(NOOP);
|
|
189
|
+
this._cdPromise = undefined;
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
197
192
|
}
|
|
198
193
|
//# sourceMappingURL=zone.js.map
|
package/zone/zone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zone.js","sourceRoot":"","sources":["../../../src/core/zone/zone.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference types='zone.js' />\nimport { hasBindingHook } from '@ibyar/expressions';\nimport { EventEmitter } from '../component/events.js';\nimport { createZoneProxyHandler } from './proxy.js';\n\nconst NOOP = () => { };\nconst EMPTY_PAYLOAD = {};\n\nexport interface AuroraZone {\n\n\treadonly onTry: EventEmitter<void>;\n\treadonly onCatch: EventEmitter<void>;\n\treadonly onFinal: EventEmitter<void>;\n\treadonly onEmpty: EventEmitter<void>;\n\n\n\tfork(): AuroraZone;\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T;\n}\n\nlet LastId = 0;\n\nexport abstract class AbstractAuroraZone implements AuroraZone {\n\treadonly onTry: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onCatch: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onFinal: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onEmpty: EventEmitter<void> = new EventEmitter<void>();\n\tprotected id: number;\n\tconstructor() {\n\t\tthis.id = ++LastId;\n\t}\n\tabstract fork(): AuroraZone;\n\tabstract run<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\tabstract runTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;\n\tabstract runGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\tabstract runOutsideAurora<T>(callback: (...args: any[]) => T): T;\n}\n\nexport class AuroraZone extends AbstractAuroraZone {\n\tstatic isInAuroraZone(): boolean {\n\t\treturn typeof Zone !== 'undefined' && Zone.current.get('aurora-zone') === true;\n\t}\n\n\tstatic assertInAuroraZone(): void {\n\t\tif (!AuroraZone.isInAuroraZone()) {\n\t\t\tthrow new Error('Expected to be in Aurora Zone, but it is not!');\n\t\t}\n\t}\n\n\tstatic assertNotInAuroraZone(): void {\n\t\tif (AuroraZone.isInAuroraZone()) {\n\t\t\tthrow new Error('Expected to not be in Aurora Zone, but it is!');\n\t\t}\n\t}\n\n\tconstructor(parent?: AuroraZone) {\n\t\tif (typeof Zone == 'undefined') {\n\t\t\tthrow new Error(`In this configuration Zone.js is required`);\n\t\t}\n\t\tZone.assertZonePatched();\n\t\tsuper();\n\t\tconst self = this as any as AuroraZonePrivate;\n\t\tself._nesting = 0;\n\t\tself._outer = Zone.root;\n\t\tif (parent) {\n\t\t\tself._parent = (parent as AuroraZonePrivate);\n\t\t\tself._inner = (parent as AuroraZonePrivate)._inner;\n\t\t} else {\n\t\t\tself._inner = Zone.current;\n\t\t\tif ((Zone as any)['TaskTrackingZoneSpec']) {\n\t\t\t\tself._inner = self._inner.fork(new ((Zone as any)['TaskTrackingZoneSpec'] as any));\n\t\t\t}\n\t\t}\n\t\tself._inner = self._inner.fork({\n\t\t\tname: 'aurora',\n\t\t\tproperties: { 'aurora-zone': true, id: self.id },\n\t\t\tonInvoke: (parentZoneDelegate, currentZone, targetZone, delegate, applyThis, applyArgs?, source?) => {\n\t\t\t\ttry {\n\t\t\t\t\tbefore(self);\n\t\t\t\t\treturn parentZoneDelegate.invoke(targetZone, delegate, applyThis, applyArgs, source);\n\t\t\t\t} finally {\n\t\t\t\t\tafter(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInvokeTask: (parentZoneDelegate, currentZone, targetZone, task, applyThis, applyArgs?) => {\n\t\t\t\ttry {\n\t\t\t\t\tbefore(self);\n\t\t\t\t\treturn parentZoneDelegate.invokeTask(targetZone, task, applyThis, applyArgs);\n\t\t\t\t} finally {\n\t\t\t\t\tafter(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonHandleError: (parentZoneDelegate, currentZone, targetZone, error) => {\n\t\t\t\tparentZoneDelegate.handleError(targetZone, error);\n\t\t\t\tself.runOutsideAurora(() => self.onCatch.emit(error));\n\t\t\t\treturn false;\n\t\t\t},\n\t\t});\n\t}\n\tfork(): AuroraZone {\n\t\treturn new AuroraZone(this);\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n\t\treturn (this as any as AuroraZonePrivate)._inner.run(callback, applyThis, applyArgs);\n\t}\n\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[], name?: string): T {\n\t\tconst zone = (this as any as AuroraZonePrivate)._inner;\n\t\tconst task = zone.scheduleEventTask('AuroraZoneEvent: ' + name ?? '', callback, EMPTY_PAYLOAD, NOOP, NOOP);\n\t\ttry {\n\t\t\treturn zone.runTask(task, applyThis, applyArgs);\n\t\t} finally {\n\t\t\tzone.cancelTask(task);\n\t\t}\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n\t\treturn (this as any as AuroraZonePrivate)._inner.runGuarded(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn (this as any as AuroraZonePrivate)._outer.run(callback);\n\t}\n}\n\ninterface AuroraZonePrivate extends AuroraZone {\n\t_inner: Zone;\n\t_outer: Zone;\n\t_nesting: number;\n\t_parent: AuroraZonePrivate;\n}\n\nfunction before(zone: AuroraZonePrivate) {\n\tzone.onTry.emit();\n\tzone._nesting++;\n}\n\nfunction after(zone: AuroraZonePrivate) {\n\tzone._nesting--;\n\tzone.onFinal.emit();\n\tif (zone._nesting === 0) {\n\t\tzone.onEmpty.emit();\n\t}\n}\n\nexport class ManualAuroraZone extends AbstractAuroraZone {\n\n\tconstructor(parent?: AuroraZone) {\n\t\tsuper();\n\t\tif (parent) {\n\t\t\tconst self = this as any as AuroraZonePrivate;\n\t\t\tself._nesting = 0;\n\t\t\tself._parent = parent as AuroraZonePrivate;\n\t\t}\n\t}\n\tfork(): AuroraZone {\n\t\treturn new ManualAuroraZone(this);\n\t}\n\tprivate runCallback<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\ttry {\n\t\t\tbefore(this as any as AuroraZonePrivate);\n\t\t\treturn callback.apply(applyThis, applyArgs!);\n\t\t} catch (error) {\n\t\t\tthis.onCatch.emit();\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tafter(this as any as AuroraZonePrivate);\n\t\t}\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn callback();\n\t}\n}\n\nconst ReflectInterceptors = [Reflect.defineProperty, Reflect.deleteProperty, Reflect.get, Reflect.set];\n\nexport class ProxyAuroraZone extends AbstractAuroraZone {\n\n\tconstructor(parent?: AuroraZone) {\n\t\tsuper();\n\t\tif (parent) {\n\t\t\tconst self = this as any as AuroraZonePrivate;\n\t\t\tself._nesting = 0;\n\t\t\tself._parent = parent as AuroraZonePrivate;\n\t\t}\n\t}\n\tfork(): AuroraZone {\n\t\treturn new ProxyAuroraZone(this);\n\t}\n\tprivate runCallback<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\ttry {\n\t\t\tbefore(this as any as AuroraZonePrivate);\n\t\t\tif (ReflectInterceptors.includes(callback) || hasBindingHook(applyThis)) {\n\t\t\t\treturn callback.apply(void 0, applyArgs!);\n\t\t\t} else if (applyThis) {\n\t\t\t\tconst proxy = createZoneProxyHandler(applyThis, this);\n\t\t\t\treturn callback.apply(proxy, applyArgs!);\n\t\t\t} else {\n\t\t\t\treturn callback.apply(applyThis, applyArgs!);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthis.onCatch.emit();\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tafter(this as any as AuroraZonePrivate);\n\t\t}\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn callback();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"zone.js","sourceRoot":"","sources":["../../../src/core/zone/zone.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference types='zone.js' />\nimport { hasBindingHook } from '@ibyar/expressions';\nimport { EventEmitter } from '../component/events.js';\nimport { createZoneProxyHandler } from './proxy.js';\n\nconst NOOP = () => { };\nconst EMPTY_PAYLOAD = {};\n\nexport interface AuroraZone {\n\n\treadonly onTry: EventEmitter<void>;\n\treadonly onCatch: EventEmitter<void>;\n\treadonly onFinal: EventEmitter<void>;\n\treadonly onEmpty: EventEmitter<void>;\n\n\n\tfork(): AuroraZone;\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T;\n}\n\nlet LastId = 0;\n\nexport abstract class AbstractAuroraZone implements AuroraZone {\n\treadonly onTry: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onCatch: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onFinal: EventEmitter<void> = new EventEmitter<void>();\n\treadonly onEmpty: EventEmitter<void> = new EventEmitter<void>();\n\tprotected id: number;\n\tconstructor() {\n\t\tthis.id = ++LastId;\n\t}\n\tabstract fork(): AuroraZone;\n\tabstract run<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\tabstract runTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;\n\tabstract runGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;\n\tabstract runOutsideAurora<T>(callback: (...args: any[]) => T): T;\n}\n\nexport class AuroraZone extends AbstractAuroraZone {\n\tstatic isInAuroraZone(): boolean {\n\t\treturn typeof Zone !== 'undefined' && Zone.current.get('aurora-zone') === true;\n\t}\n\n\tstatic assertInAuroraZone(): void {\n\t\tif (!AuroraZone.isInAuroraZone()) {\n\t\t\tthrow new Error('Expected to be in Aurora Zone, but it is not!');\n\t\t}\n\t}\n\n\tstatic assertNotInAuroraZone(): void {\n\t\tif (AuroraZone.isInAuroraZone()) {\n\t\t\tthrow new Error('Expected to not be in Aurora Zone, but it is!');\n\t\t}\n\t}\n\n\tconstructor(parent?: AuroraZone) {\n\t\tif (typeof Zone == 'undefined') {\n\t\t\tthrow new Error(`In this configuration Zone.js is required`);\n\t\t}\n\t\tZone.assertZonePatched();\n\t\tsuper();\n\t\tconst self = this as any as AuroraZonePrivate;\n\t\tself._nesting = 0;\n\t\tself._outer = Zone.root;\n\t\tif (parent) {\n\t\t\tself._parent = (parent as AuroraZonePrivate);\n\t\t\tself._inner = (parent as AuroraZonePrivate)._inner;\n\t\t} else {\n\t\t\tself._inner = Zone.current;\n\t\t\tif ((Zone as any)['TaskTrackingZoneSpec']) {\n\t\t\t\tself._inner = self._inner.fork(new ((Zone as any)['TaskTrackingZoneSpec'] as any));\n\t\t\t}\n\t\t}\n\t\tself._inner = self._inner.fork({\n\t\t\tname: 'aurora',\n\t\t\tproperties: { 'aurora-zone': true, id: self.id },\n\t\t\tonInvoke: (parentZoneDelegate, currentZone, targetZone, delegate, applyThis, applyArgs?, source?) => {\n\t\t\t\ttry {\n\t\t\t\t\tbefore(self);\n\t\t\t\t\treturn parentZoneDelegate.invoke(targetZone, delegate, applyThis, applyArgs, source);\n\t\t\t\t} finally {\n\t\t\t\t\tafter(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInvokeTask: (parentZoneDelegate, currentZone, targetZone, task, applyThis, applyArgs?) => {\n\t\t\t\ttry {\n\t\t\t\t\tbefore(self);\n\t\t\t\t\treturn parentZoneDelegate.invokeTask(targetZone, task, applyThis, applyArgs);\n\t\t\t\t} finally {\n\t\t\t\t\tafter(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonHandleError: (parentZoneDelegate, currentZone, targetZone, error) => {\n\t\t\t\tparentZoneDelegate.handleError(targetZone, error);\n\t\t\t\tself.runOutsideAurora(() => self.onCatch.emit(error));\n\t\t\t\treturn false;\n\t\t\t},\n\t\t});\n\t}\n\tfork(): AuroraZone {\n\t\treturn new AuroraZone(this);\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n\t\treturn (this as any as AuroraZonePrivate)._inner.run(callback, applyThis, applyArgs);\n\t}\n\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[], name?: string): T {\n\t\tconst zone = (this as any as AuroraZonePrivate)._inner;\n\t\tconst task = zone.scheduleEventTask('AuroraZoneEvent: ' + name ?? '', callback, EMPTY_PAYLOAD, NOOP, NOOP);\n\t\ttry {\n\t\t\treturn zone.runTask(task, applyThis, applyArgs);\n\t\t} finally {\n\t\t\tzone.cancelTask(task);\n\t\t}\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n\t\treturn (this as any as AuroraZonePrivate)._inner.runGuarded(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn (this as any as AuroraZonePrivate)._outer.run(callback);\n\t}\n}\n\ninterface AuroraZonePrivate extends AuroraZone {\n\t_inner: Zone;\n\t_outer: Zone;\n\t_nesting: number;\n\t_parent: AuroraZonePrivate;\n}\n\nfunction before(zone: AuroraZonePrivate) {\n\tzone.onTry.emit();\n\tzone._nesting++;\n}\n\nfunction after(zone: AuroraZonePrivate) {\n\tzone._nesting--;\n\tzone.onFinal.emit();\n\tif (zone._nesting === 0) {\n\t\tzone.onEmpty.emit();\n\t}\n}\n\nexport class ManualAuroraZone extends AbstractAuroraZone {\n\n\tconstructor(parent?: AuroraZone) {\n\t\tsuper();\n\t\tif (parent) {\n\t\t\tconst self = this as any as AuroraZonePrivate;\n\t\t\tself._nesting = 0;\n\t\t\tself._parent = parent as AuroraZonePrivate;\n\t\t}\n\t}\n\tfork(): AuroraZone {\n\t\treturn new ManualAuroraZone(this);\n\t}\n\tprivate runCallback<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\ttry {\n\t\t\tbefore(this as any as AuroraZonePrivate);\n\t\t\treturn callback.apply(applyThis, applyArgs!);\n\t\t} catch (error) {\n\t\t\tthis.onCatch.emit();\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tafter(this as any as AuroraZonePrivate);\n\t\t}\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn callback();\n\t}\n}\n\nexport class ProxyAuroraZone extends AbstractAuroraZone {\n\n\tprivate _cdPromise?: Promise<void>\n\n\tconstructor(parent?: AuroraZone) {\n\t\tsuper();\n\t\tif (parent) {\n\t\t\tconst self = this as any as AuroraZonePrivate;\n\t\t\tself._nesting = 0;\n\t\t\tself._parent = parent as AuroraZonePrivate;\n\t\t}\n\t}\n\tfork(): AuroraZone {\n\t\treturn new ProxyAuroraZone(this);\n\t}\n\tprivate runCallback<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\ttry {\n\t\t\tbefore(this as any as AuroraZonePrivate);\n\t\t\treturn callback.apply(applyThis, applyArgs!);\n\t\t} catch (error) {\n\t\t\tthis.onCatch.emit();\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tafter(this as any as AuroraZonePrivate);\n\t\t}\n\t}\n\trun<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T {\n\t\treturn this.runCallback(callback, applyThis, applyArgs);\n\t}\n\trunOutsideAurora<T>(callback: (...args: any[]) => T): T {\n\t\treturn callback();\n\t}\n\tscheduleChangesDetection() {\n\t\tthis._cdPromise ??= Promise\n\t\t\t.resolve()\n\t\t\t.then(() => {\n\t\t\t\tthis.runCallback(NOOP);\n\t\t\t\tthis._cdPromise = undefined;\n\t\t\t});\n\t}\n}\n"]}
|