ngx-kit 4.0.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +3 -2
  2. package/angle-selector/README.md +34 -0
  3. package/box-shadow/README.md +33 -0
  4. package/color-picker/README.md +52 -0
  5. package/data-table/README.md +120 -0
  6. package/date-picker/README.md +74 -0
  7. package/dialog/README.md +94 -169
  8. package/drawer-menu/README.md +76 -0
  9. package/dropzone/README.md +59 -0
  10. package/fesm2022/ngx-kit-angle-selector.mjs +2 -2
  11. package/fesm2022/ngx-kit-angle-selector.mjs.map +1 -1
  12. package/fesm2022/ngx-kit-box-shadow.mjs +28 -27
  13. package/fesm2022/ngx-kit-box-shadow.mjs.map +1 -1
  14. package/fesm2022/ngx-kit-color-picker.mjs +173 -43
  15. package/fesm2022/ngx-kit-color-picker.mjs.map +1 -1
  16. package/fesm2022/ngx-kit-data-table.mjs +446 -191
  17. package/fesm2022/ngx-kit-data-table.mjs.map +1 -1
  18. package/fesm2022/ngx-kit-date-picker.mjs +120 -86
  19. package/fesm2022/ngx-kit-date-picker.mjs.map +1 -1
  20. package/fesm2022/ngx-kit-dialog.mjs +38 -7
  21. package/fesm2022/ngx-kit-dialog.mjs.map +1 -1
  22. package/fesm2022/ngx-kit-drawer-menu.mjs +190 -0
  23. package/fesm2022/ngx-kit-drawer-menu.mjs.map +1 -0
  24. package/fesm2022/ngx-kit-dropzone.mjs +272 -0
  25. package/fesm2022/ngx-kit-dropzone.mjs.map +1 -0
  26. package/fesm2022/ngx-kit-form-field.mjs +87 -0
  27. package/fesm2022/ngx-kit-form-field.mjs.map +1 -0
  28. package/fesm2022/ngx-kit-gallery.mjs +419 -0
  29. package/fesm2022/ngx-kit-gallery.mjs.map +1 -0
  30. package/fesm2022/ngx-kit-gradient-picker.mjs +12 -4
  31. package/fesm2022/ngx-kit-gradient-picker.mjs.map +1 -1
  32. package/fesm2022/ngx-kit-image-editor.mjs +501 -0
  33. package/fesm2022/ngx-kit-image-editor.mjs.map +1 -0
  34. package/fesm2022/ngx-kit-menu.mjs +9 -4
  35. package/fesm2022/ngx-kit-menu.mjs.map +1 -1
  36. package/fesm2022/ngx-kit-message.mjs +58 -24
  37. package/fesm2022/ngx-kit-message.mjs.map +1 -1
  38. package/fesm2022/ngx-kit-notify.mjs +10 -4
  39. package/fesm2022/ngx-kit-notify.mjs.map +1 -1
  40. package/fesm2022/ngx-kit-shared.mjs +184 -88
  41. package/fesm2022/ngx-kit-shared.mjs.map +1 -1
  42. package/fesm2022/ngx-kit-time-picker.mjs +562 -0
  43. package/fesm2022/ngx-kit-time-picker.mjs.map +1 -0
  44. package/fesm2022/ngx-kit.mjs.map +1 -1
  45. package/gallery/README.md +71 -0
  46. package/gradient-picker/README.md +41 -0
  47. package/image-editor/README.md +44 -0
  48. package/menu/README.md +85 -0
  49. package/message/README.md +70 -0
  50. package/notify/README.md +56 -0
  51. package/package.json +25 -1
  52. package/shared/README.md +117 -0
  53. package/styles/all.css +27 -0
  54. package/styles/image-viewer.css +12 -0
  55. package/types/ngx-kit-box-shadow.d.ts +1 -2
  56. package/types/ngx-kit-data-table.d.ts +290 -147
  57. package/types/ngx-kit-date-picker.d.ts +1 -1
  58. package/types/ngx-kit-dialog.d.ts +1 -0
  59. package/types/ngx-kit-drawer-menu.d.ts +101 -0
  60. package/types/ngx-kit-dropzone.d.ts +84 -0
  61. package/types/ngx-kit-form-field.d.ts +31 -0
  62. package/types/ngx-kit-gallery.d.ts +168 -0
  63. package/types/ngx-kit-image-editor.d.ts +175 -0
  64. package/types/ngx-kit-menu.d.ts +1 -0
  65. package/types/ngx-kit-message.d.ts +14 -3
  66. package/types/ngx-kit-notify.d.ts +2 -1
  67. package/types/ngx-kit-shared.d.ts +70 -15
  68. package/types/ngx-kit-time-picker.d.ts +150 -0
