hijri-datepicker-component
Version:
Forked and enhanced version of datepicker-hijri with additional features. The 'Hijri Datepicker' is a user interface component designed to facilitate the selection and display of Hijri (Islamic) dates in applications. It offers a visual calendar interface
80 lines (55 loc) • 4.46 kB
Markdown

# Forked and enhanced version of datepicker-hijri with additional features.
# Hijridate picker web component, simple and can be integrated easily with any frameworks. (محدد التاريخ الهجري)
# This package created to support my company project and been updated with a CR or Bugs created by our testers
# Feel free to request or enhance the code with a PR.
# Installation
## Stand alone:
* Use NPM
```html
npm i hijri-datepicker-component
```
* Use CDN
```html
<script src="https://cdn.jsdelivr.net/npm/hijri-datepicker-component@latest/dist/datepicker-hijri/datepicker-hijri.js"></script>
```
* Download files
1. Download all files in the `build` directory
2. Include the script `datepicker-hijri.js` file like in the code below
```html
<script src="build/datepicker-hijri.js"></script>
```
# Usage
## Attributes:
| name | required | description |
|-----------------|----------|-------------|
| reference | yes | an identifier for the element where the datepicker will appear it must be an id for an html element |
| placement | no | the placement of the the datepicker 'bottom', 'top', 'right', 'left' and 'auto' `default:` bottom, you can use any placement in [popper.js](https://popper.js.org/popper-documentation.html#Popper.placements) |
| date-format | no | the date format, it is string, `default:` iYYYY/iMM/iDD, any format in [moment-hijri](https://github.com/xsoh/moment-hijri) will work|
| selected-date | no | the selected date it is string with the same format of `date-format` prop |
| placeholder | no | |
| on-date-select-close | no | if you want the datepicker to disapeare on chosing the date only add |
| auto-set-selected-date | no | if you want the datepicker to auto send initial value for today |
| min-date | no | if you want the datepicker to set minimum date |
| max-date | no | if you want the datepicker to set maximum date |
## Example
In the Example below the `input` with id calender is the reference for the datepicker-hijri web component, so if you click or focus on the input the datepicker will be shown.
```html
<input type="text" id="calender">
<datepicker-hijri reference="calender" placement="bottom" date-format="iYYYY/iMM/iDD" selected-date="1441/02/01"></datepicker-hijri>
```
## Event `onchange`
in any change on the date, will be firing a `change` event. so you can listen and respond to the change.
```html
<input type="text" id="calender" onchange="console.log('changed')">
<!-- ^^^^^^^^ -->
<datepicker-hijri reference="calender" placement="bottom" date-format="iYYYY/iMM/iDD" selected-date="1441/02/01"></datepicker-hijri>
```
## Demo
[Codepen Hijridate picker](https://codepen.io/hanigerges/pen/BabjaOQ)

## how it works
So the datepicker shown and every thing is good, but what is happening, when the user chooses the day, the datepicker will modify the attribute `value` on the reference with the new value.
# Credits
- [@xsoh](https://github.com/xsoh/moment-hijri) Thank for the awesome package moment-hijir.
- [@FezVrasta](https://github.com/FezVrasta/popper.js) Thank you for the package popper.js.