├── .editorconfig ├── .github ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md ├── stale.yml └── workflows │ └── run-unit.yml ├── .gitignore ├── .prettierrc.json ├── .yarnrc ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── NOTICE ├── README.md ├── config ├── changelog.js ├── commit.template └── validate-commit-msg.js ├── jsdoc-to-mdx.json ├── jsdoc.json ├── lerna.json ├── package.json ├── packages ├── axes │ ├── .eslintrc.json │ ├── .npmignore │ ├── .travis.yml │ ├── CHANGELOG.md │ ├── README.md │ ├── karma.conf.js │ ├── mocha.opts │ ├── package.json │ ├── replace.config.js │ ├── rollup.config.js │ ├── src │ │ ├── Axes.ts │ │ ├── AxisManager.ts │ │ ├── Coordinate.ts │ │ ├── EventManager.ts │ │ ├── InputObserver.ts │ │ ├── InterruptManager.ts │ │ ├── animation │ │ │ ├── AnimationManager.ts │ │ │ └── EasingManager.ts │ │ ├── browser.ts │ │ ├── const.ts │ │ ├── eventInput │ │ │ ├── EventInput.ts │ │ │ ├── MouseEventInput.ts │ │ │ ├── PointerEventInput.ts │ │ │ ├── TouchEventInput.ts │ │ │ └── TouchMouseEventInput.ts │ │ ├── index.cjs.ts │ │ ├── index.ts │ │ ├── index.umd.ts │ │ ├── inputType │ │ │ ├── InputType.ts │ │ │ ├── MoveKeyInput.ts │ │ │ ├── PanInput.ts │ │ │ ├── PinchInput.ts │ │ │ ├── RotatePanInput.ts │ │ │ └── WheelInput.ts │ │ ├── reactive.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── test │ │ ├── hammer-simulator.run.js │ │ ├── manual │ │ │ ├── cube.html │ │ │ ├── edge.html │ │ │ ├── flick.html │ │ │ ├── index.html │ │ │ ├── js │ │ │ │ ├── cube.js │ │ │ │ ├── flick.js │ │ │ │ ├── index.js │ │ │ │ ├── rotate.js │ │ │ │ └── wheel.js │ │ │ ├── rotate.html │ │ │ └── wheel.html │ │ └── unit │ │ │ ├── AnimationManager.spec.js │ │ │ ├── Axes.spec.js │ │ │ ├── AxisManager.spec.js │ │ │ ├── Coordinate.spec.js │ │ │ ├── InputObserver.spec.js │ │ │ ├── inputType │ │ │ ├── InputType.spec.js │ │ │ ├── MoveKeyInput.spec.js │ │ │ ├── PanInput.spec.js │ │ │ ├── PinchInput.spec.js │ │ │ ├── RotatePanInput.spec.js │ │ │ ├── TestHelper.js │ │ │ └── WheelInput.spec.js │ │ │ └── utils.spec.js │ ├── tsconfig.declaration.json │ ├── tsconfig.eslint.json │ └── tsconfig.json ├── demo │ ├── .gitignore │ ├── README.md │ ├── babel.config.js │ ├── docs │ │ ├── codes │ │ │ ├── Axes │ │ │ │ ├── html.txt │ │ │ │ ├── js.txt │ │ │ │ ├── react.txt │ │ │ │ ├── svelte.txt │ │ │ │ └── vue.txt │ │ │ ├── Car360viewer │ │ │ │ ├── html.txt │ │ │ │ ├── js.txt │ │ │ │ ├── svelte.txt │ │ │ │ └── vue.txt │ │ │ ├── CardInHand │ │ │ │ ├── html.txt │ │ │ │ ├── js.txt │ │ │ │ ├── svelte.txt │ │ │ │ └── vue.txt │ │ │ ├── Carousel │ │ │ │ ├── html.txt │ │ │ │ ├── js.txt │ │ │ │ ├── svelte.txt │ │ │ │ └── vue.txt │ │ │ ├── CodeTabs.tsx │ │ │ ├── Cube │ │ │ │ ├── html.txt │ │ │ │ ├── js.txt │ │ │ │ ├── svelte.txt │ │ │ │ └── vue.txt │ │ │ ├── Minimap │ │ │ │ ├── html.txt │ │ │ │ ├── js.txt │ │ │ │ ├── svelte.txt │ │ │ │ └── vue.txt │ │ │ ├── PullToRefresh │ │ │ │ ├── html.txt │ │ │ │ ├── js.txt │ │ │ │ ├── svelte.txt │ │ │ │ └── vue.txt │ │ │ └── Subway │ │ │ │ ├── html.txt │ │ │ │ ├── js.txt │ │ │ │ ├── svelte.txt │ │ │ │ └── vue.txt │ │ ├── demos │ │ │ ├── 3dcarousel.mdx │ │ │ ├── axes.mdx │ │ │ ├── bubble.mdx │ │ │ ├── car360viewer.mdx │ │ │ ├── cardinhand.mdx │ │ │ ├── cube.mdx │ │ │ ├── minimap.mdx │ │ │ ├── nestedaxes.mdx │ │ │ ├── pulltorefresh.mdx │ │ │ ├── schedule.mdx │ │ │ └── subway.mdx │ │ └── tutorials │ │ │ ├── Getting Started.mdx │ │ │ └── Installiation.mdx │ ├── docusaurus.config.js │ ├── package.json │ ├── sidebars.js │ ├── src │ │ ├── css │ │ │ ├── bulma-override.sass │ │ │ ├── custom.css │ │ │ ├── demos │ │ │ │ ├── 3dcarousel.css │ │ │ │ ├── axes.css │ │ │ │ ├── axesboard.css │ │ │ │ ├── bubble.css │ │ │ │ ├── car360viewer.css │ │ │ │ ├── cardinhand.css │ │ │ │ ├── cube.css │ │ │ │ ├── logo.css │ │ │ │ ├── logo │ │ │ │ │ ├── MoveKeyInput.css │ │ │ │ │ ├── PanInput.css │ │ │ │ │ ├── PinchInput.css │ │ │ │ │ └── WheelInput.css │ │ │ │ ├── minimap.css │ │ │ │ ├── nestedaxes.css │ │ │ │ ├── pulltorefresh.css │ │ │ │ ├── schedule.css │ │ │ │ ├── subway.css │ │ │ │ └── video.css │ │ │ └── index.css │ │ └── pages │ │ │ ├── Home.tsx │ │ │ ├── Options.mdx │ │ │ ├── demos │ │ │ ├── 3dcarousel.tsx │ │ │ ├── axes.tsx │ │ │ ├── axesboard.tsx │ │ │ ├── bubble.tsx │ │ │ ├── car360viewer.tsx │ │ │ ├── cardinhand.tsx │ │ │ ├── cube.tsx │ │ │ ├── logo.tsx │ │ │ ├── minimap.tsx │ │ │ ├── nestedaxes.tsx │ │ │ ├── pulltorefresh.tsx │ │ │ ├── schedule.tsx │ │ │ └── subway.tsx │ │ │ ├── home.module.css │ │ │ ├── index.module.css │ │ │ ├── index.tsx │ │ │ └── main │ │ │ ├── Frameworks.tsx │ │ │ └── frameworks.module.css │ ├── static │ │ ├── .nojekyll │ │ ├── font │ │ │ └── Staatliches │ │ │ │ ├── OFL.txt │ │ │ │ └── Staatliches-Regular.ttf │ │ ├── icon │ │ │ ├── angular.svg │ │ │ ├── github.svg │ │ │ ├── github_white.svg │ │ │ ├── npm.svg │ │ │ ├── react.svg │ │ │ ├── svelte.svg │ │ │ └── vue.svg │ │ └── img │ │ │ ├── axes.svg │ │ │ ├── axes_white.svg │ │ │ ├── demos │ │ │ ├── 360car.gif │ │ │ ├── 3dcarousel.gif │ │ │ ├── 3dcarousel │ │ │ │ ├── music1-min.jpg │ │ │ │ ├── music2-min.jpg │ │ │ │ ├── music3-min.jpg │ │ │ │ ├── music4-min.jpg │ │ │ │ ├── music5-min.jpg │ │ │ │ ├── music6-min.jpg │ │ │ │ ├── music7-min.jpg │ │ │ │ └── music8-min.jpg │ │ │ ├── axes.gif │ │ │ ├── axes │ │ │ │ ├── keyboard.png │ │ │ │ ├── logo.svg │ │ │ │ ├── mouse-click.png │ │ │ │ ├── mouse-wheel.png │ │ │ │ ├── touch-pinch.png │ │ │ │ └── touch.png │ │ │ ├── bubble.gif │ │ │ ├── car360 │ │ │ │ ├── beatle (1).png │ │ │ │ ├── beatle (10).png │ │ │ │ ├── beatle (11).png │ │ │ │ ├── beatle (12).png │ │ │ │ ├── beatle (13).png │ │ │ │ ├── beatle (14).png │ │ │ │ ├── beatle (15).png │ │ │ │ ├── beatle (16).png │ │ │ │ ├── beatle (17).png │ │ │ │ ├── beatle (18).png │ │ │ │ ├── beatle (19).png │ │ │ │ ├── beatle (2).png │ │ │ │ ├── beatle (20).png │ │ │ │ ├── beatle (21).png │ │ │ │ ├── beatle (22).png │ │ │ │ ├── beatle (23).png │ │ │ │ ├── beatle (24).png │ │ │ │ ├── beatle (25).png │ │ │ │ ├── beatle (26).png │ │ │ │ ├── beatle (27).png │ │ │ │ ├── beatle (28).png │ │ │ │ ├── beatle (29).png │ │ │ │ ├── beatle (3).png │ │ │ │ ├── beatle (30).png │ │ │ │ ├── beatle (31).png │ │ │ │ ├── beatle (32).png │ │ │ │ ├── beatle (33).png │ │ │ │ ├── beatle (34).png │ │ │ │ ├── beatle (35).png │ │ │ │ ├── beatle (36).png │ │ │ │ ├── beatle (4).png │ │ │ │ ├── beatle (5).png │ │ │ │ ├── beatle (6).png │ │ │ │ ├── beatle (7).png │ │ │ │ ├── beatle (8).png │ │ │ │ ├── beatle (9).png │ │ │ │ ├── bg_rotate.png │ │ │ │ └── spot_bg.png │ │ │ ├── car360viewer.gif │ │ │ ├── cardinhand.gif │ │ │ ├── cube.gif │ │ │ ├── gallery │ │ │ │ ├── bg1.jpg │ │ │ │ ├── bg2.jpg │ │ │ │ ├── bg3-1.jpg │ │ │ │ ├── bg3-2.jpg │ │ │ │ ├── bg3-3.jpg │ │ │ │ ├── bg4.jpg │ │ │ │ ├── bg5.jpg │ │ │ │ └── bg6.jpg │ │ │ ├── logo │ │ │ │ ├── circle.svg │ │ │ │ ├── square.svg │ │ │ │ ├── triangle.svg │ │ │ │ ├── x.svg │ │ │ │ ├── y.svg │ │ │ │ └── z.svg │ │ │ ├── logo_mono.svg │ │ │ ├── minimap.gif │ │ │ ├── minimap │ │ │ │ └── sunflower.jpeg │ │ │ ├── nestedaxes.gif │ │ │ ├── nestedaxes │ │ │ │ ├── body1.png │ │ │ │ ├── body2.png │ │ │ │ ├── body3.png │ │ │ │ ├── body4.png │ │ │ │ ├── body5.png │ │ │ │ ├── body6.png │ │ │ │ ├── body7.png │ │ │ │ ├── cloud1.png │ │ │ │ ├── cloud2.png │ │ │ │ ├── cloud3.png │ │ │ │ ├── head1.png │ │ │ │ ├── head2.png │ │ │ │ ├── head3.png │ │ │ │ ├── legs1.png │ │ │ │ ├── legs2.png │ │ │ │ └── legs3.png │ │ │ ├── projects │ │ │ │ ├── car.png │ │ │ │ ├── flicking.png │ │ │ │ ├── search.png │ │ │ │ └── view360.png │ │ │ ├── pulltorefresh.gif │ │ │ ├── pulltorefresh │ │ │ │ ├── 1.jpg │ │ │ │ ├── 10.jpg │ │ │ │ ├── 11.jpg │ │ │ │ ├── 12.jpg │ │ │ │ ├── 13.jpg │ │ │ │ ├── 14.jpg │ │ │ │ ├── 15.jpg │ │ │ │ ├── 16.jpg │ │ │ │ ├── 17.jpg │ │ │ │ ├── 18.jpg │ │ │ │ ├── 19.jpg │ │ │ │ ├── 2.jpg │ │ │ │ ├── 20.jpg │ │ │ │ ├── 21.jpg │ │ │ │ ├── 22.jpg │ │ │ │ ├── 23.jpg │ │ │ │ ├── 24.jpg │ │ │ │ ├── 25.jpg │ │ │ │ ├── 26.jpg │ │ │ │ ├── 27.jpg │ │ │ │ ├── 28.jpg │ │ │ │ ├── 29.jpg │ │ │ │ ├── 3.jpg │ │ │ │ ├── 30.jpg │ │ │ │ ├── 31.jpg │ │ │ │ ├── 32.jpg │ │ │ │ ├── 33.jpg │ │ │ │ ├── 34.jpg │ │ │ │ ├── 35.jpg │ │ │ │ ├── 36.jpg │ │ │ │ ├── 37.jpg │ │ │ │ ├── 38.jpg │ │ │ │ ├── 39.jpg │ │ │ │ ├── 4.jpg │ │ │ │ ├── 40.jpg │ │ │ │ ├── 41.jpg │ │ │ │ ├── 42.jpg │ │ │ │ ├── 43.jpg │ │ │ │ ├── 44.jpg │ │ │ │ ├── 45.jpg │ │ │ │ ├── 46.jpg │ │ │ │ ├── 47.jpg │ │ │ │ ├── 47.png │ │ │ │ ├── 48.jpg │ │ │ │ ├── 49.jpg │ │ │ │ ├── 5.jpg │ │ │ │ ├── 50.jpg │ │ │ │ ├── 6.jpg │ │ │ │ ├── 7.jpg │ │ │ │ ├── 8.jpg │ │ │ │ └── 9.jpg │ │ │ ├── schedule.gif │ │ │ ├── schedule │ │ │ │ ├── plan.png │ │ │ │ └── point.png │ │ │ ├── showcase.gif │ │ │ ├── structure.png │ │ │ ├── subway.gif │ │ │ └── subway │ │ │ │ └── subway.png │ │ │ ├── egjs_white.svg │ │ │ ├── favicon.ico │ │ │ └── logo.svg │ └── tsconfig.json ├── react-axes │ ├── .env │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ └── manifest.json │ ├── rollup.config.js │ ├── src │ │ ├── App.css │ │ ├── App.tsx │ │ ├── index.css │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ └── react-axes │ │ │ ├── index.tsx │ │ │ └── useAxes.ts │ ├── tsconfig.declaration.json │ └── tsconfig.json ├── svelte-axes │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── global.d.ts │ ├── package.json │ ├── public │ │ ├── favicon.png │ │ ├── global.css │ │ └── index.html │ ├── rollup.config.js │ ├── src │ │ ├── App.svelte │ │ ├── main.js │ │ └── svelte-axes │ │ │ ├── index.ts │ │ │ └── useAxes.ts │ ├── tsconfig.declaration.json │ └── tsconfig.json ├── vue-axes │ ├── .browserslistrc │ ├── .eslintrc.js │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── babel.config.js │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ └── index.html │ ├── rollup.config.js │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ └── logo.png │ │ ├── main.ts │ │ ├── shims-vue.d.ts │ │ └── vue-axes │ │ │ ├── index.ts │ │ │ └── useAxes.ts │ ├── tsconfig.build.json │ ├── tsconfig.declaration.json │ └── tsconfig.json └── vue2-axes │ ├── .browserslistrc │ ├── .editorconfig │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── demo │ ├── App.vue │ ├── index.ts │ └── shims-vue.d.ts │ ├── package.json │ ├── public │ ├── favicon.ico │ └── index.html │ ├── rollup.config.js │ ├── src │ ├── index.ts │ └── useAxes.ts │ ├── tsconfig.declaration.json │ └── tsconfig.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | trim_trailing_whitespace = true 6 | insert_final_newline = true 7 | 8 | [{*.js,*.ts}] 9 | charset = utf-8 10 | end_of_line = lf 11 | indent_style = tab 12 | max_line_length = 80 13 | 14 | [{package.json,.travis.yml}] 15 | indent_style = space 16 | indent_size = 2 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | 3 | 4 | ## Steps to check or reproduce 5 | 6 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Issue 2 | 3 | 4 | ## Details 5 | 6 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 30 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - wontstale 8 | # Label to use when marking an issue as stale 9 | staleLabel: stale 10 | # Comment to post when marking an issue as stale. Set to `false` to disable 11 | markComment: > 12 | This issue/PR has been automatically marked as stale because it has not had any update (including 13 | commits, comments, labels, milestones, etc) for 30 days. It will be closed automatically if no 14 | further update occurs in 7 day. Thank you for your contributions! 15 |
한글 16 | 이 이슈/PR은 commits, comments, labels, milestones 등 30일간 활동이 없어 자동으로 stale 상태로 전환되었습니다. 이후 7일간 활동이 없다면 자동으로 닫힐 예정입니다. 프로젝트 개선에 기여해주셔서 감사합니다. 17 |
18 | # Comment to post when closing a stale issue. Set to `false` to disable 19 | closeComment: false 20 | -------------------------------------------------------------------------------- /.github/workflows/run-unit.yml: -------------------------------------------------------------------------------- 1 | name: Run tests 2 | on: [push, pull_request] 3 | jobs: 4 | unit: 5 | runs-on: ubuntu-latest 6 | steps: 7 | - uses: actions/checkout@v2 8 | - uses: actions/setup-node@v2.1.5 9 | with: 10 | node-version: 16.16.0 11 | - name: install 12 | run: yarn 13 | working-directory: ./packages/axes 14 | - name: test 15 | run: npm run coverage 16 | working-directory: ./packages/axes 17 | - name: Coveralls GitHub Action 18 | uses: coverallsapp/github-action@v1.1.2 19 | with: 20 | path-to-lcov: ./packages/axes/coverage/lcov.info 21 | github-token: ${{ secrets.GITHUB_TOKEN }} 22 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 2, 4 | "semi": true, 5 | "singleQuote": false, 6 | "useTabs": false 7 | } 8 | -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | workspaces-experimental true 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 NAVER Corp. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | egjs-axes 2 | Copyright 2015 NAVER Corp. 3 | 4 | This project contains subcomponents with separate copyright notices and license terms. 5 | Your use of the source code for these subcomponents is subject to the terms and conditions of the following licenses. 6 | 7 | ===== 8 | 9 | AngularJS from https://github.com/angular/angular.js 10 | 11 | ===== 12 | 13 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in 23 | all copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 31 | THE SOFTWARE. 32 | -------------------------------------------------------------------------------- /config/commit.template: -------------------------------------------------------------------------------- 1 | ========== Commit Format ========== 2 | (): 3 | 4 | (optional) 5 | 6 |