dom-render 1.0.74 → 1.0.77

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. package/Config.d.ts +38 -36
  2. package/Config.js +2 -2
  3. package/DomRender.d.ts +28 -27
  4. package/DomRender.js +90 -88
  5. package/DomRenderProxy.d.ts +29 -29
  6. package/DomRenderProxy.js +342 -327
  7. package/README.MD +638 -567
  8. package/RawSet.d.ts +140 -118
  9. package/RawSet.js +771 -905
  10. package/components/ComponentSet.d.ts +7 -0
  11. package/components/ComponentSet.js +14 -0
  12. package/dist/bundle.js +3789 -3214
  13. package/events/EventManager.d.ts +48 -47
  14. package/events/EventManager.js +530 -499
  15. package/iterators/Range.d.ts +22 -22
  16. package/iterators/Range.js +65 -65
  17. package/lifecycle/OnBeforeReturnGet.d.ts +3 -3
  18. package/lifecycle/OnBeforeReturnGet.js +2 -2
  19. package/lifecycle/OnBeforeReturnSet.d.ts +3 -3
  20. package/lifecycle/OnBeforeReturnSet.js +2 -2
  21. package/lifecycle/OnCreateRender.d.ts +3 -3
  22. package/lifecycle/OnCreateRender.js +2 -2
  23. package/lifecycle/OnDestroyRender.d.ts +4 -4
  24. package/lifecycle/OnDestroyRender.js +2 -2
  25. package/lifecycle/OnInitRender.d.ts +7 -7
  26. package/lifecycle/OnInitRender.js +2 -2
  27. package/lifecycle/OnProxyDomRender.d.ts +4 -0
  28. package/lifecycle/OnProxyDomRender.js +2 -0
  29. package/managers/RenderManager.d.ts +3 -3
  30. package/managers/RenderManager.js +18 -18
  31. package/messenger/DefaultMessenger.d.ts +3 -0
  32. package/messenger/DefaultMessenger.js +27 -0
  33. package/messenger/Messenger.d.ts +78 -0
  34. package/messenger/Messenger.js +201 -0
  35. package/operators/Appender.d.ts +7 -12
  36. package/operators/Appender.js +32 -39
  37. package/operators/AttrExpresion.d.ts +0 -0
  38. package/operators/AttrExpresion.js +44 -0
  39. package/operators/Dr.d.ts +4 -0
  40. package/operators/Dr.js +62 -0
  41. package/operators/DrAppender.d.ts +4 -0
  42. package/operators/DrAppender.js +65 -0
  43. package/operators/DrFor.d.ts +4 -0
  44. package/operators/DrFor.js +62 -0
  45. package/operators/DrForOf.d.ts +4 -0
  46. package/operators/DrForOf.js +65 -0
  47. package/operators/DrForm.d.ts +4 -0
  48. package/operators/DrForm.js +100 -0
  49. package/operators/DrIf.d.ts +4 -0
  50. package/operators/DrIf.js +72 -0
  51. package/operators/DrInnerHTML.d.ts +4 -0
  52. package/operators/DrInnerHTML.js +60 -0
  53. package/operators/DrInnerText.d.ts +4 -0
  54. package/operators/DrInnerText.js +58 -0
  55. package/operators/DrPre.d.ts +4 -0
  56. package/operators/DrPre.js +30 -0
  57. package/operators/DrRepeat.d.ts +4 -0
  58. package/operators/DrRepeat.js +63 -0
  59. package/operators/DrTargetAttr.d.ts +4 -0
  60. package/operators/DrTargetAttr.js +55 -0
  61. package/operators/DrTargetElement.d.ts +4 -0
  62. package/operators/DrTargetElement.js +65 -0
  63. package/operators/DrThis.d.ts +4 -0
  64. package/operators/DrThis.js +59 -0
  65. package/operators/OperatorRender.d.ts +41 -0
  66. package/operators/OperatorRender.js +21 -0
  67. package/package.json +94 -94
  68. package/routers/HashRouter.d.ts +9 -9
  69. package/routers/HashRouter.js +53 -53
  70. package/routers/PathRouter.d.ts +9 -9
  71. package/routers/PathRouter.js +52 -52
  72. package/routers/Router.d.ts +25 -25
  73. package/routers/Router.js +116 -116
  74. package/types/Types.d.ts +14 -14
  75. package/types/Types.js +36 -36
  76. package/utils/clipboard/ClipBoardUtils.d.ts +6 -6
  77. package/utils/clipboard/ClipBoardUtils.js +25 -25
  78. package/utils/dom/DomUtils.d.ts +13 -13
  79. package/utils/dom/DomUtils.js +47 -47
  80. package/utils/location/LocationUtils.d.ts +16 -16
  81. package/utils/location/LocationUtils.js +57 -57
  82. package/utils/node/NodeUtils.d.ts +10 -10
  83. package/utils/node/NodeUtils.js +27 -27
  84. package/utils/random/RandomUtils.d.ts +7 -7
  85. package/utils/random/RandomUtils.js +47 -47
  86. package/utils/script/ScriptUtils.d.ts +14 -14
  87. package/utils/script/ScriptUtils.js +89 -89
  88. package/utils/storage/StorageUtils.d.ts +9 -9
  89. package/utils/storage/StorageUtils.js +48 -48
  90. package/utils/string/StringUtils.d.ts +5 -5
  91. package/utils/string/StringUtils.js +41 -41
  92. package/utils/valid/ValidUtils.d.ts +10 -10
  93. package/utils/valid/ValidUtils.js +78 -78
  94. package/validators/AllCheckedValidatorArray.d.ts +6 -6
  95. package/validators/AllCheckedValidatorArray.js +32 -32
  96. package/validators/AllUnCheckedValidatorArray.d.ts +6 -6
  97. package/validators/AllUnCheckedValidatorArray.js +32 -32
  98. package/validators/CheckedValidator.d.ts +5 -5
  99. package/validators/CheckedValidator.js +32 -32
  100. package/validators/CountEqualsCheckedValidatorArray.d.ts +7 -7
  101. package/validators/CountEqualsCheckedValidatorArray.js +34 -34
  102. package/validators/CountEqualsUnCheckedValidatorArray.d.ts +7 -7
  103. package/validators/CountEqualsUnCheckedValidatorArray.js +34 -34
  104. package/validators/CountGreaterThanCheckedValidatorArray.d.ts +7 -7
  105. package/validators/CountGreaterThanCheckedValidatorArray.js +34 -34
  106. package/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +7 -7
  107. package/validators/CountGreaterThanEqualsCheckedValidatorArray.js +34 -34
  108. package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +7 -7
  109. package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +34 -34
  110. package/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +7 -7
  111. package/validators/CountGreaterThanUnCheckedValidatorArray.js +34 -34
  112. package/validators/CountLessThanCheckedValidatorArray.d.ts +7 -7
  113. package/validators/CountLessThanCheckedValidatorArray.js +34 -34
  114. package/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +7 -7
  115. package/validators/CountLessThanEqualsCheckedValidatorArray.js +34 -34
  116. package/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +7 -7
  117. package/validators/CountLessThanEqualsUnCheckedValidatorArray.js +34 -34
  118. package/validators/CountLessThanUnCheckedValidatorArray.d.ts +7 -7
  119. package/validators/CountLessThanUnCheckedValidatorArray.js +34 -34
  120. package/validators/CountUnCheckedValidatorArray.d.ts +7 -7
  121. package/validators/CountUnCheckedValidatorArray.js +34 -34
  122. package/validators/EmptyValidator.d.ts +5 -5
  123. package/validators/EmptyValidator.js +33 -33
  124. package/validators/ExcludeCheckedValidatorArray.d.ts +8 -8
  125. package/validators/ExcludeCheckedValidatorArray.js +41 -41
  126. package/validators/FormValidator.d.ts +7 -7
  127. package/validators/FormValidator.js +37 -37
  128. package/validators/IncludeCheckedValidatorArray.d.ts +8 -8
  129. package/validators/IncludeCheckedValidatorArray.js +41 -41
  130. package/validators/MultipleValidator.d.ts +8 -8
  131. package/validators/MultipleValidator.js +48 -48
  132. package/validators/NonPassValidator.d.ts +5 -5
  133. package/validators/NonPassValidator.js +31 -31
  134. package/validators/NotEmptyValidator.d.ts +5 -5
  135. package/validators/NotEmptyValidator.js +34 -34
  136. package/validators/NotRegExpTestValidator.d.ts +6 -6
  137. package/validators/NotRegExpTestValidator.js +42 -42
  138. package/validators/PassValidator.d.ts +5 -5
  139. package/validators/PassValidator.js +31 -31
  140. package/validators/RegExpTestValidator.d.ts +6 -6
  141. package/validators/RegExpTestValidator.js +43 -43
  142. package/validators/RequiredValidator.d.ts +5 -5
  143. package/validators/RequiredValidator.js +33 -33
  144. package/validators/UnCheckedValidator.d.ts +5 -5
  145. package/validators/UnCheckedValidator.js +32 -32
  146. package/validators/ValidMultipleValidator.d.ts +9 -9
  147. package/validators/ValidMultipleValidator.js +34 -34
  148. package/validators/ValidValidator.d.ts +6 -6
  149. package/validators/ValidValidator.js +33 -33
  150. package/validators/ValidValidatorArray.d.ts +7 -7
  151. package/validators/ValidValidatorArray.js +33 -33
  152. package/validators/Validator.d.ts +57 -57
  153. package/validators/Validator.js +242 -242
  154. package/validators/ValidatorArray.d.ts +17 -17
  155. package/validators/ValidatorArray.js +99 -99
  156. package/validators/ValueEqualsValidator.d.ts +6 -6
  157. package/validators/ValueEqualsValidator.js +33 -33
  158. package/validators/ValueNotEqualsValidator.d.ts +6 -6
  159. package/validators/ValueNotEqualsValidator.js +33 -33
