@golemio/pid 5.9.1 → 5.9.2-rc.2487640217
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/dist/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.d.ts +23 -3
- package/dist/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.js +227 -43
- package/dist/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.js.map +1 -1
- package/dist/output-gateway/pid/service/facade/InfotextFacade.d.ts +1 -1
- package/dist/output-gateway/pid/service/facade/InfotextFacade.js +3 -3
- package/dist/output-gateway/pid/service/facade/InfotextFacade.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,8 +2,28 @@ import { JISInfotextsModel } from "../../../schema-definitions/jis/models/JISInf
|
|
|
2
2
|
import { IJISInfotextDto } from "../../../schema-definitions/jis/redis/interfaces/IJISInfotextDto";
|
|
3
3
|
type InfotextUnion = JISInfotextsModel | IJISInfotextDto;
|
|
4
4
|
export declare class JISInfotextStopSuppressionFilter {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
filterInfotexts<T extends InfotextUnion>(infotexts: T[], { includeFuture }: {
|
|
6
|
+
includeFuture: boolean;
|
|
7
|
+
}): T[];
|
|
8
|
+
private filterInfotextsExcludingFuture;
|
|
9
|
+
private getStopId;
|
|
10
|
+
private mapTopInfotextSeverityLevelByStopId;
|
|
11
|
+
private filterInfotextsIncludingFuture;
|
|
12
|
+
private createInfotextIntermediaries;
|
|
13
|
+
private mapInfotextsByStopId;
|
|
14
|
+
private filterStopInfotexts;
|
|
15
|
+
private segmentInfotexts;
|
|
16
|
+
private findSegmentationThreshold;
|
|
17
|
+
private addDay;
|
|
18
|
+
private segmentRepeatedInfotext;
|
|
19
|
+
private getMaxSegmentationDayForInfotext;
|
|
20
|
+
private getDatetimeFromRepeatTime;
|
|
21
|
+
private fitFiniteSegmentToInfotextTimeBounds;
|
|
22
|
+
private sortAndFilterSegments;
|
|
23
|
+
private isSegmentBLesserThanA;
|
|
24
|
+
private findUniqueInfotextsFromSegments;
|
|
25
|
+
private mapInfotextIdsByStopId;
|
|
26
|
+
private filterAllInfotexts;
|
|
27
|
+
private createInfotextsFromIntermediaries;
|
|
8
28
|
}
|
|
9
29
|
export {};
|
|
@@ -7,66 +7,250 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.JISInfotextStopSuppressionFilter = void 0;
|
|
10
|
+
const JISInfotextSeverityLevelPriority_1 = require("../../../helpers/jis/JISInfotextSeverityLevelPriority");
|
|
10
11
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
11
|
-
const MAX_SEVERITY_LEVEL = 2;
|
|
12
12
|
let JISInfotextStopSuppressionFilter = class JISInfotextStopSuppressionFilter {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
filterInfotexts(infotexts, { includeFuture }) {
|
|
14
|
+
if (!includeFuture) {
|
|
15
|
+
return this.filterInfotextsExcludingFuture(infotexts);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return this.filterInfotextsIncludingFuture(infotexts);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
filterInfotextsExcludingFuture(infotexts) {
|
|
22
|
+
const topInfotextSeverityLevelByStopId = this.mapTopInfotextSeverityLevelByStopId(infotexts);
|
|
23
|
+
const filteredInfotexts = [];
|
|
24
|
+
for (const infotext of infotexts) {
|
|
21
25
|
if (!infotext.stops) {
|
|
22
26
|
continue;
|
|
23
27
|
}
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
const infotextPrio = JISInfotextSeverityLevelPriority_1.JISInfotextSeverityLevelPriority[infotext.severity_level];
|
|
29
|
+
// Assign directly to the original object — not a spread copy. For Sequelize model
|
|
30
|
+
// instances, `stops` is a prototype getter (not an own property), so a spread copy
|
|
31
|
+
// would not include it, causing a TypeError on the filter call.
|
|
32
|
+
infotext.stops = infotext.stops.filter((stop) => topInfotextSeverityLevelByStopId.get(this.getStopId(stop)) === infotextPrio);
|
|
33
|
+
if (infotext.stops.length > 0) {
|
|
34
|
+
filteredInfotexts.push(infotext);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return filteredInfotexts;
|
|
38
|
+
}
|
|
39
|
+
getStopId(stop) {
|
|
40
|
+
if ("getDataValue" in stop && typeof stop.getDataValue === "function") {
|
|
41
|
+
return stop.getDataValue("stop_id");
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return stop.stop_id;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
mapTopInfotextSeverityLevelByStopId(infotexts) {
|
|
48
|
+
const topInfotextSeverityLevelByStopId = new Map();
|
|
49
|
+
for (const infotext of infotexts) {
|
|
50
|
+
const infotextPrio = JISInfotextSeverityLevelPriority_1.JISInfotextSeverityLevelPriority[infotext.severity_level];
|
|
51
|
+
for (const stop of infotext.stops ?? []) {
|
|
52
|
+
const currentValue = topInfotextSeverityLevelByStopId.get(this.getStopId(stop)) ?? -Infinity;
|
|
53
|
+
if (infotextPrio > currentValue) {
|
|
54
|
+
topInfotextSeverityLevelByStopId.set(this.getStopId(stop), infotextPrio);
|
|
41
55
|
}
|
|
42
|
-
|
|
43
|
-
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return topInfotextSeverityLevelByStopId;
|
|
59
|
+
}
|
|
60
|
+
filterInfotextsIncludingFuture(infotexts) {
|
|
61
|
+
const infotextIntermediaries = this.createInfotextIntermediaries(infotexts);
|
|
62
|
+
const infotextsByStopId = this.mapInfotextsByStopId(infotextIntermediaries);
|
|
63
|
+
const filteredInfotextsByStopId = new Map();
|
|
64
|
+
for (const [stopId, infotextsForStop] of infotextsByStopId.entries()) {
|
|
65
|
+
const filteredInfotextsForStop = this.filterStopInfotexts(infotextsForStop);
|
|
66
|
+
filteredInfotextsByStopId.set(stopId, filteredInfotextsForStop);
|
|
67
|
+
}
|
|
68
|
+
const filteredInfotextsIdsByStopId = this.mapInfotextIdsByStopId(filteredInfotextsByStopId);
|
|
69
|
+
const filteredInfotexts = this.filterAllInfotexts(infotextIntermediaries, filteredInfotextsIdsByStopId);
|
|
70
|
+
return this.createInfotextsFromIntermediaries(filteredInfotexts);
|
|
71
|
+
}
|
|
72
|
+
createInfotextIntermediaries(infotexts) {
|
|
73
|
+
return infotexts.map((infotext) => ({
|
|
74
|
+
data: infotext,
|
|
75
|
+
active_period_start: new Date(infotext.active_period_start),
|
|
76
|
+
active_period_end: infotext.active_period_end ? new Date(infotext.active_period_end) : null,
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
mapInfotextsByStopId(infotexts) {
|
|
80
|
+
const infotextsByStopId = new Map();
|
|
81
|
+
for (const infotext of infotexts) {
|
|
82
|
+
for (const stop of infotext.data.stops ?? []) {
|
|
83
|
+
const stopId = this.getStopId(stop);
|
|
84
|
+
if (!infotextsByStopId.has(stopId)) {
|
|
85
|
+
infotextsByStopId.set(stopId, []);
|
|
44
86
|
}
|
|
87
|
+
const infotextsForStop = infotextsByStopId.get(stopId);
|
|
88
|
+
infotextsForStop.push(infotext);
|
|
45
89
|
}
|
|
46
|
-
|
|
47
|
-
|
|
90
|
+
}
|
|
91
|
+
return infotextsByStopId;
|
|
92
|
+
}
|
|
93
|
+
filterStopInfotexts(infotexts) {
|
|
94
|
+
const segments = this.segmentInfotexts(infotexts);
|
|
95
|
+
const filteredSegments = this.sortAndFilterSegments(segments);
|
|
96
|
+
return this.findUniqueInfotextsFromSegments(filteredSegments);
|
|
97
|
+
}
|
|
98
|
+
segmentInfotexts(infotexts) {
|
|
99
|
+
const maxSegmentationDate = this.findSegmentationThreshold(infotexts);
|
|
100
|
+
const segments = [];
|
|
101
|
+
for (const infotext of infotexts) {
|
|
102
|
+
if (infotext.data.repeat_enabled) {
|
|
103
|
+
segments.push(...this.segmentRepeatedInfotext(infotext, maxSegmentationDate));
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
const start = infotext.active_period_start;
|
|
107
|
+
const end = infotext.active_period_end;
|
|
108
|
+
segments.push({ infotext, start, end });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return segments;
|
|
112
|
+
}
|
|
113
|
+
findSegmentationThreshold(infotexts) {
|
|
114
|
+
let maxEndDate = new Date(0);
|
|
115
|
+
let maxStartDate = new Date(0);
|
|
116
|
+
for (const infotext of infotexts) {
|
|
117
|
+
if (infotext.active_period_end && infotext.active_period_end > maxEndDate) {
|
|
118
|
+
maxEndDate = infotext.active_period_end;
|
|
119
|
+
}
|
|
120
|
+
if (infotext.active_period_start > maxStartDate) {
|
|
121
|
+
maxStartDate = infotext.active_period_start;
|
|
48
122
|
}
|
|
49
123
|
}
|
|
50
|
-
return
|
|
124
|
+
return this.addDay(maxEndDate > maxStartDate ? maxEndDate : maxStartDate);
|
|
51
125
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
126
|
+
addDay(date, multiplier = 1) {
|
|
127
|
+
const newDate = new Date(date);
|
|
128
|
+
newDate.setDate(date.getDate() + multiplier);
|
|
129
|
+
return newDate;
|
|
130
|
+
}
|
|
131
|
+
*segmentRepeatedInfotext(infotext, segmentationThreshold) {
|
|
132
|
+
// Repeat time windows going through or ending at midnight (e.g. 23:00-01:00, 23:00-00:00)
|
|
133
|
+
const isInfotextActiveUntilOrOverMidnight = infotext.data.repeat_time_end < infotext.data.repeat_time_start;
|
|
134
|
+
const minSegmentationDay = isInfotextActiveUntilOrOverMidnight
|
|
135
|
+
? this.addDay(infotext.active_period_start, -1)
|
|
136
|
+
: infotext.active_period_start;
|
|
137
|
+
const maxSegmentationDay = this.getMaxSegmentationDayForInfotext(infotext, segmentationThreshold);
|
|
138
|
+
for (let day = minSegmentationDay; day <= maxSegmentationDay; day = this.addDay(day)) {
|
|
139
|
+
const start = this.getDatetimeFromRepeatTime(infotext.data.repeat_time_start, day);
|
|
140
|
+
let end = this.getDatetimeFromRepeatTime(infotext.data.repeat_time_end, day);
|
|
141
|
+
if (isInfotextActiveUntilOrOverMidnight) {
|
|
142
|
+
end = this.addDay(end);
|
|
143
|
+
}
|
|
144
|
+
const boundedSegment = this.fitFiniteSegmentToInfotextTimeBounds({ infotext, start, end });
|
|
145
|
+
if (!boundedSegment) {
|
|
146
|
+
continue;
|
|
56
147
|
}
|
|
148
|
+
yield boundedSegment;
|
|
149
|
+
}
|
|
150
|
+
if (!infotext.active_period_end) {
|
|
151
|
+
const start = this.getDatetimeFromRepeatTime(infotext.data.repeat_time_start, this.addDay(maxSegmentationDay));
|
|
152
|
+
yield { infotext, start, end: null };
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
getMaxSegmentationDayForInfotext(infotext, segmentationThreshold) {
|
|
156
|
+
return infotext.active_period_end && infotext.active_period_end <= segmentationThreshold
|
|
157
|
+
? infotext.active_period_end
|
|
158
|
+
: segmentationThreshold;
|
|
159
|
+
}
|
|
160
|
+
getDatetimeFromRepeatTime(repeatTime, day) {
|
|
161
|
+
const [hours, minutes, seconds] = repeatTime.split(":").map((fragment) => parseInt(fragment, 10));
|
|
162
|
+
const datetime = new Date(day);
|
|
163
|
+
datetime.setHours(hours, minutes, seconds ?? 0, 0);
|
|
164
|
+
return datetime;
|
|
165
|
+
}
|
|
166
|
+
fitFiniteSegmentToInfotextTimeBounds(segment) {
|
|
167
|
+
let { infotext, start, end } = segment;
|
|
168
|
+
if (start < infotext.active_period_start) {
|
|
169
|
+
start = infotext.active_period_start;
|
|
170
|
+
}
|
|
171
|
+
if (infotext.active_period_end && end > infotext.active_period_end) {
|
|
172
|
+
end = infotext.active_period_end;
|
|
57
173
|
}
|
|
58
|
-
|
|
174
|
+
if (start > end) {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
return { infotext, start, end };
|
|
59
178
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
179
|
+
sortAndFilterSegments(segments) {
|
|
180
|
+
segments.sort((a, b) => {
|
|
181
|
+
const startTimeComparisonResult = a.start.getTime() - b.start.getTime();
|
|
182
|
+
if (startTimeComparisonResult !== 0) {
|
|
183
|
+
return startTimeComparisonResult;
|
|
184
|
+
}
|
|
185
|
+
else if (this.isSegmentBLesserThanA(a, b)) {
|
|
186
|
+
return -1;
|
|
187
|
+
}
|
|
188
|
+
else if (this.isSegmentBLesserThanA(b, a)) {
|
|
65
189
|
return 1;
|
|
66
|
-
|
|
67
|
-
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
68
192
|
return 0;
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
const filteredSegments = [];
|
|
196
|
+
let prevSegment = segments.at(0);
|
|
197
|
+
for (let i = 1; i < segments.length; i++) {
|
|
198
|
+
const currentSegment = segments[i];
|
|
199
|
+
if (this.isSegmentBLesserThanA(prevSegment, currentSegment)) {
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
filteredSegments.push(prevSegment);
|
|
203
|
+
prevSegment = currentSegment;
|
|
204
|
+
}
|
|
205
|
+
if (prevSegment) {
|
|
206
|
+
filteredSegments.push(prevSegment);
|
|
207
|
+
}
|
|
208
|
+
return filteredSegments;
|
|
209
|
+
}
|
|
210
|
+
isSegmentBLesserThanA(a, b) {
|
|
211
|
+
const aIsMoreSevere = JISInfotextSeverityLevelPriority_1.JISInfotextSeverityLevelPriority[b.infotext.data.severity_level] <
|
|
212
|
+
JISInfotextSeverityLevelPriority_1.JISInfotextSeverityLevelPriority[a.infotext.data.severity_level];
|
|
213
|
+
const aDoesNotStartLater = b.start >= a.start;
|
|
214
|
+
const aDoesNotEndSooner = !a.end || (b.end && b.end <= a.end) || false;
|
|
215
|
+
const bIsWithinTimeBoundsOfA = aDoesNotStartLater && aDoesNotEndSooner;
|
|
216
|
+
return aIsMoreSevere && bIsWithinTimeBoundsOfA;
|
|
217
|
+
}
|
|
218
|
+
findUniqueInfotextsFromSegments(segments) {
|
|
219
|
+
const infotexts = new Map();
|
|
220
|
+
for (const segment of segments) {
|
|
221
|
+
infotexts.set(segment.infotext.data.id, segment.infotext);
|
|
222
|
+
}
|
|
223
|
+
return [...infotexts.values()];
|
|
224
|
+
}
|
|
225
|
+
mapInfotextIdsByStopId(infotextsByStopId) {
|
|
226
|
+
const infotextsIdsByStopId = new Map();
|
|
227
|
+
for (const [stopId, infotextsForStop] of infotextsByStopId.entries()) {
|
|
228
|
+
const infotextIdsForStop = infotextsForStop.map((infotext) => infotext.data.id);
|
|
229
|
+
infotextsIdsByStopId.set(stopId, new Set(infotextIdsForStop));
|
|
69
230
|
}
|
|
231
|
+
return infotextsIdsByStopId;
|
|
232
|
+
}
|
|
233
|
+
filterAllInfotexts(infotexts, filteredInfotextsIdsByStopId) {
|
|
234
|
+
const filteredInfotexts = [];
|
|
235
|
+
for (const infotext of infotexts) {
|
|
236
|
+
if (!infotext.data.stops) {
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
const filteredStops = infotext.data.stops.filter((stop) => filteredInfotextsIdsByStopId.get(this.getStopId(stop))?.has(infotext.data.id) ?? false);
|
|
240
|
+
if (filteredStops.length > 0) {
|
|
241
|
+
// Same as filterInfotextsExcludingFuture: mutate in-place rather than spreading,
|
|
242
|
+
// because spreading a Sequelize model loses its prototype-getter-backed properties.
|
|
243
|
+
// `infotext.data` is a concrete union type; direct assignment hits TypeScript's
|
|
244
|
+
// union-write restriction (requires intersection of member types). Object.assign
|
|
245
|
+
// sidesteps that while still invoking the Sequelize setter at runtime.
|
|
246
|
+
Object.assign(infotext.data, { stops: filteredStops });
|
|
247
|
+
filteredInfotexts.push(infotext);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return filteredInfotexts;
|
|
251
|
+
}
|
|
252
|
+
createInfotextsFromIntermediaries(infotextIntermediaries) {
|
|
253
|
+
return infotextIntermediaries.map((intermediary) => intermediary.data);
|
|
70
254
|
}
|
|
71
255
|
};
|
|
72
256
|
exports.JISInfotextStopSuppressionFilter = JISInfotextStopSuppressionFilter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JISInfotextStopSuppressionFilter.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"JISInfotextStopSuppressionFilter.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/JISInfotextStopSuppressionFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@ import { IInfotextDepartureOutputDto, IInfotextOverviewOutputDto, IInfotextTrans
|
|
|
4
4
|
import { JISInfotextStopSuppressionFilter } from "../../helpers/JISInfotextStopSuppressionFilter";
|
|
5
5
|
import { IGetDeparturesOptions } from "../../models/interfaces/IGetDeparturesOptions";
|
|
6
6
|
import { Moment } from "@golemio/core/dist/shared/moment-timezone";
|
|
7
|
+
import { JISInfotextCacheTransferTransformation } from "../transformations/JISInfotextCacheTransferTransformation";
|
|
7
8
|
import { JISInfotextDepartureTransformation } from "../transformations/JISInfotextDepartureTransformation";
|
|
8
9
|
import { JISInfotextOverviewTransformation } from "../transformations/JISInfotextOverviewTransformation";
|
|
9
10
|
import { JISInfotextTransferTransformation } from "../transformations/JISInfotextTransferTransformation";
|
|
10
|
-
import { JISInfotextCacheTransferTransformation } from "../transformations/JISInfotextCacheTransferTransformation";
|
|
11
11
|
export declare class InfotextFacade {
|
|
12
12
|
private infotextRepository;
|
|
13
13
|
private infotextDepartureTransformation;
|
|
@@ -13,17 +13,17 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.InfotextFacade = void 0;
|
|
16
|
+
const DateTimeUtils_1 = require("../../../../helpers/DateTimeUtils");
|
|
16
17
|
const JISInfotextsRedisRepository_1 = require("../../../jis/data-access/cache/JISInfotextsRedisRepository");
|
|
17
18
|
const JISInfotextRepository_1 = require("../../data-access/JISInfotextRepository");
|
|
18
19
|
const JISInfotextStopSuppressionFilter_1 = require("../../helpers/JISInfotextStopSuppressionFilter");
|
|
19
20
|
const OgPidToken_1 = require("../../ioc/OgPidToken");
|
|
20
|
-
const DateTimeUtils_1 = require("../../../../helpers/DateTimeUtils");
|
|
21
21
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
22
22
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
23
|
+
const JISInfotextCacheTransferTransformation_1 = require("../transformations/JISInfotextCacheTransferTransformation");
|
|
23
24
|
const JISInfotextDepartureTransformation_1 = require("../transformations/JISInfotextDepartureTransformation");
|
|
24
25
|
const JISInfotextOverviewTransformation_1 = require("../transformations/JISInfotextOverviewTransformation");
|
|
25
26
|
const JISInfotextTransferTransformation_1 = require("../transformations/JISInfotextTransferTransformation");
|
|
26
|
-
const JISInfotextCacheTransferTransformation_1 = require("../transformations/JISInfotextCacheTransferTransformation");
|
|
27
27
|
let InfotextFacade = class InfotextFacade {
|
|
28
28
|
constructor(infotextRepository, infotextDepartureTransformation, infotextTransferTransformation, infotextOverviewTransformation, infotextStopFilter, infotextsRedisRepository, cacheTransferTransformation) {
|
|
29
29
|
this.infotextRepository = infotextRepository;
|
|
@@ -131,7 +131,7 @@ let InfotextFacade = class InfotextFacade {
|
|
|
131
131
|
}
|
|
132
132
|
return DateTimeUtils_1.DateTimeUtils.isInRepeatTimeWindow(infotext.repeat_time_start, infotext.repeat_time_end, currentTime);
|
|
133
133
|
});
|
|
134
|
-
return this.infotextStopFilter.
|
|
134
|
+
return this.infotextStopFilter.filterInfotexts(repeatFiltered, { includeFuture });
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
137
|
exports.InfotextFacade = InfotextFacade;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfotextFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/InfotextFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4GAAoG;AACpG,mFAAkF;AAOlF,qGAAoG;AACpG,qDAAoD;
|
|
1
|
+
{"version":3,"file":"InfotextFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/InfotextFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qEAAuD;AACvD,4GAAoG;AACpG,mFAAkF;AAOlF,qGAAoG;AACpG,qDAAoD;AAIpD,6EAA8F;AAE9F,iEAAwE;AACxE,sHAAmH;AACnH,8GAA2G;AAC3G,4GAAyG;AACzG,4GAAyG;AAGlG,IAAM,cAAc,GAApB,MAAM,cAAc;IACvB,YACsD,kBAAyC,EAEnF,+BAAmE,EAEnE,8BAAiE,EAEjE,8BAAiE,EACZ,kBAAoD,EACzD,wBAAqD,EAErG,2BAAmE;QAVzB,uBAAkB,GAAlB,kBAAkB,CAAuB;QAEnF,oCAA+B,GAA/B,+BAA+B,CAAoC;QAEnE,mCAA8B,GAA9B,8BAA8B,CAAmC;QAEjE,mCAA8B,GAA9B,8BAA8B,CAAmC;QACZ,uBAAkB,GAAlB,kBAAkB,CAAkC;QACzD,6BAAwB,GAAxB,wBAAwB,CAA6B;QAErG,gCAA2B,GAA3B,2BAA2B,CAAwC;IAC5E,CAAC;IAEG,KAAK,CAAC,8BAA8B,CACvC,OAAiB,EACjB,aAAqB,EACrB,OAA8B;QAE9B,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE3F,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,kBAAkB,GAAkC,EAAE,CAAC;YAC7D,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;gBACvC,MAAM,WAAW,GAAG,IAAI,CAAC,+BAA+B,CAAC,gBAAgB,CAAC;oBACtE,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC7B,CAAC,CAAC;gBAEH,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,kBAAkB,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,MAAM,IAAI,6BAAY,CAAC,mDAAmD,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACnH,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,6BAA6B,CACtC,OAAiB,EACjB,aAAqB,EACrB,QAAuB;QAEvB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE3F,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,8BAA8B,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB;gBAAE,MAAM,KAAK,CAAC;YACvD,MAAM,IAAI,6BAAY,CAAC,kDAAkD,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAClH,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,aAAsB;QACvD,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YAClF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;YACrF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,8BAA8B,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,MAAM,IAAI,6BAAY,CAAC,2CAA2C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3G,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC1B,OAAiB,EACjB,aAAmB,EACnB,QAAqB;QAErB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,IAAI,aAAa,CAAC;YAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qCAAoB;gBAAE,MAAM,KAAK,CAAC;YACvD,MAAM,IAAI,6BAAY,CAAC,qDAAqD,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACrH,CAAC;IACL,CAAC;IAEO,eAAe,CAAgD,IAAS,EAAE,GAAS,EAAE,aAAa,GAAG,KAAK;QAC9G,MAAM,WAAW,GAAG,6BAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC5C,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAChB,wFAAwF;gBACxF,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,6BAAa,CAAC,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QACjH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACtF,CAAC;CACJ,CAAA;AA1IY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,qBAAqB,CAAC,CAAA;IACxC,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,kCAAkC,CAAC,CAAA;IAErD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,iCAAiC,CAAC,CAAA;IAEpD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,iCAAiC,CAAC,CAAA;IAEpD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,gCAAgC,CAAC,CAAA;IACnD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,2BAA2B,CAAC,CAAA;IAC9C,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,sCAAsC,CAAC,CAAA;qCATY,6CAAqB;QAElD,uEAAkC;QAEnC,qEAAiC;QAEjC,qEAAiC;QACQ,mEAAgC;QAC/B,yDAA2B;QAExE,+EAAsC;GAZtE,cAAc,CA0I1B"}
|