@dereekb/date 9.11.3 → 9.11.5

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 CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [9.11.5](https://github.com/dereekb/dbx-components/compare/v9.11.4-dev...v9.11.5) (2022-10-13)
6
+
7
+
8
+
9
+ ## [9.11.4](https://github.com/dereekb/dbx-components/compare/v9.11.3-dev...v9.11.4) (2022-10-10)
10
+
11
+
12
+
5
13
  ## [9.11.3](https://github.com/dereekb/dbx-components/compare/v9.11.2-dev...v9.11.3) (2022-10-10)
6
14
 
7
15
 
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@dereekb/date",
3
- "version": "9.11.3",
3
+ "version": "9.11.5",
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.29.0",
10
- "@dereekb/util": "9.11.3",
10
+ "@dereekb/util": "9.11.5",
11
11
  "lodash.isequal": "^4.5.0",
12
12
  "make-error": "^1.3.0",
13
13
  "class-validator": "^0.13.2",
@@ -1,4 +1,4 @@
1
- import { DayOfWeek, RequiredOnKeys, IndexNumber, IndexRange, IndexRef, UniqueModel, FactoryWithRequiredInput, FilterFunction, Milliseconds, MapFunction, SortCompareFunction } from '@dereekb/util';
1
+ import { DayOfWeek, RequiredOnKeys, IndexNumber, IndexRange, IndexRef, UniqueModel, FactoryWithRequiredInput, FilterFunction, Milliseconds, MapFunction, SortCompareFunction, ArrayOrValue, Maybe } from '@dereekb/util';
2
2
  import { DateRange, DateRangeDayDistanceInput } from './date.range';
3
3
  import { DateDurationSpan } from './date.duration';
4
4
  /**
@@ -200,16 +200,13 @@ export interface DateBlockDayTimingInfo {
200
200
  * Whether or not the block is within the configured range.
201
201
  */
202
202
  isInRange: boolean;
203
+ /**
204
+ * Time the timing starts on the input day.
205
+ */
206
+ startsAtOnDay: Date;
203
207
  }
204
208
  export declare type DateBlockDayInfoFactory = (date: Date) => DateBlockDayTimingInfo;
205
- export declare function dateBlocksDayInfoFactory(config: DateBlocksDayTimingInfoFactoryConfig): (input: Date) => {
206
- dayIndex: number;
207
- currentIndex: number;
208
- nextIndex: number;
209
- hasOccuredToday: boolean;
210
- isInProgress: boolean;
211
- isInRange: boolean;
212
- };
209
+ export declare function dateBlocksDayInfoFactory(config: DateBlocksDayTimingInfoFactoryConfig): DateBlockDayInfoFactory;
213
210
  /**
214
211
  * IndexRange used with DateBlocks.
215
212
  *
@@ -236,6 +233,19 @@ export declare function dateBlockIndexRange(timing: DateBlockTiming, limit?: Dat
236
233
  * @returns
237
234
  */
238
235
  export declare function dateBlocksInDateBlockRange<T extends DateBlock | DateBlockRange>(blocks: T[], range: DateBlockRangeWithRange): T[];
236
+ /**
237
+ * Function that returns true if the input range is equal or falls within the configured DateBlockRange.
238
+ */
239
+ export declare type DateBlockIsWithinDateBlockRangeFunction = (input: DateBlock | DateBlockRange) => boolean;
240
+ export declare function dateBlockIsWithinDateBlockRangeFunction(inputRange: DateBlock | DateBlockRange): DateBlockIsWithinDateBlockRangeFunction;
241
+ /**
242
+ * Returns true if the first DateBlock or DateBlockRange contains the second input.
243
+ *
244
+ * @param range
245
+ * @param isContainedWithin
246
+ * @returns
247
+ */
248
+ export declare function dateBlockRangeContainsDateBlock(range: DateBlock | DateBlockRange, contains: DateBlock | DateBlockRange): boolean;
239
249
  /**
240
250
  * Represents a range of DateBlock values.
241
251
  */
