@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,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"}