@acorex/core 7.5.0 → 7.5.1
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.
- package/dateTime/lib/georgian.calendar.d.ts +2 -2
- package/esm2022/config/lib/configs.mjs +2 -2
- package/esm2022/config/lib/configs.service.mjs +2 -2
- package/esm2022/dateTime/lib/calendar.service.mjs +6 -7
- package/esm2022/dateTime/lib/dateTime.config.mjs +34 -26
- package/esm2022/dateTime/lib/datetime.class.mjs +1 -1
- package/esm2022/dateTime/lib/datetime.module.mjs +2 -2
- package/esm2022/dateTime/lib/datetime.pipe.mjs +1 -1
- package/esm2022/dateTime/lib/georgian.calendar.mjs +40 -44
- package/esm2022/dateTime/lib/jalali.calendar.mjs +21 -25
- package/esm2022/events/lib/event.service.mjs +4 -4
- package/esm2022/file/lib/file-download-ref.class.mjs +1 -1
- package/esm2022/file/lib/file-download-result.class.mjs +3 -3
- package/esm2022/file/lib/file-upload-ref.class.mjs +1 -1
- package/esm2022/file/lib/file.service.mjs +8 -10
- package/esm2022/image/lib/image.service.mjs +9 -9
- package/esm2022/intl/lib/numbers/number-format-options.mjs +3 -3
- package/esm2022/intl/lib/numbers/numbers-utils.mjs +5 -5
- package/esm2022/pipes/lib/pipes.module.mjs +2 -2
- package/esm2022/pipes/lib/safe.pipe.mjs +15 -9
- package/esm2022/translation/lib/translation.module.mjs +1 -1
- package/esm2022/translation/lib/translator.pipe.mjs +1 -1
- package/esm2022/utils/lib/color-util.mjs +2 -2
- package/esm2022/utils/lib/drawing-util.mjs +6 -3
- package/esm2022/utils/lib/string-util.mjs +2 -2
- package/fesm2022/acorex-core-config.mjs +1 -1
- package/fesm2022/acorex-core-config.mjs.map +1 -1
- package/fesm2022/acorex-core-dateTime.mjs +240 -241
- package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-events.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +9 -11
- package/fesm2022/acorex-core-file.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +8 -8
- package/fesm2022/acorex-core-image.mjs.map +1 -1
- package/fesm2022/acorex-core-intl.mjs +5 -5
- package/fesm2022/acorex-core-intl.mjs.map +1 -1
- package/fesm2022/acorex-core-pipes.mjs +14 -8
- package/fesm2022/acorex-core-pipes.mjs.map +1 -1
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +7 -4
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/file/lib/file-download-ref.class.d.ts +1 -1
- package/image/lib/image.service.d.ts +0 -1
- package/intl/lib/numbers/numbers-utils.d.ts +1 -1
- package/package.json +1 -7
- package/pipes/lib/safe.pipe.d.ts +1 -1
- package/esm2022/http/acorex-core-http.mjs +0 -5
- package/esm2022/http/index.mjs +0 -7
- package/esm2022/http/lib/http-error.class.mjs +0 -2
- package/esm2022/http/lib/http-events.interceptor.mjs +0 -3
- package/esm2022/http/lib/http-request.class.mjs +0 -2
- package/esm2022/http/lib/http-result.class.mjs +0 -21
- package/esm2022/http/lib/http.module.mjs +0 -29
- package/esm2022/http/lib/http.service.mjs +0 -148
- package/fesm2022/acorex-core-http.mjs +0 -201
- package/fesm2022/acorex-core-http.mjs.map +0 -1
- package/http/README.md +0 -3
- package/http/index.d.ts +0 -6
- package/http/lib/http-error.class.d.ts +0 -7
- package/http/lib/http-events.interceptor.d.ts +0 -10
- package/http/lib/http-request.class.d.ts +0 -14
- package/http/lib/http-result.class.d.ts +0 -11
- package/http/lib/http.module.d.ts +0 -8
- package/http/lib/http.service.d.ts +0 -23
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
2
|
import { InjectionToken, inject, Injectable, Pipe, NgModule } from '@angular/core';
|
3
|
-
import { orderBy, set } from 'lodash-es';
|
4
3
|
import { AX_GLOBAL_CONFIG } from '@acorex/core/config';
|
4
|
+
import { orderBy, set } from 'lodash-es';
|
5
5
|
|
6
6
|
class AXCalendar {
|
7
7
|
/**
|
@@ -269,6 +269,190 @@ class AXDateTimeRange {
|
|
269
269
|
}
|
270
270
|
}
|
271
271
|
|
272
|
+
class GeorgianCalendar extends AXCalendar {
|
273
|
+
/**
|
274
|
+
* @ignore
|
275
|
+
*/
|
276
|
+
constructor(config) {
|
277
|
+
super(config);
|
278
|
+
}
|
279
|
+
create(value) {
|
280
|
+
return new AXDateTime(new Date(value.year, value.month - 1, value.date, value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this);
|
281
|
+
}
|
282
|
+
name() {
|
283
|
+
return 'georgian';
|
284
|
+
}
|
285
|
+
dayOfMonth(date) {
|
286
|
+
return date.getDate();
|
287
|
+
}
|
288
|
+
dayOfYear(date) {
|
289
|
+
let result = 0;
|
290
|
+
let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
291
|
+
if (this.isLeap(date)) {
|
292
|
+
m[1] = 29;
|
293
|
+
}
|
294
|
+
for (let i = 0; i < date.getMonth(); i++) {
|
295
|
+
result = result + m[i];
|
296
|
+
}
|
297
|
+
result += date.getDate();
|
298
|
+
return result;
|
299
|
+
}
|
300
|
+
dayOfWeek(date) {
|
301
|
+
return date.getDay() + 1;
|
302
|
+
}
|
303
|
+
weekOfYear(date) {
|
304
|
+
const firstDay = new AXDateTime(date, this).startOf('year');
|
305
|
+
return Math.ceil(((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7);
|
306
|
+
}
|
307
|
+
year(date) {
|
308
|
+
return date.getFullYear();
|
309
|
+
}
|
310
|
+
monthOfYear(date) {
|
311
|
+
return date.getMonth() + 1;
|
312
|
+
}
|
313
|
+
add(date, unit, amount) {
|
314
|
+
let value = date.valueOf();
|
315
|
+
switch (unit) {
|
316
|
+
case 'second':
|
317
|
+
value += 1000 * amount;
|
318
|
+
break;
|
319
|
+
case 'minute':
|
320
|
+
value += 60000 * amount;
|
321
|
+
break;
|
322
|
+
case 'hour':
|
323
|
+
value += 3600000 * amount;
|
324
|
+
break;
|
325
|
+
case 'month': {
|
326
|
+
const v = new Date(value);
|
327
|
+
let mo = date.getMonth();
|
328
|
+
let yr = date.getFullYear();
|
329
|
+
mo = (mo + amount) % 12;
|
330
|
+
if (0 > mo) {
|
331
|
+
yr += (date.getMonth() + amount - mo - 12) / 12;
|
332
|
+
mo += 12;
|
333
|
+
}
|
334
|
+
else
|
335
|
+
yr += (date.getMonth() + amount - mo) / 12;
|
336
|
+
v.setMonth(mo);
|
337
|
+
v.setFullYear(yr);
|
338
|
+
value = v.valueOf();
|
339
|
+
break;
|
340
|
+
}
|
341
|
+
case 'week':
|
342
|
+
value += 7 * 86400000 * amount;
|
343
|
+
break;
|
344
|
+
case 'year': {
|
345
|
+
const yv = new Date(value);
|
346
|
+
yv.setFullYear(yv.getFullYear() + amount);
|
347
|
+
value = yv.valueOf();
|
348
|
+
break;
|
349
|
+
}
|
350
|
+
case 'day':
|
351
|
+
default:
|
352
|
+
value += 86400000 * amount;
|
353
|
+
}
|
354
|
+
return new AXDateTime(new Date(value), this);
|
355
|
+
}
|
356
|
+
set(date, unit, value) {
|
357
|
+
const clone = new Date(date.valueOf());
|
358
|
+
switch (unit) {
|
359
|
+
case 'second':
|
360
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());
|
361
|
+
break;
|
362
|
+
case 'minute':
|
363
|
+
clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());
|
364
|
+
break;
|
365
|
+
case 'hour':
|
366
|
+
clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());
|
367
|
+
break;
|
368
|
+
default:
|
369
|
+
case 'day':
|
370
|
+
clone.setDate(value);
|
371
|
+
break;
|
372
|
+
case 'week':
|
373
|
+
break;
|
374
|
+
case 'month':
|
375
|
+
clone.setMonth(Math.max(0, value - 1));
|
376
|
+
break;
|
377
|
+
case 'year':
|
378
|
+
clone.setFullYear(value);
|
379
|
+
break;
|
380
|
+
}
|
381
|
+
return new AXDateTime(clone, this);
|
382
|
+
}
|
383
|
+
startOf(date, unit) {
|
384
|
+
const clone = new Date(date.valueOf());
|
385
|
+
switch (unit) {
|
386
|
+
case 'second':
|
387
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);
|
388
|
+
return new AXDateTime(clone, this);
|
389
|
+
case 'minute':
|
390
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);
|
391
|
+
return new AXDateTime(clone, this);
|
392
|
+
case 'hour':
|
393
|
+
clone.setHours(clone.getHours(), 0, 0, 0);
|
394
|
+
return new AXDateTime(clone, this);
|
395
|
+
default:
|
396
|
+
case 'day':
|
397
|
+
clone.setHours(0, 0, 0, 0);
|
398
|
+
return new AXDateTime(clone, this);
|
399
|
+
case 'week': {
|
400
|
+
const index = 0;
|
401
|
+
const start = index >= 0 ? index : 0;
|
402
|
+
const day = clone.getDay();
|
403
|
+
const diff = clone.getDate() - day + (start > day ? start - 7 : start);
|
404
|
+
clone.setDate(diff);
|
405
|
+
return new AXDateTime(clone, this).startOf('day');
|
406
|
+
}
|
407
|
+
case 'month':
|
408
|
+
clone.setDate(1);
|
409
|
+
return new AXDateTime(clone, this).startOf('day');
|
410
|
+
case 'year':
|
411
|
+
clone.setMonth(0);
|
412
|
+
clone.setDate(1);
|
413
|
+
return new AXDateTime(clone, this).startOf('day');
|
414
|
+
}
|
415
|
+
}
|
416
|
+
endOf(date, unit) {
|
417
|
+
const clone = new Date(date.valueOf());
|
418
|
+
switch (unit) {
|
419
|
+
case 'second':
|
420
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);
|
421
|
+
return new AXDateTime(clone, this);
|
422
|
+
case 'minute':
|
423
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);
|
424
|
+
return new AXDateTime(clone, this);
|
425
|
+
case 'hour':
|
426
|
+
clone.setHours(clone.getHours(), 59, 59, 999);
|
427
|
+
return new AXDateTime(clone, this);
|
428
|
+
default:
|
429
|
+
case 'day':
|
430
|
+
clone.setHours(23, 59, 59, 999);
|
431
|
+
return new AXDateTime(clone, this);
|
432
|
+
case 'week':
|
433
|
+
return this.startOf(date, 'week').add('day', 6).endOf('day');
|
434
|
+
case 'month': {
|
435
|
+
const dateObj = new Date();
|
436
|
+
dateObj.setFullYear(date.getFullYear());
|
437
|
+
dateObj.setMonth(date.getMonth() + 1);
|
438
|
+
dateObj.setDate(0);
|
439
|
+
return new AXDateTime(dateObj, this).endOf('day');
|
440
|
+
//return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this).endOf('day');
|
441
|
+
}
|
442
|
+
case 'year':
|
443
|
+
clone.setMonth(11);
|
444
|
+
return new AXDateTime(clone, this).endOf('month');
|
445
|
+
}
|
446
|
+
}
|
447
|
+
isLeap(date) {
|
448
|
+
let leapYear = new Date(date.getFullYear(), 1, 29);
|
449
|
+
return leapYear.getDate() == 29;
|
450
|
+
}
|
451
|
+
parse(value) {
|
452
|
+
return new AXDateTime(new Date(value), this);
|
453
|
+
}
|
454
|
+
}
|
455
|
+
|
272
456
|
class JalaliCalendar extends AXCalendar {
|
273
457
|
/**
|
274
458
|
* @ignore
|
@@ -378,26 +562,23 @@ class JalaliCalendar extends AXCalendar {
|
|
378
562
|
clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());
|
379
563
|
break;
|
380
564
|
default:
|
381
|
-
case 'day':
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
}
|
565
|
+
case 'day': {
|
566
|
+
const gDate = this.toGregorian(jDate.year, jDate.month, value);
|
567
|
+
clone.setDate(gDate.getDate());
|
568
|
+
break;
|
569
|
+
}
|
387
570
|
case 'week':
|
388
571
|
break;
|
389
|
-
case 'month':
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
break;
|
400
|
-
}
|
572
|
+
case 'month': {
|
573
|
+
const gDate2 = this.toGregorian(jDate.year, value, jDate.day);
|
574
|
+
clone.setMonth(gDate2.getMonth());
|
575
|
+
break;
|
576
|
+
}
|
577
|
+
case 'year': {
|
578
|
+
const gDate3 = this.toGregorian(value, jDate.month, jDate.day);
|
579
|
+
clone.setFullYear(gDate3.getFullYear());
|
580
|
+
break;
|
581
|
+
}
|
401
582
|
}
|
402
583
|
return new AXDateTime(clone, this);
|
403
584
|
}
|
@@ -458,12 +639,11 @@ class JalaliCalendar extends AXCalendar {
|
|
458
639
|
const gDate = this.toGregorian(jy, jm, jd);
|
459
640
|
return new AXDateTime(gDate, this).endOf('day');
|
460
641
|
}
|
461
|
-
case 'year':
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
}
|
642
|
+
case 'year': {
|
643
|
+
const jy = this.year(date);
|
644
|
+
const gDate = this.toGregorian(jy, 12, this.jalaaliMonthLength(jy, 12));
|
645
|
+
return new AXDateTime(gDate, this).endOf('day');
|
646
|
+
}
|
467
647
|
}
|
468
648
|
}
|
469
649
|
parse(value) {
|
@@ -676,207 +856,23 @@ class JalaliCalendar extends AXCalendar {
|
|
676
856
|
}
|
677
857
|
}
|
678
858
|
|
679
|
-
class GeorgianCalendar extends AXCalendar {
|
680
|
-
/**
|
681
|
-
* @ignore
|
682
|
-
*/
|
683
|
-
constructor(config) {
|
684
|
-
super(config);
|
685
|
-
}
|
686
|
-
create(value) {
|
687
|
-
return new AXDateTime(new Date(value.year, value.month - 1, value.date, value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this);
|
688
|
-
}
|
689
|
-
name() {
|
690
|
-
return 'georgian';
|
691
|
-
}
|
692
|
-
dayOfMonth(date) {
|
693
|
-
return date.getDate();
|
694
|
-
}
|
695
|
-
dayOfYear(date) {
|
696
|
-
let result = 0;
|
697
|
-
let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
698
|
-
if (this.isLeap(date)) {
|
699
|
-
m[1] = 29;
|
700
|
-
}
|
701
|
-
for (let i = 0; i < date.getMonth(); i++) {
|
702
|
-
result = result + m[i];
|
703
|
-
}
|
704
|
-
result += date.getDate();
|
705
|
-
return result;
|
706
|
-
}
|
707
|
-
dayOfWeek(date) {
|
708
|
-
return date.getDay() + 1;
|
709
|
-
}
|
710
|
-
weekOfYear(date) {
|
711
|
-
const firstDay = new AXDateTime(date, this).startOf('year');
|
712
|
-
return Math.ceil(((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7);
|
713
|
-
}
|
714
|
-
year(date) {
|
715
|
-
return date.getFullYear();
|
716
|
-
}
|
717
|
-
monthOfYear(date) {
|
718
|
-
return date.getMonth() + 1;
|
719
|
-
}
|
720
|
-
add(date, unit, amount) {
|
721
|
-
let value = date.valueOf();
|
722
|
-
switch (unit) {
|
723
|
-
case 'second':
|
724
|
-
value += 1000 * amount;
|
725
|
-
break;
|
726
|
-
case 'minute':
|
727
|
-
value += 60000 * amount;
|
728
|
-
break;
|
729
|
-
case 'hour':
|
730
|
-
value += 3600000 * amount;
|
731
|
-
break;
|
732
|
-
case 'month':
|
733
|
-
{
|
734
|
-
const v = new Date(value);
|
735
|
-
let mo = date.getMonth();
|
736
|
-
let yr = date.getFullYear();
|
737
|
-
mo = (mo + amount) % 12;
|
738
|
-
if (0 > mo) {
|
739
|
-
yr += (date.getMonth() + amount - mo - 12) / 12;
|
740
|
-
mo += 12;
|
741
|
-
}
|
742
|
-
else
|
743
|
-
yr += (date.getMonth() + amount - mo) / 12;
|
744
|
-
v.setMonth(mo);
|
745
|
-
v.setFullYear(yr);
|
746
|
-
value = v.valueOf();
|
747
|
-
break;
|
748
|
-
}
|
749
|
-
case 'week':
|
750
|
-
value += 7 * 86400000 * amount;
|
751
|
-
break;
|
752
|
-
case 'year':
|
753
|
-
{
|
754
|
-
const yv = new Date(value);
|
755
|
-
yv.setFullYear(yv.getFullYear() + amount);
|
756
|
-
value = yv.valueOf();
|
757
|
-
break;
|
758
|
-
}
|
759
|
-
case 'day':
|
760
|
-
default:
|
761
|
-
value += 86400000 * amount;
|
762
|
-
}
|
763
|
-
return new AXDateTime(new Date(value), this);
|
764
|
-
}
|
765
|
-
set(date, unit, value) {
|
766
|
-
const clone = new Date(date.valueOf());
|
767
|
-
switch (unit) {
|
768
|
-
case 'second':
|
769
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());
|
770
|
-
break;
|
771
|
-
case 'minute':
|
772
|
-
clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());
|
773
|
-
break;
|
774
|
-
case 'hour':
|
775
|
-
clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());
|
776
|
-
break;
|
777
|
-
default:
|
778
|
-
case 'day':
|
779
|
-
clone.setDate(value);
|
780
|
-
break;
|
781
|
-
case 'week':
|
782
|
-
break;
|
783
|
-
case 'month':
|
784
|
-
clone.setMonth(Math.max(0, value - 1));
|
785
|
-
break;
|
786
|
-
case 'year':
|
787
|
-
clone.setFullYear(value);
|
788
|
-
break;
|
789
|
-
}
|
790
|
-
return new AXDateTime(clone, this);
|
791
|
-
}
|
792
|
-
startOf(date, unit) {
|
793
|
-
const clone = new Date(date.valueOf());
|
794
|
-
switch (unit) {
|
795
|
-
case 'second':
|
796
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);
|
797
|
-
return new AXDateTime(clone, this);
|
798
|
-
case 'minute':
|
799
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);
|
800
|
-
return new AXDateTime(clone, this);
|
801
|
-
case 'hour':
|
802
|
-
clone.setHours(clone.getHours(), 0, 0, 0);
|
803
|
-
return new AXDateTime(clone, this);
|
804
|
-
default:
|
805
|
-
case 'day':
|
806
|
-
clone.setHours(0, 0, 0, 0);
|
807
|
-
return new AXDateTime(clone, this);
|
808
|
-
case 'week':
|
809
|
-
{
|
810
|
-
const index = 0;
|
811
|
-
const start = index >= 0 ? index : 0;
|
812
|
-
const day = clone.getDay();
|
813
|
-
const diff = clone.getDate() - day + (start > day ? start - 7 : start);
|
814
|
-
clone.setDate(diff);
|
815
|
-
return new AXDateTime(clone, this).startOf('day');
|
816
|
-
}
|
817
|
-
case 'month':
|
818
|
-
clone.setDate(1);
|
819
|
-
return new AXDateTime(clone, this).startOf('day');
|
820
|
-
case 'year':
|
821
|
-
clone.setMonth(0);
|
822
|
-
clone.setDate(1);
|
823
|
-
return new AXDateTime(clone, this).startOf('day');
|
824
|
-
}
|
825
|
-
}
|
826
|
-
endOf(date, unit) {
|
827
|
-
const clone = new Date(date.valueOf());
|
828
|
-
switch (unit) {
|
829
|
-
case 'second':
|
830
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);
|
831
|
-
return new AXDateTime(clone, this);
|
832
|
-
case 'minute':
|
833
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);
|
834
|
-
return new AXDateTime(clone, this);
|
835
|
-
case 'hour':
|
836
|
-
clone.setHours(clone.getHours(), 59, 59, 999);
|
837
|
-
return new AXDateTime(clone, this);
|
838
|
-
default:
|
839
|
-
case 'day':
|
840
|
-
clone.setHours(23, 59, 59, 999);
|
841
|
-
return new AXDateTime(clone, this);
|
842
|
-
case 'week':
|
843
|
-
return this.startOf(date, 'week').add('day', 6).endOf('day');
|
844
|
-
case 'month':
|
845
|
-
{
|
846
|
-
const dateObj = new Date();
|
847
|
-
dateObj.setFullYear(date.getFullYear());
|
848
|
-
dateObj.setMonth(date.getMonth() + 1);
|
849
|
-
dateObj.setDate(0);
|
850
|
-
return new AXDateTime(dateObj, this).endOf('day');
|
851
|
-
//return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this).endOf('day');
|
852
|
-
}
|
853
|
-
case 'year':
|
854
|
-
clone.setMonth(11);
|
855
|
-
return new AXDateTime(clone, this).endOf('month');
|
856
|
-
}
|
857
|
-
}
|
858
|
-
isLeap(date) {
|
859
|
-
let leapYear = new Date(date.getFullYear(), 1, 29);
|
860
|
-
return leapYear.getDate() == 29;
|
861
|
-
}
|
862
|
-
parse(value) {
|
863
|
-
return new AXDateTime(new Date(value), this);
|
864
|
-
}
|
865
|
-
}
|
866
|
-
|
867
859
|
const AX_DATETIME_CONFIG = new InjectionToken('AX_DATETIME_CONFIG', {
|
868
860
|
providedIn: 'root',
|
869
861
|
factory: () => {
|
870
862
|
const global = inject(AX_GLOBAL_CONFIG);
|
871
|
-
set(global,
|
863
|
+
set(global, 'dateTime', AX_DATETIME_CONFIG);
|
872
864
|
return AXDateTimeDefaultConfig;
|
873
865
|
},
|
874
866
|
});
|
875
867
|
const AXDateTimeDefaultConfig = {
|
876
868
|
calendar: 'georgian',
|
877
869
|
calendars: {
|
878
|
-
|
879
|
-
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'].map(d => ({
|
870
|
+
georgian: new GeorgianCalendar({
|
871
|
+
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'].map((d) => ({
|
872
|
+
long: d,
|
873
|
+
short: d.substring(0, 3),
|
874
|
+
letter: d[0],
|
875
|
+
})),
|
880
876
|
monthNames: [
|
881
877
|
'January',
|
882
878
|
'February',
|
@@ -890,31 +886,35 @@ const AXDateTimeDefaultConfig = {
|
|
890
886
|
'October',
|
891
887
|
'November',
|
892
888
|
'December',
|
893
|
-
].map(d => ({ long: d, short: d.substring(0, 3), letter: d[0] })),
|
889
|
+
].map((d) => ({ long: d, short: d.substring(0, 3), letter: d[0] })),
|
894
890
|
weekend: [6, 7],
|
895
891
|
formats: {
|
896
|
-
dateInput:
|
897
|
-
timeInput:
|
898
|
-
dateTimeInput:
|
899
|
-
dateDisplay:
|
900
|
-
timeDisplay:
|
901
|
-
dateTimeDisplay:
|
902
|
-
}
|
892
|
+
dateInput: 'yyyy/MM/dd',
|
893
|
+
timeInput: 'HH:mm',
|
894
|
+
dateTimeInput: 'yyyy/MM/dd HH:mm',
|
895
|
+
dateDisplay: 'DDDD, d MMM yyyy',
|
896
|
+
timeDisplay: 'HH:mm',
|
897
|
+
dateTimeDisplay: 'DDDD, d MMM yyyy HH:mm',
|
898
|
+
},
|
903
899
|
}),
|
904
|
-
|
905
|
-
monthNames: 'فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند'
|
906
|
-
|
900
|
+
jalali: new JalaliCalendar({
|
901
|
+
monthNames: 'فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند'
|
902
|
+
.split('_')
|
903
|
+
.map((d) => ({ long: d, short: d, letter: d[0] })),
|
904
|
+
dayNames: 'شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه'
|
905
|
+
.split('_')
|
906
|
+
.map((d) => ({ long: d, short: d[0], letter: d[0] })),
|
907
907
|
weekend: [7, 1],
|
908
908
|
formats: {
|
909
|
-
dateInput:
|
910
|
-
timeInput:
|
911
|
-
dateTimeInput:
|
912
|
-
dateDisplay:
|
913
|
-
timeDisplay:
|
914
|
-
dateTimeDisplay:
|
915
|
-
}
|
916
|
-
})
|
917
|
-
}
|
909
|
+
dateInput: 'yyyy/MM/dd',
|
910
|
+
timeInput: 'HH:mm',
|
911
|
+
dateTimeInput: 'yyyy/MM/dd HH:mm',
|
912
|
+
dateDisplay: 'DDDD, d MMM yyyy',
|
913
|
+
timeDisplay: 'HH:mm',
|
914
|
+
dateTimeDisplay: 'DDDD, d MMM yyyy HH:mm',
|
915
|
+
},
|
916
|
+
}),
|
917
|
+
},
|
918
918
|
};
|
919
919
|
function dateTimeConfig(config = {}) {
|
920
920
|
const result = {
|
@@ -958,11 +958,11 @@ class AXCalendarService {
|
|
958
958
|
// const d = new Date(val);
|
959
959
|
// return !Number.isNaN(d.valueOf()) && d.toISOString() === val;
|
960
960
|
// };
|
961
|
-
const isISOString = str => {
|
961
|
+
const isISOString = (str) => {
|
962
962
|
if (!/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d{3}Z)?/.test(str))
|
963
963
|
return false;
|
964
964
|
const d = new Date(str);
|
965
|
-
return d instanceof Date && !isNaN(d.getTime()); // valid date
|
965
|
+
return d instanceof Date && !isNaN(d.getTime()); // valid date
|
966
966
|
};
|
967
967
|
//
|
968
968
|
const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;
|
@@ -976,11 +976,10 @@ class AXCalendarService {
|
|
976
976
|
return new AXDateTime(date, calendar);
|
977
977
|
}
|
978
978
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXCalendarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
979
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXCalendarService
|
979
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXCalendarService }); }
|
980
980
|
}
|
981
981
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXCalendarService, decorators: [{
|
982
|
-
type: Injectable
|
983
|
-
args: [{ providedIn: 'root' }]
|
982
|
+
type: Injectable
|
984
983
|
}] });
|
985
984
|
|
986
985
|
class AXDateTimePipe {
|