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 🙏

© 2026 – Pkg Stats / Ryan Hefner

ngx-persian-datepicker-element

v1.1.12

Published

Angular wrapper for Persian DatePicker Web Component with signal-based inputs (English/Persian docs)

Readme

Persian DatePicker for Angular

An Angular wrapper for the persian-datepicker-element web component, providing a beautiful Persian (Jalali) calendar with holiday support.

Features

✅ Easy to use Angular component
✅ Angular Signals support (Angular 17+)
✅ Reactive forms integration
✅ Persian (Jalali) calendar
✅ Holiday highlighting and customization
✅ Range picker mode
✅ Min/Max date restrictions
✅ Disabled dates support
✅ Full TypeScript support
✅ Customizable theme via CSS variables

Installation

npm install ngx-persian-datepicker-element persian-datepicker-element
# or
yarn add ngx-persian-datepicker-element persian-datepicker-element

Usage

For standalone components (recommended):

import { NgxPersianDatepickerComponent } from 'ngx-persian-datepicker-element';

@Component({
  // ...
  imports: [NgxPersianDatepickerComponent]
  // ...
})
export class YourStandaloneComponent { }

Basic Usage

<ngx-persian-datepicker-element 
  placeholder="انتخاب تاریخ" 
  format="YYYY/MM/DD" 
  (dateChange)="onDateChange($event)">
</ngx-persian-datepicker-element>

With Reactive Forms

<form [formGroup]="myForm">
  <ngx-persian-datepicker-element formControlName="date"></ngx-persian-datepicker-element>
</form>
import { Component } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';

@Component({
  selector: 'app-example',
  templateUrl: './example.component.html'
})
export class ExampleComponent {
  myForm: FormGroup;

  constructor(private fb: FormBuilder) {
    this.myForm = this.fb.group({
      date: [null]
    });
  }
}

Range Picker Example

<ngx-persian-datepicker-element 
  [rangeMode]="true"
  [rangeStart]="[1402, 1, 1]"
  [rangeEnd]="[1402, 1, 15]"
  (dateChange)="onRangeChange($event)">
</ngx-persian-datepicker-element>

With Holiday Types

<ngx-persian-datepicker-element 
  [showEvents]="true" 
  [eventTypes]="['Iran', 'Religious']"
  (dateChange)="onDateChange($event)">
</ngx-persian-datepicker-element>

API

Input Properties

| Property | Type | Default | Description | |----------|------|---------|-------------| | placeholder | string | '' | Placeholder text for the input field | | format | string | 'YYYY/MM/DD' | Date format pattern | | showEvents | boolean | true | Whether to show holidays in the calendar | | eventTypes | string \| string[] | - | Types of holidays to display | | rtl | boolean | true | Right-to-left layout | | minDate | [number, number, number] | - | Minimum selectable date [year, month, day] | | maxDate | [number, number, number] | - | Maximum selectable date [year, month, day] | | disabledDates | string \| Function | - | Dates to disable (string pattern or function) | | rangeMode | boolean | false | Enable range selection mode | | rangeStart | [number, number, number] | - | Start date for range selection | | rangeEnd | [number, number, number] | - | End date for range selection | | defaultDate | [number, number, number] | - | Initial date to display |

Output Events

| Event | Type | Description | |-------|------|-------------| | dateChange | EventEmitter<DateChangeEvent> | Emitted when a date is selected |

DateChangeEvent Interface

interface DateChangeEvent {
  jalali: [number, number, number]; // [year, month, day]
  gregorian: [number, number, number]; // [year, month, day]
  isHoliday: boolean;
  events?: any[];
  range?: {
    start: [number, number, number];
    end: [number, number, number];
  };
}

Theme Customization

You can customize the appearance using CSS variables:

ngx-persian-datepicker-element {
  --jdp-primary: #0891b2;
  --jdp-primary-hover: #0e7490;
  --jdp-primary-foreground: #ffffff;
  --jdp-background: #ffffff;
  --jdp-foreground: #1e293b;
  --jdp-border: #e2e8f0;
  --jdp-border-radius: 0.5rem;
  --jdp-font-family: system-ui;
  --jdp-font-size: 14px;
  --jdp-nav-button-size: 38px;
  --jdp-day-cell-size: 36px;
  --jdp-holiday-color: #ef4444;
  --jdp-holiday-bg: #fee2e2;
}

