imng-odata-client 6.18.2 → 6.18.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.
@@ -64,9 +64,10 @@ export class ODataClientService {
64
64
  }
65
65
  result += ')';
66
66
  result = result
67
- .replace(/\(;\)$/, '')
68
- .replace(/\(\)/, '')
69
- .replace(/;\)/, ')');
67
+ .replace(/\(;\$expand=/, '($expand=') //Replaces empty expand "(;$expand=" with "($expand="
68
+ .replace(/\$expand=;?\)$/, ')') //Replaces empty expand ";$expand=;)" or ";$expand=)" with ")"
69
+ .replace(/\(;\)$/, '') //Removes empty expansion clause "(;)"
70
+ .replace(/;\)$/, ')'); //Replaces ";)" with ")"
70
71
  }
71
72
  return result;
72
73
  }
@@ -174,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
174
175
  providedIn: 'root',
175
176
  }]
176
177
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2RhdGEtY2xpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctb2RhdGEtY2xpZW50L3NyYy9saWIvc2VydmljZXMvb2RhdGEtY2xpZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQU1MLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsVUFBVSxHQUdYLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBS2hELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBNkIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFaEQsS0FBSyxDQUNWLGFBQXFCLEVBQ3JCLEtBQWlCLEVBQ2pCLFVBQXdCLEVBQUU7UUFFMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixHQUFHLENBQXVCLEdBQUcsYUFBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO2FBQ3pELElBQUksQ0FBQyxPQUFPLENBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWlCLEVBQUUsVUFBd0IsRUFBRTtRQUNqRSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRCxXQUFXLEdBQUcsSUFB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QUM7OytHQXhNVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0RmlsdGVyT3BlcmF0b3IgfSBmcm9tICcuLi9oZWxwZXJzL2dldC1maWx0ZXItb3BlcmF0b3InO1xuaW1wb3J0IHtcbiAgQ2hpbGRGaWx0ZXIsXG4gIENvbXBvc2l0ZUZpbHRlcixcbiAgRXhwYW5kZXIsXG4gIEZldGNoT3B0aW9ucyxcbiAgRmlsdGVyLFxuICBpc0NoaWxkRmlsdGVyLFxuICBpc0NvbXBvc2l0ZUZpbHRlcixcbiAgaXNFeHBhbmRlcixcbiAgT0RhdGFRdWVyeSxcbiAgT0RhdGFSZXN1bHQsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBtYXBEYXRhIH0gZnJvbSAnLi4vb3BlcmF0b3JzL21hcC1kYXRhJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE9EYXRhQ2xpZW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cblxuICBwdWJsaWMgZmV0Y2g8VCBleHRlbmRzIG9iamVjdD4oXG4gICAgb2RhdGFFbmRwb2ludDogc3RyaW5nLFxuICAgIHF1ZXJ5OiBPRGF0YVF1ZXJ5LFxuICAgIG9wdGlvbnM6IEZldGNoT3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPE9EYXRhUmVzdWx0PFQ+PiB7XG4gICAgY29uc3QgcXVlcnlTdHIgPSB0aGlzLmdldE9EYXRhU3RyaW5nKHF1ZXJ5LCBvcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PE9EYXRhUmVzdWx0PFQ+IHwgVFtdPihgJHtvZGF0YUVuZHBvaW50fT8ke3F1ZXJ5U3RyfWApXG4gICAgICAucGlwZShtYXBEYXRhPFQ+KG9wdGlvbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPRGF0YVN0cmluZyhxdWVyeTogT0RhdGFRdWVyeSwgb3B0aW9uczogRmV0Y2hPcHRpb25zID0ge30pOiBzdHJpbmcge1xuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnO1xuICAgIHF1ZXJ5U3RyaW5nID0gdGhpcy5wcm9jZXNzRmlsdGVycyhxdWVyeSwgb3B0aW9ucywgcXVlcnlTdHJpbmcpO1xuICAgIHF1ZXJ5U3RyaW5nID0gdGhpcy5wcm9jZXNzT3JkZXJCeShxdWVyeSwgcXVlcnlTdHJpbmcpO1xuICAgIHF1ZXJ5U3RyaW5nID0gdGhpcy5wcm9jZXNzU2VsZWN0b3JzKHF1ZXJ5LCBxdWVyeVN0cmluZyk7XG4gICAgcXVlcnlTdHJpbmcgPSB0aGlzLnByb2Nlc3NFeHBhbmRlcnMocXVlcnksIHF1ZXJ5U3RyaW5nKTtcbiAgICBxdWVyeVN0cmluZyA9IHRoaXMucHJvY2Vzc1NpbXBsZVBhcmFtZXRlcnMoJ3RvcCcsIHF1ZXJ5LCBxdWVyeVN0cmluZyk7XG4gICAgcXVlcnlTdHJpbmcgPSB0aGlzLnByb2Nlc3NTaW1wbGVQYXJhbWV0ZXJzKCdza2lwJywgcXVlcnksIHF1ZXJ5U3RyaW5nKTtcbiAgICBxdWVyeVN0cmluZyA9IHRoaXMucHJvY2Vzc0d1aWRzKHF1ZXJ5U3RyaW5nKTtcbiAgICBxdWVyeVN0cmluZyA9IHRoaXMucHJvY2Vzc0RhdGVzKHF1ZXJ5U3RyaW5nKTtcbiAgICBxdWVyeVN0cmluZyA9IHRoaXMucHJvY2Vzc0NvdW50KHF1ZXJ5LCBxdWVyeVN0cmluZyk7XG4gICAgcXVlcnlTdHJpbmcgPSB0aGlzLnByb2Nlc3NDYWNoZUJ1c3Rpbmcob3B0aW9ucywgcXVlcnlTdHJpbmcpO1xuICAgIHF1ZXJ5U3RyaW5nID0gcXVlcnlTdHJpbmcuc3Vic3RyaW5nKDEpOyAvLyByZW1vdmluZyBmaXJzdCAmXG4gICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHByb2Nlc3NFeHBhbmRlcnMocXVlcnk6IE9EYXRhUXVlcnksIHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChxdWVyeS5leHBhbmQgJiYgcXVlcnkuZXhwYW5kLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGV4cGFuc2lvblN0cmluZ3MgPSBxdWVyeS5leHBhbmQubWFwKChlbGVtZW50KSA9PlxuICAgICAgICB0aGlzLmdldEV4cGFuc2lvblN0cmluZyhlbGVtZW50KSxcbiAgICAgICk7XG4gICAgICBxdWVyeVN0cmluZyArPSBgJiRleHBhbmQ9JHtleHBhbnNpb25TdHJpbmdzLmpvaW4oJywnKX1gO1xuICAgIH1cbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0RXhwYW5zaW9uU3RyaW5nKGVsZW1lbnQ6IEV4cGFuZGVyKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXN1bHQgKz0gZWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ICs9IGAke2VsZW1lbnQudGFibGV9KGA7XG4gICAgICBjb25zdCBxdWVyeTogT0RhdGFRdWVyeSA9IHtcbiAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgY291bnQ6IGVsZW1lbnQuY291bnQgfHwgZmFsc2UsXG4gICAgICAgIGV4cGFuZDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICAgIHJlc3VsdCArPSBgJHt0aGlzLmdldE9EYXRhU3RyaW5nKHF1ZXJ5KS5yZXBsYWNlKC8mL2csICc7Jyl9O2A7XG4gICAgICBpZiAoZWxlbWVudC5leHBhbmQpIHtcbiAgICAgICAgY29uc3QgZXhwYW5kZXJzID0gZWxlbWVudC5leHBhbmQubWFwKChleHBhbmRlcikgPT4ge1xuICAgICAgICAgIGlmIChpc0V4cGFuZGVyKGV4cGFuZGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXhwYW5zaW9uU3RyaW5nKGV4cGFuZGVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGV4cGFuZGVyO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0ICs9IGAkZXhwYW5kPSR7ZXhwYW5kZXJzLmpvaW4oJywnKX07YDtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCArPSAnKSc7XG4gICAgICByZXN1bHQgPSByZXN1bHRcbiAgICAgICAgLnJlcGxhY2UoL1xcKDtcXCkkLywgJycpXG4gICAgICAgIC5yZXBsYWNlKC9cXChcXCkvLCAnJylcbiAgICAgICAgLnJlcGxhY2UoLztcXCkvLCAnKScpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvY2Vzc09yZGVyQnkocXVlcnk6IE9EYXRhUXVlcnksIHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghcXVlcnkub3JkZXJCeSB8fCAhcXVlcnkub3JkZXJCeS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBxdWVyeVN0cmluZztcbiAgICB9XG4gICAgY29uc3Qgc29ydFN0cmluZyA9IHF1ZXJ5Lm9yZGVyQnlcbiAgICAgIC5tYXAoKG0pID0+IGAke20uZmllbGR9JHttLmRpciA9PT0gJ2Rlc2MnID8gJytkZXNjJyA6ICcnfWApXG4gICAgICAuam9pbignLCcpO1xuICAgIHJldHVybiBgJHtxdWVyeVN0cmluZ30mJG9yZGVyYnk9JHtzb3J0U3RyaW5nfWA7XG4gIH1cbiAgcHJvY2Vzc0ZpbHRlcnMoXG4gICAgcXVlcnk6IE9EYXRhUXVlcnksXG4gICAgX29wdGlvbnM6IEZldGNoT3B0aW9ucyxcbiAgICBxdWVyeVN0cmluZzogc3RyaW5nLFxuICApOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgICFxdWVyeS5maWx0ZXIgfHxcbiAgICAgICFxdWVyeS5maWx0ZXIuZmlsdGVycy5sZW5ndGggfHxcbiAgICAgICFxdWVyeS5maWx0ZXIuZmlsdGVycy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHJldHVybiBxdWVyeVN0cmluZztcbiAgICB9XG4gICAgY29uc3QgZmlsdGVyU3RyaW5nID0gdGhpcy5zZXJpYWxpemVDb21wb3NpdGVGaWx0ZXIocXVlcnkuZmlsdGVyKTtcbiAgICByZXR1cm4gYCR7cXVlcnlTdHJpbmd9JiRmaWx0ZXI9JHtmaWx0ZXJTdHJpbmd9YDtcbiAgfVxuICBzZXJpYWxpemVDb21wb3NpdGVGaWx0ZXIoZmlsdGVyOiBDb21wb3NpdGVGaWx0ZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpbHRlckxvZ2ljU2VwZXJhdG9yID0gYCske2ZpbHRlci5sb2dpY30rYDtcbiAgICByZXR1cm4gYCgke2ZpbHRlci5maWx0ZXJzXG4gICAgICAubWFwKChtKSA9PlxuICAgICAgICBpc0NvbXBvc2l0ZUZpbHRlcihtKVxuICAgICAgICAgID8gdGhpcy5zZXJpYWxpemVDb21wb3NpdGVGaWx0ZXIobSlcbiAgICAgICAgICA6IHRoaXMuc2VyaWFsaXplRmlsdGVyKG0pLFxuICAgICAgKVxuICAgICAgLmZpbHRlcigobSkgPT4gbSAmJiBtICE9PSAnKCknKVxuICAgICAgLmpvaW4oZmlsdGVyTG9naWNTZXBlcmF0b3IpfSlgO1xuICB9XG5cbiAgcHVibGljIHNlcmlhbGl6ZUZpbHRlcihmaWx0ZXI6IEZpbHRlciB8IENoaWxkRmlsdGVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBvZGF0YVN0cmluZ0Z1bmN0aW9uID1cbiAgICAgIGZpbHRlci5vcGVyYXRvcj8udG9PRGF0YVN0cmluZyB8fFxuICAgICAgZ2V0RmlsdGVyT3BlcmF0b3IoZmlsdGVyLm9wZXJhdG9yPy5uYW1lIHx8ICdlcXVhbHMnKS50b09EYXRhU3RyaW5nO1xuICAgIGlmIChpc0NoaWxkRmlsdGVyKGZpbHRlcikpIHtcbiAgICAgIGNvbnN0IGNoaWxkRmllbGROYW1lID0gYG8vJHtmaWx0ZXIuZmllbGR9YDtcbiAgICAgIHJldHVybiBgJHtmaWx0ZXIuY2hpbGRUYWJsZX0vJHtcbiAgICAgICAgZmlsdGVyLmxpbnFPcGVyYXRpb25cbiAgICAgIH0obzogJHtvZGF0YVN0cmluZ0Z1bmN0aW9uKFxuICAgICAgICBjaGlsZEZpZWxkTmFtZSxcbiAgICAgICAgZmlsdGVyLnZhbHVlIGFzIG5ldmVyLFxuICAgICAgKX0gKWAucmVwbGFjZSgvXFxzXFwpL2dtLCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZGF0YVN0cmluZ0Z1bmN0aW9uKGZpbHRlci5maWVsZCwgZmlsdGVyLnZhbHVlIGFzIG5ldmVyKTtcbiAgICB9XG4gIH1cbiAgcHJvY2Vzc1NpbXBsZVBhcmFtZXRlcnMoXG4gICAgcGFyYW1ldGVyTmFtZTogJ3NraXAnIHwgJ3RvcCcsXG4gICAgcXVlcnk6IE9EYXRhUXVlcnksXG4gICAgcXVlcnlTdHJpbmc6IHN0cmluZyxcbiAgKTogc3RyaW5nIHtcbiAgICBpZiAocXVlcnlbcGFyYW1ldGVyTmFtZV0pIHtcbiAgICAgIHJldHVybiBgJHtxdWVyeVN0cmluZ30mJCR7cGFyYW1ldGVyTmFtZX09JHtxdWVyeVtwYXJhbWV0ZXJOYW1lXX1gO1xuICAgIH1cbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cbiAgcHJvY2Vzc0NhY2hlQnVzdGluZyhvcHRpb25zOiBGZXRjaE9wdGlvbnMsIHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChvcHRpb25zLmJ1c3RDYWNoZSkge1xuICAgICAgY29uc3QgdGltZVN0YW1wID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1stOi5UWl0vZywgJycpO1xuICAgICAgcmV0dXJuIGAke3F1ZXJ5U3RyaW5nfSZ0aW1lc3RhbXA9JHt0aW1lU3RhbXB9YDtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHByb2Nlc3NDb3VudChxdWVyeTogT0RhdGFRdWVyeSwgcXVlcnlTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHF1ZXJ5LmNvdW50ID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gYCR7cXVlcnlTdHJpbmd9JiRjb3VudD10cnVlYDtcbiAgfVxuXG4gIHB1YmxpYyBwcm9jZXNzRGF0ZXMocXVlcnlTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZVJlZ2V4ID1cbiAgICAgIC9EYXRlIFtlLXRdezJ9IFxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9LlxcZHszfVovZztcbiAgICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcbiAgICBjb25zdCBkYXRlTWF0Y2hlczogc3RyaW5nW10gPSBbXTtcbiAgICB3aGlsZSAoKG0gPSBkYXRlUmVnZXguZXhlYyhxdWVyeVN0cmluZykpICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSB0byBhdm9pZCBpbmZpbml0ZSBsb29wcyB3aXRoIHplcm8td2lkdGggbWF0Y2hlc1xuICAgICAgaWYgKG0uaW5kZXggPT09IGRhdGVSZWdleC5sYXN0SW5kZXgpIHtcbiAgICAgICAgZGF0ZVJlZ2V4Lmxhc3RJbmRleCsrO1xuICAgICAgfVxuICAgICAgbS5mb3JFYWNoKChtYXRjaCkgPT4ge1xuICAgICAgICBkYXRlTWF0Y2hlcy5wdXNoKG1hdGNoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBkYXRlTWF0Y2hlcy5mb3JFYWNoKFxuICAgICAgKGRhdGUpID0+XG4gICAgICAgIChxdWVyeVN0cmluZyA9IHF1ZXJ5U3RyaW5nLnJlcGxhY2UoXG4gICAgICAgICAgZGF0ZSxcbiAgICAgICAgICBkYXRlLnJlcGxhY2UoL1RcXGR7Mn06XFxkezJ9OlxcZHsyfS5cXGR7M31aL2csICcnKSxcbiAgICAgICAgKSksXG4gICAgKTtcbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgcHJvY2Vzc0d1aWRzKHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGd1aWRSZWdleCA9XG4gICAgICAvJ1tcXGRBLUZdezh9LT9bXFxkQS1GXXs0fS0/W1xcZEEtRl17NH0tP1tcXGRBLUZdezR9LT9bXFxkQS1GXXsxMn0nL2dpO1xuICAgIGxldCBtOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuICAgIGNvbnN0IGd1aWRNYXRjaGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHdoaWxlICgobSA9IGd1aWRSZWdleC5leGVjKHF1ZXJ5U3RyaW5nKSkgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIGluZmluaXRlIGxvb3BzIHdpdGggemVyby13aWR0aCBtYXRjaGVzXG4gICAgICBpZiAobS5pbmRleCA9PT0gZ3VpZFJlZ2V4Lmxhc3RJbmRleCkge1xuICAgICAgICBndWlkUmVnZXgubGFzdEluZGV4Kys7XG4gICAgICB9XG4gICAgICBtLmZvckVhY2goKG1hdGNoKSA9PiB7XG4gICAgICAgIGd1aWRNYXRjaGVzLnB1c2gobWF0Y2gpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGd1aWRNYXRjaGVzLmZvckVhY2goXG4gICAgICAoZ3VpZCkgPT5cbiAgICAgICAgKHF1ZXJ5U3RyaW5nID0gcXVlcnlTdHJpbmcucmVwbGFjZShndWlkLCBndWlkLnJlcGxhY2UoLycvZywgJycpKSksXG4gICAgKTtcbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgcHJvY2Vzc1NlbGVjdG9ycyhzdGF0ZTogT0RhdGFRdWVyeSwgcXVlcnlTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHN0YXRlLnNlbGVjdCAmJiBzdGF0ZS5zZWxlY3QubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGAke3F1ZXJ5U3RyaW5nfSYkc2VsZWN0PSR7c3RhdGUuc2VsZWN0LmpvaW4oKX1gO1xuICAgIH1cbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cbn1cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2RhdGEtY2xpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ltbmctb2RhdGEtY2xpZW50L3NyYy9saWIvc2VydmljZXMvb2RhdGEtY2xpZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQU1MLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsVUFBVSxHQUdYLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBS2hELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBNkIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFaEQsS0FBSyxDQUNWLGFBQXFCLEVBQ3JCLEtBQWlCLEVBQ2pCLFVBQXdCLEVBQUU7UUFFMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixHQUFHLENBQXVCLEdBQUcsYUFBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO2FBQ3pELElBQUksQ0FBQyxPQUFPLENBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWlCLEVBQUUsVUFBd0IsRUFBRTtRQUNqRSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRCxXQUFXLEdBQUcsSUFB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QUcsV0FBVyxZQUFZLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztTQUN4RDtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7OytHQXpNVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0RmlsdGVyT3BlcmF0b3IgfSBmcm9tICcuLi9oZWxwZXJzL2dldC1maWx0ZXItb3BlcmF0b3InO1xuaW1wb3J0IHtcbiAgQ2hpbGRGaWx0ZXIsXG4gIENvbXBvc2l0ZUZpbHRlcixcbiAgRXhwYW5kZXIsXG4gIEZldGNoT3B0aW9ucyxcbiAgRmlsdGVyLFxuICBpc0NoaWxkRmlsdGVyLFxuICBpc0NvbXBvc2l0ZUZpbHRlcixcbiAgaXNFeHBhbmRlcixcbiAgT0RhdGFRdWVyeSxcbiAgT0RhdGFSZXN1bHQsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBtYXBEYXRhIH0gZnJvbSAnLi4vb3BlcmF0b3JzL21hcC1kYXRhJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE9EYXRhQ2xpZW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cblxuICBwdWJsaWMgZmV0Y2g8VCBleHRlbmRzIG9iamVjdD4oXG4gICAgb2RhdGFFbmRwb2ludDogc3RyaW5nLFxuICAgIHF1ZXJ5OiBPRGF0YVF1ZXJ5LFxuICAgIG9wdGlvbnM6IEZldGNoT3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPE9EYXRhUmVzdWx0PFQ+PiB7XG4gICAgY29uc3QgcXVlcnlTdHIgPSB0aGlzLmdldE9EYXRhU3RyaW5nKHF1ZXJ5LCBvcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PE9EYXRhUmVzdWx0PFQ+IHwgVFtdPihgJHtvZGF0YUVuZHBvaW50fT8ke3F1ZXJ5U3RyfWApXG4gICAgICAucGlwZShtYXBEYXRhPFQ+KG9wdGlvbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPRGF0YVN0cmluZyhxdWVyeTogT0RhdGFRdWVyeSwgb3B0aW9uczogRmV0Y2hPcHRpb25zID0ge30pOiBzdHJpbmcge1xuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnO1xuICAgIHF1ZXJ5U3RyaW5nID0gdGhpcy5wcm9jZXNzRmlsdGVycyhxdWVyeSwgb3B0aW9ucywgcXVlcnlTdHJpbmcpO1xuICAgIHF1ZXJ5U3RyaW5nID0gdGhpcy5wcm9jZXNzT3JkZXJCeShxdWVyeSwgcXVlcnlTdHJpbmcpO1xuICAgIHF1ZXJ5U3RyaW5nID0gdGhpcy5wcm9jZXNzU2VsZWN0b3JzKHF1ZXJ5LCBxdWVyeVN0cmluZyk7XG4gICAgcXVlcnlTdHJpbmcgPSB0aGlzLnByb2Nlc3NFeHBhbmRlcnMocXVlcnksIHF1ZXJ5U3RyaW5nKTtcbiAgICBxdWVyeVN0cmluZyA9IHRoaXMucHJvY2Vzc1NpbXBsZVBhcmFtZXRlcnMoJ3RvcCcsIHF1ZXJ5LCBxdWVyeVN0cmluZyk7XG4gICAgcXVlcnlTdHJpbmcgPSB0aGlzLnByb2Nlc3NTaW1wbGVQYXJhbWV0ZXJzKCdza2lwJywgcXVlcnksIHF1ZXJ5U3RyaW5nKTtcbiAgICBxdWVyeVN0cmluZyA9IHRoaXMucHJvY2Vzc0d1aWRzKHF1ZXJ5U3RyaW5nKTtcbiAgICBxdWVyeVN0cmluZyA9IHRoaXMucHJvY2Vzc0RhdGVzKHF1ZXJ5U3RyaW5nKTtcbiAgICBxdWVyeVN0cmluZyA9IHRoaXMucHJvY2Vzc0NvdW50KHF1ZXJ5LCBxdWVyeVN0cmluZyk7XG4gICAgcXVlcnlTdHJpbmcgPSB0aGlzLnByb2Nlc3NDYWNoZUJ1c3Rpbmcob3B0aW9ucywgcXVlcnlTdHJpbmcpO1xuICAgIHF1ZXJ5U3RyaW5nID0gcXVlcnlTdHJpbmcuc3Vic3RyaW5nKDEpOyAvLyByZW1vdmluZyBmaXJzdCAmXG4gICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHByb2Nlc3NFeHBhbmRlcnMocXVlcnk6IE9EYXRhUXVlcnksIHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChxdWVyeS5leHBhbmQgJiYgcXVlcnkuZXhwYW5kLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGV4cGFuc2lvblN0cmluZ3MgPSBxdWVyeS5leHBhbmQubWFwKChlbGVtZW50KSA9PlxuICAgICAgICB0aGlzLmdldEV4cGFuc2lvblN0cmluZyhlbGVtZW50KSxcbiAgICAgICk7XG4gICAgICBxdWVyeVN0cmluZyArPSBgJiRleHBhbmQ9JHtleHBhbnNpb25TdHJpbmdzLmpvaW4oJywnKX1gO1xuICAgIH1cbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0RXhwYW5zaW9uU3RyaW5nKGVsZW1lbnQ6IEV4cGFuZGVyKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXN1bHQgKz0gZWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ICs9IGAke2VsZW1lbnQudGFibGV9KGA7XG4gICAgICBjb25zdCBxdWVyeTogT0RhdGFRdWVyeSA9IHtcbiAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgY291bnQ6IGVsZW1lbnQuY291bnQgfHwgZmFsc2UsXG4gICAgICAgIGV4cGFuZDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICAgIHJlc3VsdCArPSBgJHt0aGlzLmdldE9EYXRhU3RyaW5nKHF1ZXJ5KS5yZXBsYWNlKC8mL2csICc7Jyl9O2A7XG4gICAgICBpZiAoZWxlbWVudC5leHBhbmQpIHtcbiAgICAgICAgY29uc3QgZXhwYW5kZXJzID0gZWxlbWVudC5leHBhbmQubWFwKChleHBhbmRlcikgPT4ge1xuICAgICAgICAgIGlmIChpc0V4cGFuZGVyKGV4cGFuZGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXhwYW5zaW9uU3RyaW5nKGV4cGFuZGVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGV4cGFuZGVyO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0ICs9IGAkZXhwYW5kPSR7ZXhwYW5kZXJzLmpvaW4oJywnKX07YDtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCArPSAnKSc7XG4gICAgICByZXN1bHQgPSByZXN1bHRcbiAgICAgICAgLnJlcGxhY2UoL1xcKDtcXCRleHBhbmQ9LywgJygkZXhwYW5kPScpIC8vUmVwbGFjZXMgZW1wdHkgZXhwYW5kIFwiKDskZXhwYW5kPVwiIHdpdGggXCIoJGV4cGFuZD1cIlxuICAgICAgICAucmVwbGFjZSgvXFwkZXhwYW5kPTs/XFwpJC8sICcpJykgLy9SZXBsYWNlcyBlbXB0eSBleHBhbmQgXCI7JGV4cGFuZD07KVwiIG9yIFwiOyRleHBhbmQ9KVwiIHdpdGggXCIpXCJcbiAgICAgICAgLnJlcGxhY2UoL1xcKDtcXCkkLywgJycpIC8vUmVtb3ZlcyBlbXB0eSBleHBhbnNpb24gY2xhdXNlIFwiKDspXCJcbiAgICAgICAgLnJlcGxhY2UoLztcXCkkLywgJyknKTsgLy9SZXBsYWNlcyBcIjspXCIgd2l0aCBcIilcIlxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvY2Vzc09yZGVyQnkocXVlcnk6IE9EYXRhUXVlcnksIHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghcXVlcnkub3JkZXJCeSB8fCAhcXVlcnkub3JkZXJCeS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBxdWVyeVN0cmluZztcbiAgICB9XG4gICAgY29uc3Qgc29ydFN0cmluZyA9IHF1ZXJ5Lm9yZGVyQnlcbiAgICAgIC5tYXAoKG0pID0+IGAke20uZmllbGR9JHttLmRpciA9PT0gJ2Rlc2MnID8gJytkZXNjJyA6ICcnfWApXG4gICAgICAuam9pbignLCcpO1xuICAgIHJldHVybiBgJHtxdWVyeVN0cmluZ30mJG9yZGVyYnk9JHtzb3J0U3RyaW5nfWA7XG4gIH1cbiAgcHJvY2Vzc0ZpbHRlcnMoXG4gICAgcXVlcnk6IE9EYXRhUXVlcnksXG4gICAgX29wdGlvbnM6IEZldGNoT3B0aW9ucyxcbiAgICBxdWVyeVN0cmluZzogc3RyaW5nLFxuICApOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgICFxdWVyeS5maWx0ZXIgfHxcbiAgICAgICFxdWVyeS5maWx0ZXIuZmlsdGVycy5sZW5ndGggfHxcbiAgICAgICFxdWVyeS5maWx0ZXIuZmlsdGVycy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHJldHVybiBxdWVyeVN0cmluZztcbiAgICB9XG4gICAgY29uc3QgZmlsdGVyU3RyaW5nID0gdGhpcy5zZXJpYWxpemVDb21wb3NpdGVGaWx0ZXIocXVlcnkuZmlsdGVyKTtcbiAgICByZXR1cm4gYCR7cXVlcnlTdHJpbmd9JiRmaWx0ZXI9JHtmaWx0ZXJTdHJpbmd9YDtcbiAgfVxuICBzZXJpYWxpemVDb21wb3NpdGVGaWx0ZXIoZmlsdGVyOiBDb21wb3NpdGVGaWx0ZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpbHRlckxvZ2ljU2VwZXJhdG9yID0gYCske2ZpbHRlci5sb2dpY30rYDtcbiAgICByZXR1cm4gYCgke2ZpbHRlci5maWx0ZXJzXG4gICAgICAubWFwKChtKSA9PlxuICAgICAgICBpc0NvbXBvc2l0ZUZpbHRlcihtKVxuICAgICAgICAgID8gdGhpcy5zZXJpYWxpemVDb21wb3NpdGVGaWx0ZXIobSlcbiAgICAgICAgICA6IHRoaXMuc2VyaWFsaXplRmlsdGVyKG0pLFxuICAgICAgKVxuICAgICAgLmZpbHRlcigobSkgPT4gbSAmJiBtICE9PSAnKCknKVxuICAgICAgLmpvaW4oZmlsdGVyTG9naWNTZXBlcmF0b3IpfSlgO1xuICB9XG5cbiAgcHVibGljIHNlcmlhbGl6ZUZpbHRlcihmaWx0ZXI6IEZpbHRlciB8IENoaWxkRmlsdGVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBvZGF0YVN0cmluZ0Z1bmN0aW9uID1cbiAgICAgIGZpbHRlci5vcGVyYXRvcj8udG9PRGF0YVN0cmluZyB8fFxuICAgICAgZ2V0RmlsdGVyT3BlcmF0b3IoZmlsdGVyLm9wZXJhdG9yPy5uYW1lIHx8ICdlcXVhbHMnKS50b09EYXRhU3RyaW5nO1xuICAgIGlmIChpc0NoaWxkRmlsdGVyKGZpbHRlcikpIHtcbiAgICAgIGNvbnN0IGNoaWxkRmllbGROYW1lID0gYG8vJHtmaWx0ZXIuZmllbGR9YDtcbiAgICAgIHJldHVybiBgJHtmaWx0ZXIuY2hpbGRUYWJsZX0vJHtcbiAgICAgICAgZmlsdGVyLmxpbnFPcGVyYXRpb25cbiAgICAgIH0obzogJHtvZGF0YVN0cmluZ0Z1bmN0aW9uKFxuICAgICAgICBjaGlsZEZpZWxkTmFtZSxcbiAgICAgICAgZmlsdGVyLnZhbHVlIGFzIG5ldmVyLFxuICAgICAgKX0gKWAucmVwbGFjZSgvXFxzXFwpL2dtLCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZGF0YVN0cmluZ0Z1bmN0aW9uKGZpbHRlci5maWVsZCwgZmlsdGVyLnZhbHVlIGFzIG5ldmVyKTtcbiAgICB9XG4gIH1cbiAgcHJvY2Vzc1NpbXBsZVBhcmFtZXRlcnMoXG4gICAgcGFyYW1ldGVyTmFtZTogJ3NraXAnIHwgJ3RvcCcsXG4gICAgcXVlcnk6IE9EYXRhUXVlcnksXG4gICAgcXVlcnlTdHJpbmc6IHN0cmluZyxcbiAgKTogc3RyaW5nIHtcbiAgICBpZiAocXVlcnlbcGFyYW1ldGVyTmFtZV0pIHtcbiAgICAgIHJldHVybiBgJHtxdWVyeVN0cmluZ30mJCR7cGFyYW1ldGVyTmFtZX09JHtxdWVyeVtwYXJhbWV0ZXJOYW1lXX1gO1xuICAgIH1cbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cbiAgcHJvY2Vzc0NhY2hlQnVzdGluZyhvcHRpb25zOiBGZXRjaE9wdGlvbnMsIHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChvcHRpb25zLmJ1c3RDYWNoZSkge1xuICAgICAgY29uc3QgdGltZVN0YW1wID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1stOi5UWl0vZywgJycpO1xuICAgICAgcmV0dXJuIGAke3F1ZXJ5U3RyaW5nfSZ0aW1lc3RhbXA9JHt0aW1lU3RhbXB9YDtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHByb2Nlc3NDb3VudChxdWVyeTogT0RhdGFRdWVyeSwgcXVlcnlTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHF1ZXJ5LmNvdW50ID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gYCR7cXVlcnlTdHJpbmd9JiRjb3VudD10cnVlYDtcbiAgfVxuXG4gIHB1YmxpYyBwcm9jZXNzRGF0ZXMocXVlcnlTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZVJlZ2V4ID1cbiAgICAgIC9EYXRlIFtlLXRdezJ9IFxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9LlxcZHszfVovZztcbiAgICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcbiAgICBjb25zdCBkYXRlTWF0Y2hlczogc3RyaW5nW10gPSBbXTtcbiAgICB3aGlsZSAoKG0gPSBkYXRlUmVnZXguZXhlYyhxdWVyeVN0cmluZykpICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSB0byBhdm9pZCBpbmZpbml0ZSBsb29wcyB3aXRoIHplcm8td2lkdGggbWF0Y2hlc1xuICAgICAgaWYgKG0uaW5kZXggPT09IGRhdGVSZWdleC5sYXN0SW5kZXgpIHtcbiAgICAgICAgZGF0ZVJlZ2V4Lmxhc3RJbmRleCsrO1xuICAgICAgfVxuICAgICAgbS5mb3JFYWNoKChtYXRjaCkgPT4ge1xuICAgICAgICBkYXRlTWF0Y2hlcy5wdXNoKG1hdGNoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBkYXRlTWF0Y2hlcy5mb3JFYWNoKFxuICAgICAgKGRhdGUpID0+XG4gICAgICAgIChxdWVyeVN0cmluZyA9IHF1ZXJ5U3RyaW5nLnJlcGxhY2UoXG4gICAgICAgICAgZGF0ZSxcbiAgICAgICAgICBkYXRlLnJlcGxhY2UoL1RcXGR7Mn06XFxkezJ9OlxcZHsyfS5cXGR7M31aL2csICcnKSxcbiAgICAgICAgKSksXG4gICAgKTtcbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgcHJvY2Vzc0d1aWRzKHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGd1aWRSZWdleCA9XG4gICAgICAvJ1tcXGRBLUZdezh9LT9bXFxkQS1GXXs0fS0/W1xcZEEtRl17NH0tP1tcXGRBLUZdezR9LT9bXFxkQS1GXXsxMn0nL2dpO1xuICAgIGxldCBtOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuICAgIGNvbnN0IGd1aWRNYXRjaGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHdoaWxlICgobSA9IGd1aWRSZWdleC5leGVjKHF1ZXJ5U3RyaW5nKSkgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIGluZmluaXRlIGxvb3BzIHdpdGggemVyby13aWR0aCBtYXRjaGVzXG4gICAgICBpZiAobS5pbmRleCA9PT0gZ3VpZFJlZ2V4Lmxhc3RJbmRleCkge1xuICAgICAgICBndWlkUmVnZXgubGFzdEluZGV4Kys7XG4gICAgICB9XG4gICAgICBtLmZvckVhY2goKG1hdGNoKSA9PiB7XG4gICAgICAgIGd1aWRNYXRjaGVzLnB1c2gobWF0Y2gpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGd1aWRNYXRjaGVzLmZvckVhY2goXG4gICAgICAoZ3VpZCkgPT5cbiAgICAgICAgKHF1ZXJ5U3RyaW5nID0gcXVlcnlTdHJpbmcucmVwbGFjZShndWlkLCBndWlkLnJlcGxhY2UoLycvZywgJycpKSksXG4gICAgKTtcbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgcHJvY2Vzc1NlbGVjdG9ycyhzdGF0ZTogT0RhdGFRdWVyeSwgcXVlcnlTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHN0YXRlLnNlbGVjdCAmJiBzdGF0ZS5zZWxlY3QubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGAke3F1ZXJ5U3RyaW5nfSYkc2VsZWN0PSR7c3RhdGUuc2VsZWN0LmpvaW4oKX1gO1xuICAgIH1cbiAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gIH1cbn1cbiJdfQ==
@@ -312,9 +312,10 @@ class ODataClientService {
312
312
  }
