@dereekb/util 9.23.20 → 9.23.22

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.23.22](https://github.com/dereekb/dbx-components/compare/v9.23.21-dev...v9.23.22) (2023-05-29)
6
+
7
+
8
+
9
+ ## [9.23.21](https://github.com/dereekb/dbx-components/compare/v9.23.20-dev...v9.23.21) (2023-05-27)
10
+
11
+
12
+
5
13
  ## [9.23.20](https://github.com/dereekb/dbx-components/compare/v9.23.19-dev...v9.23.20) (2023-05-19)
6
14
 
7
15
 
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [9.23.22](https://github.com/dereekb/dbx-components/compare/v9.23.21-dev...v9.23.22) (2023-05-29)
6
+
7
+
8
+
9
+ ## [9.23.21](https://github.com/dereekb/dbx-components/compare/v9.23.20-dev...v9.23.21) (2023-05-27)
10
+
11
+
12
+
5
13
  ## [9.23.20](https://github.com/dereekb/dbx-components/compare/v9.23.19-dev...v9.23.20) (2023-05-19)
6
14
 
7
15
 
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@dereekb/util/fetch",
3
- "version": "9.23.20",
3
+ "version": "9.23.22",
4
4
  "main": "./src/index.js",
5
5
  "types": "./src/index.d.ts",
6
6
  "dependencies": {},
7
7
  "peerDependencies": {
8
- "@dereekb/util": "9.23.20",
8
+ "@dereekb/util": "9.23.22",
9
9
  "lodash.isequal": "^4.5.0",
10
10
  "make-error": "^1.3.0",
11
11
  "class-validator": "^0.13.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/util",
3
- "version": "9.23.20",
3
+ "version": "9.23.22",
4
4
  "type": "commonjs",
5
5
  "exports": {
6
6
  ".": {
@@ -1,5 +1,9 @@
1
1
  import { Maybe } from '../value/maybe.type';
2
2
  export declare type ArrayOrValue<T> = T | T[];
3
+ /**
4
+ * A decision function used by the array find function.
5
+ */
6
+ export declare type ArrayFindDecisionFunction<T> = (value: T, index: number, obj: T[]) => boolean;
3
7
  /**
4
8
  * Converts the input value to an array containing itself, or returns itself if it is an array.
5
9
  *
@@ -1,5 +1,37 @@
1
- import { IndexNumber, ReadIndexRangeFunction } from '../value/indexed';
1
+ import { IndexNumber, IndexRange, ReadIndexRangeFunction } from '../value/indexed';
2
2
  import { Maybe } from '../value/maybe.type';
3
+ import { ArrayFindDecisionFunction } from './array';
4
+ /**
5
+ * Creates an IndexRange for the input array.
6
+ *
7
+ * @param array
8
+ * @returns
9
+ */
10
+ export declare function indexRangeForArray<T>(array: T[]): IndexRange;
11
+ /**
12
+ * Finds a value, then returns the next value, if applicable.
13
+ *
14
+ * @param array array to look in
15
+ * @param find find function
16
+ * @param wrapAround Whether or not to loop around to the front of the array if the value fonud is at the last index.
17
+ * @param steps
18
+ */
19
+ export declare function findNext<T>(array: Maybe<T[]>, find: ArrayFindDecisionFunction<T>, wrapAround?: boolean, steps?: number): Maybe<T>;
20
+ /**
21
+ * Returns the next index of an element in the input array based in the input index.
22
+ *
23
+ * Indexes less than 0 are considered to not exist.
24
+ *
25
+ * When wrapAround is true, indexes that are larger than the entire array will be used to find an index that is that many steps into the array.
26
+ *
27
+ * For instance, an index of 5 on an array of length 3 will return the index 1.
28
+ *
29
+ * @param array
30
+ * @param index
31
+ * @param wrapAround
32
+ * @param steps
33
+ */
34
+ export declare function getArrayNextIndex<T>(array: T[], index: number, wrapAround?: boolean, steps?: number): Maybe<number>;
3
35
  /**
4
36
  * Returns a value given the input index if any value responds to the index.
5
37
  */
@@ -1,7 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rangedIndexedValuesArrayAccessorInfoFactory = exports.indexedValuesArrayAccessorFactory = exports.rangedIndexedValuesArrayAccessorFactory = void 0;
3
+ exports.rangedIndexedValuesArrayAccessorInfoFactory = exports.indexedValuesArrayAccessorFactory = exports.rangedIndexedValuesArrayAccessorFactory = exports.getArrayNextIndex = exports.findNext = exports.indexRangeForArray = void 0;
4
4
  const indexed_1 = require("../value/indexed");
5
+ /**
6
+ * Creates an IndexRange for the input array.
7
+ *
8
+ * @param array
9
+ * @returns
10
+ */
11
+ function indexRangeForArray(array) {
12
+ return { minIndex: 0, maxIndex: array.length };
13
+ }
14
+ exports.indexRangeForArray = indexRangeForArray;
15
+ /**
16
+ * Finds a value, then returns the next value, if applicable.
17
+ *
18
+ * @param array array to look in
19
+ * @param find find function
20
+ * @param wrapAround Whether or not to loop around to the front of the array if the value fonud is at the last index.
21
+ * @param steps
22
+ */
23
+ function findNext(array, find, wrapAround = false, steps) {
24
+ let result;
25
+ if (array) {
26
+ const index = array.findIndex(find);
27
+ const nextIndex = getArrayNextIndex(array, index, wrapAround, steps);
28
+ if (nextIndex != null) {
29
+ result = array[nextIndex];
30
+ }
31
+ }
32
+ return result;
33
+ }
34
+ exports.findNext = findNext;
35
+ /**
36
+ * Returns the next index of an element in the input array based in the input index.
37
+ *
38
+ * Indexes less than 0 are considered to not exist.
39
+ *
40
+ * When wrapAround is true, indexes that are larger than the entire array will be used to find an index that is that many steps into the array.
41
+ *
42
+ * For instance, an index of 5 on an array of length 3 will return the index 1.
43
+ *
44
+ * @param array
45
+ * @param index
46
+ * @param wrapAround
47
+ * @param steps
48
+ */
49
+ function getArrayNextIndex(array, index, wrapAround = false, steps = 1) {
50
+ let nextIndex;
51
+ const arrayLength = array.length;
52
+ if (index >= 0 && index <= arrayLength - 1) {
53
+ nextIndex = (0, indexed_1.stepsFromIndex)(indexRangeForArray(array), index, steps, wrapAround);
54
+ }
55
+ return nextIndex;
56
+ }
57
+ exports.getArrayNextIndex = getArrayNextIndex;
5
58
  function rangedIndexedValuesArrayAccessorFactory(readIndexRange) {
6
59
  const readInfoFactory = rangedIndexedValuesArrayAccessorInfoFactory({
7
60
  readIndexRange
@@ -1 +1 @@
1
- {"version":3,"file":"array.indexed.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.indexed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.indexed.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.indexed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { IndexRange } from '../value/indexed';
1
2
  export declare function reduceNumbersWithMax(array: number[], emptyArrayValue?: number): number | undefined;
2
3
  export declare function reduceNumbersWithMaxFn(emptyArrayValue?: number): (array: number[]) => number | undefined;
3
4
  export declare function reduceNumbersWithMin(array: number[], emptyArrayValue?: number): number | undefined;
@@ -10,10 +11,11 @@ export declare function reduceNumbersFn<D extends number>(reduceFn: (a: number,
10
11
  /**
11
12
  * Input for range()
12
13
  */
13
- export declare type RangeInput = number | {
14
+ export declare type RangeInputObject = {
14
15
  start?: number;
15
16
  end: number;
16
17
  };
18
+ export declare type RangeInput = number | RangeInputObject | IndexRange;
17
19
  /**
18
20
  * Generates an array containing the range of numbers specified.
19
21
  *
@@ -48,7 +48,7 @@ exports.reduceNumbersFn = reduceNumbersFn;
48
48
  * @returns
49
49
  */
50
50
  function range(input, inputEnd) {
51
- var _a;
51
+ var _a, _b, _c;
52
52
  const range = [];
53
53
  let start;
54
54
  let end;
@@ -63,8 +63,8 @@ function range(input, inputEnd) {
63
63
  }
64
64
  }
65
65
  else {
66
- start = (_a = input.start) !== null && _a !== void 0 ? _a : 0;
67
- end = input.end;
66
+ start = (_b = (_a = input.start) !== null && _a !== void 0 ? _a : input.minIndex) !== null && _b !== void 0 ? _b : 0;
67
+ end = (_c = input.end) !== null && _c !== void 0 ? _c : input.maxIndex;
68
68
  }
69
69
  if (end >= start) {
70
70
  for (let i = start; i < end; i += 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"array.number.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.number.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.number.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.number.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,10 @@ export declare type ISO8601DateStringUTCFull = string;
32
32
  * A valid timezone string.
33
33
  */
34
34
  export declare type TimezoneString = string;
35
+ /**
36
+ * A timezone abbreviation (UTC, EST, etc).
37
+ */
38
+ export declare type TimezoneAbbreviation = string;
35
39
  /**
36
40
  * Object that references a TimezoneString.
37
41
  */
@@ -39,6 +43,10 @@ export interface TimezoneStringRef {
39
43
  timezone: TimezoneString;
40
44
  }
41
45
  export declare const UTC_TIMEZONE_STRING = "UTC";
46
+ /**
47
+ * UTC
48
+ */
49
+ export declare type UTCTimezoneAbbreviation = typeof UTC_TIMEZONE_STRING;
42
50
  /**
43
51
  * Whether or not the input timezone string is considered UTC.
44
52
  *
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/date/date.ts"],"names":[],"mappings":";;;AASa,QAAA,0BAA0B,GAAG,4EAA4E,CAAC;AAEvH,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO,kCAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,kDAEC;AASD;;;;;;GAMG;AACU,QAAA,qBAAqB,GAAG,oFAAoF,CAAC;AAE1H,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,6BAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAFD,0CAEC;AAqBY,QAAA,mBAAmB,GAAG,KAAK,CAAC;AAazC,SAAgB,6BAA6B,CAAC,QAA+B;IAC3E,OAAO,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,2BAAmB,CAAC;AAC9D,CAAC;AAFD,sEAEC;AAgBD;;GAEG;AACU,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAE9D,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,gCAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAFD,gDAEC;AAOD;;;;;GAKG;AACH,SAAgB,6BAA6B,CAAC,SAA4B;IACxE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;KACrB;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;KACjB;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;KACpB;IAED,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,sEAiBC;AAkBY,QAAA,cAAc,GAAG,IAAI,CAAC;AACtB,QAAA,eAAe,GAAG,EAAE,CAAC;AACrB,QAAA,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AACzB,QAAA,UAAU,GAAG,oBAAY,GAAG,EAAE,CAAC;AAC/B,QAAA,SAAS,GAAG,kBAAU,GAAG,EAAE,CAAC;AAmBzC;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,IAAU;IAC5C,OAAO,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnD,CAAC;AAFD,kDAEC;AAED,SAAgB,wBAAwB,CAAC,SAAoB;IAC3D,OAAO,SAAS,GAAG,CAAC,CAAC;AACvB,CAAC;AAFD,4DAEC;AAED,SAAgB,2BAA2B,CAAC,WAAwB;IAClE,OAAO,WAAW,GAAG,CAAC,CAAC;AACzB,CAAC;AAFD,kEAEC"}
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/date/date.ts"],"names":[],"mappings":";;;AASa,QAAA,0BAA0B,GAAG,4EAA4E,CAAC;AAEvH,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO,kCAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,kDAEC;AASD;;;;;;GAMG;AACU,QAAA,qBAAqB,GAAG,oFAAoF,CAAC;AAE1H,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,6BAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAFD,0CAEC;AA0BY,QAAA,mBAAmB,GAAG,KAAK,CAAC;AAkBzC,SAAgB,6BAA6B,CAAC,QAA+B;IAC3E,OAAO,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,2BAAmB,CAAC;AAC9D,CAAC;AAFD,sEAEC;AAgBD;;GAEG;AACU,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAE9D,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,gCAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAFD,gDAEC;AAOD;;;;;GAKG;AACH,SAAgB,6BAA6B,CAAC,SAA4B;IACxE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;KACrB;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;KACjB;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;KACpB;IAED,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,sEAiBC;AAkBY,QAAA,cAAc,GAAG,IAAI,CAAC;AACtB,QAAA,eAAe,GAAG,EAAE,CAAC;AACrB,QAAA,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AACzB,QAAA,UAAU,GAAG,oBAAY,GAAG,EAAE,CAAC;AAC/B,QAAA,SAAS,GAAG,kBAAU,GAAG,EAAE,CAAC;AAmBzC;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,IAAU;IAC5C,OAAO,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnD,CAAC;AAFD,kDAEC;AAED,SAAgB,wBAAwB,CAAC,SAAoB;IAC3D,OAAO,SAAS,GAAG,CAAC,CAAC;AACvB,CAAC;AAFD,4DAEC;AAED,SAAgB,2BAA2B,CAAC,WAAwB;IAClE,OAAO,WAAW,GAAG,CAAC,CAAC;AACzB,CAAC;AAFD,kEAEC"}
@@ -1,21 +1,36 @@
1
1
  import { MapFunction } from '../value/map';
2
2
  export interface NumberBound<T extends number = number> {
3
- min: T;
4
- max: T;
3
+ /**
4
+ * The minimum value.
5
+ */
6
+ readonly min: T;
7
+ /**
8
+ * The maximum value, inclusive.
9
+ */
10
+ readonly max: T;
5
11
  }
6
12
  export declare function isValidNumberBound(bounds: NumberBound): boolean;
7
13
  export declare type IsInNumberBoundFunction = (number: number) => boolean;
8
14
  export declare function isInNumberBoundFunction(bounds: NumberBound): IsInNumberBoundFunction;
9
- export declare type WrapNumberFunctionConfig<T extends number = number> = NumberBound<T>;
15
+ export interface WrapNumberFunctionConfig<T extends number = number> extends NumberBound<T> {
16
+ /**
17
+ * Whether or not to wrap to the nearest "fencepost" value instead of by direct index.
18
+ *
19
+ * False by default.
20
+ */
21
+ readonly fencePosts?: boolean;
22
+ }
10
23
  export declare type WrapNumberFunction<T extends number = number> = MapFunction<number, T> & {
11
24
  readonly _wrap: WrapNumberFunctionConfig;
12
25
  };
13
26
  export declare function wrapNumberFunction<T extends number = number>(wrapNumberFunctionConfig: WrapNumberFunctionConfig<T>): WrapNumberFunction<T>;
14
27
  export interface BoundNumberFunctionConfig<T extends number = number> extends NumberBound<T> {
15
28
  /**
16
- * Whether or not to "wrap" values around. Example: Wrapping from -180 to 180
29
+ * Whether or not to "wrap" values around.
30
+ *
31
+ * Example: Wrapping from -180 to 180
17
32
  */
18
- wrap?: boolean;
33
+ readonly wrap?: boolean;
19
34
  }
20
35
  export declare type BoundNumberFunction<T extends number = number> = MapFunction<number, T>;
21
36
  export declare function boundNumberFunction<T extends number = number>(boundNumberFunctionConfig: BoundNumberFunctionConfig<T>): BoundNumberFunction<T>;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.boundNumberFunction = exports.wrapNumberFunction = exports.isInNumberBoundFunction = exports.isValidNumberBound = void 0;
4
4
  function isValidNumberBound(bounds) {
5
5
  const { min, max } = bounds;
6
- return min < max;
6
+ return min <= max;
7
7
  }
8
8
  exports.isValidNumberBound = isValidNumberBound;
9
9
  function isInNumberBoundFunction(bounds) {
@@ -17,18 +17,18 @@ function isInNumberBoundFunction(bounds) {
17
17
  }
18
18
  exports.isInNumberBoundFunction = isInNumberBoundFunction;
19
19
  function wrapNumberFunction(wrapNumberFunctionConfig) {
20
- const { min, max } = wrapNumberFunctionConfig;
20
+ const { min, max, fencePosts = false } = wrapNumberFunctionConfig;
21
21
  const distance = max - min;
22
- const offset = 0 - min;
23
22
  const isInBound = isInNumberBoundFunction(wrapNumberFunctionConfig);
24
23
  const fn = ((input) => {
25
24
  if (isInBound(input)) {
26
25
  return input;
27
26
  }
28
27
  else {
29
- const relativeOffset = input < min ? -offset : offset;
30
- const normal = (input + relativeOffset) % distance;
31
- return normal - relativeOffset;
28
+ // when fencePosts is true, we're wrapping to the nearest fence post, meaning wraps are one value longer increased on that side.
29
+ const fencePostOffset = fencePosts ? (input < min ? 1 : -1) : 0;
30
+ let wrappedValue = ((((input - min) % distance) + distance) % distance) + min + fencePostOffset;
31
+ return wrappedValue;
32
32
  }
33
33
  });
34
34
  fn._wrap = wrapNumberFunctionConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"bound.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/bound.ts"],"names":[],"mappings":";;;AASA,SAAgB,kBAAkB,CAAC,MAAmB;IACpD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC5B,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC;AAHD,gDAGC;AAID,SAAgB,uBAAuB,CAAC,MAAmB;IACzD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAE5B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;KAClE;IAED,OAAO,CAAC,KAAa,EAAE,EAAE;QACvB,OAAO,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC;AAVD,0DAUC;AASD,SAAgB,kBAAkB,CAA4B,wBAAqD;IACjH,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,wBAAwB,CAAC;IAC9C,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;IAEvB,MAAM,SAAS,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,CAAC;IAEpE,MAAM,EAAE,GAAoC,CAAC,CAAC,KAAQ,EAAE,EAAE;QACxD,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC;SACd;aAAM;YACL,MAAM,cAAc,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACtD,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,cAAc,CAAC,GAAG,QAAQ,CAAC;YACnD,OAAO,MAAM,GAAG,cAAc,CAAC;SAChC;IACH,CAAC,CAA0B,CAAC;IAC5B,EAAE,CAAC,KAAK,GAAG,wBAAwB,CAAC;IACpC,OAAO,EAA2B,CAAC;AACrC,CAAC;AAlBD,gDAkBC;AAWD,SAAgB,mBAAmB,CAA4B,yBAAuD;IACpH,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,yBAAyB,CAAC;IAErD,IAAI,IAAI,EAAE;QACR,OAAO,kBAAkB,CAAI,yBAAyB,CAAC,CAAC;KACzD;SAAM;QACL,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAM,CAAC;KACpE;AACH,CAAC;AARD,kDAQC"}
1
+ {"version":3,"file":"bound.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/bound.ts"],"names":[],"mappings":";;;AAeA,SAAgB,kBAAkB,CAAC,MAAmB;IACpD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC5B,OAAO,GAAG,IAAI,GAAG,CAAC;AACpB,CAAC;AAHD,gDAGC;AAID,SAAgB,uBAAuB,CAAC,MAAmB;IACzD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAE5B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;KAClE;IAED,OAAO,CAAC,KAAa,EAAE,EAAE;QACvB,OAAO,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC;AAVD,0DAUC;AAgBD,SAAgB,kBAAkB,CAA4B,wBAAqD;IACjH,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,wBAAwB,CAAC;IAClE,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC;IAC3B,MAAM,SAAS,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,CAAC;IAEpE,MAAM,EAAE,GAAoC,CAAC,CAAC,KAAQ,EAAE,EAAE;QACxD,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC;SACd;aAAM;YACL,gIAAgI;YAChI,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,eAAe,CAAC;YAChG,OAAO,YAAY,CAAC;SACrB;IACH,CAAC,CAA0B,CAAC;IAC5B,EAAE,CAAC,KAAK,GAAG,wBAAwB,CAAC;IACpC,OAAO,EAA2B,CAAC;AACrC,CAAC;AAjBD,gDAiBC;AAaD,SAAgB,mBAAmB,CAA4B,yBAAuD;IACpH,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,yBAAyB,CAAC;IAErD,IAAI,IAAI,EAAE;QACR,OAAO,kBAAkB,CAAI,yBAAyB,CAAC,CAAC;KACzD;SAAM;QACL,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAM,CAAC;KACpE;AACH,CAAC;AARD,kDAQC"}
@@ -4,6 +4,7 @@ import { HashSet } from '../set/set.hashset';
4
4
  import { SortCompareFunction } from '../sort';
5
5
  import { FactoryWithRequiredInput } from '../getter/getter';
6
6
  import { Maybe } from './maybe.type';
7
+ import { WrapNumberFunction } from '../number';
7
8
  /**
8
9
  * A number that denotes which index an item is at.
9
10
  */
@@ -146,6 +147,17 @@ export declare type IndexRangeInput = IndexNumber | IndexRange;
146
147
  * @returns
147
148
  */
148
149
  export declare function indexRange(input: IndexRangeInput): IndexRange;
150
+ export declare type FitToIndexRangeFunction = (input: IndexNumber) => IndexNumber;
151
+ export declare function fitToIndexRangeFunction(input: IndexRange): FitToIndexRangeFunction;
152
+ export declare type WrapIndexNumberFunction = WrapNumberFunction;
153
+ /**
154
+ * Creates a WrapNumberFunction.
155
+ *
156
+ * @param input
157
+ * @param fencePosts
158
+ * @returns
159
+ */
160
+ export declare function wrapIndexRangeFunction(input: IndexRange, fencePosts?: boolean): WrapIndexNumberFunction;
149
161
  /**
150
162
  * Checks whether or not the input number is in the range.
151
163
  */
@@ -215,4 +227,34 @@ export declare function indexRangeOverlapsIndexRange(compareIndexRange: IndexRan
215
227
  * @returns
216
228
  */
217
229
  export declare function indexRangeOverlapsIndexRangeFunction(input: IndexRangeFunctionInput): IndexRangeOverlapsIndexRangeFunction;
230
+ export interface StepsFromIndexFunctionConfig {
231
+ readonly range: IndexRange;
232
+ /**
233
+ * Whether or not to fit start indexes that are outside of the range. If false, then returns undefined.
234
+ */
235
+ readonly fitToRange?: boolean;
236
+ /**
237
+ * Whether or not to wrap the index to the other side of the range when stepping outside the bounds of the range.
238
+ */
239
+ readonly wrapAround?: boolean;
240
+ /**
241
+ * Whether or not to use fencePosts. Defaults to true.
242
+ */
243
+ readonly fencePosts?: boolean;
244
+ readonly steps?: number;
245
+ }
246
+ export declare type StepsFromIndexFunction = ((startIndex: number, wrapAround?: boolean, steps?: number) => Maybe<number>) & {
247
+ readonly _config: StepsFromIndexFunctionConfig;
248
+ };
249
+ export declare function stepsFromIndexFunction(config: StepsFromIndexFunctionConfig): StepsFromIndexFunction;
250
+ /**
251
+ * Steps to the next index in the given direction based on the number of steps to take.
252
+ *
253
+ * Starting indexes less than the minIndex are considered to not exist and will return undefined.
254
+ *
255
+ * When wrapAround is true, indexes that are larger than the max index will be used to find an index that is that many steps into the index range.
256
+ *
257
+ * For instance, an index of 5 on a range of 0 to 3 will return the index 1.
258
+ */
259
+ export declare function stepsFromIndex(range: IndexRange, startIndex: number, step?: number, wrapAround?: boolean): Maybe<number>;
218
260
  export declare const isSelectedIndexDecisionFunction: import("../set/set.selection").IsSelectedDecisionFunctionFactory<IndexRef, number>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSelectedIndexDecisionFunction = exports.indexRangeOverlapsIndexRangeFunction = exports.indexRangeOverlapsIndexRange = exports.isIndexRangeInIndexRangeFunction = exports.isIndexRangeInIndexRange = exports.isIndexNumberInIndexRangeFunction = exports.isIndexNumberInIndexRange = exports.indexRangeCheckFunction = exports.asIndexRangeCheckFunctionConfig = exports.indexRangeCheckReaderFunction = exports.indexRange = exports.indexRangeReaderPairFactory = exports.sortByIndexRangeAscendingCompareFunction = exports.findBestIndexMatchFunction = exports.findItemsByIndex = exports.hashSetForIndexed = exports.sortByIndexAscendingCompareFunction = exports.indexDeltaGroup = exports.indexDeltaGroupFunction = exports.readIndexNumber = exports.sortAscendingIndexNumberRefFunction = void 0;
3
+ exports.isSelectedIndexDecisionFunction = exports.stepsFromIndex = exports.stepsFromIndexFunction = exports.indexRangeOverlapsIndexRangeFunction = exports.indexRangeOverlapsIndexRange = exports.isIndexRangeInIndexRangeFunction = exports.isIndexRangeInIndexRange = exports.isIndexNumberInIndexRangeFunction = exports.isIndexNumberInIndexRange = exports.indexRangeCheckFunction = exports.asIndexRangeCheckFunctionConfig = exports.indexRangeCheckReaderFunction = exports.wrapIndexRangeFunction = exports.fitToIndexRangeFunction = exports.indexRange = exports.indexRangeReaderPairFactory = exports.sortByIndexRangeAscendingCompareFunction = exports.findBestIndexMatchFunction = exports.findItemsByIndex = exports.hashSetForIndexed = exports.sortByIndexAscendingCompareFunction = exports.indexDeltaGroup = exports.indexDeltaGroupFunction = exports.readIndexNumber = exports.sortAscendingIndexNumberRefFunction = void 0;
4
4
  const set_1 = require("../set/set");
5
5
  const array_1 = require("../array/array");
6
6
  const object_1 = require("../object/object");
@@ -10,6 +10,7 @@ const grouping_1 = require("../grouping");
10
10
  const map_key_1 = require("../map/map.key");
11
11
  const set_selection_1 = require("../set/set.selection");
12
12
  const iterable_1 = require("../iterable/iterable");
13
+ const number_1 = require("../number");
13
14
  /**
14
15
  * Creates a SortCompareFunction<T> that sorts by index on IndexRef values.
15
16
  *
@@ -166,6 +167,25 @@ function indexRange(input) {
166
167
  }
167
168
  }
168
169
  exports.indexRange = indexRange;
170
+ function fitToIndexRangeFunction(input) {
171
+ const { minIndex: min, maxIndex } = input;
172
+ const max = maxIndex - 1;
173
+ return (0, number_1.boundNumberFunction)({ min, max, wrap: false });
174
+ }
175
+ exports.fitToIndexRangeFunction = fitToIndexRangeFunction;
176
+ /**
177
+ * Creates a WrapNumberFunction.
178
+ *
179
+ * @param input
180
+ * @param fencePosts
181
+ * @returns
182
+ */
183
+ function wrapIndexRangeFunction(input, fencePosts = true) {
184
+ const { minIndex: min, maxIndex } = input;
185
+ const max = maxIndex - 1;
186
+ return (0, number_1.wrapNumberFunction)({ min, max, fencePosts });
187
+ }
188
+ exports.wrapIndexRangeFunction = wrapIndexRangeFunction;
169
189
  function indexRangeCheckReaderFunction(input, read = (x) => x.i) {
170
190
  const rangeCheck = indexRangeCheckFunction(input);
171
191
  return (value) => rangeCheck(read(value));
@@ -246,6 +266,54 @@ function indexRangeOverlapsIndexRangeFunction(input) {
246
266
  };
247
267
  }
248
268
  exports.indexRangeOverlapsIndexRangeFunction = indexRangeOverlapsIndexRangeFunction;
269
+ function stepsFromIndexFunction(config) {
270
+ const { range, fitToRange = false, fencePosts = true, wrapAround: defaultWrapAround = false, steps: defaultStep = 1 } = config;
271
+ const wrapNumber = wrapIndexRangeFunction(range, fencePosts);
272
+ const fitNumberFunction = fitToRange ? fitToIndexRangeFunction(range) : (x) => x; // unused if fitToRange is not true
273
+ const fn = ((startIndex, wrapAround = defaultWrapAround, steps = defaultStep) => {
274
+ let nextIndex;
275
+ if (!fitToRange && (startIndex < range.minIndex || startIndex >= range.maxIndex)) {
276
+ nextIndex = undefined; // start indexes outside the range are considered invalid, unless fitToRange is true.
277
+ }
278
+ else {
279
+ const stepIndex = startIndex + steps;
280
+ // Perform directional wrapping
281
+ if (fitToRange || wrapAround) {
282
+ if (wrapAround) {
283
+ // wrap around
284
+ nextIndex = wrapNumber(stepIndex);
285
+ }
286
+ else {
287
+ // fit to range
288
+ nextIndex = fitNumberFunction(stepIndex);
289
+ }
290
+ }
291
+ else if (stepIndex < range.minIndex || stepIndex >= range.maxIndex) {
292
+ nextIndex = undefined; // out of bounds
293
+ }
294
+ else {
295
+ nextIndex = stepIndex;
296
+ }
297
+ }
298
+ return nextIndex;
299
+ });
300
+ fn._config = { range, fitToRange, wrapAround: defaultWrapAround, steps: defaultStep };
301
+ return fn;
302
+ }
303
+ exports.stepsFromIndexFunction = stepsFromIndexFunction;
304
+ /**
305
+ * Steps to the next index in the given direction based on the number of steps to take.
306
+ *
307
+ * Starting indexes less than the minIndex are considered to not exist and will return undefined.
308
+ *
309
+ * When wrapAround is true, indexes that are larger than the max index will be used to find an index that is that many steps into the index range.
310
+ *
311
+ * For instance, an index of 5 on a range of 0 to 3 will return the index 1.
312
+ */
313
+ function stepsFromIndex(range, startIndex, step = 1, wrapAround = false) {
314
+ return stepsFromIndexFunction({ range })(startIndex, wrapAround, step);
315
+ }
316
+ exports.stepsFromIndex = stepsFromIndex;
249
317
  // MARK: Selection
250
318
  exports.isSelectedIndexDecisionFunction = (0, set_selection_1.isSelectedDecisionFunctionFactory)({ readKey: readIndexNumber });
251
319
  //# sourceMappingURL=indexed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexed.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/indexed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexed.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/indexed.ts"],"names":[],"mappings":"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"}
package/test/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.23.22](https://github.com/dereekb/dbx-components/compare/v9.23.21-dev...v9.23.22) (2023-05-29)
6
+
7
+
8
+
9
+ ## [9.23.21](https://github.com/dereekb/dbx-components/compare/v9.23.20-dev...v9.23.21) (2023-05-27)
10
+
11
+
12
+
5
13
  ## [9.23.20](https://github.com/dereekb/dbx-components/compare/v9.23.19-dev...v9.23.20) (2023-05-19)
6
14
 
7
15
 
package/test/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dereekb/util/test",
3
- "version": "9.23.20",
3
+ "version": "9.23.22",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
7
7
  "dependencies": {},
8
8
  "peerDependencies": {
9
- "@dereekb/util": "9.23.20",
9
+ "@dereekb/util": "9.23.22",
10
10
  "lodash.isequal": "^4.5.0",
11
11
  "make-error": "^1.3.0",
12
12
  "class-validator": "^0.13.2",