@elderbyte/ngx-starter 17.6.3 → 17.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,13 @@
1
1
  export function naturalValueComparator(a, b) {
2
+ if (a === b) {
3
+ return 0;
4
+ }
5
+ if (a === null || a === undefined) {
6
+ return -1;
7
+ }
8
+ if (b === null || b === undefined) {
9
+ return 1;
10
+ }
2
11
  return (a < b) ? -1 : (a > b) ? 1 : 0;
3
12
  }
4
13
  export function alphaNumStringComparator(a, b) {
@@ -69,7 +78,7 @@ export class ComparatorBuilder {
69
78
  let sortOrder = 1;
70
79
  if (property[0] === '-') {
71
80
  sortOrder = -1;
72
- property = property.substr(1);
81
+ property = property.substring(1);
73
82
  }
74
83
  return (a, b) => {
75
84
  const aValue = ComparatorBuilder.resolveProperty(a, property);
@@ -96,4 +105,4 @@ export class ComparatorBuilder {
96
105
  return resolved;
97
106
  }
98
107
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcGFyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2ZpZWxkLWNvbXBhcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLHNCQUFzQixDQUFDLENBQU0sRUFBRSxDQUFNO0lBQ2pELE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxDQUFNLEVBQUUsQ0FBTTtJQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDWCxPQUFPLENBQUMsQ0FBQztLQUNWO0lBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7UUFDakMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUNYO0lBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7UUFDakMsT0FBTyxDQUFDLENBQUM7S0FDVjtJQUNELE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFFNUI7Ozs7Z0ZBSTRFO2FBRTlELDZCQUF3QixHQUFzQixzQkFBc0IsQ0FBQzthQUNyRSwrQkFBMEIsR0FBeUIsd0JBQXdCLENBQUM7SUFFMUY7Ozs7Z0ZBSTRFO0lBRTVFOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFVLEdBQUcsTUFBZ0I7UUFDbEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLE9BQU8sVUFBVSxJQUFJLEVBQUUsSUFBSTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDVixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDZixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDeEM7O2VBRUc7WUFDSCxPQUFPLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLGtCQUFrQixFQUFFO2dCQUM3QyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxDQUNwQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ1IsaUJBQWlCLENBQUMsd0JBQXdCLEVBQzFDLGlCQUFpQixDQUFDLDBCQUEwQixDQUM3QyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDZCxDQUFDLEVBQUUsQ0FBQzthQUNMO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUdwRSxNQUFNLENBQUMsV0FBVyxDQUN4QixRQUFnQixFQUNoQixzQkFBdUMsRUFDdkMscUJBQTJDO1FBRTNDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDdkIsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2YsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0I7UUFFRCxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2QsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM5RCxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlELElBQUksTUFBYyxDQUFDO1lBQ25CLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDNUQsTUFBTSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNoRDtpQkFBTTtnQkFDTCxNQUFNLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ2pEO1lBQ0QsT0FBTyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQzVCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFHTyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVEsRUFBRSxRQUFnQjtRQUN2RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksUUFBUSxHQUFRLEdBQUcsQ0FBQztRQUV4QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNiLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHR5cGUgQ29tcGFyYXRvckZuPFQ+ID0gKGE6IFQsIGI6IFQpID0+IG51bWJlcjtcblxuZXhwb3J0IGZ1bmN0aW9uIG5hdHVyYWxWYWx1ZUNvbXBhcmF0b3IoYTogYW55LCBiOiBhbnkpOiBudW1iZXIge1xuICAgIHJldHVybiAoYSA8IGIpID8gLTEgOiAoYSA+IGIpID8gMSA6IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbHBoYU51bVN0cmluZ0NvbXBhcmF0b3IoYTogYW55LCBiOiBhbnkpOiBudW1iZXIge1xuICBpZiAoYSA9PT0gYikge1xuICAgIHJldHVybiAwO1xuICB9XG4gIGlmIChhID09PSBudWxsIHx8IGEgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuICBpZiAoYiA9PT0gbnVsbCB8fCBiID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIsICdlbicsIHsgbnVtZXJpYzogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgYWJpbGl0eSB0byBidWlsZCBhIHNvcnRpbmcgY29tcGFyYXRvciBkeW5hbWljYWxseSB1c2luZ1xuICogYSBnaXZlbiBhcnJheSBvZiBmaWVsZHMgLyBhZGRpdGlvbmFsIHN5bnRheC5cbiAqXG4gKiAtIFN1cHBvcnRzIEFTQyAvIERFU0NcbiAqIC0gU3VwcG9ydHMgbXVsdGlwbGUgZmllbGRzXG4gKiAtIFN1cHBvcnRzIG5lc3RlZCBmaWVsZHNcbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIENvbXBhcmF0b3JCdWlsZGVyLmZpZWxkU29ydCgnc2ltcGxlJywgJy1yZXZlcmVzZWQnLCAnc29tZS52ZXJ5LmRlZXAubmVzdGVkLnBhdGgnKVxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBhcmF0b3JCdWlsZGVyIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3RhdGljIE5BVFVSQUxfVkFMVUVfQ09NUEFSQVRPUjogQ29tcGFyYXRvckZuPGFueT4gPSBuYXR1cmFsVmFsdWVDb21wYXJhdG9yO1xuICBwdWJsaWMgc3RhdGljIEFMUEhBTlVNX1NUUklOR19DT01QQVJBVE9SOiBDb21wYXJhdG9yRm48c3RyaW5nPiA9IGFscGhhTnVtU3RyaW5nQ29tcGFyYXRvcjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogRHluYW1pY2FsbHkgYnVpbGRzIGEgY29tcGFyYXRvciBmdW5jdGlvbiwgdXNpbmcgdGhlIGdpdmVuIGZpZWxkcyBmb3Igc29ydGluZy5cbiAgICpcbiAgICogQHBhcmFtIGZpZWxkcyBPbmUgb3IgbW9yZSBmaWVsZCBuYW1lIHRvIHNvcnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpZWxkU29ydDxUID0gYW55PiguLi5maWVsZHM6IHN0cmluZ1tdKTogQ29tcGFyYXRvckZuPFQ+IHtcbiAgICBjb25zdCBwcm9wcyA9IGZpZWxkcztcbiAgICByZXR1cm4gZnVuY3Rpb24gKG9iajEsIG9iajIpIHtcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgY29uc3QgbnVtYmVyT2ZQcm9wZXJ0aWVzID0gcHJvcHMubGVuZ3RoO1xuICAgICAgLyogdHJ5IGdldHRpbmcgYSBkaWZmZXJlbnQgcmVzdWx0IGZyb20gMCAoZXF1YWwpXG4gICAgICAgKiBhcyBsb25nIGFzIHdlIGhhdmUgZXh0cmEgcHJvcGVydGllcyB0byBjb21wYXJlXG4gICAgICAgKi9cbiAgICAgIHdoaWxlIChyZXN1bHQgPT09IDAgJiYgaSA8IG51bWJlck9mUHJvcGVydGllcykge1xuICAgICAgICByZXN1bHQgPSBDb21wYXJhdG9yQnVpbGRlci5keW5hbWljU29ydChcbiAgICAgICAgICBwcm9wc1tpXSxcbiAgICAgICAgICBDb21wYXJhdG9yQnVpbGRlci5OQVRVUkFMX1ZBTFVFX0NPTVBBUkFUT1IsXG4gICAgICAgICAgQ29tcGFyYXRvckJ1aWxkZXIuQUxQSEFOVU1fU1RSSU5HX0NPTVBBUkFUT1JcbiAgICAgICAgKShvYmoxLCBvYmoyKTtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwcml2YXRlIHN0YXRpYyBkeW5hbWljU29ydDxUID0gYW55PihcbiAgICBwcm9wZXJ0eTogc3RyaW5nLFxuICAgIGdlbmVyaWNWYWx1ZUNvbXBhcmF0b3I6IENvbXBhcmF0b3JGbjxUPixcbiAgICBzdHJpbmdWYWx1ZUNvbXBhcmF0b3I6IENvbXBhcmF0b3JGbjxzdHJpbmc+LFxuICApOiBDb21wYXJhdG9yRm48VD4ge1xuICAgIGxldCBzb3J0T3JkZXIgPSAxO1xuICAgIGlmIChwcm9wZXJ0eVswXSA9PT0gJy0nKSB7XG4gICAgICBzb3J0T3JkZXIgPSAtMTtcbiAgICAgIHByb3BlcnR5ID0gcHJvcGVydHkuc3Vic3RyKDEpO1xuICAgIH1cblxuICAgIHJldHVybiAoYSwgYikgPT4ge1xuICAgICAgY29uc3QgYVZhbHVlID0gQ29tcGFyYXRvckJ1aWxkZXIucmVzb2x2ZVByb3BlcnR5KGEsIHByb3BlcnR5KTtcbiAgICAgIGNvbnN0IGJWYWx1ZSA9IENvbXBhcmF0b3JCdWlsZGVyLnJlc29sdmVQcm9wZXJ0eShiLCBwcm9wZXJ0eSk7XG4gICAgICBsZXQgcmVzdWx0OiBudW1iZXI7XG4gICAgICBpZiAodHlwZW9mIGFWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGJWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gc3RyaW5nVmFsdWVDb21wYXJhdG9yKGFWYWx1ZSwgYlZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGdlbmVyaWNWYWx1ZUNvbXBhcmF0b3IoYVZhbHVlLCBiVmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdCAqIHNvcnRPcmRlcjtcbiAgICB9O1xuICB9XG5cblxuICBwcml2YXRlIHN0YXRpYyByZXNvbHZlUHJvcGVydHkob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IHBhcnRzID0gcHJvcGVydHkuc3BsaXQoJy4nKTtcbiAgICBsZXQgcmVzb2x2ZWQ6IGFueSA9IG9iajtcblxuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJlc29sdmVkID0gcmVzb2x2ZWRbcGFydF07XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZDtcbiAgfVxuXG59XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcGFyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2ZpZWxkLWNvbXBhcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLHNCQUFzQixDQUFDLENBQU0sRUFBRSxDQUFNO0lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNYLE9BQU8sQ0FBQyxDQUFDO0tBQ1Y7SUFDRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtRQUNqQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0tBQ1g7SUFDRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtRQUNqQyxPQUFPLENBQUMsQ0FBQztLQUNWO0lBQ0QsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLENBQU0sRUFBRSxDQUFNO0lBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNYLE9BQU8sQ0FBQyxDQUFDO0tBQ1Y7SUFDRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtRQUNqQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0tBQ1g7SUFDRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtRQUNqQyxPQUFPLENBQUMsQ0FBQztLQUNWO0lBQ0QsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUU1Qjs7OztnRkFJNEU7YUFFOUQsNkJBQXdCLEdBQXNCLHNCQUFzQixDQUFDO2FBQ3JFLCtCQUEwQixHQUF5Qix3QkFBd0IsQ0FBQztJQUUxRjs7OztnRkFJNEU7SUFFNUU7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQVUsR0FBRyxNQUFnQjtRQUNsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDckIsT0FBTyxVQUFVLElBQUksRUFBRSxJQUFJO1lBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNmLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN4Qzs7ZUFFRztZQUNILE9BQU8sTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLEVBQUU7Z0JBQzdDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQ3BDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDUixpQkFBaUIsQ0FBQyx3QkFBd0IsRUFDMUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQzdDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNkLENBQUMsRUFBRSxDQUFDO2FBQ0w7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBR3BFLE1BQU0sQ0FBQyxXQUFXLENBQ3hCLFFBQWdCLEVBQ2hCLHNCQUF1QyxFQUN2QyxxQkFBMkM7UUFFM0MsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUN2QixTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDZixRQUFRLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQztRQUVELE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDZCxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlELE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUQsSUFBSSxNQUFjLENBQUM7WUFDbkIsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO2dCQUM1RCxNQUFNLEdBQUcscUJBQXFCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ2hEO2lCQUFNO2dCQUNMLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDakQ7WUFDRCxPQUFPLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUdPLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBUSxFQUFFLFFBQWdCO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxRQUFRLEdBQVEsR0FBRyxDQUFDO1FBRXhCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2IsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgdHlwZSBDb21wYXJhdG9yRm48VD4gPSAoYTogVCwgYjogVCkgPT4gbnVtYmVyO1xuXG5leHBvcnQgZnVuY3Rpb24gbmF0dXJhbFZhbHVlQ29tcGFyYXRvcihhOiBhbnksIGI6IGFueSk6IG51bWJlciB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgaWYgKGEgPT09IG51bGwgfHwgYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIGlmIChiID09PSBudWxsIHx8IGIgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAxO1xuICB9XG4gIHJldHVybiAoYSA8IGIpID8gLTEgOiAoYSA+IGIpID8gMSA6IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbHBoYU51bVN0cmluZ0NvbXBhcmF0b3IoYTogYW55LCBiOiBhbnkpOiBudW1iZXIge1xuICBpZiAoYSA9PT0gYikge1xuICAgIHJldHVybiAwO1xuICB9XG4gIGlmIChhID09PSBudWxsIHx8IGEgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuICBpZiAoYiA9PT0gbnVsbCB8fCBiID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIsICdlbicsIHsgbnVtZXJpYzogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgYWJpbGl0eSB0byBidWlsZCBhIHNvcnRpbmcgY29tcGFyYXRvciBkeW5hbWljYWxseSB1c2luZ1xuICogYSBnaXZlbiBhcnJheSBvZiBmaWVsZHMgLyBhZGRpdGlvbmFsIHN5bnRheC5cbiAqXG4gKiAtIFN1cHBvcnRzIEFTQyAvIERFU0NcbiAqIC0gU3VwcG9ydHMgbXVsdGlwbGUgZmllbGRzXG4gKiAtIFN1cHBvcnRzIG5lc3RlZCBmaWVsZHNcbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIENvbXBhcmF0b3JCdWlsZGVyLmZpZWxkU29ydCgnc2ltcGxlJywgJy1yZXZlcmVzZWQnLCAnc29tZS52ZXJ5LmRlZXAubmVzdGVkLnBhdGgnKVxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBhcmF0b3JCdWlsZGVyIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3RhdGljIE5BVFVSQUxfVkFMVUVfQ09NUEFSQVRPUjogQ29tcGFyYXRvckZuPGFueT4gPSBuYXR1cmFsVmFsdWVDb21wYXJhdG9yO1xuICBwdWJsaWMgc3RhdGljIEFMUEhBTlVNX1NUUklOR19DT01QQVJBVE9SOiBDb21wYXJhdG9yRm48c3RyaW5nPiA9IGFscGhhTnVtU3RyaW5nQ29tcGFyYXRvcjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogRHluYW1pY2FsbHkgYnVpbGRzIGEgY29tcGFyYXRvciBmdW5jdGlvbiwgdXNpbmcgdGhlIGdpdmVuIGZpZWxkcyBmb3Igc29ydGluZy5cbiAgICpcbiAgICogQHBhcmFtIGZpZWxkcyBPbmUgb3IgbW9yZSBmaWVsZCBuYW1lIHRvIHNvcnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpZWxkU29ydDxUID0gYW55PiguLi5maWVsZHM6IHN0cmluZ1tdKTogQ29tcGFyYXRvckZuPFQ+IHtcbiAgICBjb25zdCBwcm9wcyA9IGZpZWxkcztcbiAgICByZXR1cm4gZnVuY3Rpb24gKG9iajEsIG9iajIpIHtcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgY29uc3QgbnVtYmVyT2ZQcm9wZXJ0aWVzID0gcHJvcHMubGVuZ3RoO1xuICAgICAgLyogdHJ5IGdldHRpbmcgYSBkaWZmZXJlbnQgcmVzdWx0IGZyb20gMCAoZXF1YWwpXG4gICAgICAgKiBhcyBsb25nIGFzIHdlIGhhdmUgZXh0cmEgcHJvcGVydGllcyB0byBjb21wYXJlXG4gICAgICAgKi9cbiAgICAgIHdoaWxlIChyZXN1bHQgPT09IDAgJiYgaSA8IG51bWJlck9mUHJvcGVydGllcykge1xuICAgICAgICByZXN1bHQgPSBDb21wYXJhdG9yQnVpbGRlci5keW5hbWljU29ydChcbiAgICAgICAgICBwcm9wc1tpXSxcbiAgICAgICAgICBDb21wYXJhdG9yQnVpbGRlci5OQVRVUkFMX1ZBTFVFX0NPTVBBUkFUT1IsXG4gICAgICAgICAgQ29tcGFyYXRvckJ1aWxkZXIuQUxQSEFOVU1fU1RSSU5HX0NPTVBBUkFUT1JcbiAgICAgICAgKShvYmoxLCBvYmoyKTtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwcml2YXRlIHN0YXRpYyBkeW5hbWljU29ydDxUID0gYW55PihcbiAgICBwcm9wZXJ0eTogc3RyaW5nLFxuICAgIGdlbmVyaWNWYWx1ZUNvbXBhcmF0b3I6IENvbXBhcmF0b3JGbjxUPixcbiAgICBzdHJpbmdWYWx1ZUNvbXBhcmF0b3I6IENvbXBhcmF0b3JGbjxzdHJpbmc+LFxuICApOiBDb21wYXJhdG9yRm48VD4ge1xuICAgIGxldCBzb3J0T3JkZXIgPSAxO1xuICAgIGlmIChwcm9wZXJ0eVswXSA9PT0gJy0nKSB7XG4gICAgICBzb3J0T3JkZXIgPSAtMTtcbiAgICAgIHByb3BlcnR5ID0gcHJvcGVydHkuc3Vic3RyaW5nKDEpO1xuICAgIH1cblxuICAgIHJldHVybiAoYSwgYikgPT4ge1xuICAgICAgY29uc3QgYVZhbHVlID0gQ29tcGFyYXRvckJ1aWxkZXIucmVzb2x2ZVByb3BlcnR5KGEsIHByb3BlcnR5KTtcbiAgICAgIGNvbnN0IGJWYWx1ZSA9IENvbXBhcmF0b3JCdWlsZGVyLnJlc29sdmVQcm9wZXJ0eShiLCBwcm9wZXJ0eSk7XG4gICAgICBsZXQgcmVzdWx0OiBudW1iZXI7XG4gICAgICBpZiAodHlwZW9mIGFWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGJWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gc3RyaW5nVmFsdWVDb21wYXJhdG9yKGFWYWx1ZSwgYlZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGdlbmVyaWNWYWx1ZUNvbXBhcmF0b3IoYVZhbHVlLCBiVmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdCAqIHNvcnRPcmRlcjtcbiAgICB9O1xuICB9XG5cblxuICBwcml2YXRlIHN0YXRpYyByZXNvbHZlUHJvcGVydHkob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IHBhcnRzID0gcHJvcGVydHkuc3BsaXQoJy4nKTtcbiAgICBsZXQgcmVzb2x2ZWQ6IGFueSA9IG9iajtcblxuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJlc29sdmVkID0gcmVzb2x2ZWRbcGFydF07XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZDtcbiAgfVxuXG59XG4iXX0=
@@ -3138,6 +3138,15 @@ class HttpParamsBuilder {
3138
3138
  }
3139
3139
 
3140
3140
  function naturalValueComparator(a, b) {
3141
+ if (a === b) {
3142
+ return 0;
3143
+ }
3144
+ if (a === null || a === undefined) {
3145
+ return -1;
3146
+ }
3147
+ if (b === null || b === undefined) {
3148
+ return 1;
3149
+ }
3141
3150
  return (a < b) ? -1 : (a > b) ? 1 : 0;
3142
3151
  }
3143
3152
  function alphaNumStringComparator(a, b) {
@@ -3208,7 +3217,7 @@ class ComparatorBuilder {
3208
3217
  let sortOrder = 1;
3209
3218
  if (property[0] === '-') {
3210
3219
  sortOrder = -1;
3211
- property = property.substr(1);
3220
+ property = property.substring(1);
3212
3221
  }
3213
3222
  return (a, b) => {
3214
3223
  const aValue = ComparatorBuilder.resolveProperty(a, property);