License

MIT


کامپوننت تقویم شمسی برای Angular

یک wrapper برای کامپوننت وب تقویم شمسی در Angular، با پشتیبانی از تقویم جلالی و نمایش تعطیلات.

ویژگی‌ها

✅ کامپوننت Angular ساده و کاربردی
✅ پشتیبانی از Angular Signals (نسخه ۱۷+)
✅ یکپارچه‌سازی با Reactive Forms
✅ تقویم شمسی (جلالی)
✅ نمایش و شخصی‌سازی تعطیلات
✅ حالت انتخاب بازه
✅ محدودیت حداقل/حداکثر تاریخ
✅ پشتیبانی از تاریخ‌های غیرفعال
✅ پشتیبانی کامل از TypeScript
✅ قابلیت شخصی‌سازی ظاهر با متغیرهای CSS

نصب

npm install ngx-persian-datepicker-element persian-datepicker-element
# یا
yarn add ngx-persian-datepicker-element persian-datepicker-element

نحوه استفاده

برای کامپوننت‌های standalone (توصیه شده):

import { NgxPersianDatepickerComponent } from 'ngx-persian-datepicker-element';

@Component({
  // ...
  imports: [NgxPersianDatepickerComponent]
  // ...
})
export class YourStandaloneComponent { }

استفاده پایه

<ngx-persian-datepicker-element 
  placeholder="انتخاب تاریخ" 
  format="YYYY/MM/DD" 
  (dateChange)="onDateChange($event)">
</ngx-persian-datepicker-element>

استفاده با Reactive Forms

<form [formGroup]="myForm">
  <ngx-persian-datepicker-element formControlName="date"></ngx-persian-datepicker-element>
</form>

مثال انتخاب بازه

<ngx-persian-datepicker-element 
  [rangeMode]="true"
  [rangeStart]="[1402, 1, 1]"
  [rangeEnd]="[1402, 1, 15]"
  (dateChange)="onRangeChange($event)">
</ngx-persian-datepicker-element>

ورودی‌ها

| ورودی | نوع | پیش‌فرض | توضیحات | |-------|-----|---------|----------| | placeholder | string | '' | متن پیش‌فرض ورودی | | format | string | 'YYYY/MM/DD' | الگوی نمایش تاریخ | | showEvents | boolean | true | نمایش تعطیلات | | eventTypes | string \| string[] | - | انواع تعطیلات برای نمایش | | rtl | boolean | true | چیدمان راست به چپ | | minDate | [number, number, number] | - | حداقل تاریخ قابل انتخاب [سال، ماه، روز] | | maxDate | [number, number, number] | - | حداکثر تاریخ قابل انتخاب [سال، ماه، روز] | | disabledDates | string \| Function | - | تاریخ‌های غیرفعال (الگو یا تابع) | | rangeMode | boolean | false | فعال‌سازی حالت انتخاب بازه | | rangeStart | [number, number, number] | - | تاریخ شروع بازه | | rangeEnd | [number, number, number] | - | تاریخ پایان بازه | | defaultDate | [number, number, number] | - | تاریخ اولیه برای نمایش |

خروجی‌ها

| رویداد | نوع | توضیحات | |--------|-----|----------| | dateChange | EventEmitter<DateChangeEvent> | هنگام انتخاب تاریخ فراخوانی می‌شود |

شخصی‌سازی ظاهر

می‌توانید با استفاده از متغیرهای CSS، ظاهر تقویم را شخصی‌سازی کنید:

ngx-persian-datepicker-element {
  --jdp-primary: #0891b2;
  --jdp-primary-hover: #0e7490;
  --jdp-primary-foreground: #ffffff;
  --jdp-background: #ffffff;
  --jdp-foreground: #1e293b;
  --jdp-border: #e2e8f0;
  --jdp-border-radius: 0.5rem;
  --jdp-font-family: system-ui;
  --jdp-font-size: 14px;
  --jdp-nav-button-size: 38px;
  --jdp-day-cell-size: 36px;
  --jdp-holiday-color: #ef4444;
  --jdp-holiday-bg: #fee2e2;
}