@ibyar/core 0.8.6 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/annotation/context.d.ts +41 -0
  2. package/annotation/context.d.ts.map +1 -0
  3. package/annotation/context.js +79 -0
  4. package/annotation/context.js.map +1 -0
  5. package/annotation/decorators.d.ts +20 -285
  6. package/annotation/decorators.d.ts.map +1 -0
  7. package/annotation/decorators.js +92 -84
  8. package/annotation/decorators.js.map +1 -1
  9. package/annotation/options.d.ts +275 -0
  10. package/annotation/options.d.ts.map +1 -0
  11. package/annotation/options.js +2 -0
  12. package/annotation/options.js.map +1 -0
  13. package/binding/binding.expressions.d.ts +1 -0
  14. package/binding/binding.expressions.d.ts.map +1 -0
  15. package/binding/binding.expressions.js +138 -125
  16. package/binding/binding.expressions.js.map +1 -1
  17. package/component/component.d.ts +12 -11
  18. package/component/component.d.ts.map +1 -0
  19. package/component/component.js +37 -44
  20. package/component/component.js.map +1 -1
  21. package/component/custom-element.d.ts +1 -0
  22. package/component/custom-element.d.ts.map +1 -0
  23. package/component/events.d.ts +1 -0
  24. package/component/events.d.ts.map +1 -0
  25. package/component/events.js +4 -3
  26. package/component/events.js.map +1 -1
  27. package/component/lifecycle.d.ts +1 -0
  28. package/component/lifecycle.d.ts.map +1 -0
  29. package/component/reflect.d.ts +12 -15
  30. package/component/reflect.d.ts.map +1 -0
  31. package/component/reflect.js +27 -47
  32. package/component/reflect.js.map +1 -1
  33. package/context/stack.d.ts +1 -0
  34. package/context/stack.d.ts.map +1 -0
  35. package/context/subscription.d.ts +1 -0
  36. package/context/subscription.d.ts.map +1 -0
  37. package/directive/directive.d.ts +1 -0
  38. package/directive/directive.d.ts.map +1 -0
  39. package/directive/directive.js +8 -0
  40. package/directive/directive.js.map +1 -1
  41. package/directive/parser.d.ts +1 -0
  42. package/directive/parser.d.ts.map +1 -0
  43. package/directive/parser.js +9 -7
  44. package/directive/parser.js.map +1 -1
  45. package/directive/providers.d.ts +1 -0
  46. package/directive/providers.d.ts.map +1 -0
  47. package/directive/providers.js +2 -1
  48. package/directive/providers.js.map +1 -1
  49. package/html/deserialize.d.ts +1 -0
  50. package/html/deserialize.d.ts.map +1 -0
  51. package/html/expression.d.ts +1 -0
  52. package/html/expression.d.ts.map +1 -0
  53. package/html/expression.js +2 -2
  54. package/html/expression.js.map +1 -1
  55. package/html/types.d.ts +1 -0
  56. package/html/types.d.ts.map +1 -0
  57. package/index.d.ts +2 -2
  58. package/index.d.ts.map +1 -0
  59. package/index.js +1 -2
  60. package/index.js.map +1 -1
  61. package/linker/change-detector-ref.d.ts +1 -0
  62. package/linker/change-detector-ref.d.ts.map +1 -0
  63. package/linker/template-ref.d.ts +1 -0
  64. package/linker/template-ref.d.ts.map +1 -0
  65. package/linker/template-ref.js +5 -0
  66. package/linker/template-ref.js.map +1 -1
  67. package/linker/view-container-ref.d.ts +4 -2
  68. package/linker/view-container-ref.d.ts.map +1 -0
  69. package/linker/view-container-ref.js +8 -7
  70. package/linker/view-container-ref.js.map +1 -1
  71. package/linker/view-ref.d.ts +1 -0
  72. package/linker/view-ref.d.ts.map +1 -0
  73. package/linker/view-ref.js +5 -2
  74. package/linker/view-ref.js.map +1 -1
  75. package/node.d.ts +1 -0
  76. package/node.d.ts.map +1 -0
  77. package/package.json +6 -7
  78. package/pipe/pipe.d.ts +1 -0
  79. package/pipe/pipe.d.ts.map +1 -0
  80. package/pipe/pipe.js +2 -1
  81. package/pipe/pipe.js.map +1 -1
  82. package/providers/provider.d.ts +15 -13
  83. package/providers/provider.d.ts.map +1 -0
  84. package/providers/provider.js +13 -16
  85. package/providers/provider.js.map +1 -1
  86. package/utils/elements-util.d.ts +1 -0
  87. package/utils/elements-util.d.ts.map +1 -0
  88. package/utils/path.d.ts +1 -0
  89. package/utils/path.d.ts.map +1 -0
  90. package/utils/typeof.d.ts +3 -0
  91. package/utils/typeof.d.ts.map +1 -0
  92. package/utils/typeof.js.map +1 -1
  93. package/utils/utils.d.ts +1 -0
  94. package/utils/utils.d.ts.map +1 -0
  95. package/view/base-view.d.ts +1 -0
  96. package/view/base-view.d.ts.map +1 -0
  97. package/view/base-view.js +30 -16
  98. package/view/base-view.js.map +1 -1
  99. package/view/form-view.d.ts +1 -0
  100. package/view/form-view.d.ts.map +1 -0
  101. package/view/form-view.js +70 -67
  102. package/view/form-view.js.map +1 -1
  103. package/view/mutation.d.ts +1 -0
  104. package/view/mutation.d.ts.map +1 -0
  105. package/view/mutation.js +37 -36
  106. package/view/mutation.js.map +1 -1
  107. package/view/render.d.ts +1 -0
  108. package/view/render.d.ts.map +1 -0
  109. package/view/render.js +9 -8
  110. package/view/render.js.map +1 -1
  111. package/view/utils.d.ts +4 -3
  112. package/view/utils.d.ts.map +1 -0
  113. package/view/utils.js.map +1 -1
  114. package/view/view.d.ts +5 -4
  115. package/view/view.d.ts.map +1 -0
  116. package/view/view.js +19 -3
  117. package/view/view.js.map +1 -1
  118. package/zone/bootstrap.d.ts +1 -0
  119. package/zone/bootstrap.d.ts.map +1 -0
  120. package/zone/proxy.d.ts +1 -0
  121. package/zone/proxy.d.ts.map +1 -0
  122. package/zone/proxy.js +1 -0
  123. package/zone/proxy.js.map +1 -1
  124. package/zone/task.d.ts +1 -0
  125. package/zone/task.d.ts.map +1 -0
  126. package/zone/task.js +11 -3
  127. package/zone/task.js.map +1 -1
  128. package/zone/zone.d.ts +1 -0
  129. package/zone/zone.d.ts.map +1 -0
  130. package/zone/zone.js +8 -6
  131. package/zone/zone.js.map +1 -1
  132. package/providers/injector.d.ts +0 -10
  133. package/providers/injector.js +0 -27
  134. package/providers/injector.js.map +0 -1