@@ -330,14 +330,15 @@ class GregorianAdapter {
330
330
  var Jalali;
331
331
  (function (Jalali) {
332
332
  /*
333
- Jalaali years starting the 33-year rule.
334
- */
335
- Jalali.breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210,
336
- 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178
333
+ Jalaali years starting the 33-year rule.
334
+ */
335
+ Jalali.breaks = [
336
+ -61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394,
337
+ 2456, 3178,
337
338
  ];
338
339
  /*
339
- Converts a Gregorian date to Jalaali.
340
- */
340
+ Converts a Gregorian date to Jalaali.
341
+ */
341
342
  function toJalaali(date) {
342
343
  // if (Object.prototype.toString.call(date) === '[object Date]') {
343
344
  let gd = date.getDate();
@@ -349,31 +350,29 @@ var Jalali;
349
350
  }
350
351
  Jalali.toJalaali = toJalaali;
351
352
  /*
352
- Converts a Jalaali date to Gregorian.
353
- */
353
+ Converts a Jalaali date to Gregorian.
354
+ */
354
355
  function toGregorian(jy, jm, jd) {
355
356
  return d2g(j2d(jy, jm, jd));
356
357
  }
357
358
  Jalali.toGregorian = toGregorian;
358
359
  /*
359
- Checks whether a Jalaali date is valid or not.
360
- */
360
+ Checks whether a Jalaali date is valid or not.
361
+ */
361
362
  function isValidJalaaliDate(jy, jm, jd) {
362
- return jy >= -61 && jy <= 3177 &&
363
- jm >= 1 && jm <= 12 &&
364
- jd >= 1 && jd <= jalaaliMonthLength(jy, jm);
363
+ return (jy >= -61 && jy <= 3177 && jm >= 1 && jm <= 12 && jd >= 1 && jd <= jalaaliMonthLength(jy, jm));
365
364
  }
366
365
  Jalali.isValidJalaaliDate = isValidJalaaliDate;
367
366
  /*
368
- Is this a leap year or not?
369
- */
367
+ Is this a leap year or not?
368
+ */
370
369
  function isLeapJalaaliYear(jy) {
371
370
  return jalCalLeap(jy) === 0;
372
371
  }
373
372
  Jalali.isLeapJalaaliYear = isLeapJalaaliYear;
374
373
  /*
375
- Number of days in a given month in a Jalaali year.
376
- */
374
+ Number of days in a given month in a Jalaali year.
375
+ */
377
376
  function jalaaliMonthLength(jy, jm) {
378
377
  if (jm <= 6)
379
378
  return 31;
@@ -385,11 +384,11 @@ var Jalali;
385
384
  }
386
385
  Jalali.jalaaliMonthLength = jalaaliMonthLength;
387
386
  /*
388
- This function determines if the Jalaali (Persian) year is
389
- leap (366-day long) or is the common year (365 days)
390
- @param jy Jalaali calendar year (-61 to 3177)
391
- @returns number of years since the last leap year (0 to 4)
392
- */
387
+ This function determines if the Jalaali (Persian) year is
388
+ leap (366-day long) or is the common year (365 days)
389
+ @param jy Jalaali calendar year (-61 to 3177)
390
+ @returns number of years since the last leap year (0 to 4)
391
+ */
393
392
  function jalCalLeap(jy) {
394
393
  var bl = Jalali.breaks.length, jp = Jalali.breaks[0], jm, jump = 0, leap, n, i;
395
394
  if (jy < jp || jy >= Jalali.breaks[bl - 1])
@@ -412,19 +411,19 @@ var Jalali;
412
411
  }
413
412
  Jalali.jalCalLeap = jalCalLeap;
414
413
  /*
415
- This function determines if the Jalaali (Persian) year is
416
- leap (366-day long) or is the common year (365 days), and
417
- finds the day in March (Gregorian calendar) of the first
418
- day of the Jalaali year (jy).
419
- @param jy Jalaali calendar year (-61 to 3177)
420
- @param withoutLeap when don't need leap (true or false) default is false
421
- @return
422
- leap: number of years since the last leap year (0 to 4)
423
- gy: Gregorian year of the beginning of Jalaali year
424
- march: the March day of Farvardin the 1st (1st day of jy)
425
- @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm
426
- @see: http://www.fourmilab.ch/documents/calendar/
427
- */
414
+ This function determines if the Jalaali (Persian) year is
415
+ leap (366-day long) or is the common year (365 days), and
416
+ finds the day in March (Gregorian calendar) of the first
417
+ day of the Jalaali year (jy).
418
+ @param jy Jalaali calendar year (-61 to 3177)
419
+ @param withoutLeap when don't need leap (true or false) default is false
420
+ @return
421
+ leap: number of years since the last leap year (0 to 4)
422
+ gy: Gregorian year of the beginning of Jalaali year
423
+ march: the March day of Farvardin the 1st (1st day of jy)
424
+ @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm
425
+ @see: http://www.fourmilab.ch/documents/calendar/
426
+ */
428
427
  function jalCal(jy, withoutLeap) {
429
428
  var bl = Jalali.breaks.length, gy = jy + 621, leapJ = -14, jp = Jalali.breaks[0], jm, jump = 0, leap, leapG, march, n, i;
430
429
  if (jy < jp || jy >= Jalali.breaks[bl - 1])
@@ -461,33 +460,33 @@ var Jalali;
461
460
  return {
462
461
  leap: leap,
463
462
  gy: gy,
464
- march: march
463
+ march: march,
465
464
  };
466
465
  }
467
466
  Jalali.jalCal = jalCal;
468
467
  /*
469
- Converts a date of the Jalaali calendar to the Julian Day number.
470
- @param jy Jalaali year (1 to 3100)
471
- @param jm Jalaali month (1 to 12)
472
- @param jd Jalaali day (1 to 29/31)
473
- @return Julian Day number
474
- */
468
+ Converts a date of the Jalaali calendar to the Julian Day number.
469
+ @param jy Jalaali year (1 to 3100)
470
+ @param jm Jalaali month (1 to 12)
471
+ @param jd Jalaali day (1 to 29/31)
472
+ @return Julian Day number
473
+ */
475
474
  function j2d(jy, jm, jd) {
476
475
  var r = jalCal(jy, true);
477
476
  return g2d(r.gy, 3, r.march) + (jm - 1) * 31 - div(jm, 7) * (jm - 7) + jd - 1;
478
477
  }
479
478
  Jalali.j2d = j2d;
480
479
  /*
481
- Converts the Julian Day number to a date in the Jalaali calendar.
482
- @param jdn Julian Day number
483
- @return
484
- jy: Jalaali year (1 to 3100)
485
- jm: Jalaali month (1 to 12)
486
- jd: Jalaali day (1 to 29/31)
487
- */
480
+ Converts the Julian Day number to a date in the Jalaali calendar.
481
+ @param jdn Julian Day number
482
+ @return
483
+ jy: Jalaali year (1 to 3100)
484
+ jm: Jalaali month (1 to 12)
485
+ jd: Jalaali day (1 to 29/31)
486
+ */
488
487
  function d2j(jdn) {
489
- var gy = d2g(jdn).gy // Calculate Gregorian year (gy).
490
- , jy = gy - 621, r = jalCal(jy, false), jdn1f = g2d(gy, 3, r.march), jd, jm, k;
488
+ var gy = d2g(jdn).gy, // Calculate Gregorian year (gy).
489
+ jy = gy - 621, r = jalCal(jy, false), jdn1f = g2d(gy, 3, r.march), jd, jm, k;
491
490
  // Find number of days that passed since 1 Farvardin.
492
491
  k = jdn - jdn1f;
493
492
  if (k >= 0) {
@@ -498,7 +497,7 @@ var Jalali;
498
497
  return {
499
498
  jy: jy,
500
499
  jm: jm,
501
- jd: jd
500
+ jd: jd,
502
501
  };
503
502
  }
504
503
  else {
@@ -518,39 +517,40 @@ var Jalali;
518
517
  return {
519
518
  jy: jy,
520
519
  jm: jm,
521
- jd: jd
520
+ jd: jd,
522
521
  };
523
522
  }
524
523
  Jalali.d2j = d2j;
525
524
  /*
526
- Calculates the Julian Day number from Gregorian or Julian
527
- calendar dates. This integer number corresponds to the noon of
528
- the date (i.e. 12 hours of Universal Time).
529
- The procedure was tested to be good since 1 March, -100100 (of both
530
- calendars) up to a few million years into the future.
531
- @param gy Calendar year (years BC numbered 0, -1, -2, ...)
532
- @param gm Calendar month (1 to 12)
533
- @param gd Calendar day of the month (1 to 28/29/30/31)
534
- @return Julian Day number
535
- */
525
+ Calculates the Julian Day number from Gregorian or Julian
526
+ calendar dates. This integer number corresponds to the noon of
527
+ the date (i.e. 12 hours of Universal Time).
528
+ The procedure was tested to be good since 1 March, -100100 (of both
529
+ calendars) up to a few million years into the future.
530
+ @param gy Calendar year (years BC numbered 0, -1, -2, ...)
531
+ @param gm Calendar month (1 to 12)
532
+ @param gd Calendar day of the month (1 to 28/29/30/31)
533
+ @return Julian Day number
534
+ */
536
535
  function g2d(gy, gm, gd) {
537
- var d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4)
538
- + div(153 * mod(gm + 9, 12) + 2, 5)
539
- + gd - 34840408;
536
+ var d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) +
537
+ div(153 * mod(gm + 9, 12) + 2, 5) +
538
+ gd -
539
+ 34840408;
540
540
  d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;
541
541
  return d;
542
542
  }
543
543
  Jalali.g2d = g2d;
544
544
  /*
545
- Calculates Gregorian and Julian calendar dates from the Julian Day number
546
- (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both
547
- calendars) to some millions years ahead of the present.
548
- @param jdn Julian Day number
549
- @return
550
- gy: Calendar year (years BC numbered 0, -1, -2, ...)
551
- gm: Calendar month (1 to 12)
552
- gd: Calendar day of the month M (1 to 28/29/30/31)
553
- */
545
+ Calculates Gregorian and Julian calendar dates from the Julian Day number
546
+ (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both
547
+ calendars) to some millions years ahead of the present.
548
+ @param jdn Julian Day number
549
+ @return
550
+ gy: Calendar year (years BC numbered 0, -1, -2, ...)
551
+ gm: Calendar month (1 to 12)
552
+ gd: Calendar day of the month M (1 to 28/29/30/31)
553
+ */
554
554
  function d2g(jdn) {
555
555
  var j, i, gd, gm, gy;
556
556
  j = 4 * jdn + 139361631;
@@ -562,7 +562,7 @@ var Jalali;
562
562
  return {
563
563
  gy: gy,
564
564
  gm: gm,
565
- gd: gd
565
+ gd: gd,
566
566
  };
567
567
  }
568
568
  Jalali.d2g = d2g;
@@ -579,7 +579,7 @@ var Jalali;
579
579
  var endDayDifference = 6 + startDayDifference;
580
580
  return {
581
581
  saturday: d2j(j2d(jy, jm, jd + startDayDifference)),
582
- friday: d2j(j2d(jy, jm, jd + endDayDifference))
582
+ friday: d2j(j2d(jy, jm, jd + endDayDifference)),
583
583
  };
584
584
  }
585
585
  Jalali.jalaaliWeek = jalaaliWeek;
@@ -600,8 +600,8 @@ var Jalali;
600
600
  }
