Skip to content

Commit 500201c

Browse files
committed
chore: merge feat/monorepo branch
2 parents bda9e02 + 22e5d20 commit 500201c

File tree

253 files changed

+102806
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

253 files changed

+102806
-0
lines changed

.gitignore

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Logs
2+
logs
3+
*.log
4+
5+
# Runtime data
6+
pids
7+
*.pid
8+
*.seed
9+
10+
# Directory for instrumented libs generated by jscoverage/JSCover
11+
lib-cov
12+
13+
# Coverage directory used by tools like istanbul
14+
coverage
15+
screenshots
16+
17+
# Compiled binary addons (http://nodejs.org/api/addons.html)
18+
build/Release
19+
20+
# Dependency directory
21+
node_modules
22+
23+
# Bower Components
24+
bower_components
25+
lib
26+
27+
# IDEA
28+
.idea
29+
*.iml
30+
31+
# Window
32+
Thumbs.db
33+
Desktop.ini
34+
35+
# MAC
36+
.DS_Store
37+
38+
# SVN
39+
.svn
40+
41+
# eclipse
42+
.project
43+
.metadata
44+
45+
# build
46+
build
47+
48+
# etc
49+
*.swp
50+
etc
51+
temp
52+
api
53+
doc
54+
report
55+
karma.conf.local.js
56+
.tern-project
57+
.tern-port
58+
*.vim
59+
.\#*
60+
.vscode/
61+
dist/

.prettierignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.md
2+
*.html

.prettierrc

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"singleQuote": true,
3+
"printWidth": 100,
4+
"tabWidth": 2,
5+
"useTabs": false,
6+
"semi": true,
7+
"quoteProps": "as-needed",
8+
"jsxSingleQuote": false,
9+
"trailingComma": "es5",
10+
"arrowParens": "always",
11+
"endOfLine": "lf",
12+
"bracketSpacing": true,
13+
"jsxBracketSameLine": false,
14+
"requirePragma": false,
15+
"insertPragma": false,
16+
"proseWrap": "preserve",
17+
"vueIndentScriptAndStyle": false
18+
}

README.md

