@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,30 @@
1
+ {
2
+ "presets": [
3
+ [
4
+ "@babel/preset-env",
5
+ {
6
+ "targets": {
7
+ "browsers": ["> 0.5%", "last 2 versions", "not dead"]
8
+ },
9
+ "modules": false
10
+ }
11
+ ]
12
+ ],
13
+ "plugins": [
14
+ "@babel/plugin-transform-object-assign"
15
+ ],
16
+ "env": {
17
+ "test": {
18
+ "presets": [
19
+ [
20
+ "@babel/preset-env",
21
+ {
22
+ "targets": {
23
+ "node": "current"
24
+ }
25
+ }
26
+ ]
27
+ ]
28
+ }
29
+ }
30
+ }
@@ -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"}
@@ -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"}