601
601
  Jalali.jalaaliToDateObject = jalaaliToDateObject;
602
602
  /*
603
- Utility helper functions.
604
- */
603
+ Utility helper functions.
604
+ */
605
605
  function div(a, b) {
606
606
  return ~~(a / b);
607
607
  }
@@ -684,7 +684,7 @@ class JalaliAdapter {
684
684
  30,
685
685
  30,
686
686
  30,
687
- (year - 1095) % 4 != 0 ? 29 : 30,
687
+ Jalali.isLeapJalaaliYear(year) ? 30 : 29,
688
688
  ];
689
689
  return monthLengths[month];
690
690
  }
@@ -717,7 +717,7 @@ class JalaliAdapter {
717
717
  30,
718
718
  30,
719
719
  30,
720
- (year - 1095) % 4 != 0 ? 29 : 30,
720
+ Jalali.isLeapJalaaliYear(year) ? 30 : 29,
721
721
  ];
722
722
  return monthLengths[month];
723
723
  }
@@ -856,7 +856,21 @@ var HijriConverter;
856
856
  * از آن)، پس جستجوی «آخرین day1 در همان روز یا قبل‌تر» همیشه
857
857
  * دقیقاً day1 همان ماه هدف را پیدا می‌کند.
858
858
  */
859
+ // نتیجه‌ی firstDayOfMonth فقط تابعی از (year, month) هست و در طول عمر
860
+ // صفحه هیچ‌وقت عوض نمی‌شه، پس کش‌کردنش کاملاً امنه. اهمیتش اینجاست که
861
+ // renderCalendar (در ngx-date-picker-base.component) برای هر سلولِ روزِ
862
+ // نمایش‌داده‌شده در گرید ماه (~۳۰ تا ۴۲ تا) یک‌بار adapter.getDate() صدا
863
+ // می‌زنه، و هرکدوم به toGregorian() → firstDayOfMonth() ختم می‌شه — یعنی
864
+ // بدون کش، این جست‌وجوی نسبتاً سنگین (که خودش می‌تونه تا حدود ۱۲۰۰ بار
865
+ // تکرار داخلی و هر بار تا ۳۵ فراخوانی Intl.DateTimeFormat داشته باشه) به
866
+ // ازای هر بار رندر یک ماه، ده‌ها بار برای همون (year, month) تکرار می‌شد —
867
+ // مخصوصاً وقتی کاربر به سال‌های دور از «امروز» ناوبری می‌کنه، محسوس کند بود.
868
+ const firstDayOfMonthCache = new Map();
859
869
  function firstDayOfMonth(year, month) {
870
+ const cacheKey = `${year}-${month}`;
871
+ const cached = firstDayOfMonthCache.get(cacheKey);
872
+ if (cached)
873
+ return new Date(cached);
860
874
  let anchorDate = firstOfMonthAtOrBefore(new Date());
861
875
  let h = parse(anchorDate);
862
876
  // سقف ایمنی برای جلوگیری از لوپ بی‌نهایت (≈ 100 سال هجری)
@@ -871,6 +885,7 @@ var HijriConverter;
871
885
  h = parse(anchorDate);
872
886
  guard++;
873
887
  }
888
+ firstDayOfMonthCache.set(cacheKey, anchorDate);
874
889
  return anchorDate;
875
890
  }
876
891
  HijriConverter.firstDayOfMonth = firstDayOfMonth;
@@ -1149,7 +1164,18 @@ var ChineseConverter;
1149
1164
  * برای همین، اگر یک قدم هیچ پیشرفتی نداشت (anchor عوض نشد)،
1150
1165
  * قدم را بزرگ‌تر می‌کنیم تا از روی ماه کبیسه‌ی احتمالی بپرد.
1151
1166
  */
