@dereekb/date 10.0.5 → 10.0.7

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 (134) hide show
  1. package/index.cjs.d.ts +1 -0
  2. package/index.cjs.js +9264 -0
  3. package/index.esm.js +9957 -0
  4. package/package.json +17 -3
  5. package/src/lib/date/date.calendar.d.ts +1 -1
  6. package/src/lib/date/date.cell.d.ts +3 -3
  7. package/src/lib/date/date.cell.factory.d.ts +5 -5
  8. package/src/lib/date/date.cell.filter.d.ts +3 -3
  9. package/src/lib/date/date.cell.index.d.ts +4 -3
  10. package/src/lib/date/date.cell.schedule.d.ts +7 -7
  11. package/src/lib/date/date.cell.schedule.day.d.ts +2 -2
  12. package/src/lib/date/date.cell.validator.d.ts +2 -2
  13. package/src/lib/date/date.cell.week.d.ts +3 -3
  14. package/src/lib/date/date.d.ts +1 -1
  15. package/src/lib/date/date.day.d.ts +3 -3
  16. package/src/lib/date/date.duration.d.ts +2 -2
  17. package/src/lib/date/date.format.d.ts +3 -4
  18. package/src/lib/date/date.logical.d.ts +1 -1
  19. package/src/lib/date/date.range.d.ts +1 -1
  20. package/src/lib/date/date.range.string.d.ts +2 -2
  21. package/src/lib/date/date.range.timezone.d.ts +2 -2
  22. package/src/lib/date/date.rxjs.d.ts +3 -3
  23. package/src/lib/date/date.sort.d.ts +2 -2
  24. package/src/lib/date/date.time.d.ts +3 -3
  25. package/src/lib/date/date.time.limit.d.ts +3 -3
  26. package/src/lib/date/date.time.minute.d.ts +4 -4
  27. package/src/lib/date/date.timezone.d.ts +2 -2
  28. package/src/lib/date/date.unix.d.ts +1 -1
  29. package/src/lib/date/date.week.d.ts +3 -3
  30. package/src/lib/expires/expires.d.ts +1 -1
  31. package/src/lib/expires/expires.rxjs.d.ts +3 -3
  32. package/src/lib/query/query.builder.d.ts +2 -2
  33. package/src/lib/query/query.builder.mongo.d.ts +2 -2
  34. package/src/lib/query/query.filter.d.ts +2 -2
  35. package/src/lib/query/query.request.d.ts +2 -2
  36. package/src/lib/rrule/date.recurrence.d.ts +4 -4
  37. package/src/lib/rrule/date.rrule.d.ts +5 -5
  38. package/src/lib/rrule/date.rrule.extension.d.ts +1 -1
  39. package/src/lib/rrule/date.rrule.parse.d.ts +2 -2
  40. package/src/lib/timezone/timezone.d.ts +1 -1
  41. package/src/lib/timezone/timezone.validator.d.ts +2 -2
  42. package/CHANGELOG.md +0 -1488
  43. package/src/index.js +0 -5
  44. package/src/index.js.map +0 -1
  45. package/src/lib/date/date.calendar.js +0 -65
  46. package/src/lib/date/date.calendar.js.map +0 -1
  47. package/src/lib/date/date.cell.factory.js +0 -493
  48. package/src/lib/date/date.cell.factory.js.map +0 -1
  49. package/src/lib/date/date.cell.filter.js +0 -65
  50. package/src/lib/date/date.cell.filter.js.map +0 -1
  51. package/src/lib/date/date.cell.index.js +0 -731
  52. package/src/lib/date/date.cell.index.js.map +0 -1
  53. package/src/lib/date/date.cell.js +0 -574
  54. package/src/lib/date/date.cell.js.map +0 -1
  55. package/src/lib/date/date.cell.schedule.day.js +0 -15
  56. package/src/lib/date/date.cell.schedule.day.js.map +0 -1
  57. package/src/lib/date/date.cell.schedule.js +0 -711
  58. package/src/lib/date/date.cell.schedule.js.map +0 -1
  59. package/src/lib/date/date.cell.validator.js +0 -67
  60. package/src/lib/date/date.cell.validator.js.map +0 -1
  61. package/src/lib/date/date.cell.week.js +0 -40
  62. package/src/lib/date/date.cell.week.js.map +0 -1
  63. package/src/lib/date/date.day.js +0 -207
  64. package/src/lib/date/date.day.js.map +0 -1
  65. package/src/lib/date/date.duration.js +0 -56
  66. package/src/lib/date/date.duration.js.map +0 -1
  67. package/src/lib/date/date.format.js +0 -231
  68. package/src/lib/date/date.format.js.map +0 -1
  69. package/src/lib/date/date.hashset.js +0 -11
  70. package/src/lib/date/date.hashset.js.map +0 -1
  71. package/src/lib/date/date.js +0 -267
  72. package/src/lib/date/date.js.map +0 -1
  73. package/src/lib/date/date.logical.js +0 -61
  74. package/src/lib/date/date.logical.js.map +0 -1
  75. package/src/lib/date/date.range.js +0 -643
  76. package/src/lib/date/date.range.js.map +0 -1
  77. package/src/lib/date/date.range.string.js +0 -19
  78. package/src/lib/date/date.range.string.js.map +0 -1
  79. package/src/lib/date/date.range.timezone.js +0 -29
  80. package/src/lib/date/date.range.timezone.js.map +0 -1
  81. package/src/lib/date/date.round.js +0 -49
  82. package/src/lib/date/date.round.js.map +0 -1
  83. package/src/lib/date/date.rxjs.js +0 -40
  84. package/src/lib/date/date.rxjs.js.map +0 -1
  85. package/src/lib/date/date.sort.js +0 -43
  86. package/src/lib/date/date.sort.js.map +0 -1
  87. package/src/lib/date/date.time.js +0 -240
  88. package/src/lib/date/date.time.js.map +0 -1
  89. package/src/lib/date/date.time.limit.js +0 -99
  90. package/src/lib/date/date.time.limit.js.map +0 -1
  91. package/src/lib/date/date.time.minute.js +0 -144
  92. package/src/lib/date/date.time.minute.js.map +0 -1
  93. package/src/lib/date/date.timezone.js +0 -494
  94. package/src/lib/date/date.timezone.js.map +0 -1
  95. package/src/lib/date/date.unix.js +0 -41
  96. package/src/lib/date/date.unix.js.map +0 -1
  97. package/src/lib/date/date.week.js +0 -263
  98. package/src/lib/date/date.week.js.map +0 -1
  99. package/src/lib/date/index.js +0 -30
  100. package/src/lib/date/index.js.map +0 -1
  101. package/src/lib/expires/expires.js +0 -81
  102. package/src/lib/expires/expires.js.map +0 -1
  103. package/src/lib/expires/expires.rxjs.js +0 -61
  104. package/src/lib/expires/expires.rxjs.js.map +0 -1
  105. package/src/lib/expires/index.js +0 -6
  106. package/src/lib/expires/index.js.map +0 -1
  107. package/src/lib/index.js +0 -9
  108. package/src/lib/index.js.map +0 -1
  109. package/src/lib/query/index.js +0 -8
  110. package/src/lib/query/index.js.map +0 -1
  111. package/src/lib/query/query.builder.js +0 -85
  112. package/src/lib/query/query.builder.js.map +0 -1
  113. package/src/lib/query/query.builder.mongo.js +0 -41
  114. package/src/lib/query/query.builder.mongo.js.map +0 -1
  115. package/src/lib/query/query.filter.js +0 -3
  116. package/src/lib/query/query.filter.js.map +0 -1
  117. package/src/lib/query/query.request.js +0 -3
  118. package/src/lib/query/query.request.js.map +0 -1
  119. package/src/lib/rrule/date.recurrence.js +0 -93
  120. package/src/lib/rrule/date.recurrence.js.map +0 -1
  121. package/src/lib/rrule/date.rrule.extension.js +0 -151
  122. package/src/lib/rrule/date.rrule.extension.js.map +0 -1
  123. package/src/lib/rrule/date.rrule.js +0 -187
  124. package/src/lib/rrule/date.rrule.js.map +0 -1
  125. package/src/lib/rrule/date.rrule.parse.js +0 -135
  126. package/src/lib/rrule/date.rrule.parse.js.map +0 -1
  127. package/src/lib/rrule/index.js +0 -8
  128. package/src/lib/rrule/index.js.map +0 -1
  129. package/src/lib/timezone/index.js +0 -6
  130. package/src/lib/timezone/index.js.map +0 -1
  131. package/src/lib/timezone/timezone.js +0 -66
  132. package/src/lib/timezone/timezone.js.map +0 -1
  133. package/src/lib/timezone/timezone.validator.js +0 -26
  134. package/src/lib/timezone/timezone.validator.js.map +0 -1
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dateOrDayStringRangeToISO8601DayStringRange = exports.dateOrDayStringRangeToDateRange = void 0;
4
- const date_format_1 = require("./date.format");
5
- function dateOrDayStringRangeToDateRange(range) {
6
- return {
7
- start: (0, date_format_1.toJsDayDate)(range.start),
8
- end: (0, date_format_1.toJsDayDate)(range.end)
9
- };
10
- }
11
- exports.dateOrDayStringRangeToDateRange = dateOrDayStringRangeToDateRange;
12
- function dateOrDayStringRangeToISO8601DayStringRange(range) {
13
- return {
14
- start: (0, date_format_1.toISO8601DayString)(range.start),
15
- end: (0, date_format_1.toISO8601DayString)(range.end)
16
- };
17
- }
18
- exports.dateOrDayStringRangeToISO8601DayStringRange = dateOrDayStringRangeToISO8601DayStringRange;
19
- //# sourceMappingURL=date.range.string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.range.string.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.range.string.ts"],"names":[],"mappings":";;;AACA,+CAAgE;AAqBhE,SAAgB,+BAA+B,CAAC,KAA2B;IACzE,OAAO;QACL,KAAK,EAAE,IAAA,yBAAW,EAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,GAAG,EAAE,IAAA,yBAAW,EAAC,KAAK,CAAC,GAAG,CAAC;KAC5B,CAAC;AACJ,CAAC;AALD,0EAKC;AAED,SAAgB,2CAA2C,CAAC,KAA2B;IACrF,OAAO;QACL,KAAK,EAAE,IAAA,gCAAkB,EAAC,KAAK,CAAC,KAAK,CAAC;QACtC,GAAG,EAAE,IAAA,gCAAkB,EAAC,KAAK,CAAC,GAAG,CAAC;KACnC,CAAC;AACJ,CAAC;AALD,kGAKC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fitDateRangeToDayPeriod = exports.fitDateRangeToDayPeriodFunction = void 0;
4
- const date_timezone_1 = require("./date.timezone");
5
- const date_range_1 = require("./date.range");
6
- /**
7
- * Creates a FitDateRangeToDayPeriodFunction
8
- *
9
- * @param timezone
10
- * @returns
11
- */
12
- function fitDateRangeToDayPeriodFunction(timezone) {
13
- const transformFn = (0, date_timezone_1.transformDateRangeInTimezoneNormalFunction)(timezone, 'baseDateToTargetDate');
14
- const fn = ((input) => (Object.assign(Object.assign({}, input), transformFn(input, date_range_1.fitUTCDateRangeToDayPeriod))));
15
- fn._timezoneInstance = transformFn._timezoneInstance;
16
- return fn;
17
- }
18
- exports.fitDateRangeToDayPeriodFunction = fitDateRangeToDayPeriodFunction;
19
- /**
20
- * Fits the DateRange to a single "day" period from the start time.
21
- *
22
- * @param dateRange
23
- * @param timezone
24
- */
25
- function fitDateRangeToDayPeriod(dateRange, timezone) {
26
- return fitDateRangeToDayPeriodFunction(timezone)(dateRange);
27
- }
28
- exports.fitDateRangeToDayPeriod = fitDateRangeToDayPeriod;
29
- //# sourceMappingURL=date.range.timezone.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.range.timezone.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.range.timezone.ts"],"names":[],"mappings":";;;AACA,mDAAgJ;AAChJ,6CAAqE;AAWrE;;;;;GAKG;AACH,SAAgB,+BAA+B,CAAC,QAA4C;IAC1F,MAAM,WAAW,GAAG,IAAA,0DAA0C,EAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IACjG,MAAM,EAAE,GAAG,CAAC,CAAsB,KAAQ,EAAE,EAAE,CAAC,iCAAM,KAAK,GAAK,WAAW,CAAC,KAAK,EAAE,uCAA0B,CAAC,EAAG,CAA8C,CAAC;IAC/J,EAAE,CAAC,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;IACrD,OAAO,EAAqC,CAAC;AAC/C,CAAC;AALD,0EAKC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAkC,SAAY,EAAE,QAA4C;IACjI,OAAO,+BAA+B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC;AAFD,0DAEC"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.roundToMinuteSteps = exports.roundDateTimeDown = exports.roundDateTimeDownToSteps = void 0;
4
- const util_1 = require("@dereekb/util");
5
- const date_fns_1 = require("date-fns");
6
- // MARK: Rounding
7
- function roundDateTimeDownToSteps(date, round) {
8
- const { step, roundToSteps = true } = round;
9
- if (roundToSteps) {
10
- date = roundToMinuteSteps(date, step !== null && step !== void 0 ? step : 1);
11
- }
12
- return roundDateTimeDown(date, round);
13
- }
14
- exports.roundDateTimeDownToSteps = roundDateTimeDownToSteps;
15
- function roundDateTimeDown(date, round) {
16
- const { roundDownToDay = false, roundDownToMinute = true } = round;
17
- let rounding = {};
18
- if (roundDownToMinute) {
19
- rounding = Object.assign(Object.assign({}, rounding), { seconds: 0, milliseconds: 0 });
20
- }
21
- if (roundDownToDay) {
22
- rounding = Object.assign(Object.assign({}, rounding), { hours: 0, minutes: 0 });
23
- }
24
- return (0, date_fns_1.set)(date, rounding);
25
- }
26
- exports.roundDateTimeDown = roundDateTimeDown;
27
- /**
28
- * Rounds the current number of minutes on the date to the nearest step.
29
- */
30
- function roundToMinuteSteps(date, step) {
31
- // Only steps of 1 or more are allowed.
32
- if (step <= 1) {
33
- return date;
34
- }
35
- const minute = (0, date_fns_1.getMinutes)(date);
36
- const roundedValue = (0, util_1.roundNumberUpToStep)(minute, step);
37
- if (roundedValue !== minute) {
38
- if (roundedValue === 60) {
39
- // Round the hour up.
40
- date = (0, date_fns_1.addHours)((0, date_fns_1.set)(date, { minutes: 0 }), 1);
41
- }
42
- else {
43
- date = (0, date_fns_1.set)(date, { minutes: roundedValue });
44
- }
45
- }
46
- return date;
47
- }
48
- exports.roundToMinuteSteps = roundToMinuteSteps;
49
- //# sourceMappingURL=date.round.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.round.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.round.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AACpD,uCAAqD;AAYrD,iBAAiB;AACjB,SAAgB,wBAAwB,CAAC,IAAU,EAAE,KAA4B;IAC/E,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAE5C,IAAI,YAAY,EAAE;QAChB,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC,CAAC,CAAC;KAC5C;IAED,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AARD,4DAQC;AAED,SAAgB,iBAAiB,CAAC,IAAU,EAAE,KAAoB;IAChE,MAAM,EAAE,cAAc,GAAG,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAEnE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,IAAI,iBAAiB,EAAE;QACrB,QAAQ,mCACH,QAAQ,KACX,OAAO,EAAE,CAAC,EACV,YAAY,EAAE,CAAC,GAChB,CAAC;KACH;IAED,IAAI,cAAc,EAAE;QAClB,QAAQ,mCACH,QAAQ,KACX,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,GACX,CAAC;KACH;IAED,OAAO,IAAA,cAAG,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAtBD,8CAsBC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,IAAU,EAAE,IAAY;IACzD,uCAAuC;IACvC,IAAI,IAAI,IAAI,CAAC,EAAE;QACb,OAAO,IAAI,CAAC;KACb;IAED,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,IAAA,0BAAmB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEvD,IAAI,YAAY,KAAK,MAAM,EAAE;QAC3B,IAAI,YAAY,KAAK,EAAE,EAAE;YACvB,qBAAqB;YACrB,IAAI,GAAG,IAAA,mBAAQ,EAAC,IAAA,cAAG,EAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/C;aAAM;YACL,IAAI,GAAG,IAAA,cAAG,EAAC,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;SAC7C;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAnBD,gDAmBC"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nowInterval = exports.dateInterval = void 0;
4
- const util_1 = require("@dereekb/util");
5
- const rxjs_1 = require("rxjs");
6
- const date_1 = require("./date");
7
- const date_logical_1 = require("./date.logical");
8
- /**
9
- * Creates an Observable that emits a date given the configuration.
10
- */
11
- function dateInterval(config) {
12
- const { period, logicalDate: inputLogicalDate, factory: inputFactory, emitAll, scheduler } = config;
13
- let logicalDate = inputLogicalDate;
14
- if (!logicalDate && !inputFactory) {
15
- logicalDate = 'now';
16
- }
17
- const intervalPeriod = period !== null && period !== void 0 ? period : util_1.MS_IN_SECOND;
18
- const factory = inputFactory ? inputFactory : (0, util_1.protectedFactory)((0, date_logical_1.logicalDateStringCodeDateFactory)(logicalDate));
19
- let obs = (0, rxjs_1.interval)(intervalPeriod, scheduler).pipe((0, rxjs_1.startWith)(-1), (0, rxjs_1.map)(factory));
20
- if (emitAll !== true) {
21
- obs = obs.pipe((0, rxjs_1.distinctUntilChanged)(date_1.isSameDate));
22
- }
23
- return obs;
24
- }
25
- exports.dateInterval = dateInterval;
26
- /**
27
- * Convenience function for dateInterval that returns the "now" logicalDate with an optional custom period.
28
- *
29
- * @param period
30
- * @returns
31
- */
32
- function nowInterval(period) {
33
- return dateInterval({
34
- period,
35
- logicalDate: 'now',
36
- emitAll: true // no need to filter on emitting since now will be different each time
37
- });
38
- }
39
- exports.nowInterval = nowInterval;
40
- //# sourceMappingURL=date.rxjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.rxjs.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.rxjs.ts"],"names":[],"mappings":";;;AAAA,wCAA2H;AAC3H,+BAAiG;AACjG,iCAAoC;AACpC,iDAAyF;AA2BzF;;GAEG;AACH,SAAgB,YAAY,CAAC,MAA0B;IACrD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACpG,IAAI,WAAW,GAAiC,gBAAgB,CAAC;IAEjE,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE;QACjC,WAAW,GAAG,KAAK,CAAC;KACrB;IAED,MAAM,cAAc,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,mBAAY,CAAC;IAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,uBAAgB,EAAC,IAAA,+CAAgC,EAAC,WAAoC,CAAC,CAAC,CAAC;IACvI,IAAI,GAAG,GAAG,IAAA,eAAQ,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,CAAC,CAAC,CAAC,EAAE,IAAA,UAAG,EAAC,OAAO,CAAC,CAAC,CAAC;IAEhF,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAA,2BAAoB,EAAO,iBAAU,CAAC,CAAC,CAAC;KACxD;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAjBD,oCAiBC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,MAA4B;IACtD,OAAO,YAAY,CAAC;QAClB,MAAM;QACN,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,IAAI,CAAC,sEAAsE;KACrF,CAAC,CAAC;AACL,CAAC;AAND,kCAMC"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sortByISO8601DateStrings = exports.sortByISO8601DateStringFunction = exports.sortByDateFunction = void 0;
4
- const util_1 = require("@dereekb/util");
5
- /**
6
- * Creates a SortByNumberFunction that sorts values in ascending order.
7
- */
8
- function sortByDateFunction(readDateFn) {
9
- return (a, b) => {
10
- const ad = readDateFn(a);
11
- const bd = readDateFn(b);
12
- return ad.getTime() - bd.getTime();
13
- };
14
- }
15
- exports.sortByDateFunction = sortByDateFunction;
16
- /**
17
- * Creates a SortByNumberFunction that sorts values in ascending order.
18
- */
19
- function sortByISO8601DateStringFunction(readDateFn) {
20
- return (a, b) => {
21
- const aDate = readDateFn(a);
22
- const bDate = readDateFn(b);
23
- // Lexiographical comparison of the ISO8601 Date strings.
24
- return aDate < bDate ? util_1.SORT_VALUE_LESS_THAN : aDate > bDate ? util_1.SORT_VALUE_GREATER_THAN : util_1.SORT_VALUE_EQUAL;
25
- };
26
- }
27
- exports.sortByISO8601DateStringFunction = sortByISO8601DateStringFunction;
28
- /**
29
- * Sorts the input values by ISO8601DateStringUTCFull values from the input models.
30
- *
31
- * @param values
32
- * @param readDate
33
- * @param order
34
- * @returns
35
- */
36
- function sortByISO8601DateStrings(values, readDate, order) {
37
- const valuesToSort = (0, util_1.copyArray)(values);
38
- const sortAscendingFn = sortByISO8601DateStringFunction(readDate);
39
- valuesToSort.sort((0, util_1.compareFnOrder)(sortAscendingFn, order));
40
- return valuesToSort;
41
- }
42
- exports.sortByISO8601DateStrings = sortByISO8601DateStrings;
43
- //# sourceMappingURL=date.sort.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.sort.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.sort.ts"],"names":[],"mappings":";;;AAAA,wCAA8J;AAQ9J;;GAEG;AACH,SAAgB,kBAAkB,CAAI,UAA+B;IACnE,OAAO,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;QACpB,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC,CAAC;AACJ,CAAC;AAND,gDAMC;AAOD;;GAEG;AACH,SAAgB,+BAA+B,CAAI,UAAmD;IACpG,OAAO,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;QACpB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAE5B,yDAAyD;QACzD,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,2BAAoB,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,8BAAuB,CAAC,CAAC,CAAC,uBAAgB,CAAC;IAC3G,CAAC,CAAC;AACJ,CAAC;AARD,0EAQC;AAED;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CAAI,MAAW,EAAE,QAAiD,EAAE,KAAoB;IAC9H,MAAM,YAAY,GAAG,IAAA,gBAAS,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,+BAA+B,CAAI,QAAQ,CAAC,CAAC;IACrE,YAAY,CAAC,IAAI,CAAC,IAAA,qBAAc,EAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,OAAO,YAAY,CAAC;AACtB,CAAC;AALD,4DAKC"}
@@ -1,240 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.limitDateTime = exports.readableTimeStringToDate = exports.parseReadableTimeString = exports.toReadableTimeString = exports.toLocalReadableTimeString = exports.getTimeAM = exports.dateTimeInstance = exports.dateTimeInstanceUtc = exports.DateTimeUtilityInstance = exports.isValidDateFromTimestringResult = void 0;
4
- const date_fns_1 = require("date-fns");
5
- const date_fns_tz_1 = require("date-fns-tz");
6
- const util_1 = require("@dereekb/util");
7
- const date_time_limit_1 = require("./date.time.limit");
8
- const date_timezone_1 = require("./date.timezone");
9
- const date_1 = require("./date");
10
- function isValidDateFromTimestringResult(result) {
11
- return result.valid;
12
- }
13
- exports.isValidDateFromTimestringResult = isValidDateFromTimestringResult;
14
- /**
15
- * A utility instance.
16
- */
17
- class DateTimeUtilityInstance {
18
- /**
19
- * The default timezone all inputs should be handled with.
20
- *
21
- * If the timezone is not defined, it defaults to UTC.
22
- */
23
- constructor(timezone) {
24
- this.normalInstance = new date_timezone_1.DateTimezoneUtcNormalInstance(timezone);
25
- }
26
- get timezone() {
27
- return this.normalInstance.configuredTimezoneString;
28
- }
29
- getTimeAM(date = new Date(), timezone) {
30
- const am = (0, date_fns_tz_1.formatInTimeZone)(date, timezone !== null && timezone !== void 0 ? timezone : this.timezone, 'a');
31
- return am;
32
- }
33
- toTimeString(date, timezone) {
34
- return (0, date_fns_tz_1.formatInTimeZone)(date, timezone !== null && timezone !== void 0 ? timezone : this.timezone, `h:mma`);
35
- }
36
- parseTimeString(input, config) {
37
- const timestringResult = this._timeStringToDate(input, config);
38
- if (isValidDateFromTimestringResult(timestringResult)) {
39
- const { result, raw } = timestringResult;
40
- // Use minutes since start of day. Since differenceInMinutes uses system time, we convert the raw to system time first.
41
- const inSystemTime = (0, date_timezone_1.systemNormalDateToBaseDate)(raw);
42
- const minutesSinceStartOfDay = (0, date_fns_1.differenceInMinutes)(inSystemTime, (0, date_fns_1.startOfDay)(inSystemTime));
43
- return {
44
- utc: raw,
45
- date: result,
46
- minutesSinceStartOfDay,
47
- am: minutesSinceStartOfDay < 720 ? util_1.TimeAM.AM : util_1.TimeAM.PM
48
- };
49
- }
50
- else {
51
- return undefined;
52
- }
53
- }
54
- /**
55
- * Returns a timestring parsed relative to the input config.
56
- *
57
- * @param input
58
- * @param config
59
- * @returns
60
- */
61
- timeStringToDate(input, config) {
62
- const { result, valid } = this._timeStringToDate(input, config);
63
- if (valid) {
64
- return result;
65
- }
66
- else {
67
- return undefined;
68
- }
69
- }
70
- _timeStringToDate(input, config = {}) {
71
- const { date: inputDate = new Date() } = config;
72
- if (!input) {
73
- return { valid: false };
74
- }
75
- else {
76
- input = input.trim();
77
- }
78
- let systemParsedDateTime;
79
- let valid = false;
80
- function parseTimeString() {
81
- const formats = [
82
- 'h:mma',
83
- 'h:mm a',
84
- 'h a',
85
- 'ha',
86
- 'h:mm',
87
- 'HH:mm' // 01:20
88
- ];
89
- // tslint:disable-next-line: prefer-for-of
90
- for (let i = 0; i < formats.length; i += 1) {
91
- systemParsedDateTime = (0, date_fns_1.parse)(input, formats[i], relativeDate);
92
- if ((0, date_fns_1.isValid)(systemParsedDateTime)) {
93
- valid = true;
94
- break; // Use time.
95
- }
96
- }
97
- let removedPm = false;
98
- function removeAmPm(inputString) {
99
- inputString = inputString.toLowerCase();
100
- removedPm = inputString.indexOf('pm') !== -1;
101
- inputString = inputString.replace(/am|pm/g, '');
102
- return inputString;
103
- }
104
- function parseDateTimeFromNumber(inputString) {
105
- const hour = inputString[0];
106
- const minute = inputString[1] + inputString[2];
107
- return (0, date_fns_1.parse)(`${hour}:${minute}AM`, 'h:mma', relativeDate);
108
- }
109
- function parseDateTimeAsHmm(inputString) {
110
- return (0, date_fns_1.parse)(inputString, 'Hmm', relativeDate);
111
- }
112
- if (!valid) {
113
- input = input.trim().replace(/\s+/g, '');
114
- switch (input.length) {
115
- case 1:
116
- case 2:
117
- // 1
118
- systemParsedDateTime = (0, date_fns_1.parse)(input, 'H', relativeDate);
119
- break;
120
- case 5:
121
- // 120AM
122
- input = removeAmPm(input);
123
- systemParsedDateTime = parseDateTimeFromNumber(input);
124
- break;
125
- case 3:
126
- // 120
127
- systemParsedDateTime = parseDateTimeFromNumber(input);
128
- break;
129
- case 6:
130
- // 1212AM
131
- removeAmPm(input);
132
- if (removedPm) {
133
- removedPm = input[0] !== '2'; // If 2, ignore the PM part.
134
- }
135
- systemParsedDateTime = parseDateTimeAsHmm(input);
136
- break;
137
- default:
138
- // 2200
139
- systemParsedDateTime = parseDateTimeAsHmm(input);
140
- break;
141
- }
142
- if (removedPm) {
143
- systemParsedDateTime = (0, date_fns_1.addHours)(systemParsedDateTime, 12);
144
- }
145
- valid = (0, date_fns_1.isValid)(systemParsedDateTime);
146
- }
147
- }
148
- /*
149
- The input date needs to capture the right Day we want to parse on, since parse uses the system's information for hours/date information.
150
- We do this by adding the offset of the system with the offset of the target timezone.
151
- */
152
- const relativeDateNormal = (0, date_timezone_1.isValidDateTimezoneConversionConfig)(config) ? new date_timezone_1.DateTimezoneUtcNormalInstance(Object.assign({}, config)) : this.normalInstance;
153
- const relativeDate = relativeDateNormal.systemDateToTargetDate(inputDate);
154
- // console.log('Relative Date: ', relativeDate, calculateAllConversions(inputDate, relativeDateNormal, (x) => millisecondsToHours(x)));
155
- if ((0, util_1.isLogicalDateStringCode)(input)) {
156
- systemParsedDateTime = (0, util_1.dateFromLogicalDate)(input);
157
- valid = (0, date_fns_1.isValid)(systemParsedDateTime);
158
- }
159
- else {
160
- parseTimeString();
161
- }
162
- // console.log('Parsed: ', systemParsedDateTime, relativeDate, input, inputDate, relativeDateNormal, relativeDateNormal.configuredTimezoneString);
163
- // Raw parse result is always UTC for that date.
164
- // For example, 1AM will return 1AM UTC in a Date object.
165
- let raw;
166
- let result;
167
- if (valid) {
168
- // The parsed DateTime will be in the system settings for that date in as a UTC time.
169
- raw = relativeDateNormal.baseDateToSystemDate(systemParsedDateTime);
170
- result = relativeDateNormal.targetDateToSystemDate(systemParsedDateTime);
171
- // console.log('Raw: ', input, systemParsedDateTime, differenceInHours(raw, systemParsedDateTime!), raw, differenceInHours(raw, result), result, this.normalInstance.config);
172
- }
173
- return {
174
- raw,
175
- result,
176
- valid
177
- };
178
- }
179
- _normalizeInstanceForConfig(config) {
180
- var _a;
181
- let instance;
182
- if ((0, date_timezone_1.isSameDateTimezoneConversionConfig)(this.normalInstance.config, config)) {
183
- instance = this.normalInstance;
184
- }
185
- else {
186
- instance = new date_timezone_1.DateTimezoneUtcNormalInstance(Object.assign(Object.assign({}, config), { timezone: (_a = config.timezone) !== null && _a !== void 0 ? _a : this.normalInstance.config.timezone }));
187
- }
188
- return instance;
189
- }
190
- }
191
- exports.DateTimeUtilityInstance = DateTimeUtilityInstance;
192
- function dateTimeInstanceUtc() {
193
- return dateTimeInstance(util_1.UTC_TIMEZONE_STRING);
194
- }
195
- exports.dateTimeInstanceUtc = dateTimeInstanceUtc;
196
- function dateTimeInstance(timezone) {
197
- return new DateTimeUtilityInstance(timezone !== null && timezone !== void 0 ? timezone : util_1.UTC_TIMEZONE_STRING);
198
- }
199
- exports.dateTimeInstance = dateTimeInstance;
200
- function getTimeAM(date = new Date(), timezone) {
201
- return dateTimeInstance(timezone).getTimeAM(date);
202
- }
203
- exports.getTimeAM = getTimeAM;
204
- /**
205
- * Convenience function for toReadableTimeString that uses the current system timezone.
206
- *
207
- * @param date
208
- * @returns
209
- */
210
- function toLocalReadableTimeString(date) {
211
- return toReadableTimeString(date, (0, date_1.guessCurrentTimezone)());
212
- }
213
- exports.toLocalReadableTimeString = toLocalReadableTimeString;
214
- function toReadableTimeString(date, timezone) {
215
- return dateTimeInstance(timezone).toTimeString(date);
216
- }
217
- exports.toReadableTimeString = toReadableTimeString;
218
- /**
219
- * Parses the input string relative to the timezone in the configuration.
220
- *
221
- * If no conversion timezone is provided, then it is parsed relative to UTC.
222
- *
223
- * @param input
224
- * @param config
225
- * @returns
226
- */
227
- function parseReadableTimeString(input, config) {
228
- return dateTimeInstance(config === null || config === void 0 ? void 0 : config.timezone).parseTimeString(input, config);
229
- }
230
- exports.parseReadableTimeString = parseReadableTimeString;
231
- function readableTimeStringToDate(input, config) {
232
- return dateTimeInstance(config === null || config === void 0 ? void 0 : config.timezone).timeStringToDate(input, config);
233
- }
234
- exports.readableTimeStringToDate = readableTimeStringToDate;
235
- // MARK: Limits
236
- function limitDateTime(config) {
237
- return new date_time_limit_1.LimitDateTimeInstance(config);
238
- }
239
- exports.limitDateTime = limitDateTime;
240
- //# sourceMappingURL=date.time.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.time.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.time.ts"],"names":[],"mappings":"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"}
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.limitDateTimeInstance = exports.LimitDateTimeInstance = void 0;
4
- const util_1 = require("@dereekb/util");
5
- const date_fns_1 = require("date-fns");
6
- const date_1 = require("./date");
7
- const date_range_1 = require("./date.range");
8
- const date_logical_1 = require("./date.logical");
9
- /**
10
- * Used for deriving a limit for the current instant in time.
11
- */
12
- class LimitDateTimeInstance {
13
- constructor(config = {}) {
14
- this.config = config;
15
- }
16
- get instant() {
17
- return this.config.instant || 'now';
18
- }
19
- get minimumMinutesIntoFuture() {
20
- var _a;
21
- const { limits = {} } = this.config;
22
- const { future } = limits;
23
- let minutes;
24
- if (future) {
25
- minutes = (_a = future.minutes) !== null && _a !== void 0 ? _a : 0;
26
- if (future.hours) {
27
- minutes += Math.floor(future.hours * 60);
28
- }
29
- if (future.days) {
30
- minutes += Math.floor((0, date_1.daysToMinutes)(future.days));
31
- }
32
- }
33
- return minutes;
34
- }
35
- get min() {
36
- const { instant = new Date(), limits = {} } = this.config;
37
- const { isFuture, future, min } = limits;
38
- let limit = min;
39
- if (typeof min !== 'string' && (future || isFuture)) {
40
- if (!min || (0, date_1.isAfter)(min, instant)) {
41
- limit = util_1.DATE_NOW_VALUE;
42
- }
43
- else if (future) {
44
- const minimumMinutesIntoFuture = this.minimumMinutesIntoFuture;
45
- limit = (0, date_fns_1.addMinutes)(instant, minimumMinutesIntoFuture !== null && minimumMinutesIntoFuture !== void 0 ? minimumMinutesIntoFuture : 0);
46
- }
47
- }
48
- return limit;
49
- }
50
- get max() {
51
- const { instant = new Date(), limits = {} } = this.config;
52
- const { isPast, max } = limits;
53
- let limit = max;
54
- if (typeof max !== 'string' && isPast) {
55
- if (!max || (0, date_fns_1.isBefore)(max, instant)) {
56
- limit = util_1.DATE_NOW_VALUE;
57
- }
58
- }
59
- return limit;
60
- }
61
- /**
62
- * Creates a date range for now.
63
- *
64
- * @returns
65
- */
66
- dateRange() {
67
- const { instant = new Date() } = this.config;
68
- const { min, max } = this;
69
- return {
70
- start: min ? (0, date_logical_1.dateFromLogicalDate)(min, instant) : undefined,
71
- end: max ? (0, date_logical_1.dateFromLogicalDate)(max, instant) : undefined
72
- };
73
- }
74
- /**
75
- * Clamps the input date to the current range.
76
- */
77
- clamp(date) {
78
- var _a;
79
- let result = date;
80
- const dateRange = this.dateRange();
81
- result = (0, date_range_1.clampDateToDateRange)(date, dateRange);
82
- if (this.config.takeNextUpcomingTime) {
83
- result = (0, date_1.takeNextUpcomingTime)(result, (_a = this.config.roundDownToMinute) !== null && _a !== void 0 ? _a : false);
84
- }
85
- else if (this.config.roundDownToMinute) {
86
- result = (0, date_1.roundDownToMinute)(result);
87
- }
88
- return result;
89
- }
90
- clampDateRange(dateRange) {
91
- return (0, date_range_1.clampDateRangeToDateRange)(dateRange, this.dateRange());
92
- }
93
- }
94
- exports.LimitDateTimeInstance = LimitDateTimeInstance;
95
- function limitDateTimeInstance(config) {
96
- return new LimitDateTimeInstance(config);
97
- }
98
- exports.limitDateTimeInstance = limitDateTimeInstance;
99
- //# sourceMappingURL=date.time.limit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.time.limit.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.time.limit.ts"],"names":[],"mappings":"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"}