@@ -259,6 +269,18 @@ export declare class DateBlockRange extends DateBlock {
259
269
  * @returns
260
270
  */
261
271
  export declare function dateBlockRange(i: number, to?: number): DateBlockRangeWithRange;
272
+ export declare function dateBlockRangeWithRange(inputDateBlockRange: DateBlockRange): DateBlockRangeWithRange;
273
+ /**
274
+ * Function that returns true if the input range covers the full range of the configured DateBlockRange.
275
+ */
276
+ export declare type DateBlockRangeIncludedByRangeFunction = (range: DateBlockRangeWithRange) => boolean;
277
+ /**
278
+ * Creates a DateBlockRangeIncludedByRangeFunction
279
+ *
280
+ * @param inputRange
281
+ * @returns
282
+ */
283
+ export declare function dateBlockRangeIncludedByRangeFunction(inputRange: DateBlockRange): DateBlockRangeIncludedByRangeFunction;
262
284
  /**
263
285
  * Sorts the input ranges by index and distance (to values).
264
286
  *
@@ -283,7 +305,46 @@ export declare type DateBlockRangeWithRange = RequiredOnKeys<DateBlockRange, 'to
283
305
  *
284
306
  * @param input
285
307
  */
286
- export declare function groupToDateBlockRanges(input: (DateBlock | DateBlockRange)[]): DateBlockRange[];
308
+ export declare function groupToDateBlockRanges(input: (DateBlock | DateBlockRange)[]): DateBlockRangeWithRange[];
309
+ export interface DateBlockRangeBlockCountInfo {
310
+ /**
311
+ * Total number of blocks.
312
+ */
313
+ readonly count: number;
314
+ /**
315
+ * The "total" if all indexes were added together. Used for calculating the average.
316
+ */
317
+ readonly total: number;
318
+ /**
319
+ * The average block index
320
+ */
321
+ readonly average: number;
322
+ }
323
+ /**
324
+ * Counts the number of blocks in the input range.
325
+ *
326
+ * @param inputDateBlockRange
327
+ * @returns
328
+ */
329
+ export declare function dateBlockRangeBlocksCountInfo(inputDateBlockRange: ArrayOrValue<DateBlock | DateBlockRange>): DateBlockRangeBlockCountInfo;
330
+ /**
331
+ * Counts the number of blocks in the input range.
332
+ *
333
+ * @param inputDateBlockRange
334
+ * @returns
335
+ */
336
+ export declare function dateBlockRangeBlocksCount(inputDateBlockRange: ArrayOrValue<DateBlock | DateBlockRange>): number;
337
+ /**
338
+ * Checks whether or not the input range is fully included by the configured ranges.
339
+ */
340
+ export declare type DateBlockRangesFullyCoverDateBlockRangeFunction = (range: DateBlockRange) => boolean;
341
+ /**
342
+ * Creates a dateBlockRangesFullyCoverDateBlockRangeFunction
343
+ *
344
+ * @param ranges
345
+ * @returns
346
+ */
347
+ export declare function dateBlockRangesFullyCoverDateBlockRangeFunction(ranges: ArrayOrValue<DateBlockRange>): DateBlockRangesFullyCoverDateBlockRangeFunction;
287
348
  /**
288
349
  * Expands a DateBlockRange into an array of DateBlock values.
289
350
  *
@@ -302,7 +363,7 @@ export interface UniqueDateBlock extends DateBlock, UniqueModel {
302
363
  export interface UniqueDateBlockRange extends UniqueDateBlock, DateBlockRange {
303
364
  }
304
365
  /**
305
- * Returns true if the input DateBlockRange has a "to" value greater than it's "i" value.
366
+ * Returns true if the input DateBlockRange is longer than 1 block (I.E. has a "to" value greater than it's "i" value).
306
367
  *
307
368
  * @param input
308
369
  */
@@ -383,3 +444,13 @@ export interface ExpandUniqueDateBlocksResult<B extends DateBlockRange | UniqueD
383
444
  */
384
445
  export declare type ExpandUniqueDateBlocksFunction<B extends DateBlockRange | UniqueDateBlock> = (input: B[] | UniqueDateBlockRangeGroup<B>, newBlocks?: B[] | UniqueDateBlockRangeGroup<B>) => ExpandUniqueDateBlocksResult<B>;
385
446
  export declare function expandUniqueDateBlocksFunction<B extends DateBlockRange | UniqueDateBlock>(config: ExpandUniqueDateBlocksConfig<B>): ExpandUniqueDateBlocksFunction<B>;
447
+ /**
448
+ * Modifies or filter out any blocks that are outside the range to fit within the configured range.
449
+ */
450
+ export declare type ModifyDateBlocksToFitRangeFunction = <B extends DateBlock | DateBlockRange | UniqueDateBlock>(input: B[]) => B[];
451
+ /**
452
+ * Creatse a ModifyDateBlocksToFitRangeFunction
453
+ */
454
+ export declare function modifyDateBlocksToFitRangeFunction(range: DateBlockRange): ModifyDateBlocksToFitRangeFunction;
455
+ export declare function modifyDateBlocksToFitRange<B extends DateBlock | DateBlockRange | UniqueDateBlock>(range: DateBlockRange, input: B[]): B[];
456
+ export declare function modifyDateBlockToFitRange<B extends DateBlock | DateBlockRange | UniqueDateBlock>(range: DateBlockRange, input: B): Maybe<B>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.expandUniqueDateBlocksFunction = exports.groupUniqueDateBlocks = exports.dateBlockEndIndex = exports.dateBlockRangeHasRange = exports.expandDateBlockRange = exports.groupToDateBlockRanges = exports.sortDateBlockRanges = exports.sortDateBlockRangeAndSizeFunction = exports.dateBlockRange = exports.DateBlockRange = exports.dateBlocksInDateBlockRange = exports.dateBlockIndexRange = exports.dateBlockIndexRangeToDateBlockRange = exports.dateBlockRangeToDateBlockIndexRange = exports.dateBlocksDayInfoFactory = exports.dateBlocksExpansionFactory = exports.expandDateBlocks = exports.expandDateBlockCollection = exports.dateBlockDayOfWeekFactory = exports.isValidDateBlockTiming = exports.dateBlockTiming = exports.DateBlockTiming = exports.getRelativeIndexForDateTiming = exports.dateTimingRelativeIndexFactory = exports.getCurrentDateBlockTimingStartDate = exports.getCurrentDateBlockTimingOffset = exports.DateBlock = void 0;
3
+ exports.modifyDateBlockToFitRange = exports.modifyDateBlocksToFitRange = exports.modifyDateBlocksToFitRangeFunction = exports.expandUniqueDateBlocksFunction = exports.groupUniqueDateBlocks = exports.dateBlockEndIndex = exports.dateBlockRangeHasRange = exports.expandDateBlockRange = exports.dateBlockRangesFullyCoverDateBlockRangeFunction = exports.dateBlockRangeBlocksCount = exports.dateBlockRangeBlocksCountInfo = exports.groupToDateBlockRanges = exports.sortDateBlockRanges = exports.sortDateBlockRangeAndSizeFunction = exports.dateBlockRangeIncludedByRangeFunction = exports.dateBlockRangeWithRange = exports.dateBlockRange = exports.DateBlockRange = exports.dateBlockRangeContainsDateBlock = exports.dateBlockIsWithinDateBlockRangeFunction = exports.dateBlocksInDateBlockRange = exports.dateBlockIndexRange = exports.dateBlockIndexRangeToDateBlockRange = exports.dateBlockRangeToDateBlockIndexRange = exports.dateBlocksDayInfoFactory = exports.dateBlocksExpansionFactory = exports.expandDateBlocks = exports.expandDateBlockCollection = exports.dateBlockDayOfWeekFactory = exports.isValidDateBlockTiming = exports.dateBlockTiming = exports.DateBlockTiming = exports.getRelativeIndexForDateTiming = exports.dateTimingRelativeIndexFactory = exports.getCurrentDateBlockTimingStartDate = exports.getCurrentDateBlockTimingOffset = exports.DateBlock = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const util_1 = require("@dereekb/util");
6
6
  const date_range_1 = require("./date.range");
@@ -269,9 +269,9 @@ function dateBlocksDayInfoFactory(config) {
269
269
  return (input) => {
270
270
  const dayIndex = dayIndexFactory(input);
271
271
  const isInRange = checkIsInRange(dayIndex);
272
- const startsAtToday = (0, date_1.copyHoursAndMinutesFromDate)(input, startsAt, false);
272
+ const startsAtOnDay = (0, date_1.copyHoursAndMinutesFromDate)(input, startsAt, false);
273
273
  const potentiallyInProgress = !(0, date_fns_1.isAfter)(startsAt, input);
274
- const isInProgress = potentiallyInProgress && (0, date_fns_1.isBefore)(input, (0, date_fns_1.addMinutes)(startsAtToday, duration));
274
+ const isInProgress = potentiallyInProgress && (0, date_fns_1.isBefore)(input, (0, date_fns_1.addMinutes)(startsAtOnDay, duration));
275
275
  const hasOccuredToday = potentiallyInProgress && !isInProgress;
276
276
  const currentIndex = isInProgress || hasOccuredToday ? dayIndex : dayIndex - 1; // If not in progress and hasn't occured today, current index is the previous index.
277
277
  const nextIndex = currentIndex + 1;
@@ -281,7 +281,8 @@ function dateBlocksDayInfoFactory(config) {
281
281
  nextIndex,
282
282
  hasOccuredToday,
283
283
  isInProgress,
284
- isInRange
284
+ isInRange,
285
+ startsAtOnDay
285
286
  };
286
287
  };
287
288
  }
@@ -332,16 +333,33 @@ exports.dateBlockIndexRange = dateBlockIndexRange;
332
333
  * @returns
333
334
  */
334
335
  function dateBlocksInDateBlockRange(blocks, range) {
335
- return blocks.filter((x) => {
336
+ const dateBlockIsWithinDateBlockRange = dateBlockIsWithinDateBlockRangeFunction(range);
337
+ return blocks.filter(dateBlockIsWithinDateBlockRange);
338
+ }
339
+ exports.dateBlocksInDateBlockRange = dateBlocksInDateBlockRange;
340
+ function dateBlockIsWithinDateBlockRangeFunction(inputRange) {
341
+ const range = dateBlockRangeWithRange(inputRange);
342
+ return (input) => {
336
343
  var _a;
337
- if (x.i >= range.i) {
338
- const to = (_a = x.to) !== null && _a !== void 0 ? _a : x.i;
344
+ if (input.i >= range.i) {
345
+ const to = (_a = input.to) !== null && _a !== void 0 ? _a : input.i;
339
346
  return to <= range.to;
340
347
  }
341
348
  return false;
342
- });
349
+ };
343
350
  }
344
- exports.dateBlocksInDateBlockRange = dateBlocksInDateBlockRange;
351
+ exports.dateBlockIsWithinDateBlockRangeFunction = dateBlockIsWithinDateBlockRangeFunction;
352
+ /**
353
+ * Returns true if the first DateBlock or DateBlockRange contains the second input.
354
+ *
355
+ * @param range
356
+ * @param isContainedWithin
357
+ * @returns
358
+ */
359
+ function dateBlockRangeContainsDateBlock(range, contains) {
360
+ return dateBlockIsWithinDateBlockRangeFunction(range)(dateBlockRangeWithRange(contains));
361
+ }
362
+ exports.dateBlockRangeContainsDateBlock = dateBlockRangeContainsDateBlock;
345
363
  class DateBlockRange extends DateBlock {
346
364
  constructor(template) {
347
365
  super(template);
@@ -370,6 +388,23 @@ function dateBlockRange(i, to) {
370
388
  return { i, to: to !== null && to !== void 0 ? to : i };
371
389
  }
372
390
  exports.dateBlockRange = dateBlockRange;
391
+ function dateBlockRangeWithRange(inputDateBlockRange) {
392
+ return dateBlockRange(inputDateBlockRange.i, inputDateBlockRange.to);
393
+ }
394
+ exports.dateBlockRangeWithRange = dateBlockRangeWithRange;
395
+ /**
396
+ * Creates a DateBlockRangeIncludedByRangeFunction
397
+ *
398
+ * @param inputRange
399
+ * @returns
400
+ */
401
+ function dateBlockRangeIncludedByRangeFunction(inputRange) {
402
+ var _a;
403
+ const i = inputRange.i;
404
+ const to = (_a = inputRange.to) !== null && _a !== void 0 ? _a : i;
405
+ return (range) => range.i <= i && range.to >= to;
406
+ }
407
+ exports.dateBlockRangeIncludedByRangeFunction = dateBlockRangeIncludedByRangeFunction;
373
408
  /**
374
409
  * Sorts the input ranges by index and distance (to values).
375
410
  *
@@ -430,6 +465,53 @@ function groupToDateBlockRanges(input) {
430
465
  return results;
431
466
  }
432
467
  exports.groupToDateBlockRanges = groupToDateBlockRanges;
468
+ /**
469
+ * Counts the number of blocks in the input range.
470
+ *
471
+ * @param inputDateBlockRange
472
+ * @returns
473
+ */
474
+ function dateBlockRangeBlocksCountInfo(inputDateBlockRange) {
475
+ const group = groupToDateBlockRanges((0, util_1.asArray)(inputDateBlockRange));
476
+ let count = 0;
477
+ let total = 0;
478
+ group.forEach((x) => {
479
+ const blocks = Math.abs(x.to - x.i) + 1; // +1 for inclusivity
480
+ count += blocks;
481
+ const size = (0, util_1.sumOfIntegersBetween)(x.i, x.to);
482
+ total += size;
483
+ });
484
+ return {
485
+ count,
486
+ total,
487
+ average: count > 0 ? total / count : 0
488
+ };
489
+ }
490
+ exports.dateBlockRangeBlocksCountInfo = dateBlockRangeBlocksCountInfo;
491
+ /**
492
+ * Counts the number of blocks in the input range.
493
+ *
494
+ * @param inputDateBlockRange
495
+ * @returns
496
+ */
497
+ function dateBlockRangeBlocksCount(inputDateBlockRange) {
498
+ return dateBlockRangeBlocksCountInfo(inputDateBlockRange).count;
499
+ }
500
+ exports.dateBlockRangeBlocksCount = dateBlockRangeBlocksCount;
501
+ /**
502
+ * Creates a dateBlockRangesFullyCoverDateBlockRangeFunction
503
+ *
504
+ * @param ranges
505
+ * @returns
506
+ */
507
+ function dateBlockRangesFullyCoverDateBlockRangeFunction(ranges) {
508
+ const groupedRanges = Array.isArray(ranges) ? groupToDateBlockRanges(ranges) : [dateBlockRangeWithRange(ranges)];
509
+ return (inputRange) => {
510
+ const fn = dateBlockRangeIncludedByRangeFunction(inputRange);
511
+ return groupedRanges.findIndex(fn) !== -1;
512
+ };
513
+ }
514
+ exports.dateBlockRangesFullyCoverDateBlockRangeFunction = dateBlockRangesFullyCoverDateBlockRangeFunction;
433
515
  /**
434
516
  * Expands a DateBlockRange into an array of DateBlock values.
435
517
  *
@@ -443,7 +525,7 @@ function expandDateBlockRange(block) {
443
525
  }
444
526
  exports.expandDateBlockRange = expandDateBlockRange;
445
527
  /**
446
- * Returns true if the input DateBlockRange has a "to" value greater than it's "i" value.
528
+ * Returns true if the input DateBlockRange is longer than 1 block (I.E. has a "to" value greater than it's "i" value).
447
529
  *
448
530
  * @param input
449
531
  */
@@ -713,4 +795,36 @@ function expandUniqueDateBlocksFunction(config) {
713
795
  };
714
796
  }
715
797
  exports.expandUniqueDateBlocksFunction = expandUniqueDateBlocksFunction;
798
+ /**
799
+ * Creatse a ModifyDateBlocksToFitRangeFunction
800
+ */
801
+ function modifyDateBlocksToFitRangeFunction(range) {
802
+ const { i, to } = dateBlockRangeWithRange(range);
803
+ const dateBlockIsWithinDateBlockRange = dateBlockIsWithinDateBlockRangeFunction(range);
804
+ return (input) => (0, util_1.filterMaybeValues)(input.map((x) => {
805
+ let result;
806
+ const inRange = dateBlockIsWithinDateBlockRange(x);
807
+ if (!inRange) {
808
+ const asRange = dateBlockRangeWithRange(x);
809
+ const rangesOverlap = asRange.i < to && asRange.to > i;
810
+ if (rangesOverlap) {
811
+ result = Object.assign(Object.assign({}, x), { i: Math.max(i, asRange.i), to: Math.min(to, asRange.to) // should be no larger than to
812
+ });
813
+ }
814
+ }
815
+ else {
816
+ result = x;
817
+ }
818
+ return result;
819
+ }));
820
+ }
821
+ exports.modifyDateBlocksToFitRangeFunction = modifyDateBlocksToFitRangeFunction;
822
+ function modifyDateBlocksToFitRange(range, input) {
823
+ return modifyDateBlocksToFitRangeFunction(range)(input);
824
+ }
825
+ exports.modifyDateBlocksToFitRange = modifyDateBlocksToFitRange;
826
+ function modifyDateBlockToFitRange(range, input) {
827
+ return modifyDateBlocksToFitRange(range, [input])[0];
828
+ }
829
+ exports.modifyDateBlockToFitRange = modifyDateBlockToFitRange;
716
830
  //# 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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"}