1167
+ // نتیجه‌ی firstDayOfMonth فقط تابعی از (year, month) هست، پس کش‌کردنش
1168
+ // امنه. دلیل اهمیتش دقیقاً مثل نسخه‌ی هجریه: renderCalendar برای هر
1169
+ // سلولِ روزِ گرید ماه یک‌بار adapter.getDate() صدا می‌زنه که به
1170
+ // toGregorian() → firstDayOfMonth() ختم می‌شه؛ بدون کش، این جست‌وجوی
1171
+ // نسبتاً سنگین (که با وجود ماه‌های کبیسه می‌تونه چند برابر هجری هم سنگین‌تر
1172
+ // باشه) به ازای هر رندر ماه، ده‌ها بار برای همون (year, month) تکرار می‌شد.
1173
+ const firstDayOfMonthCache = new Map();
1152
1174
  function firstDayOfMonth(year, month) {
1175
+ const cacheKey = `${year}-${month}`;
1176
+ const cached = firstDayOfMonthCache.get(cacheKey);
1177
+ if (cached)
1178
+ return new Date(cached);
1153
1179
  let anchorDate = firstOfMonthAtOrBefore(new Date());
1154
1180
  let c = parse(anchorDate);
1155
1181
  // سقف ایمنی برای جلوگیری از لوپ بی‌نهایت (≈ 100 سال چینی)
@@ -1172,6 +1198,7 @@ var ChineseConverter;
1172
1198
  c = parse(anchorDate);
1173
1199
  guard++;
1174
1200
  }
1201
+ firstDayOfMonthCache.set(cacheKey, anchorDate);
1175
1202
  return anchorDate;
1176
1203
  }
1177
1204
  ChineseConverter.firstDayOfMonth = firstDayOfMonth;
@@ -1191,7 +1218,12 @@ var ChineseConverter;
1191
1218
  * `Date.getDate()` میلادی، چون آن مقدار به اشتباه طول ماه را
1192
1219
  * بر اساس تقویم میلادی محاسبه می‌کرد.
1193
1220
  */
