1.2.0 • Published 1 year ago

@arwinvdv/core v1.2.0

Weekly downloads
-
License
GPL-2.0-or-later
Repository
github
Last release
1 year ago

@arwinvdv/core

npm version

This package does not need to be installed if you are using @arwinvdv/bundle.

Main package of easepick.

Documentation

https://easepick.com/packages/core

Options

NameTypeDefaultDescription
elementHTMLElement stringnullBind the datepicker to a element. Also is possible to bind to any element (not input) for example you need inline calendar.
docDocument ShadowRootdocumentMay be required if you need to pass ShadowRoot.
cssstring array function[]Pass a CSS file for picker. Don't mix types, if you are using css link then array should only contain links.
firstDaynumber1Day of start week. (0 - Sunday, 1 - Monday, 2 - Tuesday, etc…)
langstringen-USLanguage. This option affect to day names, month names via Date.prototype.toLocaleString() and also affect to plural rules via Intl.PluralRules.
dateDate string numbernullPreselect date. Date Object or Unix Timestamp (with milliseconds) or String (must be equal to option format).
formatstringYYYY-MM-DDThe default output format. See tokens format.
gridnumber1Number of calendar columns.
calendarsnumber1Number of visible months.
readonlybooleantrueAdd readonly attribute to element.
autoApplybooleantrueHide the apply and cancel buttons, and automatically apply a new date range as soon as two dates are clicked.
zIndexnumbernullzIndex of picker.
inlinebooleanfalseShow calendar inline.
scrollToDatebooleantrueScroll to the selected date on open.
headerboolean string HTMLElementfalseAdd header to calendar.
localeobject{ nextMonth: '', previousMonth: '', cancel: 'Cancel', apply: 'Apply'}Icon and text for buttons.
documentClickboolean functionfunctionHide picker on click outside picker element.
setupfunctionnull
pluginsarray[]List of plugins.

Methods

NameDescription
versionreturn 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/@arwinvdv/core@[version.number]/dist/index.css',
  ],
});
//
picker.setDate('2022-01-01');

Events

Events based on CustomEvent().

NameDescription
render
view
preselectEvent is called on select days (before submit selection). When autoApply option is false.
selectEvent is called when selection is submitted.

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/@arwinvdv/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

NameDescription
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/@arwinvdv/core@[version.number]/dist/index.css',
  ],
});

// add AmpPlugin to the picker
const ampPlugin = picker.PluginManager.addInstance('AmpPlugin');
// change plugin option
ampPlugin.options.resetButton = true;