npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ng2-jdate-picker

v2.0.4

Published

This is a configurable jalali (persian, khorshidi, shamsi) date-picker build for Angular 2 or 4 applications and uses [jalali-moment](https://github.com/fingerpich/moment-jalaali) as its dependency. it's only Angular! No jQuery. [DEMO](https://fingerpich.

Downloads

62

Readme

Angular Jalali Date Picker

This is a configurable jalali (persian, khorshidi, shamsi) date-picker build for Angular 2 or 4 applications and uses jalali-moment as its dependency. it's only Angular! No jQuery. DEMO

Read this in other languages: فارسی

Build Status npm version Package Quality dependency Quality dev dependency Quality Codacy Badge Codacy Badge

Screenshots

Installation:

  1. Download from npm: npm install ng2-jalali-date-picker --save
  2. import the DpDatePickerModule module in typescript (.ts) or es6 files like below:
    import {DpDatePickerModule} from 'ng2-jalali-date-picker';
  3. Add DpDatePickerModule to your module imports:
 @NgModule({
   ...
   imports: [
     ...
     DpDatePickerModule
   ]
 })

How to use

 <dp-date-picker 
   dir="rtl"
   [(ngModel)]="dateObject"
   mode="day"
   placeholder="تاریخ"
   theme="dp-material">
 </dp-date-picker>
 dateObject = "";
 
 //OR if you have initial value you could use following code
 import * as moment from 'jalali-moment';
 dateObject = moment('1395-11-22','jYYYY,jMM,jDD');

Demo

How to use the output as a jalali (shamsi) date

import * as moment from 'jalali-moment';
dateObject.format('jYYYY/jMM/jD)'

read jalali-moment

How to use it with system.js

this Demo is using system.js.

Attributes:

all attributes in the following table could be used as

// a future selector
<dp-date-picker mode="day" placeholder="تاریخ" [minDate]="moment()" [(ngModel)]="selectedDate"></dp-date-picker>

| Name | Type | Default | Applies To | Description | |----------------------|:-----------------------------------:|:------------------:|:-------------------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | dir | rtl|ltr | ltr | the type of the calender which will be displayed in the picker | | mode | "day"\|"month"\|"time"\|"daytime" | "day" | All | the mode of the calender which will be displayed in the picker | | disabled | Boolean | false | All | If set to true the input would be disabled | | placeholder | String | "" | All | The date-picker input placeholder | | required | Boolean | undefined | All | This is a validation rule, if there won't be any selected date then the containing form will be invalid. | | minDate | Moment\|String | undefined | day\|month\|daytime | This is a validation rule, if the selected date will be before minDate the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | maxDate | Moment\|String | undefined | day\|month\|daytime | This is a validation rule, if the selected date will be after maxDate the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | minTime | Moment\|String | undefined | time | This is a validation rule, if the selected date will be before minTime the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | maxTime | Moment\|String | undefined | time | This is a validation rule, if the selected date will be after maxTime the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | theme | String | "" | All | Theme is a class added to the popup container (and inner components) - this will allow styling of the calendar when it's appended to outer element (for example - body). There is a built in theme named dp-material, you can find it in the demo. | | config | IDatePickerConfig | See Below | All | Configuration object - see description below. |

Configuration:

In order to provide configurations to the date-picker you need to pass it to the dp-date-picker component:

<dp-date-picker [(ngModel)]="selectedDate" [config]="datePickerConfig"></dp-date-picker>
datePickerConfig = {
    drops: 'up',
    format: 'YY/M/D'
}

Here are the available configurations:

| Name | Type | Default | Applies To | Description | |-----------------------------|:---------------------:|:-------------------------------------------------------------------------:|:-------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | appendTo | String\|HTMLElement | undefined | All | The selector/element to which the calendar popup will append to (this is useful for overflow: hidden container issues). Please note that the appendTo element will be set with position absolute if it has position static (the default position). | | locale | String | en | All | Localisation of language (see in the demo all supported locales) | | disableKeypress | Boolean | false | All | Disables the possibility to change the date value by typing it - changing the date would be possible only from the picker | | drops | 'up'\|'down' | down | All | Whether the picker appears below or above the input element. | | format | String | "DD-MM-YYYY" | All | If ngModel provided as String the format is required, this format also will be used as the input format style. | | onOpenDelay | Number | 0 | All | The delay (in ms) between the date picker focusing and the date-picker popup apparel | | opens | 'right'\|'left' | right | All | Whether the picker appears aligned to the left or to the right the input element. | | closeOnSelect | Boolean | true | day\|month | If set to true will close the date-picker after choosing a date from the calender, otherwise, won't. | | closeOnSelectDelay | Number | 100 | day\|month | The delay (in ms) between the date selection and the date-picker collapse | | allowMultiSelect | Boolean | undefined | day\|month | If set to true will allow for choosing multiple dates. false will force a single selection. If undefined, the picker will attempt to guess based on the type of the input value. | | dayBtnFormat | String | DD | day\|daytime | The day format of the day button in the calendar. | | dayBtnFormatter | (Moment) => String | undefined | day\|daytime | The formatter (callback function) of the day button in the calendar. | | enableMonthSelector | Boolean | true | day\|daytime | Whether to enable/disable the selection of a moth granularity picker. | | firstDayOfWeek | String | "su" | day\|daytime | The first day of the calendar's week. Should be one of: "su", "mo", "tu", "we", "th", "fr", "sa" | | isDayDisabledCallback | (Moment) => boolean | undefined | day\|daytime | Callback which should indicate if specific day is disabled. | | monthFormat | String | "MMM-YYYY" | day\|daytime | The date format of the day calendar, the one that seen above the calendar days. Will be overwritten if monthFormatter provided. | | monthFormatter | (Moment) => String | undefined | day\|daytime | The date formatter (callback function) of the day calendar, the one that seen above the calendar days. | | showNearMonthDays | Boolean | true | day\|daytime | Whether to show/hide next and previous month days. | | showWeekNumbers | Boolean | false | day\|daytime | Whether to show/hide the week number of each week (iso week number). | | isMonthDisabledCallback | (Moment) => boolean | undefined | day\|month\|daytime | Callback which should indicate if specific month is disabled (month selector). | | max | Moment\|String | undefined | day\|month\|daytime | Disables all dates (on the date-picker) that are set to after the max, note that if invalid date would be set by the input then the date picker value would be the max date but the input will show the user typed date. | | min | Moment\|String | undefined | day\|month\|daytime | Disables all dates (on the date-picker) that are set to before the min, note that if invalid date would be set by the input then the date picker value would be the min date but the input will show the user typed date. | | monthBtnFormat | String | DD | day\|month\|daytime | The month format of the month button in the calendar. | | monthBtnFormatter | (Moment) => String | undefined | day\|month\|daytime | The formatter (callback function) of the month button in the calendar. | | yearFormat | String | "YYYY" | day\|month\|daytime | The date format of the month calendar, the one that seen above the calendar months. Will be overwritten if yearFormatter provided. (available when enableMonthSelector is set to true). | | yearFormatter | (Moment) => String | undefined | day\|month\|daytime | The date formatter (callback function) of the month calendar, the one that seen above the calendar months. (available when enableMonthSelector is set to true). | | hours12Format | String | "hh" | daytime\|time | The hours format of the time select when showTwentyFourHours is false. | | hours24Format | String | "HH" | daytime\|time | The hours format of the time select when showTwentyFourHours is true. | | maxTime | Moment\|String | undefined | daytime\|time | Disables arrow buttons on the time select that would make the time after the maxTime. | | meridiemFormat | String | "A" | daytime\|time | The AM/PM format of the time select when showTwentyFourHours is false. | | minTime | Moment\|String | undefined | daytime\|time | Disables arrow buttons on the time select that would make the time before the minTime. | | minutesFormat | String | "mm" | daytime\|time | The minutes format of the time select. | | minutesInterval | number | 1 | daytime\|time | The number of minutes that will be added/subtracted when clicking up/down arrows on the time select. | | secondsFormat | String | "ss" | daytime\|time | The seconds format of the time select. | | secondsInterval | number | 1 | daytime\|time | The number of seconds that will be added/subtracted when clicking up/down arrows on the time select. | | showSeconds | boolean | false | daytime\|time | If set to true will show seconds in the time select, otherwise, won't. | | showTwentyFourHours | boolean | false | daytime\|time | If set to true will show hours in 24 hour format. false will show hours in 12 hours format and append AM/PM to the end of the time select. | | timeSeparator | String | ":" | daytime\|time | The separator that will be placed between hours and minutes and between minutes and seconds on the time select. | | showMultipleYearsNavigation | boolean | false | day\|month\|daytime | If set to true will show buttons to navigate by multiple years (10 by default) | | multipleYearsNavigateBy | number | 10 | day\|month\|daytime | Number of years to navigate when showMultipleYearsNavigation is true | | calendarSystem | ECalendarSystem | ECalendarSystem.jalali | If ngModel provided as String the format is required, this format also will be used as the input format style. |

API:

In order to use the date-picker api user the @ViewChild annotation in the date-picker containing component class, take at the example below:
Container component:

import {Component, ViewChild} from '@angular/core';
import {DatePickerComponent} from 'ng2-jalali-date-picker';

@Component({
selector: 'my-container',
template: `
<div>
    <h1>Container</h1>
    <dp-date-picker #dayPicker></dp-date-picker>
    <button (click)="open()"></button>
    <button (click)="close()"></button>
</div>
`
});
class MyContainer {
    @ViewChild('dayPicker') datePicker: DatePickerComponent;

    open() {
        this.datePicker.api.open();
    }

    close() {
         this.datePicker.api.close();
    }
}  

Here is the list of APIs:

| Name | Signature | Description | |----------------------|:---------------:|------------------------| | open | () => void | Opens the date picker | | close | () => void | Closes the date picker |

Inline - Day Calendar

You can use the <dp-day-calendar> component to display the calendar widget without an associated input box.

i.e.

<dp-day-calendar [(ngModel)]="selectedDate" [config]="config"></dp-day-calendar>

Attributes:

| Name | Type | Default | Description | |----------------------|:-------------------:|:------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | required | Boolean | undefined | This is a validation rule, if there won't be any selected date then the containing form will be invalid. | | minDate | Moment\|String | undefined | This is a validation rule, if the selected date will be before minDate the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | maxDate | Moment\|String | undefined | This is a validation rule, if the selected date will be after maxDate the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | theme | String | '' | Theme is a class added to the popup container (and inner components) - this will allow styling of the calendar when it's appended to outer element (for example - body). There is a built in theme named dp-material, you can find it in the demo. | | config | IDayPickerConfig | See Below | Configuration object - see description below. |

Configuration:

In order to provide configurations to the day-calendar you need to pass it to the dp-day-calendar component:

<dp-day-calendar [(ngModel)]="selectedDate" [config]="config"></dp-day-calendar>

Here are the available configurations:

| Name | Type | Default | Description | |-----------------------------|:--------------------:|:-------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | format | String | "DD-MM-YYYY" | If ngModel provided as String the format is required, this format also will be used as the input format style. | | firstDayOfWeek | String | "su" | The first day of the calendar's week. Should be one of: "su", "mo", "tu", "we", "th", "fr", "sa" | | monthFormat | String | "MMM-YYYY" | The date format of the day calendar, the one that seen above the calendar days. Will be overwritten if monthFormatter provided. | | monthFormatter | (Moment) => String | undefined | The date formatter (callback function) of the day calendar, the one that seen above the calendar days. | | yearFormat | String | "YYYY" | The date format of the month calendar, the one that seen above the calendar months. Will be overwritten if yearFormatter provided. (available when enableMonthSelector is set to true). | | yearFormatter | (Moment) => String | undefined | The date formatter (callback function) of the month calendar, the one that seen above the calendar months. (available when enableMonthSelector is set to true). | | allowMultiSelect | Boolean | undefined | If set to true will allow for choosing multiple dates. false will force a single selection. If undefined, the picker will attempt to guess based on the type of the input value. | | min | Moment\|String | undefined | Disables all dates (on the date-picker) that are set to before the min, note that if invalid date would be set by the input then the date picker value would be the min date but the input will show the user typed date. | | max | Moment\|String | undefined | Disables all dates (on the date-picker) that are set to after the max, note that if invalid date would be set by the input then the date picker value would be the max date but the input will show the user typed date. | | showNearMonthDays | Boolean | true | Whether to show/hide next and previous month days. | | showWeekNumbers | Boolean | false | Whether to show/hide the week number of each week (iso week number). | | enableMonthSelector | Boolean | true | Whether to enable/disable the selection of a moth granularity picker. | | isDayDisabledCallback | (Moment) => boolean| undefined | Callback which should indicate if specific day is disabled. | | isMonthDisabledCallback | (Moment) => boolean| undefined | Callback which should indicate if specific month is disabled (month selector). | | dayBtnFormat | String | DD | The day format of the day button in the calendar. | | dayBtnFormatter | (Moment) => String | undefined | The formatter (callback function) of the day button in the calendar. | | monthBtnFormat | String | DD | The month format of the month button in the calendar. | | monthBtnFormatter | (Moment) => String | undefined | The formatter (callback function) of the month button in the calendar. | | showMultipleYearsNavigation | boolean | false | If set to true will show buttons to navigate by multiple years (10 by default) | | multipleYearsNavigateBy | number | 10 | Number of years to navigate when showMultipleYearsNavigation is true |

Inline - Month Calendar

You can use the <dp-month-calendar> component to display the calendar widget without an associated input box.

i.e.

<dp-month-calendar [(ngModel)]="selectedDate" [config]="config"></dp-month-calendar>

Attributes:

| Name | Type | Default | Description | |----------------------|:--------------------:|:--------------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | required | Boolean | undefined | This is a validation rule, if there won't be any selected date then the containing form will be invalid. | | minDate | Moment\|String | undefined | This is a validation rule, if the selected date will be before minDate the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | maxDate | Moment\|String | undefined | This is a validation rule, if the selected date will be after maxDate the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | theme | String | '' | Theme is a class added to the popup container (and inner components) - this will allow styling of the calendar when it's appended to outer element (for example - body). There is a built in theme named dp-material, you can find it in the demo. | | config | IMonthPickerConfig | See Below | Configuration object - see description below. |

Configuration:

In order to provide configurations to the month-calendar you need to pass it to the dp-month-calendar component:

<dp-month-calendar [(ngModel)]="selectedDate" [config]="config"></dp-month-calendar>

Here are the available configurations:

| Name | Type | Default | Description | |-----------------------------|:--------------------:|:-------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | format | String | "DD-MM-YYYY" | If ngModel provided as String the format is required, this format also will be used as the input format style. | | yearFormat | String | "YYYY" | The date format of the month calendar, the one that seen above the calendar months. Will be overwritten if yearFormatter provided. (available when enableMonthSelector is set to true). | | yearFormatter | (Moment) => String | undefined | The date formatter (callback function) of the month calendar, the one that seen above the calendar months. (available when enableMonthSelector is set to true). | | allowMultiSelect | Boolean | undefined | If set to true will allow for choosing multiple dates. false will force a single selection. If undefined, the picker will attempt to guess based on the type of the input value. | | min | Moment\|String | undefined | Disables all dates (on the date-picker) that are set to before the min, note that if invalid date would be set by the input then the date picker value would be the min date but the input will show the user typed date. | | max | Moment\|String | undefined | Disables all dates (on the date-picker) that are set to after the max, note that if invalid date would be set by the input then the date picker value would be the max date but the input will show the user typed date. | | isMonthDisabledCallback | (Moment) => boolean| undefined | Callback which should indicate if specific month is disabled (month selector). | | monthBtnFormat | String | DD | The month format of the month button in the calendar. | | monthBtnFormatter | (Moment) => String | undefined | The formatter (callback function) of the month button in the calendar. | | showMultipleYearsNavigation | boolean | false | If set to true will show buttons to navigate by multiple years (10 by default) | | multipleYearsNavigateBy | number | 10 | Number of years to navigate when showMultipleYearsNavigation is true | | calendarSystem | ECalendarSystem | ECalendarSystem.jalali | If ngModel provided as String the format is required, this format also will be used as the input format style. |

Inline - Time Select

You can use the <dp-time-select> component to display the time select widget without an associated input box.

i.e.

<dp-time-select [(ngModel)]="selectedDate" [config]="config"></dp-time-select>

Attributes:

| Name | Type | Default | Description | |----------------------|:--------------------:|:--------------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | required | Boolean | undefined | This is a validation rule, if there won't be any selected date then the containing form will be invalid. | | minTime | Moment\|String | undefined | This is a validation rule, if the selected date will be before minTime the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | maxTime | Moment\|String | undefined | This is a validation rule, if the selected date will be after maxTime the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | theme | String | '' | Theme is a class added to the popup container (and inner components) - this will allow styling of the calendar when it's appended to outer element (for example - body). There is a built in theme named dp-material, you can find it in the demo. | | config | ITimeSelectConfig | See Below | Configuration object - see description below. |

Configuration:

In order to provide configurations to the time-select you need to pass it to the dp-time-select component:

<dp-time-select [(ngModel)]="selectedDate" [config]="config"></dp-time-select>

Here are the available configurations:

| Name | Type | Default | Description | |---------------------------|:--------------------:|:-------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | hours12Format | String | "hh" | The hours format of the time select when showTwentyFourHours is false. | | hours24Format | String | "HH" | The hours format of the time select when showTwentyFourHours is true. | | maxTime | Moment\|String | undefined | Disables arrow buttons on the time select that would make the time after the maxTime. | | meridiemFormat | String | "A" | The AM/PM format of the time select when showTwentyFourHours is false. | | minTime | Moment\|String | undefined | Disables arrow buttons on the time select that would make the time before the minTime. | | minutesFormat | String | "mm" | The minutes format of the time select. | | minutesInterval | number | 1 | The number of minutes that will be added/subtracted when clicking up/down arrows on the time select. | | secondsFormat | String | "ss" | The seconds format of the time select. | | secondsInterval | number | 1 | The number of seconds that will be added/subtracted when clicking up/down arrows on the time select. | | showSeconds | boolean | false | If set to true will show seconds in the time select, otherwise, won't. | | showTwentyFourHours | boolean | false | If set to true will show hours in 24 hour format. false will show hours in 12 hours format and append AM/PM to the end of the time select. | | timeSeparator | String | ":" | The separator that will be placed between hours and minutes and between minutes and seconds on the time select. | | calendarSystem | ECalendarSystem | ECalendarSystem.jalali | If ngModel provided as String the format is required, this format also will be used as the input format style. |

Inline - DayTime Calendar

You can use the <dp-day-time-calendar> component to display the calendar widget and time select widget without an associated input box.

i.e.

<dp-day-time-calendar [(ngModel)]="selectedDate" [config]="config"></dp-day-time-calendar>

Attributes:

| Name | Type | Default | Description | |----------------------|:-------------------:|:------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | required | Boolean | undefined | This is a validation rule, if there won't be any selected date then the containing form will be invalid. | | minDate | Moment\|String | undefined | This is a validation rule, if the selected date will be before minDate the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | maxDate | Moment\|String | undefined | This is a validation rule, if the selected date will be after maxDate the containing form will be invalid. Note: if provided as string format configuration should be provided in the config object. | | theme | String | '' | Theme is a class added to the popup container (and inner components) - this will allow styling of the calendar when it's appended to outer element (for example - body). There is a built in theme named dp-material, you can find it in the demo. | | config | IDayPickerConfig | See Below | Configuration object - see description below. |

Configuration:

In order to provide configurations to the day-time-calendar you need to pass it to the dp-day-time-calendar component:

<dp-day-time-calendar [(ngModel)]="selectedDate" [config]="config"></dp-day-time-calendar>

Here are the available configurations:

| Name | Type | Default | Description | |-----------------------------|:--------------------:|:-------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | format | String | "DD-MM-YYYY" | If ngModel provided as String the format is required, this format also will be used as the input format style. | | firstDayOfWeek | String | "su" | The first day of the calendar's week. Should be one of: "su", "mo", "tu", "we", "th", "fr", "sa" | | monthFormat | String | "MMM-YYYY" | The date format of the day calendar, the one that seen above the calendar days. Will be overwritten if monthFormatter provided. | | monthFormatter | (Moment) => String | undefined | The date formatter (callback function) of the day calendar, the one that seen above the calendar days. | | yearFormat | String | "YYYY" | The date format of the month calendar, the one that seen above the calendar months. Will be overwritten if yearFormatter provided. (available when enableMonthSelector is set to true). | | yearFormatter | (Moment) => String | undefined | The date formatter (callback function) of the month calendar, the one that seen above the calendar months. (available when enableMonthSelector is set to true). | | allowMultiSelect | Boolean | undefined | If set to true will allow for choosing multiple dates. false will force a single selection. If undefined, the picker will attempt to guess based on the type of the input value. | | min | Moment\|String | undefined | Disables all dates (on the date-picker) that are set to before the min, note that if invalid date would be set by the input then the date picker value would be the min date but the input will show the user typed date. | | max | Moment\|String | undefined | Disables all dates (on the date-picker) that are set to after the max, note that if invalid date would be set by the input then the date picker value would be the max date but the input will show the user typed date. | | showNearMonthDays | Boolean | true | Whether to show/hide next and previous month days. | | showWeekNumbers | Boolean | false | Whether to show/hide the week number of each week (iso week number). | | enableMonthSelector | Boolean | true | Whether to enable/disable the selection of a moth granularity picker.