Skip to content

pitymaia/window-date-picker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Window Date Picker

Window Date Picker is a JavaScript library for setting and choosing date and hour.

NPM

npm install --save-dev window-date-picker

Yarn

yarn add window-date-picker --dev 

Installation

import WindowDatePicker from 'window-date-picker';

const picker = new WindowDatePicker({
    el: '#picker',
    toggleEl: '#toggle',
    inputEl: '#input'
});

Add the css file.

<link rel="stylesheet" href="/node_modules/window-date-picker/dist/css/window-date-picker.min.css" />

Settings

Option Type Default Description
value String|Number|Date null The picker's initial value.
el String|HTMLElement* null Main element which, picker is created below.
inputEl String|HTMLElement* null Input element.
toggleEl String|HTMLElement* null Toggle element.
type String "DATE" Sets picker type. (DATE, HOUR, DATEHOUR)
dateType String "DD/MM/YYYY" Sets date type. (DD/MM/YYYY, MM/DD/YYYY)
hourType String "12" Sets hour type. (12, 24)
allowEmpty Boolean true A boolean value that indicates whether null and empty value are allowed or not.
showButtons Boolean false A boolean value that indicates whether the buttons are visible or not.
inputToggle Boolean true If sets true, opens the picker when the input is clicked.
lang String "en" Changes language of the picker. You have to create a language except “en (English)” before use it.
orientation Boolean false If it is set true, up arrow increases value, down arrow decreases. If it is set false, vice versa.
showArrowButtons Boolean false Displays increase and decrase buttons instead of arrows.

*: You can give an HTML element or a CSS selector (like #carousel, .container > div:first-child)

Methods

Method Params Return Description
get { value: String, day: Number, month: Number, year: Number, hour: Number, minute: Number, am: Boolean } Returns the value.
set value: String|Number|Date void Sets the value.
open void Opens the picker.
close void Closes the picker.
toggle void Toggles the picker.
save void Saves the selection.
cancel void Cancels the selection.
destroy void Destroys the picker.

Events

Event Description
wdp.change Fires when the value changes.
wdp.open Fires when the picker opens.
wdp.close Fires when the picker closes.
wdp.save Fires when the selection is saved.
wdp.cancel Fires when the picker is closed without being saved.
wdp.destroy Fires when the picker is destroyed.
import WindowDatePicker from 'window-date-picker';

const picker = new WindowDatePicker({
  el: '#picker'
});

picker.el.addEventListener('wdp.open', () => {
  console.log('open');
});

picker.el.addEventListener('wdp.close', () => {
  console.log('close');
});

Set Position

When window is scrolled or resized and triggers scroll or resize event, Window Date Picker repositions the picker. If you use third party scroll or resize library that don't trigger window resize or scroll event, you can manually call method setPosition to reposition the picker.

var picker = new WindowDatePicker({
  el: '#picker'
});

...
...
...
...
picker.setPosition();

Language

You can create a language to use with lang attribute.

import WindowDatePicker from 'window-date-picker';

WindowDatePicker.createLanguage('tr', {
    DAYS_ABBR: ['', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt', 'Paz'],
    MONTHS: ['', 'Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'],
    MONTHS_ABBR: ['', 'Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'],
    AM_PM: ['ÖÖ', 'ÖS'],
    BUTTONS: ['İPTAL', 'TAMAM'],
    INVALID_DATE: 'Geçersiz Tarih'
});

new WindowDatePicker({
  el: '#picker',
  lang: 'tr'
});

Theme

You can change colors of the picker by adding a css class to main element.

<div id="picker"></div>
<div id="blue-picker" class="wdp-blue"></div>
<div id="cyan-picker" class="wdp-cyan"></div>
<div id="dark-picker" class="wdp-dark"></div>
<div id="gray-picker" class="wdp-gray"></div>
<div id="green-picker" class="wdp-green"></div>
<div id="light-picker" class="wdp-light"></div>
<div id="purple-picker" class="wdp-purple"></div>
<div id="red-picker" class="wdp-red"></div>
<div id="yellow-picker" class="wdp-yellow"></div>

You can also create your own theme for your picker.

Create a new file under theme folder.

// theme/_my_theme.scss

$color: #EEA55B;
$color-dark: #000;
$header-background: $color;
$header-text-color: $color-dark;
$header-icon-color: darken($color, 10%);
$list-el-text-active: $color-dark;
$list-el-background-active: $color;
$hour-input-text: $color-dark;
$button-text: $color-dark;

.wdp.wdp-my-theme {
    @include insert-theme();
}

Import your theme to _theme.scss file`.

// _theme.scss
...
@import 'theme/purple';
@import 'theme/red';
@import 'theme/yellow';
@import 'theme/my_theme';

Bundle css code.

$ gulp css
$ gulp minify-css

You are ready to use your theme.

<div id="picker" class="wdp-my-theme"></div>

IE Support

IE 10 is not supported and patches to fix problems will not be accepted.

License

Window Date Picker is provided under the MIT License.

Related Projects

About

JavaScript library for setting and choosing date and hour.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 76.3%
  • CSS 23.7%