imng-nrsrx-client-utils 6.144.3 → 6.152.1

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.
@@ -1,8 +1,15 @@
1
1
  export function distinct(arr) {
2
2
  return arr.filter((value, index, array) => array.indexOf(value) === index);
3
3
  }
4
+ /**
5
+ * Will flatten an array of arrays into a single array
6
+ * WARNING: This will only flatten two levels of arrays.
7
+ * @param arr
8
+ * @returns
9
+ */
4
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
11
  export function flat(arr) {
12
+ //NOSONAR
6
13
  return arr.reduce((acc, val) => acc.concat(val), []);
7
14
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW5yc3J4LWNsaWVudC11dGlscy9zcmMvbGliL2FycmF5LmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFJLEdBQVE7SUFDbEMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUNELDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUsSUFBSSxDQUFJLEdBQWM7SUFDcEMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0PFQ+KGFycjogVFtdKTogVFtdIHtcbiAgcmV0dXJuIGFyci5maWx0ZXIoKHZhbHVlLCBpbmRleCwgYXJyYXkpID0+IGFycmF5LmluZGV4T2YodmFsdWUpID09PSBpbmRleCk7XG59XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIGZsYXQ8VD4oYXJyOiBUW10gfCBhbnkpOiBUW10geyAvL05PU09OQVJcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKGFjYzogVFtdLCB2YWw6IFRbXSkgPT4gYWNjLmNvbmNhdCh2YWwpLCBbXSk7XG59XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW5yc3J4LWNsaWVudC11dGlscy9zcmMvbGliL2FycmF5LmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFJLEdBQVE7SUFDbEMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUNEOzs7OztHQUtHO0FBQ0gsOERBQThEO0FBQzlELE1BQU0sVUFBVSxJQUFJLENBQUksR0FBYztJQUNwQyxTQUFTO0lBQ1QsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0PFQ+KGFycjogVFtdKTogVFtdIHtcbiAgcmV0dXJuIGFyci5maWx0ZXIoKHZhbHVlLCBpbmRleCwgYXJyYXkpID0+IGFycmF5LmluZGV4T2YodmFsdWUpID09PSBpbmRleCk7XG59XG4vKipcbiAqIFdpbGwgZmxhdHRlbiBhbiBhcnJheSBvZiBhcnJheXMgaW50byBhIHNpbmdsZSBhcnJheVxuICogV0FSTklORzogVGhpcyB3aWxsIG9ubHkgZmxhdHRlbiB0d28gbGV2ZWxzIG9mIGFycmF5cy5cbiAqIEBwYXJhbSBhcnJcbiAqIEByZXR1cm5zXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgZnVuY3Rpb24gZmxhdDxUPihhcnI6IFRbXSB8IGFueSk6IFRbXSB7XG4gIC8vTk9TT05BUlxuICByZXR1cm4gYXJyLnJlZHVjZSgoYWNjOiBUW10sIHZhbDogVFtdKSA9PiBhY2MuY29uY2F0KHZhbCksIFtdKTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- class GuidHelper {
1
+ export class GuidHelper {
2
2
  static { this.guidSegmentCriteria = `[a-f0-9]`; }
3
3
  static { this.guidRegexWithDashes = new RegExp(`${GuidHelper.guidSegmentCriteria}{8}-${GuidHelper.guidSegmentCriteria}{4}-` +
4
4
  `${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}`, 'gim'); }
@@ -13,5 +13,4 @@ class GuidHelper {
13
13
  return str;
14
14
  }
15
15
  }
16
- export { GuidHelper };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbnJzcngtY2xpZW50LXV0aWxzL3NyYy9saWIvZ3VpZC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBYSxVQUFVO2FBQ0csd0JBQW1CLEdBQUcsVUFBVSxDQUFDO2FBQ2pDLHdCQUFtQixHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixPQUFPLFVBQVUsQ0FBQyxtQkFBbUIsTUFBTTtRQUNuSSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsT0FBTyxVQUFVLENBQUMsbUJBQW1CLE9BQU8sVUFBVSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDaEcsY0FBUyxHQUFHLElBQUksQ0FBQztJQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVc7UUFDaEMsSUFBSSxDQUF5QixDQUFDO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN4RCxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNsQixHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7U0FiVSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEd1aWRIZWxwZXIge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBndWlkU2VnbWVudENyaXRlcmlhID0gYFthLWYwLTldYDtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZ3VpZFJlZ2V4V2l0aERhc2hlcyA9IG5ldyBSZWdFeHAoYCR7R3VpZEhlbHBlci5ndWlkU2VnbWVudENyaXRlcmlhfXs4fS0ke0d1aWRIZWxwZXIuZ3VpZFNlZ21lbnRDcml0ZXJpYX17NH0tYCArXG4gICAgYCR7R3VpZEhlbHBlci5ndWlkU2VnbWVudENyaXRlcmlhfXs0fS0ke0d1aWRIZWxwZXIuZ3VpZFNlZ21lbnRDcml0ZXJpYX17NH0tJHtHdWlkSGVscGVyLmd1aWRTZWdtZW50Q3JpdGVyaWF9YCwgJ2dpbScpO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBkYXNoUmVnZXggPSAvLS9nO1xuICBwdWJsaWMgc3RhdGljIG1pbmltaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcbiAgICB3aGlsZSAoKG0gPSB0aGlzLmd1aWRSZWdleFdpdGhEYXNoZXMuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xuICAgICAgbS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShlbGVtZW50LCBlbGVtZW50LnJlcGxhY2UodGhpcy5kYXNoUmVnZXgsICcnKSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxufVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbnJzcngtY2xpZW50LXV0aWxzL3NyYy9saWIvZ3VpZC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7YUFDRyx3QkFBbUIsR0FBRyxVQUFVLENBQUM7YUFDakMsd0JBQW1CLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsbUJBQW1CLE9BQU8sVUFBVSxDQUFDLG1CQUFtQixNQUFNO1FBQ25JLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixPQUFPLFVBQVUsQ0FBQyxtQkFBbUIsT0FBTyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNoRyxjQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBVztRQUNoQyxJQUFJLENBQXlCLENBQUM7UUFDOUIsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3hELENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2xCLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEd1aWRIZWxwZXIge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBndWlkU2VnbWVudENyaXRlcmlhID0gYFthLWYwLTldYDtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZ3VpZFJlZ2V4V2l0aERhc2hlcyA9IG5ldyBSZWdFeHAoYCR7R3VpZEhlbHBlci5ndWlkU2VnbWVudENyaXRlcmlhfXs4fS0ke0d1aWRIZWxwZXIuZ3VpZFNlZ21lbnRDcml0ZXJpYX17NH0tYCArXG4gICAgYCR7R3VpZEhlbHBlci5ndWlkU2VnbWVudENyaXRlcmlhfXs0fS0ke0d1aWRIZWxwZXIuZ3VpZFNlZ21lbnRDcml0ZXJpYX17NH0tJHtHdWlkSGVscGVyLmd1aWRTZWdtZW50Q3JpdGVyaWF9YCwgJ2dpbScpO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBkYXNoUmVnZXggPSAvLS9nO1xuICBwdWJsaWMgc3RhdGljIG1pbmltaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcbiAgICB3aGlsZSAoKG0gPSB0aGlzLmd1aWRSZWdleFdpdGhEYXNoZXMuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xuICAgICAgbS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShlbGVtZW50LCBlbGVtZW50LnJlcGxhY2UodGhpcy5kYXNoUmVnZXgsICcnKSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxufVxuIl19
@@ -6,6 +6,7 @@ import { isaString } from './id-type';
6
6
  **/
7
7
  // eslint-disable-next-line @typescript-eslint/ban-types
8
8
  export function normalizeRequest(payload) {
9
+ payload = { ...payload };
9
10
  for (const x in payload) {
10
11
  let val = payload[x];
11
12
  if (isaString(val)) {
@@ -18,4 +19,4 @@ export function normalizeRequest(payload) {
18
19
  }
19
20
  return payload;
20
21
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbnJzcngtY2xpZW50LXV0aWxzL3NyYy9saWIvbm9ybWFsaXplLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0Qzs7OztJQUlJO0FBRUosd0RBQXdEO0FBQ3hELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBbUIsT0FBVTtJQUMzRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRTtRQUN2QixJQUFJLEdBQUcsR0FBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFXLENBQUM7U0FDekM7UUFDRCxJQUNFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUMvQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQ25DO1lBQ0EsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQWEsQ0FBQztTQUM1QjtLQUNGO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzYVN0cmluZyB9IGZyb20gJy4vaWQtdHlwZSc7XG4vKipcbiAqICAgU3VtbWFyeTogVGhpcyB3aWxsIHVwZGF0ZSBhbiBvYmplY3QgdG8gbWFrZSBhbGwgcHJvcGVydGllcyB3aXRoIGVtcHR5IHN0cmluZyB2YWx1ZXMgaGF2ZSBudWxsIHZhbHVlcyBpbnN0ZWFkLlxuICogQHVzYWdlTm90ZXNcbiAqIE9ubHkgdXNlIHRoaXMgbWV0aG9kIHdpdGggcGxhaW4gb2JqZWN0cy5cbiAqKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXF1ZXN0PFQgZXh0ZW5kcyBvYmplY3Q+KHBheWxvYWQ6IFQpOiBUIHtcbiAgZm9yIChjb25zdCB4IGluIHBheWxvYWQpIHtcbiAgICBsZXQgdmFsOiB1bmtub3duID0gcGF5bG9hZFt4XTtcbiAgICBpZiAoaXNhU3RyaW5nKHZhbCkpIHtcbiAgICAgIHBheWxvYWRbeF0gPSB2YWwgPSB2YWw/LnRyaW0oKSBhcyBuZXZlcjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKGlzYVN0cmluZyh2YWwpICYmICF2YWwubGVuZ3RoKSB8fFxuICAgICAgKEFycmF5LmlzQXJyYXkodmFsKSAmJiAhdmFsLmxlbmd0aClcbiAgICApIHtcbiAgICAgIHBheWxvYWRbeF0gPSBudWxsIGFzIG5ldmVyO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGF5bG9hZDtcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctbnJzcngtY2xpZW50LXV0aWxzL3NyYy9saWIvbm9ybWFsaXplLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0Qzs7OztJQUlJO0FBRUosd0RBQXdEO0FBQ3hELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBbUIsT0FBVTtJQUMzRCxPQUFPLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFO1FBQ3ZCLElBQUksR0FBRyxHQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQVcsQ0FBQztTQUN6QztRQUNELElBQ0UsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQy9CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFDbkM7WUFDQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBYSxDQUFDO1NBQzVCO0tBQ0Y7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNhU3RyaW5nIH0gZnJvbSAnLi9pZC10eXBlJztcbi8qKlxuICogICBTdW1tYXJ5OiBUaGlzIHdpbGwgdXBkYXRlIGFuIG9iamVjdCB0byBtYWtlIGFsbCBwcm9wZXJ0aWVzIHdpdGggZW1wdHkgc3RyaW5nIHZhbHVlcyBoYXZlIG51bGwgdmFsdWVzIGluc3RlYWQuXG4gKiBAdXNhZ2VOb3Rlc1xuICogT25seSB1c2UgdGhpcyBtZXRob2Qgd2l0aCBwbGFpbiBvYmplY3RzLlxuICoqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlcXVlc3Q8VCBleHRlbmRzIG9iamVjdD4ocGF5bG9hZDogVCk6IFQge1xuICBwYXlsb2FkID0geyAuLi5wYXlsb2FkIH07XG4gIGZvciAoY29uc3QgeCBpbiBwYXlsb2FkKSB7XG4gICAgbGV0IHZhbDogdW5rbm93biA9IHBheWxvYWRbeF07XG4gICAgaWYgKGlzYVN0cmluZyh2YWwpKSB7XG4gICAgICBwYXlsb2FkW3hdID0gdmFsID0gdmFsPy50cmltKCkgYXMgbmV2ZXI7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChpc2FTdHJpbmcodmFsKSAmJiAhdmFsLmxlbmd0aCkgfHxcbiAgICAgIChBcnJheS5pc0FycmF5KHZhbCkgJiYgIXZhbC5sZW5ndGgpXG4gICAgKSB7XG4gICAgICBwYXlsb2FkW3hdID0gbnVsbCBhcyBuZXZlcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBheWxvYWQ7XG59XG4iXX0=
@@ -1,18 +1,42 @@
1
+ import { normalizeRequest } from './normalize-request';
2
+ import { toDateOnly } from './to-date-only';
1
3
  export class NrsrxBaseApiClientService {
2
4
  constructor(http) {
3
5
  this.http = http;
4
- this.url = '';
6
+ /**
7
+ * A collection of strings that represent date only property names
8
+ */
9
+ this.dateOnlyPropertyNames = [];
5
10
  }
6
- // Used to insert entities on NRSRx based API endpoints
11
+ /**
12
+ * Calls the insert (POST) endpoint on a NRSRx based API endpoint
13
+ * @param payload
14
+ * @returns Observable<TENTITY>
15
+ */
7
16
  post(payload) {
8
- return this.http.post(payload.id ? `${this.url}?id=${payload.id}` : this.url, payload);
17
+ return this.http.post(payload.id ? `${this.url}?id=${payload.id}` : this.url, this.formatEntity(payload));
9
18
  }
10
- // Used to update entities on NRSRx based API endpoints
19
+ /**
20
+ * Calls the update (PUT) endpoint on a NRSRx based API endpoint
21
+ * @param payload
22
+ * @returns Observable<TENTITY>
23
+ */
11
24
  put(payload) {
12
- return this.http.put(`${this.url}?id=${payload.id}`, payload);
25
+ return this.http.put(`${this.url}?id=${payload.id}`, this.formatEntity(payload));
13
26
  }
27
+ /**
28
+ * Calls the delete endpoint on a NRSRx based API endpoint
29
+ * @param payload
30
+ * @returns Observable<TENTITY>
31
+ */
14
32
  delete(payload) {
15
33
  return this.http.delete(`${this.url}?id=${payload.id}`);
16
34
  }
35
+ formatEntity(entity) {
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ const anyEntity = normalizeRequest(entity); //NOSONAR
38
+ this.dateOnlyPropertyNames.forEach((propertyName) => (anyEntity[propertyName] = toDateOnly(anyEntity[propertyName])));
39
+ return anyEntity;
40
+ }
17
41
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnJzcngtYXBpLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1ucnNyeC1jbGllbnQtdXRpbHMvc3JjL2xpYi9ucnNyeC1hcGktY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBK0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUR4QyxRQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2tDLENBQUM7SUFDbkQsdURBQXVEO0lBQ2hELElBQUksQ0FBQyxPQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQ3RELE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELHVEQUF1RDtJQUNoRCxHQUFHLENBQUMsT0FBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZFR5cGUgfSBmcm9tICcuL2lkLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgTnJzcnhCYXNlQXBpQ2xpZW50U2VydmljZTxUIGV4dGVuZHMgeyBpZD86IElkVHlwZSB8IG51bGwgfT4ge1xuICBwdWJsaWMgdXJsID0gJyc7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuICAvLyBVc2VkIHRvIGluc2VydCBlbnRpdGllcyBvbiBOUlNSeCBiYXNlZCBBUEkgZW5kcG9pbnRzXG4gIHB1YmxpYyBwb3N0KHBheWxvYWQ6IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oXG4gICAgICBwYXlsb2FkLmlkID8gYCR7dGhpcy51cmx9P2lkPSR7cGF5bG9hZC5pZH1gIDogdGhpcy51cmwsXG4gICAgICBwYXlsb2FkLFxuICAgICk7XG4gIH1cblxuICAvLyBVc2VkIHRvIHVwZGF0ZSBlbnRpdGllcyBvbiBOUlNSeCBiYXNlZCBBUEkgZW5kcG9pbnRzXG4gIHB1YmxpYyBwdXQocGF5bG9hZDogVCk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KGAke3RoaXMudXJsfT9pZD0ke3BheWxvYWQuaWR9YCwgcGF5bG9hZCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKHBheWxvYWQ6IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxUPihgJHt0aGlzLnVybH0/aWQ9JHtwYXlsb2FkLmlkfWApO1xuICB9XG59XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnJzcngtYXBpLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1ucnNyeC1jbGllbnQtdXRpbHMvc3JjL2xpYi9ucnNyeC1hcGktY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxNQUFNLE9BQWdCLHlCQUF5QjtJQWE3QyxZQUErQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBTC9DOztXQUVHO1FBQ0ksMEJBQXFCLEdBQWEsRUFBRSxDQUFDO0lBRU0sQ0FBQztJQUVuRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLE9BQWdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQzNCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsQ0FBQyxPQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsT0FBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBVSxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFlO1FBQ2pDLDhEQUE4RDtRQUM5RCxNQUFNLFNBQVMsR0FBUSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FDaEMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUNmLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNsRSxDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElkVHlwZSB9IGZyb20gJy4vaWQtdHlwZSc7XG5pbXBvcnQgeyBub3JtYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi9ub3JtYWxpemUtcmVxdWVzdCc7XG5pbXBvcnQgeyB0b0RhdGVPbmx5IH0gZnJvbSAnLi90by1kYXRlLW9ubHknO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTnJzcnhCYXNlQXBpQ2xpZW50U2VydmljZTxcbiAgVEVOVElUWSBleHRlbmRzIHsgaWQ/OiBJZFR5cGUgfCBudWxsIH0sXG4+IHtcbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIEFQSSBlbmRwb2ludCB0byBjYWxsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY29sbGVjdGlvbiBvZiBzdHJpbmdzIHRoYXQgcmVwcmVzZW50IGRhdGUgb25seSBwcm9wZXJ0eSBuYW1lc1xuICAgKi9cbiAgcHVibGljIGRhdGVPbmx5UHJvcGVydHlOYW1lczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCkge31cblxuICAvKipcbiAgICogQ2FsbHMgdGhlIGluc2VydCAoUE9TVCkgZW5kcG9pbnQgb24gYSBOUlNSeCBiYXNlZCBBUEkgZW5kcG9pbnRcbiAgICogQHBhcmFtIHBheWxvYWRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxURU5USVRZPlxuICAgKi9cbiAgcHVibGljIHBvc3QocGF5bG9hZDogVEVOVElUWSk6IE9ic2VydmFibGU8VEVOVElUWT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxURU5USVRZPihcbiAgICAgIHBheWxvYWQuaWQgPyBgJHt0aGlzLnVybH0/aWQ9JHtwYXlsb2FkLmlkfWAgOiB0aGlzLnVybCxcbiAgICAgIHRoaXMuZm9ybWF0RW50aXR5KHBheWxvYWQpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgdGhlIHVwZGF0ZSAoUFVUKSBlbmRwb2ludCBvbiBhIE5SU1J4IGJhc2VkIEFQSSBlbmRwb2ludFxuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFRFTlRJVFk+XG4gICAqL1xuICBwdWJsaWMgcHV0KHBheWxvYWQ6IFRFTlRJVFkpOiBPYnNlcnZhYmxlPFRFTlRJVFk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxURU5USVRZPihcbiAgICAgIGAke3RoaXMudXJsfT9pZD0ke3BheWxvYWQuaWR9YCxcbiAgICAgIHRoaXMuZm9ybWF0RW50aXR5KHBheWxvYWQpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgdGhlIGRlbGV0ZSBlbmRwb2ludCBvbiBhIE5SU1J4IGJhc2VkIEFQSSBlbmRwb2ludFxuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFRFTlRJVFk+XG4gICAqL1xuICBwdWJsaWMgZGVsZXRlKHBheWxvYWQ6IFRFTlRJVFkpOiBPYnNlcnZhYmxlPFRFTlRJVFk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxURU5USVRZPihgJHt0aGlzLnVybH0/aWQ9JHtwYXlsb2FkLmlkfWApO1xuICB9XG5cbiAgcHVibGljIGZvcm1hdEVudGl0eShlbnRpdHk6IFRFTlRJVFkpOiBURU5USVRZIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IGFueUVudGl0eTogYW55ID0gbm9ybWFsaXplUmVxdWVzdChlbnRpdHkpOyAvL05PU09OQVJcbiAgICB0aGlzLmRhdGVPbmx5UHJvcGVydHlOYW1lcy5mb3JFYWNoKFxuICAgICAgKHByb3BlcnR5TmFtZSkgPT5cbiAgICAgICAgKGFueUVudGl0eVtwcm9wZXJ0eU5hbWVdID0gdG9EYXRlT25seShhbnlFbnRpdHlbcHJvcGVydHlOYW1lXSkpLFxuICAgICk7XG4gICAgcmV0dXJuIGFueUVudGl0eTtcbiAgfVxufVxuIl19
@@ -0,0 +1,4 @@
1
+ export function toDateOnly(date) {
2
+ return date?.toISOString().split('T')[0];
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tZGF0ZS1vbmx5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW5yc3J4LWNsaWVudC11dGlscy9zcmMvbGliL3RvLWRhdGUtb25seS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVc7SUFDcEMsT0FBTyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdG9EYXRlT25seShkYXRlPzogRGF0ZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRlPy50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XG59XG4iXX0=
@@ -1,8 +1,15 @@
1
1
  function distinct(arr) {
2
2
  return arr.filter((value, index, array) => array.indexOf(value) === index);
3
3
  }
4
+ /**
5
+ * Will flatten an array of arrays into a single array
6
+ * WARNING: This will only flatten two levels of arrays.
7
+ * @param arr
8
+ * @returns
9
+ */
4
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
11
  function flat(arr) {
12
+ //NOSONAR
6
13
  return arr.reduce((acc, val) => acc.concat(val), []);
7
14
  }
8
15
 
@@ -127,6 +134,7 @@ function isNullOrUndefined(obj) {
127
134
  **/
128
135
  // eslint-disable-next-line @typescript-eslint/ban-types
129
136
  function normalizeRequest(payload) {
137
+ payload = { ...payload };
130
138
  for (const x in payload) {
131
139
  let val = payload[x];
132
140
  if (isaString(val)) {
@@ -140,22 +148,48 @@ function normalizeRequest(payload) {
140
148
  return payload;
141
149
  }
142
150
 
151
+ function toDateOnly(date) {
152
+ return date?.toISOString().split('T')[0];
153
+ }
154
+
143
155
  class NrsrxBaseApiClientService {
144
156
  constructor(http) {
145
157
  this.http = http;
146
- this.url = '';
158
+ /**
159
+ * A collection of strings that represent date only property names
160
+ */
161
+ this.dateOnlyPropertyNames = [];
147
162
  }
148
- // Used to insert entities on NRSRx based API endpoints
163
+ /**
164
+ * Calls the insert (POST) endpoint on a NRSRx based API endpoint
165
+ * @param payload
166
+ * @returns Observable<TENTITY>
167
+ */
149
168
  post(payload) {
150
- return this.http.post(payload.id ? `${this.url}?id=${payload.id}` : this.url, payload);
169
+ return this.http.post(payload.id ? `${this.url}?id=${payload.id}` : this.url, this.formatEntity(payload));
151
170
  }
152
- // Used to update entities on NRSRx based API endpoints
171
+ /**
172
+ * Calls the update (PUT) endpoint on a NRSRx based API endpoint
173
+ * @param payload
174
+ * @returns Observable<TENTITY>
175
+ */
153
176
  put(payload) {
154
- return this.http.put(`${this.url}?id=${payload.id}`, payload);
177
+ return this.http.put(`${this.url}?id=${payload.id}`, this.formatEntity(payload));
155
178
  }
179
+ /**
180
+ * Calls the delete endpoint on a NRSRx based API endpoint
181
+ * @param payload
182
+ * @returns Observable<TENTITY>
183
+ */
156
184
  delete(payload) {
157
185
  return this.http.delete(`${this.url}?id=${payload.id}`);
158
186
  }
187
+ formatEntity(entity) {
188
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
189
+ const anyEntity = normalizeRequest(entity); //NOSONAR
190
+ this.dateOnlyPropertyNames.forEach((propertyName) => (anyEntity[propertyName] = toDateOnly(anyEntity[propertyName])));
191
+ return anyEntity;
192
+ }
159
193
  }
160
194
 
161
195
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"imng-nrsrx-client-utils.mjs","sources":["../../../../libs/imng-nrsrx-client-utils/src/lib/array.helper.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/array.extensions.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/num-pad.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/date.extensions.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/default-proxy-settings.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-enum-display-text.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-related-field.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-related-value.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/guid.helper.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/id-type.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/is-null-or-undefined.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/normalize-request.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/nrsrx-api-client.ts","../../../../libs/imng-nrsrx-client-utils/src/imng-nrsrx-client-utils.ts"],"sourcesContent":["export function distinct<T>(arr: T[]): T[] {\n return arr.filter((value, index, array) => array.indexOf(value) === index);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function flat<T>(arr: T[] | any): T[] { //NOSONAR\n return arr.reduce((acc: T[], val: T[]) => acc.concat(val), []);\n}\n","import { distinct, flat } from './array.helper';\n\ndeclare global {\n export interface Array<T> {\n distinct(): T[];\n flat(): T;\n }\n}\n\nif (!Array.prototype.distinct) {\n Array.prototype.distinct = function <T>(this: T[]): T[] { //NOSONAR\n return distinct(this);\n };\n}\n\nif (!Array.prototype.flat) {\n Array.prototype.flat = function <T>(this: T[][] | T[]): T[] { //NOSONAR\n return flat(this);\n };\n}\nexport { };\n","export function numPad(x: number, maxLength = 2) {\n return x.toString().padStart(maxLength, '0');\n}\n","import { numPad } from './num-pad';\n\ndeclare global {\n export interface Date {\n toShortDateString(): string;\n weekOfYear(): number;\n toLocalTimeStamp(): string;\n }\n}\n\nexport const shortDateOptions: Intl.DateTimeFormatOptions = {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n};\nexport const MILLI_SECS_PER_DAY = 86400000;\nexport const MILLI_SECS_PER_SEC = 60000;\nexport const DAYS_PER_WEEK = 7;\nif (!Date.prototype.toShortDateString) {\n //NOSONAR\n Date.prototype.toShortDateString = function (this: Date): string { //NOSONAR\n return toShortDateString(this);\n };\n}\n\nif (!Date.prototype.weekOfYear) {\n //NOSONAR\n // tslint:disable-next-line: space-before-function-paren\n Date.prototype.weekOfYear = function (this: Date): number { //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n return weekOfYear(this);\n };\n}\nexport { };\n\nexport function weekOfYear(dt: Date): number {\n const onejan = new Date(dt.getFullYear(), 0, 1);\n return Math.ceil(((dt.getTime() - onejan.getTime()) / MILLI_SECS_PER_DAY + onejan.getDay() + 1) / DAYS_PER_WEEK);\n}\n\n// tslint:disable-next-line: space-before-function-paren\nexport function toLocalTimeStamp(dt: Date = new Date()): string {\n return `${dt.getFullYear()}${numPad(dt.getMonth() + 1)}${numPad(dt.getDate())}${numPad(dt.getHours())}${numPad(dt.getMinutes())}${numPad(dt.getSeconds())}-${numPad(dt.getMilliseconds(), 3)}`;\n}\n\n\n// tslint:disable-next-line: space-before-function-paren\nexport function toShortDateString(dt: Date): string {\n const locale =\n navigator.language || (navigator.languages && navigator.languages.length > 0) ? navigator.languages[0] : 'en-US';\n\n return dt?.toLocaleDateString(locale, shortDateOptions);\n}\n","\nexport const defaultProxySettings = {\n\n secure: true,\n changeOrigin: true,\n onProxyRes: (proxyRes: { headers: { [x: string]: string; }; }) =>\n proxyRes.headers['Cache-Control'] = `max-age=2590000, public`\n};\nexport const defaultProxyDebugSettings =\n{\n ...defaultProxySettings,\n logLevel: 'debug',\n};\n","export function getEnumDisplayText(\n values: { key: number; name: string; displayText: string }[],\n value: string | number,\n): string | undefined {\n return values.find((t) => t.name === value || t.key === value)?.displayText;\n}\n","export function getRelatedField(options: IRelatedFieldOptions): string {\n return options.segments.join(options.seperator || '/');\n}\nexport interface IRelatedFieldOptions {\n seperator?: string;\n segments: string[];\n}\n\nexport function isRelatedFieldOptions(\n source: string | IRelatedFieldOptions,\n): source is IRelatedFieldOptions {\n return !!(source as IRelatedFieldOptions).segments;\n}\n","export function getRelatedValue<ENTITY>(\n obj: ENTITY,\n ...segments: string[]\n): // eslint-disable-next-line @typescript-eslint/no-explicit-any\nany {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = obj; //NOSONAR\n segments.forEach((segment) => {\n if (result) {\n result = result[segment];\n }\n });\n return result;\n}\n","export class GuidHelper {\n private static readonly guidSegmentCriteria = `[a-f0-9]`;\n private static readonly guidRegexWithDashes = new RegExp(`${GuidHelper.guidSegmentCriteria}{8}-${GuidHelper.guidSegmentCriteria}{4}-` +\n `${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}`, 'gim');\n private static readonly dashRegex = /-/g;\n public static minimize(str: string): string {\n let m: RegExpExecArray | null;\n while ((m = this.guidRegexWithDashes.exec(str)) !== null) {\n m.forEach(element => {\n str = str.replace(element, element.replace(this.dashRegex, ''));\n });\n }\n return str;\n }\n}\n","export type IdType = number | string | Date;\n\nexport function isaNumber(value: unknown): value is number {\n const type = typeof value;\n return type === 'number' || type === 'bigint';\n}\n\nexport function isaString(value: unknown): value is string {\n return typeof value === 'string';\n}\nexport function isaDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n","export function isNullOrUndefined(obj: unknown): boolean {\n return obj === undefined || obj === null;\n}\n","import { isaString } from './id-type';\n/**\n * Summary: This will update an object to make all properties with empty string values have null values instead.\n * @usageNotes\n * Only use this method with plain objects.\n **/\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function normalizeRequest<T extends object>(payload: T): T {\n for (const x in payload) {\n let val: unknown = payload[x];\n if (isaString(val)) {\n payload[x] = val = val?.trim() as never;\n }\n if (\n (isaString(val) && !val.length) ||\n (Array.isArray(val) && !val.length)\n ) {\n payload[x] = null as never;\n }\n }\n return payload;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IdType } from './id-type';\n\nexport class NrsrxBaseApiClientService<T extends { id?: IdType | null }> {\n public url = '';\n constructor(protected readonly http: HttpClient) {}\n // Used to insert entities on NRSRx based API endpoints\n public post(payload: T): Observable<T> {\n return this.http.post<T>(\n payload.id ? `${this.url}?id=${payload.id}` : this.url,\n payload,\n );\n }\n\n // Used to update entities on NRSRx based API endpoints\n public put(payload: T): Observable<T> {\n return this.http.put<T>(`${this.url}?id=${payload.id}`, payload);\n }\n\n public delete(payload: T): Observable<T> {\n return this.http.delete<T>(`${this.url}?id=${payload.id}`);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imng-nrsrx-client-utils.mjs","sources":["../../../../libs/imng-nrsrx-client-utils/src/lib/array.helper.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/array.extensions.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/num-pad.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/date.extensions.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/default-proxy-settings.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-enum-display-text.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-related-field.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/get-related-value.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/guid.helper.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/id-type.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/is-null-or-undefined.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/normalize-request.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/to-date-only.ts","../../../../libs/imng-nrsrx-client-utils/src/lib/nrsrx-api-client.ts","../../../../libs/imng-nrsrx-client-utils/src/imng-nrsrx-client-utils.ts"],"sourcesContent":["export function distinct<T>(arr: T[]): T[] {\n return arr.filter((value, index, array) => array.indexOf(value) === index);\n}\n/**\n * Will flatten an array of arrays into a single array\n * WARNING: This will only flatten two levels of arrays.\n * @param arr\n * @returns\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function flat<T>(arr: T[] | any): T[] {\n //NOSONAR\n return arr.reduce((acc: T[], val: T[]) => acc.concat(val), []);\n}\n","import { distinct, flat } from './array.helper';\n\ndeclare global {\n export interface Array<T> {\n distinct(): T[];\n flat(): T;\n }\n}\n\nif (!Array.prototype.distinct) {\n Array.prototype.distinct = function <T>(this: T[]): T[] { //NOSONAR\n return distinct(this);\n };\n}\n\nif (!Array.prototype.flat) {\n Array.prototype.flat = function <T>(this: T[][] | T[]): T[] { //NOSONAR\n return flat(this);\n };\n}\nexport { };\n","export function numPad(x: number, maxLength = 2) {\n return x.toString().padStart(maxLength, '0');\n}\n","import { numPad } from './num-pad';\n\ndeclare global {\n export interface Date {\n toShortDateString(): string;\n weekOfYear(): number;\n toLocalTimeStamp(): string;\n }\n}\n\nexport const shortDateOptions: Intl.DateTimeFormatOptions = {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n};\nexport const MILLI_SECS_PER_DAY = 86400000;\nexport const MILLI_SECS_PER_SEC = 60000;\nexport const DAYS_PER_WEEK = 7;\nif (!Date.prototype.toShortDateString) {\n //NOSONAR\n Date.prototype.toShortDateString = function (this: Date): string { //NOSONAR\n return toShortDateString(this);\n };\n}\n\nif (!Date.prototype.weekOfYear) {\n //NOSONAR\n // tslint:disable-next-line: space-before-function-paren\n Date.prototype.weekOfYear = function (this: Date): number { //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n return weekOfYear(this);\n };\n}\nexport { };\n\nexport function weekOfYear(dt: Date): number {\n const onejan = new Date(dt.getFullYear(), 0, 1);\n return Math.ceil(((dt.getTime() - onejan.getTime()) / MILLI_SECS_PER_DAY + onejan.getDay() + 1) / DAYS_PER_WEEK);\n}\n\n// tslint:disable-next-line: space-before-function-paren\nexport function toLocalTimeStamp(dt: Date = new Date()): string {\n return `${dt.getFullYear()}${numPad(dt.getMonth() + 1)}${numPad(dt.getDate())}${numPad(dt.getHours())}${numPad(dt.getMinutes())}${numPad(dt.getSeconds())}-${numPad(dt.getMilliseconds(), 3)}`;\n}\n\n\n// tslint:disable-next-line: space-before-function-paren\nexport function toShortDateString(dt: Date): string {\n const locale =\n navigator.language || (navigator.languages && navigator.languages.length > 0) ? navigator.languages[0] : 'en-US';\n\n return dt?.toLocaleDateString(locale, shortDateOptions);\n}\n","\nexport const defaultProxySettings = {\n\n secure: true,\n changeOrigin: true,\n onProxyRes: (proxyRes: { headers: { [x: string]: string; }; }) =>\n proxyRes.headers['Cache-Control'] = `max-age=2590000, public`\n};\nexport const defaultProxyDebugSettings =\n{\n ...defaultProxySettings,\n logLevel: 'debug',\n};\n","export function getEnumDisplayText(\n values: { key: number; name: string; displayText: string }[],\n value: string | number,\n): string | undefined {\n return values.find((t) => t.name === value || t.key === value)?.displayText;\n}\n","export function getRelatedField(options: IRelatedFieldOptions): string {\n return options.segments.join(options.seperator || '/');\n}\nexport interface IRelatedFieldOptions {\n seperator?: string;\n segments: string[];\n}\n\nexport function isRelatedFieldOptions(\n source: string | IRelatedFieldOptions,\n): source is IRelatedFieldOptions {\n return !!(source as IRelatedFieldOptions).segments;\n}\n","export function getRelatedValue<ENTITY>(\n obj: ENTITY,\n ...segments: string[]\n): // eslint-disable-next-line @typescript-eslint/no-explicit-any\nany {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = obj; //NOSONAR\n segments.forEach((segment) => {\n if (result) {\n result = result[segment];\n }\n });\n return result;\n}\n","export class GuidHelper {\n private static readonly guidSegmentCriteria = `[a-f0-9]`;\n private static readonly guidRegexWithDashes = new RegExp(`${GuidHelper.guidSegmentCriteria}{8}-${GuidHelper.guidSegmentCriteria}{4}-` +\n `${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}{4}-${GuidHelper.guidSegmentCriteria}`, 'gim');\n private static readonly dashRegex = /-/g;\n public static minimize(str: string): string {\n let m: RegExpExecArray | null;\n while ((m = this.guidRegexWithDashes.exec(str)) !== null) {\n m.forEach(element => {\n str = str.replace(element, element.replace(this.dashRegex, ''));\n });\n }\n return str;\n }\n}\n","export type IdType = number | string | Date;\n\nexport function isaNumber(value: unknown): value is number {\n const type = typeof value;\n return type === 'number' || type === 'bigint';\n}\n\nexport function isaString(value: unknown): value is string {\n return typeof value === 'string';\n}\nexport function isaDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n","export function isNullOrUndefined(obj: unknown): boolean {\n return obj === undefined || obj === null;\n}\n","import { isaString } from './id-type';\n/**\n * Summary: This will update an object to make all properties with empty string values have null values instead.\n * @usageNotes\n * Only use this method with plain objects.\n **/\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function normalizeRequest<T extends object>(payload: T): T {\n payload = { ...payload };\n for (const x in payload) {\n let val: unknown = payload[x];\n if (isaString(val)) {\n payload[x] = val = val?.trim() as never;\n }\n if (\n (isaString(val) && !val.length) ||\n (Array.isArray(val) && !val.length)\n ) {\n payload[x] = null as never;\n }\n }\n return payload;\n}\n","export function toDateOnly(date?: Date): string | undefined {\n return date?.toISOString().split('T')[0];\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IdType } from './id-type';\nimport { normalizeRequest } from './normalize-request';\nimport { toDateOnly } from './to-date-only';\n\nexport abstract class NrsrxBaseApiClientService<\n TENTITY extends { id?: IdType | null },\n> {\n /**\n * The URL of the API endpoint to call\n */\n public abstract url: string;\n\n /**\n * A collection of strings that represent date only property names\n */\n public dateOnlyPropertyNames: string[] = [];\n\n constructor(protected readonly http: HttpClient) {}\n\n /**\n * Calls the insert (POST) endpoint on a NRSRx based API endpoint\n * @param payload\n * @returns Observable<TENTITY>\n */\n public post(payload: TENTITY): Observable<TENTITY> {\n return this.http.post<TENTITY>(\n payload.id ? `${this.url}?id=${payload.id}` : this.url,\n this.formatEntity(payload),\n );\n }\n\n /**\n * Calls the update (PUT) endpoint on a NRSRx based API endpoint\n * @param payload\n * @returns Observable<TENTITY>\n */\n public put(payload: TENTITY): Observable<TENTITY> {\n return this.http.put<TENTITY>(\n `${this.url}?id=${payload.id}`,\n this.formatEntity(payload),\n );\n }\n\n /**\n * Calls the delete endpoint on a NRSRx based API endpoint\n * @param payload\n * @returns Observable<TENTITY>\n */\n public delete(payload: TENTITY): Observable<TENTITY> {\n return this.http.delete<TENTITY>(`${this.url}?id=${payload.id}`);\n }\n\n public formatEntity(entity: TENTITY): TENTITY {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const anyEntity: any = normalizeRequest(entity); //NOSONAR\n this.dateOnlyPropertyNames.forEach(\n (propertyName) =>\n (anyEntity[propertyName] = toDateOnly(anyEntity[propertyName])),\n );\n return anyEntity;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAM,SAAU,QAAQ,CAAI,GAAQ,EAAA;IAClC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AAC7E,CAAC;AACD;;;;;AAKG;AACH;AACM,SAAU,IAAI,CAAI,GAAc,EAAA;;IAEpC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,GAAQ,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACjE;;ACJA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC7B,IAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAA;AACzB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,KAAC,CAAC;AACH,CAAA;AAED,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;AACzB,IAAA,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,YAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,KAAC,CAAC;AACH;;SCnBe,MAAM,CAAC,CAAS,EAAE,SAAS,GAAG,CAAC,EAAA;IAC7C,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC/C;;ACQa,MAAA,gBAAgB,GAA+B;AAC1D,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,IAAI,EAAE,SAAS;EACf;AACK,MAAM,kBAAkB,GAAG,SAAS;AACpC,MAAM,kBAAkB,GAAG,MAAM;AACjC,MAAM,aAAa,GAAG,EAAE;AAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;;AAErC,IAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,YAAA;AACjC,QAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,KAAC,CAAC;AACH,CAAA;AAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;;;AAG9B,IAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,YAAA;;AAE1B,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,KAAC,CAAC;AACH,CAAA;AAGK,SAAU,UAAU,CAAC,EAAQ,EAAA;AACjC,IAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC;AACnH,CAAC;AAED;SACgB,gBAAgB,CAAC,EAAW,GAAA,IAAI,IAAI,EAAE,EAAA;IACpD,OAAO,CAAA,EAAG,EAAE,CAAC,WAAW,EAAE,CAAG,EAAA,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAG,EAAA,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAG,EAAA,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA,EAAG,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAA,EAAG,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAA,CAAE,CAAC;AACjM,CAAC;AAGD;AACM,SAAU,iBAAiB,CAAC,EAAQ,EAAA;AACxC,IAAA,MAAM,MAAM,GACV,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAEnH,OAAO,EAAE,EAAE,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAC1D;;ACnDa,MAAA,oBAAoB,GAAG;AAElC,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,UAAU,EAAE,CAAC,QAAgD,KAC3D,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAyB,uBAAA,CAAA;EAC/D;AACW,MAAA,yBAAyB,GACtC;AACE,IAAA,GAAG,oBAAoB;AACvB,IAAA,QAAQ,EAAE,OAAO;;;ACXH,SAAA,kBAAkB,CAChC,MAA4D,EAC5D,KAAsB,EAAA;IAEtB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,EAAE,WAAW,CAAC;AAC9E;;ACLM,SAAU,eAAe,CAAC,OAA6B,EAAA;AAC3D,IAAA,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;AACzD,CAAC;AAMK,SAAU,qBAAqB,CACnC,MAAqC,EAAA;AAErC,IAAA,OAAO,CAAC,CAAE,MAA+B,CAAC,QAAQ,CAAC;AACrD;;SCZgB,eAAe,CAC7B,GAAW,EACX,GAAG,QAAkB,EAAA;;AAIrB,IAAA,IAAI,MAAM,GAAQ,GAAG,CAAC;AACtB,IAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAC3B,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1B,SAAA;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB;;MCba,UAAU,CAAA;aACG,IAAmB,CAAA,mBAAA,GAAG,UAAU,CAAC,EAAA;AACjC,IAAA,SAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,MAAM,CAAC,CAAG,EAAA,UAAU,CAAC,mBAAmB,CAAO,IAAA,EAAA,UAAU,CAAC,mBAAmB,CAAM,IAAA,CAAA;AACnI,QAAA,CAAA,EAAG,UAAU,CAAC,mBAAmB,CAAA,IAAA,EAAO,UAAU,CAAC,mBAAmB,CAAO,IAAA,EAAA,UAAU,CAAC,mBAAmB,CAAA,CAAE,EAAE,KAAK,CAAC,CAAC,EAAA;aAChG,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,EAAA;IAClC,OAAO,QAAQ,CAAC,GAAW,EAAA;AAChC,QAAA,IAAI,CAAyB,CAAC;AAC9B,QAAA,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE;AACxD,YAAA,CAAC,CAAC,OAAO,CAAC,OAAO,IAAG;AAClB,gBAAA,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;;;ACXG,SAAU,SAAS,CAAC,KAAc,EAAA;AACtC,IAAA,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;AAC1B,IAAA,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC;AAChD,CAAC;AAEK,SAAU,SAAS,CAAC,KAAc,EAAA;AACtC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AACK,SAAU,OAAO,CAAC,KAAc,EAAA;IACpC,OAAO,KAAK,YAAY,IAAI,CAAC;AAC/B;;ACZM,SAAU,iBAAiB,CAAC,GAAY,EAAA;AAC5C,IAAA,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C;;ACDA;;;;AAII;AAEJ;AACM,SAAU,gBAAgB,CAAmB,OAAU,EAAA;AAC3D,IAAA,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;AACzB,IAAA,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;AACvB,QAAA,IAAI,GAAG,GAAY,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,EAAW,CAAC;AACzC,SAAA;QACD,IACE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AAC9B,aAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EACnC;AACA,YAAA,OAAO,CAAC,CAAC,CAAC,GAAG,IAAa,CAAC;AAC5B,SAAA;AACF,KAAA;AACD,IAAA,OAAO,OAAO,CAAC;AACjB;;ACvBM,SAAU,UAAU,CAAC,IAAW,EAAA;AACpC,IAAA,OAAO,IAAI,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C;;MCIsB,yBAAyB,CAAA;AAa7C,IAAA,WAAA,CAA+B,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAL/C;;AAEG;QACI,IAAqB,CAAA,qBAAA,GAAa,EAAE,CAAC;KAEO;AAEnD;;;;AAIG;AACI,IAAA,IAAI,CAAC,OAAgB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,OAAO,CAAC,EAAE,GAAG,CAAG,EAAA,IAAI,CAAC,GAAG,CAAA,IAAA,EAAO,OAAO,CAAC,EAAE,CAAE,CAAA,GAAG,IAAI,CAAC,GAAG,EACtD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAC3B,CAAC;KACH;AAED;;;;AAIG;AACI,IAAA,GAAG,CAAC,OAAgB,EAAA;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,IAAA,EAAO,OAAO,CAAC,EAAE,CAAE,CAAA,EAC9B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAC3B,CAAC;KACH;AAED;;;;AAIG;AACI,IAAA,MAAM,CAAC,OAAgB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAU,CAAG,EAAA,IAAI,CAAC,GAAG,OAAO,OAAO,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAEM,IAAA,YAAY,CAAC,MAAe,EAAA;;QAEjC,MAAM,SAAS,GAAQ,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAChC,CAAC,YAAY,MACV,SAAS,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAClE,CAAC;AACF,QAAA,OAAO,SAAS,CAAC;KAClB;AACF;;AC/DD;;AAEG;;;;"}
@@ -1,2 +1,8 @@
1
1
  export declare function distinct<T>(arr: T[]): T[];
2
+ /**
3
+ * Will flatten an array of arrays into a single array
4
+ * WARNING: This will only flatten two levels of arrays.
5
+ * @param arr
6
+ * @returns
7
+ */
2
8
  export declare function flat<T>(arr: T[] | any): T[];
@@ -1,13 +1,36 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { Observable } from 'rxjs';
3
3
  import { IdType } from './id-type';
4
- export declare class NrsrxBaseApiClientService<T extends {
4
+ export declare abstract class NrsrxBaseApiClientService<TENTITY extends {
5
5
  id?: IdType | null;
6
6
  }> {
7
7
  protected readonly http: HttpClient;
8
- url: string;
8
+ /**
9
+ * The URL of the API endpoint to call
10
+ */
11
+ abstract url: string;
12
+ /**
13
+ * A collection of strings that represent date only property names
14
+ */
15
+ dateOnlyPropertyNames: string[];
9
16
  constructor(http: HttpClient);
10
- post(payload: T): Observable<T>;
11
- put(payload: T): Observable<T>;
12
- delete(payload: T): Observable<T>;
17
+ /**
18
+ * Calls the insert (POST) endpoint on a NRSRx based API endpoint
19
+ * @param payload
20
+ * @returns Observable<TENTITY>
21
+ */
22
+ post(payload: TENTITY): Observable<TENTITY>;
23
+ /**
24
+ * Calls the update (PUT) endpoint on a NRSRx based API endpoint
25
+ * @param payload
26
+ * @returns Observable<TENTITY>
27
+ */
28
+ put(payload: TENTITY): Observable<TENTITY>;
29
+ /**
30
+ * Calls the delete endpoint on a NRSRx based API endpoint
31
+ * @param payload
32
+ * @returns Observable<TENTITY>
33
+ */
34
+ delete(payload: TENTITY): Observable<TENTITY>;
35
+ formatEntity(entity: TENTITY): TENTITY;
13
36
  }
@@ -0,0 +1 @@
1
+ export declare function toDateOnly(date?: Date): string | undefined;
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "imng-nrsrx-client-utils",
3
- "version": "6.144.3",
3
+ "version": "6.152.1",
4
4
  "keywords": [
5
5
  "Angular",
6
6
  "Utils"
7
7
  ],
8
8
  "peerDependencies": {
9
- "@angular/common": ">= 14",
10
- "@angular/core": ">= 14",
9
+ "@angular/common": ">= 12",
10
+ "@angular/core": ">= 12",
11
11
  "rxjs": "*",
12
- "@microsoft/applicationinsights-core-js": "3.0.1"
12
+ "@microsoft/applicationinsights-core-js": "3.0.3"
13
13
  },
14
14
  "dependencies": {
15
15
  "tslib": "^2.3.0"