@gogocat/data-bind 1.11.0 → 2.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 (274) hide show
  1. package/.editorconfig +14 -14
  2. package/.vscode/launch.json +12 -12
  3. package/CONFIGURATION.md +294 -0
  4. package/REACTIVE_MODE.md +553 -0
  5. package/README.md +266 -829
  6. package/babel.config.json +30 -0
  7. package/dist/js/_escape.d.ts +14 -0
  8. package/dist/js/_escape.d.ts.map +1 -0
  9. package/dist/js/applyBinding.d.ts +11 -0
  10. package/dist/js/applyBinding.d.ts.map +1 -0
  11. package/dist/js/attrBinding.d.ts +12 -0
  12. package/dist/js/attrBinding.d.ts.map +1 -0
  13. package/dist/js/binder.d.ts +67 -0
  14. package/dist/js/binder.d.ts.map +1 -0
  15. package/dist/js/changeBinding.d.ts +19 -0
  16. package/dist/js/changeBinding.d.ts.map +1 -0
  17. package/dist/js/commentWrapper.d.ts +39 -0
  18. package/dist/js/commentWrapper.d.ts.map +1 -0
  19. package/dist/js/config.d.ts +55 -0
  20. package/dist/js/config.d.ts.map +1 -0
  21. package/dist/js/createBindingOption.d.ts +32 -0
  22. package/dist/js/createBindingOption.d.ts.map +1 -0
  23. package/dist/js/createEventBinding.d.ts +10 -0
  24. package/dist/js/createEventBinding.d.ts.map +1 -0
  25. package/dist/js/cssBinding.d.ts +15 -0
  26. package/dist/js/cssBinding.d.ts.map +1 -0
  27. package/dist/js/dataBind.js +2772 -2519
  28. package/dist/js/dataBind.min.js +8 -1
  29. package/dist/js/dataBind.min.js.map +1 -1
  30. package/dist/js/domWalker.d.ts +9 -0
  31. package/dist/js/domWalker.d.ts.map +1 -0
  32. package/dist/js/forOfBinding.d.ts +12 -0
  33. package/dist/js/forOfBinding.d.ts.map +1 -0
  34. package/dist/js/hoverBinding.d.ts +13 -0
  35. package/dist/js/hoverBinding.d.ts.map +1 -0
  36. package/dist/js/ifBinding.d.ts +12 -0
  37. package/dist/js/ifBinding.d.ts.map +1 -0
  38. package/dist/js/index.d.ts +10 -0
  39. package/dist/js/index.d.ts.map +1 -0
  40. package/dist/js/modelBinding.d.ts +12 -0
  41. package/dist/js/modelBinding.d.ts.map +1 -0
  42. package/dist/js/postProcess.d.ts +3 -0
  43. package/dist/js/postProcess.d.ts.map +1 -0
  44. package/dist/js/pubSub.d.ts +11 -0
  45. package/dist/js/pubSub.d.ts.map +1 -0
  46. package/dist/js/reactiveProxy.d.ts +28 -0
  47. package/dist/js/reactiveProxy.d.ts.map +1 -0
  48. package/dist/js/renderForOfBinding.d.ts +8 -0
  49. package/dist/js/renderForOfBinding.d.ts.map +1 -0
  50. package/dist/js/renderIfBinding.d.ts +22 -0
  51. package/dist/js/renderIfBinding.d.ts.map +1 -0
  52. package/dist/js/renderIteration.d.ts +16 -0
  53. package/dist/js/renderIteration.d.ts.map +1 -0
  54. package/dist/js/renderTemplate.d.ts +14 -0
  55. package/dist/js/renderTemplate.d.ts.map +1 -0
  56. package/dist/js/renderTemplatesBinding.d.ts +19 -0
  57. package/dist/js/renderTemplatesBinding.d.ts.map +1 -0
  58. package/dist/js/showBinding.d.ts +13 -0
  59. package/dist/js/showBinding.d.ts.map +1 -0
  60. package/dist/js/switchBinding.d.ts +13 -0
  61. package/dist/js/switchBinding.d.ts.map +1 -0
  62. package/dist/js/textBinding.d.ts +13 -0
  63. package/dist/js/textBinding.d.ts.map +1 -0
  64. package/dist/js/types/_escape.d.ts +14 -0
  65. package/dist/js/types/_escape.d.ts.map +1 -0
  66. package/dist/js/types/applyBinding.d.ts +11 -0
  67. package/dist/js/types/applyBinding.d.ts.map +1 -0
  68. package/dist/js/types/attrBinding.d.ts +12 -0
  69. package/dist/js/types/attrBinding.d.ts.map +1 -0
  70. package/dist/js/types/binder.d.ts +67 -0
  71. package/dist/js/types/binder.d.ts.map +1 -0
  72. package/dist/js/types/changeBinding.d.ts +19 -0
  73. package/dist/js/types/changeBinding.d.ts.map +1 -0
  74. package/dist/js/types/commentWrapper.d.ts +39 -0
  75. package/dist/js/types/commentWrapper.d.ts.map +1 -0
  76. package/dist/js/types/config.d.ts +55 -0
  77. package/dist/js/types/config.d.ts.map +1 -0
  78. package/dist/js/types/createBindingOption.d.ts +32 -0
  79. package/dist/js/types/createBindingOption.d.ts.map +1 -0
  80. package/dist/js/types/createEventBinding.d.ts +10 -0
  81. package/dist/js/types/createEventBinding.d.ts.map +1 -0
  82. package/dist/js/types/cssBinding.d.ts +15 -0
  83. package/dist/js/types/cssBinding.d.ts.map +1 -0
  84. package/dist/js/types/domWalker.d.ts +9 -0
  85. package/dist/js/types/domWalker.d.ts.map +1 -0
  86. package/dist/js/types/forOfBinding.d.ts +12 -0
  87. package/dist/js/types/forOfBinding.d.ts.map +1 -0
  88. package/dist/js/types/hoverBinding.d.ts +13 -0
  89. package/dist/js/types/hoverBinding.d.ts.map +1 -0
  90. package/dist/js/types/ifBinding.d.ts +12 -0
  91. package/dist/js/types/ifBinding.d.ts.map +1 -0
  92. package/dist/js/types/index.d.ts +10 -0
  93. package/dist/js/types/index.d.ts.map +1 -0
  94. package/dist/js/types/modelBinding.d.ts +12 -0
  95. package/dist/js/types/modelBinding.d.ts.map +1 -0
  96. package/dist/js/types/postProcess.d.ts +3 -0
  97. package/dist/js/types/postProcess.d.ts.map +1 -0
  98. package/dist/js/types/pubSub.d.ts +11 -0
  99. package/dist/js/types/pubSub.d.ts.map +1 -0
  100. package/dist/js/types/reactiveProxy.d.ts +28 -0
  101. package/dist/js/types/reactiveProxy.d.ts.map +1 -0
  102. package/dist/js/types/renderForOfBinding.d.ts +8 -0
  103. package/dist/js/types/renderForOfBinding.d.ts.map +1 -0
  104. package/dist/js/types/renderIfBinding.d.ts +22 -0
  105. package/dist/js/types/renderIfBinding.d.ts.map +1 -0
  106. package/dist/js/types/renderIteration.d.ts +16 -0
  107. package/dist/js/types/renderIteration.d.ts.map +1 -0
  108. package/dist/js/types/renderTemplate.d.ts +14 -0
  109. package/dist/js/types/renderTemplate.d.ts.map +1 -0
  110. package/dist/js/types/renderTemplatesBinding.d.ts +19 -0
  111. package/dist/js/types/renderTemplatesBinding.d.ts.map +1 -0
  112. package/dist/js/types/showBinding.d.ts +13 -0
  113. package/dist/js/types/showBinding.d.ts.map +1 -0
  114. package/dist/js/types/switchBinding.d.ts +13 -0
  115. package/dist/js/types/switchBinding.d.ts.map +1 -0
  116. package/dist/js/types/textBinding.d.ts +13 -0
  117. package/dist/js/types/textBinding.d.ts.map +1 -0
  118. package/dist/js/types/types.d.ts +111 -0
  119. package/dist/js/types/types.d.ts.map +1 -0
  120. package/dist/js/types/util.d.ts +119 -0
  121. package/dist/js/types/util.d.ts.map +1 -0
  122. package/dist/js/types.d.ts +111 -0
  123. package/dist/js/types.d.ts.map +1 -0
  124. package/dist/js/util.d.ts +119 -0
  125. package/dist/js/util.d.ts.map +1 -0
  126. package/eslint.config.js +124 -0
  127. package/examples/DBMONSTER_COMPARISON.md +123 -0
  128. package/examples/afterRenderDemo.html +119 -0
  129. package/examples/bootstrap/css/animate.css +1579 -1579
  130. package/examples/bootstrap/css/bootstrap.min.css +6 -6
  131. package/examples/bootstrap/css/homeservices.css +378 -390
  132. package/examples/bootstrap/css/open-iconic.css +511 -511
  133. package/examples/bootstrap/fonts/open-iconic.svg +543 -543
  134. package/examples/bootstrap/js/compMessageDialog.js +20 -19
  135. package/examples/bootstrap/js/compSearchBar.js +12 -19
  136. package/examples/bootstrap/js/compSearchResults.js +50 -46
  137. package/examples/bootstrap/js/featureAdsResult.json +65 -65
  138. package/examples/bootstrap/js/searchResult.json +57 -57
  139. package/examples/bootstrap.html +343 -332
  140. package/examples/css/baseTodo.css +141 -141
  141. package/examples/css/dbMonsterStyles.css +27 -27
  142. package/examples/css/indexTodo.css +374 -374
  143. package/examples/dbmonsterForOfReactive.html +40 -0
  144. package/examples/dbmonsterReact.html +19 -0
  145. package/examples/forOfBindingSimpleDebug.html +45 -0
  146. package/examples/form.html +20 -4
  147. package/examples/globalConfig.html +131 -0
  148. package/examples/js/afterRenderDemo.js +190 -0
  149. package/examples/js/appTodo.js +46 -46
  150. package/examples/js/attrBindingDemo.js +2 -2
  151. package/examples/js/dbMonApp.js +24 -26
  152. package/examples/js/dbMonAppReact.jsx +79 -0
  153. package/examples/js/dbMonAppReactive.js +28 -0
  154. package/examples/js/fiberDemo.js +4 -4
  155. package/examples/js/filtersDemo.js +8 -8
  156. package/examples/js/forOfDemo.js +7 -9
  157. package/examples/js/forOfDemoComplex.js +44 -17
  158. package/examples/js/form.js +44 -12
  159. package/examples/js/globalConfig.js +117 -0
  160. package/examples/js/ifBindingDemo.js +16 -16
  161. package/examples/js/reactiveDemo.js +119 -0
  162. package/examples/js/switchBindingDemo.js +8 -8
  163. package/examples/react-dbmonster/dist/bundle.js +43 -0
  164. package/examples/react-dbmonster/package-lock.json +537 -0
  165. package/examples/react-dbmonster/package.json +16 -0
  166. package/examples/react-dbmonster/src/index.jsx +80 -0
  167. package/examples/reactiveDemo.html +127 -0
  168. package/examples/refreshRateTest.html +75 -75
  169. package/index.html +841 -0
  170. package/package.json +31 -34
  171. package/rollup.config.js +79 -36
  172. package/src/{_escape.js → _escape.ts} +19 -17
  173. package/src/applyBinding.ts +179 -0
  174. package/src/{attrBinding.js → attrBinding.ts} +14 -13
  175. package/src/binder.ts +289 -0
  176. package/src/changeBinding.ts +93 -0
  177. package/src/{commentWrapper.js → commentWrapper.ts} +33 -30
  178. package/src/config.ts +107 -0
  179. package/src/createBindingOption.ts +91 -0
  180. package/src/createEventBinding.ts +88 -0
  181. package/src/{cssBinding.js → cssBinding.ts} +13 -11
  182. package/src/{domWalker.js → domWalker.ts} +44 -30
  183. package/src/{forOfBinding.js → forOfBinding.ts} +4 -3
  184. package/src/hoverBinding.ts +84 -0
  185. package/src/{ifBinding.js → ifBinding.ts} +14 -12
  186. package/src/index.ts +53 -0
  187. package/src/{modelBinding.js → modelBinding.ts} +11 -9
  188. package/src/postProcess.ts +22 -0
  189. package/src/{pubSub.js → pubSub.ts} +24 -15
  190. package/src/reactiveProxy.ts +285 -0
  191. package/src/{renderForOfBinding.js → renderForOfBinding.ts} +55 -33
  192. package/src/{renderIfBinding.js → renderIfBinding.ts} +45 -20
  193. package/src/renderIteration.ts +53 -0
  194. package/src/renderTemplate.ts +165 -0
  195. package/src/renderTemplatesBinding.ts +73 -0
  196. package/src/{showBinding.js → showBinding.ts} +4 -3
  197. package/src/{switchBinding.js → switchBinding.ts} +18 -15
  198. package/src/{textBinding.js → textBinding.ts} +5 -4
  199. package/src/types.ts +124 -0
  200. package/src/util.ts +810 -0
  201. package/test/css/reporter.css +9 -9
  202. package/test/fixtures/dataBindBootstrap.html +2 -2
  203. package/test/fixtures/formBindings.html +9 -1
  204. package/test/globals.d.ts +19 -0
  205. package/test/helpers/testHelper.js +46 -11
  206. package/test/mocks/featureAdsResult.json +65 -65
  207. package/test/mocks/searchResult.json +57 -57
  208. package/test/specs/{attrBinding.spec.js → attrBinding.spec.ts} +103 -106
  209. package/test/specs/{binder.spec.js → binder.spec.ts} +29 -27
  210. package/test/specs/blurBinding.spec.ts +60 -0
  211. package/test/specs/chainableUse.spec.ts +125 -0
  212. package/test/specs/clickBinding.spec.ts +194 -0
  213. package/test/specs/{cssBinding.spec.js → cssBinding.spec.ts} +72 -79
  214. package/test/specs/{dataBindBootstrap.spec.js → dataBindBootstrap.spec.ts} +332 -313
  215. package/test/specs/{filter.spec.js → filter.spec.ts} +75 -76
  216. package/test/specs/{forOfBinding.spec.js → forOfBinding.spec.ts} +208 -219
  217. package/test/specs/formBinding.spec.ts +272 -0
  218. package/test/specs/ifBinding.spec.ts +165 -0
  219. package/test/specs/{nestedComponent.spec.js → nestedComponent.spec.ts} +88 -88
  220. package/test/specs/reactiveProxy.spec.ts +465 -0
  221. package/test/specs/{showBinding.spec.js → showBinding.spec.ts} +148 -149
  222. package/test/specs/{switchBinding.spec.js → switchBinding.spec.ts} +172 -173
  223. package/test/specs/templateBinding.spec.ts +273 -0
  224. package/test/specs/{textBinding.spec.js → textBinding.spec.ts} +47 -48
  225. package/test/tsconfig.json +31 -0
  226. package/test-output.txt +200 -0
  227. package/test-reactive.html +224 -0
  228. package/tsconfig.json +28 -0
  229. package/vendors/lodash.custom.js +4577 -4577
  230. package/vendors/lodash.custom.min.js +45 -45
  231. package/vitest.config.js +27 -0
  232. package/.eslintrc.js +0 -1
  233. package/.grunt/grunt-contrib-jasmine/boot.js +0 -161
  234. package/.grunt/grunt-contrib-jasmine/dist/js/dataBind.js +0 -9
  235. package/.grunt/grunt-contrib-jasmine/grunt-template-jasmine-istanbul/reporter.js +0 -23
  236. package/.grunt/grunt-contrib-jasmine/jasmine-html.js +0 -853
  237. package/.grunt/grunt-contrib-jasmine/jasmine.css +0 -271
  238. package/.grunt/grunt-contrib-jasmine/jasmine.js +0 -9761
  239. package/.grunt/grunt-contrib-jasmine/jasmine_favicon.png +0 -0
  240. package/.grunt/grunt-contrib-jasmine/json2.js +0 -489
  241. package/.grunt/grunt-contrib-jasmine/reporter.js +0 -107
  242. package/coverage/coverage.json +0 -1
  243. package/coverage/lcov/lcov-report/base.css +0 -213
  244. package/coverage/lcov/lcov-report/index.html +0 -93
  245. package/coverage/lcov/lcov-report/js/dataBind.js.html +0 -6596
  246. package/coverage/lcov/lcov-report/js/index.html +0 -93
  247. package/coverage/lcov/lcov-report/prettify.css +0 -1
  248. package/coverage/lcov/lcov-report/prettify.js +0 -1
  249. package/coverage/lcov/lcov-report/sort-arrow-sprite.png +0 -0
  250. package/coverage/lcov/lcov-report/sorter.js +0 -158
  251. package/coverage/lcov/lcov.info +0 -1991
  252. package/eslintrc.json +0 -40
  253. package/examples/bootstrap/js/bootstrap.min.js +0 -6
  254. package/examples/bootstrap/js/popper.min.js +0 -5
  255. package/examples/bootstrap/js/searchSuggestion.js +0 -58
  256. package/examples/bootstrap/js/typeahead.jquery.js +0 -1538
  257. package/gruntfile.js +0 -92
  258. package/gulpfile.js +0 -32
  259. package/src/binder.js +0 -422
  260. package/src/changeBinding.js +0 -57
  261. package/src/config.js +0 -65
  262. package/src/createBindingOption.js +0 -66
  263. package/src/createEventBinding.js +0 -46
  264. package/src/eventSystem.js +0 -46
  265. package/src/hoverBinding.js +0 -57
  266. package/src/index.js +0 -26
  267. package/src/renderTemplate.js +0 -128
  268. package/src/util.js +0 -648
  269. package/test/specs/blurBinding.spec.js +0 -57
  270. package/test/specs/formBinding.spec.js +0 -292
  271. package/test/specs/ifBinding.spec.js +0 -169
  272. package/test/specs/templateBinding.spec.js +0 -117
  273. package/vendors/jasmine-jquery.js +0 -841
  274. package/vendors/jquery-3.2.1.min.js +0 -4
