@gogocat/data-bind 1.12.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 (271) 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 +2756 -2530
  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/globalConfig.html +131 -0
  147. package/examples/js/afterRenderDemo.js +190 -0
  148. package/examples/js/appTodo.js +46 -46
  149. package/examples/js/attrBindingDemo.js +2 -2
  150. package/examples/js/dbMonApp.js +24 -26
  151. package/examples/js/dbMonAppReact.jsx +79 -0
  152. package/examples/js/dbMonAppReactive.js +28 -0
  153. package/examples/js/fiberDemo.js +4 -4
  154. package/examples/js/filtersDemo.js +8 -8
  155. package/examples/js/forOfDemo.js +7 -9
  156. package/examples/js/forOfDemoComplex.js +44 -17
  157. package/examples/js/form.js +14 -14
  158. package/examples/js/globalConfig.js +117 -0
  159. package/examples/js/ifBindingDemo.js +16 -16
  160. package/examples/js/reactiveDemo.js +119 -0
  161. package/examples/js/switchBindingDemo.js +8 -8
  162. package/examples/react-dbmonster/dist/bundle.js +43 -0
  163. package/examples/react-dbmonster/package-lock.json +537 -0
  164. package/examples/react-dbmonster/package.json +16 -0
  165. package/examples/react-dbmonster/src/index.jsx +80 -0
  166. package/examples/reactiveDemo.html +127 -0
  167. package/examples/refreshRateTest.html +75 -75
  168. package/index.html +841 -0
  169. package/package.json +31 -34
  170. package/rollup.config.js +79 -36
  171. package/src/{_escape.js → _escape.ts} +19 -17
  172. package/src/{applyBinding.js → applyBinding.ts} +27 -18
  173. package/src/{attrBinding.js → attrBinding.ts} +14 -13
  174. package/src/{binder.js → binder.ts} +289 -181
  175. package/src/changeBinding.ts +93 -0
  176. package/src/{commentWrapper.js → commentWrapper.ts} +33 -30
  177. package/src/config.ts +107 -0
  178. package/src/{createBindingOption.js → createBindingOption.ts} +39 -15
  179. package/src/createEventBinding.ts +88 -0
  180. package/src/{cssBinding.js → cssBinding.ts} +13 -11
  181. package/src/{domWalker.js → domWalker.ts} +44 -30
  182. package/src/{forOfBinding.js → forOfBinding.ts} +4 -3
  183. package/src/hoverBinding.ts +84 -0
  184. package/src/{ifBinding.js → ifBinding.ts} +14 -12
  185. package/src/index.ts +53 -0
  186. package/src/{modelBinding.js → modelBinding.ts} +11 -9
  187. package/src/{postProcess.js → postProcess.ts} +6 -4
  188. package/src/{pubSub.js → pubSub.ts} +24 -21
  189. package/src/reactiveProxy.ts +285 -0
  190. package/src/{renderForOfBinding.js → renderForOfBinding.ts} +54 -32
  191. package/src/{renderIfBinding.js → renderIfBinding.ts} +41 -19
  192. package/src/{renderIteration.js → renderIteration.ts} +24 -8
  193. package/src/renderTemplate.ts +165 -0
  194. package/src/renderTemplatesBinding.ts +73 -0
  195. package/src/{showBinding.js → showBinding.ts} +4 -3
  196. package/src/{switchBinding.js → switchBinding.ts} +18 -15
  197. package/src/{textBinding.js → textBinding.ts} +5 -4
  198. package/src/types.ts +124 -0
  199. package/src/util.ts +810 -0
  200. package/test/css/reporter.css +9 -9
  201. package/test/globals.d.ts +19 -0
  202. package/test/helpers/testHelper.js +46 -11
  203. package/test/mocks/featureAdsResult.json +65 -65
  204. package/test/mocks/searchResult.json +57 -57
  205. package/test/specs/{attrBinding.spec.js → attrBinding.spec.ts} +103 -106
  206. package/test/specs/{binder.spec.js → binder.spec.ts} +29 -27
  207. package/test/specs/blurBinding.spec.ts +60 -0
  208. package/test/specs/chainableUse.spec.ts +125 -0
  209. package/test/specs/clickBinding.spec.ts +194 -0
  210. package/test/specs/{cssBinding.spec.js → cssBinding.spec.ts} +72 -79
  211. package/test/specs/{dataBindBootstrap.spec.js → dataBindBootstrap.spec.ts} +332 -313
  212. package/test/specs/{filter.spec.js → filter.spec.ts} +75 -76
  213. package/test/specs/{forOfBinding.spec.js → forOfBinding.spec.ts} +208 -219
  214. package/test/specs/formBinding.spec.ts +272 -0
  215. package/test/specs/ifBinding.spec.ts +165 -0
  216. package/test/specs/{nestedComponent.spec.js → nestedComponent.spec.ts} +88 -88
  217. package/test/specs/reactiveProxy.spec.ts +465 -0
  218. package/test/specs/{showBinding.spec.js → showBinding.spec.ts} +148 -149
  219. package/test/specs/{switchBinding.spec.js → switchBinding.spec.ts} +172 -173
  220. package/test/specs/templateBinding.spec.ts +273 -0
  221. package/test/specs/{textBinding.spec.js → textBinding.spec.ts} +47 -48
  222. package/test/tsconfig.json +31 -0
  223. package/test-output.txt +200 -0
  224. package/test-reactive.html +224 -0
  225. package/tsconfig.json +28 -0
  226. package/vendors/lodash.custom.js +4577 -4577
  227. package/vendors/lodash.custom.min.js +45 -45
  228. package/vitest.config.js +27 -0
  229. package/.eslintrc.js +0 -1
  230. package/.grunt/grunt-contrib-jasmine/boot.js +0 -161
  231. package/.grunt/grunt-contrib-jasmine/dist/js/dataBind.js +0 -9
  232. package/.grunt/grunt-contrib-jasmine/grunt-template-jasmine-istanbul/reporter.js +0 -23
  233. package/.grunt/grunt-contrib-jasmine/jasmine-html.js +0 -853
  234. package/.grunt/grunt-contrib-jasmine/jasmine.css +0 -271
  235. package/.grunt/grunt-contrib-jasmine/jasmine.js +0 -9761
  236. package/.grunt/grunt-contrib-jasmine/jasmine_favicon.png +0 -0
  237. package/.grunt/grunt-contrib-jasmine/json2.js +0 -489
  238. package/.grunt/grunt-contrib-jasmine/reporter.js +0 -107
  239. package/coverage/coverage.json +0 -1
  240. package/coverage/lcov/lcov-report/base.css +0 -213
  241. package/coverage/lcov/lcov-report/index.html +0 -93
  242. package/coverage/lcov/lcov-report/js/dataBind.js.html +0 -6596
  243. package/coverage/lcov/lcov-report/js/index.html +0 -93
  244. package/coverage/lcov/lcov-report/prettify.css +0 -1
  245. package/coverage/lcov/lcov-report/prettify.js +0 -1
  246. package/coverage/lcov/lcov-report/sort-arrow-sprite.png +0 -0
  247. package/coverage/lcov/lcov-report/sorter.js +0 -158
  248. package/coverage/lcov/lcov.info +0 -1991
  249. package/eslintrc.json +0 -40
  250. package/examples/bootstrap/js/bootstrap.min.js +0 -6
  251. package/examples/bootstrap/js/popper.min.js +0 -5
  252. package/examples/bootstrap/js/searchSuggestion.js +0 -58
  253. package/examples/bootstrap/js/typeahead.jquery.js +0 -1538
  254. package/gruntfile.js +0 -92
  255. package/gulpfile.js +0 -32
  256. package/src/applyBindingExport.js +0 -5
  257. package/src/changeBinding.js +0 -63
  258. package/src/config.js +0 -66
  259. package/src/createEventBinding.js +0 -46
  260. package/src/eventSystem.js +0 -46
  261. package/src/hoverBinding.js +0 -57
  262. package/src/index.js +0 -26
  263. package/src/renderTemplate.js +0 -128
  264. package/src/renderTemplatesBinding.js +0 -44
  265. package/src/util.js +0 -648
  266. package/test/specs/blurBinding.spec.js +0 -57
  267. package/test/specs/formBinding.spec.js +0 -316
  268. package/test/specs/ifBinding.spec.js +0 -169
  269. package/test/specs/templateBinding.spec.js +0 -117
  270. package/vendors/jasmine-jquery.js +0 -841
  271. package/vendors/jquery-3.2.1.min.js +0 -4