package/view/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/view/utils.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAmB,UAAqB,EAAE,QAAiB;IAC1F,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE;QACvC,OAAO;KACP;IACD,IAAI,aAAqB,CAAC;IAC1B,IAAI,QAAQ,EAAE;QACb,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,iBAAiB,QAAQ,UAAU,CAAC,CAAC;SACvE;KACD;SAAM;QACN,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD;IACD,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import type { HTMLComponent } from '../component/custom-element.js';\nimport type { Constructable } from '../providers/injector.js';\nimport type { TypeOf } from '../utils/typeof.js';\nimport type { ComponentModelClass } from './view.js';\n\nexport function isComponentModelClass(target: Constructable): target is ComponentModelClass {\n\treturn Reflect.has(target, 'component');\n}\n\nexport function getComponentView<T extends object>(modelClass: TypeOf<T>, selector?: string): TypeOf<HTMLComponent<T>> | undefined {\n\tif (!isComponentModelClass(modelClass)) {\n\t\treturn;\n\t}\n\tlet viewClassName: string;\n\tif (selector) {\n\t\tviewClassName = modelClass.component[selector];\n\t\tif (!viewClassName) {\n\t\t\tthrow new Error(`${modelClass.name} doesn't have ${selector} as view`);\n\t\t}\n\t} else {\n\t\tviewClassName = Object.keys(modelClass.component)[0];\n\t}\n\treturn modelClass[viewClassName];\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/view/utils.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAmB,UAA4B,EAAE,QAAiB;IACjG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE;QACvC,OAAO;KACP;IACD,IAAI,aAAqB,CAAC;IAC1B,IAAI,QAAQ,EAAE;QACb,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,iBAAiB,QAAQ,UAAU,CAAC,CAAC;SACvE;KACD;SAAM;QACN,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD;IACD,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import type { MetadataClass } from '@ibyar/decorators';\nimport type { HTMLComponent } from '../component/custom-element.js';\nimport type { TypeOf } from '../utils/typeof.js';\nimport type { ComponentModelClass } from './view.js';\n\nexport function isComponentModelClass(target: MetadataClass): target is ComponentModelClass {\n\treturn Reflect.has(target, 'component');\n}\n\nexport function getComponentView<T extends object>(modelClass: MetadataClass<T>, selector?: string): TypeOf<HTMLComponent<T>> | undefined {\n\tif (!isComponentModelClass(modelClass)) {\n\t\treturn;\n\t}\n\tlet viewClassName: string;\n\tif (selector) {\n\t\tviewClassName = modelClass.component[selector];\n\t\tif (!viewClassName) {\n\t\t\tthrow new Error(`${modelClass.name} doesn't have ${selector} as view`);\n\t\t}\n\t} else {\n\t\tviewClassName = Object.keys(modelClass.component)[0];\n\t}\n\treturn modelClass[viewClassName];\n}\n"]}
package/view/view.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  import type { TypeOf } from '../utils/typeof.js';
2
+ import { MetadataClass } from '@ibyar/decorators';
2
3
  import { ComponentRef } from '../component/component.js';
3
4
  import { HTMLComponent } from '../component/custom-element.js';
4
- import { Constructable } from '../providers/injector.js';
5
5
  /**
6
6
  *
7
7
  * @param modelClass
8
8
  * @param componentRef
9
9
  */
10
- export declare function initCustomElementView<T extends Object>(modelClass: TypeOf<T>, componentRef: ComponentRef<T>): TypeOf<HTMLComponent<T>>;
11
- export type ComponentModelClass = Constructable & {
10
+ export declare function initCustomElementView<T extends Object>(modelClass: MetadataClass<T>, componentRef: ComponentRef<T>): MetadataClass<HTMLComponent<T>>;
11
+ export type ComponentModelClass = MetadataClass & {
12
12
  [key: string]: string;
13
13
  } & {
14
14
  component: {
@@ -17,5 +17,6 @@ export type ComponentModelClass = Constructable & {
17
17
  } & {
18
18
  [key: string]: TypeOf<HTMLComponent<any>>;
19
19
  };
20
- export declare function addViewToModelClass<T extends object>(modelClass: TypeOf<T>, selector: string, viewClass: TypeOf<HTMLComponent<T>>, htmlViewClassName: string): void;
20
+ export declare function addViewToModelClass<T extends object>(modelClass: MetadataClass<T>, selector: string, viewClass: TypeOf<HTMLComponent<T>>, htmlViewClassName: string): void;
21
21
  export declare function buildViewClassNameFromSelector(selector: string): string;
22
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/core/view/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAY,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAS/D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAkFpJ;AAED,MAAM,MAAM,mBAAmB,GAC9B,aAAa,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACzB;IAAE,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAAE,GACxC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;CAAE,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,QAUnK;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,UAK9D"}
package/view/view.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { __esDecorate, __propKey, __runInitializers, __setFunctionName } from "tslib";
2
+ import { Metadata } from '@ibyar/decorators';
1
3
  import { getAllAttributes } from '@ibyar/elements';
2
4
  import { ToCamelCase } from '../utils/utils.js';
3
5
  import { baseFactoryView } from './base-view.js';
@@ -10,6 +12,7 @@ const FACTORY_CACHE = new WeakMap();
10
12
  * @param componentRef
11
13
  */
12
14
  export function initCustomElementView(modelClass, componentRef) {
15
+ var _a;
13
16
  const htmlParent = componentRef.extend.classRef;
14
17
  let viewClass;
15
18
  const viewClassName = buildViewClassNameFromSelector(componentRef.selector);
@@ -23,9 +26,22 @@ export function initCustomElementView(modelClass, componentRef) {
23
26
  FACTORY_CACHE.set(htmlParent, parentClass);
24
27
  }
25
28
  viewClass = ({
26
- [htmlViewClassName]: class extends parentClass {
27
- constructor() { super(componentRef, modelClass); }
28
- }
29
+ [_a = __propKey(htmlViewClassName)]: (() => {
30
+ let _classDecorators = [Metadata()];
31
+ let _classDescriptor;
32
+ let _classExtraInitializers = [];
33
+ let _classThis;
34
+ var class_1 = class extends parentClass {
35
+ static {
36
+ __setFunctionName(this, _a);
37
+ __esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
38
+ class_1 = _classThis = _classDescriptor.value;
39
+ __runInitializers(_classThis, _classExtraInitializers);
40
+ }
41
+ constructor() { super(componentRef, modelClass); }
42
+ };
43
+ return class_1 = _classThis;
44
+ })()
29
45
  })[htmlViewClassName];
30
46
  componentRef.inputs.forEach((input) => {
31
47
  Object.defineProperty(viewClass.prototype, input.viewAttribute, {
package/view/view.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/core/view/view.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TypeOf } from '../utils/typeof.js';\nimport { getAllAttributes } from '@ibyar/elements';\nimport { ComponentRef } from '../component/component.js';\nimport { HTMLComponent } from '../component/custom-element.js';\nimport { EventEmitter, Subscription } from '../component/events.js';\nimport { ToCamelCase } from '../utils/utils.js';\nimport { Constructable } from '../providers/injector.js';\nimport { baseFactoryView } from './base-view.js';\nimport { baseFormFactoryView } from './form-view.js';\nimport { isComponentModelClass } from './utils.js';\n\nconst FACTORY_CACHE = new WeakMap<TypeOf<HTMLElement>, TypeOf<HTMLComponent<any>>>();\n\n/**\n * \n * @param modelClass \n * @param componentRef \n */\nexport function initCustomElementView<T extends Object>(modelClass: TypeOf<T>, componentRef: ComponentRef<T>): TypeOf<HTMLComponent<T>> {\n\tconst htmlParent = componentRef.extend.classRef as TypeOf<HTMLElement>;\n\tlet viewClass: TypeOf<HTMLComponent<T>>;\n\tconst viewClassName = buildViewClassNameFromSelector(componentRef.selector);\n\tconst htmlViewClassName = `HTML${viewClassName}Element`;\n\n\tlet parentClass: TypeOf<HTMLComponent<T>>;\n\tif (FACTORY_CACHE.has(htmlParent)) {\n\t\tparentClass = FACTORY_CACHE.get(htmlParent) as TypeOf<HTMLComponent<T>>;\n\t} else {\n\t\tparentClass = componentRef.formAssociated ? baseFormFactoryView<T>(htmlParent) : baseFactoryView<T>(htmlParent);\n\t\tFACTORY_CACHE.set(htmlParent, parentClass);\n\t}\n\tviewClass = ({\n\t\t[htmlViewClassName]: class extends parentClass { constructor() { super(componentRef, modelClass); } }\n\t})[htmlViewClassName];\n\n\tcomponentRef.inputs.forEach((input) => {\n\t\tObject.defineProperty(viewClass.prototype, input.viewAttribute, {\n\t\t\tget(this: HTMLComponent<T>): any {\n\t\t\t\treturn this._modelScope.get(input.modelProperty);\n\t\t\t},\n\t\t\tset(this: HTMLComponent<{ [key: string]: any; }>, value: any) {\n\t\t\t\tthis._modelScope.set(input.modelProperty, value);\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t});\n\t});\n\n\tcomponentRef.outputs.forEach(output => {\n\t\tObject.defineProperty(viewClass.prototype, output.viewAttribute, {\n\t\t\tget(): EventEmitter<any> {\n\t\t\t\treturn this._model[output.modelProperty];\n\t\t\t},\n\t\t\tenumerable: true\n\t\t});\n\t\tlet eventListener: Function | undefined;\n\t\tlet subscription: Subscription<any>;\n\t\tObject.defineProperty(viewClass.prototype, 'on' + ToCamelCase(output.viewAttribute), {\n\t\t\tget(): Function | undefined {\n\t\t\t\treturn eventListener;\n\t\t\t},\n\t\t\tset(this: HTMLComponent<T>, event: string | Function): void {\n\t\t\t\tif (!event) {\n\t\t\t\t\tif (subscription) {\n\t\t\t\t\t\tsubscription.unsubscribe();\n\t\t\t\t\t\teventListener = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (typeof event === 'string') {\n\t\t\t\t\tif (event.endsWith('()')) {\n\t\t\t\t\t\tevent = event.substring(0, event.length - 2);\n\t\t\t\t\t}\n\t\t\t\t\tevent = Reflect.get(window, event);\n\t\t\t\t}\n\t\t\t\teventListener = event as Function;\n\t\t\t\tsubscription = (this._model[output.modelProperty] as EventEmitter<any>).subscribe(event);\n\t\t\t},\n\t\t\tenumerable: true\n\t\t});\n\t});\n\n\tcomponentRef.inputs.map(input => input.modelProperty)\n\t\t.concat(componentRef.outputs.map(output => output.modelProperty))\n\t\t.concat(componentRef.hostBindings.map(host => host.hostPropertyName))\n\t\t.concat(componentRef.viewChild.map(child => child.modelName))\n\t\t.filter(modelName => !(modelName in modelClass.prototype))\n\t\t.forEach(modelName => modelClass.prototype[modelName] = undefined);\n\n\tconst defaultAttributes = getAllAttributes(componentRef.extend.name);\n\tconst observedAttributes = componentRef.inputs.map(input => input.viewAttribute)\n\t\t.concat(componentRef.outputs.map(output => 'on' + ToCamelCase(output.viewAttribute)));\n\tif (componentRef.formAssociated && !observedAttributes.includes('value')) {\n\t\tobservedAttributes.push('value');\n\t}\n\tReflect.set(viewClass, 'observedAttributes', observedAttributes);\n\tReflect.set(viewClass, 'allAttributes', defaultAttributes.concat(observedAttributes));\n\taddViewToModelClass<T>(modelClass, componentRef.selector, viewClass, htmlViewClassName);\n\tif (!Reflect.has(window, htmlViewClassName)) {\n\t\tReflect.set(window, htmlViewClassName, viewClass);\n\t}\n\treturn viewClass;\n}\n\nexport type ComponentModelClass =\n\tConstructable\n\t& { [key: string]: string }\n\t& { component: { [key: string]: string } }\n\t& { [key: string]: TypeOf<HTMLComponent<any>> };\n\nexport function addViewToModelClass<T extends object>(modelClass: TypeOf<T>, selector: string, viewClass: TypeOf<HTMLComponent<T>>, htmlViewClassName: string) {\n\tObject.defineProperty(modelClass, htmlViewClassName, { value: viewClass });\n\n\tif (!isComponentModelClass(modelClass)) {\n\t\tReflect.set(modelClass, 'component', {});\n\t}\n\n\tif (isComponentModelClass(modelClass)) {\n\t\tmodelClass.component[selector] = htmlViewClassName;\n\t}\n}\n\nexport function buildViewClassNameFromSelector(selector: string) {\n\treturn selector\n\t\t.split('-')\n\t\t.map(name => name.replace(/^\\w/, char => char.toUpperCase()))\n\t\t.join('');\n}\n"]}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/core/view/view.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TypeOf } from '../utils/typeof.js';\nimport { MetadataClass, Metadata } from '@ibyar/decorators';\nimport { getAllAttributes } from '@ibyar/elements';\nimport { ComponentRef } from '../component/component.js';\nimport { HTMLComponent } from '../component/custom-element.js';\nimport { EventEmitter, Subscription } from '../component/events.js';\nimport { ToCamelCase } from '../utils/utils.js';\nimport { baseFactoryView } from './base-view.js';\nimport { baseFormFactoryView } from './form-view.js';\nimport { isComponentModelClass } from './utils.js';\n\nconst FACTORY_CACHE = new WeakMap<TypeOf<HTMLElement>, TypeOf<HTMLComponent<any>>>();\n\n/**\n * \n * @param modelClass \n * @param componentRef \n */\nexport function initCustomElementView<T extends Object>(modelClass: MetadataClass<T>, componentRef: ComponentRef<T>): MetadataClass<HTMLComponent<T>> {\n\tconst htmlParent = componentRef.extend.classRef as TypeOf<HTMLElement>;\n\tlet viewClass: TypeOf<HTMLComponent<T>>;\n\tconst viewClassName = buildViewClassNameFromSelector(componentRef.selector);\n\tconst htmlViewClassName = `HTML${viewClassName}Element`;\n\n\tlet parentClass: TypeOf<HTMLComponent<T>>;\n\tif (FACTORY_CACHE.has(htmlParent)) {\n\t\tparentClass = FACTORY_CACHE.get(htmlParent) as TypeOf<HTMLComponent<T>>;\n\t} else {\n\t\tparentClass = componentRef.formAssociated ? baseFormFactoryView<T>(htmlParent) : baseFactoryView<T>(htmlParent);\n\t\tFACTORY_CACHE.set(htmlParent, parentClass);\n\t}\n\tviewClass = ({\n\t\t[htmlViewClassName]: @Metadata() class extends parentClass { constructor() { super(componentRef, modelClass); } }\n\t})[htmlViewClassName];\n\n\tcomponentRef.inputs.forEach((input) => {\n\t\tObject.defineProperty(viewClass.prototype, input.viewAttribute, {\n\t\t\tget(this: HTMLComponent<T>): any {\n\t\t\t\treturn this._modelScope.get(input.modelProperty);\n\t\t\t},\n\t\t\tset(this: HTMLComponent<{ [key: string]: any; }>, value: any) {\n\t\t\t\tthis._modelScope.set(input.modelProperty, value);\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t});\n\t});\n\n\tcomponentRef.outputs.forEach(output => {\n\t\tObject.defineProperty(viewClass.prototype, output.viewAttribute, {\n\t\t\tget(): EventEmitter<any> {\n\t\t\t\treturn this._model[output.modelProperty];\n\t\t\t},\n\t\t\tenumerable: true\n\t\t});\n\t\tlet eventListener: Function | undefined;\n\t\tlet subscription: Subscription<any>;\n\t\tObject.defineProperty(viewClass.prototype, 'on' + ToCamelCase(output.viewAttribute), {\n\t\t\tget(): Function | undefined {\n\t\t\t\treturn eventListener;\n\t\t\t},\n\t\t\tset(this: HTMLComponent<T>, event: string | Function): void {\n\t\t\t\tif (!event) {\n\t\t\t\t\tif (subscription) {\n\t\t\t\t\t\tsubscription.unsubscribe();\n\t\t\t\t\t\teventListener = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (typeof event === 'string') {\n\t\t\t\t\tif (event.endsWith('()')) {\n\t\t\t\t\t\tevent = event.substring(0, event.length - 2);\n\t\t\t\t\t}\n\t\t\t\t\tevent = Reflect.get(window, event);\n\t\t\t\t}\n\t\t\t\teventListener = event as Function;\n\t\t\t\tsubscription = (this._model[output.modelProperty] as EventEmitter<any>).subscribe(event);\n\t\t\t},\n\t\t\tenumerable: true\n\t\t});\n\t});\n\n\tcomponentRef.inputs.map(input => input.modelProperty)\n\t\t.concat(componentRef.outputs.map(output => output.modelProperty))\n\t\t.concat(componentRef.hostBindings.map(host => host.hostPropertyName))\n\t\t.concat(componentRef.viewChild.map(child => child.modelName))\n\t\t.filter(modelName => !(modelName in modelClass.prototype))\n\t\t.forEach(modelName => modelClass.prototype[modelName] = undefined);\n\n\tconst defaultAttributes = getAllAttributes(componentRef.extend.name);\n\tconst observedAttributes = componentRef.inputs.map(input => input.viewAttribute)\n\t\t.concat(componentRef.outputs.map(output => 'on' + ToCamelCase(output.viewAttribute)));\n\tif (componentRef.formAssociated && !observedAttributes.includes('value')) {\n\t\tobservedAttributes.push('value');\n\t}\n\tReflect.set(viewClass, 'observedAttributes', observedAttributes);\n\tReflect.set(viewClass, 'allAttributes', defaultAttributes.concat(observedAttributes));\n\taddViewToModelClass<T>(modelClass, componentRef.selector, viewClass, htmlViewClassName);\n\tif (!Reflect.has(window, htmlViewClassName)) {\n\t\tReflect.set(window, htmlViewClassName, viewClass);\n\t}\n\treturn viewClass as MetadataClass;\n}\n\nexport type ComponentModelClass =\n\tMetadataClass\n\t& { [key: string]: string }\n\t& { component: { [key: string]: string } }\n\t& { [key: string]: TypeOf<HTMLComponent<any>> };\n\nexport function addViewToModelClass<T extends object>(modelClass: MetadataClass<T>, selector: string, viewClass: TypeOf<HTMLComponent<T>>, htmlViewClassName: string) {\n\tObject.defineProperty(modelClass, htmlViewClassName, { value: viewClass });\n\n\tif (!isComponentModelClass(modelClass)) {\n\t\tReflect.set(modelClass, 'component', {});\n\t}\n\n\tif (isComponentModelClass(modelClass)) {\n\t\tmodelClass.component[selector] = htmlViewClassName;\n\t}\n}\n\nexport function buildViewClassNameFromSelector(selector: string) {\n\treturn selector\n\t\t.split('-')\n\t\t.map(name => name.replace(/^\\w/, char => char.toUpperCase()))\n\t\t.join('');\n}\n"]}
@@ -19,3 +19,4 @@ export type ZoneType =
19
19
  */
20
20
  export declare function bootstrapZone(type?: ZoneType): void;
21
21
  export declare function getRootZone(): AuroraZone;
22
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/core/zone/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqC,MAAM,WAAW,CAAC;AAE1E,MAAM,MAAM,QAAQ;AACnB;;GAEG;AACD,QAAQ;AAEV;;GAEG;GACD,OAAO;AAET;;;;GAIG;GACD,QAAQ,CACT;AAMF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,QAW5C;AAED,wBAAgB,WAAW,eAE1B"}
package/zone/proxy.d.ts CHANGED
@@ -14,3 +14,4 @@ export declare class ZoneProxyHandler<T extends object> implements ProxyHandler<
14
14
  }
15
15
  export declare function createRevocableProxyZone<T extends object>(model: T, zone: ProxyAuroraZone): RevocableProxy<T>;
16
16
  export declare function createProxyZone<T extends object>(model: T, zone: ProxyAuroraZone): T;
17
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/core/zone/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI5C;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAK7D,OAAO,CAAC,KAAK;IAHzB,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC;gBAGnD,KAAK,EAAE,eAAe;IAC1C,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO;IAItF,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAItD,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG;IAYtD,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO;CAItE;AAED,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,CAE7G;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,GAAG,CAAC,CAEpF"}
package/zone/proxy.js CHANGED
@@ -4,6 +4,7 @@ const ProxyCache = new WeakMap();
4
4
  * crete new proxy handler for object
5
5
  */
6
6
  export class ZoneProxyHandler {
7
+ _zone;
7
8
  static of(zone) {
8
9
  return new ZoneProxyHandler(zone);
9
10
  }
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,MAAM,UAAU,GAAG,IAAI,OAAO,EAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAE5B,MAAM,CAAC,EAAE,CAAmB,IAAqB;QAChD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,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,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,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,wBAAwB,CAAmB,KAAQ,EAAE,IAAqB;IACzF,OAAO,KAAK,CAAC,SAAS,CAAI,KAAK,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,eAAe,CAAmB,KAAQ,EAAE,IAAqB;IAChF,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, any>();\n\n/**\n * crete new proxy handler for object\n */\nexport class ZoneProxyHandler<T extends object> implements ProxyHandler<T> {\n\n\tstatic of<M extends object>(zone: ProxyAuroraZone): ZoneProxyHandler<M> {\n\t\treturn new ZoneProxyHandler(zone);\n\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 = createProxyZone(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 createRevocableProxyZone<T extends object>(model: T, zone: ProxyAuroraZone): RevocableProxy<T> {\n\treturn Proxy.revocable<T>(model, new ZoneProxyHandler(zone));\n}\n\nexport function createProxyZone<T extends object>(model: T, zone: ProxyAuroraZone): T {\n\treturn new Proxy<T>(model, new ZoneProxyHandler(zone));\n}\n"]}
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,EAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAKR;IAHpB,MAAM,CAAC,EAAE,CAAmB,IAAqB;QAChD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,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,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,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,wBAAwB,CAAmB,KAAQ,EAAE,IAAqB;IACzF,OAAO,KAAK,CAAC,SAAS,CAAI,KAAK,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,eAAe,CAAmB,KAAQ,EAAE,IAAqB;IAChF,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, any>();\n\n/**\n * crete new proxy handler for object\n */\nexport class ZoneProxyHandler<T extends object> implements ProxyHandler<T> {\n\n\tstatic of<M extends object>(zone: ProxyAuroraZone): ZoneProxyHandler<M> {\n\t\treturn new ZoneProxyHandler(zone);\n\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 = createProxyZone(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 createRevocableProxyZone<T extends object>(model: T, zone: ProxyAuroraZone): RevocableProxy<T> {\n\treturn Proxy.revocable<T>(model, new ZoneProxyHandler(zone));\n}\n\nexport function createProxyZone<T extends object>(model: T, zone: ProxyAuroraZone): T {\n\treturn new Proxy<T>(model, new ZoneProxyHandler(zone));\n}\n"]}
package/zone/task.d.ts CHANGED
@@ -59,3 +59,4 @@ export declare class StackTask<T extends TaskType> extends AbstractTask<T> {
59
59
  stack: Stack;
60
60
  };
61
61
  }
62
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/core/zone/task.ts"],"names":[],"mappings":"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"}
package/zone/task.js CHANGED
@@ -1,6 +1,15 @@
1
1
  const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';
2
2
  const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';
3
3
  export class AbstractTask {
4
+ type;
5
+ source;
6
+ callback;
7
+ data;
8
+ scheduleFn;
9
+ cancelFn;
10
+ runCount = 0;
11
+ _zone = null;
12
+ _state = 'notScheduled';
4
13
  constructor(type, source, callback, data, scheduleFn, cancelFn) {
5
14
  this.type = type;
6
15
  this.source = source;
@@ -8,9 +17,6 @@ export class AbstractTask {
8
17
  this.data = data;
9
18
  this.scheduleFn = scheduleFn;
10
19
  this.cancelFn = cancelFn;
11
- this.runCount = 0;
12
- this._zone = null;
13
- this._state = 'notScheduled';
14
20
  if (!callback) {
15
21
  throw new Error('callback is not defined');
16
22
  }
@@ -51,6 +57,7 @@ export class AbstractTask {
51
57
  }
52
58
  }
53
59
  export class ScopeTask extends AbstractTask {
60
+ scope;
54
61
  static microTask(scope, source, callback, data, customSchedule) {
55
62
  return new ScopeTask(scope, microTask, source, callback, data, customSchedule, undefined);
56
63
  }
@@ -79,6 +86,7 @@ export class ScopeTask extends AbstractTask {
79
86
  }
80
87
  }
81
88
  export class StackTask extends AbstractTask {
89
+ stack;
82
90
  static microTask(stack, source, callback, data, customSchedule) {
83
91
  return new StackTask(stack, microTask, source, callback, data, customSchedule, undefined);
84
92
  }
package/zone/task.js.map CHANGED
@@ -1 +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"]}
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 CHANGED
@@ -50,3 +50,4 @@ export declare class ProxyAuroraZone extends AbstractAuroraZone {
50
50
  runOutsideAurora<T>(callback: (...args: any[]) => T): T;
51
51
  scheduleChangesDetection(): void;
52
52
  }
53
+ //# sourceMappingURL=zone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone.d.ts","sourceRoot":"","sources":["../../../src/core/zone/zone.ts"],"names":[],"mappings":"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"}
package/zone/zone.js CHANGED
@@ -4,11 +4,12 @@ const NOOP = () => { };
4
4
  const EMPTY_PAYLOAD = {};
5
5
  let LastId = 0;
6
6
  export class AbstractAuroraZone {
7
+ onTry = new EventEmitter();
8
+ onCatch = new EventEmitter();
9
+ onFinal = new EventEmitter();
10
+ onEmpty = new EventEmitter();
11
+ id;
7
12
  constructor() {
8
- this.onTry = new EventEmitter();
9
- this.onCatch = new EventEmitter();
10
- this.onFinal = new EventEmitter();
11
- this.onEmpty = new EventEmitter();
12
13
  this.id = ++LastId;
13
14
  }
14
15
  }
@@ -158,6 +159,7 @@ export class ManualAuroraZone extends AbstractAuroraZone {
158
159
  }
159
160
  }
160
161
  export class ProxyAuroraZone extends AbstractAuroraZone {
162
+ _cdPromise;
161
163
  constructor(parent) {
162
164
  super();
163
165
  if (parent) {
@@ -201,12 +203,12 @@ export class ProxyAuroraZone extends AbstractAuroraZone {
201
203
  return callback();
202
204
  }
203
205
  scheduleChangesDetection() {
204
- this._cdPromise ?? (this._cdPromise = Promise
206
+ this._cdPromise ??= Promise
205
207
  .resolve()
206
208
  .then(() => {
207
209
  this.runCallback(NOOP);
208
210
  this._cdPromise = undefined;
209
- }));
211
+ });
210
212
  }
211
213
  }
212
214
  //# 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 { EventEmitter } from '../component/events.js';\nimport { ZoneType } from './bootstrap.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(type?: ZoneType): 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(type?: ZoneType): AuroraZone;\n\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(type?: ZoneType): AuroraZone {\n\t\tif (type === 'manual') {\n\t\t\treturn new ManualAuroraZone(this);\n\t\t} else if (type === 'proxy') {\n\t\t\treturn new ProxyAuroraZone(this);\n\t\t}\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(type?: ZoneType): AuroraZone {\n\t\tif (type === 'proxy') {\n\t\t\treturn new ProxyAuroraZone(this);\n\t\t} else if (type === 'aurora') {\n\t\t\treturn new AuroraZone(this);\n\t\t}\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(type?: ZoneType): AuroraZone {\n\t\tif (type === 'manual') {\n\t\t\treturn new ManualAuroraZone(this);\n\t\t} else if (type === 'aurora') {\n\t\t\treturn new AuroraZone(this);\n\t\t}\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"]}
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 { EventEmitter } from '../component/events.js';\nimport { ZoneType } from './bootstrap.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(type?: ZoneType): 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(type?: ZoneType): AuroraZone;\n\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(type?: ZoneType): AuroraZone {\n\t\tif (type === 'manual') {\n\t\t\treturn new ManualAuroraZone(this);\n\t\t} else if (type === 'proxy') {\n\t\t\treturn new ProxyAuroraZone(this);\n\t\t}\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(type?: ZoneType): AuroraZone {\n\t\tif (type === 'proxy') {\n\t\t\treturn new ProxyAuroraZone(this);\n\t\t} else if (type === 'aurora') {\n\t\t\treturn new AuroraZone(this);\n\t\t}\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(type?: ZoneType): AuroraZone {\n\t\tif (type === 'manual') {\n\t\t\treturn new ManualAuroraZone(this);\n\t\t} else if (type === 'aurora') {\n\t\t\treturn new AuroraZone(this);\n\t\t}\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"]}
@@ -1,10 +0,0 @@
1
- export interface Constructable<T = any> {
2
- new (...params: any[]): T;
3
- }
4
- export declare class Injector {
5
- private dependencyInjectionMap;
6
- constructor();
7
- getInstance<T>(contr: Constructable<T>): T;
8
- private constructObject;
9
- }
10
- export declare const dependencyInjector: Injector;
@@ -1,27 +0,0 @@
1
- export class Injector {
2
- constructor() {
3
- this.dependencyInjectionMap = new Map();
4
- }
5
- getInstance(contr) {
6
- const instance = this.constructObject(contr);
7
- return instance;
8
- }
9
- constructObject(constructor) {
10
- let currentInstance = this.dependencyInjectionMap.get(constructor);
11
- if (currentInstance)
12
- return currentInstance;
13
- const params = Reflect.getMetadata('design:paramtypes', constructor);
14
- // We need to init each constructor function into it's instance
15
- if (params) {
16
- const argumentsInstances = params.map((paramter) => this.constructObject(paramter));
17
- currentInstance = new constructor(...argumentsInstances);
18
- }
19
- else {
20
- currentInstance = new constructor();
21
- }
22
- this.dependencyInjectionMap.set(constructor, currentInstance);
23
- return currentInstance;
24
- }
25
- }
26
- export const dependencyInjector = new Injector();
27
- //# sourceMappingURL=injector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injector.js","sourceRoot":"","sources":["../../../src/core/providers/injector.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,QAAQ;IAIpB;QAFQ,2BAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;IAE3B,CAAC;IAEjB,WAAW,CAAI,KAAuB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,WAA0B;QACjD,IAAI,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnE,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC;QAE5C,MAAM,MAAM,GACX,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QACvD,+DAA+D;QAC/D,IAAI,MAAM,EAAE;YACX,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAC9B,CAAC;YACF,eAAe,GAAG,IAAI,WAAW,CAAC,GAAG,kBAAkB,CAAC,CAAC;SACzD;aAAM;YACN,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC;SACpC;QACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAC9D,OAAO,eAAe,CAAC;IACxB,CAAC;CACD;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAa,IAAI,QAAQ,EAAE,CAAC","sourcesContent":["\nexport interface Constructable<T = any> {\n\tnew(...params: any[]): T;\n}\n\nexport class Injector {\n\n\tprivate dependencyInjectionMap = new Map();\n\n\tconstructor() { }\n\n\tgetInstance<T>(contr: Constructable<T>): T {\n\t\tconst instance = this.constructObject(contr);\n\t\treturn instance;\n\t}\n\n\tprivate constructObject(constructor: Constructable) {\n\t\tlet currentInstance = this.dependencyInjectionMap.get(constructor);\n\t\tif (currentInstance) return currentInstance;\n\n\t\tconst params: Constructable[] =\n\t\t\tReflect.getMetadata('design:paramtypes', constructor);\n\t\t// We need to init each constructor function into it's instance\n\t\tif (params) {\n\t\t\tconst argumentsInstances = params.map((paramter) =>\n\t\t\t\tthis.constructObject(paramter)\n\t\t\t);\n\t\t\tcurrentInstance = new constructor(...argumentsInstances);\n\t\t} else {\n\t\t\tcurrentInstance = new constructor();\n\t\t}\n\t\tthis.dependencyInjectionMap.set(constructor, currentInstance);\n\t\treturn currentInstance;\n\t}\n}\n\nexport const dependencyInjector: Injector = new Injector();\n"]}