@@ -0,0 +1,15 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ /**
3
+ * cssBinding
4
+ * @description
5
+ * DOM decleartive css binding. update classlist.
6
+ * viewModel data can function but must return JSOL.
7
+ * added css class if value is true
8
+ * @param {object} cache
9
+ * @param {object} viewModel
10
+ * @param {object} bindingAttrs
11
+ * @param {boolean} forceRender
12
+ */
13
+ declare const cssBinding: (cache: BindingCache, viewModel: ViewModel, bindingAttrs: BindingAttrs, forceRender: boolean) => void;
14
+ export default cssBinding;
15
+ //# sourceMappingURL=cssBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssBinding.d.ts","sourceRoot":"","sources":["../../../src/cssBinding.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAEhF;;;;;;;;;;GAUG;AACH,QAAA,MAAM,UAAU,GAAI,OAAO,YAAY,EAAE,WAAW,SAAS,EAAE,cAAc,YAAY,EAAE,aAAa,OAAO,KAAG,IAyEjH,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { BindingAttrs, ElementCache } from './types';
2
+ declare const createBindingCache: ({ rootNode, bindingAttrs, skipCheck, isRenderedTemplate }: {
3
+ rootNode?: HTMLElement | null;
4
+ bindingAttrs?: BindingAttrs;
5
+ skipCheck?: (node: HTMLElement) => boolean;
6
+ isRenderedTemplate?: boolean;
7
+ }) => ElementCache;
8
+ export default createBindingCache;
9
+ //# sourceMappingURL=domWalker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domWalker.d.ts","sourceRoot":"","sources":["../../../src/domWalker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,YAAY,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAqFnF,QAAA,MAAM,kBAAkB,GAAI,2DAA6F;IACrH,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;IAC3C,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC,KAAG,YA8DH,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ /**
3
+ * forOfBinding
4
+ * @description
5
+ * DOM decleartive for binding.
6
+ * @param {object} cache
7
+ * @param {object} viewModel
8
+ * @param {object} bindingAttrs
9
+ */
10
+ declare const forOfBinding: (cache: BindingCache, viewModel: ViewModel, bindingAttrs: BindingAttrs, _forceRender?: boolean) => void;
11
+ export default forOfBinding;
12
+ //# sourceMappingURL=forOfBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forOfBinding.d.ts","sourceRoot":"","sources":["../../../src/forOfBinding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAEnE;;;;;;;GAOG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,YAAY,EAAE,WAAW,SAAS,EAAE,cAAc,YAAY,EAAE,eAAe,OAAO,KAAG,IAmCrH,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ /**
3
+ * hoverBinding
4
+ * DOM decleartive on hover event binding
5
+ * event handler bind to viewModel method according to the DOM attribute
6
+ * @param {object} cache
7
+ * @param {object} viewModel
8
+ * @param {object} bindingAttrs
9
+ * @param {boolean} forceRender
10
+ */
11
+ declare const hoverBinding: (cache: BindingCache, viewModel: ViewModel, bindingAttrs: BindingAttrs, forceRender: boolean) => void;
12
+ export default hoverBinding;
13
+ //# sourceMappingURL=hoverBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hoverBinding.d.ts","sourceRoot":"","sources":["../../../src/hoverBinding.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAkChF;;;;;;;;GAQG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,YAAY,EAAE,WAAW,SAAS,EAAE,cAAc,YAAY,EAAE,aAAa,OAAO,KAAG,IA+BnH,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ /**
3
+ * if-Binding
4
+ * @description
5
+ * DOM decleartive for binding.
6
+ * @param {object} cache
7
+ * @param {object} viewModel
8
+ * @param {object} bindingAttrs
9
+ */
10
+ declare const ifBinding: (cache: BindingCache, viewModel: ViewModel, bindingAttrs: BindingAttrs, _forceRender?: boolean) => void;
11
+ export default ifBinding;
12
+ //# sourceMappingURL=ifBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ifBinding.d.ts","sourceRoot":"","sources":["../../../src/ifBinding.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAEnE;;;;;;;GAOG;AACH,QAAA,MAAM,SAAS,GAAI,OAAO,YAAY,EAAE,WAAW,SAAS,EAAE,cAAc,YAAY,EAAE,eAAe,OAAO,KAAG,IAkElH,CAAC;AAgBF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ import Binder from './binder';
2
+ import type { PlainObject, ViewModel, BinderOptions } from './types';
3
+ interface DataBindAPI {
4
+ use: (settings: PlainObject) => DataBindAPI;
5
+ init: ($rootElement: HTMLElement, viewModel: ViewModel | null, options?: BinderOptions) => Binder | void;
6
+ version: string;
7
+ }
8
+ declare const api: DataBindAPI;
9
+ export default api;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,EAAC,WAAW,EAAE,SAAS,EAAgB,aAAa,EAAC,MAAM,SAAS,CAAC;AAWjF,UAAU,WAAW;IACjB,GAAG,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,WAAW,CAAC;IAC5C,IAAI,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,CAAC;IACzG,OAAO,EAAE,MAAM,CAAC;CACnB;AA4BD,QAAA,MAAM,GAAG,EAAE,WAIV,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ /**
3
+ * modelBinding
4
+ * @description input element data binding. viewModel -> DOM update
5
+ * @param {object} cache
6
+ * @param {object} viewModel
7
+ * @param {object} bindingAttrs
8
+ * @param {boolean} forceRender
9
+ */
10
+ declare const modelBinding: (cache: BindingCache, viewModel: ViewModel, bindingAttrs: BindingAttrs, forceRender: boolean) => void;
11
+ export default modelBinding;
12
+ //# sourceMappingURL=modelBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelBinding.d.ts","sourceRoot":"","sources":["../../../src/modelBinding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAEnE;;;;;;;GAOG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,YAAY,EAAE,WAAW,SAAS,EAAE,cAAc,YAAY,EAAE,aAAa,OAAO,KAAG,IAuCnH,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const postProcess: (tasks: Function[]) => void;
2
+ export default postProcess;
3
+ //# sourceMappingURL=postProcess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postProcess.d.ts","sourceRoot":"","sources":["../../../src/postProcess.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,WAAW,GAAI,OAAO,QAAQ,EAAE,KAAG,IAcxC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const subscribeEvent: (instance: unknown, eventName: string, fn: Function, isOnce?: boolean) => void;
2
+ export declare const subscribeEventOnce: (instance: unknown, eventName: string, fn: Function) => void;
3
+ export declare const unsubscribeEvent: (compId?: string | number, eventName?: string) => void;
4
+ /**
5
+ * unsubscribeAllEvent
6
+ * @description unsubscribe all event by compId. eg when a component removed
7
+ * @param {string} compId
8
+ */
9
+ export declare const unsubscribeAllEvent: (compId?: string | number) => void;
10
+ export declare const publishEvent: (eventName?: string, ...args: unknown[]) => void;
11
+ //# sourceMappingURL=pubSub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubSub.d.ts","sourceRoot":"","sources":["../../../src/pubSub.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,cAAc,GAAI,UAAU,OAAc,EAAE,WAAW,MAAW,EAAE,IAAI,QAAQ,EAAE,SAAQ,OAAe,KAAG,IA2BxH,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,UAAU,OAAc,EAAE,WAAW,MAAW,EAAE,IAAI,QAAQ,KAAG,IAEnG,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAQ,MAAM,GAAG,MAAW,EAAE,YAAW,MAAW,KAAG,IAyBvF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAQ,MAAM,GAAG,MAAW,KAAG,IAOlE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,YAAW,MAAW,EAAE,GAAG,MAAM,OAAO,EAAE,KAAG,IAkBzE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { ViewModel } from './types';
2
+ interface ReactiveOptions {
3
+ onChange: () => void;
4
+ deep?: boolean;
5
+ trackChanges?: boolean;
6
+ }
7
+ interface ChangeTracker {
8
+ changedPaths: Set<string>;
9
+ }
10
+ /**
11
+ * Create a reactive proxy that automatically triggers onChange when properties are modified
12
+ * Supports deep proxying for nested objects and arrays
13
+ */
14
+ export declare function createReactiveProxy<T extends ViewModel>(target: T, options: ReactiveOptions, path?: string, tracker?: ChangeTracker): T;
15
+ /**
16
+ * Special handling for arrays to intercept mutating methods
17
+ */
18
+ export declare function createReactiveArray<T extends unknown[]>(target: T, onChange: () => void, options: ReactiveOptions, path?: string, tracker?: ChangeTracker): T;
19
+ /**
20
+ * Utility to get the original object from a reactive proxy
21
+ */
22
+ export declare function toRaw<T>(obj: T): T;
23
+ /**
24
+ * Check if Proxy is supported
25
+ */
26
+ export declare function isProxySupported(): boolean;
27
+ export {};
28
+ //# sourceMappingURL=reactiveProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactiveProxy.d.ts","sourceRoot":"","sources":["../../../src/reactiveProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAEvC,UAAU,eAAe;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,aAAa;IACnB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AAuBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,SAAS,EACnD,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE,MAAW,EACjB,OAAO,CAAC,EAAE,aAAa,GACxB,CAAC,CA0HH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,EACnD,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE,MAAW,EACjB,OAAO,CAAC,EAAE,aAAa,GACxB,CAAC,CA+FH;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAElC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C"}
@@ -0,0 +1,8 @@
1
+ import type { ViewModel, BindingCache, BindingAttrs } from './types';
2
+ declare const renderForOfBinding: ({ bindingData, viewModel, bindingAttrs }: {
3
+ bindingData: BindingCache;
4
+ viewModel: ViewModel;
5
+ bindingAttrs: BindingAttrs;
6
+ }) => void;
7
+ export default renderForOfBinding;
8
+ //# sourceMappingURL=renderForOfBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderForOfBinding.d.ts","sourceRoot":"","sources":["../../../src/renderForOfBinding.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAEjF,QAAA,MAAM,kBAAkB,GAAI,0CAAwC;IAChE,WAAW,EAAE,YAAY,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;CAC9B,KAAG,IAuEH,CAAC;AAwFF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ interface RenderIfBindingParams {
3
+ bindingData: BindingCache;
4
+ viewModel: ViewModel;
5
+ bindingAttrs: BindingAttrs;
6
+ }
7
+ /**
8
+ * removeIfBinding
9
+ * @description remove if binding DOM and clean up cache
10
+ * @param {object} bindingData
11
+ */
12
+ declare const removeIfBinding: (bindingData: BindingCache) => void;
13
+ /**
14
+ * renderIfBinding
15
+ * @description render if binding DOM
16
+ * @param {object} bindingData
17
+ * @param {object} viewModel
18
+ * @param {object} bindingAttrs
19
+ */
20
+ declare const renderIfBinding: ({ bindingData, viewModel, bindingAttrs }: RenderIfBindingParams) => void;
21
+ export { renderIfBinding, removeIfBinding, };
22
+ //# sourceMappingURL=renderIfBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderIfBinding.d.ts","sourceRoot":"","sources":["../../../src/renderIfBinding.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAEjF,UAAU,qBAAqB;IAC3B,WAAW,EAAE,YAAY,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;CAC9B;AAuBD;;;;GAIG;AACH,QAAA,MAAM,eAAe,GAAI,aAAa,YAAY,KAAG,IAOpD,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,GAAI,0CAAwC,qBAAqB,KAAG,IA0CxF,CAAC;AAEF,OAAO,EACH,eAAe,EACf,eAAe,GAClB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { ElementCache, ViewModel, BindingAttrs } from './types';
2
+ /**
3
+ * renderIteration
4
+ * @param {object} opt
5
+ * @description
6
+ * render element's binding by supplied elementCache
7
+ * This function is desidned for FoOf, If, switch bindings
8
+ */
9
+ declare const renderIteration: ({ elementCache, iterationVm, bindingAttrs, isRegenerate, }: {
10
+ elementCache: ElementCache;
11
+ iterationVm: ViewModel;
12
+ bindingAttrs: BindingAttrs;
13
+ isRegenerate: boolean;
14
+ }) => void;
15
+ export default renderIteration;
16
+ //# sourceMappingURL=renderIteration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderIteration.d.ts","sourceRoot":"","sources":["../../../src/renderIteration.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAGnE;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,GAAI,4DAKtB;IACC,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACzB,KAAG,IA0BH,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs, ElementCache } from './types';
2
+ /**
3
+ * renderTemplate
4
+ * @description
5
+ * get template setting from DOM attribute then call compileTemplate
6
+ * to render and append to target DOM
7
+ * @param {object} cache
8
+ * @param {object} viewModel
9
+ * @param {object} bindingAttrs
10
+ * @param {object} elementCache
11
+ */
12
+ declare const renderTemplate: (cache: BindingCache, viewModel: ViewModel, bindingAttrs: BindingAttrs, elementCache: ElementCache) => void;
13
+ export default renderTemplate;
14
+ //# sourceMappingURL=renderTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderTemplate.d.ts","sourceRoot":"","sources":["../../../src/renderTemplate.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAoB9F;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,GAAI,OAAO,YAAY,EAAE,WAAW,SAAS,EAAE,cAAc,YAAY,EAAE,cAAc,YAAY,KAAG,IA4H3H,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ElementCache, ViewModel, BindingAttrs } from './types';
2
+ import type { BindingOption } from './createBindingOption';
3
+ interface BinderContext {
4
+ updateElementCache: (opt: {
5
+ allCache?: boolean;
6
+ templateCache?: boolean;
7
+ elementCache?: ElementCache;
8
+ isRenderedTemplates?: boolean;
9
+ }) => void;
10
+ }
11
+ declare const renderTemplatesBinding: ({ ctx, elementCache, updateOption, bindingAttrs, viewModel, }: {
12
+ ctx: BinderContext;
13
+ elementCache: ElementCache;
14
+ updateOption: BindingOption;
15
+ bindingAttrs: BindingAttrs;
16
+ viewModel: ViewModel;
17
+ }) => boolean;
18
+ export default renderTemplatesBinding;
19
+ //# sourceMappingURL=renderTemplatesBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderTemplatesBinding.d.ts","sourceRoot":"","sources":["../../../src/renderTemplatesBinding.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AACjF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEzD,UAAU,aAAa;IACnB,kBAAkB,EAAE,CAAC,GAAG,EAAE;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;KACjC,KAAK,IAAI,CAAC;CACd;AAED,QAAA,MAAM,sBAAsB,GAAI,+DAM7B;IACC,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,aAAa,CAAC;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACxB,KAAG,OA0CH,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ /**
3
+ * showBinding
4
+ * @description
5
+ * DOM decleartive show binding. Make binding show/hide according to viewModel data (boolean)
6
+ * viewModel data can function but must return boolean
7
+ * @param {object} cache
8
+ * @param {object} viewModel
9
+ * @param {object} bindingAttrs
10
+ */
11
+ declare const showBinding: (cache: BindingCache, viewModel: ViewModel, _bindingAttrs: BindingAttrs, _forceRender?: boolean) => void;
12
+ export default showBinding;
13
+ //# sourceMappingURL=showBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showBinding.d.ts","sourceRoot":"","sources":["../../../src/showBinding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAEnE;;;;;;;;GAQG;AACH,QAAA,MAAM,WAAW,GAAI,OAAO,YAAY,EAAE,WAAW,SAAS,EAAE,eAAe,YAAY,EAAE,eAAe,OAAO,KAAG,IAqErH,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ /**
3
+ * switch-Binding
4
+ * @description
5
+ * DOM decleartive switch binding.
6
+ * switch parent element wrap direct child with case bindings
7
+ * @param {object} cache
8
+ * @param {object} viewModel
9
+ * @param {object} bindingAttrs
10
+ */
11
+ declare const switchBinding: (cache: BindingCache, viewModel: ViewModel, bindingAttrs: BindingAttrs, _forceRender?: boolean) => void;
12
+ export default switchBinding;
13
+ //# sourceMappingURL=switchBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switchBinding.d.ts","sourceRoot":"","sources":["../../../src/switchBinding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAW,MAAM,SAAS,CAAC;AAE7E;;;;;;;;GAQG;AACH,QAAA,MAAM,aAAa,GAAI,OAAO,YAAY,EAAE,WAAW,SAAS,EAAE,cAAc,YAAY,EAAE,eAAe,OAAO,KAAG,IA8EtH,CAAC;AAwBF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ /**
3
+ * textBinding
4
+ * * @description
5
+ * DOM decleartive text binding update dom textnode with viewModel data
6
+ * @param {object} cache
7
+ * @param {object} viewModel
8
+ * @param {object} bindingAttrs
9
+ * @param {boolean} forceRender
10
+ */
11
+ declare const textBinding: (cache: BindingCache, viewModel: ViewModel, bindingAttrs: BindingAttrs, forceRender: boolean) => void;
12
+ export default textBinding;
13
+ //# sourceMappingURL=textBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textBinding.d.ts","sourceRoot":"","sources":["../../../src/textBinding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAEnE;;;;;;;;GAQG;AACH,QAAA,MAAM,WAAW,GAAI,OAAO,YAAY,EAAE,WAAW,SAAS,EAAE,cAAc,YAAY,EAAE,aAAa,OAAO,KAAG,IAiBlH,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,111 @@
1
+ export type UnknownValue = unknown;
2
+ export interface PlainObject {
3
+ [key: string]: unknown;
4
+ }
5
+ export interface ViewModel {
6
+ [key: string]: unknown;
7
+ APP?: {
8
+ render?: (opt?: UpdateOption) => void | Promise<void>;
9
+ postProcessQueue?: Array<() => void>;
10
+ [key: string]: unknown;
11
+ };
12
+ $root?: ViewModel;
13
+ $data?: unknown;
14
+ $index?: number;
15
+ }
16
+ export interface ElementData {
17
+ viewModelPropValue?: unknown;
18
+ displayStyle?: string | null;
19
+ computedStyle?: string | null;
20
+ [key: string]: unknown;
21
+ }
22
+ export interface BindingCache {
23
+ el: HTMLElement;
24
+ dataKey?: string;
25
+ parameters?: unknown[];
26
+ filters?: string[];
27
+ isOnce?: boolean;
28
+ elementData?: ElementData;
29
+ bindingCache?: unknown;
30
+ type?: string;
31
+ fragment?: DocumentFragment;
32
+ hasIterationBindingCache?: boolean;
33
+ iterationBindingCache?: unknown;
34
+ parentElement?: HTMLElement | null;
35
+ previousNonTemplateElement?: Node | null;
36
+ nextNonTemplateElement?: Node | null;
37
+ iterator?: {
38
+ alias?: string;
39
+ dataKey?: string;
40
+ };
41
+ cases?: CaseData[];
42
+ [key: string]: unknown;
43
+ }
44
+ export interface CaseData {
45
+ el: HTMLElement;
46
+ dataKey?: string;
47
+ type: string;
48
+ isDefault?: boolean;
49
+ fragment?: DocumentFragment;
50
+ hasIterationBindingCache?: boolean;
51
+ iterationBindingCache?: unknown;
52
+ [key: string]: unknown;
53
+ }
54
+ export interface ElementCache {
55
+ [key: string]: BindingCache[];
56
+ }
57
+ export interface UpdateOption {
58
+ forceRender?: boolean;
59
+ attrBinding?: boolean;
60
+ cssBinding?: boolean;
61
+ textBinding?: boolean;
62
+ modelBinding?: boolean;
63
+ showBinding?: boolean;
64
+ ifBinding?: boolean;
65
+ switchBinding?: boolean;
66
+ forOfBinding?: boolean;
67
+ changeBinding?: boolean;
68
+ submitBinding?: boolean;
69
+ clickBinding?: boolean;
70
+ dblclickBinding?: boolean;
71
+ blurBinding?: boolean;
72
+ focusBinding?: boolean;
73
+ hoverBinding?: boolean;
74
+ inputBinding?: boolean;
75
+ [key: string]: unknown;
76
+ }
77
+ export interface DeferredObj<T = unknown> {
78
+ promise: Promise<T>;
79
+ resolve: (value?: T) => void;
80
+ reject: (reason?: unknown) => void;
81
+ }
82
+ export interface WrapMap {
83
+ [key: string]: [string, string, string];
84
+ }
85
+ export interface BindingAttrs {
86
+ [key: string]: string;
87
+ attr: string;
88
+ css: string;
89
+ text: string;
90
+ model: string;
91
+ show: string;
92
+ if: string;
93
+ switch: string;
94
+ case: string;
95
+ default: string;
96
+ forOf: string;
97
+ change: string;
98
+ submit: string;
99
+ click: string;
100
+ dblclick: string;
101
+ blur: string;
102
+ focus: string;
103
+ hover: string;
104
+ input: string;
105
+ tmp: string;
106
+ }
107
+ export interface BinderOptions {
108
+ reactive?: boolean;
109
+ trackChanges?: boolean;
110
+ }
111
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import type { ViewModel, BindingCache, ElementCache, DeferredObj, PlainObject } from './types';
2
+ export declare const REGEX: {
3
+ BAD_TAGS: RegExp;
4
+ FOR_OF: RegExp;
5
+ FUNCTION_PARAM: RegExp;
6
+ HTML_TAG: RegExp;
7
+ OBJECT_LITERAL: RegExp;
8
+ PIPE: RegExp;
9
+ WHITE_SPACES: RegExp;
10
+ LINE_BREAKS_TABS: RegExp;
11
+ };
12
+ export declare const isArray: (obj: unknown) => obj is unknown[];
13
+ export declare const isJsObject: (obj: unknown) => obj is object;
14
+ export declare const isPlainObject: (obj: unknown) => obj is PlainObject;
15
+ export declare const isObjectLiteralString: (str?: string) => boolean;
16
+ export declare const isEmptyObject: (obj: unknown) => boolean;
17
+ export declare const createHtmlFragment: (htmlString: unknown) => DocumentFragment | null;
18
+ export declare const generateElementCache: (bindingAttrs: PlainObject | unknown[]) => ElementCache;
19
+ /**
20
+ * getViewModelValue
21
+ * @description walk a object by provided string path. eg 'a.b.c'
22
+ * @param {object} viewModel
23
+ * @param {string} prop
24
+ * @return {object}
25
+ */
26
+ export declare const getViewModelValue: (viewModel: ViewModel, prop: string) => unknown;
27
+ /**
28
+ * setViewModelValue
29
+ * @description populate viewModel object by path string
30
+ * @param {object} obj
31
+ * @param {string} prop
32
+ * @param {string} value
33
+ * @return {call} underscore set
34
+ */
35
+ export declare const setViewModelValue: (obj: PlainObject, prop: string, value: unknown) => PlainObject;
36
+ export declare const getViewModelPropValue: (viewModel: ViewModel, bindingCache: BindingCache) => unknown;
37
+ export declare const parseStringToJson: (str: string) => PlainObject;
38
+ /**
39
+ * arrayRemoveMatch
40
+ * @description remove match items in fromArray out of toArray
41
+ * @param {array} toArray
42
+ * @param {array} frommArray
43
+ * @return {boolean}
44
+ */
45
+ export declare const arrayRemoveMatch: (toArray: unknown[], frommArray: unknown[]) => unknown[];
46
+ export declare const getFormData: ($form: HTMLFormElement) => PlainObject;
47
+ /**
48
+ * getFunctionParameterList
49
+ * @description convert parameter string to arrary
50
+ * eg. '("a","b","c")' > ["a","b","c"]
51
+ * @param {string} str
52
+ * @return {array} paramlist
53
+ */
54
+ export declare const getFunctionParameterList: (str: string) => string[] | undefined;
55
+ export declare const extractFilterList: (cacheData: Partial<BindingCache>) => Partial<BindingCache>;
56
+ export declare const invertObj: (sourceObj: PlainObject) => PlainObject;
57
+ export declare const createDeferredObj: () => DeferredObj;
58
+ /**
59
+ * debounce
60
+ * @description decorate a function to be debounce using requestAnimationFrame
61
+ * @param {function} fn
62
+ * @param {context} ctx
63
+ * @return {function}
64
+ */
65
+ export declare const debounceRaf: (fn: Function, ctx?: unknown) => Function;
66
+ /**
67
+ * getNodeAttrObj
68
+ * @description convert Node attributes object to a json object
69
+ * @param {object} node
70
+ * @param {array} skipList
71
+ * @return {object}
72
+ */
73
+ export declare const getNodeAttrObj: (node: HTMLElement, skipList?: string | string[]) => Record<string, string> | undefined;
74
+ /**
75
+ * extend
76
+ * @param {boolean} isDeepMerge
77
+ * @param {object} target
78
+ * @param {object} sources
79
+ * @return {object} merged object
80
+ */
81
+ export declare const extend: (isDeepMerge?: boolean, target?: PlainObject, ...sources: PlainObject[]) => PlainObject;
82
+ export declare const each: (obj: unknown[] | PlainObject, fn: Function) => void;
83
+ /**
84
+ * cloneDomNode
85
+ * @param {object} element
86
+ * @return {object} cloned element
87
+ * @description helper function to clone node
88
+ */
89
+ export declare const cloneDomNode: (element: HTMLElement) => HTMLElement;
90
+ /**
91
+ * insertAfter
92
+ * @param {object} parentNode
93
+ * @param {object} newNode
94
+ * @param {object} referenceNode
95
+ * @return {object} node
96
+ * @description helper function to insert new node before the reference node
97
+ */
98
+ export declare const insertAfter: (parentNode: Node, newNode: Node, referenceNode: Node | null) => Node;
99
+ export declare const resolveViewModelContext: (viewModel: ViewModel, datakey: string) => ViewModel;
100
+ export declare const resolveParamList: (viewModel: ViewModel, paramList: unknown[]) => unknown[] | undefined;
101
+ export declare const removeElement: (el: HTMLElement) => void;
102
+ export declare const emptyElement: (node: HTMLElement) => HTMLElement;
103
+ /**
104
+ * updateDomWithMinimalChanges
105
+ * @description Updates DOM by comparing existing nodes with new fragment
106
+ * Only modifies what changed - performs minimal DOM manipulation
107
+ * @param {HTMLElement} targetElement - The existing DOM element to update
108
+ * @param {DocumentFragment} newFragment - The new content to apply
109
+ */
110
+ export declare const updateDomWithMinimalChanges: (targetElement: HTMLElement, newFragment: DocumentFragment) => void;
111
+ export declare const throwErrorMessage: (err?: unknown, errorMessage?: string) => void;
112
+ /**
113
+ * parseBindingObjectString
114
+ * @description parse bining object string to object with value always stringify
115
+ * @param {string} str - eg '{ id: $data.id, name: $data.name }'
116
+ * @return {object} - eg { id: '$data.id', name: '$data.name'}
117
+ */
118
+ export declare const parseBindingObjectString: (str?: string) => Record<string, string> | null;
119
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAW,WAAW,EAAC,MAAM,SAAS,CAAC;AAItG,eAAO,MAAM,KAAK;;;;;;;;;CASjB,CAAC;AAcF,eAAO,MAAM,OAAO,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,OAAO,EAEpD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,MAEhD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,WAoBnD,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAI,MAAK,MAAW,KAAG,OAExD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,OAAO,KAAG,OAK5C,CAAC;AAcF,eAAO,MAAM,kBAAkB,GAAI,YAAY,OAAO,KAAG,gBAAgB,GAAG,IA6B3E,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,WAAW,GAAG,OAAO,EAAE,KAAG,YAc5E,CAAC;AA6CF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,SAAS,EAAE,MAAM,MAAM,KAAG,OAEtE,CAAC;AAmDF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,WAAW,EAAE,MAAM,MAAM,EAAE,OAAO,OAAO,KAAG,WAElF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,SAAS,EAAE,cAAc,YAAY,KAAG,OA8BxF,CAAC;AAkBF,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,WAI/C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,EAAE,EAAE,YAAY,OAAO,EAAE,KAAG,OAAO,EAInF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,eAAe,KAAG,WAqBpD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GAAI,KAAK,MAAM,KAAG,MAAM,EAAE,GAAG,SAcjE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,WAAW,OAAO,CAAC,YAAY,CAAC,KAAG,OAAO,CAAC,YAAY,CAuBxF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,WAAW,WAAW,KAAG,WASlD,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,WASpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,QAAQ,EAAE,MAAK,OAAc,KAAG,QAqC/D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,WAAW,EAAE,WAAW,MAAM,GAAG,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SA+BzG,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GAAI,cAAa,OAAe,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,WAAW,EAAE,KAAG,WA2BtG,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,KAAK,OAAO,EAAE,GAAG,WAAW,EAAE,IAAI,QAAQ,KAAG,IA8BjE,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,WAAW,KAAG,WAEnD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,YAAY,IAAI,EAAE,SAAS,IAAI,EAAE,eAAe,IAAI,GAAG,IAAI,KAAG,IAGzF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,WAAW,SAAS,EAAE,SAAS,MAAM,KAAG,SAc/E,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,SAAS,EAAE,WAAW,OAAO,EAAE,KAAG,OAAO,EAAE,GAAG,SAsBzF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,WAAW,KAAG,IAI/C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,WAAW,KAAG,WAOhD,CAAC;AA4EF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GACpC,eAAe,WAAW,EAC1B,aAAa,gBAAgB,KAC9B,IAyCF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAK,OAAc,EAAE,eAAc,MAAW,KAAG,IAOlF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,MAAK,MAAW,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IA2BpF,CAAC"}