{"id":13447173,"url":"https://github.com/naver/egjs-axes","last_synced_at":"2025-04-04T07:05:21.004Z","repository":{"id":38361569,"uuid":"89429571","full_name":"naver/egjs-axes","owner":"naver","description":"A module used to change the information of user action entered by various input devices such as touch screen or mouse into the logical virtual coordinates.","archived":false,"fork":false,"pushed_at":"2024-03-19T08:58:22.000Z","size":46285,"stargazers_count":172,"open_issues_count":2,"forks_count":32,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-05-02T05:58:26.746Z","etag":null,"topics":["axis","cartesian","coordinate","egjs","javascript","typescript","virtual-scroll"],"latest_commit_sha":null,"homepage":"https://naver.github.io/egjs-axes/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/naver.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-26T02:39:46.000Z","updated_at":"2024-06-18T13:36:08.867Z","dependencies_parsed_at":"2023-02-09T11:16:50.446Z","dependency_job_id":"cae0eec4-5a8f-4fbc-85ca-7ce064c96ded","html_url":"https://github.com/naver/egjs-axes","commit_stats":{"total_commits":309,"total_committers":12,"mean_commits":25.75,"dds":0.6569579288025891,"last_synced_commit":"96ec1366a6c1d7f5b1a3c576436edb2223307d69"},"previous_names":["naver/egjs-movablecoord"],"tags_count":99,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naver%2Fegjs-axes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naver%2Fegjs-axes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naver%2Fegjs-axes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naver%2Fegjs-axes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/naver","download_url":"https://codeload.github.com/naver/egjs-axes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247135141,"owners_count":20889420,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["axis","cartesian","coordinate","egjs","javascript","typescript","virtual-scroll"],"created_at":"2024-07-31T05:01:10.090Z","updated_at":"2025-04-04T07:05:20.984Z","avatar_url":"https://github.com/naver.png","language":"TypeScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003ch1 align=\"center\" style=\"max-width: 100%;\"\u003e\n  \u003cimg width=\"256\" alt=\"Axes Logo\" src=\"https://raw.githubusercontent.com/naver/egjs-axes/master/packages/demo/static/img/axes.svg\" style=\"max-width: 256px;\" /\u003e\u003cbr/\u003e\n  \u003ca href=\"https://naver.github.io/egjs-axes/\"\u003e@egjs/axes\u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\" style=\"line-height: 2;\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@egjs/axes\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@egjs/axes.svg?style=flat-square\u0026color=007acc\u0026label=version\u0026logo=NPM\" alt=\"version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@egjs/axes\" target=\"_blank\"\u003e\u003cimg alt=\"npm weekly downloads\" src=\"https://img.shields.io/npm/dw/@egjs/axes?logo=npm\u0026style=flat-square\u0026color=007acc\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@egjs/axes\" target=\"_blank\"\u003e\u003cimg alt=\"npm bundle size (scoped)\" src=\"https://img.shields.io/bundlephobia/minzip/@egjs/axes.svg?style=flat-square\u0026label=%F0%9F%92%BE%20gzipped\u0026color=007acc\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://travis-ci.org/naver/egjs-axes\" target=\"_blank\"\u003e\u003cimg alt=\"Build Status\" src=\"https://api.travis-ci.org/naver/egjs-axes.svg?branch=master\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://coveralls.io/github/naver/egjs-axes?branch=master\u0026style=flat-square\" target=\"_blank\"\u003e\u003cimg alt=\"Coveralls github\" src=\"https://img.shields.io/coveralls/github/naver/egjs-axes.svg?style=flat-square\u0026label=%E2%9C%85%20coverage\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/naver/egjs-axes/blob/main/LICENSE\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?style=flat-square\u0026label=%F0%9F%93%9C%20license\u0026message=MIT\u0026color=08CE5D\" /\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1.svg?label=\u0026message=TypeScript\u0026color=294E80\u0026style=flat-square\u0026logo=typescript\" /\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\n  \u003ca href=\"https://naver.github.io/egjs-axes/\"\u003eDemo\u003c/a\u003e / \u003ca href=\"https://naver.github.io/egjs-axes/docs/api/Axes\"\u003eDocumentation\u003c/a\u003e / \u003ca href=\"https://naver.github.io/egjs/\"\u003e\u003cimg height=\"20\" src=\"https://naver.github.io/egjs/img/logo.svg\"/\u003e Other components\u003c/a\u003e\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eYou can easily create a UI that responds to user actions.\u003c/b\u003e\u003cbr /\u003e\n\u003c/p\u003e\n\n-----\n\n\u003cimg src=\"https://github.com/naver/egjs-axes/raw/master/packages/demo/static/img/demos/structure.png\" style=\"width:100%\"\u003e\n\n## ✨ Features\n- Axes translate user action entered by various input devices into the virtual coordinate system.\n- You can create an UI that responds to user actions.\n- Provides five input types. These can be associated with a user interface.\n  - [PanInput](https://naver.github.io/egjs-axes/docs/api/PanInput)\n  - [RotatePanInput](https://naver.github.io/egjs-axes/docs/api/RotatePanInput)\n  - [PinchInput](https://naver.github.io/egjs-axes/docs/api/PinchInput)\n  - [WheelInput](https://naver.github.io/egjs-axes/docs/api/WheelInput)\n  - [MoveKeyInput](https://naver.github.io/egjs-axes/docs/api/MoveKeyInput)\n- Provides six types of events generated by InputTypes.\n  - [hold](https://naver.github.io/egjs-axes/docs/api/Axes#event-hold)\n  - [change](https://naver.github.io/egjs-axes/docs/api/Axes#event-change)\n  - [release](https://naver.github.io/egjs-axes/docs/api/Axes#event-release)\n  - [animationStart](https://naver.github.io/egjs-axes/docs/api/Axes#event-animationStart)\n  - [animationEnd](https://naver.github.io/egjs-axes/docs/api/Axes#event-animationEnd)\n  - [finish](https://naver.github.io/egjs-axes/docs/api/Axes#event-finish)\n- Moreover, you can create your own custom InputTypes!\n\n## ⚙️ Installation\n#### npm\n```bash\n$ npm install @egjs/axes\n```\n\n#### CDN\n- jsDelivr: https://cdn.jsdelivr.net/npm/@egjs/axes/dist/\n- unpkg: https://unpkg.com/@egjs/axes@latest/dist/\n- cdnjs: https://cdnjs.com/libraries/egjs-axes\n\n## 🏃 Quick Start\n#### 1. Set up your HTML\n\n``` html\n\u003cdiv id=\"area\"\u003e\u003c/div\u003e\n```\n\n#### 2. Load files or import library\n\n##### ES5\n``` html\n\u003cscript src=\"https://naver.github.io/egjs-axes/release/latest/axes.pkgd.js\"\u003e\u003c/script\u003e\n```\n```js\nvar Axes = eg.Axes;\nvar PanInput = Axes.PanInput;\nvar PinchInput = Axes.PinchInput;\nvar WheelInput = Axes.WheelInput;\nvar MoveKeyInput = Axes.MoveKeyInput;\n```\n\n##### ES6+\n```js\nimport Axes, {PanInput, PinchInput, WheelInput, MoveKeyInput} from \"@egjs/axes\";\n```\n\n#### 3. Initialize Axes\n\n```js\n// create eg.Axes with option\nconst axes = new Axes({\n  something1: { range: [0, 100] },\n  something2: { range: [0, 100] },\n  somethingN: { range: [-200, 200] }\n});\n```\n\n#### 4. Attach event handlers\n```js\naxes.on({\n \"change\": evt =\u003e /* ... */\n});\n```\n\n#### 5. Initialize InputTypes to use\n```js\nconst panInput = new PanInput(\"#area\");\nconst wheelInput = new WheelInput(\"#wArea\");\nconst pinchInput = new PinchInput(\"#pArea\");\nconst movekeyInput = new MoveKeyInput(\"#mArea\");\n```\n\n#### 6. Connect eg.Axes and InputTypes\n\n```js\naxes.connect([\"something2\", \"somethingN\"], panInput);\naxes.connect([\"something1\"], wheelInput);\naxes.connect([\"something2\"], pinchInput);\naxes.connect([\"something1\", \"something2\"], movekeyInput);\n```\n\n#### 7. Enjoy!\nYou can change the value of the axis through touch screen, mouse or anything else.\n\n## 🌐 Supported Browsers\n|\u003cimg width=\"20\" src=\"https://simpleicons.org/icons/internetexplorer.svg\" alt=\"IE\" /\u003e|\u003cimg width=\"20\" src=\"https://simpleicons.org/icons/googlechrome.svg\" alt=\"Chrome\" /\u003e|\u003cimg width=\"20\" src=\"https://simpleicons.org/icons/firefoxbrowser.svg\" alt=\"Firefox\" /\u003e|\u003cimg width=\"20\" src=\"https://simpleicons.org/icons/safari.svg\" alt=\"Safari\" /\u003e|\u003cimg width=\"20\" src=\"https://simpleicons.org/icons/apple.svg\" alt=\"iOS\" /\u003e|\u003cimg width=\"20\" src=\"https://simpleicons.org/icons/android.svg\" alt=\"Android\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|:---:|\n|10+|Latest|Latest|Latest|7+|2.3+(except 3.x)|\n\n## 🔧 Dependency\negjs-axes has the dependencies for the following libraries:\n\n|[eg.Component](http://github.com/naver/egjs-component)|[eg.Agent](http://github.com/naver/egjs-agent)|\n|----|----|\n|3.0.1+|2.2.1+|\n\n## 📼 Demos\nCheck our [Demos](https://naver.github.io/egjs-axes/).\n\n## 📖 Documentation\nSee [Documentation](https://naver.github.io/egjs-axes/docs/api/Axes) page.\n\n## 🙌 Contributing\nSee [CONTRIBUTING.md](https://github.com/naver/egjs-axes/blob/master/CONTRIBUTING.md).\n\n## 📝 Feedback \u0026 Bug Report\nPlease file an [Issue](https://github.com/naver/egjs-axes/issues).\n\n## 📜 License\n@egjs/axes is released under the [MIT license](https://github.com/naver/egjs-axes/blob/master/LICENSE).\n\n```\nCopyright (c) 2015 NAVER Corp.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n```\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://naver.github.io/egjs/\"\u003e\u003cimg height=\"50\" src=\"https://naver.github.io/egjs/img/logotype1_black.svg\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/naver\"\u003e\u003cimg height=\"50\" src=\"https://naver.github.io/OpenSourceGuide/book/assets/naver_logo.png\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaver%2Fegjs-axes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaver%2Fegjs-axes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaver%2Fegjs-axes/lists"}