313
313
  result += ')';
314
314
  result = result
315
- .replace(/\(;\)$/, '')
316
- .replace(/\(\)/, '')
317
- .replace(/;\)/, ')');
315
+ .replace(/\(;\$expand=/, '($expand=') //Replaces empty expand "(;$expand=" with "($expand="
316
+ .replace(/\$expand=;?\)$/, ')') //Replaces empty expand ";$expand=;)" or ";$expand=)" with ")"
317
+ .replace(/\(;\)$/, '') //Removes empty expansion clause "(;)"
318
+ .replace(/;\)$/, ')'); //Replaces ";)" with ")"
318
319
  }
319
320
  return result;
320
321
  }
@@ -1 +1 @@
1
- {"version":3,"file":"imng-odata-client.mjs","sources":["../../../../libs/imng-odata-client/src/lib/models/child-filter.ts","../../../../libs/imng-odata-client/src/lib/models/composite-filter.ts","../../../../libs/imng-odata-client/src/lib/models/computation-operators.ts","../../../../libs/imng-odata-client/src/lib/models/computation.ts","../../../../libs/imng-odata-client/src/lib/models/expander.ts","../../../../libs/imng-odata-client/src/lib/helpers/filter-serializers.ts","../../../../libs/imng-odata-client/src/lib/models/filter-operators.ts","../../../../libs/imng-odata-client/src/lib/models/odata-result.ts","../../../../libs/imng-odata-client/src/lib/helpers/get-filter-operator.ts","../../../../libs/imng-odata-client/src/lib/operators/map-data.ts","../../../../libs/imng-odata-client/src/lib/services/odata-client.service.ts","../../../../libs/imng-odata-client/src/lib/imng-odata-client.module.ts","../../../../libs/imng-odata-client/src/lib/helpers/create-odata-result.ts","../../../../libs/imng-odata-client/src/imng-odata-client.ts"],"sourcesContent":["import { CompositeFilter } from './composite-filter';\nimport { Filter } from './filter';\n\nexport interface ChildFilter extends Filter {\n /**\n * Used to support child entity filtering:\n * Child table name/navigation property\n * */\n childTable: string;\n /**\n * Used to support child entity filtering:\n * Specifies whether all or some of the child records have to match the given criteria\n * */\n linqOperation: 'all' | 'any';\n}\n\nexport function isChildFilter(\n source: CompositeFilter | Filter | ChildFilter,\n): source is ChildFilter {\n return !!(source as ChildFilter)?.childTable;\n}\n","import { ChildFilter } from './child-filter';\nimport { Filter } from './filter';\n\n/**\n * A complex filter expression.\n */\nexport interface CompositeFilter {\n /**\n * The logical operation to use when the `filter.filters` option is set.\n *\n * The supported values are:\n * * `\"and\"`\n * * `\"or\"`\n */\n logic: 'or' | 'and';\n /**\n * The nested filter expressions\n */\n filters: Array<Filter | ChildFilter | CompositeFilter>;\n}\n\nexport function isCompositeFilter(\n source: CompositeFilter | Filter | ChildFilter,\n): source is CompositeFilter {\n return !!(source as CompositeFilter)?.filters;\n}\n","export enum ComputationOperators {\n Multiply = 'mul',\n Divide = 'div',\n Add = 'add',\n Subtract = 'sub',\n Modulus = 'mod',\n}\n","import { ComputationOperators } from './computation-operators';\n\nexport interface Computation {\n /** This is the first value to be used in the computation */\n fieldA: string | number;\n /** This is the second value to be used in the computation */\n fieldB: string | number;\n operator: ComputationOperators | string; //NOSONAR\n\n /** This MUST differ from the names of declared or dynamic properties of the identified resources. */\n alias: string;\n}\n\nexport function isComputation(\n source: string | Computation,\n): source is Computation {\n return !!(source as Computation)?.operator;\n}\n","import { ODataQuery } from './odata-query';\n\nexport interface Expander extends ODataQuery {\n table: string;\n}\n\nexport function isExpander(source: string | Expander): source is Expander {\n return !!(source as Expander)?.table;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function serializeValue(value?: IdType): string {\n if (typeof value === 'string') {\n return `'${value}'`;\n }\n return value instanceof Date\n ? `${value.toISOString().split('T')[0]}`\n : `${value}`;\n}\n\nexport const serializeSimpleFilter = (\n field: string,\n operator: string,\n value?: IdType,\n): string => `${field}+${operator}+${serializeValue(value)}`;\n\nexport const serializeArrayFilter = (\n field: string,\n operator: string,\n values?: IdType[],\n): string =>\n values\n ? `${field}+${operator}+(${values.map((m) => serializeValue(m)).join(',')})`\n : '';\n\nexport const serializeFunctionFilter = (\n field: string,\n func: string,\n value?: IdType,\n): string => (value ? `${func}(${field},${serializeValue(value)})` : '');\n","import { IdType } from 'imng-nrsrx-client-utils';\nimport { IFilterOperator } from './filter-operator';\nimport {\n serializeArrayFilter,\n serializeFunctionFilter,\n serializeSimpleFilter,\n} from '../helpers/filter-serializers';\n\nexport interface IFilterOperators {\n [key: string]: IFilterOperator;\n}\n\n/**\n * Represents the list of supported simple filter operators.\n */\nexport class FilterOperators {\n /**\n * The `eq` operator.\n */\n public static readonly equals: IFilterOperator = {\n name: 'equals',\n toODataString: (field: string, value?: IdType) =>\n serializeSimpleFilter(field, 'eq', value),\n };\n /**\n * The `gt` operator.\n */\n public static readonly greaterThan: IFilterOperator = {\n name: 'greaterThan',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'gt', value),\n };\n /**\n * The `ge` operator.\n */\n public static readonly greaterThanOrEquals: IFilterOperator = {\n name: 'greaterThanOrEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'ge', value),\n };\n /**\n * The `lt` operator.\n */\n public static readonly lessThan: IFilterOperator = {\n name: 'lessThan',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'lt', value),\n };\n /**\n * The `le` operator.\n */\n public static readonly lessThanOrEquals: IFilterOperator = {\n name: 'lessThanOrEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'le', value),\n };\n /**\n * The `ne` operator.\n */\n public static readonly notEquals: IFilterOperator = {\n name: 'notEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'ne', value),\n };\n /**\n * The `in` operator.\n */\n public static readonly in: IFilterOperator = {\n name: 'in',\n toODataString: (field: string, values?: IdType[]): string =>\n serializeArrayFilter(field, 'in', values),\n };\n /**\n * The `not in` operator.\n */\n public static readonly notIn: IFilterOperator = {\n name: 'notIn',\n toODataString: (field: string, values?: IdType[]): string =>\n serializeArrayFilter(field, 'not+in', values),\n };\n /**\n * The `is not null` operator.\n */\n\n public static readonly notNull: IFilterOperator = {\n name: 'notNull',\n toODataString: (field: string): string => `${field}+ne+null`,\n };\n /**\n * The `is null` operator.\n */\n public static readonly isNull: IFilterOperator = {\n name: 'isNull',\n toODataString: (field: string): string => `${field}+eq+null`,\n };\n /**\n * The `contains` operator.\n */\n public static readonly contains: IFilterOperator = {\n name: 'contains',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'contains', value),\n };\n /**\n * The `not contain` operator.\n */\n public static readonly notContains: IFilterOperator = {\n name: 'notContains',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+contains', value),\n };\n /**\n * The `ends with` operator.\n */\n public static readonly endsWith: IFilterOperator = {\n name: 'endswith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'endswith', value),\n };\n /**\n * The `not ends with` operator.\n */\n public static readonly notEndsWith: IFilterOperator = {\n name: 'notEndsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+endswith', value),\n };\n /**\n * The `startswith` operator.\n */\n public static readonly startsWith: IFilterOperator = {\n name: 'startsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'startswith', value),\n };\n /**\n * The `not start with` operator.\n */\n public static readonly notStartsWith: IFilterOperator = {\n name: 'notStartsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+startswith', value),\n };\n /**\n * The `empty` operator.\n */\n public static readonly isEmpty: IFilterOperator = {\n name: 'isEmpty',\n toODataString: (field: string): string =>\n serializeSimpleFilter(field, 'eq', ''),\n };\n /**\n * The `not empty` operator.\n */\n public static readonly notEmpty: IFilterOperator = {\n name: 'notEmpty',\n toODataString: (field: string): string =>\n serializeSimpleFilter(field, 'ne', ''),\n };\n}\n\nexport const filterOperators: IFilterOperators = {\n contains: FilterOperators.contains,\n endsWith: FilterOperators.endsWith,\n equals: FilterOperators.equals,\n dateIs: FilterOperators.equals,\n greaterThan: FilterOperators.greaterThan,\n gt: FilterOperators.greaterThan,\n dateAfter: FilterOperators.greaterThan,\n greaterThanOrEquals: FilterOperators.greaterThanOrEquals,\n gte: FilterOperators.greaterThanOrEquals,\n in: FilterOperators.in,\n isEmpty: FilterOperators.isEmpty,\n isNull: FilterOperators.isNull,\n lessThan: FilterOperators.lessThan,\n lt: FilterOperators.lessThan,\n dateBefore: FilterOperators.lessThan,\n lessThanOrEquals: FilterOperators.lessThanOrEquals,\n lte: FilterOperators.lessThan,\n notContains: FilterOperators.notContains,\n notEmpty: FilterOperators.notEmpty,\n notEndsWith: FilterOperators.notEndsWith,\n notEquals: FilterOperators.notEquals,\n dateIsNot: FilterOperators.notEquals,\n notIn: FilterOperators.notIn,\n notNull: FilterOperators.notNull,\n notStartsWith: FilterOperators.notStartsWith,\n startsWith: FilterOperators.startsWith,\n};\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport interface ODataResult<T extends { id?: IdType } | unknown> {\n value: T[];\n count?: number;\n '@odata.count'?: number;\n}\n\nexport function createEmptyODataResult<\n T extends { id?: IdType } | unknown,\n>(): ODataResult<T> {\n return { value: Array<T>(), count: 0 };\n}\n\nexport function isODataResult<T extends { id?: IdType } | unknown>(\n source: unknown,\n): source is ODataResult<T> {\n return !!(source as ODataResult<T>)?.value;\n}\n","import { filterOperators } from '../models';\nimport { IFilterOperator } from '../models/filter-operator';\n\nexport const getFilterOperator = (operatorName: string): IFilterOperator =>\n filterOperators[operatorName];\n","import { MILLI_SECS_PER_SEC } from 'imng-nrsrx-client-utils';\nimport { map } from 'rxjs';\nimport { FetchOptions, ODataResult } from '../models';\n\nexport const mapData = <T extends object>(options: FetchOptions) =>\n map((response: ODataResult<T> | T[]): ODataResult<T> => {\n if (!response) {\n return { value: [], count: 0 };\n }\n return Array.isArray(response)\n ? {\n value: response,\n count: response.length,\n }\n : ({\n value: parseDatesInCollection(response.value, options),\n count: response['@odata.count'],\n } as ODataResult<T>);\n });\n\nexport function parseDatesInCollection<T extends object>(\n collection: Array<T>,\n options: FetchOptions,\n): Array<T> {\n if (collection.length > 0) {\n const utcProps = Object.keys(collection[0]).filter((x) =>\n x.endsWith('Utc'),\n );\n const dateProps = Object.keys(collection[0]).filter(\n (x) => x.endsWith('Date') || x === 'date',\n );\n\n options.utcNullableProps?.forEach((t) => {\n if (utcProps.indexOf(t) === -1) {\n utcProps.push(t);\n }\n });\n\n options.dateNullableProps?.forEach((t) => {\n if (dateProps.indexOf(t) === -1) {\n dateProps.push(t);\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // prettier-ignore\n collection.forEach((val: any) => {//NOSONAR\n utcProps.filter((p) => val[p]).forEach((p) => (val[p] = new Date(val[p])));\n dateProps.filter((p) => val[p]).forEach((p) => (val[p] = toLocalDate(val[p])));\n });\n }\n return collection;\n}\nexport function toLocalDate(date: string): Date {\n const dt = new Date(date);\n return new Date(\n dt.getTime() + Math.abs(dt.getTimezoneOffset() * MILLI_SECS_PER_SEC),\n );\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getFilterOperator } from '../helpers/get-filter-operator';\nimport {\n ChildFilter,\n CompositeFilter,\n Expander,\n FetchOptions,\n Filter,\n isChildFilter,\n isCompositeFilter,\n isExpander,\n ODataQuery,\n ODataResult,\n} from '../models';\nimport { mapData } from '../operators/map-data';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ODataClientService {\n constructor(private readonly httpClient: HttpClient) {}\n\n public fetch<T extends object>(\n odataEndpoint: string,\n query: ODataQuery,\n options: FetchOptions = {},\n ): Observable<ODataResult<T>> {\n const queryStr = this.getODataString(query, options);\n return this.httpClient\n .get<ODataResult<T> | T[]>(`${odataEndpoint}?${queryStr}`)\n .pipe(mapData<T>(options));\n }\n\n public getODataString(query: ODataQuery, options: FetchOptions = {}): string {\n let queryString = '';\n queryString = this.processFilters(query, options, queryString);\n queryString = this.processOrderBy(query, queryString);\n queryString = this.processSelectors(query, queryString);\n queryString = this.processExpanders(query, queryString);\n queryString = this.processSimpleParameters('top', query, queryString);\n queryString = this.processSimpleParameters('skip', query, queryString);\n queryString = this.processGuids(queryString);\n queryString = this.processDates(queryString);\n queryString = this.processCount(query, queryString);\n queryString = this.processCacheBusting(options, queryString);\n queryString = queryString.substring(1); // removing first &\n return queryString;\n }\n\n public processExpanders(query: ODataQuery, queryString: string): string {\n if (query.expand && query.expand.length > 0) {\n const expansionStrings = query.expand.map((element) =>\n this.getExpansionString(element),\n );\n queryString += `&$expand=${expansionStrings.join(',')}`;\n }\n return queryString;\n }\n\n public getExpansionString(element: Expander): string {\n let result = '';\n if (!element) {\n return result;\n }\n if (typeof element === 'string') {\n result += element;\n } else {\n result += `${element.table}(`;\n const query: ODataQuery = {\n ...element,\n count: element.count || false,\n expand: undefined,\n };\n result += `${this.getODataString(query).replace(/&/g, ';')};`;\n if (element.expand) {\n const expanders = element.expand.map((expander) => {\n if (isExpander(expander)) {\n return this.getExpansionString(expander);\n }\n return expander;\n });\n result += `$expand=${expanders.join(',')};`;\n }\n result += ')';\n result = result\n .replace(/\\(;\\)$/, '')\n .replace(/\\(\\)/, '')\n .replace(/;\\)/, ')');\n }\n return result;\n }\n\n processOrderBy(query: ODataQuery, queryString: string): string {\n if (!query.orderBy || !query.orderBy.length) {\n return queryString;\n }\n const sortString = query.orderBy\n .map((m) => `${m.field}${m.dir === 'desc' ? '+desc' : ''}`)\n .join(',');\n return `${queryString}&$orderby=${sortString}`;\n }\n processFilters(\n query: ODataQuery,\n _options: FetchOptions,\n queryString: string,\n ): string {\n if (\n !query.filter ||\n !query.filter.filters.length ||\n !query.filter.filters.length\n ) {\n return queryString;\n }\n const filterString = this.serializeCompositeFilter(query.filter);\n return `${queryString}&$filter=${filterString}`;\n }\n serializeCompositeFilter(filter: CompositeFilter): string {\n const filterLogicSeperator = `+${filter.logic}+`;\n return `(${filter.filters\n .map((m) =>\n isCompositeFilter(m)\n ? this.serializeCompositeFilter(m)\n : this.serializeFilter(m),\n )\n .filter((m) => m && m !== '()')\n .join(filterLogicSeperator)})`;\n }\n\n public serializeFilter(filter: Filter | ChildFilter): string {\n const odataStringFunction =\n filter.operator?.toODataString ||\n getFilterOperator(filter.operator?.name || 'equals').toODataString;\n if (isChildFilter(filter)) {\n const childFieldName = `o/${filter.field}`;\n return `${filter.childTable}/${\n filter.linqOperation\n }(o: ${odataStringFunction(\n childFieldName,\n filter.value as never,\n )} )`.replace(/\\s\\)/gm, '');\n } else {\n return odataStringFunction(filter.field, filter.value as never);\n }\n }\n processSimpleParameters(\n parameterName: 'skip' | 'top',\n query: ODataQuery,\n queryString: string,\n ): string {\n if (query[parameterName]) {\n return `${queryString}&$${parameterName}=${query[parameterName]}`;\n }\n return queryString;\n }\n processCacheBusting(options: FetchOptions, queryString: string): string {\n if (options.bustCache) {\n const timeStamp = new Date().toISOString().replace(/[-:.TZ]/g, '');\n return `${queryString}&timestamp=${timeStamp}`;\n }\n return queryString;\n }\n\n public processCount(query: ODataQuery, queryString: string): string {\n if (query.count === false) {\n return queryString;\n }\n return `${queryString}&$count=true`;\n }\n\n public processDates(queryString: string): string {\n const dateRegex =\n /Date [e-t]{2} \\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/g;\n let m: RegExpExecArray | null;\n const dateMatches: string[] = [];\n while ((m = dateRegex.exec(queryString)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === dateRegex.lastIndex) {\n dateRegex.lastIndex++;\n }\n m.forEach((match) => {\n dateMatches.push(match);\n });\n }\n dateMatches.forEach(\n (date) =>\n (queryString = queryString.replace(\n date,\n date.replace(/T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/g, ''),\n )),\n );\n return queryString;\n }\n\n public processGuids(queryString: string): string {\n const guidRegex =\n /'[\\dA-F]{8}-?[\\dA-F]{4}-?[\\dA-F]{4}-?[\\dA-F]{4}-?[\\dA-F]{12}'/gi;\n let m: RegExpExecArray | null;\n const guidMatches: string[] = [];\n while ((m = guidRegex.exec(queryString)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === guidRegex.lastIndex) {\n guidRegex.lastIndex++;\n }\n m.forEach((match) => {\n guidMatches.push(match);\n });\n }\n guidMatches.forEach(\n (guid) =>\n (queryString = queryString.replace(guid, guid.replace(/'/g, ''))),\n );\n return queryString;\n }\n\n public processSelectors(state: ODataQuery, queryString: string): string {\n if (state.select && state.select.length > 0) {\n return `${queryString}&$select=${state.select.join()}`;\n }\n return queryString;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ODataClientService } from './services/odata-client.service';\n\n@NgModule({\n imports: [CommonModule, HttpClientModule],\n providers: [ODataClientService],\n})\nexport class ImngODataClientModule {}\n","import { IdType } from 'imng-nrsrx-client-utils';\nimport { ODataResult } from '../models/odata-result';\n\nexport function createODataResult<T extends { id?: IdType } | unknown>(\n t: T[],\n): ODataResult<T> {\n return {\n value: t,\n count: t?.length,\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-odata-client.mjs","sources":["../../../../libs/imng-odata-client/src/lib/models/child-filter.ts","../../../../libs/imng-odata-client/src/lib/models/composite-filter.ts","../../../../libs/imng-odata-client/src/lib/models/computation-operators.ts","../../../../libs/imng-odata-client/src/lib/models/computation.ts","../../../../libs/imng-odata-client/src/lib/models/expander.ts","../../../../libs/imng-odata-client/src/lib/helpers/filter-serializers.ts","../../../../libs/imng-odata-client/src/lib/models/filter-operators.ts","../../../../libs/imng-odata-client/src/lib/models/odata-result.ts","../../../../libs/imng-odata-client/src/lib/helpers/get-filter-operator.ts","../../../../libs/imng-odata-client/src/lib/operators/map-data.ts","../../../../libs/imng-odata-client/src/lib/services/odata-client.service.ts","../../../../libs/imng-odata-client/src/lib/imng-odata-client.module.ts","../../../../libs/imng-odata-client/src/lib/helpers/create-odata-result.ts","../../../../libs/imng-odata-client/src/imng-odata-client.ts"],"sourcesContent":["import { CompositeFilter } from './composite-filter';\nimport { Filter } from './filter';\n\nexport interface ChildFilter extends Filter {\n /**\n * Used to support child entity filtering:\n * Child table name/navigation property\n * */\n childTable: string;\n /**\n * Used to support child entity filtering:\n * Specifies whether all or some of the child records have to match the given criteria\n * */\n linqOperation: 'all' | 'any';\n}\n\nexport function isChildFilter(\n source: CompositeFilter | Filter | ChildFilter,\n): source is ChildFilter {\n return !!(source as ChildFilter)?.childTable;\n}\n","import { ChildFilter } from './child-filter';\nimport { Filter } from './filter';\n\n/**\n * A complex filter expression.\n */\nexport interface CompositeFilter {\n /**\n * The logical operation to use when the `filter.filters` option is set.\n *\n * The supported values are:\n * * `\"and\"`\n * * `\"or\"`\n */\n logic: 'or' | 'and';\n /**\n * The nested filter expressions\n */\n filters: Array<Filter | ChildFilter | CompositeFilter>;\n}\n\nexport function isCompositeFilter(\n source: CompositeFilter | Filter | ChildFilter,\n): source is CompositeFilter {\n return !!(source as CompositeFilter)?.filters;\n}\n","export enum ComputationOperators {\n Multiply = 'mul',\n Divide = 'div',\n Add = 'add',\n Subtract = 'sub',\n Modulus = 'mod',\n}\n","import { ComputationOperators } from './computation-operators';\n\nexport interface Computation {\n /** This is the first value to be used in the computation */\n fieldA: string | number;\n /** This is the second value to be used in the computation */\n fieldB: string | number;\n operator: ComputationOperators | string; //NOSONAR\n\n /** This MUST differ from the names of declared or dynamic properties of the identified resources. */\n alias: string;\n}\n\nexport function isComputation(\n source: string | Computation,\n): source is Computation {\n return !!(source as Computation)?.operator;\n}\n","import { ODataQuery } from './odata-query';\n\nexport interface Expander extends ODataQuery {\n table: string;\n}\n\nexport function isExpander(source: string | Expander): source is Expander {\n return !!(source as Expander)?.table;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function serializeValue(value?: IdType): string {\n if (typeof value === 'string') {\n return `'${value}'`;\n }\n return value instanceof Date\n ? `${value.toISOString().split('T')[0]}`\n : `${value}`;\n}\n\nexport const serializeSimpleFilter = (\n field: string,\n operator: string,\n value?: IdType,\n): string => `${field}+${operator}+${serializeValue(value)}`;\n\nexport const serializeArrayFilter = (\n field: string,\n operator: string,\n values?: IdType[],\n): string =>\n values\n ? `${field}+${operator}+(${values.map((m) => serializeValue(m)).join(',')})`\n : '';\n\nexport const serializeFunctionFilter = (\n field: string,\n func: string,\n value?: IdType,\n): string => (value ? `${func}(${field},${serializeValue(value)})` : '');\n","import { IdType } from 'imng-nrsrx-client-utils';\nimport { IFilterOperator } from './filter-operator';\nimport {\n serializeArrayFilter,\n serializeFunctionFilter,\n serializeSimpleFilter,\n} from '../helpers/filter-serializers';\n\nexport interface IFilterOperators {\n [key: string]: IFilterOperator;\n}\n\n/**\n * Represents the list of supported simple filter operators.\n */\nexport class FilterOperators {\n /**\n * The `eq` operator.\n */\n public static readonly equals: IFilterOperator = {\n name: 'equals',\n toODataString: (field: string, value?: IdType) =>\n serializeSimpleFilter(field, 'eq', value),\n };\n /**\n * The `gt` operator.\n */\n public static readonly greaterThan: IFilterOperator = {\n name: 'greaterThan',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'gt', value),\n };\n /**\n * The `ge` operator.\n */\n public static readonly greaterThanOrEquals: IFilterOperator = {\n name: 'greaterThanOrEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'ge', value),\n };\n /**\n * The `lt` operator.\n */\n public static readonly lessThan: IFilterOperator = {\n name: 'lessThan',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'lt', value),\n };\n /**\n * The `le` operator.\n */\n public static readonly lessThanOrEquals: IFilterOperator = {\n name: 'lessThanOrEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'le', value),\n };\n /**\n * The `ne` operator.\n */\n public static readonly notEquals: IFilterOperator = {\n name: 'notEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'ne', value),\n };\n /**\n * The `in` operator.\n */\n public static readonly in: IFilterOperator = {\n name: 'in',\n toODataString: (field: string, values?: IdType[]): string =>\n serializeArrayFilter(field, 'in', values),\n };\n /**\n * The `not in` operator.\n */\n public static readonly notIn: IFilterOperator = {\n name: 'notIn',\n toODataString: (field: string, values?: IdType[]): string =>\n serializeArrayFilter(field, 'not+in', values),\n };\n /**\n * The `is not null` operator.\n */\n\n public static readonly notNull: IFilterOperator = {\n name: 'notNull',\n toODataString: (field: string): string => `${field}+ne+null`,\n };\n /**\n * The `is null` operator.\n */\n public static readonly isNull: IFilterOperator = {\n name: 'isNull',\n toODataString: (field: string): string => `${field}+eq+null`,\n };\n /**\n * The `contains` operator.\n */\n public static readonly contains: IFilterOperator = {\n name: 'contains',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'contains', value),\n };\n /**\n * The `not contain` operator.\n */\n public static readonly notContains: IFilterOperator = {\n name: 'notContains',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+contains', value),\n };\n /**\n * The `ends with` operator.\n */\n public static readonly endsWith: IFilterOperator = {\n name: 'endswith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'endswith', value),\n };\n /**\n * The `not ends with` operator.\n */\n public static readonly notEndsWith: IFilterOperator = {\n name: 'notEndsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+endswith', value),\n };\n /**\n * The `startswith` operator.\n */\n public static readonly startsWith: IFilterOperator = {\n name: 'startsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'startswith', value),\n };\n /**\n * The `not start with` operator.\n */\n public static readonly notStartsWith: IFilterOperator = {\n name: 'notStartsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+startswith', value),\n };\n /**\n * The `empty` operator.\n */\n public static readonly isEmpty: IFilterOperator = {\n name: 'isEmpty',\n toODataString: (field: string): string =>\n serializeSimpleFilter(field, 'eq', ''),\n };\n /**\n * The `not empty` operator.\n */\n public static readonly notEmpty: IFilterOperator = {\n name: 'notEmpty',\n toODataString: (field: string): string =>\n serializeSimpleFilter(field, 'ne', ''),\n };\n}\n\nexport const filterOperators: IFilterOperators = {\n contains: FilterOperators.contains,\n endsWith: FilterOperators.endsWith,\n equals: FilterOperators.equals,\n dateIs: FilterOperators.equals,\n greaterThan: FilterOperators.greaterThan,\n gt: FilterOperators.greaterThan,\n dateAfter: FilterOperators.greaterThan,\n greaterThanOrEquals: FilterOperators.greaterThanOrEquals,\n gte: FilterOperators.greaterThanOrEquals,\n in: FilterOperators.in,\n isEmpty: FilterOperators.isEmpty,\n isNull: FilterOperators.isNull,\n lessThan: FilterOperators.lessThan,\n lt: FilterOperators.lessThan,\n dateBefore: FilterOperators.lessThan,\n lessThanOrEquals: FilterOperators.lessThanOrEquals,\n lte: FilterOperators.lessThan,\n notContains: FilterOperators.notContains,\n notEmpty: FilterOperators.notEmpty,\n notEndsWith: FilterOperators.notEndsWith,\n notEquals: FilterOperators.notEquals,\n dateIsNot: FilterOperators.notEquals,\n notIn: FilterOperators.notIn,\n notNull: FilterOperators.notNull,\n notStartsWith: FilterOperators.notStartsWith,\n startsWith: FilterOperators.startsWith,\n};\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport interface ODataResult<T extends { id?: IdType } | unknown> {\n value: T[];\n count?: number;\n '@odata.count'?: number;\n}\n\nexport function createEmptyODataResult<\n T extends { id?: IdType } | unknown,\n>(): ODataResult<T> {\n return { value: Array<T>(), count: 0 };\n}\n\nexport function isODataResult<T extends { id?: IdType } | unknown>(\n source: unknown,\n): source is ODataResult<T> {\n return !!(source as ODataResult<T>)?.value;\n}\n","import { filterOperators } from '../models';\nimport { IFilterOperator } from '../models/filter-operator';\n\nexport const getFilterOperator = (operatorName: string): IFilterOperator =>\n filterOperators[operatorName];\n","import { MILLI_SECS_PER_SEC } from 'imng-nrsrx-client-utils';\nimport { map } from 'rxjs';\nimport { FetchOptions, ODataResult } from '../models';\n\nexport const mapData = <T extends object>(options: FetchOptions) =>\n map((response: ODataResult<T> | T[]): ODataResult<T> => {\n if (!response) {\n return { value: [], count: 0 };\n }\n return Array.isArray(response)\n ? {\n value: response,\n count: response.length,\n }\n : ({\n value: parseDatesInCollection(response.value, options),\n count: response['@odata.count'],\n } as ODataResult<T>);\n });\n\nexport function parseDatesInCollection<T extends object>(\n collection: Array<T>,\n options: FetchOptions,\n): Array<T> {\n if (collection.length > 0) {\n const utcProps = Object.keys(collection[0]).filter((x) =>\n x.endsWith('Utc'),\n );\n const dateProps = Object.keys(collection[0]).filter(\n (x) => x.endsWith('Date') || x === 'date',\n );\n\n options.utcNullableProps?.forEach((t) => {\n if (utcProps.indexOf(t) === -1) {\n utcProps.push(t);\n }\n });\n\n options.dateNullableProps?.forEach((t) => {\n if (dateProps.indexOf(t) === -1) {\n dateProps.push(t);\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // prettier-ignore\n collection.forEach((val: any) => {//NOSONAR\n utcProps.filter((p) => val[p]).forEach((p) => (val[p] = new Date(val[p])));\n dateProps.filter((p) => val[p]).forEach((p) => (val[p] = toLocalDate(val[p])));\n });\n }\n return collection;\n}\nexport function toLocalDate(date: string): Date {\n const dt = new Date(date);\n return new Date(\n dt.getTime() + Math.abs(dt.getTimezoneOffset() * MILLI_SECS_PER_SEC),\n );\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getFilterOperator } from '../helpers/get-filter-operator';\nimport {\n ChildFilter,\n CompositeFilter,\n Expander,\n FetchOptions,\n Filter,\n isChildFilter,\n isCompositeFilter,\n isExpander,\n ODataQuery,\n ODataResult,\n} from '../models';\nimport { mapData } from '../operators/map-data';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ODataClientService {\n constructor(private readonly httpClient: HttpClient) {}\n\n public fetch<T extends object>(\n odataEndpoint: string,\n query: ODataQuery,\n options: FetchOptions = {},\n ): Observable<ODataResult<T>> {\n const queryStr = this.getODataString(query, options);\n return this.httpClient\n .get<ODataResult<T> | T[]>(`${odataEndpoint}?${queryStr}`)\n .pipe(mapData<T>(options));\n }\n\n public getODataString(query: ODataQuery, options: FetchOptions = {}): string {\n let queryString = '';\n queryString = this.processFilters(query, options, queryString);\n queryString = this.processOrderBy(query, queryString);\n queryString = this.processSelectors(query, queryString);\n queryString = this.processExpanders(query, queryString);\n queryString = this.processSimpleParameters('top', query, queryString);\n queryString = this.processSimpleParameters('skip', query, queryString);\n queryString = this.processGuids(queryString);\n queryString = this.processDates(queryString);\n queryString = this.processCount(query, queryString);\n queryString = this.processCacheBusting(options, queryString);\n queryString = queryString.substring(1); // removing first &\n return queryString;\n }\n\n public processExpanders(query: ODataQuery, queryString: string): string {\n if (query.expand && query.expand.length > 0) {\n const expansionStrings = query.expand.map((element) =>\n this.getExpansionString(element),\n );\n queryString += `&$expand=${expansionStrings.join(',')}`;\n }\n return queryString;\n }\n\n public getExpansionString(element: Expander): string {\n let result = '';\n if (!element) {\n return result;\n }\n if (typeof element === 'string') {\n result += element;\n } else {\n result += `${element.table}(`;\n const query: ODataQuery = {\n ...element,\n count: element.count || false,\n expand: undefined,\n };\n result += `${this.getODataString(query).replace(/&/g, ';')};`;\n if (element.expand) {\n const expanders = element.expand.map((expander) => {\n if (isExpander(expander)) {\n return this.getExpansionString(expander);\n }\n return expander;\n });\n result += `$expand=${expanders.join(',')};`;\n }\n result += ')';\n result = result\n .replace(/\\(;\\$expand=/, '($expand=') //Replaces empty expand \"(;$expand=\" with \"($expand=\"\n .replace(/\\$expand=;?\\)$/, ')') //Replaces empty expand \";$expand=;)\" or \";$expand=)\" with \")\"\n .replace(/\\(;\\)$/, '') //Removes empty expansion clause \"(;)\"\n .replace(/;\\)$/, ')'); //Replaces \";)\" with \")\"\n }\n return result;\n }\n\n processOrderBy(query: ODataQuery, queryString: string): string {\n if (!query.orderBy || !query.orderBy.length) {\n return queryString;\n }\n const sortString = query.orderBy\n .map((m) => `${m.field}${m.dir === 'desc' ? '+desc' : ''}`)\n .join(',');\n return `${queryString}&$orderby=${sortString}`;\n }\n processFilters(\n query: ODataQuery,\n _options: FetchOptions,\n queryString: string,\n ): string {\n if (\n !query.filter ||\n !query.filter.filters.length ||\n !query.filter.filters.length\n ) {\n return queryString;\n }\n const filterString = this.serializeCompositeFilter(query.filter);\n return `${queryString}&$filter=${filterString}`;\n }\n serializeCompositeFilter(filter: CompositeFilter): string {\n const filterLogicSeperator = `+${filter.logic}+`;\n return `(${filter.filters\n .map((m) =>\n isCompositeFilter(m)\n ? this.serializeCompositeFilter(m)\n : this.serializeFilter(m),\n )\n .filter((m) => m && m !== '()')\n .join(filterLogicSeperator)})`;\n }\n\n public serializeFilter(filter: Filter | ChildFilter): string {\n const odataStringFunction =\n filter.operator?.toODataString ||\n getFilterOperator(filter.operator?.name || 'equals').toODataString;\n if (isChildFilter(filter)) {\n const childFieldName = `o/${filter.field}`;\n return `${filter.childTable}/${\n filter.linqOperation\n }(o: ${odataStringFunction(\n childFieldName,\n filter.value as never,\n )} )`.replace(/\\s\\)/gm, '');\n } else {\n return odataStringFunction(filter.field, filter.value as never);\n }\n }\n processSimpleParameters(\n parameterName: 'skip' | 'top',\n query: ODataQuery,\n queryString: string,\n ): string {\n if (query[parameterName]) {\n return `${queryString}&$${parameterName}=${query[parameterName]}`;\n }\n return queryString;\n }\n processCacheBusting(options: FetchOptions, queryString: string): string {\n if (options.bustCache) {\n const timeStamp = new Date().toISOString().replace(/[-:.TZ]/g, '');\n return `${queryString}&timestamp=${timeStamp}`;\n }\n return queryString;\n }\n\n public processCount(query: ODataQuery, queryString: string): string {\n if (query.count === false) {\n return queryString;\n }\n return `${queryString}&$count=true`;\n }\n\n public processDates(queryString: string): string {\n const dateRegex =\n /Date [e-t]{2} \\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/g;\n let m: RegExpExecArray | null;\n const dateMatches: string[] = [];\n while ((m = dateRegex.exec(queryString)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === dateRegex.lastIndex) {\n dateRegex.lastIndex++;\n }\n m.forEach((match) => {\n dateMatches.push(match);\n });\n }\n dateMatches.forEach(\n (date) =>\n (queryString = queryString.replace(\n date,\n date.replace(/T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/g, ''),\n )),\n );\n return queryString;\n }\n\n public processGuids(queryString: string): string {\n const guidRegex =\n /'[\\dA-F]{8}-?[\\dA-F]{4}-?[\\dA-F]{4}-?[\\dA-F]{4}-?[\\dA-F]{12}'/gi;\n let m: RegExpExecArray | null;\n const guidMatches: string[] = [];\n while ((m = guidRegex.exec(queryString)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === guidRegex.lastIndex) {\n guidRegex.lastIndex++;\n }\n m.forEach((match) => {\n guidMatches.push(match);\n });\n }\n guidMatches.forEach(\n (guid) =>\n (queryString = queryString.replace(guid, guid.replace(/'/g, ''))),\n );\n return queryString;\n }\n\n public processSelectors(state: ODataQuery, queryString: string): string {\n if (state.select && state.select.length > 0) {\n return `${queryString}&$select=${state.select.join()}`;\n }\n return queryString;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ODataClientService } from './services/odata-client.service';\n\n@NgModule({\n imports: [CommonModule, HttpClientModule],\n providers: [ODataClientService],\n})\nexport class ImngODataClientModule {}\n","import { IdType } from 'imng-nrsrx-client-utils';\nimport { ODataResult } from '../models/odata-result';\n\nexport function createODataResult<T extends { id?: IdType } | unknown>(\n t: T[],\n): ODataResult<T> {\n return {\n value: t,\n count: t?.length,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAgBM,SAAU,aAAa,CAC3B,MAA8C,EAAA;IAE9C,OAAO,CAAC,EAAE,MAAsB,KAAA,IAAA,IAAtB,MAAsB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtB,MAAsB,CAAE,UAAU,CAAA,CAAC;AAC/C;;ACCM,SAAU,iBAAiB,CAC/B,MAA8C,EAAA;IAE9C,OAAO,CAAC,EAAE,MAA0B,KAAA,IAAA,IAA1B,MAA0B,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA1B,MAA0B,CAAE,OAAO,CAAA,CAAC;AAChD;;ACzBY,IAAA,qBAMX;AAND,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,KAAgB,CAAA;AAChB,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,KAAc,CAAA;AACd,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,KAAgB,CAAA;AAChB,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,KAAe,CAAA;AACjB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,GAM/B,EAAA,CAAA,CAAA;;ACOK,SAAU,aAAa,CAC3B,MAA4B,EAAA;IAE5B,OAAO,CAAC,EAAE,MAAsB,KAAA,IAAA,IAAtB,MAAsB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtB,MAAsB,CAAE,QAAQ,CAAA,CAAC;AAC7C;;ACXM,SAAU,UAAU,CAAC,MAAyB,EAAA;IAClD,OAAO,CAAC,EAAE,MAAmB,KAAA,IAAA,IAAnB,MAAmB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnB,MAAmB,CAAE,KAAK,CAAA,CAAC;AACvC;;ACNM,SAAU,cAAc,CAAC,KAAc,EAAA;AAC3C,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,CAAC;AACrB,KAAA;IACD,OAAO,KAAK,YAAY,IAAI;AAC1B,UAAE,CAAA,EAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;AACxC,UAAE,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC;AACjB,CAAC;MAEY,qBAAqB,GAAG,CACnC,KAAa,EACb,QAAgB,EAChB,KAAc,KACH,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,cAAc,CAAC,KAAK,CAAC,CAAA,EAAG;AAEtD,MAAM,oBAAoB,GAAG,CAClC,KAAa,EACb,QAAgB,EAChB,MAAiB,KAEjB,MAAM;MACF,CAAG,EAAA,KAAK,CAAI,CAAA,EAAA,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA;MAC1E,GAAG;AAEF,MAAM,uBAAuB,GAAG,CACrC,KAAa,EACb,IAAY,EACZ,KAAc,MACF,KAAK,GAAG,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;;AClBvE;;AAEG;MACU,eAAe,CAAA;;AAC1B;;AAEG;AACoB,eAAA,CAAA,MAAM,GAAoB;AAC/C,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;CAC5C,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,WAAW,GAAoB;AACpD,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;CAC5C,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,mBAAmB,GAAoB;AAC5D,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;CAC5C,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,QAAQ,GAAoB;AACjD,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;CAC5C,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,gBAAgB,GAAoB;AACzD,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;CAC5C,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,SAAS,GAAoB;AAClD,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;CAC5C,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,EAAE,GAAoB;AAC3C,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,MAAiB,KAC9C,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;CAC5C,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,KAAK,GAAoB;AAC9C,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,MAAiB,KAC9C,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;CAChD,CAAC;AACF;;AAEG;AAEoB,eAAA,CAAA,OAAO,GAAoB;AAChD,IAAA,IAAI,EAAE,SAAS;IACf,aAAa,EAAE,CAAC,KAAa,KAAa,CAAA,EAAG,KAAK,CAAU,QAAA,CAAA;CAC7D,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,MAAM,GAAoB;AAC/C,IAAA,IAAI,EAAE,QAAQ;IACd,aAAa,EAAE,CAAC,KAAa,KAAa,CAAA,EAAG,KAAK,CAAU,QAAA,CAAA;CAC7D,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,QAAQ,GAAoB;AACjD,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;CACpD,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,WAAW,GAAoB;AACpD,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,uBAAuB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC;CACxD,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,QAAQ,GAAoB;AACjD,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;CACpD,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,WAAW,GAAoB;AACpD,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,uBAAuB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC;CACxD,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,UAAU,GAAoB;AACnD,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC;CACtD,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,aAAa,GAAoB;AACtD,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,aAAa,EAAE,CAAC,KAAa,EAAE,KAAc,KAC3C,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC;CAC1D,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,OAAO,GAAoB;AAChD,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,aAAa,EAAE,CAAC,KAAa,KAC3B,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;CACzC,CAAC;AACF;;AAEG;AACoB,eAAA,CAAA,QAAQ,GAAoB;AACjD,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,aAAa,EAAE,CAAC,KAAa,KAC3B,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;CACzC,CAAC;AAGS,MAAA,eAAe,GAAqB;IAC/C,QAAQ,EAAE,eAAe,CAAC,QAAQ;IAClC,QAAQ,EAAE,eAAe,CAAC,QAAQ;IAClC,MAAM,EAAE,eAAe,CAAC,MAAM;IAC9B,MAAM,EAAE,eAAe,CAAC,MAAM;IAC9B,WAAW,EAAE,eAAe,CAAC,WAAW;IACxC,EAAE,EAAE,eAAe,CAAC,WAAW;IAC/B,SAAS,EAAE,eAAe,CAAC,WAAW;IACtC,mBAAmB,EAAE,eAAe,CAAC,mBAAmB;IACxD,GAAG,EAAE,eAAe,CAAC,mBAAmB;IACxC,EAAE,EAAE,eAAe,CAAC,EAAE;IACtB,OAAO,EAAE,eAAe,CAAC,OAAO;IAChC,MAAM,EAAE,eAAe,CAAC,MAAM;IAC9B,QAAQ,EAAE,eAAe,CAAC,QAAQ;IAClC,EAAE,EAAE,eAAe,CAAC,QAAQ;IAC5B,UAAU,EAAE,eAAe,CAAC,QAAQ;IACpC,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;IAClD,GAAG,EAAE,eAAe,CAAC,QAAQ;IAC7B,WAAW,EAAE,eAAe,CAAC,WAAW;IACxC,QAAQ,EAAE,eAAe,CAAC,QAAQ;IAClC,WAAW,EAAE,eAAe,CAAC,WAAW;IACxC,SAAS,EAAE,eAAe,CAAC,SAAS;IACpC,SAAS,EAAE,eAAe,CAAC,SAAS;IACpC,KAAK,EAAE,eAAe,CAAC,KAAK;IAC5B,OAAO,EAAE,eAAe,CAAC,OAAO;IAChC,aAAa,EAAE,eAAe,CAAC,aAAa;IAC5C,UAAU,EAAE,eAAe,CAAC,UAAU;;;SCnLxB,sBAAsB,GAAA;IAGpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACzC,CAAC;AAEK,SAAU,aAAa,CAC3B,MAAe,EAAA;IAEf,OAAO,CAAC,EAAE,MAAyB,KAAA,IAAA,IAAzB,MAAyB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAzB,MAAyB,CAAE,KAAK,CAAA,CAAC;AAC7C;;ACfO,MAAM,iBAAiB,GAAG,CAAC,YAAoB,KACpD,eAAe,CAAC,YAAY;;ACAvB,MAAM,OAAO,GAAG,CAAmB,OAAqB,KAC7D,GAAG,CAAC,CAAC,QAA8B,KAAoB;IACrD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAChC,KAAA;AACD,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC5B,UAAE;AACE,YAAA,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,QAAQ,CAAC,MAAM;AACvB,SAAA;AACH,UAAG;YACC,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;AACtD,YAAA,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC;SACb,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEW,SAAA,sBAAsB,CACpC,UAAoB,EACpB,OAAqB,EAAA;;AAErB,IAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KACnD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAClB,CAAC;AACF,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAC1C,CAAC;QAEF,CAAA,EAAA,GAAA,OAAO,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,CAAC,CAAC,KAAI;YACtC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9B,gBAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,CAAA,EAAA,GAAA,OAAO,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,CAAC,CAAC,KAAI;YACvC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/B,gBAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,aAAA;AACH,SAAC,CAAC,CAAC;;;AAIH,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC9B,YAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,YAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,SAAC,CAAC,CAAC;AACJ,KAAA;AACD,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC;AACK,SAAU,WAAW,CAAC,IAAY,EAAA;AACtC,IAAA,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,IAAI,CACb,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,kBAAkB,CAAC,CACrE,CAAC;AACJ;;MCrCa,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAA6B,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;AAEhD,IAAA,KAAK,CACV,aAAqB,EACrB,KAAiB,EACjB,UAAwB,EAAE,EAAA;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAuB,CAAG,EAAA,aAAa,CAAI,CAAA,EAAA,QAAQ,EAAE,CAAC;AACzD,aAAA,IAAI,CAAC,OAAO,CAAI,OAAO,CAAC,CAAC,CAAC;KAC9B;AAEM,IAAA,cAAc,CAAC,KAAiB,EAAE,OAAA,GAAwB,EAAE,EAAA;QACjE,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/D,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtD,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACxD,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACxD,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACtE,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACvE,QAAA,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC7C,QAAA,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC7C,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpD,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC7D,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvC,QAAA,OAAO,WAAW,CAAC;KACpB;IAEM,gBAAgB,CAAC,KAAiB,EAAE,WAAmB,EAAA;QAC5D,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,KAChD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CACjC,CAAC;YACF,WAAW,IAAI,YAAY,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AACzD,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;AAEM,IAAA,kBAAkB,CAAC,OAAiB,EAAA;QACzC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;AACD,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,MAAM,IAAI,OAAO,CAAC;AACnB,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,CAAG,EAAA,OAAO,CAAC,KAAK,GAAG,CAAC;AAC9B,YAAA,MAAM,KAAK,GACN,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,EAC7B,MAAM,EAAE,SAAS,GAClB,CAAC;AACF,YAAA,MAAM,IAAI,CAAG,EAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;YAC9D,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAI;AAChD,oBAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;AACxB,wBAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAC1C,qBAAA;AACD,oBAAA,OAAO,QAAQ,CAAC;AAClB,iBAAC,CAAC,CAAC;gBACH,MAAM,IAAI,WAAW,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AAC7C,aAAA;YACD,MAAM,IAAI,GAAG,CAAC;AACd,YAAA,MAAM,GAAG,MAAM;AACZ,iBAAA,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC;AACpC,iBAAA,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;AAC9B,iBAAA,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AACrB,iBAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAED,cAAc,CAAC,KAAiB,EAAE,WAAmB,EAAA;QACnD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;AAC3C,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;AACD,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO;aAC7B,GAAG,CAAC,CAAC,CAAC,KAAK,CAAG,EAAA,CAAC,CAAC,KAAK,CAAG,EAAA,CAAC,CAAC,GAAG,KAAK,MAAM,GAAG,OAAO,GAAG,EAAE,CAAA,CAAE,CAAC;aAC1D,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,QAAA,OAAO,CAAG,EAAA,WAAW,CAAa,UAAA,EAAA,UAAU,EAAE,CAAC;KAChD;AACD,IAAA,cAAc,CACZ,KAAiB,EACjB,QAAsB,EACtB,WAAmB,EAAA;QAEnB,IACE,CAAC,KAAK,CAAC,MAAM;AACb,YAAA,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;AAC5B,YAAA,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAC5B;AACA,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjE,QAAA,OAAO,CAAG,EAAA,WAAW,CAAY,SAAA,EAAA,YAAY,EAAE,CAAC;KACjD;AACD,IAAA,wBAAwB,CAAC,MAAuB,EAAA;AAC9C,QAAA,MAAM,oBAAoB,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,GAAG,CAAC;QACjD,OAAO,CAAA,CAAA,EAAI,MAAM,CAAC,OAAO;aACtB,GAAG,CAAC,CAAC,CAAC,KACL,iBAAiB,CAAC,CAAC,CAAC;AAClB,cAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAClC,cAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAC5B;aACA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAC9B,aAAA,IAAI,CAAC,oBAAoB,CAAC,CAAA,CAAA,CAAG,CAAC;KAClC;AAEM,IAAA,eAAe,CAAC,MAA4B,EAAA;;QACjD,MAAM,mBAAmB,GACvB,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,0CAAE,aAAa;AAC9B,YAAA,iBAAiB,CAAC,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,KAAI,QAAQ,CAAC,CAAC,aAAa,CAAC;AACrE,QAAA,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;AACzB,YAAA,MAAM,cAAc,GAAG,CAAA,EAAA,EAAK,MAAM,CAAC,KAAK,EAAE,CAAC;YAC3C,OAAO,CAAA,EAAG,MAAM,CAAC,UAAU,CAAA,CAAA,EACzB,MAAM,CAAC,aACT,CAAO,IAAA,EAAA,mBAAmB,CACxB,cAAc,EACd,MAAM,CAAC,KAAc,CACtB,CAAI,EAAA,CAAA,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA;YACL,OAAO,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAc,CAAC,CAAC;AACjE,SAAA;KACF;AACD,IAAA,uBAAuB,CACrB,aAA6B,EAC7B,KAAiB,EACjB,WAAmB,EAAA;AAEnB,QAAA,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;YACxB,OAAO,CAAA,EAAG,WAAW,CAAA,EAAA,EAAK,aAAa,CAAA,CAAA,EAAI,KAAK,CAAC,aAAa,CAAC,CAAA,CAAE,CAAC;AACnE,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;IACD,mBAAmB,CAAC,OAAqB,EAAE,WAAmB,EAAA;QAC5D,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,YAAA,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACnE,YAAA,OAAO,CAAG,EAAA,WAAW,CAAc,WAAA,EAAA,SAAS,EAAE,CAAC;AAChD,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;IAEM,YAAY,CAAC,KAAiB,EAAE,WAAmB,EAAA;AACxD,QAAA,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;AACzB,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;QACD,OAAO,CAAA,EAAG,WAAW,CAAA,YAAA,CAAc,CAAC;KACrC;AAEM,IAAA,YAAY,CAAC,WAAmB,EAAA;QACrC,MAAM,SAAS,GACb,2DAA2D,CAAC;AAC9D,QAAA,IAAI,CAAyB,CAAC;QAC9B,MAAM,WAAW,GAAa,EAAE,CAAC;AACjC,QAAA,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE;;AAEjD,YAAA,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,SAAS,EAAE;gBACnC,SAAS,CAAC,SAAS,EAAE,CAAC;AACvB,aAAA;AACD,YAAA,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAClB,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,WAAW,CAAC,OAAO,CACjB,CAAC,IAAI,MACF,WAAW,GAAG,WAAW,CAAC,OAAO,CAChC,IAAI,EACJ,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAC/C,CAAC,CACL,CAAC;AACF,QAAA,OAAO,WAAW,CAAC;KACpB;AAEM,IAAA,YAAY,CAAC,WAAmB,EAAA;QACrC,MAAM,SAAS,GACb,iEAAiE,CAAC;AACpE,QAAA,IAAI,CAAyB,CAAC;QAC9B,MAAM,WAAW,GAAa,EAAE,CAAC;AACjC,QAAA,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE;;AAEjD,YAAA,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,SAAS,EAAE;gBACnC,SAAS,CAAC,SAAS,EAAE,CAAC;AACvB,aAAA;AACD,YAAA,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAClB,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,WAAW,CAAC,OAAO,CACjB,CAAC,IAAI,MACF,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CACpE,CAAC;AACF,QAAA,OAAO,WAAW,CAAC;KACpB;IAEM,gBAAgB,CAAC,KAAiB,EAAE,WAAmB,EAAA;QAC5D,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,OAAO,CAAA,EAAG,WAAW,CAAA,SAAA,EAAY,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;AACxD,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;;+GAzMU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCXY,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mHAArB,qBAAqB,EAAA,OAAA,EAAA,CAHtB,YAAY,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAG7B,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,aAFrB,CAAC,kBAAkB,CAAC,EADrB,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;2FAG7B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;oBACzC,SAAS,EAAE,CAAC,kBAAkB,CAAC;iBAChC,CAAA;;;ACLK,SAAU,iBAAiB,CAC/B,CAAM,EAAA;IAEN,OAAO;AACL,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,KAAK,EAAE,CAAC,KAAA,IAAA,IAAD,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,MAAM;KACjB,CAAC;AACJ;;ACVA;;AAEG;;;;"}
@@ -315,9 +315,10 @@ class ODataClientService {
315
315
  }
316
316
  result += ')';
317
317
  result = result
318
- .replace(/\(;\)$/, '')
319
- .replace(/\(\)/, '')
320
- .replace(/;\)/, ')');
318
+ .replace(/\(;\$expand=/, '($expand=') //Replaces empty expand "(;$expand=" with "($expand="
319
+ .replace(/\$expand=;?\)$/, ')') //Replaces empty expand ";$expand=;)" or ";$expand=)" with ")"
320
+ .replace(/\(;\)$/, '') //Removes empty expansion clause "(;)"
321
+ .replace(/;\)$/, ')'); //Replaces ";)" with ")"
321
322
  }
