All Projects → Saeed-Pooyanfar → ng-persian-datepicker

Saeed-Pooyanfar / ng-persian-datepicker

Licence: MIT license
Persian datepicker for angular 12+

Programming Languages

typescript
32286 projects
HTML
75241 projects
SCSS
7915 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to ng-persian-datepicker

Datetimepicker
📅 Date and Time Picker
Stars: ✭ 90 (+45.16%)
Mutual labels:  timepicker, datepicker
React Numpad
A numpad for number, date and time, built with and for React.
Stars: ✭ 117 (+88.71%)
Mutual labels:  timepicker, datepicker
Materialdaterangepicker
A material Date Range Picker based on wdullaers MaterialDateTimePicker
Stars: ✭ 1,315 (+2020.97%)
Mutual labels:  timepicker, datepicker
Datetimepicker
This is a custom android holo datepicker timepicker
Stars: ✭ 56 (-9.68%)
Mutual labels:  timepicker, datepicker
Android Pickerview
This is a picker view for android , support linkage effect, timepicker and optionspicker.(时间选择器、省市区三级联动)
Stars: ✭ 13,003 (+20872.58%)
Mutual labels:  timepicker, datepicker
Circularpicker
CircularPicker is helpful for creating a controller aimed to manage any calculated parameter.
Stars: ✭ 73 (+17.74%)
Mutual labels:  timepicker, datepicker
react-calendar-datetime-picker
A simple and fast date and time picker component for React
Stars: ✭ 58 (-6.45%)
Mutual labels:  timepicker, datepicker
Vue Flatpickr Component
Vue.js component for Flatpickr datetime picker 📆
Stars: ✭ 773 (+1146.77%)
Mutual labels:  timepicker, datepicker
React Native Paper Dates
Smooth and fast cross platform Material Design date and time picker for React Native Paper
Stars: ✭ 173 (+179.03%)
Mutual labels:  timepicker, datepicker
React Datepicker
📅 React DatePicker Library (Flexible, Reusable)
Stars: ✭ 165 (+166.13%)
Mutual labels:  timepicker, datepicker
Persianrangedatepicker
Persian range date picker for android.
Stars: ✭ 48 (-22.58%)
Mutual labels:  timepicker, datepicker
Flatpickr
lightweight, powerful javascript datetimepicker with no dependencies
Stars: ✭ 14,575 (+23408.06%)
Mutual labels:  timepicker, datepicker
Ng Bootstrap
Angular powered Bootstrap
Stars: ✭ 7,872 (+12596.77%)
Mutual labels:  timepicker, datepicker
Angular Bootstrap Datetimepicker
Native Angular date/time picker component styled by Twitter Bootstrap
Stars: ✭ 1,289 (+1979.03%)
Mutual labels:  timepicker, datepicker
Vue Datetime
Mobile friendly datetime picker for Vue. Supports date and datetime modes, i18n and more.
Stars: ✭ 928 (+1396.77%)
Mutual labels:  timepicker, datepicker
Hibiscus.js
Native Angular directives for Bootstrap4
Stars: ✭ 115 (+85.48%)
Mutual labels:  timepicker, datepicker
Androidpicker
安卓选择器类库,包括日期及时间选择器(可用于出生日期、营业时间等)、单项选择器(可用于性别、民族、职业、学历、星座等)、二三级联动选择器(可用于车牌号、基金定投日期等)、城市地址选择器(分省级、地市级及区县级)、数字选择器(可用于年龄、身高、体重、温度等)、日历选日期择器(可用于酒店及机票预定日期)、颜色选择器、文件及目录选择器、图片选择器等……WheelPicker/DatePicker/TimePicker/OptionPicker/NumberPicker/LinkagePicker/AddressPicker/CarPlatePicker/CalendarPicker/ColorPicker/FilePicker/ImagePicker etc.
Stars: ✭ 5,320 (+8480.65%)
Mutual labels:  timepicker, datepicker
Vue Ctk Date Time Picker
VueJS component to select dates & time, including a range mode
Stars: ✭ 707 (+1040.32%)
Mutual labels:  timepicker, datepicker
Ng2 Datetime
Datetime picker plugins wrapper for Angular2+
Stars: ✭ 165 (+166.13%)
Mutual labels:  timepicker, datepicker
Material Ui Pickers
Date & Time pickers, built with ❤️ for @material-ui/core
Stars: ✭ 2,291 (+3595.16%)
Mutual labels:  timepicker, datepicker

NgPersianDatepicker

Persian datepicker for angular 12+
Online demo

Install

npm install ng-persian-datepicker
npm install jalali-ts@^2.0.4

Setup

Import modules:

