# @easepick/core
TIP
This package does not need to be installed if you are using @easepick/bundle.
Main package of easepick.
# Quick example
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>easepick</title>
<script src="https://cdn.jsdelivr.net/npm/@easepick/datetime@[version.number]/dist/index.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@easepick/core@[version.number]/dist/index.umd.min.js"></script>
</head>
<body>
<input id="datepicker"/>
<script>
const picker = new easepick.create({
element: document.getElementById('datepicker'),
css: [
'https://cdn.jsdelivr.net/npm/@easepick/core@[version.number]/dist/index.css',
],
});
</script>
</body>
</html>
# Installation
# NPM
npm install @easepick/core
# CDN
<script src="https://cdn.jsdelivr.net/npm/@easepick/datetime@[version.number]/dist/index.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@easepick/core@[version.number]/dist/index.umd.min.js"></script>
# Usage
If you’re using a bundler, e.g. webpack (opens new window), you’ll need to import easepick.
import { easepick } from '@easepick/core';
Now you can create easepick
instance.
const picker = new easepick.create({
element: document.getElementById('datepicker'),
css: [
'https://cdn.jsdelivr.net/npm/@easepick/core@[version.number]/dist/index.css',
],
});
# Options
Name | Type | Default | Description |
---|---|---|---|
element | HTMLElement string | null | Bind the datepicker to a element. Also is possible to bind to any element (not input) for example you need inline calendar. |
doc | Document ShadowRoot | document | May be required if you need to pass ShadowRoot. |
css | string array function | [] | Pass a CSS file for picker. Don't mix types, if you are using css link then array should only contain links. |
firstDay | number | 1 | Day of start week. (0 - Sunday, 1 - Monday, 2 - Tuesday, etc…) |
lang | string | en-US | Language. This option affect to day names, month names via Date.prototype.toLocaleString() (opens new window) and also affect to plural rules via Intl.PluralRules (opens new window). |
date | Date string number | null | Preselect date. Date Object or Unix Timestamp (with milliseconds) or String (must be equal to option format). |
format | string | YYYY-MM-DD | The default output format. See tokens format. |
grid | number | 1 | Number of calendar columns. |
calendars | number | 1 | Number of visible months. |
readonly | boolean | true | Add readonly attribute to element . |
autoApply | boolean | true | Hide the apply and cancel buttons, and automatically apply a new date range as soon as two dates are clicked. |
zIndex | number | null | zIndex of picker. |
inline | boolean | false | Show calendar inline. |
header | boolean string HTMLElement | false | Add header to calendar. |
locale | object | { nextMonth: '', previousMonth: '', cancel: 'Cancel', apply: 'Apply' } | Icon and text for buttons. |
documentClick | boolean function | function | Hide picker on click outside picker element. |
setup | function | null | |
plugins | array | [] | List of plugins. |
# Methods
Name | Description |
---|---|
version | return version of picker. |
isShown() | Determine if the picker is visible or not. |
show() | Show the picker. |
hide() | Hide the picker. |
clear() | Clear the picker selection. |
gotoDate(date) | Change visible month. |
setDate(date) | Set date programmatically. |
getDate() | Get selected date. |
on(type, listener, options) | Add listener to container element. |
off(type, listener, options) | Remove listener from container element. |
trigger(type, detail) | Dispatch an event. |
renderAll() | Redraw the calendar layout. |
destroy() | Destroy the picker. |
# Example
const picker = new easepick.create({
element: document.getElementById('datepicker'),
css: [
'https://cdn.jsdelivr.net/npm/@easepick/core@[version.number]/dist/index.css',
],
});
//
picker.setDate('2022-01-01');
# Events
Events based on CustomEvent() (opens new window).
Name | Description |
---|---|
render | |
view | |
preselect | Event is called on select days (before submit selection). When autoApply option is false . |
select | Event is called when selection is submitted. |
clear |
It is also allowed to use default events such as click
, keydown
, etc.
# Example
const picker = new easepick.create({
element: document.getElementById('datepicker'),
css: [
'https://cdn.jsdelivr.net/npm/@easepick/core@[version.number]/dist/index.css',
],
setup(picker) {
picker.on('view', (e) => {
const { view, date, target } = e.detail;
// do something
});
},
});
# PluginManager
PluginManager
allows you to manage plugins of created picker.
# Methods
Name | Description |
---|---|
getInstance(pluginName) | Returns the plugin instance. pluginName is a string (eg.: RangePlugin ). |
addInstance(pluginName) | Adds a plugin to the picker. Returns an instance of the added plugin. |
removeInstance(pluginName) | Removes the plugin from the picker.Returns a boolean result. |
reloadInstance(pluginName) | Removes the plugin from the picker and adds it again. Returns an instance of the added plugin. |
# Example
// example use bundle version
const picker = new easepick.create({
element: document.getElementById('datepicker'),
css: [
'https://cdn.jsdelivr.net/npm/@easepick/core@[version.number]/dist/index.css',
],
});
// add AmpPlugin to the picker
const ampPlugin = picker.PluginManager.addInstance('AmpPlugin');
// change plugin option
ampPlugin.options.resetButton = true;