@dooboostore/dom-render 1.0.98

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 (230) hide show
  1. package/DomRender.d.ts +24 -0
  2. package/DomRender.js +115 -0
  3. package/DomRenderProxy.d.ts +38 -0
  4. package/DomRenderProxy.js +586 -0
  5. package/README.MD +938 -0
  6. package/components/ComponentBase.d.ts +41 -0
  7. package/components/ComponentBase.js +210 -0
  8. package/components/ComponentSet.d.ts +22 -0
  9. package/components/ComponentSet.js +23 -0
  10. package/components/appender/Appender.d.ts +23 -0
  11. package/components/appender/Appender.js +59 -0
  12. package/components/checkbox/CheckBox.d.ts +47 -0
  13. package/components/checkbox/CheckBox.js +118 -0
  14. package/components/choose/Choose.d.ts +39 -0
  15. package/components/choose/Choose.js +110 -0
  16. package/components/details/Details.d.ts +57 -0
  17. package/components/details/Details.js +199 -0
  18. package/components/dialog/Dialog.d.ts +1 -0
  19. package/components/dialog/Dialog.js +85 -0
  20. package/components/dialog/example/ImageEditorDialog.d.ts +1 -0
  21. package/components/dialog/example/ImageEditorDialog.js +116 -0
  22. package/components/forOf/ForOf.d.ts +18 -0
  23. package/components/forOf/ForOf.js +32 -0
  24. package/components/if/If.d.ts +21 -0
  25. package/components/if/If.js +40 -0
  26. package/components/index.d.ts +27 -0
  27. package/components/index.js +13 -0
  28. package/components/input/Input.d.ts +34 -0
  29. package/components/input/Input.js +86 -0
  30. package/components/promise/PromiseSwitch.d.ts +55 -0
  31. package/components/promise/PromiseSwitch.js +181 -0
  32. package/components/radio/Radio.d.ts +45 -0
  33. package/components/radio/Radio.js +123 -0
  34. package/components/select/Select.d.ts +23 -0
  35. package/components/select/Select.js +52 -0
  36. package/components/this/This.d.ts +24 -0
  37. package/components/this/This.js +62 -0
  38. package/components/timer/Timer.d.ts +26 -0
  39. package/components/timer/Timer.js +102 -0
  40. package/configs/Config.d.ts +34 -0
  41. package/configs/Config.js +2 -0
  42. package/configs/TargetAttr.d.ts +7 -0
  43. package/configs/TargetAttr.js +2 -0
  44. package/configs/TargetElement.d.ts +16 -0
  45. package/configs/TargetElement.js +2 -0
  46. package/css/parse/index.d.ts +49 -0
  47. package/css/parse/index.js +498 -0
  48. package/css/stringify/compiler.d.ts +34 -0
  49. package/css/stringify/compiler.js +36 -0
  50. package/css/stringify/compress.d.ts +104 -0
  51. package/css/stringify/compress.js +147 -0
  52. package/css/stringify/identity.d.ts +109 -0
  53. package/css/stringify/identity.js +183 -0
  54. package/css/stringify/index.d.ts +24 -0
  55. package/css/stringify/index.js +27 -0
  56. package/css/stringify/types.d.ts +15 -0
  57. package/css/stringify/types.js +2 -0
  58. package/css/types.d.ts +10 -0
  59. package/css/types.js +2 -0
  60. package/decorators/DomRenderNoProxy.d.ts +4 -0
  61. package/decorators/DomRenderNoProxy.js +15 -0
  62. package/events/EventManager.d.ts +68 -0
  63. package/events/EventManager.js +477 -0
  64. package/index.d.ts +2 -0
  65. package/index.js +2 -0
  66. package/iterators/Range.d.ts +24 -0
  67. package/iterators/Range.js +70 -0
  68. package/lifecycle/OnBeforeReturnGet.d.ts +4 -0
  69. package/lifecycle/OnBeforeReturnGet.js +2 -0
  70. package/lifecycle/OnBeforeReturnSet.d.ts +5 -0
  71. package/lifecycle/OnBeforeReturnSet.js +4 -0
  72. package/lifecycle/OnChangeAttrRender.d.ts +9 -0
  73. package/lifecycle/OnChangeAttrRender.js +4 -0
  74. package/lifecycle/OnChildRenderedByProperty.d.ts +5 -0
  75. package/lifecycle/OnChildRenderedByProperty.js +4 -0
  76. package/lifecycle/OnCreateRender.d.ts +5 -0
  77. package/lifecycle/OnCreateRender.js +4 -0
  78. package/lifecycle/OnCreateRenderData.d.ts +10 -0
  79. package/lifecycle/OnCreateRenderData.js +4 -0
  80. package/lifecycle/OnCreateRendered.d.ts +8 -0
  81. package/lifecycle/OnCreateRendered.js +4 -0
  82. package/lifecycle/OnCreatedThisChild.d.ts +6 -0
  83. package/lifecycle/OnCreatedThisChild.js +4 -0
  84. package/lifecycle/OnDestroyRender.d.ts +9 -0
  85. package/lifecycle/OnDestroyRender.js +4 -0
  86. package/lifecycle/OnInitRender.d.ts +6 -0
  87. package/lifecycle/OnInitRender.js +4 -0
  88. package/lifecycle/OnProxyDomRender.d.ts +5 -0
  89. package/lifecycle/OnProxyDomRender.js +2 -0
  90. package/lifecycle/dr-this/OnDrThisBind.d.ts +5 -0
  91. package/lifecycle/dr-this/OnDrThisBind.js +4 -0
  92. package/lifecycle/dr-this/OnDrThisUnBind.d.ts +5 -0
  93. package/lifecycle/dr-this/OnDrThisUnBind.js +4 -0
  94. package/managers/RenderManager.d.ts +2 -0
  95. package/managers/RenderManager.js +12 -0
  96. package/messenger/DefaultMessenger.d.ts +4 -0
  97. package/messenger/DefaultMessenger.js +4 -0
  98. package/messenger/Messenger.d.ts +79 -0
  99. package/messenger/Messenger.js +185 -0
  100. package/operators/Appender.d.ts +15 -0
  101. package/operators/Appender.js +90 -0
  102. package/operators/Dr.d.ts +9 -0
  103. package/operators/Dr.js +53 -0
  104. package/operators/DrAppender.d.ts +9 -0
  105. package/operators/DrAppender.js +69 -0
  106. package/operators/DrFor.d.ts +9 -0
  107. package/operators/DrFor.js +58 -0
  108. package/operators/DrForOf.d.ts +9 -0
  109. package/operators/DrForOf.js +120 -0
  110. package/operators/DrForm.d.ts +9 -0
  111. package/operators/DrForm.js +79 -0
  112. package/operators/DrIf.d.ts +9 -0
  113. package/operators/DrIf.js +70 -0
  114. package/operators/DrInnerHTML.d.ts +9 -0
  115. package/operators/DrInnerHTML.js +48 -0
  116. package/operators/DrInnerText.d.ts +9 -0
  117. package/operators/DrInnerText.js +46 -0
  118. package/operators/DrPre.d.ts +8 -0
  119. package/operators/DrPre.js +22 -0
  120. package/operators/DrRepeat.d.ts +9 -0
  121. package/operators/DrRepeat.js +70 -0
  122. package/operators/DrStripElement.d.ts +9 -0
  123. package/operators/DrStripElement.js +50 -0
  124. package/operators/DrTargetAttr.d.ts +8 -0
  125. package/operators/DrTargetAttr.js +45 -0
  126. package/operators/DrTargetElement.d.ts +13 -0
  127. package/operators/DrTargetElement.js +91 -0
  128. package/operators/DrTargetElementIsElement.d.ts +13 -0
  129. package/operators/DrTargetElementIsElement.js +79 -0
  130. package/operators/DrThis.d.ts +7 -0
  131. package/operators/DrThis.js +72 -0
  132. package/operators/DrThisProperty.d.ts +11 -0
  133. package/operators/DrThisProperty.js +93 -0
  134. package/operators/OperatorExecuter.d.ts +50 -0
  135. package/operators/OperatorExecuter.js +50 -0
  136. package/operators/OperatorExecuterAttrRequire.d.ts +9 -0
  137. package/operators/OperatorExecuterAttrRequire.js +25 -0
  138. package/package.json +70 -0
  139. package/rawsets/AttrInitCallBack.d.ts +6 -0
  140. package/rawsets/AttrInitCallBack.js +2 -0
  141. package/rawsets/Attrs.d.ts +27 -0
  142. package/rawsets/Attrs.js +2 -0
  143. package/rawsets/CreatorMetaData.d.ts +20 -0
  144. package/rawsets/CreatorMetaData.js +2 -0
  145. package/rawsets/DestroyOptionType.d.ts +5 -0
  146. package/rawsets/DestroyOptionType.js +6 -0
  147. package/rawsets/ElementInitCallBack.d.ts +9 -0
  148. package/rawsets/ElementInitCallBack.js +2 -0
  149. package/rawsets/RawSet.d.ts +180 -0
  150. package/rawsets/RawSet.js +1450 -0
  151. package/rawsets/RawSetOperatorType.d.ts +4 -0
  152. package/rawsets/RawSetOperatorType.js +5 -0
  153. package/rawsets/RawSetType.d.ts +8 -0
  154. package/rawsets/RawSetType.js +9 -0
  155. package/rawsets/Render.d.ts +27 -0
  156. package/rawsets/Render.js +2 -0
  157. package/routers/HashRouter.d.ts +24 -0
  158. package/routers/HashRouter.js +86 -0
  159. package/routers/PathRouter.d.ts +23 -0
  160. package/routers/PathRouter.js +73 -0
  161. package/routers/Router.d.ts +68 -0
  162. package/routers/Router.js +132 -0
  163. package/types/Types.d.ts +12 -0
  164. package/types/Types.js +26 -0
  165. package/validators/AllCheckedValidatorArray.d.ts +7 -0
  166. package/validators/AllCheckedValidatorArray.js +11 -0
  167. package/validators/AllUnCheckedValidatorArray.d.ts +7 -0
  168. package/validators/AllUnCheckedValidatorArray.js +11 -0
  169. package/validators/CheckedValidator.d.ts +6 -0
  170. package/validators/CheckedValidator.js +11 -0
  171. package/validators/CountEqualsCheckedValidatorArray.d.ts +8 -0
  172. package/validators/CountEqualsCheckedValidatorArray.js +12 -0
  173. package/validators/CountEqualsUnCheckedValidatorArray.d.ts +8 -0
  174. package/validators/CountEqualsUnCheckedValidatorArray.js +12 -0
  175. package/validators/CountGreaterThanCheckedValidatorArray.d.ts +8 -0
  176. package/validators/CountGreaterThanCheckedValidatorArray.js +12 -0
  177. package/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +8 -0
  178. package/validators/CountGreaterThanEqualsCheckedValidatorArray.js +12 -0
  179. package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +8 -0
  180. package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +12 -0
  181. package/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +8 -0
  182. package/validators/CountGreaterThanUnCheckedValidatorArray.js +12 -0
  183. package/validators/CountLessThanCheckedValidatorArray.d.ts +8 -0
  184. package/validators/CountLessThanCheckedValidatorArray.js +12 -0
  185. package/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +8 -0
  186. package/validators/CountLessThanEqualsCheckedValidatorArray.js +12 -0
  187. package/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +8 -0
  188. package/validators/CountLessThanEqualsUnCheckedValidatorArray.js +12 -0
  189. package/validators/CountLessThanUnCheckedValidatorArray.d.ts +8 -0
  190. package/validators/CountLessThanUnCheckedValidatorArray.js +12 -0
  191. package/validators/CountUnCheckedValidatorArray.d.ts +8 -0
  192. package/validators/CountUnCheckedValidatorArray.js +12 -0
  193. package/validators/EmptyValidator.d.ts +6 -0
  194. package/validators/EmptyValidator.js +12 -0
  195. package/validators/ExcludeCheckedValidatorArray.d.ts +9 -0
  196. package/validators/ExcludeCheckedValidatorArray.js +17 -0
  197. package/validators/FormValidator.d.ts +8 -0
  198. package/validators/FormValidator.js +16 -0
  199. package/validators/IncludeCheckedValidatorArray.d.ts +9 -0
  200. package/validators/IncludeCheckedValidatorArray.js +17 -0
  201. package/validators/MultipleValidator.d.ts +9 -0
  202. package/validators/MultipleValidator.js +25 -0
  203. package/validators/NonPassValidator.d.ts +6 -0
  204. package/validators/NonPassValidator.js +10 -0
  205. package/validators/NotEmptyValidator.d.ts +6 -0
  206. package/validators/NotEmptyValidator.js +13 -0
  207. package/validators/NotRegExpTestValidator.d.ts +7 -0
  208. package/validators/NotRegExpTestValidator.js +20 -0
  209. package/validators/PassValidator.d.ts +6 -0
  210. package/validators/PassValidator.js +10 -0
  211. package/validators/RegExpTestValidator.d.ts +7 -0
  212. package/validators/RegExpTestValidator.js +21 -0
  213. package/validators/RequiredValidator.d.ts +6 -0
  214. package/validators/RequiredValidator.js +12 -0
  215. package/validators/UnCheckedValidator.d.ts +6 -0
  216. package/validators/UnCheckedValidator.js +11 -0
  217. package/validators/ValidMultipleValidator.d.ts +10 -0
  218. package/validators/ValidMultipleValidator.js +12 -0
  219. package/validators/ValidValidator.d.ts +7 -0
  220. package/validators/ValidValidator.js +11 -0
  221. package/validators/ValidValidatorArray.d.ts +8 -0
  222. package/validators/ValidValidatorArray.js +11 -0
  223. package/validators/Validator.d.ts +58 -0
  224. package/validators/Validator.js +203 -0
  225. package/validators/ValidatorArray.d.ts +18 -0
  226. package/validators/ValidatorArray.js +77 -0
  227. package/validators/ValueEqualsValidator.d.ts +7 -0
  228. package/validators/ValueEqualsValidator.js +11 -0
  229. package/validators/ValueNotEqualsValidator.d.ts +7 -0
  230. package/validators/ValueNotEqualsValidator.js +11 -0
