# Common Libs
![npm](https://img.shields.io/npm/v/@newbiz/common-libs)
![node](https://img.shields.io/node/v/@newbiz/common-libs)
![types](https://img.shields.io/npm/types/@newbiz/common-libs)
![downloads](https://img.shields.io/npm/dw/@newbiz/common-libs)
![license](https://img.shields.io/npm/l/@newbiz/common-libs)

신사업개발실 서비스/어드민 프론트엔드 공통 라이브러리

> This project was generated by [Vessel](https://www.npmjs.com/package/@mornya/vessel).
  For a simple and quick reference, click [here](https://mornya.github.io/documents/guide/vessel.md).

## About
UI 개발에 사용되는 모듈들에 대해 집합적인 현태로 제공되는 패키지.

## Installation
해당 모듈을 사용 할 프로젝트에서는 아래와 같이 의존성 모듈로 설치한다.
```bash
$ npm install --save @newbiz/common-libs
or
$ yarn add @newbiz/common-libs
```

## Modules in the package
본 패키지에는 아래와 같은 라이브러리를 포함한다.<br>
제공되는 모듈과 메소드 사용법 등은 코드 스니핏을 참고한다.

### ArrayList module
배열 요소 조작을 위한 함수 제공 모듈.

### Base64 module
Base64 문자열 인코딩 / 디코딩 모듈.

### Branch module
그룹화 가능한 형태의 리스트를 트리형태로 재구성하여 표시하도록 처리하는 모듈.<br>
생성하고자 하는 노드의 상위 노드에 대한 항목이 존재하지 않다면 자동으로 상위 노드를 생성해주며, 해당 노드에서는 상위 노드에 대한 키를 parent로 순서대로 지정해 주어야 한다.<br>
즉, 1depth 키가 'A', 2depth 키가 'B'이고 3depth의 노드를 생성한다면 1depth, 2depth는 존재하지 않아도 되고 3depth에서 parent: \['A','B'\]로 지정하면 된다.

### Cookie module
쿠키 설정 / 불러오기 모듈.

### DateFormat module
날짜 변환 함수 제공 모듈.

### Holidays module
기간 한정적인 대한민국 공휴일 정보 제공 모듈.

### Platform module
UserAgent를 파싱하여 OS 및 브라우저 버전 등의 정보를 제공 (WMP/WSP 등의 앱에이전트 포함)

### SimpleTree module
리스트 형태를 트리구조로 생성하는 모듈.<br>
`Branch` 모듈과 달리 트리형태로의 표현을 위해 전체 노드 데이터를 포함하고 있어야 하며, `id`, `label`, `parent` 등 세 개의 키값이 모든 노드에 필수적으로 포함되어 있어야 트리형태로 구성이 가능하다.

### Text module
텍스트/숫자 처리 관련 모듈.

### UI module
UI 관련 처리 모듈.

### Version module
SEMVER 형태의 버전 체크 모듈.

## Run your tests
[lintest](https://www.npmjs.com/package/@lintest/cli) 모듈을 사용하여 테스트 수행.<br>
> npm install -g \@lintest/cli
```bash
# test
$ npm run test

# test with watch
$ npm run test:watch

# generate test coverage data
$ npm run test:coverage
```

## Lints and fixes files
[lintest](https://www.npmjs.com/package/@lintest/cli) 모듈을 사용하며 린트 수행.<br>
> npm install -g \@lintest/cli
```bash
# lint
$ npm run lint

# lint with auto fix
$ npm run lint:fix
```

## Change Log
해당 프로젝트의 [CHANGELOG.md](CHANGELOG.md) 파일 참조.

## License
해당 프로젝트의 [LICENSE](LICENSE) 파일 참조.
