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