+154
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
# ![TOAST UI Calendar](https://user-images.githubusercontent.com/26706716/39230183-7f8ff186-48a0-11e8-8d9c-9699d2d0e471.png)
2+
3+
> 🍞📅 A JavaScript schedule calendar that is full featured. Now your service just got the customizable calendar.
4+
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)
5+
[![GitHub release](https://img.shields.io/github/release/nhn/tui.calendar.svg)](https://github.com/nhn/tui.calendar/releases/latest)
6+
[![npm](https://img.shields.io/npm/v/tui-calendar.svg)](https://www.npmjs.com/package/tui-calendar)
7+
[![GitHub license](https://img.shields.io/github/license/nhn/tui.calendar.svg)](https://github.com/nhn/tui.calendar/blob/master/LICENSE)
8+
[![PRs welcome](https://img.shields.io/badge/PRs-welcome-ff69b4.svg)](https://github.com/nhn/tui.project-name/labels/help%20wanted)
9+
[![code with hearth by NHN](https://img.shields.io/badge/%3C%2F%3E%20with%20%E2%99%A5%20by-NHN-ff1414.svg)](https://github.com/nhn)
10+
11+
![tui-calendar-demo-nhn-corp](https://user-images.githubusercontent.com/43128697/55609612-0c19db00-57bc-11e9-849b-f42a9bd8c591.gif)
12+
13+
14+
## 📦 Packages
15+
16+
The functionality of TOAST UI Calendar is available when using the Plain JavaScript, React, Vue Component.
17+
18+
- [toast-ui.calendar](https://github.com/nhn/tui.calendar/tree/main/apps/calendar) - Plain JavaScript component implemented by NHN.
19+
- [toast-ui.vue-calendar](https://github.com/nhn/tui.calendar/tree/main/apps/vue-calendar) - **Vue** wrapper component implemented by NHN.
20+
- [toast-ui.react-calendar](https://github.com/nhn/tui.calendar/tree/main/apps/react-calendar) - **React** wrapper component implemented by NHN.
21+
22+
## 📙 Documents
23+
24+
* [Getting Started](https://github.com/nhn/tui.calendar/blob/master/docs/getting-started.md)
25+
* [Tutorials](https://github.com/nhn/tui.calendar/tree/master/docs)
26+
* [APIs](https://nhn.github.io/tui.calendar/latest/Calendar)
27+
- [Getting Started](https://github.com/nhn/tui.calendar/blob/main/docs/en/getting-started.md)
28+
- Tutorials
29+
- [English](https://github.com/nhn/tui.calendar/blob/main/docs/README.md)
30+
- [한국어](https://github.com/nhn/tui.calendar/blob/main/docs/ko/README.md)
31+
- [APIs](https://nhn.github.io/tui.calendar/latest/)
32+
- v2.0 Migration Guide
33+
- [English](https://github.com/nhn/tui.calendar/blob/main/docs/v2.0-migration-guide-en.md)
34+
- [한국어](https://github.com/nhn/tui.calendar/blob/main/docs/v2.0-migration-guide-ko.md)
35+
36+
37+
## 😍 Why TOAST UI Calendar?
38+
### ✨ How Cool: Monthly, Weekly, Daily and Various View Types.
39+
40+
| Monthly | Weekly |
41+
| --- | --- |
42+
| ![image](https://user-images.githubusercontent.com/26706716/39230396-4d79a592-48a1-11e8-9849-08e80f1bedf6.png) | ![image](https://user-images.githubusercontent.com/26706716/39230459-83beac38-48a1-11e8-8cd4-11b97817f1f8.png) |
43+
44+
| Daily | 2 Weeks |
45+
| --- | --- |
46+
| ![image](https://user-images.githubusercontent.com/26706716/39230685-60a2a1d6-48a2-11e8-9d46-ce5693277a64.png) | ![image](https://user-images.githubusercontent.com/26706716/39230638-281d5266-48a2-11e8-84d8-ab289f372051.png) |
47+
48+
### Easy to Use: Dragging and Resizing a Schedule
49+
50+
| Dragging | Resizing |
51+
| --- | --- |
52+
| ![image](https://user-images.githubusercontent.com/26706716/39230930-591031f8-48a3-11e8-8f62-e12e6c19920c.gif) | ![image](https://user-images.githubusercontent.com/26706716/39231671-c926d0da-48a5-11e8-959d-35fd32f2c522.gif) |
53+
54+
55+
## Ready to Use: Default Popups
56+
57+
| Creation Popup | Detail Popup |
58+
| --- | --- |
59+
| ![image](https://user-images.githubusercontent.com/26706716/39230798-d151a9ae-48a2-11e8-842d-b19b40432f48.png) | ![image](https://user-images.githubusercontent.com/26706716/39230820-e73fa11c-48a2-11e8-9348-8e3d81979a78.png) |
60+
61+
## 🎨 Features
62+
63+
* Supports various view types: daily, weekly, monthly(6 weeks, 2 weeks, 3 weeks)
64+
* Supports efficient management of milestone and task schedules
65+
* Supports the narrow width of weekend
66+
* Supports changing start day of week
67+
* Supports customizing the date and schedule information UI(including a header and a footer of grid cell)
68+
* Supports adjusting a schedule by mouse dragging
69+
* Supports customizing UI by theme
70+
71+
## 🐾 Examples
72+
73+
* [Basic](https://nhn.github.io/tui.calendar/latest/tutorial-example00-basic) : Example of using default options.
74+
75+
Here are more [examples](https://nhn.github.io/tui.calendar/latest/tutorial-example00-basic) and play with TOAST UI Calendar!
76+
77+
## 🔧 Pull Request Steps
78+
79+
TOAST UI products are open source, so you can create a pull request(PR) after you fix issues.
80+
Run npm scripts and develop yourself with the following process.
81+
82+
### Setup
83+
84+
Fork `develop` branch into your personal repository.
85+
Clone it to local computer. Install node modules.
86+
Before starting development, you should check to haveany errors.
87+
88+
``` sh
89+
$ git clone https://github.com/{owner}/tui.calendar.git
90+
$ cd tui.calendar
91+
$ npm install
92+
$ npm run test
93+
```
94+
95+
### Develop
96+
97+
Let's start development!
98+
You can see your code is reflected as soon as you saving the codes by running a server.
99+
Don't miss adding test cases and then make green rights.
100+
101+
#### Run webpack-dev-server
102+
103+
``` sh
104+
$ npm run serve
105+
```
106+
107+
#### Run karma test
108+
109+
``` sh
110+
$ npm run test
111+
```
112+
113+
### Pull Request
114+
115+
Before PR, check to test lastly and then check any errors.
116+
If it has no error, commit and then push it!
117+
118+
For more information on PR's step, please see links of Contributing section.
119+
120+
## 💬 Contributing
121+
122+
* [Code of Conduct](https://github.com/nhn/tui.calendar/blob/master/CODE_OF_CONDUCT.md)
123+
* [Contributing guideline](https://github.com/nhn/tui.calendar/blob/master/CONTRIBUTING.md)
124+
* [Issue guideline](https://github.com/nhn/tui.calendar/blob/master/docs/ISSUE_TEMPLATE.md)
125+
* [Commit convention](https://github.com/nhn/tui.calendar/blob/main/docs/COMMIT_MESSAGE_CONVENTION.md)
126+
127+
## 🌏 Browser Support
128+
| <img src="https://user-images.githubusercontent.com/1215767/34348387-a2e64588-ea4d-11e7-8267-a43365103afe.png" alt="Chrome" width="16px" height="16px" /> Chrome | <img src="https://user-images.githubusercontent.com/1215767/34348590-250b3ca2-ea4f-11e7-9efb-da953359321f.png" alt="IE" width="16px" height="16px" /> Internet Explorer | <img src="https://user-images.githubusercontent.com/1215767/34348380-93e77ae8-ea4d-11e7-8696-9a989ddbbbf5.png" alt="Edge" width="16px" height="16px" /> Edge | <img src="https://user-images.githubusercontent.com/1215767/34348394-a981f892-ea4d-11e7-9156-d128d58386b9.png" alt="Safari" width="16px" height="16px" /> Safari | <img src="https://user-images.githubusercontent.com/1215767/34348383-9e7ed492-ea4d-11e7-910c-03b39d52f496.png" alt="Firefox" width="16px" height="16px" /> Firefox |
129+
| :---------: | :---------: | :---------: | :---------: | :---------: |
130+
| Latest | 9+ | Latest | Latest | Latest |
131+
132+
## 🔩 Dependency
133+
134+
* [tui-date-picker](https://github.com/nhn/tui.date-picker) >= 3.0.0 is optional.
135+
* [tui-time-picker](https://github.com/nhn/tui.time-picker) >= 1.0.0 is optional.
136+
137+
## 🍞 TOAST UI Family
138+
* [TOAST UI Grid](https://github.com/nhn/tui.grid)
139+
* [TOAST UI Chart](https://github.com/nhn/tui.chart)
140+
* [TOAST UI Editor](https://github.com/nhn/tui.editor)
141+
* [TOAST UI Image-Editor](https://github.com/nhn/tui.image-editor)
142+
* [TOAST UI Components](https://github.com/nhn?q=tui)
143+
144+
## 🚀 Used By
145+
* [TOAST Dooray! - Collaboration Service (Project, Messenger, Mail, Calendar, Drive, Wiki, Contacts)](https://dooray.com)
146+
* [NCP - Commerce Platform](https://www.e-ncp.com/)
147+
* [shopby](https://www.godo.co.kr/shopby/main.gd)
148+
* [payco-shopping](https://shopping.payco.com/)
149+
* [iamTeacher](https://teacher.iamservice.net)
150+
* [linder](https://www.linder.kr)
151+
152+
## 📜 License
153+
154+
This software is licensed under the [MIT](https://github.com/nhn/tui.calendar/blob/master/LICENSE) © [NHN](https://github.com/nhn).

apps/.browserslistrc

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
> 1%
2+
last 2 versions
3+
not ie <= 8

apps/calendar/.eslintignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
build/
2+
dist/
3+
node_modules/
4+
perf/

apps/calendar/.eslintrc.js

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
module.exports = {
2+
root: true,
3+
env: {
4+
browser: true,
5+
es6: true,
6+
node: true,
7+
jasmine: true,
8+
},
9+
parser: '@typescript-eslint/parser',
10+
plugins: ['prettier', 'react', 'react-hooks', '@typescript-eslint', 'jasmine'],
11+
extends: [
12+
'tui/es6',
13+
'plugin:@typescript-eslint/recommended',
14+
'prettier/@typescript-eslint',
15+
'plugin:jasmine/recommended',
16+
'plugin:react/recommended',
17+
'plugin:prettier/recommended',
18+
],
19+
parserOptions: {
20+
parser: 'typescript-eslint-parser',
21+
ecmaVersion: 2018,
22+
sourceType: 'module',
23+
},
24+
settings: {
25+
react: {
26+
pragma: 'h',
27+
version: '16.3',
28+
},
29+
},
30+
globals: {
31+
fixture: true,
32+
},
33+
rules: {
34+
'@typescript-eslint/explicit-module-boundary-types': 0,
35+
'@typescript-eslint/ban-types': 0,
36+
'@typescript-eslint/no-use-before-define': 0,
37+
'@typescript-eslint/explicit-function-return-type': 0,
38+
'@typescript-eslint/no-explicit-any': 0,
39+
'@typescript-eslint/no-shadow': 'error',
40+
'no-shadow': 'off',
41+
'no-use-before-define': 0,
42+
'react-hooks/rules-of-hooks': 'error',
43+
'react-hooks/exhaustive-deps': 'error',
44+
complexity: ['error', { max: 10 }],
45+
'max-nested-callbacks': ['error', { max: 10 }],
46+
'max-depth': ['error', 5],
47+
},
48+
};

apps/calendar/.storybook/main.js

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
const path = require('path');
2+
const postcssPrefixer = require('postcss-prefixer');
3+
const prefix = 'toastui-calendar-';
4+
5+
module.exports = {
6+
stories: ['../stories/**/*.stories.@(ts|tsx)'],
7+
webpackFinal: async (config) => {
8+
config.module.rules.push({
9+
test: /\.(ts|tsx)$/,
10+
use: [
11+
{
12+
loader: require.resolve('ts-loader'),
13+
},
14+
],
15+
});
16+
17+
config.module.rules.push({
18+
test: /\.s[ac]ss$/i,
19+
use: [
20+
'style-loader',
21+
'css-loader',
22+
{
23+
loader: 'postcss-loader',
24+
options: { plugins: [postcssPrefixer({ prefix })] },
25+
},
26+
'sass-loader',
27+
],
28+
});
29+
30+
config.resolve.alias = {
31+
...config.resolve.alias,
32+
'core-js/modules': path.resolve(__dirname, '..', 'node_modules/core-js/modules'),
33+
'@src': path.resolve(__dirname, '../src/'),
34+
'@t': path.resolve(__dirname, '../types/'),
35+
'@stories': path.resolve(__dirname, '../stories/'),
36+
};
37+
38+
return config;
39+
},
40+
};

apps/calendar/.storybook/manager.js

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { addons } from '@storybook/addons';
2+
import calendarTheme from './theme';
3+
4+
addons.setConfig({
5+
theme: calendarTheme,
6+
});

apps/calendar/.storybook/preview.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import '../src/sass/index.scss';

apps/calendar/.storybook/theme.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { create } from '@storybook/theming';
2+
3+
export default create({
4+
base: 'light',
5+
brandTitle: 'TOAST UI Calendar',
6+
brandUrl: 'https://ui.toast.com/tui-calendar',
7+
brandImage: 'https://user-images.githubusercontent.com/26706716/39230183-7f8ff186-48a0-11e8-8d9c-9699d2d0e471.png',
8+
});

0 commit comments

Comments
 (0)