@dereekb/date 8.12.1 → 8.12.4
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/CHANGELOG.md +12 -0
- package/package.json +2 -2
- package/src/lib/date/date.block.d.ts +102 -2
- package/src/lib/date/date.block.js +249 -2
- package/src/lib/date/date.block.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [8.12.4](https://github.com/dereekb/dbx-components/compare/v8.12.3-dev...v8.12.4) (2022-07-10)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [8.12.3](https://github.com/dereekb/dbx-components/compare/v8.12.2-dev...v8.12.3) (2022-07-09)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## [8.12.2](https://github.com/dereekb/dbx-components/compare/v8.12.1-dev...v8.12.2) (2022-07-08)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
5
17
|
## [8.12.1](https://github.com/dereekb/dbx-components/compare/v8.12.0-dev...v8.12.1) (2022-07-08)
|
|
6
18
|
|
|
7
19
|
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/date",
|
|
3
|
-
"version": "8.12.
|
|
3
|
+
"version": "8.12.4",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"typings": "./src/index.d.ts",
|
|
7
7
|
"dependencies": {},
|
|
8
8
|
"peerDependencies": {
|
|
9
9
|
"date-fns": "^2.28.0",
|
|
10
|
-
"@dereekb/util": "8.12.
|
|
10
|
+
"@dereekb/util": "8.12.4",
|
|
11
11
|
"make-error": "^1.3.0",
|
|
12
12
|
"ts-essentials": "^9.1.2",
|
|
13
13
|
"extra-set": "^2.2.11",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IndexRange } from '@dereekb/util';
|
|
1
|
+
import { IndexNumber, IndexRange, IndexRef, UniqueModel, FactoryWithRequiredInput } from '@dereekb/util';
|
|
2
2
|
import { DateRange, DateRangeDayDistanceInput } from './date.range';
|
|
3
3
|
import { DateDurationSpan } from './date.duration';
|
|
4
4
|
/**
|
|
@@ -8,7 +8,7 @@ export declare type DateBlockIndex = number;
|
|
|
8
8
|
/**
|
|
9
9
|
* A duration-span block.
|
|
10
10
|
*/
|
|
11
|
-
export interface DateBlock {
|
|
11
|
+
export interface DateBlock extends IndexRef {
|
|
12
12
|
i: DateBlockIndex;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
@@ -33,6 +33,11 @@ export declare type DateBlockArrayRef<B extends DateBlock = DateBlock> = {
|
|
|
33
33
|
*/
|
|
34
34
|
export interface DateBlockTiming extends DateRange, DateDurationSpan {
|
|
35
35
|
}
|
|
36
|
+
export declare class DateBlockTiming extends DateDurationSpan {
|
|
37
|
+
start: Date;
|
|
38
|
+
end: Date;
|
|
39
|
+
constructor(template: DateBlockTiming);
|
|
40
|
+
}
|
|
36
41
|
/**
|
|
37
42
|
* The DateRange input for dateBlockTiming()
|
|
38
43
|
*/
|
|
@@ -117,3 +122,98 @@ export declare function dateBlocksExpansionFactory(config: DateBlocksExpansionFa
|
|
|
117
122
|
* @param fitToTimingRange
|
|
118
123
|
*/
|
|
119
124
|
export declare function dateBlockIndexRange(timing: DateBlockTiming, limit?: DateBlockTimingRangeInput, fitToTimingRange?: boolean): IndexRange;
|
|
125
|
+
/**
|
|
126
|
+
* Represents a range of DateBlock values.
|
|
127
|
+
*/
|
|
128
|
+
export interface DateBlockRange extends DateBlock {
|
|
129
|
+
/**
|
|
130
|
+
* Index this block ends at, inclusive. A block with i=0 and to=0 encompases only the block 0.
|
|
131
|
+
*
|
|
132
|
+
* If not provided, assumes this has no range and starts/ends at the same index, i.
|
|
133
|
+
*/
|
|
134
|
+
to?: DateBlockIndex;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* A DateBlock that also has the potential for a unique identifier.
|
|
138
|
+
*/
|
|
139
|
+
export interface UniqueDateBlock extends DateBlock, UniqueModel {
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Represents a range of UniqueDateBlock values keyed by a similar identifier (or lack of identifier).
|
|
143
|
+
*/
|
|
144
|
+
export interface UniqueDateBlockRange extends UniqueDateBlock, DateBlockRange {
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Returns true if the input DateBlockRange has a "to" value greater than it's "i" value.
|
|
148
|
+
*
|
|
149
|
+
* @param input
|
|
150
|
+
*/
|
|
151
|
+
export declare function dateBlockRangeHasRange(input: DateBlockRange | UniqueDateBlock): input is DateBlockRange;
|
|
152
|
+
/**
|
|
153
|
+
* Reads the to index if it exists, or returns the block's index itself.
|
|
154
|
+
*
|
|
155
|
+
* @param input
|
|
156
|
+
* @returns
|
|
157
|
+
*/
|
|
158
|
+
export declare function dateBlockEndIndex(input: DateBlockRange | UniqueDateBlock): IndexNumber;
|
|
159
|
+
/**
|
|
160
|
+
* A grouping of UniqueDateBlock values, sorted by date range.
|
|
161
|
+
*/
|
|
162
|
+
export interface UniqueDateBlockRangeGroup<B extends DateBlockRange | UniqueDateBlock> extends DateBlockRange {
|
|
163
|
+
/**
|
|
164
|
+
* Blocks are sorted by index.
|
|
165
|
+
*/
|
|
166
|
+
blocks: B[];
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Groups all input DateBlockRange or UniqueDateBlock values into a UniqueDateBlockRangeGroup value.
|
|
170
|
+
*/
|
|
171
|
+
export declare function groupUniqueDateBlocks<B extends DateBlockRange | UniqueDateBlock>(input: B[]): UniqueDateBlockRangeGroup<B>;
|
|
172
|
+
/**
|
|
173
|
+
* Determines how to "fill" a DateRange when an empty range is detected.
|
|
174
|
+
* - extend: extends the previous block to fill the range.
|
|
175
|
+
* - fill: creates a new value using a factory.
|
|
176
|
+
*/
|
|
177
|
+
export declare type ExpandUniqueDateBlocksFillOption = 'extend' | 'fill';
|
|
178
|
+
/**
|
|
179
|
+
* Determines how overwrite block values that are completely overlapping eachother.
|
|
180
|
+
* - current: keeps the "current" value
|
|
181
|
+
* - next: the next/new value overwrites the previous one
|
|
182
|
+
*/
|
|
183
|
+
export declare type ExpandUniqueDateBlocksOverwriteOption = 'current' | 'next';
|
|
184
|
+
export interface ExpandUniqueDateBlocksConfig<B extends DateBlockRange | UniqueDateBlock> {
|
|
185
|
+
/**
|
|
186
|
+
* The expected start index.
|
|
187
|
+
*
|
|
188
|
+
* If provided, will expand the first block to start at this index, and filter out any blocks that end before this index.
|
|
189
|
+
*/
|
|
190
|
+
startAtIndex?: number;
|
|
191
|
+
/**
|
|
192
|
+
* The expected end index, inclusive.
|
|
193
|
+
*
|
|
194
|
+
* If provided, will expand the final block to end at this index, and filter out any blocks that start past this index.
|
|
195
|
+
*/
|
|
196
|
+
endAtIndex?: number;
|
|
197
|
+
/**
|
|
198
|
+
* Determines how to fill empty ranges.
|
|
199
|
+
*/
|
|
200
|
+
fillOption: ExpandUniqueDateBlocksFillOption;
|
|
201
|
+
/**
|
|
202
|
+
* (Optional) Determines how to handle overwrites.
|
|
203
|
+
*
|
|
204
|
+
* Defaults to next
|
|
205
|
+
*/
|
|
206
|
+
overwriteOption?: ExpandUniqueDateBlocksOverwriteOption;
|
|
207
|
+
/**
|
|
208
|
+
* Used to create new items to fill empty block sets.
|
|
209
|
+
*/
|
|
210
|
+
fillFactory?: FactoryWithRequiredInput<B, DateBlockRange>;
|
|
211
|
+
}
|
|
212
|
+
export interface ExpandUniqueDateBlocksResult<B extends DateBlockRange | UniqueDateBlock> extends UniqueDateBlockRangeGroup<B> {
|
|
213
|
+
/**
|
|
214
|
+
* Blocks that were removed.
|
|
215
|
+
*/
|
|
216
|
+
discarded: B[];
|
|
217
|
+
}
|
|
218
|
+
export declare type ExpandUniqueDateBlocksFunction<B extends DateBlockRange | UniqueDateBlock> = (input: B[] | UniqueDateBlockRangeGroup<B>) => ExpandUniqueDateBlocksResult<B>;
|
|
219
|
+
export declare function expandUniqueDateBlocks<B extends DateBlockRange | UniqueDateBlock>(config: ExpandUniqueDateBlocksConfig<B>): ExpandUniqueDateBlocksFunction<B>;
|
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dateBlockIndexRange = exports.dateBlocksExpansionFactory = exports.expandDateBlocks = exports.expandDateBlockCollection = exports.isValidDateBlockTiming = exports.dateBlockTiming = void 0;
|
|
3
|
+
exports.expandUniqueDateBlocks = exports.groupUniqueDateBlocks = exports.dateBlockEndIndex = exports.dateBlockRangeHasRange = exports.dateBlockIndexRange = exports.dateBlocksExpansionFactory = exports.expandDateBlocks = exports.expandDateBlockCollection = exports.isValidDateBlockTiming = exports.dateBlockTiming = exports.DateBlockTiming = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const util_1 = require("@dereekb/util");
|
|
5
6
|
const date_range_1 = require("./date.range");
|
|
7
|
+
const date_duration_1 = require("./date.duration");
|
|
6
8
|
const date_fns_1 = require("date-fns");
|
|
7
9
|
const date_1 = require("./date");
|
|
10
|
+
const class_transformer_1 = require("class-transformer");
|
|
11
|
+
class DateBlockTiming extends date_duration_1.DateDurationSpan {
|
|
12
|
+
constructor(template) {
|
|
13
|
+
super(template);
|
|
14
|
+
if (template) {
|
|
15
|
+
this.start = template.start;
|
|
16
|
+
this.end = template.end;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
tslib_1.__decorate([
|
|
21
|
+
(0, class_transformer_1.Expose)(),
|
|
22
|
+
(0, class_transformer_1.Type)(() => Date),
|
|
23
|
+
tslib_1.__metadata("design:type", Date)
|
|
24
|
+
], DateBlockTiming.prototype, "start", void 0);
|
|
25
|
+
tslib_1.__decorate([
|
|
26
|
+
(0, class_transformer_1.Expose)(),
|
|
27
|
+
(0, class_transformer_1.Type)(() => Date),
|
|
28
|
+
tslib_1.__metadata("design:type", Date)
|
|
29
|
+
], DateBlockTiming.prototype, "end", void 0);
|
|
30
|
+
exports.DateBlockTiming = DateBlockTiming;
|
|
8
31
|
/**
|
|
9
32
|
* Creates a valid DateBlock timing from the DateDurationSpan and range input.
|
|
10
33
|
*
|
|
@@ -115,7 +138,7 @@ function dateBlocksExpansionFactory(config) {
|
|
|
115
138
|
const isInRange = (0, util_1.indexRangeCheckFunction)(indexRange);
|
|
116
139
|
return (input) => {
|
|
117
140
|
const blocks = Array.isArray(input) ? input : input.blocks;
|
|
118
|
-
|
|
141
|
+
const spans = [];
|
|
119
142
|
blocks.forEach((x) => {
|
|
120
143
|
if (isInRange(x.i)) {
|
|
121
144
|
const startsAt = (0, date_fns_1.addDays)(baseStart, x.i);
|
|
@@ -157,4 +180,228 @@ function dateBlockIndexRange(timing, limit, fitToTimingRange = true) {
|
|
|
157
180
|
return { minIndex, maxIndex };
|
|
158
181
|
}
|
|
159
182
|
exports.dateBlockIndexRange = dateBlockIndexRange;
|
|
183
|
+
/**
|
|
184
|
+
* Returns true if the input DateBlockRange has a "to" value greater than it's "i" value.
|
|
185
|
+
*
|
|
186
|
+
* @param input
|
|
187
|
+
*/
|
|
188
|
+
function dateBlockRangeHasRange(input) {
|
|
189
|
+
return input.to != null && input.to > input.i;
|
|
190
|
+
}
|
|
191
|
+
exports.dateBlockRangeHasRange = dateBlockRangeHasRange;
|
|
192
|
+
/**
|
|
193
|
+
* Reads the to index if it exists, or returns the block's index itself.
|
|
194
|
+
*
|
|
195
|
+
* @param input
|
|
196
|
+
* @returns
|
|
197
|
+
*/
|
|
198
|
+
function dateBlockEndIndex(input) {
|
|
199
|
+
var _a;
|
|
200
|
+
return (_a = input.to) !== null && _a !== void 0 ? _a : input.i;
|
|
201
|
+
}
|
|
202
|
+
exports.dateBlockEndIndex = dateBlockEndIndex;
|
|
203
|
+
/**
|
|
204
|
+
* Groups all input DateBlockRange or UniqueDateBlock values into a UniqueDateBlockRangeGroup value.
|
|
205
|
+
*/
|
|
206
|
+
function groupUniqueDateBlocks(input) {
|
|
207
|
+
var _a;
|
|
208
|
+
const blocks = input.sort((0, util_1.sortAscendingIndexNumberRefFunction)());
|
|
209
|
+
const i = 0;
|
|
210
|
+
let to;
|
|
211
|
+
if (blocks.length === 0) {
|
|
212
|
+
to = i;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
const lastBlock = (0, util_1.lastValue)(blocks);
|
|
216
|
+
to = (_a = lastBlock.to) !== null && _a !== void 0 ? _a : lastBlock.i;
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
i,
|
|
220
|
+
to,
|
|
221
|
+
blocks
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
exports.groupUniqueDateBlocks = groupUniqueDateBlocks;
|
|
225
|
+
function expandUniqueDateBlocks(config) {
|
|
226
|
+
const { startAtIndex = 0, endAtIndex, fillOption: fill, fillFactory: inputFillFactory, overwriteOption = 'next' } = config;
|
|
227
|
+
const maxAllowedIndex = endAtIndex !== null && endAtIndex !== void 0 ? endAtIndex : Number.MAX_SAFE_INTEGER;
|
|
228
|
+
const fillFactory = inputFillFactory;
|
|
229
|
+
if (!fillFactory && fill === 'fill') {
|
|
230
|
+
throw new Error('fillFactory is required when fillOption is "fill".');
|
|
231
|
+
}
|
|
232
|
+
return (input) => {
|
|
233
|
+
const inputGroup = Array.isArray(input) ? groupUniqueDateBlocks(input) : input;
|
|
234
|
+
const sorted = inputGroup.blocks;
|
|
235
|
+
const blocks = [];
|
|
236
|
+
const discarded = [];
|
|
237
|
+
let current = sorted[0];
|
|
238
|
+
let currentNextIndex;
|
|
239
|
+
let next = sorted[1];
|
|
240
|
+
let nextStartIndex;
|
|
241
|
+
let i = 0;
|
|
242
|
+
let latestTo = startAtIndex - 1;
|
|
243
|
+
function addBlockWithRange(inputBlock, i, inputTo = i) {
|
|
244
|
+
// temporary
|
|
245
|
+
if (i <= latestTo) {
|
|
246
|
+
throw new Error('attempted to add an overlapping block.');
|
|
247
|
+
}
|
|
248
|
+
else if (i > inputTo) {
|
|
249
|
+
throw new Error('attempted to add a negative block (i > to).');
|
|
250
|
+
}
|
|
251
|
+
// Add in any necessary gap block first
|
|
252
|
+
const gapSizeBetweenBlocks = i - (latestTo + 1);
|
|
253
|
+
if (gapSizeBetweenBlocks > 0) {
|
|
254
|
+
// start at the startAtIndex at a minimum
|
|
255
|
+
const gapStartIndex = Math.max(latestTo + 1, startAtIndex);
|
|
256
|
+
addGapBlock(gapStartIndex, i - 1);
|
|
257
|
+
}
|
|
258
|
+
const to = Math.min(inputTo, maxAllowedIndex);
|
|
259
|
+
const block = Object.assign(Object.assign({}, inputBlock), { i,
|
|
260
|
+
to });
|
|
261
|
+
blocks.push(block);
|
|
262
|
+
latestTo = to;
|
|
263
|
+
return block;
|
|
264
|
+
}
|
|
265
|
+
function completeBlocks() {
|
|
266
|
+
// extend or fill if there is an endAtIndex value present
|
|
267
|
+
if (endAtIndex != null && latestTo < endAtIndex) {
|
|
268
|
+
addGapBlock(latestTo + 1, endAtIndex);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
function addGapBlock(i, inputTo = i) {
|
|
272
|
+
const to = Math.min(inputTo, maxAllowedIndex);
|
|
273
|
+
if (fill === 'fill') {
|
|
274
|
+
const dateBlockRange = {
|
|
275
|
+
i,
|
|
276
|
+
to
|
|
277
|
+
};
|
|
278
|
+
const block = fillFactory(dateBlockRange);
|
|
279
|
+
addBlockWithRange(block, i, to);
|
|
280
|
+
}
|
|
281
|
+
else if (blocks.length > 0) {
|
|
282
|
+
// do not extend if no blocks have been pushed.
|
|
283
|
+
const blockToExtend = (0, util_1.lastValue)(blocks);
|
|
284
|
+
blockToExtend.to = inputTo;
|
|
285
|
+
}
|
|
286
|
+
latestTo = to;
|
|
287
|
+
}
|
|
288
|
+
function continueToNext(use) {
|
|
289
|
+
i += 1;
|
|
290
|
+
current = use !== null && use !== void 0 ? use : sorted[i];
|
|
291
|
+
next = sorted[i + 1];
|
|
292
|
+
if (next) {
|
|
293
|
+
nextStartIndex = next.i;
|
|
294
|
+
// complete loop once past the max allowed index
|
|
295
|
+
if (nextStartIndex > maxAllowedIndex) {
|
|
296
|
+
continueLoop = false;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
const nextEndIndex = dateBlockEndIndex(next);
|
|
300
|
+
if (nextEndIndex <= latestTo) {
|
|
301
|
+
discardCurrent(); // skip until next is not less than or equal to the latest to
|
|
302
|
+
continueToNext();
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
continueLoop = false;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
function discard(block) {
|
|
311
|
+
discarded.push(block);
|
|
312
|
+
}
|
|
313
|
+
function discardCurrent() {
|
|
314
|
+
discard(current);
|
|
315
|
+
}
|
|
316
|
+
function discardNext() {
|
|
317
|
+
discard(next);
|
|
318
|
+
i += 1;
|
|
319
|
+
continueToNext();
|
|
320
|
+
}
|
|
321
|
+
let continueLoop = Boolean(next); // only loop if next is defined, otherwise we just add the final item.
|
|
322
|
+
while (continueLoop) {
|
|
323
|
+
currentNextIndex = current.i;
|
|
324
|
+
nextStartIndex = next.i;
|
|
325
|
+
const currentEndIndex = dateBlockEndIndex(current);
|
|
326
|
+
const nextEndIndex = dateBlockEndIndex(next);
|
|
327
|
+
if (nextStartIndex < startAtIndex || currentEndIndex < startAtIndex) {
|
|
328
|
+
// do nothing if the next index is still before the start index.
|
|
329
|
+
discardCurrent();
|
|
330
|
+
continueToNext();
|
|
331
|
+
}
|
|
332
|
+
else if (currentNextIndex === nextStartIndex) {
|
|
333
|
+
// if next has the same range as current, then look at the tie-breaker
|
|
334
|
+
if (nextEndIndex === currentEndIndex) {
|
|
335
|
+
// if they're both on the same index, then take the one based on the overwrite value
|
|
336
|
+
if (overwriteOption === 'current') {
|
|
337
|
+
// add current
|
|
338
|
+
addBlockWithRange(current, currentNextIndex, nextEndIndex);
|
|
339
|
+
// discard and skip the "next" value
|
|
340
|
+
discardNext();
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
// discard the current
|
|
344
|
+
discardCurrent();
|
|
345
|
+
// move on to next
|
|
346
|
+
continueToNext();
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
else if (nextEndIndex > currentEndIndex) {
|
|
350
|
+
// handle overlap
|
|
351
|
+
// add current
|
|
352
|
+
addBlockWithRange(current, currentNextIndex, currentEndIndex);
|
|
353
|
+
// change next to start at the next range
|
|
354
|
+
continueToNext(Object.assign(Object.assign({}, next), { i: currentEndIndex + 1, to: nextEndIndex }));
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
// Check for any overlap
|
|
359
|
+
if (currentEndIndex > nextStartIndex) {
|
|
360
|
+
// handle overlap
|
|
361
|
+
if (overwriteOption === 'current') {
|
|
362
|
+
// add current
|
|
363
|
+
addBlockWithRange(current, currentNextIndex, currentEndIndex);
|
|
364
|
+
// change next to start at the next range
|
|
365
|
+
continueToNext(Object.assign(Object.assign({}, next), { i: currentEndIndex + 1, to: nextEndIndex }));
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
// add current up to the start index
|
|
369
|
+
addBlockWithRange(current, currentNextIndex, nextStartIndex - 1);
|
|
370
|
+
// continue normally
|
|
371
|
+
continueToNext();
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
// add the block
|
|
376
|
+
addBlockWithRange(current, currentNextIndex, currentEndIndex);
|
|
377
|
+
// continue to next
|
|
378
|
+
continueToNext();
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
if (current != null) {
|
|
383
|
+
// if current != null, then atleast one block was input/remaining.
|
|
384
|
+
const lastStartIndex = current.i;
|
|
385
|
+
const lastEndIndex = dateBlockEndIndex(current);
|
|
386
|
+
if (lastEndIndex < startAtIndex || lastEndIndex <= latestTo || lastStartIndex > maxAllowedIndex) {
|
|
387
|
+
// if the block ends before the start index, then do nothing.
|
|
388
|
+
discardCurrent();
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
addBlockWithRange(current, Math.max(startAtIndex, lastStartIndex), Math.min(lastEndIndex, maxAllowedIndex));
|
|
392
|
+
}
|
|
393
|
+
completeBlocks();
|
|
394
|
+
}
|
|
395
|
+
else if (fill === 'fill') {
|
|
396
|
+
completeBlocks();
|
|
397
|
+
}
|
|
398
|
+
const result = {
|
|
399
|
+
i: 0,
|
|
400
|
+
blocks,
|
|
401
|
+
discarded
|
|
402
|
+
};
|
|
403
|
+
return result;
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
exports.expandUniqueDateBlocks = expandUniqueDateBlocks;
|
|
160
407
|
//# sourceMappingURL=date.block.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.block.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.block.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date.block.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.block.ts"],"names":[],"mappings":"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"}
|