@@ -1,22 +1,22 @@
1
- export declare class RangeResult implements IteratorResult<number> {
2
- done: boolean;
3
- value: number;
4
- constructor(value: number | undefined, done: boolean);
5
- }
6
- export declare class RangeIterator implements Iterator<number> {
7
- private _first;
8
- private _current;
9
- private _last;
10
- private _step;
11
- constructor(first: number, last: number, step: number);
12
- next(value?: any): IteratorResult<number>;
13
- }
14
- export declare class Range implements Iterable<number> {
15
- first: number;
16
- last: number;
17
- step: number;
18
- readonly isRange = true;
19
- constructor(first: number, last: number, step?: number);
20
- [Symbol.iterator](): Iterator<number>;
21
- static range(first: number | string, last?: number, step?: number): Range;
22
- }
1
+ export declare class RangeResult implements IteratorResult<number> {
2
+ done: boolean;
3
+ value: number;
4
+ constructor(value: number | undefined, done: boolean);
5
+ }
6
+ export declare class RangeIterator implements Iterator<number> {
7
+ private _first;
8
+ private _current;
9
+ private _last;
10
+ private _step;
11
+ constructor(first: number, last: number, step: number);
12
+ next(value?: any): IteratorResult<number>;
13
+ }
14
+ export declare class Range implements Iterable<number> {
15
+ first: number;
16
+ last: number;
17
+ step: number;
18
+ readonly isRange = true;
19
+ constructor(first: number, last: number, step?: number);
20
+ [Symbol.iterator](): Iterator<number>;
21
+ static range(first: number | string, last?: number, step?: number): Range;
22
+ }
@@ -1,65 +1,65 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Range = exports.RangeIterator = exports.RangeResult = void 0;
4
- // within rangeResult.ts
5
- // @ts-ignore
6
- var RangeResult = /** @class */ (function () {
7
- function RangeResult(value, done) {
8
- this.done = done;
9
- this.value = value !== null && value !== void 0 ? value : 0;
10
- }
11
- return RangeResult;
12
- }());
13
- exports.RangeResult = RangeResult;
14
- var RangeIterator = /** @class */ (function () {
15
- function RangeIterator(first, last, step) {
16
- this._current = this._first = first;
17
- this._last = last;
18
- this._step = step;
19
- }
20
- RangeIterator.prototype.next = function (value) {
21
- var r;
22
- if (this._first < this._last && this._current < this._last) {
23
- r = new RangeResult(this._current, false);
24
- this._current += this._step;
25
- }
26
- else if (this._first > this._last && this._current > this._last) {
27
- r = new RangeResult(this._current, false);
28
- this._current -= this._step;
29
- }
30
- else {
31
- r = new RangeResult(undefined, true);
32
- }
33
- return r;
34
- };
35
- return RangeIterator;
36
- }());
37
- exports.RangeIterator = RangeIterator;
38
- var Range = /** @class */ (function () {
39
- function Range(first, last, step) {
40
- if (step === void 0) { step = 1; }
41
- this.first = first;
42
- this.last = last;
43
- this.step = step;
44
- this.isRange = true;
45
- }
46
- Range.prototype[Symbol.iterator] = function () {
47
- return new RangeIterator(this.first, this.last, this.step);
48
- };
49
- Range.range = function (first, last, step) {
50
- if (step === void 0) { step = 1; }
51
- if (typeof first === 'number' && last === undefined) {
52
- return new Range(0, first, step);
53
- }
54
- else if (typeof first === 'string') {
55
- var _a = first.split('..'), _first = _a[0], _b = _a[1], _last = _b === void 0 ? '0' : _b;
56
- var _c = _last.split(','), __last = _c[0], _d = _c[1], _step = _d === void 0 ? '1' : _d;
57
- return new Range(Number(_first.trim()), Number(__last.trim()), Number(_step.trim()));
58
- }
59
- else {
60
- return new Range(first, last !== null && last !== void 0 ? last : 0, step);
61
- }
62
- };
63
- return Range;
64
- }());
65
- exports.Range = Range;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Range = exports.RangeIterator = exports.RangeResult = void 0;
4
+ // within rangeResult.ts
5
+ // @ts-ignore
6
+ var RangeResult = /** @class */ (function () {
7
+ function RangeResult(value, done) {
8
+ this.done = done;
9
+ this.value = value !== null && value !== void 0 ? value : 0;
10
+ }
11
+ return RangeResult;
12
+ }());
13
+ exports.RangeResult = RangeResult;
14
+ var RangeIterator = /** @class */ (function () {
15
+ function RangeIterator(first, last, step) {
16
+ this._current = this._first = first;
17
+ this._last = last;
18
+ this._step = step;
19
+ }
20
+ RangeIterator.prototype.next = function (value) {
21
+ var r;
22
+ if (this._first < this._last && this._current < this._last) {
23
+ r = new RangeResult(this._current, false);
24
+ this._current += this._step;
25
+ }
26
+ else if (this._first > this._last && this._current > this._last) {
27
+ r = new RangeResult(this._current, false);
28
+ this._current -= this._step;
29
+ }
30
+ else {
31
+ r = new RangeResult(undefined, true);
32
+ }
33
+ return r;
34
+ };
35
+ return RangeIterator;
36
+ }());
37
+ exports.RangeIterator = RangeIterator;
38
+ var Range = /** @class */ (function () {
39
+ function Range(first, last, step) {
40
+ if (step === void 0) { step = 1; }
41
+ this.first = first;
42
+ this.last = last;
43
+ this.step = step;
44
+ this.isRange = true;
45
+ }
46
+ Range.prototype[Symbol.iterator] = function () {
47
+ return new RangeIterator(this.first, this.last, this.step);
48
+ };
49
+ Range.range = function (first, last, step) {
50
+ if (step === void 0) { step = 1; }
51
+ if (typeof first === 'number' && last === undefined) {
52
+ return new Range(0, first, step);
53
+ }
54
+ else if (typeof first === 'string') {
55
+ var _a = first.split('..'), _first = _a[0], _b = _a[1], _last = _b === void 0 ? '0' : _b;
56
+ var _c = _last.split(','), __last = _c[0], _d = _c[1], _step = _d === void 0 ? '1' : _d;
57
+ return new Range(Number(_first.trim()), Number(__last.trim()), Number(_step.trim()));
58
+ }
59
+ else {
60
+ return new Range(first, last !== null && last !== void 0 ? last : 0, step);
61
+ }
62
+ };
63
+ return Range;
64
+ }());
65
+ exports.Range = Range;
@@ -1,3 +1,3 @@
1
- export interface OnBeforeReturnGet {
2
- onBeforeReturnGet(name: string, value: any, fullPath?: string[]): void;
3
- }
1
+ export interface OnBeforeReturnGet {
2
+ onBeforeReturnGet(name: string, value: any, fullPath?: string[]): void;
3
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,3 @@
1
- export interface OnBeforeReturnSet {
2
- onBeforeReturnSet(name: string, value: any, fullPath?: string[]): void;
3
- }
1
+ export interface OnBeforeReturnSet {
2
+ onBeforeReturnSet(name: string, value: any, fullPath?: string[]): void;
3
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,3 @@
1
- export interface OnCreateRender {
2
- onCreateRender(...param: any[]): void;
3
- }
1
+ export interface OnCreateRender {
2
+ onCreateRender(...param: any[]): void;
3
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,4 @@
1
- import { CreatorMetaData } from '../RawSet';
2
- export interface OnDestroyRender {
3
- onDestroyRender(metaData: CreatorMetaData): void;
4
- }
1
+ import { CreatorMetaData } from '../RawSet';
2
+ export interface OnDestroyRender {
3
+ onDestroyRender(metaData?: CreatorMetaData): void;
4
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +1,7 @@
1
- import { CreatorMetaData, Render } from '../RawSet';
2
- export interface OnInitRender {
3
- onInitRender(data?: {
4
- render?: Render;
5
- creatorMetaData?: CreatorMetaData;
6
- }): void;
7
- }
1
+ import { CreatorMetaData, Render } from '../RawSet';
2
+ export interface OnInitRender {
3
+ onInitRender(data?: {
4
+ render?: Render;
5
+ creatorMetaData?: CreatorMetaData;
6
+ }): void;
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ import { Config } from '../Config';
2
+ export interface OnProxyDomRender {
3
+ onProxyDomRender(config: Config): void;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,3 @@
1
- export declare class RenderManager {
2
- static render(obj: any, target?: string[]): void;
3
- }
1
+ export declare class RenderManager {
2
+ static render(obj: any, target?: string[]): void;
3
+ }
@@ -1,18 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RenderManager = void 0;
4
- var RenderManager = /** @class */ (function () {
5
- function RenderManager() {
6
- }
7
- RenderManager.render = function (obj, target) {
8
- if (target === void 0) { target = Object.keys(obj); }
9
- var domRenderProxy = obj._DomRender_proxy;
10
- if (domRenderProxy) {
11
- target.forEach(function (it) {
12
- domRenderProxy.root([it], obj[it]);
13
- });
14
- }
15
- };
16
- return RenderManager;
17
- }());
18
- exports.RenderManager = RenderManager;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RenderManager = void 0;
4
+ var RenderManager = /** @class */ (function () {
5
+ function RenderManager() {
6
+ }
7
+ RenderManager.render = function (obj, target) {
8
+ if (target === void 0) { target = Object.keys(obj); }
9
+ var domRenderProxy = obj._DomRender_proxy;
10
+ if (domRenderProxy) {
11
+ target.forEach(function (it) {
12
+ domRenderProxy.root([it], obj[it]);
13
+ });
14
+ }
15
+ };
16
+ return RenderManager;
17
+ }());
18
+ exports.RenderManager = RenderManager;
@@ -0,0 +1,3 @@
1
+ import { Messenger } from './Messenger';
2
+ export declare class DefaultMessenger extends Messenger {
3
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DefaultMessenger = void 0;
19
+ var Messenger_1 = require("./Messenger");
20
+ var DefaultMessenger = /** @class */ (function (_super) {
21
+ __extends(DefaultMessenger, _super);
22
+ function DefaultMessenger() {
23
+ return _super !== null && _super.apply(this, arguments) || this;
24
+ }
25
+ return DefaultMessenger;
26
+ }(Messenger_1.Messenger));
27
+ exports.DefaultMessenger = DefaultMessenger;
@@ -0,0 +1,78 @@
1
+ import { ConstructorType } from '../types/Types';
2
+ import { Config } from '../Config';
3
+ declare enum CallBackType {
4
+ FILTER = 0,
5
+ MAP = 1,
6
+ SUBSCRIBE = 2
7
+ }
8
+ export declare type ChannelData = {
9
+ channel: Channel;
10
+ data?: (any | undefined);
11
+ };
12
+ export declare type ChannelMetaData = {
13
+ channel?: Channel;
14
+ action?: string;
15
+ };
16
+ export declare class ChannelSubscription {
17
+ channel: Channel;
18
+ subscriber: ChannelSubscriber;
19
+ constructor(channel: Channel, subscriber: ChannelSubscriber);
20
+ unsubscribe(): void;
21
+ }
22
+ export declare class ChannelSubscriber<SD = any> {
23
+ channel: Channel;
24
+ parentSubscriber?: ChannelSubscriber;
25
+ callbacks: ({
26
+ type: CallBackType;
27
+ callback: (data: any, metaData: ChannelMetaData) => any | undefined;
28
+ })[];
29
+ constructor(channel: Channel);
30
+ exeCallback(data: any, metaData: ChannelMetaData): any;
31
+ filter<D = SD>(callback: (data: D, meta: ChannelMetaData) => boolean): ChannelSubscriber<SD>;
32
+ map<D = SD, R = any>(callback: (data: D, meta: ChannelMetaData) => R): ChannelSubscriber<R>;
33
+ subscribe(callback: (data: SD, metaData: ChannelMetaData) => any | undefined): ChannelSubscription;
34
+ unsubscribe(): void;
35
+ deleteSubscriber(): void;
36
+ }
37
+ export declare class Channel {
38
+ private messenger;
39
+ obj: object;
40
+ key: string;
41
+ subscribers: Set<ChannelSubscriber<any>>;
42
+ constructor(messenger: Messenger, obj: object, key: string);
43
+ publish(key: string | object | ConstructorType<any>, data: any, action?: string): ChannelData[];
44
+ allPublish(data: any, action: string): any[];
45
+ filter<D = any>(filterF: (data: D, meta: ChannelMetaData) => boolean): ChannelSubscriber<D>;
46
+ map<D = any, R = any>(filterF: (data: D, meta: ChannelMetaData) => R): ChannelSubscriber<R>;
47
+ subscribe<D = any>(subscribeCallback: (data: D, meta: ChannelMetaData) => any | void | undefined): ChannelSubscription;
48
+ deleteChannel(): void;
49
+ }
50
+ declare type MessengerEventDetail = {
51
+ key: string | object | ConstructorType<any>;
52
+ data?: any;
53
+ action?: string;
54
+ result?: (c: ChannelData[]) => void;
55
+ };
56
+ declare type MessengerSubscribeEventDetail = {
57
+ obj: any;
58
+ key?: string | object | ConstructorType<any>;
59
+ init: (channel: Channel, subscription: ChannelSubscription) => void;
60
+ subscribe: (data: any, meta: ChannelMetaData) => void;
61
+ };
62
+ export declare abstract class Messenger {
63
+ private config;
64
+ private channels;
65
+ static readonly EVENT_PUBLISH_KEY = "domRenderMessenger_publish";
66
+ static readonly EVENT_SUBSCRIBE_KEY = "domRenderMessenger_subscribe";
67
+ constructor(config: Config);
68
+ static publish(window: Window, detail: MessengerEventDetail): void;
69
+ static subscribe(window: Window, detail: MessengerSubscribeEventDetail): void;
70
+ createChannel(obj: any, key?: any): Channel;
71
+ deleteChannel(channel: Channel): void;
72
+ deleteChannelFromObj(obj: any): void;
73
+ addChannel(channel: Channel): void;
74
+ getChannels(key: string | object | ConstructorType<any>): Channel[];
75
+ getAllChannels(): Channel[];
76
+ getAllChannelKeys(): string[];
77
+ }
78
+ export {};
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Messenger = exports.Channel = exports.ChannelSubscriber = exports.ChannelSubscription = void 0;
4
+ var Types_1 = require("../types/Types");
5
+ var CallBackType;
6
+ (function (CallBackType) {
7
+ CallBackType[CallBackType["FILTER"] = 0] = "FILTER";
8
+ CallBackType[CallBackType["MAP"] = 1] = "MAP";
9
+ CallBackType[CallBackType["SUBSCRIBE"] = 2] = "SUBSCRIBE";
10
+ })(CallBackType || (CallBackType = {}));
11
+ var ChannelSubscription = /** @class */ (function () {
12
+ function ChannelSubscription(channel, subscriber) {
13
+ this.channel = channel;
14
+ this.subscriber = subscriber;
15
+ }
16
+ ChannelSubscription.prototype.unsubscribe = function () {
17
+ this.subscriber.unsubscribe();
18
+ };
19
+ return ChannelSubscription;
20
+ }());
21
+ exports.ChannelSubscription = ChannelSubscription;
22
+ var ChannelSubscriber = /** @class */ (function () {
23
+ function ChannelSubscriber(channel) {
24
+ this.channel = channel;
25
+ this.callbacks = [];
26
+ }
27
+ ChannelSubscriber.prototype.exeCallback = function (data, metaData) {
28
+ for (var _i = 0, _a = this.callbacks; _i < _a.length; _i++) {
29
+ var callback = _a[_i];
30
+ if (callback.type === CallBackType.FILTER && !callback.callback(data, metaData)) {
31
+ break;
32
+ }
33
+ else if (callback.type === CallBackType.MAP) {
34
+ data = callback.callback(data, metaData);
35
+ }
36
+ else if (callback.type === CallBackType.SUBSCRIBE) {
37
+ data = callback.callback(data, metaData);
38
+ break;
39
+ }
40
+ }
41
+ return data;
42
+ };
43
+ // chaining point
44
+ ChannelSubscriber.prototype.filter = function (callback) {
45
+ this.callbacks.push({ type: CallBackType.FILTER, callback: callback });
46
+ return this;
47
+ };
48
+ ChannelSubscriber.prototype.map = function (callback) {
49
+ this.callbacks.push({ type: CallBackType.MAP, callback: callback });
50
+ return this;
51
+ };
52
+ ChannelSubscriber.prototype.subscribe = function (callback) {
53
+ this.callbacks.push({ type: CallBackType.SUBSCRIBE, callback: callback });
54
+ this.channel.subscribers.add(this);
55
+ return new ChannelSubscription(this.channel, this);
56
+ };
57
+ ChannelSubscriber.prototype.unsubscribe = function () {
58
+ this.channel.subscribers.delete(this);
59
+ };
60
+ ChannelSubscriber.prototype.deleteSubscriber = function () {
61
+ this.unsubscribe();
62
+ this.channel.subscribers.delete(this);
63
+ };
64
+ return ChannelSubscriber;
65
+ }());
66
+ exports.ChannelSubscriber = ChannelSubscriber;
67
+ var Channel = /** @class */ (function () {
68
+ function Channel(messenger, obj, key) {
69
+ this.messenger = messenger;
70
+ this.obj = obj;
71
+ this.key = key;
72
+ this.subscribers = new Set();
73
+ }
74
+ Channel.prototype.publish = function (key, data, action) {
75
+ var _this = this;
76
+ var _a;
77
+ var rtns = [];
78
+ (_a = this.messenger.getChannels(key)) === null || _a === void 0 ? void 0 : _a.forEach(function (it) {
79
+ try {
80
+ it.subscribers.forEach(function (its) {
81
+ var rdata = its.exeCallback(data, { channel: _this, action: action });
82
+ rtns.push({ channel: it, data: rdata });
83
+ });
84
+ }
85
+ catch (e) {
86
+ console.error(e);
87
+ }
88
+ });
89
+ return rtns;
90
+ };
91
+ Channel.prototype.allPublish = function (data, action) {
92
+ var _this = this;
93
+ var rtns = [];
94
+ this.messenger.getAllChannelKeys().forEach(function (it) {
95
+ rtns.push(_this.publish(it, data));
96
+ });
97
+ return rtns.flat();
98
+ };
99
+ // string point
100
+ Channel.prototype.filter = function (filterF) {
101
+ var subscriber = new ChannelSubscriber(this);
102
+ subscriber.filter(filterF);
103
+ return subscriber;
104
+ };
105
+ Channel.prototype.map = function (filterF) {
106
+ var subscriber = new ChannelSubscriber(this);
107
+ subscriber.map(filterF);
108
+ return subscriber;
109
+ };
110
+ Channel.prototype.subscribe = function (subscribeCallback) {
111
+ var subscriber = new ChannelSubscriber(this);
112
+ return subscriber.subscribe(subscribeCallback);
113
+ };
114
+ ;
115
+ Channel.prototype.deleteChannel = function () {
116
+ this.messenger.deleteChannel(this);
117
+ };
118
+ ;
119
+ return Channel;
120
+ }());
121
+ exports.Channel = Channel;
122
+ var Messenger = /** @class */ (function () {
123
+ function Messenger(config) {
124
+ var _this = this;
125
+ this.config = config;
126
+ this.channels = new Set();
127
+ this.config.window.addEventListener(Messenger.EVENT_PUBLISH_KEY, function (e) {
128
+ var _a, _b;
129
+ var detail = e.detail;
130
+ console.log('--->', detail);
131
+ var rtns = [];
132
+ (_a = _this.getChannels(detail.key)) === null || _a === void 0 ? void 0 : _a.forEach(function (it) {
133
+ try {
134
+ it.subscribers.forEach(function (its) {
135
+ var rdata = its.exeCallback(detail.data, { action: detail.action });
136
+ rtns.push({ channel: it, data: rdata });
137
+ });
138
+ }
139
+ catch (e) {
140
+ console.error(e);
141
+ }
142
+ });
143
+ (_b = detail.result) === null || _b === void 0 ? void 0 : _b.call(detail, rtns);
144
+ });
145
+ this.config.window.addEventListener(Messenger.EVENT_SUBSCRIBE_KEY, function (e) {
146
+ var detail = e.detail;
147
+ console.log('--->', detail);
148
+ var channel = _this.createChannel(detail.obj, detail.key);
149
+ detail.init(channel, channel.subscribe(detail.subscribe));
150
+ });
151
+ }
152
+ Messenger.publish = function (window, detail) {
153
+ window.dispatchEvent(new CustomEvent(Messenger.EVENT_PUBLISH_KEY, { detail: detail }));
154
+ };
155
+ Messenger.subscribe = function (window, detail) {
156
+ window.dispatchEvent(new CustomEvent(Messenger.EVENT_SUBSCRIBE_KEY, { detail: detail }));
157
+ };
158
+ Messenger.prototype.createChannel = function (obj, key) {
159
+ if (key === void 0) { key = obj.constructor.name; }
160
+ var channel = Types_1.DomRenderFinalProxy.final(new Channel(this, obj, key));
161
+ this.channels.add(channel);
162
+ // this.channels.get(key) ? this.channels.get(key)!.push(channel) : this.channels.set(key, [channel]);
163
+ return channel;
164
+ };
165
+ Messenger.prototype.deleteChannel = function (channel) {
166
+ this.channels.delete(channel);
167
+ };
168
+ Messenger.prototype.deleteChannelFromObj = function (obj) {
169
+ var _this = this;
170
+ if (obj) {
171
+ this.channels.forEach(function (it) {
172
+ if (it.obj === obj) {
173
+ console.log('dddddddddddd', obj);
174
+ _this.deleteChannel(it);
175
+ }
176
+ });
177
+ }
178
+ };
179
+ Messenger.prototype.addChannel = function (channel) {
180
+ this.channels.add(channel);
181
+ };
182
+ Messenger.prototype.getChannels = function (key) {
183
+ if (typeof key === 'object') {
184
+ key = key.constructor.name;
185
+ }
186
+ else if (typeof key === 'function') {
187
+ key = key.name;
188
+ }
189
+ return Array.from(this.channels.values()).filter(function (it) { return it.key === key; });
190
+ };
191
+ Messenger.prototype.getAllChannels = function () {
192
+ return Array.from(this.channels.values());
193
+ };
194
+ Messenger.prototype.getAllChannelKeys = function () {
195
+ return Array.from(this.channels.values()).map(function (it) { return it.key; });
196
+ };
197
+ Messenger.EVENT_PUBLISH_KEY = 'domRenderMessenger_publish';
198
+ Messenger.EVENT_SUBSCRIBE_KEY = 'domRenderMessenger_subscribe';
199
+ return Messenger;
200
+ }());
201
+ exports.Messenger = Messenger;
@@ -1,12 +1,7 @@
1
- export declare class Appender {
2
- index: number;
3
- values?: any[];
4
- constructor(index: number);
5
- }
6
- export declare class AppenderContainer {
7
- [key: number]: any[] | undefined;
8
- length: number;
9
- constructor();
10
- push(...items: any[]): void;
11
- clear(): void;
12
- }
1
+ export declare class Appender {
2
+ [key: number]: any[] | undefined;
3
+ length: number;
4
+ constructor();
5
+ push(...items: any[]): void;
6
+ clear(): void;
7
+ }