@ibyar/core 0.5.4 → 0.6.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.
Files changed (81) hide show
  1. package/LICENSE +1 -1
  2. package/annotation/decorators.d.ts +121 -0
  3. package/annotation/decorators.js.map +1 -1
  4. package/binding/binding.expressions.d.ts +9 -4
  5. package/binding/binding.expressions.js +26 -20
  6. package/binding/binding.expressions.js.map +1 -1
  7. package/component/component.d.ts +3 -0
  8. package/component/component.js +1 -0
  9. package/component/component.js.map +1 -1
  10. package/component/custom-element.d.ts +48 -4
  11. package/component/custom-element.js.map +1 -1
  12. package/component/events.js +2 -6
  13. package/component/events.js.map +1 -1
  14. package/context/stack.js +4 -0
  15. package/context/stack.js.map +1 -1
  16. package/directive/directive.d.ts +9 -0
  17. package/directive/directive.js +9 -0
  18. package/directive/directive.js.map +1 -1
  19. package/directive/parser.d.ts +4 -0
  20. package/directive/parser.js +20 -1
  21. package/directive/parser.js.map +1 -1
  22. package/directive/providers.js +3 -3
  23. package/directive/providers.js.map +1 -1
  24. package/html/expression.d.ts +5 -0
  25. package/html/expression.js +21 -9
  26. package/html/expression.js.map +1 -1
  27. package/index.d.ts +4 -0
  28. package/index.js +4 -0
  29. package/index.js.map +1 -1
  30. package/linker/change-detector-ref.d.ts +25 -2
  31. package/linker/change-detector-ref.js +30 -18
  32. package/linker/change-detector-ref.js.map +1 -1
  33. package/linker/template-ref.d.ts +17 -5
  34. package/linker/template-ref.js +23 -20
  35. package/linker/template-ref.js.map +1 -1
  36. package/linker/view-container-ref.d.ts +140 -8
  37. package/linker/view-container-ref.js +82 -31
  38. package/linker/view-container-ref.js.map +1 -1
  39. package/linker/view-ref.d.ts +49 -5
  40. package/linker/view-ref.js +23 -9
  41. package/linker/view-ref.js.map +1 -1
  42. package/package.json +10 -6
  43. package/pipe/pipe.d.ts +7 -0
  44. package/pipe/pipe.js +4 -4
  45. package/pipe/pipe.js.map +1 -1
  46. package/providers/injector.js +1 -0
  47. package/providers/injector.js.map +1 -1
  48. package/render/host-listener.handler.d.ts +17 -0
  49. package/render/host-listener.handler.js +21 -4
  50. package/render/host-listener.handler.js.map +1 -1
  51. package/render/render-handler.d.ts +6 -0
  52. package/utils/typeof.d.ts +3 -0
  53. package/utils/utils.js +1 -0
  54. package/utils/utils.js.map +1 -1
  55. package/view/base-view.js +51 -19
  56. package/view/base-view.js.map +1 -1
  57. package/view/form-view.js +21 -0
  58. package/view/form-view.js.map +1 -1
  59. package/view/mutation.js +1 -0
  60. package/view/mutation.js.map +1 -1
  61. package/view/render.d.ts +9 -9
  62. package/view/render.js +38 -29
  63. package/view/render.js.map +1 -1
  64. package/view/view.d.ts +5 -0
  65. package/view/view.js +7 -0
  66. package/view/view.js.map +1 -1
  67. package/zone/bootstrap.d.ts +21 -0
  68. package/zone/bootstrap.js +35 -0
  69. package/zone/bootstrap.js.map +1 -0
  70. package/zone/proxy.d.ts +15 -0
  71. package/zone/proxy.js +32 -0
  72. package/zone/proxy.js.map +1 -0
  73. package/zone/task.d.ts +61 -0
  74. package/zone/task.js +109 -0
  75. package/zone/task.js.map +1 -0
  76. package/zone/zone.d.ts +49 -0
  77. package/zone/zone.js +198 -0
  78. package/zone/zone.js.map +1 -0
  79. package/component/provider.d.ts +0 -10
  80. package/component/provider.js +0 -17
  81. package/component/provider.js.map +0 -1