1221
+ const daysInMonthCache = new Map();
1194
1222
  function daysInMonth(year, month) {
1223
+ const cacheKey = `${year}-${month}`;
1224
+ const cached = daysInMonthCache.get(cacheKey);
1225
+ if (cached !== undefined)
1226
+ return cached;
1195
1227
  const first = firstDayOfMonth(year, month);
1196
1228
  for (let i = 1; i <= 31; i++) {
1197
1229
  const test = new Date(first);
@@ -1200,7 +1232,9 @@ var ChineseConverter;
1200
1232
  if (c.year !== year || c.month !== month || c.isLeapMonth) {
1201
1233
  const last = new Date(test);
1202
1234
  last.setDate(last.getDate() - 1);
1203
- return parse(last).day;
1235
+ const result = parse(last).day;
1236
+ daysInMonthCache.set(cacheKey, result);
1237
+ return result;
1204
1238
  }
1205
1239
  }
1206
1240
  return 29; // fallback ایمن
@@ -1783,7 +1817,7 @@ class NgxInputDatePickerComponent extends NgxDatePickerBase {
1783
1817
  ev.stopPropagation();
1784
1818
  }
1785
1819
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NgxInputDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1786
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: NgxInputDatePickerComponent, isStandalone: true, selector: "ngx-datepicker", inputs: { setTheme: ["theme", "setTheme"], setConfig: ["config", "setConfig"], locale: "locale", setMin: ["min", "setMin"], setMax: ["max", "setMax"], view: "view" }, outputs: { change: "change" }, host: { properties: { "class.dark": "theme==\"dark\"" } }, providers: [
1820
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: NgxInputDatePickerComponent, isStandalone: true, selector: "ngx-date-picker", inputs: { setTheme: ["theme", "setTheme"], setConfig: ["config", "setConfig"], locale: "locale", setMin: ["min", "setMin"], setMax: ["max", "setMax"], view: "view" }, outputs: { change: "change" }, host: { properties: { "class.dark": "theme==\"dark\"" } }, providers: [
1787
1821
  DateAdapterRegistry,
1788
1822
  {
1789
1823
  provide: NG_VALUE_ACCESSOR,
@@ -1795,11 +1829,11 @@ class NgxInputDatePickerComponent extends NgxDatePickerBase {
1795
1829
  useExisting: forwardRef(() => NgxInputDatePickerComponent),
1796
1830
  multi: true,
1797
1831
  },
1798
- ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"wrapper\"\n #datepickerWrapper\n [style.width.px]=\"wrapperWidth\"\n (click)=\"stopPagination($event)\">\n <div class=\"header\">\n {{ calendarHeader }}\n </div>\n <div class=\"sub-header\">\n <div class=\"icons\">\n <span id=\"prev\" class=\"material-symbols-rounded\" (click)=\"previous()\">\n <ng-template\n [ngTemplateOutlet]=\"\n config.previousButtonTemplate || defaultPreviousBTNTemplate\n \"></ng-template>\n </span>\n </div>\n <span class=\"current-date\">\n <span (click)=\"changeView('year')\">\n {{ currYear }}\n <ng-template\n [ngTemplateOutlet]=\"config.caretDownIconTemplate || defaultCaretDownIcon\"></ng-template>\n </span>\n <span (click)=\"changeView('month')\">\n {{ displayMonth }}\n <ng-template\n [ngTemplateOutlet]=\"config.caretDownIconTemplate || defaultCaretDownIcon\"></ng-template>\n </span>\n </span>\n <div class=\"icons\">\n <span id=\"next\" class=\"material-symbols-rounded\" (click)=\"next()\">\n <ng-template\n [ngTemplateOutlet]=\"config.nextButtonTemplate || defaultNextBTNTemplate\"></ng-template>\n </span>\n </div>\n </div>\n <div class=\"calendar\">\n @if (view === 'day') {\n <ul class=\"weeks\">\n @for (w of weekDays; track $index) {\n <li [title]=\"w.name\">\n {{ w.min }}\n </li>\n }\n </ul>\n <ul class=\"days\">\n @for (item of viewDays; track $index) {\n <li\n [class.de-active]=\"!item.active\"\n [class.today]=\"item.isToday\"\n [class.selected]=\"item.selected\"\n (click)=\"selectDay($event, item)\">\n {{ item.day }}\n </li>\n }\n </ul>\n } @else if (view === 'month') {\n <ul class=\"months\">\n @for (item of viewMonths; track $index; let i = $index) {\n <li\n [class.de-active]=\"!item.active\"\n [class.today]=\"item.isToday\"\n [class.selected]=\"item.selected\"\n (click)=\"selectMonth($event, item)\">\n {{ i + 1 }}.{{ item.displayMonth }}\n </li>\n }\n </ul>\n } @else if (view === 'year') {\n <ul class=\"years\">\n @for (item of viewYears; track $index) {\n <li\n [class.de-active]=\"!item.active\"\n [class.today]=\"item.isToday\"\n [class.selected]=\"item.selected\"\n (click)=\"selectYear($event, item)\">\n {{ item.year }}\n </li>\n }\n </ul>\n }\n <!-- <pre>\n currYear={{currYear}}\n currMonth={{currMonth}}\n {{selected|json}}\n </pre> -->\n <div class=\"calendar-footer\">\n @if (config.clearButton) {\n <button class=\"today dtp-btn\" (click)=\"clear()\">\n {{ config.clearButtonText }}\n </button>\n }\n @if (config.todayButton) {\n <button class=\"today dtp-btn\" (click)=\"gotoToday()\">\n {{ config.todayButtonText }}\n </button>\n }\n </div>\n </div>\n</div>\n\n<ng-template #defaultPreviousBTNTemplate>\n <svg width=\"15px\" height=\"40px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n class=\"fa-secondary\"\n d=\"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z\" />\n </svg>\n</ng-template>\n\n<ng-template #defaultNextBTNTemplate>\n <svg width=\"15px\" height=\"40px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n class=\"fa-secondary\"\n d=\"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z\" />\n </svg>\n</ng-template>\n\n<ng-template #defaultCaretDownIcon>\n <svg width=\"10px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n class=\"fa-secondary\"\n d=\"M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z\" />\n </svg>\n</ng-template>\n", styles: [":host{--ngx-color-bg: #fff;--ngx-color-text: #000;--ngx-border-color: #c0c0c0;--ngx-datepicker-header-bg: #6200ee;--ngx-datepicker-header-text: #fff;--ngx-datepicker-subheader-bg: #e0d5ef;--ngx-datepicker-subheader-text: #272727}:host-context(.dark){--ngx-color-bg: #222;--ngx-color-text: #fff;--ngx-border-color: #c0c0c0;--ngx-datepicker-header-bg: #6200ee;--ngx-datepicker-header-text: #fff;--ngx-datepicker-subheader-bg: #8e819e;--ngx-datepicker-subheader-text: #272727}.wrapper{background:var(--ngx-color-bg);box-shadow:0 15px 40px #0000001f;color:var(--ngx-color-text);border-radius:6px;overflow:hidden}.wrapper .header{display:block;padding:15px 15px 10px;background-color:var(--ngx-datepicker-header-bg);color:var(--ngx-datepicker-header-text);font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.wrapper .sub-header{display:flex;align-items:center;padding:5px 10px;background-color:var(--ngx-datepicker-subheader-bg);color:var(--ngx-datepicker-subheader-text)}.wrapper .sub-header .current-date{font-size:1rem;font-weight:800;flex:auto;display:flex;align-items:center}.wrapper .sub-header .current-date span{flex:auto;text-align:center}.wrapper .sub-header .icons{display:flex}.wrapper .sub-header .icons span{height:38px;width:38px;margin:0 1px;cursor:pointer;color:#878787;text-align:center;line-height:38px;font-size:1.9rem;-webkit-user-select:none;user-select:none;border-radius:50%}.wrapper .sub-header .icons span:hover{background:#f2f2f272}.wrapper .calendar-footer{display:flex;justify-content:space-between;gap:5px}.wrapper .calendar-footer .dtp-btn{background:none;color:inherit;border:1px rgba(159,159,159,.5450980392) solid;border-radius:3px;padding:3px 15px;box-shadow:0 0 4px #0003;transition:all .3s}.wrapper .calendar-footer .dtp-btn:not([disabled]):hover{cursor:pointer;background:#87879e}.calendar{padding:10px}.calendar ul{display:flex;flex-wrap:wrap;list-style:none;text-align:center;padding:0;margin:0}.calendar .days{margin-bottom:20px}.calendar .days li{height:40px;width:40px}.calendar .months{margin-bottom:20px}.calendar .months li{height:40px;width:33%}.calendar .years{margin-bottom:20px}.calendar .years li{height:40px;width:25%}.calendar li{z-index:1;cursor:pointer;position:relative;color:#333;font-size:12px;border-radius:50px;display:flex;align-items:center;justify-content:center;border:1px transparent solid;transition:all .3s;color:inherit}.calendar li:not(.active):hover{background:#dfdfdf68}.calendar li.de-active{opacity:.2}.calendar li.selected{border:1px #1216fa solid}.calendar li.today{background-color:#9b59b6}.calendar .weeks{border-bottom:1px rgba(231,231,231,.3450980392) solid;margin-bottom:10px;padding-bottom:5px}.calendar .weeks li{font-weight:500;cursor:default;flex:auto;flex-wrap:nowrap}.calendar .weeks li:hover{background:none}::ng-deep body[dir=rtl] .wrapper .sub-header .icons #next,::ng-deep body[dir=rtl] .wrapper .sub-header .icons #prev,::ng-deep html[dir=rtl] .wrapper .sub-header .icons #next,::ng-deep html[dir=rtl] .wrapper .sub-header .icons #prev{transform:rotate(180deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
1832
+ ], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"wrapper\"\r\n #datepickerWrapper\r\n [style.width.px]=\"wrapperWidth\"\r\n (click)=\"stopPagination($event)\">\r\n <div class=\"header\">\r\n {{ calendarHeader }}\r\n </div>\r\n <div class=\"sub-header\">\r\n <div class=\"icons\">\r\n <span id=\"prev\" class=\"material-symbols-rounded\" (click)=\"previous()\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"\r\n config.previousButtonTemplate || defaultPreviousBTNTemplate\r\n \"></ng-template>\r\n </span>\r\n </div>\r\n <span class=\"current-date\">\r\n <span (click)=\"changeView('year')\">\r\n {{ currYear }}\r\n <ng-template\r\n [ngTemplateOutlet]=\"config.caretDownIconTemplate || defaultCaretDownIcon\"></ng-template>\r\n </span>\r\n <span (click)=\"changeView('month')\">\r\n {{ displayMonth }}\r\n <ng-template\r\n [ngTemplateOutlet]=\"config.caretDownIconTemplate || defaultCaretDownIcon\"></ng-template>\r\n </span>\r\n </span>\r\n <div class=\"icons\">\r\n <span id=\"next\" class=\"material-symbols-rounded\" (click)=\"next()\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"config.nextButtonTemplate || defaultNextBTNTemplate\"></ng-template>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"calendar\">\r\n @if (view === 'day') {\r\n <ul class=\"weeks\">\r\n @for (w of weekDays; track $index) {\r\n <li [title]=\"w.name\">\r\n {{ w.min }}\r\n </li>\r\n }\r\n </ul>\r\n <ul class=\"days\">\r\n @for (item of viewDays; track $index) {\r\n <li\r\n [class.de-active]=\"!item.active\"\r\n [class.today]=\"item.isToday\"\r\n [class.selected]=\"item.selected\"\r\n (click)=\"selectDay($event, item)\">\r\n {{ item.day }}\r\n </li>\r\n }\r\n </ul>\r\n } @else if (view === 'month') {\r\n <ul class=\"months\">\r\n @for (item of viewMonths; track $index; let i = $index) {\r\n <li\r\n [class.de-active]=\"!item.active\"\r\n [class.today]=\"item.isToday\"\r\n [class.selected]=\"item.selected\"\r\n (click)=\"selectMonth($event, item)\">\r\n {{ i + 1 }}.{{ item.displayMonth }}\r\n </li>\r\n }\r\n </ul>\r\n } @else if (view === 'year') {\r\n <ul class=\"years\">\r\n @for (item of viewYears; track $index) {\r\n <li\r\n [class.de-active]=\"!item.active\"\r\n [class.today]=\"item.isToday\"\r\n [class.selected]=\"item.selected\"\r\n (click)=\"selectYear($event, item)\">\r\n {{ item.year }}\r\n </li>\r\n }\r\n </ul>\r\n }\r\n <!-- <pre>\r\n currYear={{currYear}}\r\n currMonth={{currMonth}}\r\n {{selected|json}}\r\n </pre> -->\r\n <div class=\"calendar-footer\">\r\n @if (config.clearButton) {\r\n <button (click)=\"clear()\">\r\n {{ config.clearButtonText }}\r\n </button>\r\n }\r\n @if (config.todayButton) {\r\n <button (click)=\"gotoToday()\">\r\n {{ config.todayButtonText }}\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultPreviousBTNTemplate>\r\n <svg width=\"15px\" height=\"40px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n class=\"fa-secondary\"\r\n d=\"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #defaultNextBTNTemplate>\r\n <svg width=\"15px\" height=\"40px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n class=\"fa-secondary\"\r\n d=\"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #defaultCaretDownIcon>\r\n <svg width=\"10px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n class=\"fa-secondary\"\r\n d=\"M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z\" />\r\n </svg>\r\n</ng-template>\r\n", styles: [":host{--ngx-color-bg: #fff;--ngx-color-text: #000;--ngx-border-color: #c0c0c0;--ngx-datepicker-header-bg: #6200ee;--ngx-datepicker-header-text: #fff;--ngx-datepicker-subheader-bg: #e0d5ef;--ngx-datepicker-subheader-text: #272727}:host-context(.dark){--ngx-color-bg: #222;--ngx-color-text: #fff;--ngx-border-color: #c0c0c0;--ngx-datepicker-header-bg: #6200ee;--ngx-datepicker-header-text: #fff;--ngx-datepicker-subheader-bg: #8e819e;--ngx-datepicker-subheader-text: #272727}.wrapper{background:var(--ngx-color-bg);box-shadow:0 15px 40px #0000001f;color:var(--ngx-color-text);border-radius:6px;overflow:hidden}.wrapper .header{display:block;padding:15px 15px 10px;background-color:var(--ngx-datepicker-header-bg);color:var(--ngx-datepicker-header-text);font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.wrapper .sub-header{display:flex;align-items:center;padding:5px 10px;background-color:var(--ngx-datepicker-subheader-bg);color:var(--ngx-datepicker-subheader-text)}.wrapper .sub-header .current-date{font-size:1rem;font-weight:800;flex:auto;display:flex;align-items:center}.wrapper .sub-header .current-date span{flex:auto;text-align:center}.wrapper .sub-header .icons{display:flex}.wrapper .sub-header .icons span{height:38px;width:38px;margin:0 1px;cursor:pointer;color:#878787;text-align:center;line-height:38px;font-size:1.9rem;-webkit-user-select:none;user-select:none;border-radius:50%}.wrapper .sub-header .icons span:hover{background:#f2f2f272}.wrapper .calendar-footer{display:flex;justify-content:space-between;gap:5px}.wrapper .calendar-footer button{outline:none;background:none;color:inherit;border:none;border-radius:4px;padding:8px 15px;box-shadow:none;transition:all .3s}.wrapper .calendar-footer button:not([disabled]):hover{cursor:pointer;background:#816ef175}.calendar{padding:10px}.calendar ul{display:flex;flex-wrap:wrap;list-style:none;text-align:center;padding:0;margin:0}.calendar .days{margin-bottom:20px}.calendar .days li{height:40px;width:40px}.calendar .months{margin-bottom:20px}.calendar .months li{height:40px;width:33%}.calendar .years{margin-bottom:20px}.calendar .years li{height:40px;width:25%}.calendar li{z-index:1;cursor:pointer;position:relative;color:#333;font-size:12px;border-radius:50px;display:flex;align-items:center;justify-content:center;border:1px transparent solid;transition:all .3s;color:inherit}.calendar li:not(.active):hover{background:#dfdfdf68}.calendar li.de-active{opacity:.2}.calendar li.selected{border:1px #1216fa solid}.calendar li.today{background-color:#9b59b6}.calendar .weeks{border-bottom:1px rgba(231,231,231,.3450980392) solid;margin-bottom:10px;padding-bottom:5px}.calendar .weeks li{font-weight:500;cursor:default;flex:auto;flex-wrap:nowrap}.calendar .weeks li:hover{background:none}::ng-deep body[dir=rtl] .wrapper .sub-header .icons #next,::ng-deep body[dir=rtl] .wrapper .sub-header .icons #prev,::ng-deep html[dir=rtl] .wrapper .sub-header .icons #next,::ng-deep html[dir=rtl] .wrapper .sub-header .icons #prev{transform:rotate(180deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
1799
1833
  }
1800
1834
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NgxInputDatePickerComponent, decorators: [{
1801
1835
  type: Component,
1802
- args: [{ selector: 'ngx-datepicker', imports: [CommonModule], providers: [
1836
+ args: [{ selector: 'ngx-date-picker', imports: [CommonModule], providers: [
1803
1837
  DateAdapterRegistry,
1804
1838
  {
1805
1839
  provide: NG_VALUE_ACCESSOR,
@@ -1813,7 +1847,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
1813
1847
  },
1814
1848
  ], host: {
1815
1849
  '[class.dark]': 'theme=="dark"',
1816
- }, template: "<div\n class=\"wrapper\"\n #datepickerWrapper\n [style.width.px]=\"wrapperWidth\"\n (click)=\"stopPagination($event)\">\n <div class=\"header\">\n {{ calendarHeader }}\n </div>\n <div class=\"sub-header\">\n <div class=\"icons\">\n <span id=\"prev\" class=\"material-symbols-rounded\" (click)=\"previous()\">\n <ng-template\n [ngTemplateOutlet]=\"\n config.previousButtonTemplate || defaultPreviousBTNTemplate\n \"></ng-template>\n </span>\n </div>\n <span class=\"current-date\">\n <span (click)=\"changeView('year')\">\n {{ currYear }}\n <ng-template\n [ngTemplateOutlet]=\"config.caretDownIconTemplate || defaultCaretDownIcon\"></ng-template>\n </span>\n <span (click)=\"changeView('month')\">\n {{ displayMonth }}\n <ng-template\n [ngTemplateOutlet]=\"config.caretDownIconTemplate || defaultCaretDownIcon\"></ng-template>\n </span>\n </span>\n <div class=\"icons\">\n <span id=\"next\" class=\"material-symbols-rounded\" (click)=\"next()\">\n <ng-template\n [ngTemplateOutlet]=\"config.nextButtonTemplate || defaultNextBTNTemplate\"></ng-template>\n </span>\n </div>\n </div>\n <div class=\"calendar\">\n @if (view === 'day') {\n <ul class=\"weeks\">\n @for (w of weekDays; track $index) {\n <li [title]=\"w.name\">\n {{ w.min }}\n </li>\n }\n </ul>\n <ul class=\"days\">\n @for (item of viewDays; track $index) {\n <li\n [class.de-active]=\"!item.active\"\n [class.today]=\"item.isToday\"\n [class.selected]=\"item.selected\"\n (click)=\"selectDay($event, item)\">\n {{ item.day }}\n </li>\n }\n </ul>\n } @else if (view === 'month') {\n <ul class=\"months\">\n @for (item of viewMonths; track $index; let i = $index) {\n <li\n [class.de-active]=\"!item.active\"\n [class.today]=\"item.isToday\"\n [class.selected]=\"item.selected\"\n (click)=\"selectMonth($event, item)\">\n {{ i + 1 }}.{{ item.displayMonth }}\n </li>\n }\n </ul>\n } @else if (view === 'year') {\n <ul class=\"years\">\n @for (item of viewYears; track $index) {\n <li\n [class.de-active]=\"!item.active\"\n [class.today]=\"item.isToday\"\n [class.selected]=\"item.selected\"\n (click)=\"selectYear($event, item)\">\n {{ item.year }}\n </li>\n }\n </ul>\n }\n <!-- <pre>\n currYear={{currYear}}\n currMonth={{currMonth}}\n {{selected|json}}\n </pre> -->\n <div class=\"calendar-footer\">\n @if (config.clearButton) {\n <button class=\"today dtp-btn\" (click)=\"clear()\">\n {{ config.clearButtonText }}\n </button>\n }\n @if (config.todayButton) {\n <button class=\"today dtp-btn\" (click)=\"gotoToday()\">\n {{ config.todayButtonText }}\n </button>\n }\n </div>\n </div>\n</div>\n\n<ng-template #defaultPreviousBTNTemplate>\n <svg width=\"15px\" height=\"40px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n class=\"fa-secondary\"\n d=\"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z\" />\n </svg>\n</ng-template>\n\n<ng-template #defaultNextBTNTemplate>\n <svg width=\"15px\" height=\"40px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n class=\"fa-secondary\"\n d=\"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z\" />\n </svg>\n</ng-template>\n\n<ng-template #defaultCaretDownIcon>\n <svg width=\"10px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n class=\"fa-secondary\"\n d=\"M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z\" />\n </svg>\n</ng-template>\n", styles: [":host{--ngx-color-bg: #fff;--ngx-color-text: #000;--ngx-border-color: #c0c0c0;--ngx-datepicker-header-bg: #6200ee;--ngx-datepicker-header-text: #fff;--ngx-datepicker-subheader-bg: #e0d5ef;--ngx-datepicker-subheader-text: #272727}:host-context(.dark){--ngx-color-bg: #222;--ngx-color-text: #fff;--ngx-border-color: #c0c0c0;--ngx-datepicker-header-bg: #6200ee;--ngx-datepicker-header-text: #fff;--ngx-datepicker-subheader-bg: #8e819e;--ngx-datepicker-subheader-text: #272727}.wrapper{background:var(--ngx-color-bg);box-shadow:0 15px 40px #0000001f;color:var(--ngx-color-text);border-radius:6px;overflow:hidden}.wrapper .header{display:block;padding:15px 15px 10px;background-color:var(--ngx-datepicker-header-bg);color:var(--ngx-datepicker-header-text);font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.wrapper .sub-header{display:flex;align-items:center;padding:5px 10px;background-color:var(--ngx-datepicker-subheader-bg);color:var(--ngx-datepicker-subheader-text)}.wrapper .sub-header .current-date{font-size:1rem;font-weight:800;flex:auto;display:flex;align-items:center}.wrapper .sub-header .current-date span{flex:auto;text-align:center}.wrapper .sub-header .icons{display:flex}.wrapper .sub-header .icons span{height:38px;width:38px;margin:0 1px;cursor:pointer;color:#878787;text-align:center;line-height:38px;font-size:1.9rem;-webkit-user-select:none;user-select:none;border-radius:50%}.wrapper .sub-header .icons span:hover{background:#f2f2f272}.wrapper .calendar-footer{display:flex;justify-content:space-between;gap:5px}.wrapper .calendar-footer .dtp-btn{background:none;color:inherit;border:1px rgba(159,159,159,.5450980392) solid;border-radius:3px;padding:3px 15px;box-shadow:0 0 4px #0003;transition:all .3s}.wrapper .calendar-footer .dtp-btn:not([disabled]):hover{cursor:pointer;background:#87879e}.calendar{padding:10px}.calendar ul{display:flex;flex-wrap:wrap;list-style:none;text-align:center;padding:0;margin:0}.calendar .days{margin-bottom:20px}.calendar .days li{height:40px;width:40px}.calendar .months{margin-bottom:20px}.calendar .months li{height:40px;width:33%}.calendar .years{margin-bottom:20px}.calendar .years li{height:40px;width:25%}.calendar li{z-index:1;cursor:pointer;position:relative;color:#333;font-size:12px;border-radius:50px;display:flex;align-items:center;justify-content:center;border:1px transparent solid;transition:all .3s;color:inherit}.calendar li:not(.active):hover{background:#dfdfdf68}.calendar li.de-active{opacity:.2}.calendar li.selected{border:1px #1216fa solid}.calendar li.today{background-color:#9b59b6}.calendar .weeks{border-bottom:1px rgba(231,231,231,.3450980392) solid;margin-bottom:10px;padding-bottom:5px}.calendar .weeks li{font-weight:500;cursor:default;flex:auto;flex-wrap:nowrap}.calendar .weeks li:hover{background:none}::ng-deep body[dir=rtl] .wrapper .sub-header .icons #next,::ng-deep body[dir=rtl] .wrapper .sub-header .icons #prev,::ng-deep html[dir=rtl] .wrapper .sub-header .icons #next,::ng-deep html[dir=rtl] .wrapper .sub-header .icons #prev{transform:rotate(180deg)}\n"] }]
1850
+ }, template: "<div\r\n class=\"wrapper\"\r\n #datepickerWrapper\r\n [style.width.px]=\"wrapperWidth\"\r\n (click)=\"stopPagination($event)\">\r\n <div class=\"header\">\r\n {{ calendarHeader }}\r\n </div>\r\n <div class=\"sub-header\">\r\n <div class=\"icons\">\r\n <span id=\"prev\" class=\"material-symbols-rounded\" (click)=\"previous()\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"\r\n config.previousButtonTemplate || defaultPreviousBTNTemplate\r\n \"></ng-template>\r\n </span>\r\n </div>\r\n <span class=\"current-date\">\r\n <span (click)=\"changeView('year')\">\r\n {{ currYear }}\r\n <ng-template\r\n [ngTemplateOutlet]=\"config.caretDownIconTemplate || defaultCaretDownIcon\"></ng-template>\r\n </span>\r\n <span (click)=\"changeView('month')\">\r\n {{ displayMonth }}\r\n <ng-template\r\n [ngTemplateOutlet]=\"config.caretDownIconTemplate || defaultCaretDownIcon\"></ng-template>\r\n </span>\r\n </span>\r\n <div class=\"icons\">\r\n <span id=\"next\" class=\"material-symbols-rounded\" (click)=\"next()\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"config.nextButtonTemplate || defaultNextBTNTemplate\"></ng-template>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"calendar\">\r\n @if (view === 'day') {\r\n <ul class=\"weeks\">\r\n @for (w of weekDays; track $index) {\r\n <li [title]=\"w.name\">\r\n {{ w.min }}\r\n </li>\r\n }\r\n </ul>\r\n <ul class=\"days\">\r\n @for (item of viewDays; track $index) {\r\n <li\r\n [class.de-active]=\"!item.active\"\r\n [class.today]=\"item.isToday\"\r\n [class.selected]=\"item.selected\"\r\n (click)=\"selectDay($event, item)\">\r\n {{ item.day }}\r\n </li>\r\n }\r\n </ul>\r\n } @else if (view === 'month') {\r\n <ul class=\"months\">\r\n @for (item of viewMonths; track $index; let i = $index) {\r\n <li\r\n [class.de-active]=\"!item.active\"\r\n [class.today]=\"item.isToday\"\r\n [class.selected]=\"item.selected\"\r\n (click)=\"selectMonth($event, item)\">\r\n {{ i + 1 }}.{{ item.displayMonth }}\r\n </li>\r\n }\r\n </ul>\r\n } @else if (view === 'year') {\r\n <ul class=\"years\">\r\n @for (item of viewYears; track $index) {\r\n <li\r\n [class.de-active]=\"!item.active\"\r\n [class.today]=\"item.isToday\"\r\n [class.selected]=\"item.selected\"\r\n (click)=\"selectYear($event, item)\">\r\n {{ item.year }}\r\n </li>\r\n }\r\n </ul>\r\n }\r\n <!-- <pre>\r\n currYear={{currYear}}\r\n currMonth={{currMonth}}\r\n {{selected|json}}\r\n </pre> -->\r\n <div class=\"calendar-footer\">\r\n @if (config.clearButton) {\r\n <button (click)=\"clear()\">\r\n {{ config.clearButtonText }}\r\n </button>\r\n }\r\n @if (config.todayButton) {\r\n <button (click)=\"gotoToday()\">\r\n {{ config.todayButtonText }}\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultPreviousBTNTemplate>\r\n <svg width=\"15px\" height=\"40px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n class=\"fa-secondary\"\r\n d=\"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #defaultNextBTNTemplate>\r\n <svg width=\"15px\" height=\"40px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n class=\"fa-secondary\"\r\n d=\"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #defaultCaretDownIcon>\r\n <svg width=\"10px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n <path\r\n class=\"fa-secondary\"\r\n d=\"M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z\" />\r\n </svg>\r\n</ng-template>\r\n", styles: [":host{--ngx-color-bg: #fff;--ngx-color-text: #000;--ngx-border-color: #c0c0c0;--ngx-datepicker-header-bg: #6200ee;--ngx-datepicker-header-text: #fff;--ngx-datepicker-subheader-bg: #e0d5ef;--ngx-datepicker-subheader-text: #272727}:host-context(.dark){--ngx-color-bg: #222;--ngx-color-text: #fff;--ngx-border-color: #c0c0c0;--ngx-datepicker-header-bg: #6200ee;--ngx-datepicker-header-text: #fff;--ngx-datepicker-subheader-bg: #8e819e;--ngx-datepicker-subheader-text: #272727}.wrapper{background:var(--ngx-color-bg);box-shadow:0 15px 40px #0000001f;color:var(--ngx-color-text);border-radius:6px;overflow:hidden}.wrapper .header{display:block;padding:15px 15px 10px;background-color:var(--ngx-datepicker-header-bg);color:var(--ngx-datepicker-header-text);font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.wrapper .sub-header{display:flex;align-items:center;padding:5px 10px;background-color:var(--ngx-datepicker-subheader-bg);color:var(--ngx-datepicker-subheader-text)}.wrapper .sub-header .current-date{font-size:1rem;font-weight:800;flex:auto;display:flex;align-items:center}.wrapper .sub-header .current-date span{flex:auto;text-align:center}.wrapper .sub-header .icons{display:flex}.wrapper .sub-header .icons span{height:38px;width:38px;margin:0 1px;cursor:pointer;color:#878787;text-align:center;line-height:38px;font-size:1.9rem;-webkit-user-select:none;user-select:none;border-radius:50%}.wrapper .sub-header .icons span:hover{background:#f2f2f272}.wrapper .calendar-footer{display:flex;justify-content:space-between;gap:5px}.wrapper .calendar-footer button{outline:none;background:none;color:inherit;border:none;border-radius:4px;padding:8px 15px;box-shadow:none;transition:all .3s}.wrapper .calendar-footer button:not([disabled]):hover{cursor:pointer;background:#816ef175}.calendar{padding:10px}.calendar ul{display:flex;flex-wrap:wrap;list-style:none;text-align:center;padding:0;margin:0}.calendar .days{margin-bottom:20px}.calendar .days li{height:40px;width:40px}.calendar .months{margin-bottom:20px}.calendar .months li{height:40px;width:33%}.calendar .years{margin-bottom:20px}.calendar .years li{height:40px;width:25%}.calendar li{z-index:1;cursor:pointer;position:relative;color:#333;font-size:12px;border-radius:50px;display:flex;align-items:center;justify-content:center;border:1px transparent solid;transition:all .3s;color:inherit}.calendar li:not(.active):hover{background:#dfdfdf68}.calendar li.de-active{opacity:.2}.calendar li.selected{border:1px #1216fa solid}.calendar li.today{background-color:#9b59b6}.calendar .weeks{border-bottom:1px rgba(231,231,231,.3450980392) solid;margin-bottom:10px;padding-bottom:5px}.calendar .weeks li{font-weight:500;cursor:default;flex:auto;flex-wrap:nowrap}.calendar .weeks li:hover{background:none}::ng-deep body[dir=rtl] .wrapper .sub-header .icons #next,::ng-deep body[dir=rtl] .wrapper .sub-header .icons #prev,::ng-deep html[dir=rtl] .wrapper .sub-header .icons #next,::ng-deep html[dir=rtl] .wrapper .sub-header .icons #prev{transform:rotate(180deg)}\n"] }]
1817
1851
  }], ctorParameters: () => [], propDecorators: { setTheme: [{
1818
1852
  type: Input,
1819
1853
  args: ['theme']