322
323
  return result;
323
324
  }
@@ -1 +1 @@
1
- {"version":3,"file":"imng-odata-client.mjs","sources":["../../../../libs/imng-odata-client/src/lib/models/child-filter.ts","../../../../libs/imng-odata-client/src/lib/models/composite-filter.ts","../../../../libs/imng-odata-client/src/lib/models/computation-operators.ts","../../../../libs/imng-odata-client/src/lib/models/computation.ts","../../../../libs/imng-odata-client/src/lib/models/expander.ts","../../../../libs/imng-odata-client/src/lib/helpers/filter-serializers.ts","../../../../libs/imng-odata-client/src/lib/models/filter-operators.ts","../../../../libs/imng-odata-client/src/lib/models/odata-result.ts","../../../../libs/imng-odata-client/src/lib/helpers/get-filter-operator.ts","../../../../libs/imng-odata-client/src/lib/operators/map-data.ts","../../../../libs/imng-odata-client/src/lib/services/odata-client.service.ts","../../../../libs/imng-odata-client/src/lib/imng-odata-client.module.ts","../../../../libs/imng-odata-client/src/lib/helpers/create-odata-result.ts","../../../../libs/imng-odata-client/src/imng-odata-client.ts"],"sourcesContent":["import { CompositeFilter } from './composite-filter';\nimport { Filter } from './filter';\n\nexport interface ChildFilter extends Filter {\n /**\n * Used to support child entity filtering:\n * Child table name/navigation property\n * */\n childTable: string;\n /**\n * Used to support child entity filtering:\n * Specifies whether all or some of the child records have to match the given criteria\n * */\n linqOperation: 'all' | 'any';\n}\n\nexport function isChildFilter(\n source: CompositeFilter | Filter | ChildFilter,\n): source is ChildFilter {\n return !!(source as ChildFilter)?.childTable;\n}\n","import { ChildFilter } from './child-filter';\nimport { Filter } from './filter';\n\n/**\n * A complex filter expression.\n */\nexport interface CompositeFilter {\n /**\n * The logical operation to use when the `filter.filters` option is set.\n *\n * The supported values are:\n * * `\"and\"`\n * * `\"or\"`\n */\n logic: 'or' | 'and';\n /**\n * The nested filter expressions\n */\n filters: Array<Filter | ChildFilter | CompositeFilter>;\n}\n\nexport function isCompositeFilter(\n source: CompositeFilter | Filter | ChildFilter,\n): source is CompositeFilter {\n return !!(source as CompositeFilter)?.filters;\n}\n","export enum ComputationOperators {\n Multiply = 'mul',\n Divide = 'div',\n Add = 'add',\n Subtract = 'sub',\n Modulus = 'mod',\n}\n","import { ComputationOperators } from './computation-operators';\n\nexport interface Computation {\n /** This is the first value to be used in the computation */\n fieldA: string | number;\n /** This is the second value to be used in the computation */\n fieldB: string | number;\n operator: ComputationOperators | string; //NOSONAR\n\n /** This MUST differ from the names of declared or dynamic properties of the identified resources. */\n alias: string;\n}\n\nexport function isComputation(\n source: string | Computation,\n): source is Computation {\n return !!(source as Computation)?.operator;\n}\n","import { ODataQuery } from './odata-query';\n\nexport interface Expander extends ODataQuery {\n table: string;\n}\n\nexport function isExpander(source: string | Expander): source is Expander {\n return !!(source as Expander)?.table;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function serializeValue(value?: IdType): string {\n if (typeof value === 'string') {\n return `'${value}'`;\n }\n return value instanceof Date\n ? `${value.toISOString().split('T')[0]}`\n : `${value}`;\n}\n\nexport const serializeSimpleFilter = (\n field: string,\n operator: string,\n value?: IdType,\n): string => `${field}+${operator}+${serializeValue(value)}`;\n\nexport const serializeArrayFilter = (\n field: string,\n operator: string,\n values?: IdType[],\n): string =>\n values\n ? `${field}+${operator}+(${values.map((m) => serializeValue(m)).join(',')})`\n : '';\n\nexport const serializeFunctionFilter = (\n field: string,\n func: string,\n value?: IdType,\n): string => (value ? `${func}(${field},${serializeValue(value)})` : '');\n","import { IdType } from 'imng-nrsrx-client-utils';\nimport { IFilterOperator } from './filter-operator';\nimport {\n serializeArrayFilter,\n serializeFunctionFilter,\n serializeSimpleFilter,\n} from '../helpers/filter-serializers';\n\nexport interface IFilterOperators {\n [key: string]: IFilterOperator;\n}\n\n/**\n * Represents the list of supported simple filter operators.\n */\nexport class FilterOperators {\n /**\n * The `eq` operator.\n */\n public static readonly equals: IFilterOperator = {\n name: 'equals',\n toODataString: (field: string, value?: IdType) =>\n serializeSimpleFilter(field, 'eq', value),\n };\n /**\n * The `gt` operator.\n */\n public static readonly greaterThan: IFilterOperator = {\n name: 'greaterThan',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'gt', value),\n };\n /**\n * The `ge` operator.\n */\n public static readonly greaterThanOrEquals: IFilterOperator = {\n name: 'greaterThanOrEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'ge', value),\n };\n /**\n * The `lt` operator.\n */\n public static readonly lessThan: IFilterOperator = {\n name: 'lessThan',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'lt', value),\n };\n /**\n * The `le` operator.\n */\n public static readonly lessThanOrEquals: IFilterOperator = {\n name: 'lessThanOrEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'le', value),\n };\n /**\n * The `ne` operator.\n */\n public static readonly notEquals: IFilterOperator = {\n name: 'notEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'ne', value),\n };\n /**\n * The `in` operator.\n */\n public static readonly in: IFilterOperator = {\n name: 'in',\n toODataString: (field: string, values?: IdType[]): string =>\n serializeArrayFilter(field, 'in', values),\n };\n /**\n * The `not in` operator.\n */\n public static readonly notIn: IFilterOperator = {\n name: 'notIn',\n toODataString: (field: string, values?: IdType[]): string =>\n serializeArrayFilter(field, 'not+in', values),\n };\n /**\n * The `is not null` operator.\n */\n\n public static readonly notNull: IFilterOperator = {\n name: 'notNull',\n toODataString: (field: string): string => `${field}+ne+null`,\n };\n /**\n * The `is null` operator.\n */\n public static readonly isNull: IFilterOperator = {\n name: 'isNull',\n toODataString: (field: string): string => `${field}+eq+null`,\n };\n /**\n * The `contains` operator.\n */\n public static readonly contains: IFilterOperator = {\n name: 'contains',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'contains', value),\n };\n /**\n * The `not contain` operator.\n */\n public static readonly notContains: IFilterOperator = {\n name: 'notContains',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+contains', value),\n };\n /**\n * The `ends with` operator.\n */\n public static readonly endsWith: IFilterOperator = {\n name: 'endswith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'endswith', value),\n };\n /**\n * The `not ends with` operator.\n */\n public static readonly notEndsWith: IFilterOperator = {\n name: 'notEndsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+endswith', value),\n };\n /**\n * The `startswith` operator.\n */\n public static readonly startsWith: IFilterOperator = {\n name: 'startsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'startswith', value),\n };\n /**\n * The `not start with` operator.\n */\n public static readonly notStartsWith: IFilterOperator = {\n name: 'notStartsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+startswith', value),\n };\n /**\n * The `empty` operator.\n */\n public static readonly isEmpty: IFilterOperator = {\n name: 'isEmpty',\n toODataString: (field: string): string =>\n serializeSimpleFilter(field, 'eq', ''),\n };\n /**\n * The `not empty` operator.\n */\n public static readonly notEmpty: IFilterOperator = {\n name: 'notEmpty',\n toODataString: (field: string): string =>\n serializeSimpleFilter(field, 'ne', ''),\n };\n}\n\nexport const filterOperators: IFilterOperators = {\n contains: FilterOperators.contains,\n endsWith: FilterOperators.endsWith,\n equals: FilterOperators.equals,\n dateIs: FilterOperators.equals,\n greaterThan: FilterOperators.greaterThan,\n gt: FilterOperators.greaterThan,\n dateAfter: FilterOperators.greaterThan,\n greaterThanOrEquals: FilterOperators.greaterThanOrEquals,\n gte: FilterOperators.greaterThanOrEquals,\n in: FilterOperators.in,\n isEmpty: FilterOperators.isEmpty,\n isNull: FilterOperators.isNull,\n lessThan: FilterOperators.lessThan,\n lt: FilterOperators.lessThan,\n dateBefore: FilterOperators.lessThan,\n lessThanOrEquals: FilterOperators.lessThanOrEquals,\n lte: FilterOperators.lessThan,\n notContains: FilterOperators.notContains,\n notEmpty: FilterOperators.notEmpty,\n notEndsWith: FilterOperators.notEndsWith,\n notEquals: FilterOperators.notEquals,\n dateIsNot: FilterOperators.notEquals,\n notIn: FilterOperators.notIn,\n notNull: FilterOperators.notNull,\n notStartsWith: FilterOperators.notStartsWith,\n startsWith: FilterOperators.startsWith,\n};\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport interface ODataResult<T extends { id?: IdType } | unknown> {\n value: T[];\n count?: number;\n '@odata.count'?: number;\n}\n\nexport function createEmptyODataResult<\n T extends { id?: IdType } | unknown,\n>(): ODataResult<T> {\n return { value: Array<T>(), count: 0 };\n}\n\nexport function isODataResult<T extends { id?: IdType } | unknown>(\n source: unknown,\n): source is ODataResult<T> {\n return !!(source as ODataResult<T>)?.value;\n}\n","import { filterOperators } from '../models';\nimport { IFilterOperator } from '../models/filter-operator';\n\nexport const getFilterOperator = (operatorName: string): IFilterOperator =>\n filterOperators[operatorName];\n","import { MILLI_SECS_PER_SEC } from 'imng-nrsrx-client-utils';\nimport { map } from 'rxjs';\nimport { FetchOptions, ODataResult } from '../models';\n\nexport const mapData = <T extends object>(options: FetchOptions) =>\n map((response: ODataResult<T> | T[]): ODataResult<T> => {\n if (!response) {\n return { value: [], count: 0 };\n }\n return Array.isArray(response)\n ? {\n value: response,\n count: response.length,\n }\n : ({\n value: parseDatesInCollection(response.value, options),\n count: response['@odata.count'],\n } as ODataResult<T>);\n });\n\nexport function parseDatesInCollection<T extends object>(\n collection: Array<T>,\n options: FetchOptions,\n): Array<T> {\n if (collection.length > 0) {\n const utcProps = Object.keys(collection[0]).filter((x) =>\n x.endsWith('Utc'),\n );\n const dateProps = Object.keys(collection[0]).filter(\n (x) => x.endsWith('Date') || x === 'date',\n );\n\n options.utcNullableProps?.forEach((t) => {\n if (utcProps.indexOf(t) === -1) {\n utcProps.push(t);\n }\n });\n\n options.dateNullableProps?.forEach((t) => {\n if (dateProps.indexOf(t) === -1) {\n dateProps.push(t);\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // prettier-ignore\n collection.forEach((val: any) => {//NOSONAR\n utcProps.filter((p) => val[p]).forEach((p) => (val[p] = new Date(val[p])));\n dateProps.filter((p) => val[p]).forEach((p) => (val[p] = toLocalDate(val[p])));\n });\n }\n return collection;\n}\nexport function toLocalDate(date: string): Date {\n const dt = new Date(date);\n return new Date(\n dt.getTime() + Math.abs(dt.getTimezoneOffset() * MILLI_SECS_PER_SEC),\n );\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getFilterOperator } from '../helpers/get-filter-operator';\nimport {\n ChildFilter,\n CompositeFilter,\n Expander,\n FetchOptions,\n Filter,\n isChildFilter,\n isCompositeFilter,\n isExpander,\n ODataQuery,\n ODataResult,\n} from '../models';\nimport { mapData } from '../operators/map-data';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ODataClientService {\n constructor(private readonly httpClient: HttpClient) {}\n\n public fetch<T extends object>(\n odataEndpoint: string,\n query: ODataQuery,\n options: FetchOptions = {},\n ): Observable<ODataResult<T>> {\n const queryStr = this.getODataString(query, options);\n return this.httpClient\n .get<ODataResult<T> | T[]>(`${odataEndpoint}?${queryStr}`)\n .pipe(mapData<T>(options));\n }\n\n public getODataString(query: ODataQuery, options: FetchOptions = {}): string {\n let queryString = '';\n queryString = this.processFilters(query, options, queryString);\n queryString = this.processOrderBy(query, queryString);\n queryString = this.processSelectors(query, queryString);\n queryString = this.processExpanders(query, queryString);\n queryString = this.processSimpleParameters('top', query, queryString);\n queryString = this.processSimpleParameters('skip', query, queryString);\n queryString = this.processGuids(queryString);\n queryString = this.processDates(queryString);\n queryString = this.processCount(query, queryString);\n queryString = this.processCacheBusting(options, queryString);\n queryString = queryString.substring(1); // removing first &\n return queryString;\n }\n\n public processExpanders(query: ODataQuery, queryString: string): string {\n if (query.expand && query.expand.length > 0) {\n const expansionStrings = query.expand.map((element) =>\n this.getExpansionString(element),\n );\n queryString += `&$expand=${expansionStrings.join(',')}`;\n }\n return queryString;\n }\n\n public getExpansionString(element: Expander): string {\n let result = '';\n if (!element) {\n return result;\n }\n if (typeof element === 'string') {\n result += element;\n } else {\n result += `${element.table}(`;\n const query: ODataQuery = {\n ...element,\n count: element.count || false,\n expand: undefined,\n };\n result += `${this.getODataString(query).replace(/&/g, ';')};`;\n if (element.expand) {\n const expanders = element.expand.map((expander) => {\n if (isExpander(expander)) {\n return this.getExpansionString(expander);\n }\n return expander;\n });\n result += `$expand=${expanders.join(',')};`;\n }\n result += ')';\n result = result\n .replace(/\\(;\\)$/, '')\n .replace(/\\(\\)/, '')\n .replace(/;\\)/, ')');\n }\n return result;\n }\n\n processOrderBy(query: ODataQuery, queryString: string): string {\n if (!query.orderBy || !query.orderBy.length) {\n return queryString;\n }\n const sortString = query.orderBy\n .map((m) => `${m.field}${m.dir === 'desc' ? '+desc' : ''}`)\n .join(',');\n return `${queryString}&$orderby=${sortString}`;\n }\n processFilters(\n query: ODataQuery,\n _options: FetchOptions,\n queryString: string,\n ): string {\n if (\n !query.filter ||\n !query.filter.filters.length ||\n !query.filter.filters.length\n ) {\n return queryString;\n }\n const filterString = this.serializeCompositeFilter(query.filter);\n return `${queryString}&$filter=${filterString}`;\n }\n serializeCompositeFilter(filter: CompositeFilter): string {\n const filterLogicSeperator = `+${filter.logic}+`;\n return `(${filter.filters\n .map((m) =>\n isCompositeFilter(m)\n ? this.serializeCompositeFilter(m)\n : this.serializeFilter(m),\n )\n .filter((m) => m && m !== '()')\n .join(filterLogicSeperator)})`;\n }\n\n public serializeFilter(filter: Filter | ChildFilter): string {\n const odataStringFunction =\n filter.operator?.toODataString ||\n getFilterOperator(filter.operator?.name || 'equals').toODataString;\n if (isChildFilter(filter)) {\n const childFieldName = `o/${filter.field}`;\n return `${filter.childTable}/${\n filter.linqOperation\n }(o: ${odataStringFunction(\n childFieldName,\n filter.value as never,\n )} )`.replace(/\\s\\)/gm, '');\n } else {\n return odataStringFunction(filter.field, filter.value as never);\n }\n }\n processSimpleParameters(\n parameterName: 'skip' | 'top',\n query: ODataQuery,\n queryString: string,\n ): string {\n if (query[parameterName]) {\n return `${queryString}&$${parameterName}=${query[parameterName]}`;\n }\n return queryString;\n }\n processCacheBusting(options: FetchOptions, queryString: string): string {\n if (options.bustCache) {\n const timeStamp = new Date().toISOString().replace(/[-:.TZ]/g, '');\n return `${queryString}&timestamp=${timeStamp}`;\n }\n return queryString;\n }\n\n public processCount(query: ODataQuery, queryString: string): string {\n if (query.count === false) {\n return queryString;\n }\n return `${queryString}&$count=true`;\n }\n\n public processDates(queryString: string): string {\n const dateRegex =\n /Date [e-t]{2} \\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/g;\n let m: RegExpExecArray | null;\n const dateMatches: string[] = [];\n while ((m = dateRegex.exec(queryString)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === dateRegex.lastIndex) {\n dateRegex.lastIndex++;\n }\n m.forEach((match) => {\n dateMatches.push(match);\n });\n }\n dateMatches.forEach(\n (date) =>\n (queryString = queryString.replace(\n date,\n date.replace(/T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/g, ''),\n )),\n );\n return queryString;\n }\n\n public processGuids(queryString: string): string {\n const guidRegex =\n /'[\\dA-F]{8}-?[\\dA-F]{4}-?[\\dA-F]{4}-?[\\dA-F]{4}-?[\\dA-F]{12}'/gi;\n let m: RegExpExecArray | null;\n const guidMatches: string[] = [];\n while ((m = guidRegex.exec(queryString)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === guidRegex.lastIndex) {\n guidRegex.lastIndex++;\n }\n m.forEach((match) => {\n guidMatches.push(match);\n });\n }\n guidMatches.forEach(\n (guid) =>\n (queryString = queryString.replace(guid, guid.replace(/'/g, ''))),\n );\n return queryString;\n }\n\n public processSelectors(state: ODataQuery, queryString: string): string {\n if (state.select && state.select.length > 0) {\n return `${queryString}&$select=${state.select.join()}`;\n }\n return queryString;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ODataClientService } from './services/odata-client.service';\n\n@NgModule({\n imports: [CommonModule, HttpClientModule],\n providers: [ODataClientService],\n})\nexport class ImngODataClientModule {}\n","import { IdType } from 'imng-nrsrx-client-utils';\nimport { ODataResult } from '../models/odata-result';\n\nexport function createODataResult<T extends { id?: IdType } | unknown>(\n t: T[],\n): ODataResult<T> {\n return {\n value: t,\n count: t?.length,\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-odata-client.mjs","sources":["../../../../libs/imng-odata-client/src/lib/models/child-filter.ts","../../../../libs/imng-odata-client/src/lib/models/composite-filter.ts","../../../../libs/imng-odata-client/src/lib/models/computation-operators.ts","../../../../libs/imng-odata-client/src/lib/models/computation.ts","../../../../libs/imng-odata-client/src/lib/models/expander.ts","../../../../libs/imng-odata-client/src/lib/helpers/filter-serializers.ts","../../../../libs/imng-odata-client/src/lib/models/filter-operators.ts","../../../../libs/imng-odata-client/src/lib/models/odata-result.ts","../../../../libs/imng-odata-client/src/lib/helpers/get-filter-operator.ts","../../../../libs/imng-odata-client/src/lib/operators/map-data.ts","../../../../libs/imng-odata-client/src/lib/services/odata-client.service.ts","../../../../libs/imng-odata-client/src/lib/imng-odata-client.module.ts","../../../../libs/imng-odata-client/src/lib/helpers/create-odata-result.ts","../../../../libs/imng-odata-client/src/imng-odata-client.ts"],"sourcesContent":["import { CompositeFilter } from './composite-filter';\nimport { Filter } from './filter';\n\nexport interface ChildFilter extends Filter {\n /**\n * Used to support child entity filtering:\n * Child table name/navigation property\n * */\n childTable: string;\n /**\n * Used to support child entity filtering:\n * Specifies whether all or some of the child records have to match the given criteria\n * */\n linqOperation: 'all' | 'any';\n}\n\nexport function isChildFilter(\n source: CompositeFilter | Filter | ChildFilter,\n): source is ChildFilter {\n return !!(source as ChildFilter)?.childTable;\n}\n","import { ChildFilter } from './child-filter';\nimport { Filter } from './filter';\n\n/**\n * A complex filter expression.\n */\nexport interface CompositeFilter {\n /**\n * The logical operation to use when the `filter.filters` option is set.\n *\n * The supported values are:\n * * `\"and\"`\n * * `\"or\"`\n */\n logic: 'or' | 'and';\n /**\n * The nested filter expressions\n */\n filters: Array<Filter | ChildFilter | CompositeFilter>;\n}\n\nexport function isCompositeFilter(\n source: CompositeFilter | Filter | ChildFilter,\n): source is CompositeFilter {\n return !!(source as CompositeFilter)?.filters;\n}\n","export enum ComputationOperators {\n Multiply = 'mul',\n Divide = 'div',\n Add = 'add',\n Subtract = 'sub',\n Modulus = 'mod',\n}\n","import { ComputationOperators } from './computation-operators';\n\nexport interface Computation {\n /** This is the first value to be used in the computation */\n fieldA: string | number;\n /** This is the second value to be used in the computation */\n fieldB: string | number;\n operator: ComputationOperators | string; //NOSONAR\n\n /** This MUST differ from the names of declared or dynamic properties of the identified resources. */\n alias: string;\n}\n\nexport function isComputation(\n source: string | Computation,\n): source is Computation {\n return !!(source as Computation)?.operator;\n}\n","import { ODataQuery } from './odata-query';\n\nexport interface Expander extends ODataQuery {\n table: string;\n}\n\nexport function isExpander(source: string | Expander): source is Expander {\n return !!(source as Expander)?.table;\n}\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport function serializeValue(value?: IdType): string {\n if (typeof value === 'string') {\n return `'${value}'`;\n }\n return value instanceof Date\n ? `${value.toISOString().split('T')[0]}`\n : `${value}`;\n}\n\nexport const serializeSimpleFilter = (\n field: string,\n operator: string,\n value?: IdType,\n): string => `${field}+${operator}+${serializeValue(value)}`;\n\nexport const serializeArrayFilter = (\n field: string,\n operator: string,\n values?: IdType[],\n): string =>\n values\n ? `${field}+${operator}+(${values.map((m) => serializeValue(m)).join(',')})`\n : '';\n\nexport const serializeFunctionFilter = (\n field: string,\n func: string,\n value?: IdType,\n): string => (value ? `${func}(${field},${serializeValue(value)})` : '');\n","import { IdType } from 'imng-nrsrx-client-utils';\nimport { IFilterOperator } from './filter-operator';\nimport {\n serializeArrayFilter,\n serializeFunctionFilter,\n serializeSimpleFilter,\n} from '../helpers/filter-serializers';\n\nexport interface IFilterOperators {\n [key: string]: IFilterOperator;\n}\n\n/**\n * Represents the list of supported simple filter operators.\n */\nexport class FilterOperators {\n /**\n * The `eq` operator.\n */\n public static readonly equals: IFilterOperator = {\n name: 'equals',\n toODataString: (field: string, value?: IdType) =>\n serializeSimpleFilter(field, 'eq', value),\n };\n /**\n * The `gt` operator.\n */\n public static readonly greaterThan: IFilterOperator = {\n name: 'greaterThan',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'gt', value),\n };\n /**\n * The `ge` operator.\n */\n public static readonly greaterThanOrEquals: IFilterOperator = {\n name: 'greaterThanOrEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'ge', value),\n };\n /**\n * The `lt` operator.\n */\n public static readonly lessThan: IFilterOperator = {\n name: 'lessThan',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'lt', value),\n };\n /**\n * The `le` operator.\n */\n public static readonly lessThanOrEquals: IFilterOperator = {\n name: 'lessThanOrEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'le', value),\n };\n /**\n * The `ne` operator.\n */\n public static readonly notEquals: IFilterOperator = {\n name: 'notEquals',\n toODataString: (field: string, value?: IdType): string =>\n serializeSimpleFilter(field, 'ne', value),\n };\n /**\n * The `in` operator.\n */\n public static readonly in: IFilterOperator = {\n name: 'in',\n toODataString: (field: string, values?: IdType[]): string =>\n serializeArrayFilter(field, 'in', values),\n };\n /**\n * The `not in` operator.\n */\n public static readonly notIn: IFilterOperator = {\n name: 'notIn',\n toODataString: (field: string, values?: IdType[]): string =>\n serializeArrayFilter(field, 'not+in', values),\n };\n /**\n * The `is not null` operator.\n */\n\n public static readonly notNull: IFilterOperator = {\n name: 'notNull',\n toODataString: (field: string): string => `${field}+ne+null`,\n };\n /**\n * The `is null` operator.\n */\n public static readonly isNull: IFilterOperator = {\n name: 'isNull',\n toODataString: (field: string): string => `${field}+eq+null`,\n };\n /**\n * The `contains` operator.\n */\n public static readonly contains: IFilterOperator = {\n name: 'contains',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'contains', value),\n };\n /**\n * The `not contain` operator.\n */\n public static readonly notContains: IFilterOperator = {\n name: 'notContains',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+contains', value),\n };\n /**\n * The `ends with` operator.\n */\n public static readonly endsWith: IFilterOperator = {\n name: 'endswith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'endswith', value),\n };\n /**\n * The `not ends with` operator.\n */\n public static readonly notEndsWith: IFilterOperator = {\n name: 'notEndsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+endswith', value),\n };\n /**\n * The `startswith` operator.\n */\n public static readonly startsWith: IFilterOperator = {\n name: 'startsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'startswith', value),\n };\n /**\n * The `not start with` operator.\n */\n public static readonly notStartsWith: IFilterOperator = {\n name: 'notStartsWith',\n toODataString: (field: string, value?: IdType): string =>\n serializeFunctionFilter(field, 'not+startswith', value),\n };\n /**\n * The `empty` operator.\n */\n public static readonly isEmpty: IFilterOperator = {\n name: 'isEmpty',\n toODataString: (field: string): string =>\n serializeSimpleFilter(field, 'eq', ''),\n };\n /**\n * The `not empty` operator.\n */\n public static readonly notEmpty: IFilterOperator = {\n name: 'notEmpty',\n toODataString: (field: string): string =>\n serializeSimpleFilter(field, 'ne', ''),\n };\n}\n\nexport const filterOperators: IFilterOperators = {\n contains: FilterOperators.contains,\n endsWith: FilterOperators.endsWith,\n equals: FilterOperators.equals,\n dateIs: FilterOperators.equals,\n greaterThan: FilterOperators.greaterThan,\n gt: FilterOperators.greaterThan,\n dateAfter: FilterOperators.greaterThan,\n greaterThanOrEquals: FilterOperators.greaterThanOrEquals,\n gte: FilterOperators.greaterThanOrEquals,\n in: FilterOperators.in,\n isEmpty: FilterOperators.isEmpty,\n isNull: FilterOperators.isNull,\n lessThan: FilterOperators.lessThan,\n lt: FilterOperators.lessThan,\n dateBefore: FilterOperators.lessThan,\n lessThanOrEquals: FilterOperators.lessThanOrEquals,\n lte: FilterOperators.lessThan,\n notContains: FilterOperators.notContains,\n notEmpty: FilterOperators.notEmpty,\n notEndsWith: FilterOperators.notEndsWith,\n notEquals: FilterOperators.notEquals,\n dateIsNot: FilterOperators.notEquals,\n notIn: FilterOperators.notIn,\n notNull: FilterOperators.notNull,\n notStartsWith: FilterOperators.notStartsWith,\n startsWith: FilterOperators.startsWith,\n};\n","import { IdType } from 'imng-nrsrx-client-utils';\n\nexport interface ODataResult<T extends { id?: IdType } | unknown> {\n value: T[];\n count?: number;\n '@odata.count'?: number;\n}\n\nexport function createEmptyODataResult<\n T extends { id?: IdType } | unknown,\n>(): ODataResult<T> {\n return { value: Array<T>(), count: 0 };\n}\n\nexport function isODataResult<T extends { id?: IdType } | unknown>(\n source: unknown,\n): source is ODataResult<T> {\n return !!(source as ODataResult<T>)?.value;\n}\n","import { filterOperators } from '../models';\nimport { IFilterOperator } from '../models/filter-operator';\n\nexport const getFilterOperator = (operatorName: string): IFilterOperator =>\n filterOperators[operatorName];\n","import { MILLI_SECS_PER_SEC } from 'imng-nrsrx-client-utils';\nimport { map } from 'rxjs';\nimport { FetchOptions, ODataResult } from '../models';\n\nexport const mapData = <T extends object>(options: FetchOptions) =>\n map((response: ODataResult<T> | T[]): ODataResult<T> => {\n if (!response) {\n return { value: [], count: 0 };\n }\n return Array.isArray(response)\n ? {\n value: response,\n count: response.length,\n }\n : ({\n value: parseDatesInCollection(response.value, options),\n count: response['@odata.count'],\n } as ODataResult<T>);\n });\n\nexport function parseDatesInCollection<T extends object>(\n collection: Array<T>,\n options: FetchOptions,\n): Array<T> {\n if (collection.length > 0) {\n const utcProps = Object.keys(collection[0]).filter((x) =>\n x.endsWith('Utc'),\n );\n const dateProps = Object.keys(collection[0]).filter(\n (x) => x.endsWith('Date') || x === 'date',\n );\n\n options.utcNullableProps?.forEach((t) => {\n if (utcProps.indexOf(t) === -1) {\n utcProps.push(t);\n }\n });\n\n options.dateNullableProps?.forEach((t) => {\n if (dateProps.indexOf(t) === -1) {\n dateProps.push(t);\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // prettier-ignore\n collection.forEach((val: any) => {//NOSONAR\n utcProps.filter((p) => val[p]).forEach((p) => (val[p] = new Date(val[p])));\n dateProps.filter((p) => val[p]).forEach((p) => (val[p] = toLocalDate(val[p])));\n });\n }\n return collection;\n}\nexport function toLocalDate(date: string): Date {\n const dt = new Date(date);\n return new Date(\n dt.getTime() + Math.abs(dt.getTimezoneOffset() * MILLI_SECS_PER_SEC),\n );\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getFilterOperator } from '../helpers/get-filter-operator';\nimport {\n ChildFilter,\n CompositeFilter,\n Expander,\n FetchOptions,\n Filter,\n isChildFilter,\n isCompositeFilter,\n isExpander,\n ODataQuery,\n ODataResult,\n} from '../models';\nimport { mapData } from '../operators/map-data';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ODataClientService {\n constructor(private readonly httpClient: HttpClient) {}\n\n public fetch<T extends object>(\n odataEndpoint: string,\n query: ODataQuery,\n options: FetchOptions = {},\n ): Observable<ODataResult<T>> {\n const queryStr = this.getODataString(query, options);\n return this.httpClient\n .get<ODataResult<T> | T[]>(`${odataEndpoint}?${queryStr}`)\n .pipe(mapData<T>(options));\n }\n\n public getODataString(query: ODataQuery, options: FetchOptions = {}): string {\n let queryString = '';\n queryString = this.processFilters(query, options, queryString);\n queryString = this.processOrderBy(query, queryString);\n queryString = this.processSelectors(query, queryString);\n queryString = this.processExpanders(query, queryString);\n queryString = this.processSimpleParameters('top', query, queryString);\n queryString = this.processSimpleParameters('skip', query, queryString);\n queryString = this.processGuids(queryString);\n queryString = this.processDates(queryString);\n queryString = this.processCount(query, queryString);\n queryString = this.processCacheBusting(options, queryString);\n queryString = queryString.substring(1); // removing first &\n return queryString;\n }\n\n public processExpanders(query: ODataQuery, queryString: string): string {\n if (query.expand && query.expand.length > 0) {\n const expansionStrings = query.expand.map((element) =>\n this.getExpansionString(element),\n );\n queryString += `&$expand=${expansionStrings.join(',')}`;\n }\n return queryString;\n }\n\n public getExpansionString(element: Expander): string {\n let result = '';\n if (!element) {\n return result;\n }\n if (typeof element === 'string') {\n result += element;\n } else {\n result += `${element.table}(`;\n const query: ODataQuery = {\n ...element,\n count: element.count || false,\n expand: undefined,\n };\n result += `${this.getODataString(query).replace(/&/g, ';')};`;\n if (element.expand) {\n const expanders = element.expand.map((expander) => {\n if (isExpander(expander)) {\n return this.getExpansionString(expander);\n }\n return expander;\n });\n result += `$expand=${expanders.join(',')};`;\n }\n result += ')';\n result = result\n .replace(/\\(;\\$expand=/, '($expand=') //Replaces empty expand \"(;$expand=\" with \"($expand=\"\n .replace(/\\$expand=;?\\)$/, ')') //Replaces empty expand \";$expand=;)\" or \";$expand=)\" with \")\"\n .replace(/\\(;\\)$/, '') //Removes empty expansion clause \"(;)\"\n .replace(/;\\)$/, ')'); //Replaces \";)\" with \")\"\n }\n return result;\n }\n\n processOrderBy(query: ODataQuery, queryString: string): string {\n if (!query.orderBy || !query.orderBy.length) {\n return queryString;\n }\n const sortString = query.orderBy\n .map((m) => `${m.field}${m.dir === 'desc' ? '+desc' : ''}`)\n .join(',');\n return `${queryString}&$orderby=${sortString}`;\n }\n processFilters(\n query: ODataQuery,\n _options: FetchOptions,\n queryString: string,\n ): string {\n if (\n !query.filter ||\n !query.filter.filters.length ||\n !query.filter.filters.length\n ) {\n return queryString;\n }\n const filterString = this.serializeCompositeFilter(query.filter);\n return `${queryString}&$filter=${filterString}`;\n }\n serializeCompositeFilter(filter: CompositeFilter): string {\n const filterLogicSeperator = `+${filter.logic}+`;\n return `(${filter.filters\n .map((m) =>\n isCompositeFilter(m)\n ? this.serializeCompositeFilter(m)\n : this.serializeFilter(m),\n )\n .filter((m) => m && m !== '()')\n .join(filterLogicSeperator)})`;\n }\n\n public serializeFilter(filter: Filter | ChildFilter): string {\n const odataStringFunction =\n filter.operator?.toODataString ||\n getFilterOperator(filter.operator?.name || 'equals').toODataString;\n if (isChildFilter(filter)) {\n const childFieldName = `o/${filter.field}`;\n return `${filter.childTable}/${\n filter.linqOperation\n }(o: ${odataStringFunction(\n childFieldName,\n filter.value as never,\n )} )`.replace(/\\s\\)/gm, '');\n } else {\n return odataStringFunction(filter.field, filter.value as never);\n }\n }\n processSimpleParameters(\n parameterName: 'skip' | 'top',\n query: ODataQuery,\n queryString: string,\n ): string {\n if (query[parameterName]) {\n return `${queryString}&$${parameterName}=${query[parameterName]}`;\n }\n return queryString;\n }\n processCacheBusting(options: FetchOptions, queryString: string): string {\n if (options.bustCache) {\n const timeStamp = new Date().toISOString().replace(/[-:.TZ]/g, '');\n return `${queryString}&timestamp=${timeStamp}`;\n }\n return queryString;\n }\n\n public processCount(query: ODataQuery, queryString: string): string {\n if (query.count === false) {\n return queryString;\n }\n return `${queryString}&$count=true`;\n }\n\n public processDates(queryString: string): string {\n const dateRegex =\n /Date [e-t]{2} \\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/g;\n let m: RegExpExecArray | null;\n const dateMatches: string[] = [];\n while ((m = dateRegex.exec(queryString)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === dateRegex.lastIndex) {\n dateRegex.lastIndex++;\n }\n m.forEach((match) => {\n dateMatches.push(match);\n });\n }\n dateMatches.forEach(\n (date) =>\n (queryString = queryString.replace(\n date,\n date.replace(/T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/g, ''),\n )),\n );\n return queryString;\n }\n\n public processGuids(queryString: string): string {\n const guidRegex =\n /'[\\dA-F]{8}-?[\\dA-F]{4}-?[\\dA-F]{4}-?[\\dA-F]{4}-?[\\dA-F]{12}'/gi;\n let m: RegExpExecArray | null;\n const guidMatches: string[] = [];\n while ((m = guidRegex.exec(queryString)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === guidRegex.lastIndex) {\n guidRegex.lastIndex++;\n }\n m.forEach((match) => {\n guidMatches.push(match);\n });\n }\n guidMatches.forEach(\n (guid) =>\n (queryString = queryString.replace(guid, guid.replace(/'/g, ''))),\n );\n return queryString;\n }\n\n public processSelectors(state: ODataQuery, queryString: string): string {\n if (state.select && state.select.length > 0) {\n return `${queryString}&$select=${state.select.join()}`;\n }\n return queryString;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ODataClientService } from './services/odata-client.service';\n\n@NgModule({\n imports: [CommonModule, HttpClientModule],\n providers: [ODataClientService],\n})\nexport class ImngODataClientModule {}\n","import { IdType } from 'imng-nrsrx-client-utils';\nimport { ODataResult } from '../models/odata-result';\n\nexport function createODataResult<T extends { id?: IdType } | unknown>(\n t: T[],\n): ODataResult<T> {\n return {\n value: t,\n count: t?.length,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "imng-odata-client",
3
- "version": "6.18.2",
3
+ "version": "6.18.4",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=13.x",
6
6
  "@angular/core": ">=13.x",
7
7
  "@angular/router": ">=13.x",
8
8
  "imng-nrsrx-client-utils": "*",
9
9
  "rxjs": "*",
10
- "imng-ngrx-utils": "6.18.2"
10
+ "imng-ngrx-utils": "6.18.4"
11
11
  },
12
12
  "dependencies": {
13
13
  "tslib": "^2.3.0"