...
import { NgPersianDatepickerModule } from 'ng-persian-datepicker';
import { ReactiveFormsModule } from '@angular/forms';
...

@NgModule({
  imports: [
    ...
      NgPersianDatepickerModule,
      ReactiveFormsModule,
    ...
  ],
  ...
})
...

Implement

import { FormControl } from '@angular/forms';

@Component(...)
class DateComponent {

  dateValue = new FormControl();

}
<ng-persian-datepicker>
  <input type="text" [formControl]="dateValue" />
</ng-persian-datepicker>

That's it! this was a minimal setup ...

Config [input]

You can customize datepicker config:

<ng-persian-datepicker [uiTheme]="darkTheme" ...>
  ...
</ng-persian-datepicker>

Complete config reference:

Key Type Description Example
dateValue FormControl use this if you don't need a html input dateValue: FormControl
dateInitValue boolean if no dateValue provided use today as init value. default: true true
dateIsGregorian boolean is dateValue gregorian?. default: false false
dateFormat string shamsi date format, check jalali-ts docs to see available formats. default: YYYY/MM/DD 'YYYY-MM-DD HH:mm:ss'
dateGregorianFormat string gregorian date format, check jalali-ts docs to see available formats. default: YYYY-MM-DD 'YYYY-MM-DD HH:mm:ss'
dateMin number min date that user can select (timestamp) . default: null Jalali.parse('1396-11-01').valueOf()
dateMax number max date that user can select (timestamp) . default: null Jalali.parse('1398-11-01').valueOf()
timeEnable boolean if set it to true time picker will visible. default: false true
timeShowSecond boolean time second visibility. default: false true
timeMeridian boolean show time in 12 hour format. default: false false
uiTheme IDatepickerTheme datepicker theme, default: defaultTheme: IDatepickerTheme darkTheme: IDatepickerTheme
uiIsVisible boolean only when this is true datepicker is visible. default: false true
uiHideOnOutsideClick boolean if set to true datepicker will hide on outside click. default: true true
uiHideAfterSelectDate boolean hide datepicker after date select. default: true true
uiYearView boolean if set to true year view will enable. default: true true
uiMonthView boolean if set to true month view will enable. default: true true
uiInitViewMode string Initial view mode ('year', 'month', 'day'). default: 'day' 'year'
uiTodayBtnEnable boolean Show go to today btn or not. default: true false

Event (output)

Complete events reference:

Key Type Description Example
dateOnInit $event: IActiveDate Fire event on setting init date value (dateOnInit)="onInit($event)"
dateOnSelect $event: IActiveDate Fire event on date select (dateOnSelect)="onSelect($event)"
uiIsVisibleChange $event: boolean Fire event on visibility change (uiIsVisibleChange)="onVisibleChange($event)"

jalali-ts

Since ng-persian-datepicker@^6.x.x using jalali-ts instead of moment-jalaali, there are some limitations for parsing input date + output format
Please check jalali-ts for more information

IActiveDate

It doesn't matter that you have timestamp or gregorian date as initial value,
The value of dateValue: FormControl is a shamsi (jalai) date string!
But what if you want timestamp or gregorian date of selected date?
First take a look at IActiveDate
As you saw, IActiveDate includes shamsi date, gregorian date and timestamp.
The lib has 2 events of type IActiveDate:

  • dateOnInit
  • dateOnSelect

So, if you need to create Date object of selected date:

import { IActiveDate } from 'ng-persian-datepicker';

@Component(...)
class DateComponent {
  
  onSelect(event: IActiveDate): void {
    const viaTimestampValue = new Date(event.timestamp);
    const viaGregorianDate = new Date(event.gregorian);
  }
  
}
<ng-persian-datepicker (dateOnSelect)="onSelect($event)" ...>
  ...
</ng-persian-datepicker>

Custom theme

Every app has its unique theme, static themes maybe are easy to use but hard to customize!
With custom theme feature you can create your custom theme base on your app theme.
To create a custom theme you need a set of colors for every part of datepicker component.
Example:

import { IDatepickerTheme } from 'ng-persian-datepicker';

const customTheme: Partial<IDatepickerTheme> = {
  selectedBackground: '#D68E3A',
  selectedText: '#FFFFFF',
};
<ng-persian-datepicker [uiTheme]="customTheme" ...>
  ...
</ng-persian-datepicker>

Checkout IDatepickerTheme interface to see all available props
And darkTheme for full example

Note
Your theme will merge with defaultTheme,
So if you don't provide all colors, the defaultTheme value will use for the missing parts

Offline demo

you can download a release and see ng-persian-datepicker demo:

cd /to/ng-persian-datepicker/dir
npm install
npm run start

open http://localhost:4200 in your browser

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].