@@ -0,0 +1,4 @@
1
+ export declare enum RawSetOperatorType {
2
+ DR_THIS_PROPERTY = "this-property"
3
+ }
4
+ //# sourceMappingURL=RawSetOperatorType.d.ts.map
@@ -0,0 +1,5 @@
1
+ export var RawSetOperatorType;
2
+ (function (RawSetOperatorType) {
3
+ RawSetOperatorType["DR_THIS_PROPERTY"] = "this-property";
4
+ })(RawSetOperatorType || (RawSetOperatorType = {}));
5
+ //# sourceMappingURL=RawSetOperatorType.js.map
@@ -0,0 +1,8 @@
1
+ export declare enum RawSetType {
2
+ TEXT = "TEXT",
3
+ STYLE_TEXT = "STYLE_TEXT",
4
+ TARGET_ELEMENT = "TARGET_ELEMENT",
5
+ TARGET_ATTR = "TARGET_ATTR",
6
+ UNKOWN = "UNKOWN"
7
+ }
8
+ //# sourceMappingURL=RawSetType.d.ts.map
@@ -0,0 +1,9 @@
1
+ export var RawSetType;
2
+ (function (RawSetType) {
3
+ RawSetType["TEXT"] = "TEXT";
4
+ RawSetType["STYLE_TEXT"] = "STYLE_TEXT";
5
+ RawSetType["TARGET_ELEMENT"] = "TARGET_ELEMENT";
6
+ RawSetType["TARGET_ATTR"] = "TARGET_ATTR";
7
+ RawSetType["UNKOWN"] = "UNKOWN";
8
+ })(RawSetType || (RawSetType = {}));
9
+ //# sourceMappingURL=RawSetType.js.map
@@ -0,0 +1,27 @@
1
+ import { CreatorMetaData } from './CreatorMetaData';
2
+ import { Router } from '../routers/Router';
3
+ import { RawSet } from './RawSet';
4
+ export type Render = {
5
+ rawSet?: RawSet;
6
+ scripts?: {
7
+ [n: string]: any;
8
+ };
9
+ bindScript?: string;
10
+ renderScript?: string;
11
+ element?: any;
12
+ getElement?: <T extends Element>() => T;
13
+ attribute?: any;
14
+ creatorMetaData?: CreatorMetaData;
15
+ router?: Router;
16
+ range?: any;
17
+ value?: any;
18
+ currentThis?: any;
19
+ currentThisPath?: any;
20
+ nearThisPath?: string;
21
+ nearThis?: any;
22
+ parentThisPath?: string;
23
+ parentThis?: any;
24
+ rootObject?: any;
25
+ [n: string]: any;
26
+ };
27
+ //# sourceMappingURL=Render.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Render.js.map
@@ -0,0 +1,24 @@
1
+ import { RouteAction, Router, RouterConfig } from './Router';
2
+ export declare class HashRouter extends Router {
3
+ constructor(config: RouterConfig);
4
+ getSearchParams(data?: {
5
+ delete?: string[];
6
+ append?: [[string, string]];
7
+ }): URLSearchParams;
8
+ push(path: RouteAction, data?: any, title?: string): void;
9
+ replace(path: RouteAction, data?: any, title?: string): void;
10
+ setDeleteHashSearchParam(name: string, data?: any, title?: string): void;
11
+ pushDeleteHashSearchParam(name: string | string[], data: any, title: string | undefined): void;
12
+ pushDeleteSearchParam(name: string | string[], data?: any, title?: string): void;
13
+ pushAddSearchParam(params: [[string, string]], data?: any, title?: string): void;
14
+ replaceDeleteHashSearchParam(name: string | string[], data: any, title: string | undefined): void;
15
+ replaceDeleteSearchParam(name: string | string[], data?: any, title?: string): void;
16
+ replaceAddSearchParam(params: [[string, string]], data?: any, title?: string): void;
17
+ getUrl(): string;
18
+ getPath(): string;
19
+ getHashSearchParams(data?: {
20
+ delete?: string[];
21
+ append?: [[string, string]];
22
+ }): URLSearchParams;
23
+ }
24
+ //# sourceMappingURL=HashRouter.d.ts.map
@@ -0,0 +1,86 @@
1
+ import { Router } from './Router';
2
+ import { LocationUtils } from '@dooboostore/core-web/location/LocationUtils';
3
+ export class HashRouter extends Router {
4
+ constructor(config) {
5
+ super(config);
6
+ }
7
+ getSearchParams(data) {
8
+ var _a, _b;
9
+ const hashSearch = LocationUtils.hashSearch(this.config.window);
10
+ const searchParams = hashSearch ? new URLSearchParams(hashSearch) : (new URL(this.config.window.document.location.href)).searchParams;
11
+ (_a = data === null || data === void 0 ? void 0 : data.delete) === null || _a === void 0 ? void 0 : _a.forEach(it => {
12
+ searchParams.delete(it);
13
+ });
14
+ (_b = data === null || data === void 0 ? void 0 : data.append) === null || _b === void 0 ? void 0 : _b.forEach(it => {
15
+ searchParams.append(it[0], it[1]);
16
+ });
17
+ return searchParams;
18
+ }
19
+ push(path, data, title = '') {
20
+ if (path === '/') {
21
+ super.pushState(data, title, '/');
22
+ }
23
+ else {
24
+ super.pushState(data, title, `#${this.toUrl(path)}`);
25
+ }
26
+ }
27
+ replace(path, data, title) {
28
+ if (path === '/') {
29
+ super.replaceState(data, title, '/');
30
+ }
31
+ else {
32
+ super.replaceState(data, title, `#${this.toUrl(path)}`);
33
+ }
34
+ }
35
+ setDeleteHashSearchParam(name, data, title) {
36
+ }
37
+ pushDeleteHashSearchParam(name, data, title) {
38
+ const s = this.getHashSearchParams({ delete: Array.isArray(name) ? name : [name] });
39
+ const size = Array.from(s.entries()).length;
40
+ const href = `${this.config.window.location.pathname}${this.config.window.location.search}${size > 0 ? '#' + s.toString() : ''}`;
41
+ super.pushState(data, title, href);
42
+ }
43
+ pushDeleteSearchParam(name, data, title) {
44
+ const s = this.getSearchParams({ delete: Array.isArray(name) ? name : [name] });
45
+ this.push({ searchParams: s }, data, title);
46
+ }
47
+ pushAddSearchParam(params, data, title) {
48
+ const s = this.getSearchParams({ append: params });
49
+ this.push({ searchParams: s }, data, title);
50
+ }
51
+ replaceDeleteHashSearchParam(name, data, title) {
52
+ const s = this.getHashSearchParams({ delete: Array.isArray(name) ? name : [name] });
53
+ const size = Array.from(s.entries()).length;
54
+ const href = `${this.config.window.location.pathname}${this.config.window.location.search}${size > 0 ? '#' + s.toString() : ''}`;
55
+ super.pushState(data, title, href);
56
+ }
57
+ replaceDeleteSearchParam(name, data, title) {
58
+ const s = this.getSearchParams({ delete: Array.isArray(name) ? name : [name] });
59
+ this.push({ searchParams: s }, data, title);
60
+ }
61
+ replaceAddSearchParam(params, data, title) {
62
+ const s = this.getSearchParams({ append: params });
63
+ this.push({ searchParams: s }, data, title);
64
+ }
65
+ getUrl() {
66
+ return LocationUtils.hash(this.config.window) || '/';
67
+ }
68
+ getPath() {
69
+ return LocationUtils.hashPath(this.config.window) || '/';
70
+ }
71
+ getHashSearchParams(data) {
72
+ var _a, _b;
73
+ const hash = this.config.window.location.hash;
74
+ const queryIndex = hash.indexOf('?');
75
+ const searchParams = (queryIndex !== -1) ? new URLSearchParams(hash.slice(queryIndex + 1)) : new URLSearchParams();
76
+ ;
77
+ (_a = data === null || data === void 0 ? void 0 : data.delete) === null || _a === void 0 ? void 0 : _a.forEach(it => {
78
+ searchParams.delete(it);
79
+ });
80
+ (_b = data === null || data === void 0 ? void 0 : data.append) === null || _b === void 0 ? void 0 : _b.forEach(it => {
81
+ searchParams.append(it[0], it[1]);
82
+ });
83
+ return searchParams;
84
+ }
85
+ }
86
+ //# sourceMappingURL=HashRouter.js.map
@@ -0,0 +1,23 @@
1
+ import { RouteAction, Router, RouterConfig } from './Router';
2
+ export declare class PathRouter extends Router {
3
+ constructor(config: RouterConfig);
4
+ getSearchParams(data?: {
5
+ delete?: string[];
6
+ append?: [[string, string]];
7
+ }): URLSearchParams;
8
+ push(path: RouteAction, data?: any, title?: string): void;
9
+ replace(path: RouteAction, data?: any, title?: string): void;
10
+ pushDeleteSearchParam(name: string, data?: any, title?: string): void;
11
+ pushDeleteHashSearchParam(name: string, data?: any, title?: string): void;
12
+ pushAddSearchParam(params: [[string, string]], data?: any, title?: string): void;
13
+ replaceDeleteSearchParam(name: string | string[], data?: any, title?: string): void;
14
+ replaceDeleteHashSearchParam(name: string | string[], data?: any, title?: string): void;
15
+ replaceAddSearchParam(params: [[string, string]], data?: any, title?: string): void;
16
+ getUrl(): string;
17
+ getPath(): string;
18
+ getHashSearchParams(data?: {
19
+ delete?: string[];
20
+ append?: [[string, string]];
21
+ }): URLSearchParams;
22
+ }
23
+ //# sourceMappingURL=PathRouter.d.ts.map
@@ -0,0 +1,73 @@
1
+ import { Router } from './Router';
2
+ export class PathRouter extends Router {
3
+ constructor(config) {
4
+ super(config);
5
+ }
6
+ getSearchParams(data) {
7
+ var _a, _b;
8
+ const searchParams = (new URL(this.config.window.document.location.href)).searchParams;
9
+ (_a = data === null || data === void 0 ? void 0 : data.delete) === null || _a === void 0 ? void 0 : _a.forEach(it => {
10
+ searchParams.delete(it);
11
+ });
12
+ (_b = data === null || data === void 0 ? void 0 : data.append) === null || _b === void 0 ? void 0 : _b.forEach(it => {
13
+ searchParams.append(it[0], it[1]);
14
+ });
15
+ return searchParams;
16
+ }
17
+ push(path, data, title = '') {
18
+ // console.log('pppppp?')
19
+ super.pushState(data, title, this.toUrl(path));
20
+ }
21
+ replace(path, data, title = '') {
22
+ super.replaceState(data, title, this.toUrl(path));
23
+ }
24
+ pushDeleteSearchParam(name, data, title) {
25
+ const s = this.getSearchParams({ delete: [name] });
26
+ this.push({ searchParams: s }, data, title);
27
+ }
28
+ pushDeleteHashSearchParam(name, data, title) {
29
+ const s = this.getHashSearchParams({ delete: [name] });
30
+ const size = Array.from(s.entries()).length;
31
+ const href = `${this.config.window.location.pathname}${this.config.window.location.search}${size > 0 ? '#' + s.toString() : ''}`;
32
+ super.pushState(data, title, href);
33
+ }
34
+ pushAddSearchParam(params, data, title) {
35
+ const s = this.getSearchParams({ append: params });
36
+ this.push({ searchParams: s }, data, title);
37
+ }
38
+ replaceDeleteSearchParam(name, data, title) {
39
+ const s = this.getSearchParams({ delete: Array.isArray(name) ? name : [name] });
40
+ this.replace({ searchParams: s }, data, title);
41
+ }
42
+ replaceDeleteHashSearchParam(name, data, title) {
43
+ const s = this.getHashSearchParams({ delete: Array.isArray(name) ? name : [name] });
44
+ const size = Array.from(s.entries()).length;
45
+ const href = `${this.config.window.location.pathname}${this.config.window.location.search}${size > 0 ? '#' + s.toString() : ''}`;
46
+ super.replaceState(data, title, href);
47
+ }
48
+ replaceAddSearchParam(params, data, title) {
49
+ const s = this.getSearchParams({ append: params });
50
+ this.replace({ searchParams: s }, data, title);
51
+ }
52
+ getUrl() {
53
+ const url = new URL(this.config.window.document.location.href);
54
+ return url.pathname + url.search;
55
+ }
56
+ getPath() {
57
+ return this.config.window.location.pathname;
58
+ }
59
+ getHashSearchParams(data) {
60
+ var _a, _b;
61
+ // http://local.com/#wow=222&wow=bb&z=2
62
+ const searchParams = new URLSearchParams(this.config.window.location.hash.slice(1));
63
+ (_a = data === null || data === void 0 ? void 0 : data.delete) === null || _a === void 0 ? void 0 : _a.forEach(it => {
64
+ searchParams.delete(it);
65
+ });
66
+ (_b = data === null || data === void 0 ? void 0 : data.append) === null || _b === void 0 ? void 0 : _b.forEach(it => {
67
+ searchParams.append(it[0], it[1]);
68
+ });
69
+ return searchParams;
70
+ // return undefined;
71
+ }
72
+ }
73
+ //# sourceMappingURL=PathRouter.js.map
@@ -0,0 +1,68 @@
1
+ import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';
2
+ import ToURLSearchParamsParams = ConvertUtils.ToURLSearchParamsParams;
3
+ export type RouteData = {
4
+ path: string;
5
+ url: string;
6
+ data?: any;
7
+ searchParams: URLSearchParams;
8
+ pathData?: any;
9
+ router: Router;
10
+ };
11
+ export type RouterConfig<T = any> = {
12
+ rootObject?: T;
13
+ window: Window;
14
+ disableAttach?: boolean;
15
+ };
16
+ export type RouteAction = string | {
17
+ path?: string;
18
+ searchParams?: ToURLSearchParamsParams;
19
+ };
20
+ export declare abstract class Router<T = any> {
21
+ private changeCallbacks;
22
+ private _config;
23
+ get searchParamObject(): {
24
+ [key: string]: string | string[];
25
+ };
26
+ get config(): RouterConfig<T>;
27
+ constructor(config: RouterConfig<any>);
28
+ getSearchFirstParamsObject<T = any>(defaultValue?: T): T & import("@dooboostore/core/types").FieldType<T, string>;
29
+ getHashSearchFirstParamsObject<T = any>(): import("@dooboostore/core/types").FieldType<T, string>;
30
+ addChangeCallback(callback: (routeData: RouteData) => void): void;
31
+ attach(): Promise<void>;
32
+ testRegexp(regexp: string): boolean;
33
+ test(urlExpression: string): boolean;
34
+ getRouteData(urlExpression?: string): RouteData;
35
+ pushState(data: any, title: string, path: string): void;
36
+ replaceState(data: any, title: string, path: string): void;
37
+ dispatchPopStateEvent(): void;
38
+ reload(): void;
39
+ getData(): any;
40
+ getPathData(urlExpression: string, currentUrl?: string): any;
41
+ go(config: {
42
+ path: RouteAction;
43
+ data?: any;
44
+ replace?: boolean;
45
+ title?: string;
46
+ disabledPopEvent?: boolean;
47
+ } | string): Promise<void>;
48
+ toUrl(data: RouteAction): string;
49
+ abstract push(path: RouteAction, data?: any, title?: string): void;
50
+ abstract replace(path: RouteAction, data?: any, title?: string): void;
51
+ abstract pushDeleteSearchParam(name: string | string[], data?: any, title?: string): void;
52
+ abstract pushDeleteHashSearchParam(name: string | string[], data?: any, title?: string): void;
53
+ abstract pushAddSearchParam(params: [[string, string]], data?: any, title?: string): void;
54
+ abstract replaceDeleteSearchParam(name: string | string[], data?: any, title?: string): void;
55
+ abstract replaceDeleteHashSearchParam(name: string | string[], data?: any, title?: string): void;
56
+ abstract replaceAddSearchParam(params: [[string, string]], data?: any, title?: string): void;
57
+ abstract getSearchParams(data?: {
58
+ delete?: string[];
59
+ append?: [[string, string]];
60
+ }): URLSearchParams;
61
+ abstract getHashSearchParams(data?: {
62
+ delete?: string[];
63
+ append?: [[string, string]];
64
+ }): URLSearchParams;
65
+ abstract getUrl(): string;
66
+ abstract getPath(): string;
67
+ }
68
+ //# sourceMappingURL=Router.d.ts.map
@@ -0,0 +1,132 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { EventManager } from '../events/EventManager';
11
+ import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';
12
+ import { Expression } from '@dooboostore/core/expression/Expression';
13
+ export class Router {
14
+ get searchParamObject() {
15
+ return ConvertUtils.toObject(this.getSearchParams());
16
+ }
17
+ get config() {
18
+ return this._config;
19
+ }
20
+ constructor(config) {
21
+ this.changeCallbacks = new Set();
22
+ this._config = config;
23
+ this._config.window.addEventListener('popstate', () => {
24
+ this.changeCallbacks.forEach(it => {
25
+ it(this.getRouteData());
26
+ });
27
+ });
28
+ // this.go({path:this.getUrl()});
29
+ }
30
+ getSearchFirstParamsObject(defaultValue) {
31
+ const a = ConvertUtils.toObject(this.getSearchParams(), { firstValue: true });
32
+ return Object.assign({}, defaultValue, a);
33
+ }
34
+ getHashSearchFirstParamsObject() {
35
+ return ConvertUtils.toObject(this.getHashSearchParams(), { firstValue: true });
36
+ }
37
+ addChangeCallback(callback) {
38
+ this.changeCallbacks.add(callback);
39
+ }
40
+ attach() {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const proxy = this.config.rootObject._DomRender_proxy;
43
+ if (proxy) {
44
+ const key = `___${EventManager.ROUTER_VARNAME}`;
45
+ yield proxy.render(key);
46
+ }
47
+ });
48
+ }
49
+ testRegexp(regexp) {
50
+ const b = RegExp(regexp).test(this.getPath());
51
+ return b;
52
+ }
53
+ test(urlExpression) {
54
+ if (this.getPathData(urlExpression)) {
55
+ return true;
56
+ }
57
+ else {
58
+ return false;
59
+ }
60
+ }
61
+ getRouteData(urlExpression) {
62
+ const newVar = {
63
+ path: this.getPath(),
64
+ url: this.getUrl(),
65
+ searchParams: this.getSearchParams()
66
+ };
67
+ const data = this.getData();
68
+ if (data) {
69
+ newVar.data = data;
70
+ }
71
+ if (urlExpression) {
72
+ const data = this.getPathData(urlExpression);
73
+ if (data) {
74
+ newVar.pathData = data;
75
+ }
76
+ }
77
+ newVar.router = this;
78
+ return Object.freeze(newVar);
79
+ }
80
+ pushState(data, title, path) {
81
+ this.config.window.history.pushState(data, title, path);
82
+ }
83
+ replaceState(data, title, path) {
84
+ this.config.window.history.replaceState(data, title, path);
85
+ }
86
+ dispatchPopStateEvent() {
87
+ this.config.window.dispatchEvent(new Event('popstate'));
88
+ }
89
+ reload() {
90
+ this.config.window.dispatchEvent(new Event('popstate'));
91
+ }
92
+ getData() {
93
+ return this.config.window.history.state;
94
+ }
95
+ getPathData(urlExpression, currentUrl = this.getPath()) {
96
+ return Expression.Path.pathNameData(currentUrl, urlExpression);
97
+ }
98
+ go(config) {
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ if (typeof config === 'string') {
101
+ config = { path: config };
102
+ }
103
+ if (config === null || config === void 0 ? void 0 : config.replace) {
104
+ this.replace(config.path, config.data, config.title);
105
+ }
106
+ else {
107
+ this.push(config.path, config.data, config.title);
108
+ }
109
+ if (!this.config.disableAttach) {
110
+ yield this.attach();
111
+ }
112
+ if (!config.disabledPopEvent) {
113
+ this.dispatchPopStateEvent();
114
+ }
115
+ });
116
+ }
117
+ toUrl(data) {
118
+ var _a;
119
+ let targetPath;
120
+ if (typeof data === 'string') {
121
+ targetPath = data;
122
+ }
123
+ else {
124
+ const tpath = (_a = data.path) !== null && _a !== void 0 ? _a : this.getPath();
125
+ const s = data.searchParams ? ConvertUtils.toURLSearchParams(data.searchParams).toString() : '';
126
+ // data.searchParams
127
+ targetPath = `${tpath}${s.length > 0 ? '?' : ''}${s}`;
128
+ }
129
+ return targetPath;
130
+ }
131
+ }
132
+ //# sourceMappingURL=Router.js.map
@@ -0,0 +1,12 @@
1
+ export declare class Shield {
2
+ [name: string]: any;
3
+ }
4
+ export declare class DomRenderFinalProxy<T extends object> implements ProxyHandler<T> {
5
+ set(target: T, p: string | symbol, value: any, receiver: any): boolean;
6
+ get(target: T, p: string | symbol, receiver: any): any;
7
+ static final<T = any>(obj: T): T;
8
+ static isFinal<T = any>(obj: T): boolean;
9
+ static unFinal<T = any>(obj: T): T;
10
+ has(target: T, p: string | symbol): boolean;
11
+ }
12
+ //# sourceMappingURL=Types.d.ts.map
package/types/Types.js ADDED
@@ -0,0 +1,26 @@
1
+ export class Shield {
2
+ }
3
+ export class DomRenderFinalProxy {
4
+ set(target, p, value, receiver) {
5
+ target[p] = value;
6
+ return true;
7
+ }
8
+ get(target, p, receiver) {
9
+ return target[p];
10
+ }
11
+ static final(obj) {
12
+ obj._DomRender_isFinal = true;
13
+ return obj;
14
+ }
15
+ static isFinal(obj) {
16
+ return '_DomRender_isFinal' in obj;
17
+ }
18
+ static unFinal(obj) {
19
+ delete obj._DomRender_isFinal;
20
+ return obj;
21
+ }
22
+ has(target, p) {
23
+ return p === '_DomRender_isFinal' || p in target;
24
+ }
25
+ }
26
+ //# sourceMappingURL=Types.js.map
@@ -0,0 +1,7 @@
1
+ import { Validator } from './Validator';
2
+ import { ValidatorArray } from './ValidatorArray';
3
+ export declare class AllCheckedValidatorArray<T = any, E = Element> extends ValidatorArray<T, E> {
4
+ constructor(value?: Validator<T, E>[], target?: E, event?: Event, autoValid?: boolean);
5
+ valid(): boolean;
6
+ }
7
+ //# sourceMappingURL=AllCheckedValidatorArray.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { ValidatorArray } from './ValidatorArray';
2
+ export class AllCheckedValidatorArray extends ValidatorArray {
3
+ constructor(value, target, event, autoValid = true) {
4
+ super(value, target, event, autoValid);
5
+ }
6
+ valid() {
7
+ var _a;
8
+ return !(((_a = this.value) !== null && _a !== void 0 ? _a : []).filter(it => !it.checked).length > 0);
9
+ }
10
+ }
11
+ //# sourceMappingURL=AllCheckedValidatorArray.js.map
@@ -0,0 +1,7 @@
1
+ import { Validator } from './Validator';
2
+ import { ValidatorArray } from './ValidatorArray';
3
+ export declare class AllUnCheckedValidatorArray<T = any, E = Element> extends ValidatorArray<T, E> {
4
+ constructor(value?: Validator<T, E>[], target?: E, event?: Event, autoValid?: boolean);
5
+ valid(): boolean;
6
+ }
7
+ //# sourceMappingURL=AllUnCheckedValidatorArray.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { ValidatorArray } from './ValidatorArray';
2
+ export class AllUnCheckedValidatorArray extends ValidatorArray {
3
+ constructor(value, target, event, autoValid = true) {
4
+ super(value, target, event, autoValid);
5
+ }
6
+ valid() {
7
+ var _a;
8
+ return !(((_a = this.value) !== null && _a !== void 0 ? _a : []).filter(it => it.checked).length > 0);
9
+ }
10
+ }
11
+ //# sourceMappingURL=AllUnCheckedValidatorArray.js.map
@@ -0,0 +1,6 @@
1
+ import { Validator } from './Validator';
2
+ export declare class CheckedValidator<T = any, E = HTMLElement> extends Validator<T, E> {
3
+ constructor(value?: T, target?: E, event?: Event, autoValid?: boolean);
4
+ valid(): boolean;
5
+ }
6
+ //# sourceMappingURL=CheckedValidator.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { Validator } from './Validator';
2
+ export class CheckedValidator extends Validator {
3
+ constructor(value, target, event, autoValid = true) {
4
+ super(value, target, event, autoValid);
5
+ }
6
+ valid() {
7
+ var _a, _b;
8
+ return (_b = (_a = this.getTarget()) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;
9
+ }
10
+ }
11
+ //# sourceMappingURL=CheckedValidator.js.map
@@ -0,0 +1,8 @@
1
+ import { Validator } from './Validator';
2
+ import { ValidatorArray } from './ValidatorArray';
3
+ export declare class CountEqualsCheckedValidatorArray<T = any, E = Element> extends ValidatorArray<T, E> {
4
+ count: number;
5
+ constructor(count: number, value?: Validator<T, E>[], target?: E, event?: Event, autoValid?: boolean);
6
+ valid(): boolean;
7
+ }
8
+ //# sourceMappingURL=CountEqualsCheckedValidatorArray.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { ValidatorArray } from './ValidatorArray';
2
+ export class CountEqualsCheckedValidatorArray extends ValidatorArray {
3
+ constructor(count, value, target, event, autoValid = true) {
4
+ super(value, target, event, autoValid);
5
+ this.count = count;
6
+ }
7
+ valid() {
8
+ var _a;
9
+ return ((_a = this.value) !== null && _a !== void 0 ? _a : []).filter(it => it.checked).length === this.count;
10
+ }
11
+ }
12
+ //# sourceMappingURL=CountEqualsCheckedValidatorArray.js.map
@@ -0,0 +1,8 @@
1
+ import { Validator } from './Validator';
2
+ import { ValidatorArray } from './ValidatorArray';
3
+ export declare class CountEqualsUnCheckedValidatorArray<T = any, E = Element> extends ValidatorArray<T, E> {
4
+ count: number;
5
+ constructor(count: number, value?: Validator<T, E>[], target?: E, event?: Event, autoValid?: boolean);
6
+ valid(): boolean;
7
+ }
8
+ //# sourceMappingURL=CountEqualsUnCheckedValidatorArray.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { ValidatorArray } from './ValidatorArray';
2
+ export class CountEqualsUnCheckedValidatorArray extends ValidatorArray {
3
+ constructor(count, value, target, event, autoValid = true) {
4
+ super(value, target, event, autoValid);
5
+ this.count = count;
6
+ }
7
+ valid() {
8
+ var _a;
9
+ return ((_a = this.value) !== null && _a !== void 0 ? _a : []).filter(it => !it.checked).length === this.count;
10
+ }
11
+ }
12
+ //# sourceMappingURL=CountEqualsUnCheckedValidatorArray.js.map
@@ -0,0 +1,8 @@
1
+ import { Validator } from './Validator';
2
+ import { ValidatorArray } from './ValidatorArray';
3
+ export declare class CountGreaterThanCheckedValidatorArray<T = any, E = Element> extends ValidatorArray<T, E> {
4
+ count: number;
5
+ constructor(count: number, value?: Validator<T, E>[], target?: E, event?: Event, autoValid?: boolean);
6
+ valid(): boolean;
7
+ }
8
+ //# sourceMappingURL=CountGreaterThanCheckedValidatorArray.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { ValidatorArray } from './ValidatorArray';
2
+ export class CountGreaterThanCheckedValidatorArray extends ValidatorArray {
3
+ constructor(count, value, target, event, autoValid = true) {
4
+ super(value, target, event, autoValid);
5
+ this.count = count;
6
+ }
7
+ valid() {
8
+ var _a;
9
+ return ((_a = this.value) !== null && _a !== void 0 ? _a : []).filter(it => it.checked).length > this.count;
10
+ }
11
+ }
12
+ //# sourceMappingURL=CountGreaterThanCheckedValidatorArray.js.map
@@ -0,0 +1,8 @@
1
+ import { Validator } from './Validator';
2
+ import { ValidatorArray } from './ValidatorArray';
3
+ export declare class CountGreaterThanEqualsCheckedValidatorArray<T = any, E = Element> extends ValidatorArray<T, E> {
4
+ count: number;
5
+ constructor(count: number, value?: Validator<T, E>[], target?: E, event?: Event, autoValid?: boolean);
6
+ valid(): boolean;
7
+ }
8
+ //# sourceMappingURL=CountGreaterThanEqualsCheckedValidatorArray.d.ts.map