@dereekb/date 10.0.5 → 10.0.6
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/index.cjs.d.ts +1 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +9264 -0
- package/index.cjs.mjs +2 -0
- package/index.esm.js +9957 -0
- package/package.json +13 -3
- package/src/lib/date/date.calendar.d.ts +1 -1
- package/src/lib/date/date.cell.d.ts +3 -3
- package/src/lib/date/date.cell.factory.d.ts +5 -5
- package/src/lib/date/date.cell.filter.d.ts +3 -3
- package/src/lib/date/date.cell.index.d.ts +4 -3
- package/src/lib/date/date.cell.schedule.d.ts +7 -7
- package/src/lib/date/date.cell.schedule.day.d.ts +2 -2
- package/src/lib/date/date.cell.validator.d.ts +2 -2
- package/src/lib/date/date.cell.week.d.ts +3 -3
- package/src/lib/date/date.d.ts +1 -1
- package/src/lib/date/date.day.d.ts +3 -3
- package/src/lib/date/date.duration.d.ts +2 -2
- package/src/lib/date/date.format.d.ts +3 -4
- package/src/lib/date/date.logical.d.ts +1 -1
- package/src/lib/date/date.range.d.ts +1 -1
- package/src/lib/date/date.range.string.d.ts +2 -2
- package/src/lib/date/date.range.timezone.d.ts +2 -2
- package/src/lib/date/date.rxjs.d.ts +3 -3
- package/src/lib/date/date.sort.d.ts +2 -2
- package/src/lib/date/date.time.d.ts +3 -3
- package/src/lib/date/date.time.limit.d.ts +3 -3
- package/src/lib/date/date.time.minute.d.ts +4 -4
- package/src/lib/date/date.timezone.d.ts +2 -2
- package/src/lib/date/date.unix.d.ts +1 -1
- package/src/lib/date/date.week.d.ts +3 -3
- package/src/lib/expires/expires.d.ts +1 -1
- package/src/lib/expires/expires.rxjs.d.ts +3 -3
- package/src/lib/query/query.builder.d.ts +2 -2
- package/src/lib/query/query.builder.mongo.d.ts +2 -2
- package/src/lib/query/query.filter.d.ts +2 -2
- package/src/lib/query/query.request.d.ts +2 -2
- package/src/lib/rrule/date.recurrence.d.ts +4 -4
- package/src/lib/rrule/date.rrule.d.ts +5 -5
- package/src/lib/rrule/date.rrule.extension.d.ts +1 -1
- package/src/lib/rrule/date.rrule.parse.d.ts +2 -2
- package/src/lib/timezone/timezone.d.ts +1 -1
- package/src/lib/timezone/timezone.validator.d.ts +2 -2
- package/CHANGELOG.md +0 -1488
- package/src/index.js +0 -5
- package/src/index.js.map +0 -1
- package/src/lib/date/date.calendar.js +0 -65
- package/src/lib/date/date.calendar.js.map +0 -1
- package/src/lib/date/date.cell.factory.js +0 -493
- package/src/lib/date/date.cell.factory.js.map +0 -1
- package/src/lib/date/date.cell.filter.js +0 -65
- package/src/lib/date/date.cell.filter.js.map +0 -1
- package/src/lib/date/date.cell.index.js +0 -731
- package/src/lib/date/date.cell.index.js.map +0 -1
- package/src/lib/date/date.cell.js +0 -574
- package/src/lib/date/date.cell.js.map +0 -1
- package/src/lib/date/date.cell.schedule.day.js +0 -15
- package/src/lib/date/date.cell.schedule.day.js.map +0 -1
- package/src/lib/date/date.cell.schedule.js +0 -711
- package/src/lib/date/date.cell.schedule.js.map +0 -1
- package/src/lib/date/date.cell.validator.js +0 -67
- package/src/lib/date/date.cell.validator.js.map +0 -1
- package/src/lib/date/date.cell.week.js +0 -40
- package/src/lib/date/date.cell.week.js.map +0 -1
- package/src/lib/date/date.day.js +0 -207
- package/src/lib/date/date.day.js.map +0 -1
- package/src/lib/date/date.duration.js +0 -56
- package/src/lib/date/date.duration.js.map +0 -1
- package/src/lib/date/date.format.js +0 -231
- package/src/lib/date/date.format.js.map +0 -1
- package/src/lib/date/date.hashset.js +0 -11
- package/src/lib/date/date.hashset.js.map +0 -1
- package/src/lib/date/date.js +0 -267
- package/src/lib/date/date.js.map +0 -1
- package/src/lib/date/date.logical.js +0 -61
- package/src/lib/date/date.logical.js.map +0 -1
- package/src/lib/date/date.range.js +0 -643
- package/src/lib/date/date.range.js.map +0 -1
- package/src/lib/date/date.range.string.js +0 -19
- package/src/lib/date/date.range.string.js.map +0 -1
- package/src/lib/date/date.range.timezone.js +0 -29
- package/src/lib/date/date.range.timezone.js.map +0 -1
- package/src/lib/date/date.round.js +0 -49
- package/src/lib/date/date.round.js.map +0 -1
- package/src/lib/date/date.rxjs.js +0 -40
- package/src/lib/date/date.rxjs.js.map +0 -1
- package/src/lib/date/date.sort.js +0 -43
- package/src/lib/date/date.sort.js.map +0 -1
- package/src/lib/date/date.time.js +0 -240
- package/src/lib/date/date.time.js.map +0 -1
- package/src/lib/date/date.time.limit.js +0 -99
- package/src/lib/date/date.time.limit.js.map +0 -1
- package/src/lib/date/date.time.minute.js +0 -144
- package/src/lib/date/date.time.minute.js.map +0 -1
- package/src/lib/date/date.timezone.js +0 -494
- package/src/lib/date/date.timezone.js.map +0 -1
- package/src/lib/date/date.unix.js +0 -41
- package/src/lib/date/date.unix.js.map +0 -1
- package/src/lib/date/date.week.js +0 -263
- package/src/lib/date/date.week.js.map +0 -1
- package/src/lib/date/index.js +0 -30
- package/src/lib/date/index.js.map +0 -1
- package/src/lib/expires/expires.js +0 -81
- package/src/lib/expires/expires.js.map +0 -1
- package/src/lib/expires/expires.rxjs.js +0 -61
- package/src/lib/expires/expires.rxjs.js.map +0 -1
- package/src/lib/expires/index.js +0 -6
- package/src/lib/expires/index.js.map +0 -1
- package/src/lib/index.js +0 -9
- package/src/lib/index.js.map +0 -1
- package/src/lib/query/index.js +0 -8
- package/src/lib/query/index.js.map +0 -1
- package/src/lib/query/query.builder.js +0 -85
- package/src/lib/query/query.builder.js.map +0 -1
- package/src/lib/query/query.builder.mongo.js +0 -41
- package/src/lib/query/query.builder.mongo.js.map +0 -1
- package/src/lib/query/query.filter.js +0 -3
- package/src/lib/query/query.filter.js.map +0 -1
- package/src/lib/query/query.request.js +0 -3
- package/src/lib/query/query.request.js.map +0 -1
- package/src/lib/rrule/date.recurrence.js +0 -93
- package/src/lib/rrule/date.recurrence.js.map +0 -1
- package/src/lib/rrule/date.rrule.extension.js +0 -151
- package/src/lib/rrule/date.rrule.extension.js.map +0 -1
- package/src/lib/rrule/date.rrule.js +0 -187
- package/src/lib/rrule/date.rrule.js.map +0 -1
- package/src/lib/rrule/date.rrule.parse.js +0 -135
- package/src/lib/rrule/date.rrule.parse.js.map +0 -1
- package/src/lib/rrule/index.js +0 -8
- package/src/lib/rrule/index.js.map +0 -1
- package/src/lib/timezone/index.js +0 -6
- package/src/lib/timezone/index.js.map +0 -1
- package/src/lib/timezone/timezone.js +0 -66
- package/src/lib/timezone/timezone.js.map +0 -1
- package/src/lib/timezone/timezone.validator.js +0 -26
- package/src/lib/timezone/timezone.validator.js.map +0 -1
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeMongoDBLikeDateQueryBuilder = exports.mergeMongoDBLikeRangeFilters = void 0;
|
|
4
|
-
function mergeMongoDBLikeRangeFilters(startsAt, endsAt) {
|
|
5
|
-
var _a, _b;
|
|
6
|
-
return {
|
|
7
|
-
$lte: (_a = startsAt === null || startsAt === void 0 ? void 0 : startsAt.$lte) !== null && _a !== void 0 ? _a : endsAt === null || endsAt === void 0 ? void 0 : endsAt.$lte,
|
|
8
|
-
$gte: (_b = endsAt === null || endsAt === void 0 ? void 0 : endsAt.$gte) !== null && _b !== void 0 ? _b : startsAt === null || startsAt === void 0 ? void 0 : startsAt.$gte
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
exports.mergeMongoDBLikeRangeFilters = mergeMongoDBLikeRangeFilters;
|
|
12
|
-
function makeMongoDBLikeDateQueryBuilder(config) {
|
|
13
|
-
const { fields } = config;
|
|
14
|
-
return {
|
|
15
|
-
makeRangeFilter(gte, lte) {
|
|
16
|
-
let result;
|
|
17
|
-
if (gte || lte) {
|
|
18
|
-
result = Object.assign(Object.assign({}, (gte ? { $gte: gte } : undefined)), (lte ? { $lte: lte } : undefined));
|
|
19
|
-
}
|
|
20
|
-
return result;
|
|
21
|
-
},
|
|
22
|
-
makeFieldFilter({ startsAt, endsAt }) {
|
|
23
|
-
let startsAtFilter;
|
|
24
|
-
let endsAtFilter;
|
|
25
|
-
if (fields.singleFieldForStartAndEnd) {
|
|
26
|
-
// A single field that manages start/end will start and end at the same instant (end = start)
|
|
27
|
-
// so we merge the gte/lte values.
|
|
28
|
-
const merged = mergeMongoDBLikeRangeFilters(startsAt, endsAt);
|
|
29
|
-
startsAtFilter = merged ? { [fields.start]: merged } : undefined;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
startsAtFilter = startsAt ? { [fields.start]: startsAt } : undefined;
|
|
33
|
-
endsAtFilter = endsAt && fields.end ? { [fields.end]: endsAt } : undefined;
|
|
34
|
-
}
|
|
35
|
-
const filter = Object.assign(Object.assign({}, startsAtFilter), endsAtFilter);
|
|
36
|
-
return filter;
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
exports.makeMongoDBLikeDateQueryBuilder = makeMongoDBLikeDateQueryBuilder;
|
|
41
|
-
//# sourceMappingURL=query.builder.mongo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.builder.mongo.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/query/query.builder.mongo.ts"],"names":[],"mappings":";;;AAgBA,SAAgB,4BAA4B,CAAC,QAA2C,EAAE,MAAyC;;IACjI,OAAO;QACL,IAAI,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;QACpC,IAAI,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;KACrC,CAAC;AACJ,CAAC;AALD,oEAKC;AAMD,SAAgB,+BAA+B,CAAC,MAA6C;IAC3F,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE1B,OAAO;QACL,eAAe,CAAC,GAAgB,EAAE,GAAgB;YAChD,IAAI,MAAyC,CAAC;YAE9C,IAAI,GAAG,IAAI,GAAG,EAAE;gBACd,MAAM,mCACD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GACjC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CACrC,CAAC;aACH;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAoD;YACpF,IAAI,cAAc,CAAC;YACnB,IAAI,YAAY,CAAC;YAEjB,IAAI,MAAM,CAAC,yBAAyB,EAAE;gBACpC,6FAA6F;gBAC7F,kCAAkC;gBAClC,MAAM,MAAM,GAA+B,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC1F,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aAClE;iBAAM;gBACL,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrE,YAAY,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aAC5E;YAED,MAAM,MAAM,mCACP,cAAc,GACd,YAAY,CAChB,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAtCD,0EAsCC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.filter.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/query/query.filter.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.request.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/query/query.request.ts"],"names":[],"mappings":""}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModelRecurrenceInfoUtility = exports.ModelRecurrenceInfo = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const class_transformer_1 = require("class-transformer");
|
|
6
|
-
const date_rrule_1 = require("./date.rrule");
|
|
7
|
-
const date_rrule_parse_1 = require("./date.rrule.parse");
|
|
8
|
-
const class_validator_1 = require("class-validator");
|
|
9
|
-
/**
|
|
10
|
-
* Indexed recurrence information for a model with recurrence information.
|
|
11
|
-
*/
|
|
12
|
-
let ModelRecurrenceInfo = exports.ModelRecurrenceInfo = class ModelRecurrenceInfo {
|
|
13
|
-
constructor(template) {
|
|
14
|
-
if (template != null) {
|
|
15
|
-
this.timezone = template.timezone;
|
|
16
|
-
this.rrule = template.rrule;
|
|
17
|
-
this.start = template.start;
|
|
18
|
-
this.end = template.end;
|
|
19
|
-
this.forever = template.forever;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
tslib_1.__decorate([
|
|
24
|
-
(0, class_transformer_1.Expose)(),
|
|
25
|
-
(0, class_validator_1.IsOptional)(),
|
|
26
|
-
(0, class_validator_1.IsString)(),
|
|
27
|
-
tslib_1.__metadata("design:type", String)
|
|
28
|
-
], ModelRecurrenceInfo.prototype, "timezone", void 0);
|
|
29
|
-
tslib_1.__decorate([
|
|
30
|
-
(0, class_transformer_1.Expose)(),
|
|
31
|
-
(0, class_validator_1.IsString)(),
|
|
32
|
-
tslib_1.__metadata("design:type", String)
|
|
33
|
-
], ModelRecurrenceInfo.prototype, "rrule", void 0);
|
|
34
|
-
tslib_1.__decorate([
|
|
35
|
-
(0, class_transformer_1.Expose)(),
|
|
36
|
-
(0, class_transformer_1.Type)(() => Date),
|
|
37
|
-
tslib_1.__metadata("design:type", Date)
|
|
38
|
-
], ModelRecurrenceInfo.prototype, "start", void 0);
|
|
39
|
-
tslib_1.__decorate([
|
|
40
|
-
(0, class_transformer_1.Expose)(),
|
|
41
|
-
(0, class_transformer_1.Type)(() => Date),
|
|
42
|
-
tslib_1.__metadata("design:type", Date)
|
|
43
|
-
], ModelRecurrenceInfo.prototype, "end", void 0);
|
|
44
|
-
tslib_1.__decorate([
|
|
45
|
-
(0, class_transformer_1.Expose)(),
|
|
46
|
-
(0, class_validator_1.IsOptional)(),
|
|
47
|
-
(0, class_validator_1.IsBoolean)(),
|
|
48
|
-
tslib_1.__metadata("design:type", Boolean)
|
|
49
|
-
], ModelRecurrenceInfo.prototype, "forever", void 0);
|
|
50
|
-
exports.ModelRecurrenceInfo = ModelRecurrenceInfo = tslib_1.__decorate([
|
|
51
|
-
(0, class_transformer_1.Exclude)(),
|
|
52
|
-
tslib_1.__metadata("design:paramtypes", [ModelRecurrenceInfo])
|
|
53
|
-
], ModelRecurrenceInfo);
|
|
54
|
-
/**
|
|
55
|
-
* Used for expanding a ModelRecurrenceUpdate into ModelRecurrenceInfo.
|
|
56
|
-
*/
|
|
57
|
-
class ModelRecurrenceInfoUtility {
|
|
58
|
-
/**
|
|
59
|
-
* Creates a ModelRecurrenceInfo instance from the input ModelRecurrenceStart.
|
|
60
|
-
*/
|
|
61
|
-
static expandModelRecurrenceStartToModelRecurrenceInfo(update) {
|
|
62
|
-
var _a;
|
|
63
|
-
const { date, rrule, timezone } = update;
|
|
64
|
-
const dateRRule = date_rrule_1.DateRRuleUtility.makeInstance({
|
|
65
|
-
rruleStringLineSet: rrule,
|
|
66
|
-
options: {
|
|
67
|
-
date
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
const dates = dateRRule.getRecurrenceDateRange();
|
|
71
|
-
const rruleSetString = date_rrule_parse_1.DateRRuleParseUtility.toRRuleLines(rrule);
|
|
72
|
-
const recurrenceInfo = {
|
|
73
|
-
timezone,
|
|
74
|
-
rrule: rruleSetString,
|
|
75
|
-
start: dates.start,
|
|
76
|
-
end: (_a = dates.finalRecurrenceEndsAt) !== null && _a !== void 0 ? _a : dates.end,
|
|
77
|
-
forever: dates.forever
|
|
78
|
-
};
|
|
79
|
-
return new ModelRecurrenceInfo(recurrenceInfo);
|
|
80
|
-
}
|
|
81
|
-
static makeDateRRuleInstance(info, date) {
|
|
82
|
-
const { rrule, timezone } = info;
|
|
83
|
-
return date_rrule_1.DateRRuleUtility.makeInstance({
|
|
84
|
-
rruleLines: rrule,
|
|
85
|
-
options: {
|
|
86
|
-
date,
|
|
87
|
-
timezone
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
exports.ModelRecurrenceInfoUtility = ModelRecurrenceInfoUtility;
|
|
93
|
-
//# sourceMappingURL=date.recurrence.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date.recurrence.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/rrule/date.recurrence.ts"],"names":[],"mappings":";;;;AAAA,yDAA0D;AAE1D,6CAAmE;AACnE,yDAA2F;AAE3F,qDAAkE;AASlE;;GAEG;AAEI,IAAM,mBAAmB,iCAAzB,MAAM,mBAAmB;IAwC9B,YAAY,QAA8B;QACxC,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;SACjC;IACH,CAAC;CACF,CAAA;AAxCC;IAHC,IAAA,0BAAM,GAAE;IACR,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qDACe;AAO1B;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,0BAAQ,GAAE;;kDACQ;AAOnB;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC;sCACT,IAAI;kDAAC;AAOb;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC;sCACX,IAAI;gDAAC;AAQX;IAHC,IAAA,0BAAM,GAAE;IACR,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;oDACM;8BAtCP,mBAAmB;IAD/B,IAAA,2BAAO,GAAE;6CAyCe,mBAAmB;GAxC/B,mBAAmB,CAiD/B;AAmBD;;GAEG;AACH,MAAa,0BAA0B;IACrC;;OAEG;IACH,MAAM,CAAC,+CAA+C,CAAC,MAA4B;;QACjF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAEzC,MAAM,SAAS,GAAG,6BAAgB,CAAC,YAAY,CAAC;YAC9C,kBAAkB,EAAE,KAAK;YACzB,OAAO,EAAE;gBACP,IAAI;aACL;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,SAAS,CAAC,sBAAsB,EAAE,CAAC;QACjD,MAAM,cAAc,GAAe,wCAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE7E,MAAM,cAAc,GAAG;YACrB,QAAQ;YACR,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,MAAA,KAAK,CAAC,qBAAqB,mCAAI,KAAK,CAAC,GAAG;YAC7C,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;QAEF,OAAO,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,IAAyB,EAAE,IAAkB;QACxE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAEjC,OAAO,6BAAgB,CAAC,YAAY,CAAC;YACnC,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE;gBACP,IAAI;gBACJ,QAAQ;aACT;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAvCD,gEAuCC"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AnyIterResult = exports.NextIterResult = exports.LastIterResult = exports.DateRRule = exports.DEFAULT_LAST_ITER_RESULT_MAX_ITERATIONS_ALLOWED = void 0;
|
|
4
|
-
const date_1 = require("../date/date");
|
|
5
|
-
const rrule_1 = require("rrule");
|
|
6
|
-
// TODO: Fix typings in RRule, or better yet, add the given types up to RRule.
|
|
7
|
-
exports.DEFAULT_LAST_ITER_RESULT_MAX_ITERATIONS_ALLOWED = 10000;
|
|
8
|
-
class DateRRule extends rrule_1.RRule {
|
|
9
|
-
/**
|
|
10
|
-
* Returns the last occurence that occurs in the rule chain.
|
|
11
|
-
*
|
|
12
|
-
* @returns
|
|
13
|
-
*/
|
|
14
|
-
last() {
|
|
15
|
-
return this._iter(new LastIterResult());
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Returns the next recurrence that occurs on/after the input date.
|
|
19
|
-
*
|
|
20
|
-
* @returns
|
|
21
|
-
*/
|
|
22
|
-
next(minDate) {
|
|
23
|
-
return this._iter(new NextIterResult(minDate));
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Returns any recurrence between the input min and max dates, if specified.
|
|
27
|
-
*
|
|
28
|
-
* @param minDate
|
|
29
|
-
* @param maxDate
|
|
30
|
-
* @returns
|
|
31
|
-
*/
|
|
32
|
-
any(filter = {}) {
|
|
33
|
-
return this._iter(new AnyIterResult(filter)) != null;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.DateRRule = DateRRule;
|
|
37
|
-
/**
|
|
38
|
-
* Used for typing information. Unused otherwise.
|
|
39
|
-
*/
|
|
40
|
-
class BaseRRuleIter {
|
|
41
|
-
constructor() {
|
|
42
|
-
this.method = 'before';
|
|
43
|
-
this.minDate = undefined;
|
|
44
|
-
this.maxDate = undefined;
|
|
45
|
-
this._result = undefined;
|
|
46
|
-
this.args = undefined;
|
|
47
|
-
this.total = 0;
|
|
48
|
-
this._value = null;
|
|
49
|
-
}
|
|
50
|
-
getValue() {
|
|
51
|
-
return this._value;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Used by DateRRule to find the last result.
|
|
56
|
-
*/
|
|
57
|
-
class LastIterResult extends BaseRRuleIter {
|
|
58
|
-
constructor(maxIterationsAllowed = exports.DEFAULT_LAST_ITER_RESULT_MAX_ITERATIONS_ALLOWED) {
|
|
59
|
-
super();
|
|
60
|
-
this.maxIterationsAllowed = maxIterationsAllowed;
|
|
61
|
-
this.maxDate = (0, date_1.maxFutureDate)();
|
|
62
|
-
}
|
|
63
|
-
accept(date) {
|
|
64
|
-
++this.total;
|
|
65
|
-
const tooLate = date > this.maxDate;
|
|
66
|
-
if (tooLate) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
this.add(date);
|
|
71
|
-
const maxIterationReached = this.total >= this.maxIterationsAllowed;
|
|
72
|
-
return !maxIterationReached;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
add(date) {
|
|
76
|
-
this._value = date;
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
clone() {
|
|
80
|
-
return new LastIterResult(this.maxIterationsAllowed);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.LastIterResult = LastIterResult;
|
|
84
|
-
class NextIterResult extends BaseRRuleIter {
|
|
85
|
-
constructor(minDate, maxIterationsAllowed = exports.DEFAULT_LAST_ITER_RESULT_MAX_ITERATIONS_ALLOWED) {
|
|
86
|
-
super();
|
|
87
|
-
this.minDate = minDate;
|
|
88
|
-
this.maxIterationsAllowed = maxIterationsAllowed;
|
|
89
|
-
this.maxDate = this.minDate;
|
|
90
|
-
}
|
|
91
|
-
accept(date) {
|
|
92
|
-
this.total += 1;
|
|
93
|
-
const tooEarly = this.minDate > date;
|
|
94
|
-
if (tooEarly) {
|
|
95
|
-
const maxIterationReached = this.total >= this.maxIterationsAllowed;
|
|
96
|
-
return !maxIterationReached;
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
this.add(date);
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
add(date) {
|
|
104
|
-
this._value = date;
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
clone() {
|
|
108
|
-
return new NextIterResult(this.minDate, this.maxIterationsAllowed);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exports.NextIterResult = NextIterResult;
|
|
112
|
-
class AnyIterResult extends BaseRRuleIter {
|
|
113
|
-
constructor(filter, maxIterationsAllowed = exports.DEFAULT_LAST_ITER_RESULT_MAX_ITERATIONS_ALLOWED) {
|
|
114
|
-
var _a, _b;
|
|
115
|
-
super();
|
|
116
|
-
this.maxIterationsAllowed = maxIterationsAllowed;
|
|
117
|
-
this.minDate = null;
|
|
118
|
-
this.maxDate = null;
|
|
119
|
-
if (filter) {
|
|
120
|
-
this.minDate = (_a = filter.minDate) !== null && _a !== void 0 ? _a : null;
|
|
121
|
-
this.maxDate = (_b = filter.maxDate) !== null && _b !== void 0 ? _b : null;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
accept(date) {
|
|
125
|
-
++this.total;
|
|
126
|
-
const tooEarly = this.minDate != null && this.minDate > date;
|
|
127
|
-
if (tooEarly) {
|
|
128
|
-
const maxIterationReached = this.total >= this.maxIterationsAllowed;
|
|
129
|
-
return !maxIterationReached;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
const tooLate = this.maxDate != null && this.maxDate < date;
|
|
133
|
-
if (tooLate) {
|
|
134
|
-
return true;
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
this.add(date);
|
|
138
|
-
return false;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
add(date) {
|
|
143
|
-
this._value = date;
|
|
144
|
-
return false;
|
|
145
|
-
}
|
|
146
|
-
clone() {
|
|
147
|
-
return new AnyIterResult({ minDate: this.minDate, maxDate: this.maxDate });
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
exports.AnyIterResult = AnyIterResult;
|
|
151
|
-
//# sourceMappingURL=date.rrule.extension.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date.rrule.extension.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/rrule/date.rrule.extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DateRRuleUtility = exports.DateRRuleInstance = void 0;
|
|
4
|
-
const rrule_1 = require("rrule");
|
|
5
|
-
const date_1 = require("../date");
|
|
6
|
-
const date_timezone_1 = require("../date/date.timezone");
|
|
7
|
-
const date_rrule_extension_1 = require("./date.rrule.extension");
|
|
8
|
-
const date_rrule_parse_1 = require("./date.rrule.parse");
|
|
9
|
-
class DateRRuleInstance {
|
|
10
|
-
/**
|
|
11
|
-
* Creates a new DateRRuleInstance from the input.
|
|
12
|
-
*/
|
|
13
|
-
static make(params) {
|
|
14
|
-
var _a, _b;
|
|
15
|
-
if (!(params.rruleLines || params.rruleStringLineSet)) {
|
|
16
|
-
throw new Error('Missing rruleLines or rruleStringLineSet input.');
|
|
17
|
-
}
|
|
18
|
-
const rruleStringLineSet = (_a = params.rruleStringLineSet) !== null && _a !== void 0 ? _a : date_rrule_parse_1.DateRRuleParseUtility.toRRuleStringSet(params.rruleLines);
|
|
19
|
-
const rruleOptions = DateRRuleUtility.toRRuleOptions(rruleStringLineSet);
|
|
20
|
-
const exclude = rruleOptions.exdates.addAll((_b = params.options.exclude) === null || _b === void 0 ? void 0 : _b.valuesArray());
|
|
21
|
-
const rrule = new date_rrule_extension_1.DateRRule(rruleOptions.options);
|
|
22
|
-
return new DateRRuleInstance(rrule, Object.assign(Object.assign({}, params.options), { exclude }));
|
|
23
|
-
}
|
|
24
|
-
constructor(rrule, options) {
|
|
25
|
-
var _a, _b;
|
|
26
|
-
this.options = options;
|
|
27
|
-
const tzid = rrule.origOptions.tzid;
|
|
28
|
-
let dtstart = rrule.origOptions.dtstart;
|
|
29
|
-
const timezone = tzid || options.timezone;
|
|
30
|
-
/**
|
|
31
|
-
* The normal instance for DateRRuleInstance is used backwards in most cases because DateRRule always
|
|
32
|
-
* parses dates as UTC, so we handle all input dates as base dates, an
|
|
33
|
-
*/
|
|
34
|
-
this.normalInstance = new date_timezone_1.DateTimezoneUtcNormalInstance(timezone);
|
|
35
|
-
if (dtstart && tzid) {
|
|
36
|
-
// Date was passed to both. The dtstart is the base UTC date, but correct for RRule.
|
|
37
|
-
}
|
|
38
|
-
else if (timezone) {
|
|
39
|
-
const startsAt = (_a = options.date) === null || _a === void 0 ? void 0 : _a.startsAt;
|
|
40
|
-
// If startsAt is provided, need to change it to start from the base UTC date, if any timezone is provided.
|
|
41
|
-
if (startsAt) {
|
|
42
|
-
const baseStartDate = this.normalInstance.baseDateToTargetDate(startsAt);
|
|
43
|
-
dtstart = baseStartDate;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
// If start date is provided without a timezone, assume timezone is UTC. Do nothing.
|
|
48
|
-
dtstart = dtstart !== null && dtstart !== void 0 ? dtstart : (_b = options.date) === null || _b === void 0 ? void 0 : _b.startsAt;
|
|
49
|
-
}
|
|
50
|
-
const rruleOptions = Object.assign(Object.assign({}, rrule.origOptions), { tzid: undefined, dtstart });
|
|
51
|
-
if (!rruleOptions.dtstart) {
|
|
52
|
-
throw new Error('No start time specified. Must by specified in options as or via DTSTART.');
|
|
53
|
-
}
|
|
54
|
-
this.rrule = new date_rrule_extension_1.DateRRule(rruleOptions, true);
|
|
55
|
-
}
|
|
56
|
-
get timezone() {
|
|
57
|
-
return this.normalInstance.config.timezone;
|
|
58
|
-
}
|
|
59
|
-
nextRecurrenceDate(from = new Date()) {
|
|
60
|
-
const baseFrom = this.normalInstance.baseDateToTargetDate(from);
|
|
61
|
-
const rawNext = this.rrule.next(baseFrom);
|
|
62
|
-
const next = rawNext ? this.normalInstance.targetDateToBaseDate(rawNext) : undefined;
|
|
63
|
-
return next;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Expands the input DateRRuleExpansionOptions to a DateRRuleExpansion.
|
|
67
|
-
*
|
|
68
|
-
* @param options
|
|
69
|
-
* @returns
|
|
70
|
-
*/
|
|
71
|
-
expand(options) {
|
|
72
|
-
let between;
|
|
73
|
-
if (options.range || options.rangeParams) {
|
|
74
|
-
if (options.range) {
|
|
75
|
-
between = options.range;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
const rangeParams = options.rangeParams;
|
|
79
|
-
between = (0, date_1.dateRange)(rangeParams);
|
|
80
|
-
}
|
|
81
|
-
between.start = this.normalInstance.baseDateToTargetDate(between.start);
|
|
82
|
-
between.end = this.normalInstance.baseDateToTargetDate(between.end);
|
|
83
|
-
}
|
|
84
|
-
let startsAtDates;
|
|
85
|
-
if (between) {
|
|
86
|
-
startsAtDates = this.rrule.between(between.start, between.end, true);
|
|
87
|
-
}
|
|
88
|
-
else if (this.hasForeverRange()) {
|
|
89
|
-
throw new Error('Rule expands infinitely. Specify a range.');
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
startsAtDates = this.rrule.all();
|
|
93
|
-
}
|
|
94
|
-
const referenceDate = this.options.date;
|
|
95
|
-
const allDates = startsAtDates.map((startsAt) => (Object.assign(Object.assign({}, referenceDate), { startsAt }))); // Inherit calendar time, etc.
|
|
96
|
-
let dates = allDates;
|
|
97
|
-
// Fix Dates w/ Timezones
|
|
98
|
-
if (this.normalInstance.hasConversion) {
|
|
99
|
-
dates = dates.map((x) => (Object.assign(Object.assign({}, x), { startsAt: this.normalInstance.targetDateToBaseDate(x.startsAt) })));
|
|
100
|
-
}
|
|
101
|
-
// Exclude dates
|
|
102
|
-
const exclude = this.options.exclude;
|
|
103
|
-
if (exclude) {
|
|
104
|
-
dates = dates.filter((x) => !exclude.has(x.startsAt));
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
between,
|
|
108
|
-
dates
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Returns true if there is a single date within the range.
|
|
113
|
-
*/
|
|
114
|
-
haveRecurrenceInDateRange(dateRange) {
|
|
115
|
-
const baseStart = this.normalInstance.targetDateToBaseDate(dateRange.start);
|
|
116
|
-
const baseEnd = this.normalInstance.targetDateToBaseDate(dateRange.end);
|
|
117
|
-
return this.rrule.any({ minDate: baseStart, maxDate: baseEnd });
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Returns the date range from when the recurrence starts, to the end date.
|
|
121
|
-
*/
|
|
122
|
-
getRecurrenceDateRange() {
|
|
123
|
-
const options = this.rrule.options;
|
|
124
|
-
const forever = this.hasForeverRange();
|
|
125
|
-
let start = this.rrule.options.dtstart;
|
|
126
|
-
let end;
|
|
127
|
-
let finalRecurrenceEndsAt;
|
|
128
|
-
if (forever) {
|
|
129
|
-
end = (0, date_1.maxFutureDate)();
|
|
130
|
-
finalRecurrenceEndsAt = undefined;
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
if (options.until) {
|
|
134
|
-
end = this.rrule.before(options.until, true);
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
end = this.rrule.last();
|
|
138
|
-
}
|
|
139
|
-
const referenceDate = this.options.date;
|
|
140
|
-
const finalRecurrenceDateRange = (0, date_1.durationSpanToDateRange)(Object.assign(Object.assign({}, referenceDate), { startsAt: end }));
|
|
141
|
-
finalRecurrenceEndsAt = finalRecurrenceDateRange.end;
|
|
142
|
-
}
|
|
143
|
-
// Fix Dates w/ timezone.
|
|
144
|
-
if (this.normalInstance.hasConversion) {
|
|
145
|
-
const [startF, endF] = [start, end].filter((x) => Boolean(x)).map((x) => this.normalInstance.baseDateToTargetDate(x));
|
|
146
|
-
start = startF;
|
|
147
|
-
end = endF;
|
|
148
|
-
}
|
|
149
|
-
return {
|
|
150
|
-
forever,
|
|
151
|
-
start,
|
|
152
|
-
end,
|
|
153
|
-
finalRecurrenceEndsAt
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
hasForeverRange() {
|
|
157
|
-
const options = this.rrule.options;
|
|
158
|
-
const forever = !options.count && !options.until;
|
|
159
|
-
return forever;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
exports.DateRRuleInstance = DateRRuleInstance;
|
|
163
|
-
class DateRRuleUtility {
|
|
164
|
-
/**
|
|
165
|
-
* Creates the expansion item results based on the input.
|
|
166
|
-
*/
|
|
167
|
-
static expand(options) {
|
|
168
|
-
var _a;
|
|
169
|
-
if (!options.instance && !options.instanceFrom) {
|
|
170
|
-
throw new Error('Rrules be defined for expansion.');
|
|
171
|
-
}
|
|
172
|
-
const dateRrule = (_a = options.instance) !== null && _a !== void 0 ? _a : DateRRuleInstance.make(options.instanceFrom);
|
|
173
|
-
return dateRrule.expand(options);
|
|
174
|
-
}
|
|
175
|
-
static makeInstance(params) {
|
|
176
|
-
return DateRRuleInstance.make(params);
|
|
177
|
-
}
|
|
178
|
-
// MARK: RRule
|
|
179
|
-
static toRRuleOptions(rruleStringLineSet) {
|
|
180
|
-
const rules = date_rrule_parse_1.DateRRuleParseUtility.separateRRuleStringSetValues(rruleStringLineSet);
|
|
181
|
-
const lines = date_rrule_parse_1.DateRRuleParseUtility.toRRuleLines(rules.basic);
|
|
182
|
-
const ruleOptions = rrule_1.RRule.parseString(lines);
|
|
183
|
-
return Object.assign(Object.assign({}, rules), { options: ruleOptions });
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
exports.DateRRuleUtility = DateRRuleUtility;
|
|
187
|
-
//# sourceMappingURL=date.rrule.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date.rrule.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/rrule/date.rrule.ts"],"names":[],"mappings":";;;AACA,iCAAuC;AACvC,kCAA+H;AAC/H,yDAAqF;AACrF,iEAAmD;AACnD,yDAAqH;AA4FrH,MAAa,iBAAiB;IAI5B;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,MAA6B;;QACvC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,kBAAkB,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;SACpE;QAED,MAAM,kBAAkB,GAAG,MAAA,MAAM,CAAC,kBAAkB,mCAAI,wCAAqB,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAoB,CAAC,CAAC;QAC5H,MAAM,YAAY,GAAG,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAA,MAAM,CAAC,OAAO,CAAC,OAAO,0CAAE,WAAW,EAAE,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,IAAI,gCAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,iBAAiB,CAAC,KAAK,kCAC7B,MAAM,CAAC,OAAO,KACjB,OAAO,IACP,CAAC;IACL,CAAC;IAED,YAAY,KAAY,EAAW,OAAiC;;QAAjC,YAAO,GAAP,OAAO,CAA0B;QAClE,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;QACpC,IAAI,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;QAExC,MAAM,QAAQ,GAAG,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC;QAE1C;;;WAGG;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,6CAA6B,CAAC,QAAQ,CAAC,CAAC;QAElE,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,oFAAoF;SACrF;aAAM,IAAI,QAAQ,EAAE;YACnB,MAAM,QAAQ,GAAgB,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,CAAC;YAErD,2GAA2G;YAC3G,IAAI,QAAQ,EAAE;gBACZ,MAAM,aAAa,GAAuB,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAC7F,OAAO,GAAG,aAAa,CAAC;aACzB;SACF;aAAM;YACL,oFAAoF;YACpF,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,CAAC;SAC7C;QAED,MAAM,YAAY,mCACb,KAAK,CAAC,WAAW,KACpB,IAAI,EAAE,SAAS,EACf,OAAO,GACR,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;SAC7F;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,gCAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAkB,CAAC;IACvD,CAAC;IAED,kBAAkB,CAAC,OAAa,IAAI,IAAI,EAAE;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAkC;QACvC,IAAI,OAAyB,CAAC;QAE9B,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,EAAE;YACxC,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;aACzB;iBAAM;gBACL,MAAM,WAAW,GAAoB,OAAO,CAAC,WAA8B,CAAC;gBAC5E,OAAO,GAAG,IAAA,gBAAS,EAAC,WAAW,CAAC,CAAC;aAClC;YAED,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACrE;QAED,IAAI,aAAqB,CAAC;QAE1B,IAAI,OAAO,EAAE;YACX,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACtE;aAAM,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAC9D;aAAM;YACL,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAClC;QAED,MAAM,aAAa,GAAiB,IAAI,CAAC,OAAO,CAAC,IAAoB,CAAC;QACtE,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iCAAM,aAAa,KAAE,QAAQ,IAAG,CAAC,CAAC,CAAC,8BAA8B;QAClH,IAAI,KAAK,GAAmB,QAAQ,CAAC;QAErC,yBAAyB;QACzB,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;YACrC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCAAM,CAAC,KAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAG,CAAC,CAAC;SACtG;QAED,gBAAgB;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAErC,IAAI,OAAO,EAAE;YACX,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;SACvD;QAED,OAAO;YACL,OAAO;YACP,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,SAAoB;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAExE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvC,IAAI,KAAK,GAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7C,IAAI,GAAS,CAAC;QACd,IAAI,qBAAuC,CAAC;QAE5C,IAAI,OAAO,EAAE;YACX,GAAG,GAAG,IAAA,oBAAa,GAAE,CAAC;YACtB,qBAAqB,GAAG,SAAS,CAAC;SACnC;aAAM;YACL,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAC9C;iBAAM;gBACL,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAU,CAAC;aACjC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAoB,CAAC;YACxD,MAAM,wBAAwB,GAAG,IAAA,8BAAuB,kCACnD,aAAa,KAChB,QAAQ,EAAE,GAAG,IACb,CAAC;YAEH,qBAAqB,GAAG,wBAAwB,CAAC,GAAG,CAAC;SACtD;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;YACrC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YACtH,KAAK,GAAG,MAAM,CAAC;YACf,GAAG,GAAG,IAAI,CAAC;SACZ;QAED,OAAO;YACL,OAAO;YACP,KAAK;YACL,GAAG;YACH,qBAAqB;SACtB,CAAC;IACJ,CAAC;IAED,eAAe;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA1LD,8CA0LC;AASD,MAAa,gBAAgB;IAC3B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAwC;;QACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QAED,MAAM,SAAS,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAqC,CAAC,CAAC;QAC5G,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAA6B;QAC/C,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,cAAc;IACd,MAAM,CAAC,cAAc,CAAC,kBAAsC;QAC1D,MAAM,KAAK,GAA6B,wCAAqB,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;QAC/G,MAAM,KAAK,GAAG,wCAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,aAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE7C,uCACK,KAAK,KACR,OAAO,EAAE,WAAW,IACpB;IACJ,CAAC;CACF;AA5BD,4CA4BC"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DateRRuleParseUtility = exports.RRuleStringSplitter = void 0;
|
|
4
|
-
const util_1 = require("@dereekb/util");
|
|
5
|
-
const date_fns_tz_1 = require("date-fns-tz");
|
|
6
|
-
const date_1 = require("../date");
|
|
7
|
-
const date_timezone_1 = require("../date/date.timezone");
|
|
8
|
-
exports.RRuleStringSplitter = ':';
|
|
9
|
-
class DateRRuleParseUtility {
|
|
10
|
-
static separateRRuleStringSetValues(input) {
|
|
11
|
-
const basic = [];
|
|
12
|
-
const exdateRules = [];
|
|
13
|
-
input.forEach((rule) => {
|
|
14
|
-
if (rule.startsWith('EXDATE')) {
|
|
15
|
-
exdateRules.push(rule);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
basic.push(rule);
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
let exdates = new date_1.DateSet();
|
|
22
|
-
if (exdateRules.length) {
|
|
23
|
-
exdates = new date_1.DateSet((0, util_1.flattenArray)(exdateRules.map((date) => {
|
|
24
|
-
return DateRRuleParseUtility.parseExdateAttributeFromLine(date).dates;
|
|
25
|
-
})));
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
basic,
|
|
29
|
-
exdates,
|
|
30
|
-
input
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
// MARK: Rules Parsing
|
|
34
|
-
static parseExdateAttributeFromLine(line) {
|
|
35
|
-
const property = this.parseProperty(line);
|
|
36
|
-
DateRRuleParseUtility.assertPropertyType('EXDATE', property);
|
|
37
|
-
return DateRRuleParseUtility.parseExdateAttributeFromProperty(property);
|
|
38
|
-
}
|
|
39
|
-
static parseExdateAttributeFromProperty(property) {
|
|
40
|
-
var _a;
|
|
41
|
-
const timezone = (_a = property.params.find((x) => x.key === 'TZID')) === null || _a === void 0 ? void 0 : _a.value;
|
|
42
|
-
const rawDates = property.values.split(',');
|
|
43
|
-
const conversion = new date_timezone_1.DateTimezoneUtcNormalInstance({ timezone });
|
|
44
|
-
const dates = rawDates.map((x) => DateRRuleParseUtility.parseDateTimeString(x, conversion));
|
|
45
|
-
return {
|
|
46
|
-
timezone,
|
|
47
|
-
dates
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
static parseDateTimeStringWithTimezone(rfcDateString, timezone) {
|
|
51
|
-
return DateRRuleParseUtility.parseDateTimeString(rfcDateString, timezone ? new date_timezone_1.DateTimezoneUtcNormalInstance({ timezone }) : undefined);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Parses the input Date-Time string.
|
|
55
|
-
*
|
|
56
|
-
* Timezone used to convert date to UTC if date is not specified in UTC (ends in Z).
|
|
57
|
-
*/
|
|
58
|
-
static parseDateTimeString(rfcDateString, converter) {
|
|
59
|
-
const RFC5545_DATE_TIME_FORMAT = /^((\d{4})(\d{2})(\d{2}))(T(\d{2})(\d{2})(\d{2})Z?)?$/;
|
|
60
|
-
const isDateString = rfcDateString.length === 6;
|
|
61
|
-
const isUTCDate = isDateString || rfcDateString.endsWith('Z');
|
|
62
|
-
const parsed = RFC5545_DATE_TIME_FORMAT.exec(rfcDateString);
|
|
63
|
-
if (parsed == null) {
|
|
64
|
-
throw new Error(`Failed parsing input rfcDateString "${rfcDateString}"`);
|
|
65
|
-
}
|
|
66
|
-
const [, , /*full*/ /*yearDate*/ yearS, monthS, dayS /*time*/, , hourS, minuteS, secondS] = parsed;
|
|
67
|
-
const [year, month, day, hour, minute, second] = [yearS, monthS, dayS, hourS, minuteS, secondS].map((x) => (x ? Number.parseInt(x, 10) : 0));
|
|
68
|
-
const utcDate = new Date(Date.UTC(year, month - 1, day, hour, minute, second));
|
|
69
|
-
let date = utcDate;
|
|
70
|
-
if (!isUTCDate) {
|
|
71
|
-
// Date was parsed as a base/UTC value by rrule, so convert it to the real date.
|
|
72
|
-
if (converter) {
|
|
73
|
-
date = converter.baseDateToTargetDate(date);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
throw new Error('No timezone was provided when parsing DateTime string.');
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return date;
|
|
80
|
-
}
|
|
81
|
-
static formatDateTimeString(date) {
|
|
82
|
-
return (0, date_fns_tz_1.format)(date, `yyyyMMdd'T'HHmmss'Z'`);
|
|
83
|
-
}
|
|
84
|
-
static parseProperty(line) {
|
|
85
|
-
const rawLine = DateRRuleParseUtility.parseRawLine(line);
|
|
86
|
-
return DateRRuleParseUtility.propertyFromRawLine(rawLine);
|
|
87
|
-
}
|
|
88
|
-
static propertyFromRawLine(rawLine) {
|
|
89
|
-
const typeAndParams = rawLine.params.split(';');
|
|
90
|
-
const type = typeAndParams[0].toUpperCase();
|
|
91
|
-
const params = typeAndParams.slice(1).map(DateRRuleParseUtility.parseRawParam);
|
|
92
|
-
return {
|
|
93
|
-
type,
|
|
94
|
-
params,
|
|
95
|
-
values: rawLine.values
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
static parseRawParam(param) {
|
|
99
|
-
const [key, value] = (0, util_1.splitJoinRemainder)(param, '=', 2);
|
|
100
|
-
return {
|
|
101
|
-
key,
|
|
102
|
-
value
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
static parseRawLine(line) {
|
|
106
|
-
const [params, values] = (0, util_1.splitJoinRemainder)(line, exports.RRuleStringSplitter, 2);
|
|
107
|
-
if (line.length === 1) {
|
|
108
|
-
return {
|
|
109
|
-
params: 'RRULE',
|
|
110
|
-
values: params
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
return {
|
|
115
|
-
params,
|
|
116
|
-
values
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
// MARK: String
|
|
121
|
-
static toRRuleStringSet(lines) {
|
|
122
|
-
return lines.split('\n');
|
|
123
|
-
}
|
|
124
|
-
static toRRuleLines(rruleStringSet) {
|
|
125
|
-
return rruleStringSet.join('\n');
|
|
126
|
-
}
|
|
127
|
-
// MARK: Assert
|
|
128
|
-
static assertPropertyType(type, property) {
|
|
129
|
-
if (property.type !== type) {
|
|
130
|
-
throw new Error(`Expected type ${type} but got ${property.type}`);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
exports.DateRRuleParseUtility = DateRRuleParseUtility;
|
|
135
|
-
//# sourceMappingURL=date.rrule.parse.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date.rrule.parse.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/rrule/date.rrule.parse.ts"],"names":[],"mappings":"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"}
|