vscroll 1.6.3 → 1.8.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/dist/bundles/vscroll.esm5.js +5854 -5705
- package/dist/bundles/vscroll.esm5.js.map +1 -1
- package/dist/bundles/vscroll.esm5.min.js +2 -2
- package/dist/bundles/vscroll.esm5.min.js.map +1 -1
- package/dist/bundles/vscroll.esm6.js +5341 -5194
- package/dist/bundles/vscroll.esm6.js.map +1 -1
- package/dist/bundles/vscroll.esm6.min.js +2 -2
- package/dist/bundles/vscroll.esm6.min.js.map +1 -1
- package/dist/bundles/vscroll.umd.js +5858 -5710
- package/dist/bundles/vscroll.umd.js.map +1 -1
- package/dist/bundles/vscroll.umd.min.js +2 -2
- package/dist/bundles/vscroll.umd.min.js.map +1 -1
- package/dist/esm2015/classes/adapter/context.js +44 -43
- package/dist/esm2015/classes/adapter/context.js.map +1 -1
- package/dist/esm2015/classes/adapter/props.js +300 -300
- package/dist/esm2015/classes/adapter/props.js.map +1 -1
- package/dist/esm2015/classes/adapter/wanted.js +28 -28
- package/dist/esm2015/classes/adapter/wanted.js.map +1 -1
- package/dist/esm2015/classes/adapter.js +486 -487
- package/dist/esm2015/classes/adapter.js.map +1 -1
- package/dist/esm2015/classes/buffer/cache.js +249 -246
- package/dist/esm2015/classes/buffer/cache.js.map +1 -1
- package/dist/esm2015/classes/buffer/checkCall.js +47 -48
- package/dist/esm2015/classes/buffer/checkCall.js.map +1 -1
- package/dist/esm2015/classes/buffer/defaultSize.js +128 -127
- package/dist/esm2015/classes/buffer/defaultSize.js.map +1 -1
- package/dist/esm2015/classes/buffer.js +343 -342
- package/dist/esm2015/classes/buffer.js.map +1 -1
- package/dist/esm2015/classes/datasource.js +36 -24
- package/dist/esm2015/classes/datasource.js.map +1 -1
- package/dist/esm2015/classes/domRoutines.js +160 -160
- package/dist/esm2015/classes/domRoutines.js.map +1 -1
- package/dist/esm2015/classes/item.js +61 -61
- package/dist/esm2015/classes/item.js.map +1 -1
- package/dist/esm2015/classes/logger.js +229 -186
- package/dist/esm2015/classes/logger.js.map +1 -1
- package/dist/esm2015/classes/paddings.js +76 -72
- package/dist/esm2015/classes/paddings.js.map +1 -1
- package/dist/esm2015/classes/reactive.js +54 -54
- package/dist/esm2015/classes/reactive.js.map +1 -1
- package/dist/esm2015/classes/settings.js +39 -39
- package/dist/esm2015/classes/settings.js.map +1 -1
- package/dist/esm2015/classes/state/clip.js +16 -16
- package/dist/esm2015/classes/state/clip.js.map +1 -1
- package/dist/esm2015/classes/state/cycle.js +60 -60
- package/dist/esm2015/classes/state/cycle.js.map +1 -1
- package/dist/esm2015/classes/state/fetch.js +124 -122
- package/dist/esm2015/classes/state/fetch.js.map +1 -1
- package/dist/esm2015/classes/state/render.js +14 -14
- package/dist/esm2015/classes/state/render.js.map +1 -1
- package/dist/esm2015/classes/state/scroll.js +30 -30
- package/dist/esm2015/classes/state/scroll.js.map +1 -1
- package/dist/esm2015/classes/state.js +64 -62
- package/dist/esm2015/classes/state.js.map +1 -1
- package/dist/esm2015/classes/viewport.js +74 -72
- package/dist/esm2015/classes/viewport.js.map +1 -1
- package/dist/esm2015/index.js +9 -9
- package/dist/esm2015/index.js.map +1 -1
- package/dist/esm2015/inputs/adapter.js +262 -242
- package/dist/esm2015/inputs/adapter.js.map +1 -1
- package/dist/esm2015/inputs/common.js +11 -11
- package/dist/esm2015/inputs/common.js.map +1 -1
- package/dist/esm2015/inputs/datasource.js +20 -20
- package/dist/esm2015/inputs/datasource.js.map +1 -1
- package/dist/esm2015/inputs/index.js +7 -7
- package/dist/esm2015/inputs/index.js.map +1 -1
- package/dist/esm2015/inputs/settings.js +151 -146
- package/dist/esm2015/inputs/settings.js.map +1 -1
- package/dist/esm2015/inputs/validation.js +365 -374
- package/dist/esm2015/inputs/validation.js.map +1 -1
- package/dist/esm2015/inputs/workflow.js +30 -30
- package/dist/esm2015/inputs/workflow.js.map +1 -1
- package/dist/esm2015/interfaces/adapter.js +1 -1
- package/dist/esm2015/interfaces/adapter.js.map +1 -1
- package/dist/esm2015/interfaces/datasource.js +1 -1
- package/dist/esm2015/interfaces/datasource.js.map +1 -1
- package/dist/esm2015/interfaces/index.js +1 -1
- package/dist/esm2015/interfaces/index.js.map +1 -1
- package/dist/esm2015/interfaces/item.js +1 -1
- package/dist/esm2015/interfaces/item.js.map +1 -1
- package/dist/esm2015/interfaces/process.js +1 -1
- package/dist/esm2015/interfaces/process.js.map +1 -1
- package/dist/esm2015/interfaces/routines.js +1 -1
- package/dist/esm2015/interfaces/routines.js.map +1 -1
- package/dist/esm2015/interfaces/settings.js +1 -1
- package/dist/esm2015/interfaces/settings.js.map +1 -1
- package/dist/esm2015/interfaces/state.js +1 -1
- package/dist/esm2015/interfaces/state.js.map +1 -1
- package/dist/esm2015/interfaces/validation.js +1 -1
- package/dist/esm2015/interfaces/validation.js.map +1 -1
- package/dist/esm2015/interfaces/workflow.js +1 -1
- package/dist/esm2015/interfaces/workflow.js.map +1 -1
- package/dist/esm2015/processes/adapter/append.js +37 -36
- package/dist/esm2015/processes/adapter/append.js.map +1 -1
- package/dist/esm2015/processes/adapter/check.js +33 -32
- package/dist/esm2015/processes/adapter/check.js.map +1 -1
- package/dist/esm2015/processes/adapter/clip.js +12 -12
- package/dist/esm2015/processes/adapter/clip.js.map +1 -1
- package/dist/esm2015/processes/adapter/fix.js +79 -77
- package/dist/esm2015/processes/adapter/fix.js.map +1 -1
- package/dist/esm2015/processes/adapter/insert.js +74 -73
- package/dist/esm2015/processes/adapter/insert.js.map +1 -1
- package/dist/esm2015/processes/adapter/pause.js +22 -22
- package/dist/esm2015/processes/adapter/pause.js.map +1 -1
- package/dist/esm2015/processes/adapter/reload.js +19 -19
- package/dist/esm2015/processes/adapter/reload.js.map +1 -1
- package/dist/esm2015/processes/adapter/remove.js +105 -102
- package/dist/esm2015/processes/adapter/remove.js.map +1 -1
- package/dist/esm2015/processes/adapter/replace.js +39 -39
- package/dist/esm2015/processes/adapter/replace.js.map +1 -1
- package/dist/esm2015/processes/adapter/reset.js +35 -35
- package/dist/esm2015/processes/adapter/reset.js.map +1 -1
- package/dist/esm2015/processes/adapter/update.js +44 -43
- package/dist/esm2015/processes/adapter/update.js.map +1 -1
- package/dist/esm2015/processes/adjust.js +146 -141
- package/dist/esm2015/processes/adjust.js.map +1 -1
- package/dist/esm2015/processes/clip.js +49 -49
- package/dist/esm2015/processes/clip.js.map +1 -1
- package/dist/esm2015/processes/end.js +53 -52
- package/dist/esm2015/processes/end.js.map +1 -1
- package/dist/esm2015/processes/fetch.js +93 -91
- package/dist/esm2015/processes/fetch.js.map +1 -1
- package/dist/esm2015/processes/index.js +24 -24
- package/dist/esm2015/processes/index.js.map +1 -1
- package/dist/esm2015/processes/init.js +14 -14
- package/dist/esm2015/processes/init.js.map +1 -1
- package/dist/esm2015/processes/misc/base.js +29 -30
- package/dist/esm2015/processes/misc/base.js.map +1 -1
- package/dist/esm2015/processes/misc/enums.js +36 -36
- package/dist/esm2015/processes/misc/enums.js.map +1 -1
- package/dist/esm2015/processes/misc/index.js +2 -2
- package/dist/esm2015/processes/misc/index.js.map +1 -1
- package/dist/esm2015/processes/postFetch.js +66 -65
- package/dist/esm2015/processes/postFetch.js.map +1 -1
- package/dist/esm2015/processes/preClip.js +86 -85
- package/dist/esm2015/processes/preClip.js.map +1 -1
- package/dist/esm2015/processes/preFetch.js +253 -240
- package/dist/esm2015/processes/preFetch.js.map +1 -1
- package/dist/esm2015/processes/render.js +56 -54
- package/dist/esm2015/processes/render.js.map +1 -1
- package/dist/esm2015/processes/scroll.js +106 -97
- package/dist/esm2015/processes/scroll.js.map +1 -1
- package/dist/esm2015/processes/start.js +11 -11
- package/dist/esm2015/processes/start.js.map +1 -1
- package/dist/esm2015/scroller.js +91 -86
- package/dist/esm2015/scroller.js.map +1 -1
- package/dist/esm2015/version.js +4 -4
- package/dist/esm2015/version.js.map +1 -1
- package/dist/esm2015/workflow-transducer.js +219 -218
- package/dist/esm2015/workflow-transducer.js.map +1 -1
- package/dist/esm2015/workflow.js +185 -174
- package/dist/esm2015/workflow.js.map +1 -1
- package/dist/esm5/classes/adapter/context.js +51 -50
- package/dist/esm5/classes/adapter/context.js.map +1 -1
- package/dist/esm5/classes/adapter/props.js +300 -300
- package/dist/esm5/classes/adapter/props.js.map +1 -1
- package/dist/esm5/classes/adapter/wanted.js +29 -29
- package/dist/esm5/classes/adapter/wanted.js.map +1 -1
- package/dist/esm5/classes/adapter.js +538 -535
- package/dist/esm5/classes/adapter.js.map +1 -1
- package/dist/esm5/classes/buffer/cache.js +262 -260
- package/dist/esm5/classes/buffer/cache.js.map +1 -1
- package/dist/esm5/classes/buffer/checkCall.js +53 -56
- package/dist/esm5/classes/buffer/checkCall.js.map +1 -1
- package/dist/esm5/classes/buffer/defaultSize.js +146 -145
- package/dist/esm5/classes/buffer/defaultSize.js.map +1 -1
- package/dist/esm5/classes/buffer.js +410 -409
- package/dist/esm5/classes/buffer.js.map +1 -1
- package/dist/esm5/classes/datasource.js +47 -31
- package/dist/esm5/classes/datasource.js.map +1 -1
- package/dist/esm5/classes/domRoutines.js +165 -165
- package/dist/esm5/classes/domRoutines.js.map +1 -1
- package/dist/esm5/classes/item.js +76 -76
- package/dist/esm5/classes/item.js.map +1 -1
- package/dist/esm5/classes/logger.js +251 -210
- package/dist/esm5/classes/logger.js.map +1 -1
- package/dist/esm5/classes/paddings.js +84 -80
- package/dist/esm5/classes/paddings.js.map +1 -1
- package/dist/esm5/classes/reactive.js +69 -69
- package/dist/esm5/classes/reactive.js.map +1 -1
- package/dist/esm5/classes/settings.js +47 -47
- package/dist/esm5/classes/settings.js.map +1 -1
- package/dist/esm5/classes/state/clip.js +22 -22
- package/dist/esm5/classes/state/clip.js.map +1 -1
- package/dist/esm5/classes/state/cycle.js +75 -75
- package/dist/esm5/classes/state/cycle.js.map +1 -1
- package/dist/esm5/classes/state/fetch.js +150 -148
- package/dist/esm5/classes/state/fetch.js.map +1 -1
- package/dist/esm5/classes/state/render.js +20 -20
- package/dist/esm5/classes/state/render.js.map +1 -1
- package/dist/esm5/classes/state/scroll.js +32 -32
- package/dist/esm5/classes/state/scroll.js.map +1 -1
- package/dist/esm5/classes/state.js +71 -69
- package/dist/esm5/classes/state.js.map +1 -1
- package/dist/esm5/classes/viewport.js +80 -79
- package/dist/esm5/classes/viewport.js.map +1 -1
- package/dist/esm5/index.js +9 -9
- package/dist/esm5/index.js.map +1 -1
- package/dist/esm5/inputs/adapter.js +263 -243
- package/dist/esm5/inputs/adapter.js.map +1 -1
- package/dist/esm5/inputs/common.js +11 -11
- package/dist/esm5/inputs/common.js.map +1 -1
- package/dist/esm5/inputs/datasource.js +21 -21
- package/dist/esm5/inputs/datasource.js.map +1 -1
- package/dist/esm5/inputs/index.js +7 -7
- package/dist/esm5/inputs/index.js.map +1 -1
- package/dist/esm5/inputs/settings.js +152 -147
- package/dist/esm5/inputs/settings.js.map +1 -1
- package/dist/esm5/inputs/validation.js +399 -396
- package/dist/esm5/inputs/validation.js.map +1 -1
- package/dist/esm5/inputs/workflow.js +31 -31
- package/dist/esm5/inputs/workflow.js.map +1 -1
- package/dist/esm5/interfaces/adapter.js +1 -1
- package/dist/esm5/interfaces/adapter.js.map +1 -1
- package/dist/esm5/interfaces/datasource.js +1 -1
- package/dist/esm5/interfaces/datasource.js.map +1 -1
- package/dist/esm5/interfaces/index.js +1 -1
- package/dist/esm5/interfaces/index.js.map +1 -1
- package/dist/esm5/interfaces/item.js +1 -1
- package/dist/esm5/interfaces/item.js.map +1 -1
- package/dist/esm5/interfaces/process.js +1 -1
- package/dist/esm5/interfaces/process.js.map +1 -1
- package/dist/esm5/interfaces/routines.js +1 -1
- package/dist/esm5/interfaces/routines.js.map +1 -1
- package/dist/esm5/interfaces/settings.js +1 -1
- package/dist/esm5/interfaces/settings.js.map +1 -1
- package/dist/esm5/interfaces/state.js +1 -1
- package/dist/esm5/interfaces/state.js.map +1 -1
- package/dist/esm5/interfaces/validation.js +1 -1
- package/dist/esm5/interfaces/validation.js.map +1 -1
- package/dist/esm5/interfaces/workflow.js +1 -1
- package/dist/esm5/interfaces/workflow.js.map +1 -1
- package/dist/esm5/processes/adapter/append.js +45 -44
- package/dist/esm5/processes/adapter/append.js.map +1 -1
- package/dist/esm5/processes/adapter/check.js +40 -39
- package/dist/esm5/processes/adapter/check.js.map +1 -1
- package/dist/esm5/processes/adapter/clip.js +19 -19
- package/dist/esm5/processes/adapter/clip.js.map +1 -1
- package/dist/esm5/processes/adapter/fix.js +91 -89
- package/dist/esm5/processes/adapter/fix.js.map +1 -1
- package/dist/esm5/processes/adapter/insert.js +82 -81
- package/dist/esm5/processes/adapter/insert.js.map +1 -1
- package/dist/esm5/processes/adapter/pause.js +29 -29
- package/dist/esm5/processes/adapter/pause.js.map +1 -1
- package/dist/esm5/processes/adapter/reload.js +26 -26
- package/dist/esm5/processes/adapter/reload.js.map +1 -1
- package/dist/esm5/processes/adapter/remove.js +116 -115
- package/dist/esm5/processes/adapter/remove.js.map +1 -1
- package/dist/esm5/processes/adapter/replace.js +47 -47
- package/dist/esm5/processes/adapter/replace.js.map +1 -1
- package/dist/esm5/processes/adapter/reset.js +42 -42
- package/dist/esm5/processes/adapter/reset.js.map +1 -1
- package/dist/esm5/processes/adapter/update.js +64 -59
- package/dist/esm5/processes/adapter/update.js.map +1 -1
- package/dist/esm5/processes/adjust.js +157 -152
- package/dist/esm5/processes/adjust.js.map +1 -1
- package/dist/esm5/processes/clip.js +60 -60
- package/dist/esm5/processes/clip.js.map +1 -1
- package/dist/esm5/processes/end.js +64 -63
- package/dist/esm5/processes/end.js.map +1 -1
- package/dist/esm5/processes/fetch.js +104 -102
- package/dist/esm5/processes/fetch.js.map +1 -1
- package/dist/esm5/processes/index.js +24 -24
- package/dist/esm5/processes/index.js.map +1 -1
- package/dist/esm5/processes/init.js +21 -21
- package/dist/esm5/processes/init.js.map +1 -1
- package/dist/esm5/processes/misc/base.js +43 -44
- package/dist/esm5/processes/misc/base.js.map +1 -1
- package/dist/esm5/processes/misc/enums.js +36 -36
- package/dist/esm5/processes/misc/enums.js.map +1 -1
- package/dist/esm5/processes/misc/index.js +2 -2
- package/dist/esm5/processes/misc/index.js.map +1 -1
- package/dist/esm5/processes/postFetch.js +73 -74
- package/dist/esm5/processes/postFetch.js.map +1 -1
- package/dist/esm5/processes/preClip.js +95 -94
- package/dist/esm5/processes/preClip.js.map +1 -1
- package/dist/esm5/processes/preFetch.js +259 -247
- package/dist/esm5/processes/preFetch.js.map +1 -1
- package/dist/esm5/processes/render.js +63 -63
- package/dist/esm5/processes/render.js.map +1 -1
- package/dist/esm5/processes/scroll.js +113 -107
- package/dist/esm5/processes/scroll.js.map +1 -1
- package/dist/esm5/processes/start.js +18 -18
- package/dist/esm5/processes/start.js.map +1 -1
- package/dist/esm5/scroller.js +104 -100
- package/dist/esm5/scroller.js.map +1 -1
- package/dist/esm5/version.js +4 -4
- package/dist/esm5/version.js.map +1 -1
- package/dist/esm5/workflow-transducer.js +221 -220
- package/dist/esm5/workflow-transducer.js.map +1 -1
- package/dist/esm5/workflow.js +204 -198
- package/dist/esm5/workflow.js.map +1 -1
- package/dist/typings/classes/adapter/context.d.ts +4 -4
- package/dist/typings/classes/adapter/props.d.ts +52 -52
- package/dist/typings/classes/adapter/wanted.d.ts +14 -14
- package/dist/typings/classes/adapter.d.ts +79 -79
- package/dist/typings/classes/buffer/cache.d.ts +94 -95
- package/dist/typings/classes/buffer/checkCall.d.ts +12 -12
- package/dist/typings/classes/buffer/defaultSize.d.ts +32 -32
- package/dist/typings/classes/buffer.d.ts +64 -64
- package/dist/typings/classes/datasource.d.ts +11 -11
- package/dist/typings/classes/domRoutines.d.ts +36 -36
- package/dist/typings/classes/item.d.ts +28 -28
- package/dist/typings/classes/logger.d.ts +32 -28
- package/dist/typings/classes/paddings.d.ts +22 -22
- package/dist/typings/classes/reactive.d.ts +21 -21
- package/dist/typings/classes/settings.d.ts +126 -119
- package/dist/typings/classes/state/clip.d.ts +9 -9
- package/dist/typings/classes/state/cycle.d.ts +29 -29
- package/dist/typings/classes/state/fetch.d.ts +62 -62
- package/dist/typings/classes/state/render.d.ts +9 -9
- package/dist/typings/classes/state/scroll.d.ts +16 -16
- package/dist/typings/classes/state.d.ts +29 -29
- package/dist/typings/classes/viewport.d.ts +32 -32
- package/dist/typings/index.d.ts +10 -10
- package/dist/typings/inputs/adapter.d.ts +5 -5
- package/dist/typings/inputs/common.d.ts +9 -9
- package/dist/typings/inputs/datasource.d.ts +7 -7
- package/dist/typings/inputs/index.d.ts +7 -7
- package/dist/typings/inputs/settings.d.ts +42 -41
- package/dist/typings/inputs/validation.d.ts +82 -83
- package/dist/typings/inputs/workflow.d.ts +9 -9
- package/dist/typings/interfaces/adapter.d.ts +164 -164
- package/dist/typings/interfaces/datasource.d.ts +28 -28
- package/dist/typings/interfaces/index.d.ts +10 -10
- package/dist/typings/interfaces/item.d.ts +8 -8
- package/dist/typings/interfaces/process.d.ts +35 -35
- package/dist/typings/interfaces/routines.d.ts +166 -166
- package/dist/typings/interfaces/settings.d.ts +32 -31
- package/dist/typings/interfaces/state.d.ts +24 -24
- package/dist/typings/interfaces/validation.d.ts +33 -33
- package/dist/typings/interfaces/workflow.d.ts +53 -53
- package/dist/typings/processes/adapter/append.d.ts +14 -14
- package/dist/typings/processes/adapter/check.d.ts +6 -6
- package/dist/typings/processes/adapter/clip.d.ts +7 -7
- package/dist/typings/processes/adapter/fix.d.ts +13 -13
- package/dist/typings/processes/adapter/insert.d.ts +11 -11
- package/dist/typings/processes/adapter/pause.d.ts +8 -8
- package/dist/typings/processes/adapter/reload.d.ts +6 -6
- package/dist/typings/processes/adapter/remove.d.ts +11 -11
- package/dist/typings/processes/adapter/replace.d.ts +8 -8
- package/dist/typings/processes/adapter/reset.d.ts +7 -7
- package/dist/typings/processes/adapter/update.d.ts +8 -8
- package/dist/typings/processes/adjust.d.ts +10 -10
- package/dist/typings/processes/clip.d.ts +7 -7
- package/dist/typings/processes/end.d.ts +10 -10
- package/dist/typings/processes/fetch.d.ts +18 -18
- package/dist/typings/processes/index.d.ts +24 -24
- package/dist/typings/processes/init.d.ts +7 -7
- package/dist/typings/processes/misc/base.d.ts +4 -4
- package/dist/typings/processes/misc/enums.d.ts +33 -33
- package/dist/typings/processes/misc/index.d.ts +2 -2
- package/dist/typings/processes/postFetch.d.ts +8 -8
- package/dist/typings/processes/preClip.d.ts +12 -12
- package/dist/typings/processes/preFetch.d.ts +17 -17
- package/dist/typings/processes/render.d.ts +9 -9
- package/dist/typings/processes/scroll.d.ts +13 -13
- package/dist/typings/processes/start.d.ts +6 -6
- package/dist/typings/scroller.d.ts +26 -26
- package/dist/typings/version.d.ts +5 -5
- package/dist/typings/workflow-transducer.d.ts +2 -2
- package/dist/typings/workflow.d.ts +30 -29
- package/package.json +72 -69
|
@@ -1,55 +1,57 @@
|
|
|
1
|
-
import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
|
|
2
|
-
export default class Render extends BaseProcessFactory(CommonProcess.render) {
|
|
3
|
-
static run(scroller) {
|
|
4
|
-
const { workflow, state
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
item.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
1
|
+
import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
|
|
2
|
+
export default class Render extends BaseProcessFactory(CommonProcess.render) {
|
|
3
|
+
static run(scroller) {
|
|
4
|
+
const { workflow, state, viewport, routines } = scroller;
|
|
5
|
+
const { cycle, render, scroll, fetch } = state;
|
|
6
|
+
scroller.logger.stat('before new items render');
|
|
7
|
+
if (scroll.positionBeforeAsync === null) {
|
|
8
|
+
scroll.positionBeforeAsync = viewport.scrollPosition;
|
|
9
|
+
}
|
|
10
|
+
render.cancel = routines.render(() => {
|
|
11
|
+
render.cancel = null;
|
|
12
|
+
if (Render.doRender(scroller)) {
|
|
13
|
+
workflow.call({
|
|
14
|
+
process: Render.process,
|
|
15
|
+
status: render.noSize ? ProcessStatus.done : ProcessStatus.next,
|
|
16
|
+
payload: { process: cycle.initiator }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
workflow.call({
|
|
21
|
+
process: Render.process,
|
|
22
|
+
status: ProcessStatus.error,
|
|
23
|
+
payload: { error: 'Can not associate item with element' }
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}, { items: fetch.items.map(i => i.get()) });
|
|
27
|
+
}
|
|
28
|
+
static doRender(scroller) {
|
|
29
|
+
const { state, viewport, buffer, logger } = scroller;
|
|
30
|
+
const { fetch, render } = state;
|
|
31
|
+
render.positionBefore = viewport.scrollPosition;
|
|
32
|
+
if (!fetch.isCheck) {
|
|
33
|
+
render.sizeBefore = viewport.getScrollableSize();
|
|
34
|
+
if (!fetch.items.every(item => Render.processElement(scroller, item))) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
buffer.checkDefaultSize();
|
|
39
|
+
render.sizeAfter = viewport.getScrollableSize();
|
|
40
|
+
logger.stat('after new items render');
|
|
41
|
+
logger.log(() => (render.noSize ? 'viewport size has not been changed' : void 0));
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
static processElement(scroller, item) {
|
|
45
|
+
const { viewport, buffer } = scroller;
|
|
46
|
+
const element = viewport.findItemElementById(item.nodeId);
|
|
47
|
+
if (!element) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
item.element = element;
|
|
51
|
+
item.makeVisible();
|
|
52
|
+
item.setSize(buffer.getSizeByIndex(item.$index));
|
|
53
|
+
buffer.cacheItem(item);
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
55
57
|
//# sourceMappingURL=render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/processes/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIhF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/processes/render.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { Item } from '../classes/item';\n\nexport default class Render extends BaseProcessFactory(CommonProcess.render) {\n static run(scroller: Scroller): void {\n const { workflow, state, viewport, routines } = scroller;\n const { cycle, render, scroll, fetch } = state;\n scroller.logger.stat('before new items render');\n if (scroll.positionBeforeAsync === null) {\n scroll.positionBeforeAsync = viewport.scrollPosition;\n }\n render.cancel = routines.render(\n () => {\n render.cancel = null;\n if (Render.doRender(scroller)) {\n workflow.call({\n process: Render.process,\n status: render.noSize ? ProcessStatus.done : ProcessStatus.next,\n payload: { process: cycle.initiator }\n });\n } else {\n workflow.call({\n process: Render.process,\n status: ProcessStatus.error,\n payload: { error: 'Can not associate item with element' }\n });\n }\n },\n { items: fetch.items.map(i => i.get()) }\n );\n }\n\n static doRender(scroller: Scroller): boolean {\n const { state, viewport, buffer, logger } = scroller;\n const { fetch, render } = state;\n render.positionBefore = viewport.scrollPosition;\n if (!fetch.isCheck) {\n render.sizeBefore = viewport.getScrollableSize();\n if (!fetch.items.every(item => Render.processElement(scroller, item))) {\n return false;\n }\n }\n buffer.checkDefaultSize();\n render.sizeAfter = viewport.getScrollableSize();\n logger.stat('after new items render');\n logger.log(() => (render.noSize ? 'viewport size has not been changed' : void 0));\n return true;\n }\n\n static processElement(scroller: Scroller, item: Item): boolean {\n const { viewport, buffer } = scroller;\n const element = viewport.findItemElementById(item.nodeId);\n if (!element) {\n return false;\n }\n item.element = element as HTMLElement;\n item.makeVisible();\n item.setSize(buffer.getSizeByIndex(item.$index));\n buffer.cacheItem(item);\n return true;\n }\n}\n"]}
|
|
@@ -1,98 +1,107 @@
|
|
|
1
|
-
import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
|
|
2
|
-
import { Direction } from '../inputs/index';
|
|
3
|
-
export default class Scroll extends BaseProcessFactory(CommonProcess.scroll) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
1
|
+
import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
|
|
2
|
+
import { Direction } from '../inputs/index';
|
|
3
|
+
export default class Scroll extends BaseProcessFactory(CommonProcess.scroll) {
|
|
4
|
+
static run(scroller, _payload) {
|
|
5
|
+
const { workflow, viewport } = scroller;
|
|
6
|
+
const position = viewport.scrollPosition;
|
|
7
|
+
if (Scroll.onSynthetic(scroller, position)) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
Scroll.onThrottle(scroller, position, () => Scroll.onScroll(scroller, workflow));
|
|
11
|
+
}
|
|
12
|
+
static onSynthetic(scroller, position) {
|
|
13
|
+
const { scroll } = scroller.state;
|
|
14
|
+
const synthPos = scroll.syntheticPosition;
|
|
15
|
+
if (synthPos !== null) {
|
|
16
|
+
if (scroll.syntheticFulfill) {
|
|
17
|
+
scroll.syntheticPosition = null;
|
|
18
|
+
}
|
|
19
|
+
if (!scroll.syntheticFulfill || synthPos === position) {
|
|
20
|
+
scroller.logger.log(() => [
|
|
21
|
+
'skipping scroll',
|
|
22
|
+
position,
|
|
23
|
+
`[${scroll.syntheticFulfill ? '' : 'pre-'}synthetic]`
|
|
24
|
+
]);
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
scroller.logger.log(() => [
|
|
28
|
+
'synthetic scroll has been fulfilled:',
|
|
29
|
+
position,
|
|
30
|
+
position < synthPos ? '<' : '>',
|
|
31
|
+
synthPos
|
|
32
|
+
]);
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
static onThrottle(scroller, position, done) {
|
|
37
|
+
const { state, settings, logger } = scroller;
|
|
38
|
+
const { scroll } = state;
|
|
39
|
+
scroll.current = Scroll.getScrollEvent(position, scroll.previous);
|
|
40
|
+
const { direction, time } = scroll.current;
|
|
41
|
+
const timeDiff = scroll.previous ? time - scroll.previous.time : Infinity;
|
|
42
|
+
const delta = settings.throttle - timeDiff;
|
|
43
|
+
const shouldDelay = isFinite(delta) && delta > 0;
|
|
44
|
+
const alreadyDelayed = !!scroll.scrollTimer;
|
|
45
|
+
logger.log(() => [
|
|
46
|
+
direction === Direction.backward ? '\u2934' : '\u2935',
|
|
47
|
+
position,
|
|
48
|
+
shouldDelay ? timeDiff + 'ms' : '0ms',
|
|
49
|
+
shouldDelay ? (alreadyDelayed ? 'delayed' : `/ ${delta}ms delay`) : ''
|
|
50
|
+
]);
|
|
51
|
+
if (!shouldDelay) {
|
|
52
|
+
if (scroll.scrollTimer) {
|
|
53
|
+
clearTimeout(scroll.scrollTimer);
|
|
54
|
+
scroll.scrollTimer = null;
|
|
55
|
+
}
|
|
56
|
+
done();
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (!alreadyDelayed) {
|
|
60
|
+
scroll.scrollTimer = setTimeout(() => {
|
|
61
|
+
logger.log(() => {
|
|
62
|
+
const curr = Scroll.getScrollEvent(scroller.viewport.scrollPosition, scroll.current);
|
|
63
|
+
return [
|
|
64
|
+
curr.direction === Direction.backward ? '\u2934' : '\u2935',
|
|
65
|
+
curr.position,
|
|
66
|
+
curr.time - time + 'ms',
|
|
67
|
+
'triggered by timer set on',
|
|
68
|
+
position
|
|
69
|
+
];
|
|
70
|
+
});
|
|
71
|
+
scroll.scrollTimer = null;
|
|
72
|
+
done();
|
|
73
|
+
}, delta);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
static getScrollEvent(position, previous) {
|
|
77
|
+
const time = Number(new Date());
|
|
78
|
+
let direction = Direction.forward;
|
|
79
|
+
if (previous) {
|
|
80
|
+
if (position === previous.position) {
|
|
81
|
+
direction = previous.direction;
|
|
82
|
+
}
|
|
83
|
+
else if (position < previous.position) {
|
|
84
|
+
direction = Direction.backward;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { position, direction, time };
|
|
88
|
+
}
|
|
89
|
+
static onScroll(scroller, workflow) {
|
|
90
|
+
const { scroll, cycle } = scroller.state;
|
|
91
|
+
scroll.previous = Object.assign({}, scroll.current);
|
|
92
|
+
scroll.current = null;
|
|
93
|
+
if (cycle.busy.get()) {
|
|
94
|
+
scroller.logger.log(() => [
|
|
95
|
+
'skipping scroll',
|
|
96
|
+
scroll.previous.position,
|
|
97
|
+
'[pending]'
|
|
98
|
+
]);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
workflow.call({
|
|
102
|
+
process: Scroll.process,
|
|
103
|
+
status: ProcessStatus.next
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
98
107
|
//# sourceMappingURL=scroll.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/processes/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/processes/scroll.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\nimport { Direction } from '../inputs/index';\nimport { ScrollEventData, ScrollerWorkflow } from '../interfaces/index';\n\nexport default class Scroll extends BaseProcessFactory(CommonProcess.scroll) {\n static run(scroller: Scroller, _payload?: { event?: Event }): void {\n const { workflow, viewport } = scroller;\n const position = viewport.scrollPosition;\n\n if (Scroll.onSynthetic(scroller, position)) {\n return;\n }\n\n Scroll.onThrottle(scroller, position, () => Scroll.onScroll(scroller, workflow));\n }\n\n static onSynthetic(scroller: Scroller, position: number): boolean {\n const { scroll } = scroller.state;\n const synthPos = scroll.syntheticPosition;\n if (synthPos !== null) {\n if (scroll.syntheticFulfill) {\n scroll.syntheticPosition = null;\n }\n if (!scroll.syntheticFulfill || synthPos === position) {\n scroller.logger.log(() => [\n 'skipping scroll',\n position,\n `[${scroll.syntheticFulfill ? '' : 'pre-'}synthetic]`\n ]);\n return true;\n }\n scroller.logger.log(() => [\n 'synthetic scroll has been fulfilled:',\n position,\n position < synthPos ? '<' : '>',\n synthPos\n ]);\n }\n return false;\n }\n\n static onThrottle(scroller: Scroller, position: number, done: () => void): void {\n const { state, settings, logger } = scroller;\n const { scroll } = state;\n scroll.current = Scroll.getScrollEvent(position, scroll.previous);\n const { direction, time } = scroll.current;\n const timeDiff = scroll.previous ? time - scroll.previous.time : Infinity;\n const delta = settings.throttle - timeDiff;\n const shouldDelay = isFinite(delta) && delta > 0;\n const alreadyDelayed = !!scroll.scrollTimer;\n logger.log(() => [\n direction === Direction.backward ? '\\u2934' : '\\u2935',\n position,\n shouldDelay ? timeDiff + 'ms' : '0ms',\n shouldDelay ? (alreadyDelayed ? 'delayed' : `/ ${delta}ms delay`) : ''\n ]);\n if (!shouldDelay) {\n if (scroll.scrollTimer) {\n clearTimeout(scroll.scrollTimer);\n scroll.scrollTimer = null;\n }\n done();\n return;\n }\n if (!alreadyDelayed) {\n scroll.scrollTimer = setTimeout(() => {\n logger.log(() => {\n const curr = Scroll.getScrollEvent(scroller.viewport.scrollPosition, scroll.current);\n return [\n curr.direction === Direction.backward ? '\\u2934' : '\\u2935',\n curr.position,\n curr.time - time + 'ms',\n 'triggered by timer set on',\n position\n ];\n });\n scroll.scrollTimer = null;\n done();\n }, delta);\n }\n }\n\n static getScrollEvent(position: number, previous: ScrollEventData | null): ScrollEventData {\n const time = Number(new Date());\n let direction: Direction | null = Direction.forward;\n if (previous) {\n if (position === previous.position) {\n direction = previous.direction;\n } else if (position < previous.position) {\n direction = Direction.backward;\n }\n }\n return { position, direction, time };\n }\n\n static onScroll(scroller: Scroller, workflow: ScrollerWorkflow): void {\n const { scroll, cycle } = scroller.state;\n scroll.previous = { ...(scroll.current as ScrollEventData) };\n scroll.current = null;\n\n if (cycle.busy.get()) {\n scroller.logger.log(() => [\n 'skipping scroll',\n (scroll.previous as ScrollEventData).position,\n '[pending]'\n ]);\n return;\n }\n\n workflow.call({\n process: Scroll.process,\n status: ProcessStatus.next\n });\n }\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
|
|
2
|
-
export default class Start extends BaseProcessFactory(CommonProcess.start) {
|
|
3
|
-
static run(scroller) {
|
|
4
|
-
const payload = scroller.state.startInnerLoop();
|
|
5
|
-
scroller.workflow.call({
|
|
6
|
-
process: Start.process,
|
|
7
|
-
status: ProcessStatus.next,
|
|
8
|
-
payload
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';
|
|
2
|
+
export default class Start extends BaseProcessFactory(CommonProcess.start) {
|
|
3
|
+
static run(scroller) {
|
|
4
|
+
const payload = scroller.state.startInnerLoop();
|
|
5
|
+
scroller.workflow.call({
|
|
6
|
+
process: Start.process,
|
|
7
|
+
status: ProcessStatus.next,
|
|
8
|
+
payload
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
12
|
//# sourceMappingURL=start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/processes/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGhF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/processes/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGhF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC;IACxE,MAAM,CAAC,GAAG,CAAC,QAAkB;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEhD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,aAAa,CAAC,IAAI;YAC1B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index';\nimport { Scroller } from '../scroller';\n\nexport default class Start extends BaseProcessFactory(CommonProcess.start) {\n static run(scroller: Scroller): void {\n const payload = scroller.state.startInnerLoop();\n\n scroller.workflow.call({\n process: Start.process,\n status: ProcessStatus.next,\n payload\n });\n }\n}\n"]}
|
package/dist/esm2015/scroller.js
CHANGED
|
@@ -1,87 +1,92 @@
|
|
|
1
|
-
import { DatasourceGeneric, makeDatasource } from './classes/datasource';
|
|
2
|
-
import { Settings } from './classes/settings';
|
|
3
|
-
import { Logger } from './classes/logger';
|
|
4
|
-
import { Routines } from './classes/domRoutines';
|
|
5
|
-
import { Viewport } from './classes/viewport';
|
|
6
|
-
import { Buffer } from './classes/buffer';
|
|
7
|
-
import { State } from './classes/state';
|
|
8
|
-
import { Adapter } from './classes/adapter';
|
|
9
|
-
import { validate, DATASOURCE } from './inputs/index';
|
|
10
|
-
import core from './version';
|
|
11
|
-
export const INVALID_DATASOURCE_PREFIX = 'Invalid datasource:';
|
|
12
|
-
let instanceCount = 0;
|
|
13
|
-
export class Scroller {
|
|
14
|
-
constructor({ datasource, consumer, element, workflow, Routines: CustomRoutines, scroller }) {
|
|
15
|
-
const {
|
|
16
|
-
if (!get.isValid) {
|
|
17
|
-
throw new Error(`${INVALID_DATASOURCE_PREFIX} ${get.errors[0]}`);
|
|
18
|
-
}
|
|
19
|
-
const packageInfo = scroller ? scroller.state.packageInfo : { consumer, core };
|
|
20
|
-
element = scroller ? scroller.routines.element : element;
|
|
21
|
-
workflow = scroller ? scroller.workflow : workflow;
|
|
22
|
-
// In general, custom Routines must extend the original Routines. If not, we provide implicit extending.
|
|
23
|
-
// This is undocumented feature. It should be removed in vscroll v2.
|
|
24
|
-
if (CustomRoutines && !(CustomRoutines.prototype instanceof Routines)) {
|
|
25
|
-
class __Routines extends Routines {
|
|
26
|
-
}
|
|
27
|
-
Object.getOwnPropertyNames(CustomRoutines.prototype)
|
|
28
|
-
.filter(method => method !== 'constructor')
|
|
29
|
-
.forEach(method => __Routines.prototype[method] =
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this.
|
|
67
|
-
this.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
1
|
+
import { DatasourceGeneric, makeDatasource } from './classes/datasource';
|
|
2
|
+
import { Settings } from './classes/settings';
|
|
3
|
+
import { Logger } from './classes/logger';
|
|
4
|
+
import { Routines } from './classes/domRoutines';
|
|
5
|
+
import { Viewport } from './classes/viewport';
|
|
6
|
+
import { Buffer } from './classes/buffer';
|
|
7
|
+
import { State } from './classes/state';
|
|
8
|
+
import { Adapter } from './classes/adapter';
|
|
9
|
+
import { validate, DATASOURCE } from './inputs/index';
|
|
10
|
+
import core from './version';
|
|
11
|
+
export const INVALID_DATASOURCE_PREFIX = 'Invalid datasource:';
|
|
12
|
+
let instanceCount = 0;
|
|
13
|
+
export class Scroller {
|
|
14
|
+
constructor({ datasource, consumer, element, workflow, Routines: CustomRoutines, scroller }) {
|
|
15
|
+
const { get } = validate(datasource, DATASOURCE).params;
|
|
16
|
+
if (!get.isValid) {
|
|
17
|
+
throw new Error(`${INVALID_DATASOURCE_PREFIX} ${get.errors[0]}`);
|
|
18
|
+
}
|
|
19
|
+
const packageInfo = scroller ? scroller.state.packageInfo : { consumer, core };
|
|
20
|
+
element = scroller ? scroller.routines.element : element;
|
|
21
|
+
workflow = scroller ? scroller.workflow : workflow;
|
|
22
|
+
// In general, custom Routines must extend the original Routines. If not, we provide implicit extending.
|
|
23
|
+
// This is undocumented feature. It should be removed in vscroll v2.
|
|
24
|
+
if (CustomRoutines && !(CustomRoutines.prototype instanceof Routines)) {
|
|
25
|
+
class __Routines extends Routines {
|
|
26
|
+
}
|
|
27
|
+
Object.getOwnPropertyNames(CustomRoutines.prototype)
|
|
28
|
+
.filter(method => method !== 'constructor')
|
|
29
|
+
.forEach(method => (__Routines.prototype[method] =
|
|
30
|
+
CustomRoutines === null || CustomRoutines === void 0 ? void 0 : CustomRoutines.prototype[method]));
|
|
31
|
+
CustomRoutines = __Routines;
|
|
32
|
+
}
|
|
33
|
+
this.workflow = workflow;
|
|
34
|
+
this.settings = new Settings(datasource.settings, datasource.devSettings, ++instanceCount);
|
|
35
|
+
this.logger = new Logger(this, packageInfo, datasource.adapter);
|
|
36
|
+
this.routines = new (CustomRoutines || Routines)(element, this.settings);
|
|
37
|
+
this.state = new State(packageInfo, this.settings, scroller ? scroller.state : void 0);
|
|
38
|
+
this.buffer = new Buffer(this.settings, workflow.onDataChanged, this.logger);
|
|
39
|
+
this.viewport = new Viewport(this.settings, this.routines, this.state, this.logger);
|
|
40
|
+
this.logger.object('vscroll settings object', this.settings, true);
|
|
41
|
+
this.initDatasource(datasource, scroller);
|
|
42
|
+
}
|
|
43
|
+
initDatasource(datasource, scroller) {
|
|
44
|
+
if (scroller) {
|
|
45
|
+
// scroller re-instantiating case
|
|
46
|
+
this.datasource = datasource;
|
|
47
|
+
this.adapter = scroller.adapter;
|
|
48
|
+
// todo: what about (this.settings.adapter !== scroller.setting.adapter) case?
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// scroller is being instantiated for the first time
|
|
52
|
+
const constructed = datasource instanceof DatasourceGeneric;
|
|
53
|
+
const mockAdapter = !constructed && !this.settings.adapter;
|
|
54
|
+
if (constructed) {
|
|
55
|
+
// datasource is already instantiated
|
|
56
|
+
this.datasource = datasource;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// datasource as POJO
|
|
60
|
+
const DS = makeDatasource(() => ({ mock: mockAdapter }));
|
|
61
|
+
this.datasource = new DS(datasource);
|
|
62
|
+
if (this.settings.adapter) {
|
|
63
|
+
datasource.adapter = this.datasource.adapter;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const publicContext = !mockAdapter ? this.datasource.adapter : null;
|
|
67
|
+
this.adapter = new Adapter(publicContext, () => this.workflow, this.logger);
|
|
68
|
+
}
|
|
69
|
+
init(adapterRun$) {
|
|
70
|
+
this.viewport.reset(this.buffer.startIndex);
|
|
71
|
+
this.logger.stat('initialization');
|
|
72
|
+
this.adapter.initialize({
|
|
73
|
+
buffer: this.buffer,
|
|
74
|
+
state: this.state,
|
|
75
|
+
viewport: this.viewport,
|
|
76
|
+
logger: this.logger,
|
|
77
|
+
adapterRun$,
|
|
78
|
+
getWorkflow: () => this.workflow
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
dispose(forever) {
|
|
82
|
+
this.logger.log(() => 'disposing scroller' + (forever ? ' (forever)' : ''));
|
|
83
|
+
if (forever) {
|
|
84
|
+
// Adapter is not re-instantiated on reset
|
|
85
|
+
this.adapter.dispose();
|
|
86
|
+
}
|
|
87
|
+
this.buffer.dispose();
|
|
88
|
+
this.state.dispose();
|
|
89
|
+
}
|
|
90
|
+
finalize() { }
|
|
91
|
+
}
|
|
87
92
|
//# sourceMappingURL=scroller.js.map
|