gitextract_mo2zutw5/ ├── .editorconfig ├── .eslintrc.js ├── .github/ │ └── ISSUE_TEMPLATE.md ├── .gitignore ├── .gitpod.Dockerfile ├── .gitpod.yml ├── .huskyrc.json ├── .npmignore ├── .travis.yml ├── .yarnrc ├── LICENSE ├── README.md ├── README_zh-CN.md ├── jest-e2e.config.js ├── jest-puppeteer.config.js ├── jest.config.js ├── lerna.json ├── package.json ├── packages/ │ ├── better-scroll/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ └── index.ts │ ├── core/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── BScroll.ts │ │ ├── Instance.ts │ │ ├── Options.ts │ │ ├── __mocks__/ │ │ │ ├── Options.ts │ │ │ └── index.ts │ │ ├── __tests__/ │ │ │ ├── Options.spec.ts │ │ │ ├── __utils__/ │ │ │ │ ├── event.ts │ │ │ │ └── layout.ts │ │ │ └── index.spec.ts │ │ ├── animater/ │ │ │ ├── Animation.ts │ │ │ ├── Base.ts │ │ │ ├── Transition.ts │ │ │ ├── __mocks__/ │ │ │ │ ├── Animation.ts │ │ │ │ ├── Transition.ts │ │ │ │ └── index.ts │ │ │ ├── __tests__/ │ │ │ │ ├── Animation.spec.ts │ │ │ │ ├── Transition.spec.ts │ │ │ │ └── index.spec.ts │ │ │ └── index.ts │ │ ├── base/ │ │ │ ├── ActionsHandler.ts │ │ │ ├── __mocks__/ │ │ │ │ └── ActionsHandler.ts │ │ │ └── __tests__/ │ │ │ └── ActionsHandler.spec.ts │ │ ├── index.ts │ │ ├── scroller/ │ │ │ ├── Actions.ts │ │ │ ├── Behavior.ts │ │ │ ├── DirectionLock.ts │ │ │ ├── Scroller.ts │ │ │ ├── __mocks__/ │ │ │ │ ├── Actions.ts │ │ │ │ ├── Behavior.ts │ │ │ │ ├── DirectionLock.ts │ │ │ │ └── Scroller.ts │ │ │ ├── __tests__/ │ │ │ │ ├── Actions.spec.ts │ │ │ │ ├── Behavior.spec.ts │ │ │ │ ├── DirectionLock.spec.ts │ │ │ │ ├── Scroller.spec.ts │ │ │ │ └── createOptions.spec.ts │ │ │ └── createOptions.ts │ │ ├── translater/ │ │ │ ├── __mocks__/ │ │ │ │ └── index.ts │ │ │ ├── __tests__/ │ │ │ │ └── index.spec.ts │ │ │ └── index.ts │ │ └── utils/ │ │ ├── __tests__/ │ │ │ └── bubbling.spec.ts │ │ ├── bubbling.ts │ │ ├── compare.ts │ │ ├── compat.ts │ │ └── typesHelper.ts │ ├── examples/ │ │ ├── README.md │ │ ├── build/ │ │ │ ├── vue-example-build.js │ │ │ └── vue-webpack.conf.js │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── static/ │ │ │ └── css/ │ │ │ ├── github-light.css │ │ │ ├── normalize.css │ │ │ ├── reset.css │ │ │ └── stylesheet.css │ │ ├── vue/ │ │ │ ├── App.vue │ │ │ ├── components/ │ │ │ │ ├── compose/ │ │ │ │ │ ├── pullup-pulldown-outnested.vue │ │ │ │ │ ├── pullup-pulldown-slide.vue │ │ │ │ │ ├── pullup-pulldown.vue │ │ │ │ │ └── slide-nested.vue │ │ │ │ ├── core/ │ │ │ │ │ ├── default.vue │ │ │ │ │ ├── dynamic-content.vue │ │ │ │ │ ├── freescroll.vue │ │ │ │ │ ├── horizontal-rotated.vue │ │ │ │ │ ├── horizontal.vue │ │ │ │ │ ├── specified-content.vue │ │ │ │ │ └── vertical-rotated.vue │ │ │ │ ├── form/ │ │ │ │ │ └── textarea.vue │ │ │ │ ├── indicators/ │ │ │ │ │ ├── minimap.vue │ │ │ │ │ └── parallax-scroll.vue │ │ │ │ ├── infinity/ │ │ │ │ │ ├── data/ │ │ │ │ │ │ └── message.json │ │ │ │ │ └── default.vue │ │ │ │ ├── mouse-wheel/ │ │ │ │ │ ├── horizontal-scroll.vue │ │ │ │ │ ├── horizontal-slide.vue │ │ │ │ │ ├── picker.vue │ │ │ │ │ ├── pulldown.vue │ │ │ │ │ ├── pullup.vue │ │ │ │ │ ├── vertical-scroll.vue │ │ │ │ │ └── vertical-slide.vue │ │ │ │ ├── movable/ │ │ │ │ │ ├── default.vue │ │ │ │ │ ├── multi-content-scale.vue │ │ │ │ │ ├── multi-content.vue │ │ │ │ │ └── scale.vue │ │ │ │ ├── nested-scroll/ │ │ │ │ │ ├── horizontal-in-vertical.vue │ │ │ │ │ ├── horizontal.vue │ │ │ │ │ ├── triple-vertical.vue │ │ │ │ │ └── vertical.vue │ │ │ │ ├── observe-dom/ │ │ │ │ │ └── default.vue │ │ │ │ ├── observe-image/ │ │ │ │ │ └── default.vue │ │ │ │ ├── picker/ │ │ │ │ │ ├── double-column.vue │ │ │ │ │ ├── linkage-column.vue │ │ │ │ │ └── one-column.vue │ │ │ │ ├── pulldown/ │ │ │ │ │ ├── default.vue │ │ │ │ │ └── sina-weibo.vue │ │ │ │ ├── pullup/ │ │ │ │ │ └── default.vue │ │ │ │ ├── scrollbar/ │ │ │ │ │ ├── custom.vue │ │ │ │ │ ├── horizontal.vue │ │ │ │ │ ├── mousewheel.vue │ │ │ │ │ └── vertical.vue │ │ │ │ ├── slide/ │ │ │ │ │ ├── banner.vue │ │ │ │ │ ├── dynamic.vue │ │ │ │ │ ├── fullpage.vue │ │ │ │ │ ├── specified-index.vue │ │ │ │ │ └── vertical.vue │ │ │ │ └── zoom/ │ │ │ │ └── default.vue │ │ │ ├── index.html │ │ │ ├── main.js │ │ │ ├── pages/ │ │ │ │ ├── compose-entry.vue │ │ │ │ ├── core-entry.vue │ │ │ │ ├── form-entry.vue │ │ │ │ ├── indicators-entry.vue │ │ │ │ ├── infinity-entry.vue │ │ │ │ ├── mouse-wheel-entry.vue │ │ │ │ ├── movable-entry.vue │ │ │ │ ├── nested-scroll-entry.vue │ │ │ │ ├── observe-dom-entry.vue │ │ │ │ ├── observe-image-entry.vue │ │ │ │ ├── picker-entry.vue │ │ │ │ ├── pulldown-entry.vue │ │ │ │ ├── pullup-entry.vue │ │ │ │ ├── scrollbar-entry.vue │ │ │ │ ├── slide-entry.vue │ │ │ │ └── zoom-entry.vue │ │ │ └── router/ │ │ │ └── index.js │ │ └── vue-release.sh │ ├── indicators/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── __mocks__/ │ │ │ └── indicator.ts │ │ ├── __tests__/ │ │ │ ├── index.spec.ts │ │ │ └── indicator.spec.ts │ │ ├── index.ts │ │ ├── indicator.ts │ │ └── types.ts │ ├── infinity/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── DataManager.ts │ │ ├── DomManager.ts │ │ ├── IndexCalculator.ts │ │ ├── Tombstone.ts │ │ ├── __tests__/ │ │ │ ├── DataManager.spec.ts │ │ │ ├── IndexCalculator.spec.ts │ │ │ └── __utils__/ │ │ │ ├── FakeList.ts │ │ │ └── constans.ts │ │ └── index.ts │ ├── mouse-wheel/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── __tests__/ │ │ │ └── index.spec.ts │ │ └── index.ts │ ├── movable/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── __tests__/ │ │ │ └── index.spec.ts │ │ ├── index.ts │ │ └── propertiesConfig.ts │ ├── nested-scroll/ │ │ ├── README.md │ │ ├── package.json │ │ └── src/ │ │ ├── BScrollFamily.ts │ │ ├── __tests__/ │ │ │ └── index.spec.ts │ │ ├── index.ts │ │ └── propertiesConfig.ts │ ├── observe-dom/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── __tests__/ │ │ │ └── index.spec.ts │ │ └── index.ts │ ├── observe-image/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── __tests__/ │ │ │ └── index.spec.ts │ │ └── index.ts │ ├── pull-down/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── __tests__/ │ │ │ └── index.spec.ts │ │ ├── index.ts │ │ └── propertiesConfig.ts │ ├── pull-up/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── __tests__/ │ │ │ └── index.spec.ts │ │ ├── index.ts │ │ └── propertiesConfig.ts │ ├── react-examples/ │ │ ├── README.md │ │ ├── config-overrides.js │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ └── static/ │ │ │ └── css/ │ │ │ ├── github-light.css │ │ │ ├── normalize.css │ │ │ ├── reset.css │ │ │ └── stylesheet.css │ │ └── src/ │ │ ├── App.js │ │ ├── index.js │ │ ├── index.styl │ │ ├── pages/ │ │ │ ├── compose/ │ │ │ │ ├── components/ │ │ │ │ │ ├── pullup-pulldown-outnested.js │ │ │ │ │ ├── pullup-pulldown-slide.js │ │ │ │ │ ├── pullup-pulldown.js │ │ │ │ │ └── slide-nested.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── core/ │ │ │ │ ├── components/ │ │ │ │ │ ├── default.js │ │ │ │ │ ├── dynamic-content.js │ │ │ │ │ ├── freescroll.js │ │ │ │ │ ├── horizontal-rotated.js │ │ │ │ │ ├── horizontal.js │ │ │ │ │ ├── specified-content.js │ │ │ │ │ └── vertical-rotated.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── form/ │ │ │ │ ├── components/ │ │ │ │ │ └── textarea.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── indicators/ │ │ │ │ ├── components/ │ │ │ │ │ ├── minimap.js │ │ │ │ │ └── parallax-scroll.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── infinity/ │ │ │ │ ├── data/ │ │ │ │ │ └── message.json │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── mouse-wheel/ │ │ │ │ ├── components/ │ │ │ │ │ ├── horizontal-scroll.js │ │ │ │ │ ├── horizontal-slide.js │ │ │ │ │ ├── picker.js │ │ │ │ │ ├── pulldown.js │ │ │ │ │ ├── pullup.js │ │ │ │ │ ├── vertical-scroll.js │ │ │ │ │ └── vertical-slide.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── movable/ │ │ │ │ ├── components/ │ │ │ │ │ ├── default.js │ │ │ │ │ ├── multi-content-scale.js │ │ │ │ │ ├── multi-content.js │ │ │ │ │ └── scale.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── nested-scroll/ │ │ │ │ ├── components/ │ │ │ │ │ ├── horizontal-in-vertical.js │ │ │ │ │ ├── horizontal.js │ │ │ │ │ ├── triple-vertical.js │ │ │ │ │ └── vertical.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── observe-dom/ │ │ │ │ ├── components/ │ │ │ │ │ └── default.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── observe-image/ │ │ │ │ ├── components/ │ │ │ │ │ └── default.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── picker/ │ │ │ │ ├── components/ │ │ │ │ │ ├── double-column.js │ │ │ │ │ ├── linkage-column.js │ │ │ │ │ └── one-column.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── pulldown/ │ │ │ │ ├── components/ │ │ │ │ │ ├── default.js │ │ │ │ │ └── sina-weibo.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── pullup/ │ │ │ │ ├── components/ │ │ │ │ │ └── default.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── scrollbar/ │ │ │ │ ├── components/ │ │ │ │ │ ├── custom.js │ │ │ │ │ ├── horizontal.js │ │ │ │ │ ├── mousewheel.js │ │ │ │ │ └── vertical.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ ├── slide/ │ │ │ │ ├── components/ │ │ │ │ │ ├── banner.js │ │ │ │ │ ├── dynamic.js │ │ │ │ │ ├── fullpage.js │ │ │ │ │ ├── specified-index.js │ │ │ │ │ └── vertical.js │ │ │ │ ├── index.js │ │ │ │ └── index.styl │ │ │ └── zoom/ │ │ │ ├── components/ │ │ │ │ └── default.js │ │ │ ├── index.js │ │ │ └── index.styl │ │ ├── reportWebVitals.js │ │ ├── router.js │ │ └── setupTests.js │ ├── scroll-bar/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── __mocks__/ │ │ │ ├── event-handler.ts │ │ │ └── indicator.ts │ │ ├── __tests__/ │ │ │ ├── __snapshots__/ │ │ │ │ └── index.spec.ts.snap │ │ │ ├── event-handler.spec.ts │ │ │ ├── index.spec.ts │ │ │ └── indicator.spec.ts │ │ ├── event-handler.ts │ │ ├── index.ts │ │ └── indicator.ts │ ├── shared-utils/ │ │ ├── README.md │ │ ├── package.json │ │ └── src/ │ │ ├── Touch.ts │ │ ├── __mocks__/ │ │ │ ├── dom.ts │ │ │ └── ease.ts │ │ ├── __tests__/ │ │ │ ├── debug.spec.ts │ │ │ ├── dom.spec.ts │ │ │ ├── ease.spec.ts │ │ │ ├── events.spec.ts │ │ │ ├── lang.spec.ts │ │ │ ├── propertiesProxy.spec.ts │ │ │ └── raf.spec.ts │ │ ├── debug.ts │ │ ├── dom.ts │ │ ├── ease.ts │ │ ├── enums.ts │ │ ├── env.ts │ │ ├── events.ts │ │ ├── index.ts │ │ ├── lang.ts │ │ ├── propertiesProxy.ts │ │ ├── raf.ts │ │ └── types.ts │ ├── slide/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── PagesMatrix.ts │ │ ├── SlidePages.ts │ │ ├── __mocks__/ │ │ │ ├── PagesMatrix.ts │ │ │ └── SlidePages.ts │ │ ├── __tests__/ │ │ │ ├── PagesMatrix.spec.ts │ │ │ ├── SlidePages.spec.ts │ │ │ └── index.spec.ts │ │ ├── constants.ts │ │ ├── index.ts │ │ └── propertiesConfig.ts │ ├── vuepress-docs/ │ │ ├── docs/ │ │ │ ├── .vuepress/ │ │ │ │ ├── components/ │ │ │ │ │ ├── demo.vue │ │ │ │ │ └── qrcode.vue │ │ │ │ ├── config.js │ │ │ │ ├── enhanceApp.js │ │ │ │ ├── nav/ │ │ │ │ │ ├── en-US.js │ │ │ │ │ └── zh-CN.js │ │ │ │ ├── plugins/ │ │ │ │ │ └── extract-code.js │ │ │ │ ├── public/ │ │ │ │ │ └── assets/ │ │ │ │ │ └── stylus/ │ │ │ │ │ └── index.styl │ │ │ │ └── sidebar/ │ │ │ │ ├── FAQ.js │ │ │ │ ├── guide.js │ │ │ │ └── plugins.js │ │ │ ├── en-US/ │ │ │ │ ├── FAQ/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── diagnosis.md │ │ │ │ ├── README.md │ │ │ │ ├── guide/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── base-scroll-api.md │ │ │ │ │ ├── base-scroll-options.md │ │ │ │ │ ├── base-scroll.md │ │ │ │ │ ├── how-to-install.md │ │ │ │ │ └── use.md │ │ │ │ └── plugins/ │ │ │ │ ├── README.md │ │ │ │ ├── how-to-write.md │ │ │ │ ├── indicators.md │ │ │ │ ├── infinity.md │ │ │ │ ├── mouse-wheel.md │ │ │ │ ├── movable.md │ │ │ │ ├── nested-scroll.md │ │ │ │ ├── observe-dom.md │ │ │ │ ├── observe-image.md │ │ │ │ ├── pulldown.md │ │ │ │ ├── pullup.md │ │ │ │ ├── scroll-bar.md │ │ │ │ ├── slide.md │ │ │ │ ├── wheel.md │ │ │ │ └── zoom.md │ │ │ └── zh-CN/ │ │ │ ├── FAQ/ │ │ │ │ ├── README.md │ │ │ │ └── diagnosis.md │ │ │ ├── README.md │ │ │ ├── guide/ │ │ │ │ ├── README.md │ │ │ │ ├── base-scroll-api.md │ │ │ │ ├── base-scroll-options.md │ │ │ │ ├── base-scroll.md │ │ │ │ ├── how-to-install.md │ │ │ │ └── use.md │ │ │ └── plugins/ │ │ │ ├── README.md │ │ │ ├── compose-plugins.md │ │ │ ├── how-to-write.md │ │ │ ├── indicators.md │ │ │ ├── infinity.md │ │ │ ├── mouse-wheel.md │ │ │ ├── movable.md │ │ │ ├── nested-scroll.md │ │ │ ├── observe-dom.md │ │ │ ├── observe-image.md │ │ │ ├── pulldown.md │ │ │ ├── pullup.md │ │ │ ├── scroll-bar.md │ │ │ ├── slide.md │ │ │ ├── wheel.md │ │ │ └── zoom.md │ │ ├── docs-release.sh │ │ └── package.json │ ├── wheel/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ ├── package.json │ │ └── src/ │ │ ├── __tests__/ │ │ │ └── index.spec.ts │ │ ├── index.ts │ │ └── propertiesConfig.ts │ └── zoom/ │ ├── README.md │ ├── README_zh-CN.md │ ├── package.json │ └── src/ │ ├── __tests__/ │ │ ├── __utils__/ │ │ │ └── util.ts │ │ └── index.spec.ts │ ├── index.ts │ └── propertiesConfig.ts ├── postcss.config.js ├── scripts/ │ ├── build.js │ ├── checkYarn.js │ └── release.js ├── test-dts/ │ ├── core.test-d.ts │ ├── index.d.ts │ ├── plugin.test-d.ts │ ├── tsconfig.json │ └── util.d.ts ├── tests/ │ ├── dts/ │ │ └── index.d.ts │ ├── e2e/ │ │ ├── compose-plugins/ │ │ │ ├── compose-plugins.e2e.ts │ │ │ ├── pullup-pulldown-nested.e2e.ts │ │ │ ├── pullup-pulldown-slide.e2e.ts │ │ │ ├── pullup-pulldown.e2e.ts │ │ │ └── slide-nested.e2e.ts │ │ ├── core/ │ │ │ └── corescroll.e2e.ts │ │ ├── form/ │ │ │ └── textarea.e2e.ts │ │ ├── homepage.e2e.ts │ │ ├── indicators/ │ │ │ ├── minimap.e2e.ts │ │ │ └── parallax-scrolling.e2e.ts │ │ ├── infinity/ │ │ │ └── infinity.e2e.ts │ │ ├── mousewheel/ │ │ │ └── mousewheel.e2e.ts │ │ ├── movable/ │ │ │ ├── default.e2e.ts │ │ │ ├── multi-content-scale.e2e.ts │ │ │ ├── multi-content.e2e.ts │ │ │ └── scaled.e2e.ts │ │ ├── nested-scroll/ │ │ │ ├── horizontal-in-vertical.e2e.ts │ │ │ ├── horizontal.e2e.ts │ │ │ ├── triple-vertical.e2e.ts │ │ │ └── vertical.e2e.ts │ │ ├── observe-dom/ │ │ │ └── observe-dom.e2e.ts │ │ ├── observe-image/ │ │ │ └── observe-image.e2e.ts │ │ ├── picker/ │ │ │ ├── double-column.e2e.ts │ │ │ ├── linkage-column.e2e.ts │ │ │ └── one-column.e2e.ts │ │ ├── pulldown/ │ │ │ ├── default.e2e.ts │ │ │ └── sina.e2e.ts │ │ ├── pullup/ │ │ │ └── default.e2e.ts │ │ ├── scrollbar/ │ │ │ ├── custom.e2e.ts │ │ │ ├── horizontal.e2e.ts │ │ │ ├── mousewheel.e2e.ts │ │ │ └── vertical.e2e.ts │ │ ├── slide/ │ │ │ ├── banner.e2e.ts │ │ │ ├── dynamic.e2e.ts │ │ │ ├── fullpage.e2e.ts │ │ │ ├── specifiedIndex.e2e.ts │ │ │ └── vertical.e2e.ts │ │ └── zoom/ │ │ └── zoom.e2e.ts │ └── util/ │ ├── extendMouseWheel.ts │ ├── extendTouch.ts │ ├── getScale.ts │ └── getTranslate.ts ├── tsconfig.json └── tslint.json