@@ -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,14 @@
1
+ /**
2
+ * _escape
3
+ * @description
4
+ * https://github.com/lodash/lodash/blob/master/escape.js
5
+ */
6
+ /**
7
+ * Converts the characters "&", "<", ">", '"', "'", and "\`", in `string` to
8
+ * their corresponding HTML entities.
9
+ * @param {string} string
10
+ * @return {string} string
11
+ */
12
+ declare const escape: (string: unknown) => string;
13
+ export default escape;
14
+ //# sourceMappingURL=_escape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_escape.d.ts","sourceRoot":"","sources":["../../../src/_escape.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkCH;;;;;GAKG;AACH,QAAA,MAAM,MAAM,GAAI,QAAQ,OAAO,KAAG,MAMjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ElementCache, UpdateOption, BindingAttrs, ViewModel } from './types';
2
+ interface ApplyBindingParams {
3
+ ctx: unknown;
4
+ elementCache: ElementCache;
5
+ updateOption: UpdateOption;
6
+ bindingAttrs: BindingAttrs;
7
+ viewModel: ViewModel;
8
+ }
9
+ declare const applyBinding: ({ ctx: _ctx, elementCache, updateOption, bindingAttrs, viewModel }: ApplyBindingParams) => void;
10
+ export default applyBinding;
11
+ //# sourceMappingURL=applyBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBinding.d.ts","sourceRoot":"","sources":["../../../src/applyBinding.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAe,MAAM,SAAS,CAAC;AAE/F,UAAU,kBAAkB;IACxB,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACxB;AAED,QAAA,MAAM,YAAY,GAAI,oEAAkE,kBAAkB,KAAG,IA2J5G,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { BindingCache, ViewModel } from './types';
2
+ /**
3
+ * attrBinding
4
+ * @description
5
+ * DOM decleartive attr binding. update elenment attributes
6
+ * @param {object} cache
7
+ * @param {object} viewModel
8
+ * @param {object} bindingAttrs
9
+ */
10
+ declare const attrBinding: (cache: BindingCache, viewModel: ViewModel, _bindingAttrs?: unknown, _forceRender?: unknown) => void;
11
+ export default attrBinding;
12
+ //# sourceMappingURL=attrBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attrBinding.d.ts","sourceRoot":"","sources":["../../../src/attrBinding.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAc,MAAM,SAAS,CAAC;AAElE;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,GAAI,OAAO,YAAiC,EAAE,WAAW,SAAS,EAAE,gBAAgB,OAAO,EAAE,eAAe,OAAO,KAAG,IA+EtI,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,67 @@
1
+ import type { ViewModel, ElementCache, UpdateOption, BindingAttrs, BinderOptions } from './types';
2
+ declare class Binder {
3
+ [key: string]: unknown;
4
+ initRendered: boolean;
5
+ compId: number;
6
+ $rootElement: HTMLElement;
7
+ viewModel: ViewModel;
8
+ bindingAttrs: BindingAttrs;
9
+ isServerRendered: boolean;
10
+ elementCache: ElementCache;
11
+ postProcessQueue: Array<() => void>;
12
+ render: (opt?: UpdateOption) => void;
13
+ isReactive: boolean;
14
+ originalViewModel: ViewModel;
15
+ private afterRenderCallbacks;
16
+ constructor($rootElement: HTMLElement, viewModel: ViewModel, bindingAttrs: BindingAttrs, options?: BinderOptions);
17
+ /**
18
+ * parseView
19
+ * @description
20
+ * @return {this}
21
+ * traver from $rootElement to find each data-bind-* element
22
+ * then apply data binding
23
+ */
24
+ parseView(): this;
25
+ /**
26
+ * updateElementCache
27
+ * @param {object} opt
28
+ * @description call createBindingCache to parse view and generate bindingCache
29
+ */
30
+ updateElementCache(opt?: {
31
+ allCache?: boolean;
32
+ templateCache?: boolean;
33
+ elementCache?: ElementCache;
34
+ isRenderedTemplates?: boolean;
35
+ }): void;
36
+ private _render;
37
+ /**
38
+ * Call all registered afterRender callbacks
39
+ * Called automatically after each render completes
40
+ */
41
+ private _callAfterRenderCallbacks;
42
+ /**
43
+ * Register a callback to be called after each render completes
44
+ * Useful for reactive mode where renders happen automatically
45
+ * @param callback Function to call after render completes
46
+ * @returns this for chaining
47
+ */
48
+ afterRender(callback: () => void): this;
49
+ /**
50
+ * Remove a specific afterRender callback
51
+ * @param callback The callback function to remove
52
+ * @returns this for chaining
53
+ */
54
+ removeAfterRender(callback: () => void): this;
55
+ /**
56
+ * Clear all afterRender callbacks
57
+ * @returns this for chaining
58
+ */
59
+ clearAfterRender(): this;
60
+ subscribe(eventName: string, fn: (...args: unknown[]) => void): this;
61
+ subscribeOnce(eventName: string, fn: (...args: unknown[]) => void): this;
62
+ unsubscribe(eventName?: string): this;
63
+ unsubscribeAll(): this;
64
+ publish(eventName?: string, ...args: unknown[]): this;
65
+ }
66
+ export default Binder;
67
+ //# sourceMappingURL=binder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../../src/binder.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAIhG,cAAM,MAAM;IACR,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,SAAS,CAAC;IACpC,OAAO,CAAC,oBAAoB,CAAoB;gBAEpC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,aAAkB;IA+DpH;;;;;;OAMG;IACI,SAAS,IAAI,IAAI;IAexB;;;;OAIG;IACI,kBAAkB,CACrB,GAAG,GAAE;QACD,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC5B,GACP,IAAI;IAoCP,OAAO,CAAC,OAAO;IA+Cf;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAQ9C;;;;OAIG;IACI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAQpD;;;OAGG;IACI,gBAAgB,IAAI,IAAI;IAKxB,SAAS,CAAC,SAAS,EAAE,MAAW,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAKzE,aAAa,CAAC,SAAS,EAAE,MAAW,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAK7E,WAAW,CAAC,SAAS,GAAE,MAAW,GAAG,IAAI;IAKzC,cAAc,IAAI,IAAI;IAKtB,OAAO,CAAC,SAAS,GAAE,MAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAInE;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { BindingCache, ViewModel, BindingAttrs } from './types';
2
+ interface ChangeBindingParams {
3
+ cache: BindingCache;
4
+ viewModel: ViewModel;
5
+ bindingAttrs: BindingAttrs;
6
+ forceRender: boolean;
7
+ type?: string;
8
+ }
9
+ /**
10
+ * changeBinding
11
+ * @description input element on change event binding. DOM -> viewModel update
12
+ * @param {object} cache
13
+ * @param {object} viewModel
14
+ * @param {object} bindingAttrs
15
+ * @param {boolean} forceRender
16
+ */
17
+ declare const changeBinding: ({ cache, viewModel, bindingAttrs, forceRender, type, }: ChangeBindingParams) => void;
18
+ export default changeBinding;
19
+ //# sourceMappingURL=changeBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeBinding.d.ts","sourceRoot":"","sources":["../../../src/changeBinding.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AA8BnE,UAAU,mBAAmB;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,aAAa,GAAI,wDAMpB,mBAAmB,KAAG,IA8BxB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { BindingCache } from './types';
2
+ declare const createClonedElementCache: (bindingData: BindingCache) => BindingCache;
3
+ declare const setCommentPrefix: (bindingData: BindingCache) => BindingCache;
4
+ /**
5
+ * setDocRangeEndAfter
6
+ * @param {object} node
7
+ * @param {object} bindingData
8
+ * @description
9
+ * recursive execution to find last wrapping comment node
10
+ * and set as bindingData.docRange.setEndAfter
11
+ * if not found deleteContents will has no operation
12
+ * @return {undefined}
13
+ */
14
+ declare const setDocRangeEndAfter: (node: Node | null, bindingData: BindingCache) => void;
15
+ /**
16
+ * wrapCommentAround
17
+ * @param {object} bindingData
18
+ * @param {Node} node
19
+ * @return {object} DOM fragment
20
+ * @description
21
+ * wrap frament with comment node
22
+ */
23
+ declare const wrapCommentAround: (bindingData: BindingCache, node: Node | DocumentFragment) => Node | DocumentFragment;
24
+ /**
25
+ * removeElemnetsByCommentWrap
26
+ * @param {object} bindingData
27
+ * @return {undefined}
28
+ * @description remove elments by range
29
+ */
30
+ declare const removeElemnetsByCommentWrap: (bindingData: BindingCache) => void;
31
+ /**
32
+ * removeDomTemplateElement
33
+ * @param {object} bindingData
34
+ * @return {object} null
35
+ */
36
+ declare const removeDomTemplateElement: (bindingData: BindingCache) => void;
37
+ declare const insertRenderedElements: (bindingData: BindingCache, fragment: DocumentFragment) => void;
38
+ export { createClonedElementCache, setCommentPrefix, wrapCommentAround, removeElemnetsByCommentWrap, removeDomTemplateElement, setDocRangeEndAfter, insertRenderedElements, };
39
+ //# sourceMappingURL=commentWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commentWrapper.d.ts","sourceRoot":"","sources":["../../../src/commentWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAE1C,QAAA,MAAM,wBAAwB,GAAI,aAAa,YAAY,KAAG,YAK7D,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAI,aAAa,YAAY,KAAG,YAuBrD,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,mBAAmB,GAAI,MAAM,IAAI,GAAG,IAAI,EAAE,aAAa,YAAY,KAAG,IAe3E,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,iBAAiB,GAAI,aAAa,YAAY,EAAE,MAAM,IAAI,GAAG,gBAAgB,KAAG,IAAI,GAAG,gBAuB5F,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,2BAA2B,GAAI,aAAa,YAAY,KAAG,IAoBhE,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,wBAAwB,GAAI,aAAa,YAAY,KAAG,IAO7D,CAAC;AAEF,QAAA,MAAM,sBAAsB,GAAI,aAAa,YAAY,EAAE,UAAU,gBAAgB,KAAG,IAavF,CAAC;AAEF,OAAO,EACH,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,GACzB,CAAC"}
@@ -0,0 +1,55 @@
1
+ export interface BindingAttrs {
2
+ comp: string;
3
+ tmp: string;
4
+ text: string;
5
+ click: string;
6
+ dblclick: string;
7
+ blur: string;
8
+ focus: string;
9
+ hover: string;
10
+ input: string;
11
+ change: string;
12
+ submit: string;
13
+ model: string;
14
+ show: string;
15
+ css: string;
16
+ attr: string;
17
+ forOf: string;
18
+ if: string;
19
+ switch: string;
20
+ case: string;
21
+ default: string;
22
+ }
23
+ export declare const bindingAttrs: BindingAttrs;
24
+ export declare const serverRenderedAttr = "data-server-rendered";
25
+ export declare const dataIndexAttr = "data-index";
26
+ export interface CommentPrefix {
27
+ forOf: string;
28
+ if: string;
29
+ case: string;
30
+ default: string;
31
+ }
32
+ export declare const commentPrefix: CommentPrefix;
33
+ export declare const commentSuffix = "_end";
34
+ export interface BindingDataReference {
35
+ rootDataKey: string;
36
+ currentData: string;
37
+ currentIndex: string;
38
+ mouseEnterHandlerName: string;
39
+ mouseLeaveHandlerName: string;
40
+ }
41
+ export declare const bindingDataReference: BindingDataReference;
42
+ export interface BindingUpdateConditions {
43
+ serverRendered: string;
44
+ init: string;
45
+ }
46
+ export declare const bindingUpdateConditions: BindingUpdateConditions;
47
+ export declare const maxDatakeyLength = 250;
48
+ export interface Constants {
49
+ filters: {
50
+ ONCE: string;
51
+ };
52
+ PARENT_REF: string;
53
+ }
54
+ export declare const constants: Constants;
55
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE,YAqB1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AACzD,eAAO,MAAM,aAAa,eAAe,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AAEF,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,oBAAoB,EAAE,oBAMlC,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,uBAAuB,EAAE,uBAGrC,CAAC;AAGF,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,SAAS,EAAE,SAKvB,CAAC"}
@@ -0,0 +1,32 @@
1
+ export interface BindingOption {
2
+ templateBinding?: boolean;
3
+ textBinding?: boolean;
4
+ cssBinding?: boolean;
5
+ ifBinding?: boolean;
6
+ showBinding?: boolean;
7
+ modelBinding?: boolean;
8
+ attrBinding?: boolean;
9
+ forOfBinding?: boolean;
10
+ switchBinding?: boolean;
11
+ changeBinding?: boolean;
12
+ clickBinding?: boolean;
13
+ dblclickBinding?: boolean;
14
+ blurBinding?: boolean;
15
+ focusBinding?: boolean;
16
+ hoverBinding?: boolean;
17
+ inputBinding?: boolean;
18
+ submitBinding?: boolean;
19
+ forceRender?: boolean;
20
+ [key: string]: unknown;
21
+ }
22
+ /**
23
+ * createBindingOption
24
+ * @param {string} condition
25
+ * @param {object} opt
26
+ * @description
27
+ * generate binding update option object by condition
28
+ * @return {object} updateOption
29
+ */
30
+ declare const createBindingOption: (condition?: string, opt?: BindingOption) => BindingOption;
31
+ export default createBindingOption;
32
+ //# sourceMappingURL=createBindingOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBindingOption.d.ts","sourceRoot":"","sources":["../../../src/createBindingOption.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,GAAI,YAAW,MAAW,EAAE,MAAK,aAAkB,KAAG,aAqD9E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { BindingCache, ViewModel } from './types';
2
+ interface CreateEventBindingParams {
3
+ cache?: BindingCache;
4
+ forceRender?: boolean;
5
+ type?: string;
6
+ viewModel?: ViewModel;
7
+ }
8
+ declare const createEventBinding: ({ cache, forceRender, type, viewModel, }: CreateEventBindingParams) => void;
9
+ export default createEventBinding;
10
+ //# sourceMappingURL=createEventBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createEventBinding.d.ts","sourceRoot":"","sources":["../../../src/createEventBinding.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAwBrD,UAAU,wBAAwB;IAC9B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,QAAA,MAAM,kBAAkB,GAAI,0CAKzB,wBAAwB,KAAG,IA2C7B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}