1.0.0 • Published 2 years ago

flatpickr-hijri-calendar v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

flatpickr-hijri-calendar - A plugin for flatpickr (javascript datetime picker)

default airbnb airbnb

This plugin is meant to be used with flatpickr. It will display the hijri dates in the calendar picker.

Installation

npm install --save flatpickr-hijri-calendar

This plugin depends on luxon to display hijri dates.

npm install --save flatpickr-hijri-calendar

Setup

// (1) Import JS 
import flatpickr from "flatpickr";
import "flatpickr/dist/l10n/ar";
import flatpickrHijriCalendar from "flatpickr-hijri-calendar";
import { DateTime } from "luxon";

// (2) Import the css files
import 'flatpickr/dist/flatpickr.css'
import "flatpickr-hijri-calendar/dist/flatpickr-hijri-calendar.css";

// Or in a saas file:
// @import "~flatpickr/dist/flatpickr.css";
// @import "~flatpickr-hijri-calendar/dist/flatpickr-hijri-calendar.css";


// (3) Add the plugin to flatpickr plugins option.
flatpickr('.date', {
    locale: "ar",
    plugins: [
        flatpickrHijriCalendar(DateTime, {
            showHijriToggle: true, // flase if you don't want to show the toggle button.
        }),
    ],
});

Using CDN

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>flatpickr hijri calendar</title>

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr@4.6.9/dist/flatpickr.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr-hijri-calendar@1.0.0/dist/flatpickr-hijri-calendar.min.css">

</head>
<body>
<div style="padding:15vw">
    <div>
        <div>Date 1</div>
        <label>
            <input placeholder="Select Date..." class=date />
        </label>
    </div>
</div>

<!-- classList polyfill for IE9 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/classlist/1.2.20171210/classList.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/flatpickr@4.6.9/dist/flatpickr.js"></script>
<script src="https://cdn.jsdelivr.net/npm/flatpickr@4.6.9/dist/l10n/ar.js"></script>
<script src="https://cdn.jsdelivr.net/npm/luxon@2.0.2/build/global/luxon.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/flatpickr-hijri-calendar@1.0.0/dist/flatpickr-hijri-calendar.min.js"></script>

<script>
    const fp = flatpickr('.date', {
        locale: 'ar',
        plugins: [
            hijriCalendarPlugin(luxon.DateTime, {
                showHijriDates: true,
                showHijriToggle: false,
            }),
        ]
    });
</script>
</body>
</html>

Mobile Support

If you want to show hijri dates on mobile, you must disable flatpickr mobile support.

<script>
    const fp = flatpickr('.date', {
        disableMobile: "true" // Important to show hijri dates on mobile.
        locale: 'ar',
        plugins: [
            hijriCalendarPlugin(luxon.DateTime, {
                showHijriDates: true,
                showHijriToggle: false,
            }),
        ]
    });
</script>