package/zone/task.d.ts ADDED
@@ -0,0 +1,61 @@
1
+ /// <reference types="zone.js" />
2
+ import { ReactiveScopeControl, Stack } from '@ibyar/expressions';
3
+ export declare abstract class AbstractTask<T extends TaskType> implements Task {
4
+ type: T;
5
+ source: string;
6
+ callback: Function;
7
+ data?: TaskData | undefined;
8
+ scheduleFn?: ((task: Task) => void) | undefined;
9
+ cancelFn?: ((task: Task) => void) | undefined;
10
+ runCount: number;
11
+ _zone: Zone | null;
12
+ _state: TaskState;
13
+ constructor(type: T, source: string, callback: Function, data?: TaskData | undefined, scheduleFn?: ((task: Task) => void) | undefined, cancelFn?: ((task: Task) => void) | undefined);
14
+ get zone(): Zone;
15
+ get state(): TaskState;
16
+ cancelScheduleRequest(): void;
17
+ _transitionTo(toState: TaskState, fromState1: TaskState, fromState2?: TaskState): void;
18
+ toString(): string;
19
+ toJSON(): {
20
+ type: T;
21
+ state: TaskState;
22
+ source: string;
23
+ zone: string;
24
+ runCount: number;
25
+ };
26
+ abstract invoke(task: any, target: any, args: any): any;
27
+ }
28
+ export declare class ScopeTask<T extends TaskType> extends AbstractTask<T> {
29
+ scope: ReactiveScopeControl<any>;
30
+ static microTask(scope: ReactiveScopeControl<any>, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void): ScopeTask<"microTask">;
31
+ static macroTask(scope: ReactiveScopeControl<any>, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void, customCancel?: (task: Task) => void): ScopeTask<"macroTask">;
32
+ static eventTask(scope: ReactiveScopeControl<any>, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void, customCancel?: (task: Task) => void): ScopeTask<"eventTask">;
33
+ constructor(scope: ReactiveScopeControl<any>, type: T, source: string, callback: Function, data?: TaskData, scheduleFn?: (task: Task) => void, cancelFn?: (task: Task) => void);
34
+ invoke(task: any, target: any, args: any): unknown;
35
+ toJSON(): {
36
+ type: T;
37
+ state: TaskState;
38
+ source: string;
39
+ zone: string;
40
+ runCount: number;
41
+ } & {
42
+ scope: ReactiveScopeControl<any>;
43
+ };
44
+ }
45
+ export declare class StackTask<T extends TaskType> extends AbstractTask<T> {
46
+ stack: Stack;
47
+ static microTask(stack: Stack, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void): StackTask<"microTask">;
48
+ static macroTask(stack: Stack, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void, customCancel?: (task: Task) => void): StackTask<"macroTask">;
49
+ static eventTask(stack: Stack, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void, customCancel?: (task: Task) => void): StackTask<"eventTask">;
50
+ constructor(stack: Stack, type: T, source: string, callback: Function, data: TaskData | undefined, scheduleFn: ((task: Task) => void) | undefined, cancelFn: ((task: Task) => void) | undefined);
51
+ invoke(task: any, target: any, args: any): unknown;
52
+ toJSON(): {
53
+ type: T;
54
+ state: TaskState;
55
+ source: string;
56
+ zone: string;
57
+ runCount: number;
58
+ } & {
59
+ stack: Stack;
60
+ };
61
+ }
package/zone/task.js ADDED
@@ -0,0 +1,109 @@
1
+ const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';
2
+ const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';
3
+ export class AbstractTask {
4
+ constructor(type, source, callback, data, scheduleFn, cancelFn) {
5
+ this.type = type;
6
+ this.source = source;
7
+ this.callback = callback;
8
+ this.data = data;
9
+ this.scheduleFn = scheduleFn;
10
+ this.cancelFn = cancelFn;
11
+ this.runCount = 0;
12
+ this._zone = null;
13
+ this._state = 'notScheduled';
14
+ if (!callback) {
15
+ throw new Error('callback is not defined');
16
+ }
17
+ }
18
+ get zone() {
19
+ return this._zone;
20
+ }
21
+ get state() {
22
+ return this._state;
23
+ }
24
+ cancelScheduleRequest() {
25
+ this._transitionTo(notScheduled, scheduling);
26
+ }
27
+ _transitionTo(toState, fromState1, fromState2) {
28
+ if (this._state === fromState1 || this._state === fromState2) {
29
+ this._state = toState;
30
+ }
31
+ else {
32
+ throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \'' + fromState2 + '\'' : ''}, was '${this._state}'.`);
33
+ }
34
+ }
35
+ toString() {
36
+ if (this.data && typeof this.data.handleId !== 'undefined') {
37
+ return this.data.handleId.toString();
38
+ }
39
+ else {
40
+ return Object.prototype.toString.call(this);
41
+ }
42
+ }
43
+ toJSON() {
44
+ return {
45
+ type: this.type,
46
+ state: this.state,
47
+ source: this.source,
48
+ zone: this.zone.name,
49
+ runCount: this.runCount
50
+ };
51
+ }
52
+ }
53
+ export class ScopeTask extends AbstractTask {
54
+ constructor(scope, type, source, callback, data, scheduleFn, cancelFn) {
55
+ super(type, source, callback, data, scheduleFn, cancelFn);
56
+ this.scope = scope;
57
+ }
58
+ static microTask(scope, source, callback, data, customSchedule) {
59
+ return new ScopeTask(scope, microTask, source, callback, data, customSchedule, undefined);
60
+ }
61
+ static macroTask(scope, source, callback, data, customSchedule, customCancel) {
62
+ return new ScopeTask(scope, macroTask, source, callback, data, customSchedule, customCancel);
63
+ }
64
+ static eventTask(scope, source, callback, data, customSchedule, customCancel) {
65
+ return new ScopeTask(scope, eventTask, source, callback, data, customSchedule, customCancel);
66
+ }
67
+ invoke(task, target, args) {
68
+ try {
69
+ this.runCount++;
70
+ this.scope.detach();
71
+ return this.zone.runTask(task, target, args);
72
+ }
73
+ finally {
74
+ this.scope.reattach();
75
+ }
76
+ }
77
+ toJSON() {
78
+ return Object.assign(super.toJSON(), { scope: this.scope });
79
+ }
80
+ }
81
+ export class StackTask extends AbstractTask {
82
+ constructor(stack, type, source, callback, data, scheduleFn, cancelFn) {
83
+ super(type, source, callback, data, scheduleFn, cancelFn);
84
+ this.stack = stack;
85
+ }
86
+ static microTask(stack, source, callback, data, customSchedule) {
87
+ return new StackTask(stack, microTask, source, callback, data, customSchedule, undefined);
88
+ }
89
+ static macroTask(stack, source, callback, data, customSchedule, customCancel) {
90
+ return new StackTask(stack, macroTask, source, callback, data, customSchedule, customCancel);
91
+ }
92
+ static eventTask(stack, source, callback, data, customSchedule, customCancel) {
93
+ return new StackTask(stack, eventTask, source, callback, data, customSchedule, customCancel);
94
+ }
95
+ invoke(task, target, args) {
96
+ try {
97
+ this.runCount++;
98
+ this.stack.detach();
99
+ return this.zone.runTask(task, target, args);
100
+ }
101
+ finally {
102
+ this.stack.reattach();
103
+ }
104
+ }
105
+ toJSON() {
106
+ return Object.assign(super.toJSON(), { stack: this.stack });
107
+ }
108
+ }
109
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/core/zone/task.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReactiveScopeControl, Context, Stack } from '@ibyar/expressions';\n\nconst notScheduled: 'notScheduled' = 'notScheduled',\n\tscheduling: 'scheduling' = 'scheduling',\n\tscheduled: 'scheduled' = 'scheduled',\n\trunning: 'running' = 'running',\n\tcanceling: 'canceling' = 'canceling',\n\tunknown: 'unknown' = 'unknown';\nconst microTask: 'microTask' = 'microTask',\n\tmacroTask: 'macroTask' = 'macroTask',\n\teventTask: 'eventTask' = 'eventTask';\n\nexport abstract class AbstractTask<T extends TaskType> implements Task {\n\n\tpublic runCount: number = 0;\n\t_zone: Zone | null = null;\n\t_state: TaskState = 'notScheduled';\n\n\tconstructor(\n\t\tpublic type: T,\n\t\tpublic source: string,\n\t\tpublic callback: Function,\n\t\tpublic data?: TaskData,\n\t\tpublic scheduleFn?: (task: Task) => void,\n\t\tpublic cancelFn?: (task: Task) => void) {\n\t\tif (!callback) {\n\t\t\tthrow new Error('callback is not defined');\n\t\t}\n\t}\n\n\tget zone(): Zone {\n\t\treturn this._zone!;\n\t}\n\n\tget state(): TaskState {\n\t\treturn this._state;\n\t}\n\n\tpublic cancelScheduleRequest() {\n\t\tthis._transitionTo(notScheduled, scheduling);\n\t}\n\n\t_transitionTo(toState: TaskState, fromState1: TaskState, fromState2?: TaskState) {\n\t\tif (this._state === fromState1 || this._state === fromState2) {\n\t\t\tthis._state = toState;\n\t\t} else {\n\t\t\tthrow new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n\t\t}\n\t}\n\n\tpublic toString() {\n\t\tif (this.data && typeof this.data.handleId !== 'undefined') {\n\t\t\treturn this.data.handleId.toString();\n\t\t} else {\n\t\t\treturn Object.prototype.toString.call(this);\n\t\t}\n\t}\n\tpublic toJSON() {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tstate: this.state,\n\t\t\tsource: this.source,\n\t\t\tzone: this.zone.name,\n\t\t\trunCount: this.runCount\n\t\t};\n\t}\n\n\tabstract invoke(task: any, target: any, args: any): any;\n}\n\nexport class ScopeTask<T extends TaskType> extends AbstractTask<T> {\n\tstatic microTask(scope: ReactiveScopeControl<any>, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void) {\n\t\treturn new ScopeTask(scope, microTask, source, callback, data, customSchedule, undefined);\n\t}\n\tstatic macroTask(scope: ReactiveScopeControl<any>, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void, customCancel?: (task: Task) => void) {\n\t\treturn new ScopeTask(scope, macroTask, source, callback, data, customSchedule, customCancel);\n\t}\n\tstatic eventTask(scope: ReactiveScopeControl<any>, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void, customCancel?: (task: Task) => void) {\n\t\treturn new ScopeTask(scope, eventTask, source, callback, data, customSchedule, customCancel);\n\t}\n\n\tconstructor(\n\t\tpublic scope: ReactiveScopeControl<any>,\n\t\ttype: T,\n\t\tsource: string,\n\t\tcallback: Function,\n\t\tdata?: TaskData,\n\t\tscheduleFn?: (task: Task) => void,\n\t\tcancelFn?: (task: Task) => void) {\n\t\tsuper(type, source, callback, data, scheduleFn, cancelFn);\n\t}\n\tinvoke(task: any, target: any, args: any) {\n\t\ttry {\n\t\t\tthis.runCount++;\n\t\t\tthis.scope.detach();\n\t\t\treturn this.zone.runTask(task, target, args);\n\t\t} finally {\n\t\t\tthis.scope.reattach();\n\t\t}\n\t}\n\tpublic toJSON() {\n\t\treturn Object.assign(super.toJSON(), { scope: this.scope });\n\t}\n}\n\nexport class StackTask<T extends TaskType> extends AbstractTask<T> {\n\n\tstatic microTask(stack: Stack, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void) {\n\t\treturn new StackTask(stack, microTask, source, callback, data, customSchedule, undefined);\n\t}\n\tstatic macroTask(stack: Stack, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void, customCancel?: (task: Task) => void) {\n\t\treturn new StackTask(stack, macroTask, source, callback, data, customSchedule, customCancel);\n\t}\n\tstatic eventTask(stack: Stack, source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void, customCancel?: (task: Task) => void) {\n\t\treturn new StackTask(stack, eventTask, source, callback, data, customSchedule, customCancel);\n\t}\n\n\tconstructor(\n\t\tpublic stack: Stack,\n\t\ttype: T,\n\t\tsource: string,\n\t\tcallback: Function,\n\t\tdata: TaskData | undefined,\n\t\tscheduleFn: ((task: Task) => void) | undefined,\n\t\tcancelFn: ((task: Task) => void) | undefined) {\n\t\tsuper(type, source, callback, data, scheduleFn, cancelFn);\n\t}\n\tinvoke(task: any, target: any, args: any) {\n\t\ttry {\n\t\t\tthis.runCount++;\n\t\t\tthis.stack.detach();\n\t\t\treturn this.zone.runTask(task, target, args);\n\t\t} finally {\n\t\t\tthis.stack.reattach();\n\t\t}\n\t}\n\tpublic toJSON() {\n\t\treturn Object.assign(super.toJSON(), { stack: this.stack });\n\t}\n}\n"]}
package/zone/zone.d.ts ADDED
@@ -0,0 +1,49 @@
1
+ import { EventEmitter } from '../component/events.js';
2
+ export interface AuroraZone {
3
+ readonly onTry: EventEmitter<void>;
4
+ readonly onCatch: EventEmitter<void>;
5
+ readonly onFinal: EventEmitter<void>;
6
+ readonly onEmpty: EventEmitter<void>;
7
+ fork(): AuroraZone;
8
+ run<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;
9
+ runTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;
10
+ runGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;
11
+ runOutsideAurora<T>(callback: (...args: any[]) => T): T;
12
+ }
13
+ export declare abstract class AbstractAuroraZone implements AuroraZone {
14
+ readonly onTry: EventEmitter<void>;
15
+ readonly onCatch: EventEmitter<void>;
16
+ readonly onFinal: EventEmitter<void>;
17
+ readonly onEmpty: EventEmitter<void>;
18
+ protected id: number;
19
+ constructor();
20
+ abstract fork(): AuroraZone;
21
+ abstract run<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;
22
+ abstract runTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;
23
+ abstract runGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;
24
+ abstract runOutsideAurora<T>(callback: (...args: any[]) => T): T;
25
+ }
26
+ export declare class AuroraZone extends AbstractAuroraZone {
27
+ static isInAuroraZone(): boolean;
28
+ static assertInAuroraZone(): void;
29
+ static assertNotInAuroraZone(): void;
30
+ constructor(parent?: AuroraZone);
31
+ }
32
+ export declare class ManualAuroraZone extends AbstractAuroraZone {
33
+ constructor(parent?: AuroraZone);
34
+ fork(): AuroraZone;
35
+ private runCallback;
36
+ run<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;
37
+ runTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;
38
+ runGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;
39
+ runOutsideAurora<T>(callback: (...args: any[]) => T): T;
40
+ }
41
+ export declare class ProxyAuroraZone extends AbstractAuroraZone {
42
+ constructor(parent?: AuroraZone);
43
+ fork(): AuroraZone;
44
+ private runCallback;
45
+ run<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;
46
+ runTask<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined, name?: string | undefined): T;
47
+ runGuarded<T>(callback: (...args: any[]) => T, applyThis?: any, applyArgs?: any[] | undefined): T;
48
+ runOutsideAurora<T>(callback: (...args: any[]) => T): T;
49
+ }
package/zone/zone.js ADDED
@@ -0,0 +1,198 @@
1
+ /// <reference types='zone.js' />
2
+ import { hasBindingHook } from '@ibyar/expressions';
3
+ import { EventEmitter } from '../component/events.js';
4
+ import { createZoneProxyHandler } from './proxy.js';
5
+ const NOOP = () => { };
6
+ const EMPTY_PAYLOAD = {};
7
+ let LastId = 0;
8
+ export class AbstractAuroraZone {
9
+ constructor() {
10
+ this.onTry = new EventEmitter();
11
+ this.onCatch = new EventEmitter();
12
+ this.onFinal = new EventEmitter();
13
+ this.onEmpty = new EventEmitter();
14
+ this.id = ++LastId;
15
+ }
16
+ }
17
+ export class AuroraZone extends AbstractAuroraZone {
18
+ static isInAuroraZone() {
19
+ return typeof Zone !== 'undefined' && Zone.current.get('aurora-zone') === true;
20
+ }
21
+ static assertInAuroraZone() {
22
+ if (!AuroraZone.isInAuroraZone()) {
23
+ throw new Error('Expected to be in Aurora Zone, but it is not!');
24
+ }
25
+ }
26
+ static assertNotInAuroraZone() {
27
+ if (AuroraZone.isInAuroraZone()) {
28
+ throw new Error('Expected to not be in Aurora Zone, but it is!');
29
+ }
30
+ }
31
+ constructor(parent) {
32
+ if (typeof Zone == 'undefined') {
33
+ throw new Error(`In this configuration Zone.js is required`);
34
+ }
35
+ Zone.assertZonePatched();
36
+ super();
37
+ const self = this;
38
+ self._nesting = 0;
39
+ self._outer = Zone.root;
40
+ if (parent) {
41
+ self._parent = parent;
42
+ self._inner = parent._inner;
43
+ }
44
+ else {
45
+ self._inner = Zone.current;
46
+ if (Zone['TaskTrackingZoneSpec']) {
47
+ self._inner = self._inner.fork(new Zone['TaskTrackingZoneSpec']);
48
+ }
49
+ }
50
+ self._inner = self._inner.fork({
51
+ name: 'aurora',
52
+ properties: { 'aurora-zone': true, id: self.id },
53
+ onInvoke: (parentZoneDelegate, currentZone, targetZone, delegate, applyThis, applyArgs, source) => {
54
+ try {
55
+ before(self);
56
+ return parentZoneDelegate.invoke(targetZone, delegate, applyThis, applyArgs, source);
57
+ }
58
+ finally {
59
+ after(self);
60
+ }
61
+ },
62
+ onInvokeTask: (parentZoneDelegate, currentZone, targetZone, task, applyThis, applyArgs) => {
63
+ try {
64
+ before(self);
65
+ return parentZoneDelegate.invokeTask(targetZone, task, applyThis, applyArgs);
66
+ }
67
+ finally {
68
+ after(self);
69
+ }
70
+ },
71
+ onHandleError: (parentZoneDelegate, currentZone, targetZone, error) => {
72
+ parentZoneDelegate.handleError(targetZone, error);
73
+ self.runOutsideAurora(() => self.onCatch.emit(error));
74
+ return false;
75
+ },
76
+ });
77
+ }
78
+ fork() {
79
+ return new AuroraZone(this);
80
+ }
81
+ run(callback, applyThis, applyArgs) {
82
+ return this._inner.run(callback, applyThis, applyArgs);
83
+ }
84
+ runTask(callback, applyThis, applyArgs, name) {
85
+ const zone = this._inner;
86
+ const task = zone.scheduleEventTask('AuroraZoneEvent: ' + name ?? '', callback, EMPTY_PAYLOAD, NOOP, NOOP);
87
+ try {
88
+ return zone.runTask(task, applyThis, applyArgs);
89
+ }
90
+ finally {
91
+ zone.cancelTask(task);
92
+ }
93
+ }
94
+ runGuarded(callback, applyThis, applyArgs) {
95
+ return this._inner.runGuarded(callback, applyThis, applyArgs);
96
+ }
97
+ runOutsideAurora(callback) {
98
+ return this._outer.run(callback);
99
+ }
100
+ }
101
+ function before(zone) {
102
+ zone.onTry.emit();
103
+ zone._nesting++;
104
+ }
105
+ function after(zone) {
106
+ zone._nesting--;
107
+ zone.onFinal.emit();
108
+ if (zone._nesting === 0) {
109
+ zone.onEmpty.emit();
110
+ }
111
+ }
112
+ export class ManualAuroraZone extends AbstractAuroraZone {
113
+ constructor(parent) {
114
+ super();
115
+ if (parent) {
116
+ const self = this;
117
+ self._nesting = 0;
118
+ self._parent = parent;
119
+ }
120
+ }
121
+ fork() {
122
+ return new ManualAuroraZone(this);
123
+ }
124
+ runCallback(callback, applyThis, applyArgs) {
125
+ try {
126
+ before(this);
127
+ return callback.apply(applyThis, applyArgs);
128
+ }
129
+ catch (error) {
130
+ this.onCatch.emit();
131
+ throw error;
132
+ }
133
+ finally {
134
+ after(this);
135
+ }
136
+ }
137
+ run(callback, applyThis, applyArgs) {
138
+ return this.runCallback(callback, applyThis, applyArgs);
139
+ }
140
+ runTask(callback, applyThis, applyArgs, name) {
141
+ return this.runCallback(callback, applyThis, applyArgs);
142
+ }
143
+ runGuarded(callback, applyThis, applyArgs) {
144
+ return this.runCallback(callback, applyThis, applyArgs);
145
+ }
146
+ runOutsideAurora(callback) {
147
+ return callback();
148
+ }
149
+ }
150
+ const ReflectInterceptors = [Reflect.defineProperty, Reflect.deleteProperty, Reflect.get, Reflect.set];
151
+ export class ProxyAuroraZone extends AbstractAuroraZone {
152
+ constructor(parent) {
153
+ super();
154
+ if (parent) {
155
+ const self = this;
156
+ self._nesting = 0;
157
+ self._parent = parent;
158
+ }
159
+ }
160
+ fork() {
161
+ return new ProxyAuroraZone(this);
162
+ }
163
+ runCallback(callback, applyThis, applyArgs) {
164
+ try {
165
+ before(this);
166
+ if (ReflectInterceptors.includes(callback) || hasBindingHook(applyThis)) {
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
+ }
176
+ }
177
+ catch (error) {
178
+ this.onCatch.emit();
179
+ throw error;
180
+ }
181
+ finally {
182
+ after(this);
183
+ }
184
+ }
185
+ run(callback, applyThis, applyArgs) {
186
+ return this.runCallback(callback, applyThis, applyArgs);
187
+ }
188
+ runTask(callback, applyThis, applyArgs, name) {
189
+ return this.runCallback(callback, applyThis, applyArgs);
190
+ }
191
+ runGuarded(callback, applyThis, applyArgs) {
192
+ return this.runCallback(callback, applyThis, applyArgs);
193
+ }
194
+ runOutsideAurora(callback) {
195
+ return callback();
196
+ }
197
+ }
198
+ //# sourceMappingURL=zone.js.map
@@ -0,0 +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,10 +0,0 @@
1
- import { ReactiveScopeControl } from '@ibyar/expressions';
2
- import { TypeOf } from '@ibyar/expressions/api/utils';
3
- export declare class ElementModelReactiveScope<T extends {
4
- [key: PropertyKey]: any;
5
- }> extends ReactiveScopeControl<T> {
6
- static for<T extends object>(context: T, propertyKeys?: (keyof T)[]): ElementModelReactiveScope<T>;
7
- private contextProxy;
8
- getContextProxy(): T;
9
- getClass(): TypeOf<ElementModelReactiveScope<T>>;
10
- }
@@ -1,17 +0,0 @@
1
- import { createProxyForContext, ReactiveScopeControl } from '@ibyar/expressions';
2
- export class ElementModelReactiveScope extends ReactiveScopeControl {
3
- constructor() {
4
- super(...arguments);
5
- this.contextProxy = createProxyForContext(this);
6
- }
7
- static for(context, propertyKeys) {
8
- return new ElementModelReactiveScope(context, propertyKeys);
9
- }
10
- getContextProxy() {
11
- return this.contextProxy;
12
- }
13
- getClass() {
14
- return ElementModelReactiveScope;
15
- }
16
- }
17
- //# sourceMappingURL=provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/core/component/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGjF,MAAM,OAAO,yBAAiE,SAAQ,oBAAuB;IAA7G;;QAIS,iBAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAOpD,CAAC;IAVA,MAAM,CAAC,GAAG,CAAmB,OAAU,EAAE,YAA0B;QAClE,OAAO,IAAI,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IACD,QAAQ;QACP,OAAO,yBAAyB,CAAC;IAClC,CAAC;CACD","sourcesContent":["import { createProxyForContext, ReactiveScopeControl } from '@ibyar/expressions';\nimport { TypeOf } from '@ibyar/expressions/api/utils';\n\nexport class ElementModelReactiveScope<T extends { [key: PropertyKey]: any }> extends ReactiveScopeControl<T> {\n\tstatic for<T extends object>(context: T, propertyKeys?: (keyof T)[]) {\n\t\treturn new ElementModelReactiveScope(context, propertyKeys);\n\t}\n\tprivate contextProxy = createProxyForContext(this);\n\tgetContextProxy(): T {\n\t\treturn this.contextProxy;\n\t}\n\tgetClass(): TypeOf<ElementModelReactiveScope<T>> {\n\t\treturn ElementModelReactiveScope;\n\t}\n}\n"]}