@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
package/DomRender.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ import { Config } from './configs/Config';
2
+ import { ConstructorType } from '@dooboostore/core/types';
3
+ import { RawSet } from './rawsets/RawSet';
4
+ import { Router } from './routers/Router';
5
+ export type RunConfig<T = any> = Omit<Config<T>, 'router'> & {
6
+ routerType?: 'path' | 'hash' | ((obj: T, window: Window) => Router) | Router;
7
+ };
8
+ export type CreateComponentParam = {
9
+ type: ConstructorType<any> | any;
10
+ tagName?: string;
11
+ noStrip?: boolean;
12
+ template?: string;
13
+ styles?: string[] | string;
14
+ };
15
+ export declare class DomRender {
16
+ static run<T extends object>({ rootObject, target, config }: {
17
+ rootObject: T | (() => T);
18
+ target?: Element | null;
19
+ config?: RunConfig;
20
+ }): T;
21
+ static createComponent(param: CreateComponentParam): import("./configs/TargetElement").TargetElement;
22
+ static createAttribute(attrName: string, getThisObj: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => any, factory: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment): import("./configs/TargetAttr").TargetAttr;
23
+ }
24
+ //# sourceMappingURL=DomRender.d.ts.map
package/DomRender.js ADDED
@@ -0,0 +1,115 @@
1
+ import { DomRenderProxy } from './DomRenderProxy';
2
+ import { PathRouter } from './routers/PathRouter';
3
+ import { HashRouter } from './routers/HashRouter';
4
+ import { DomRenderFinalProxy } from './types/Types';
5
+ import { RawSet } from './rawsets/RawSet';
6
+ import { DefaultMessenger } from './messenger/DefaultMessenger';
7
+ import { drComponent } from './components';
8
+ export class DomRender {
9
+ static run({ rootObject, target, config }) {
10
+ var _a, _b, _c;
11
+ rootObject = typeof rootObject === 'function' ? rootObject() : rootObject;
12
+ const targetConfig = Object.assign({}, config);
13
+ let targetObject = rootObject;
14
+ if ('_DomRender_isProxy' in rootObject) {
15
+ if (target) {
16
+ rootObject._DomRender_proxy.initRender(target);
17
+ }
18
+ targetObject = rootObject;
19
+ return targetObject; // { rootObject: targetObject, target, config: targetConfig };
20
+ }
21
+ // const domRenderConfig = Object.assign()
22
+ // if (config && !config.window) {
23
+ // config.window = window;
24
+ // }
25
+ // config.routerType = config.routerType || 'none';
26
+ targetConfig.messenger = DomRenderFinalProxy.final((_a = targetConfig.messenger) !== null && _a !== void 0 ? _a : new DefaultMessenger(targetConfig));
27
+ targetConfig.proxyExcludeTyps = (_b = targetConfig.proxyExcludeTyps) !== null && _b !== void 0 ? _b : [];
28
+ (_c = targetConfig.targetElements) !== null && _c !== void 0 ? _c : (targetConfig.targetElements = []);
29
+ for (const value of Object.values(drComponent)) {
30
+ const a = value(config);
31
+ if (!targetConfig.targetElements.find(it => it.name === a.name)) {
32
+ targetConfig.targetElements.push(a);
33
+ }
34
+ // if (targetConfig.targetElements.indexOf(value) === -1) {
35
+ // }
36
+ }
37
+ // console.log('----------', targetConfig.proxyExcludeTyps)
38
+ // console.log('----------', targetConfig.targetElements)
39
+ if (typeof Window !== 'undefined' && targetConfig.proxyExcludeTyps.indexOf(Window) === -1) {
40
+ targetConfig.proxyExcludeTyps.push(Window);
41
+ }
42
+ if (typeof Map !== 'undefined' && targetConfig.proxyExcludeTyps.indexOf(Map) === -1) {
43
+ targetConfig.proxyExcludeTyps.push(Map);
44
+ }
45
+ if (typeof Set !== 'undefined' && targetConfig.proxyExcludeTyps.indexOf(Set) === -1) {
46
+ targetConfig.proxyExcludeTyps.push(Set);
47
+ }
48
+ if (typeof Promise !== 'undefined' && targetConfig.proxyExcludeTyps.indexOf(Promise) === -1) {
49
+ targetConfig.proxyExcludeTyps.push(Promise);
50
+ }
51
+ if (typeof ImageBitmap !== 'undefined' && targetConfig.proxyExcludeTyps.indexOf(ImageBitmap) === -1) {
52
+ targetConfig.proxyExcludeTyps.push(ImageBitmap);
53
+ }
54
+ if (typeof CanvasRenderingContext2D !== 'undefined' && targetConfig.proxyExcludeTyps.indexOf(CanvasRenderingContext2D) === -1) {
55
+ targetConfig.proxyExcludeTyps.push(CanvasRenderingContext2D);
56
+ }
57
+ if (typeof HTMLCanvasElement !== 'undefined' && targetConfig.proxyExcludeTyps.indexOf(HTMLCanvasElement) === -1) {
58
+ targetConfig.proxyExcludeTyps.push(HTMLCanvasElement);
59
+ }
60
+ if (targetConfig.proxyExcludeTyps.indexOf(RawSet) === -1) {
61
+ targetConfig.proxyExcludeTyps.push(RawSet);
62
+ }
63
+ const domRender = new DomRenderProxy(rootObject, target, targetConfig);
64
+ const dest = new Proxy(rootObject, domRender);
65
+ targetObject = dest;
66
+ // proxy 된 targetObject를 넣어줘야되서 뒤쪽에서 router를 생성해야함
67
+ let targetRouter;
68
+ if ((config === null || config === void 0 ? void 0 : config.routerType) === 'hash') {
69
+ targetRouter = new HashRouter({ rootObject: targetObject, window: targetConfig.window });
70
+ }
71
+ else if ((config === null || config === void 0 ? void 0 : config.routerType) === 'path') {
72
+ targetRouter = new PathRouter({ rootObject: targetObject, window: targetConfig.window });
73
+ }
74
+ else if (typeof (config === null || config === void 0 ? void 0 : config.routerType) === 'function') {
75
+ targetRouter = config.routerType(targetObject, targetConfig.window);
76
+ }
77
+ else if (typeof (config === null || config === void 0 ? void 0 : config.routerType) === 'object') {
78
+ targetRouter = config.routerType;
79
+ }
80
+ targetConfig.router = targetRouter;
81
+ // console.log('cccccccccccccccccc', targetRouter)
82
+ // targetRouter.go({path: targetRouter.getUrl()})
83
+ // if (!config.router) {
84
+ // if (config.routerType === 'path') {
85
+ // config.router = new PathRouter(targetObject, config.window);
86
+ // } else if (config.routerType === 'hash') {
87
+ // config.router = new HashRouter(targetObject, config.window);
88
+ // } else { // none
89
+ // config.router = new HashRouter(targetObject, config.window);
90
+ // }
91
+ // }
92
+ domRender.run(targetObject);
93
+ return targetObject; // { rootObject: targetObject, config: targetConfig, target };
94
+ }
95
+ static createComponent(param) {
96
+ var _a, _b;
97
+ // console.log('===>', typeof param.type, param.type.name, param.type.constructor.name)
98
+ const component = RawSet.createComponentTargetElement({
99
+ name: (_a = param.tagName) !== null && _a !== void 0 ? _a : (typeof param.type === 'function' ? param.type.name : param.type.constructor.name),
100
+ objFactory: (e, o, r2, counstructorParam) => {
101
+ return typeof param.type === 'function' ? new param.type(...counstructorParam) : param.type;
102
+ },
103
+ noStrip: param.noStrip,
104
+ template: (_b = param.template) !== null && _b !== void 0 ? _b : '',
105
+ styles: Array.isArray(param.styles) ? param.styles : (param.styles ? [param.styles] : undefined)
106
+ });
107
+ return component;
108
+ }
109
+ // ?? 언제 쓰는거지?? 훔..
110
+ static createAttribute(attrName, getThisObj, factory) {
111
+ const targetAttribute = RawSet.createComponentTargetAttribute(attrName, getThisObj, factory);
112
+ return targetAttribute;
113
+ }
114
+ }
115
+ //# sourceMappingURL=DomRender.js.map
@@ -0,0 +1,38 @@
1
+ import 'reflect-metadata';
2
+ import { RawSet } from './rawsets/RawSet';
3
+ import { Config } from './configs/Config';
4
+ export declare class DomRenderProxy<T extends object> implements ProxyHandler<T> {
5
+ _domRender_origin: T;
6
+ config: Config;
7
+ _domRender_ref: Map<object, Set<string>>;
8
+ _rawSets: Map<string, Set<RawSet>>;
9
+ _domRender_proxy?: T;
10
+ _targets: Set<Node>;
11
+ constructor(_domRender_origin: T, target: Node | null | undefined, config: Config);
12
+ static unFinal<T = any>(obj: T): T;
13
+ static final<T = any>(obj: T): T;
14
+ static isFinal<T = any>(obj: T): boolean;
15
+ run(objProxy: T): void;
16
+ initRender(target: Node): void;
17
+ getRawSets(): RawSet[];
18
+ render(raws?: RawSet[] | string, fullPathStr?: string): Promise<RawSet[]>;
19
+ root(pathInfos: {
20
+ path: string;
21
+ obj: any;
22
+ }[][], value?: any, lastDoneExecute?: boolean): {
23
+ path: string;
24
+ obj: any;
25
+ }[][];
26
+ set(target: T, p: string | symbol, value: any, receiver: T): boolean;
27
+ get(target: T, p: string | symbol, receiver: any): any;
28
+ deleteProperty(target: T, p: string | symbol): boolean;
29
+ has(target: T, p: string | symbol): boolean;
30
+ proxy(parentProxy: T, obj: T | any, p: string): any;
31
+ addRef(parent: object, path: string): void;
32
+ addRawSetAndRender(path: string, rawSet: RawSet): void;
33
+ addRawSet(path: string, rawSet: RawSet): void;
34
+ removeRawSet(...raws: RawSet[]): void;
35
+ private targetGarbageRawSet;
36
+ private garbageRawSet;
37
+ }
38
+ //# sourceMappingURL=DomRenderProxy.d.ts.map