نمونه‌های محدودیت‌های تاریخ

نمونه‌هایی از نحوه استفاده از محدودیت‌های بازه زمانی و غیرفعال کردن تاریخ‌ها در کامپوننت انتخاب تاریخ.

🆕 بهبود غیرفعال کردن تاریخ‌ها

اکنون می‌توانید توابع غیرفعال‌سازی تاریخ‌ها را به سه روش مختلف استفاده کنید:

  1. روش کلاسیک: تعریف تابع در فضای نام عمومی (window) و استفاده از نام تابع در ویژگی disabled-dates
  2. روش مستقیم: استفاده از متد setDisabledDatesFn برای تعیین مستقیم تابع، بدون نیاز به تعریف آن در فضای نام عمومی
  3. روش متد محلی: تعریف یک متد روی المان و استفاده از نام آن در ویژگی disabled-dates

این بهبود امکان استفاده از توابع غیرفعال‌سازی را در هر محیطی، از جمله در کتابخانه‌های React، Vue و Angular، فراهم می‌کند.

محدودیت‌های بازه زمانی

با حداقل و حداکثر تاریخ:
تاریخ انتخاب شده: هیچ
<persian-datepicker-element 
  id="range-picker"
  min-date="[1403,1,1]"
  max-date="[1403,12,29]"
></persian-datepicker-element>

تاریخ‌های غیرفعال

با تاریخ‌های غیرفعال (تعطیلات آخر هفته):
تاریخ انتخاب شده: هیچ
// تعریف تابع تاریخ‌های غیرفعال
function isWeekend(year, month, day) {
  const date = new Date(year, month - 1, day);
  const dayOfWeek = date.getDay();
  return dayOfWeek === 5 || dayOfWeek === 6; // غیرفعال کردن روزهای جمعه و شنبه (آخر هفته در تقویم ایرانی)
}

<persian-datepicker-element 
  id="disabled-picker"
  disabled-dates="isWeekend"
></persian-datepicker-element>

محدودیت‌های ترکیبی

با ترکیب محدودیت بازه زمانی و تاریخ‌های غیرفعال:
تاریخ انتخاب شده: هیچ
<persian-datepicker-element 
  id="combined-picker"
  min-date="[1403,1,1]"
  max-date="[1403,12,29]"
  disabled-dates="isWeekend"
></persian-datepicker-element>

تاریخ‌های غیرفعال با روش جدید

با استفاده از تابع داخلی (بدون نیاز به وجود تابع در حوزه جهانی):
تاریخ انتخاب شده: هیچ
// استفاده مستقیم از متد setDisabledDatesFn بدون نیاز به تعریف تابع در سطح جهانی
const picker = document.getElementById('local-function-picker');

// تعریف تابع به صورت مستقیم و محلی
const isEvenDay = function(year, month, day) {
  return day % 2 === 0; // غیرفعال کردن روزهای زوج
};

// اعمال تابع غیرفعال‌سازی به تقویم
picker.setDisabledDatesFn(isEvenDay);

متد روی المان

تعریف متد مستقیماً روی المان:
تاریخ انتخاب شده: هیچ
// تعریف متد مستقیماً روی المان
const methodPicker = document.getElementById('element-method-picker');

// افزودن متد دلخواه مستقیماً به المان
methodPicker.isWorkingDay = function(year, month, day) {
  const date = new Date(year, month - 1, day);
  const dayOfWeek = date.getDay();
  // غیرفعال کردن تعطیلات آخر هفته (جمعه = 5، شنبه = 6)
  // و همچنین روزهای 13 ماه (به عنوان مثال)
  return dayOfWeek === 5 || dayOfWeek === 6 || day === 13;
};

// استفاده از متد تعریف شده روی المان
methodPicker.setAttribute('disabled-dates', 'isWorkingDay');