├── .babelrc ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── development-managing-tamplete.md │ └── feature_request.md ├── .gitignore ├── .npmignore ├── .nvmrc ├── .travis.yml ├── LICENSE ├── README.md ├── docs └── ko │ └── test.md ├── jest.config.js ├── lib ├── index.tsx ├── types │ └── video.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ └── alt │ │ │ ├── video.core.d.ts │ │ │ └── video.core.novtt.d.ts │ │ ├── index.d.ts │ │ └── package.json └── utils │ ├── filterPlugins.ts │ ├── generatePlayerOptions.ts │ ├── index.ts │ ├── initializeEventListeners.ts │ ├── initializePlayer.ts │ └── initializePlayerComponentsDisplay.ts ├── package-lock.json ├── package.json ├── rollup.config.js ├── rollup.config.prod.js ├── tests ├── player.test.tsx ├── setupTests.ts └── utils.test.ts └── tsconfig.json /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/preset-react" 4 | ], 5 | "plugins": [ 6 | "@babel/plugin-transform-runtime", 7 | "@babel/plugin-proposal-class-properties" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Describe the bug 11 | A clear and concise description of what the bug is. 12 | 13 | ## To Reproduce 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | ## Expected behavior 21 | A clear and concise description of what you expected to happen. 22 | 23 | ## Screenshots 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | ### Desktop (please complete the following information): 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | ### Smartphone (please complete the following information): 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | ## Additional context 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/development-managing-tamplete.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Development managing tamplete 3 | about: The author of this library used this template to map issues with each branches 4 | - you can refer to it and use it if you want 5 | title: '' 6 | labels: '' 7 | assignees: '' 8 | 9 | --- 10 | 11 | ## Branch Name 12 | 작업과 연결된 브랜치의 이름입니다. 이슈 제목과 이슈 내용에 맞추어 적절한 영문 이름을 지어주세요. 13 | 14 | ex) `issue/1-issue-template` 15 | 16 | 작업을 통하여 프로젝트 코드의 변경이 없다면, 브랜치 이름을 지정하지 않아도 됩니다. 17 | 18 | ## Type of Change 19 | 작업 종류를 분류해주세요. 모든 작업 종류는 아래 대분류 중 하나에 속하며, 각각의 대분류에 속한 종류들은 동일 계통의 색상을 가지는 Issue Label로 표시됩니다. 새로운 성격의 종류는 계속 추가할 수 있으며, 이에 대응하여 이슈 템플릿 또한 업데이트합니다. 20 | 21 | - Direct Group: 기능 개발과 직접 관련된 이슈 22 | - ui, api, ffmpeg, authorization, optimization, ... 23 | - Indirect Group: 저장소 관련, 환경 설정, 문서화 등 기능 개발과 직접 관련 없는 이슈 24 | - chores, environment, github, documentation, planning, design, ... 25 | 26 | ## Priority 27 | 작업의 우선 순위를 분류합니다. 모든 작업 우선순위는 아래 중 하나에 속하며, 우선 순위들은 동일 계통의 색상을 가지는 Issue Label로 표시됩니다. 28 | 29 | - `high`: 필수 기능으로, 가장 높은 우선순위를 가진다. 30 | - `mid`: 구현 수준에 따라 만족도가 증가하는 기능. 31 | - `low`: 필수는 아니나 구현하면 만족도가 커지는 기능. 32 | 33 | `high` > `mid` > `low` 순으로 우선순위가 높습니다. 34 | 35 | ## Summary 36 | 작업 이슈의 내용 짧게 요약해주세요. 37 | 38 | ## Description of Change 39 | Summary만으로 설명이 부족하다면, 작업 이슈에 대하여 구체적으로 설명해주세요. 40 | 하위 작업이 존재할 경우 해당 작업들을 목록으로 나열하고, 각각의 이슈를 링크해주세요. 또한, 이 경우 *포함하고 있는 하위 작업들을 모두 완료하였을 때* 작업이 완료된 것으로 간주하며, 이 이슈에 대한 커밋은 *하위 작업들을 Merge하는 커밋*입니다. 즉, 하위 작업들에 대하여 `dev` 브랜치에 Merge가 완료되어야 이 이슈를 Close할 수 있습니다. 41 | 42 | 작업 과정에서의 특이사항은 스레드로 추가해주세요. 작업이 완료되었다면, 대응하는 브랜치를 생성하고 커밋해주세요. 43 | 44 | > 해당 브랜치 상에서 추가적인 변경이 발생할 수 있으므로, 커밋시 이슈를 Close하지 않습니다. 45 | 46 | ## Reason for Change 47 | 작업이 필요한 이유, 배경, 상황 등을 설명해주세요. 48 | 49 | ## Expected Next or Associated Work (If exists) 50 | 이 작업이 종료된 이후 이루어져야 하는 후속 작업 연관 작업들이 있다면 작성해주세요. 51 | 52 | 스레드를 통한 논의 끝에 결정 및 추가된 새로운 사항이 있다면 관련 내용을 반영해주세요. 53 | 54 | ## Estimated Story Point 55 | 작업 완수에 필요한 예상 소요 Story Point를 산정해주세요. Story Point를 조정하는 경우, 조정한 뒤 조정 사유를 스레드로 추가해주세요. 56 | 57 | ## Reference (If exists) 58 | 작업 수행시 참고한 자료, 외부 링크 등을 기록해주세요. 59 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | Thanks in advance for your awesome suggestion of new feature for this library. 11 | 12 | ## Is your feature request related to a problem? Please describe. 13 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 14 | 15 | ## Describe the solution you'd like 16 | A clear and concise description of what you want to happen. 17 | 18 | ## Describe alternatives you've considered 19 | A clear and concise description of any alternative solutions or features you've considered. 20 | 21 | **Additional context** 22 | Add any other context or screenshots about the feature request here. 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | node_modules/ 3 | 4 | # build related files 5 | dist/ 6 | !lib/types/video.js/dist 7 | build/ 8 | 9 | # test results 10 | coverage/ 11 | 12 | # etc 13 | .DS_Store 14 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # npm 2 | node_modules/ 3 | 4 | # dev 5 | lib 6 | rollup.config.js 7 | tsconfig.json 8 | .eslintrc.js 9 | 10 | # test 11 | tests 12 | jest.config.js 13 | coverage/ 14 | 15 | # GIT 16 | .git 17 | .gitignore 18 | 19 | # GITHUB 20 | .github 21 | 22 | # DOCUMENTATION 23 | README.md 24 | 25 | # etc 26 | .DS_Store 27 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v12.14.1 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | install: 3 | - npm install -g codecov 4 | - npm ci 5 | - npm run prepare:peers # install peer dependencies for test scripts 6 | script: 7 | - npm run test 8 | - codecov 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020 cadenzah. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # videojs-react-enhanced 2 | 3 | [![NPM](https://nodei.co/npm/videojs-react-enhanced.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/videojs-react-enhanced/) 4 | 5 | [![Build Status](https://travis-ci.com/cadenzah/videojs-react-enhanced.svg?branch=master)](https://travis-ci.com/cadenzah/videojs-react-enhanced) 6 | [![codecov](https://codecov.io/gh/cadenzah/videojs-react-enhanced/branch/master/graph/badge.svg)](https://codecov.io/gh/cadenzah/videojs-react-enhanced) 7 | 8 | React.js wrapper component for Video.js player with handy and powerful features. 9 | 10 | > NOTE: The basic feature is working, but still it's currently working in progress, so provided features are unstable and in-depth features are not supported yet, and some usage could change in the future release. Please understand and be careful on using! 11 | 12 | ## Table of Contents 13 | - Features 14 | - Install 15 | - Prerequisite 16 | - Usage 17 | - TypeScript Usage 18 | - Props to initialize player 19 | - Props to add custom event handlers 20 | - Plugins 21 | - Contribution 22 | - License 23 | 24 | ## Features 25 | - Easy to use 26 | - Easy to configure video.js options 27 | - native HTML5 `