# @segor/simple-datepicker

> [![npm](https://img.shields.io/npm/v/@segor/simple-datepicker?label=npm)](https://www.npmjs.com/package/@segor/simple-datepicker) [![GitHub package.json version](https://img.shields.io/github/package-json/v/Sviridov-e/simple-datepicker-core?color=green&la

Latest version **1.0.2** (published 2021-09-03) · MIT license · 0 weekly downloads

## Install

```sh
npm install @segor/simple-datepicker
pnpm add @segor/simple-datepicker
yarn add @segor/simple-datepicker
bun add @segor/simple-datepicker
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2021-09-03 |
| First published | 2021-08-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=10 |
| Dependencies | 0 |
| Unpacked size | 52.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Sviridov-E |
| Maintainers | segor |

## Links

- npm: https://www.npmjs.com/package/@segor/simple-datepicker
- npm.io page: https://npm.io/package/@segor/simple-datepicker

## Recent versions

- 1.0.2 (latest) — 2021-09-03
- 1.0.1 — 2021-08-29
- 1.0.0 — 2021-08-29

## README

# Simple Datepicker 
[![npm](https://img.shields.io/npm/v/@segor/simple-datepicker?label=npm)](https://www.npmjs.com/package/@segor/simple-datepicker) [![GitHub package.json version](https://img.shields.io/github/package-json/v/Sviridov-e/simple-datepicker-core?color=green&label=github)](https://github.com/Sviridov-E/simple-datepicker-core)

Данная библиотека написана в качестве вспомогательного инструмента при создании комопнента выбора даты. 

## Установка
```bash
npm install @segor/simple-datepicker
```
или
```bash
yarn add @segor/simple-datepicer
```

## Инициализация 
```ts
import DatepickerCore from "@segor/simple-datepicker";

const datepicker = new DatepickerCore();
```

## Методы

### getMonthSlice
```ts
const slice = datepicker.getMonthSlice(month?: number, year?:number);
```
Возвращает Slice элемент представляющий собой массив всех дней месяца, разбитых по неделям.
Последние месяца кеширует и сохраняет в свойство **slices**.
#### Например:
Результатом вызова
```ts
datepicker.getMonthSlice(6, 2021)
```
Будет
```ts
[
  [undefined, undefined, undefined, 1, 2, 3, 4],
  [5, 6, 7, 8, 9, 10, 11],
  [12, 13, 14, 15, 16, 17, 18],
  [19, 20, 21, 22, 23, 24, 25],
  [26, 27, 28, 29, 30, 31, undefined]
]
```
По данной структуре удобно проходить нативными методами массивов при создании календаря.

---
### getMonthTails
```ts
const tails = datepicker.getMonthTails(month?:  number, year?:number);
```
Возвращает объект с двумя свойствами:

 - **prev** - последняя неделя предыдущего месяца.
 - **next** - первая неделя следующего месяца.

#### Например:
Результатом вызова
```ts
datepicker.getMonthTails(6, 2021);
```
Будет
```ts
{
	prev: [28, 29, 30, undefined, undefined, undefined, undefined],
	next: [undefined, undefined, undefined, undefined, undefined, undefined, 1]
}
```
___
### setShownDate 
```ts
datepicker.setShownDate(month?: number, year?: number);
```
Устанавливает значение свойства **shownDate**. По умолчанию аргументы являются текущей датой.

---
### setSelectedDate 
```ts
datepicker.setSelectedDate(month?: number, year?: number);
```
Устанавливает значение свойства **selectedDate**. По умолчанию аргументы являются текущей датой.

---
### cleanSlices
```ts
datepicker.cleanSlices();
```
Очищает кэш с посчитаными месяцами.

## Статические методы

### getDaysInMonth
```ts
const daysInMonth: number = DatepickerCore.getDaysInMonth(month: number, year: number);
```
Или
```ts
const daysInMonth: number = DatepickerCore.getDaysInMonth(date: Date);
```
Возвращает количество дней в месяце.
#### Например:
```ts
DatepickerCore.getDaysInMonth(6, 2021) // returns 31
```

---
### monthStartsWith 
```ts
const weekDay: number = DatepickerCore.monthStartsWith(month:  number, year:  number);
```
Или
```ts
const weekDay: number = DatepickerCore.monthStartsWith(date: Date);
```
Возвращает день недели, с которого начинается месяц, в виде номера. Понедельник равен нулю.
#### Например:
```ts
DatepickerCore.monthStartsWith(6, 2021) // returns 3
```
## Свойства

### shownDate
```ts
const date: Date = datepicker.shownDate
```
Используется для хранения даты, месяц которой в данный момент отображен в календаре.

---
### selectedDate
```ts
const date: Date = datepicker.shownDate
```
Используется для хранения даты, которую выбрал пользователь.

---
_Source: https://npm.io/package/@segor/simple-datepicker · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
