@stemy/ngx-utils 13.4.2 → 13.4.3

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.
Files changed (39) hide show
  1. package/bundles/stemy-ngx-utils.umd.js +195 -85
  2. package/bundles/stemy-ngx-utils.umd.js.map +1 -1
  3. package/esm2015/ngx-utils/common-types.js +6 -1
  4. package/esm2015/ngx-utils/pipes/filter.pipe.js +6 -11
  5. package/esm2015/ngx-utils/pipes/find.pipe.js +9 -9
  6. package/esm2015/ngx-utils/services/api.service.js +6 -2
  7. package/esm2015/ngx-utils/services/base-http.service.js +8 -9
  8. package/esm2015/ngx-utils/services/config.service.js +14 -1
  9. package/esm2015/ngx-utils/services/language.service.js +16 -4
  10. package/esm2015/ngx-utils/services/universal.service.js +10 -7
  11. package/esm2015/ngx-utils/utils/object.utils.js +76 -30
  12. package/esm2015/public_api.js +2 -2
  13. package/esm2015/stemy-ngx-utils.js +3 -2
  14. package/esm2020/ngx-utils/common-types.mjs +6 -1
  15. package/esm2020/ngx-utils/pipes/filter.pipe.mjs +6 -11
  16. package/esm2020/ngx-utils/pipes/find.pipe.mjs +9 -9
  17. package/esm2020/ngx-utils/services/api.service.mjs +6 -2
  18. package/esm2020/ngx-utils/services/base-http.service.mjs +7 -8
  19. package/esm2020/ngx-utils/services/config.service.mjs +14 -1
  20. package/esm2020/ngx-utils/services/language.service.mjs +15 -4
  21. package/esm2020/ngx-utils/services/universal.service.mjs +10 -7
  22. package/esm2020/ngx-utils/utils/object.utils.mjs +76 -28
  23. package/esm2020/public_api.mjs +2 -2
  24. package/fesm2015/stemy-ngx-utils.js +143 -65
  25. package/fesm2015/stemy-ngx-utils.js.map +1 -1
  26. package/fesm2015/stemy-ngx-utils.mjs +142 -63
  27. package/fesm2015/stemy-ngx-utils.mjs.map +1 -1
  28. package/fesm2020/stemy-ngx-utils.mjs +141 -63
  29. package/fesm2020/stemy-ngx-utils.mjs.map +1 -1
  30. package/ngx-utils/common-types.d.ts +10 -1
  31. package/ngx-utils/pipes/find.pipe.d.ts +1 -1
  32. package/ngx-utils/services/base-http.service.d.ts +1 -0
  33. package/ngx-utils/services/config.service.d.ts +1 -0
  34. package/ngx-utils/services/language.service.d.ts +3 -3
  35. package/ngx-utils/services/universal.service.d.ts +3 -2
  36. package/ngx-utils/utils/object.utils.d.ts +3 -0
  37. package/package.json +1 -1
  38. package/public_api.d.ts +1 -1
  39. package/stemy-ngx-utils.metadata.json +1 -1
@@ -317,8 +317,12 @@
317
317
  return value;
318
318
  }
319
319
 
320
- var defaultPredicate = function () { return true; };
321
- var ɵ0 = defaultPredicate;
320
+ function defaultPredicate(value, key, target, source) {
321
+ return true;
322
+ }
323
+ function shouldCopyDefault(key, value) {
324
+ return true;
325
+ }
322
326
  var hasBlob = typeof Blob !== "undefined" && !!Blob;
323
327
  var hasFile = typeof File !== "undefined" && !!File;
324
328
  var ObjectUtils = /** @class */ (function () {
@@ -484,17 +488,19 @@
484
488
  return isNaN(key) || isArray ? target : Object.values(target);
485
489
  };
486
490
  ObjectUtils.filter = function (obj, predicate) {
487
- return ObjectUtils.copyRecursive(null, obj, predicate, new Map());
491
+ return ObjectUtils.copyRecursive(null, obj, predicate || defaultPredicate, new Map());
488
492
  };
489
493
  ObjectUtils.copy = function (obj) {
490
- return ObjectUtils.copyRecursive(null, obj, null, new Map());
494
+ return ObjectUtils.copyRecursive(null, obj, defaultPredicate, new Map());
491
495
  };
492
496
  ObjectUtils.assign = function (target, source, predicate) {
493
- return ObjectUtils.copyRecursive(target, source, predicate, new Map());
497
+ return ObjectUtils.copyRecursive(target, source, predicate || defaultPredicate, new Map());
494
498
  };
495
499
  ObjectUtils.getType = function (obj) {
496
500
  var regex = new RegExp("\\s([a-zA-Z]+)");
497
- return Object.prototype.toString.call(obj).match(regex)[1].toLowerCase();
501
+ var target = !obj ? null : obj.constructor;
502
+ var type = !target ? null : Reflect.getMetadata("objectType", target);
503
+ return (type || Object.prototype.toString.call(obj).match(regex)[1]).toLowerCase();
498
504
  };
499
505
  ObjectUtils.isPrimitive = function (value) {
500
506
  var type = typeof value;
@@ -541,6 +547,9 @@
541
547
  ObjectUtils.isSet = function (value) {
542
548
  return value instanceof Set;
543
549
  };
550
+ ObjectUtils.isConstructor = function (value) {
551
+ return (value && typeof value === "function" && value.prototype && value.prototype.constructor) === value && value.name !== "Object";
552
+ };
544
553
  ObjectUtils.checkInterface = function (obj, interFaceObject) {
545
554
  return ObjectUtils.isInterface(obj, interFaceObject);
546
555
  };
@@ -578,33 +587,102 @@
578
587
  return str.length >= width ? str : new Array(width - str.length + 1).join(chr) + str;
579
588
  };
580
589
  ObjectUtils.copyRecursive = function (target, source, predicate, copies) {
581
- predicate = predicate || defaultPredicate;
590
+ var e_2, _a, e_3, _b, e_4, _c;
582
591
  if (ObjectUtils.isPrimitive(source) || ObjectUtils.isDate(source) || ObjectUtils.isBlob(source) || ObjectUtils.isFunction(source))
583
592
  return source;
584
- if (!copies.has(source)) {
585
- if (ObjectUtils.isArray(source)) {
586
- target = ObjectUtils.isArray(target) ? Array.from(target) : [];
587
- copies.set(source, target);
588
- source.forEach(function (item, index) {
589
- if (!predicate(item, index, target, source))
590
- return;
591
- if (target.length > index)
592
- target[index] = ObjectUtils.copyRecursive(target[index], item, predicate, copies);
593
- else
594
- target.push(ObjectUtils.copyRecursive(null, item, predicate, copies));
595
- });
593
+ if (copies.has(source))
594
+ return copies.get(source);
595
+ if (ObjectUtils.isArray(source)) {
596
+ target = ObjectUtils.isArray(target) ? Array.from(target) : [];
597
+ copies.set(source, target);
598
+ for (var index = 0; index < source.length; index++) {
599
+ var item = source[index];
600
+ if (!predicate(item, index, target, source))
601
+ continue;
602
+ if (target.length > index)
603
+ target[index] = ObjectUtils.copyRecursive(target[index], item, predicate, copies);
604
+ else
605
+ target.push(ObjectUtils.copyRecursive(null, item, predicate, copies));
596
606
  }
597
- else {
598
- target = Object.assign({}, target);
599
- copies.set(source, target);
600
- Object.keys(source).forEach(function (key) {
601
- if (!predicate(source[key], key, target, source))
602
- return;
603
- target[key] = ObjectUtils.copyRecursive(target[key], source[key], predicate, copies);
604
- });
607
+ return target;
608
+ }
609
+ // If object defines __shouldCopy as false, then don't copy it
610
+ if (source.__shouldCopy === false)
611
+ return source;
612
+ // Copy object
613
+ var shouldCopy = ObjectUtils.isFunction(source.__shouldCopy) ? source.__shouldCopy : shouldCopyDefault;
614
+ if (ObjectUtils.isConstructor(source.constructor)) {
615
+ if (!target) {
616
+ try {
617
+ target = new source.constructor();
618
+ }
619
+ catch (e) {
620
+ var proto = source.constructor.prototype || source.prototype;
621
+ target = Object.create(proto);
622
+ }
623
+ }
624
+ }
625
+ else {
626
+ target = Object.assign({}, target || {});
627
+ }
628
+ // Set to copies to prevent circular references
629
+ copies.set(source, target);
630
+ // Copy map entries
631
+ if (target instanceof Map) {
632
+ if (source instanceof Map) {
633
+ try {
634
+ for (var _d = __values(source.entries()), _e = _d.next(); !_e.done; _e = _d.next()) {
635
+ var _f = __read(_e.value, 2), key = _f[0], value = _f[1];
636
+ if (!predicate(value, key, target, source))
637
+ continue;
638
+ target.set(key, !shouldCopy(key, value) ? value : ObjectUtils.copyRecursive(target.get(key), value, predicate, copies));
639
+ }
640
+ }
641
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
642
+ finally {
643
+ try {
644
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
645
+ }
646
+ finally { if (e_2) throw e_2.error; }
647
+ }
648
+ }
649
+ return target;
650
+ }
651
+ // Copy object members
652
+ var keys = Object.keys(source);
653
+ try {
654
+ for (var keys_2 = __values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) {
655
+ var key = keys_2_1.value;
656
+ if (!predicate(source[key], key, target, source))
657
+ continue;
658
+ target[key] = !shouldCopy(key, source[key]) ? source[key] : ObjectUtils.copyRecursive(target[key], source[key], predicate, copies);
659
+ }
660
+ }
661
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
662
+ finally {
663
+ try {
664
+ if (keys_2_1 && !keys_2_1.done && (_b = keys_2.return)) _b.call(keys_2);
665
+ }
666
+ finally { if (e_3) throw e_3.error; }
667
+ }
668
+ // Copy object properties
669
+ var descriptors = Object.getOwnPropertyDescriptors(source);
670
+ try {
671
+ for (var _g = __values(Object.keys(descriptors)), _h = _g.next(); !_h.done; _h = _g.next()) {
672
+ var key = _h.value;
673
+ if (keys.indexOf(key) >= 0)
674
+ continue;
675
+ Object.defineProperty(target, key, descriptors[key]);
605
676
  }
606
677
  }
607
- return copies.get(source);
678
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
679
+ finally {
680
+ try {
681
+ if (_h && !_h.done && (_c = _g.return)) _c.call(_g);
682
+ }
683
+ finally { if (e_4) throw e_4.error; }
684
+ }
685
+ return target;
608
686
  };
609
687
  return ObjectUtils;
610
688
  }());
@@ -682,6 +760,11 @@
682
760
  ReflectUtils.defineMetadata("factoryDependencies", dependencies, target, method);
683
761
  };
684
762
  }
763
+ function ObjectType(type) {
764
+ return function (target) {
765
+ ReflectUtils.defineMetadata("objectType", type, target);
766
+ };
767
+ }
685
768
  var PaginationItemContext = /** @class */ (function () {
686
769
  function PaginationItemContext(item, parallelItem, count, index, dataIndex) {
687
770
  this.item = item;
@@ -1805,7 +1888,7 @@
1805
1888
  });
1806
1889
  Object.defineProperty(UniversalService.prototype, "browserName", {
1807
1890
  get: function () {
1808
- return this.dds.browser;
1891
+ return (this.dds.browser || "").toLowerCase();
1809
1892
  },
1810
1893
  enumerable: false,
1811
1894
  configurable: true
@@ -1819,35 +1902,35 @@
1819
1902
  });
1820
1903
  Object.defineProperty(UniversalService.prototype, "isExplorer", {
1821
1904
  get: function () {
1822
- return this.dds.browser == "ie";
1905
+ return this.checkBrowser("ie");
1823
1906
  },
1824
1907
  enumerable: false,
1825
1908
  configurable: true
1826
1909
  });
1827
1910
  Object.defineProperty(UniversalService.prototype, "isEdge", {
1828
1911
  get: function () {
1829
- return this.dds.browser == "ms-edge";
1912
+ return this.checkBrowser("edge");
1830
1913
  },
1831
1914
  enumerable: false,
1832
1915
  configurable: true
1833
1916
  });
1834
1917
  Object.defineProperty(UniversalService.prototype, "isChrome", {
1835
1918
  get: function () {
1836
- return this.dds.browser == "chrome";
1919
+ return this.checkBrowser("chrome");
1837
1920
  },
1838
1921
  enumerable: false,
1839
1922
  configurable: true
1840
1923
  });
1841
1924
  Object.defineProperty(UniversalService.prototype, "isFirefox", {
1842
1925
  get: function () {
1843
- return this.dds.browser == "firefox";
1926
+ return this.checkBrowser("firefox");
1844
1927
  },
1845
1928
  enumerable: false,
1846
1929
  configurable: true
1847
1930
  });
1848
1931
  Object.defineProperty(UniversalService.prototype, "isSafari", {
1849
1932
  get: function () {
1850
- return this.dds.browser == "safari";
1933
+ return this.checkBrowser("safari");
1851
1934
  },
1852
1935
  enumerable: false,
1853
1936
  configurable: true
@@ -1880,6 +1963,9 @@
1880
1963
  enumerable: false,
1881
1964
  configurable: true
1882
1965
  });
1966
+ UniversalService.prototype.checkBrowser = function (name) {
1967
+ return this.browserName.includes(name) || false;
1968
+ };
1883
1969
  return UniversalService;
1884
1970
  }());
1885
1971
  UniversalService.decorators = [
@@ -3125,8 +3211,8 @@
3125
3211
  // If we use token auth
3126
3212
  if (_this.client.renewTokenFunc && headers.has(authKey)) {
3127
3213
  var currentTime = new Date().getTime();
3128
- var userTokenTime = _this.storage.get("userTokenTime") || currentTime;
3129
- // And the last request was a long long time ago
3214
+ var userTokenTime = _this.getUserTokenTime() || currentTime;
3215
+ // And the last request was a long-long time ago
3130
3216
  if (currentTime - 600000 > userTokenTime) {
3131
3217
  _this.client.renewTokenFunc();
3132
3218
  }
@@ -3138,7 +3224,7 @@
3138
3224
  }
3139
3225
  var headers = options.headers;
3140
3226
  var authKey = "Authorization";
3141
- // If an authorization header exists and we still have an Unauthorized response prompt the user to log in again
3227
+ // If an authorization header exists, and we still have an Unauthorized response prompt the user to log in again
3142
3228
  if (headers.has(authKey) && response.status == 401) {
3143
3229
  var pushed = _this.pushFailedRequest(url, options, function () {
3144
3230
  options.headers = _this.makeHeaders(options.originalHeaders);
@@ -3153,6 +3239,9 @@
3153
3239
  });
3154
3240
  });
3155
3241
  };
3242
+ BaseHttpService.prototype.getUserTokenTime = function () {
3243
+ return this.storage.get("userTokenTime");
3244
+ };
3156
3245
  BaseHttpService.prototype.pushFailedRequest = function (url, options, req) {
3157
3246
  if (url.indexOf("tokens") >= 0)
3158
3247
  return false;
@@ -3197,13 +3286,8 @@
3197
3286
  };
3198
3287
  BaseHttpService.prototype.absoluteUrl = function (url, options) {
3199
3288
  return __awaiter(this, void 0, void 0, function () {
3200
- var absoluteUrl;
3201
3289
  return __generator(this, function (_c) {
3202
- absoluteUrl = this.parseUrl(url);
3203
- if (url == "api-docs") {
3204
- return [2 /*return*/, absoluteUrl.replace("/api", "")];
3205
- }
3206
- return [2 /*return*/, absoluteUrl];
3290
+ return [2 /*return*/, this.parseUrl(url)];
3207
3291
  });
3208
3292
  });
3209
3293
  };
@@ -3242,7 +3326,11 @@
3242
3326
  configurable: true
3243
3327
  });
3244
3328
  ApiService.prototype.url = function (url) {
3245
- return this.expressRequestUrl("/api/" + url);
3329
+ var baseUrl = this.expressRequestUrl("/api/" + url);
3330
+ if (url == "api-docs" || url == "socket") {
3331
+ return baseUrl.replace("/api/", "/");
3332
+ }
3333
+ return baseUrl;
3246
3334
  };
3247
3335
  ApiService.prototype.get = function (url, options, body) {
3248
3336
  return this.getPromise(url, options, body);
@@ -3399,6 +3487,19 @@
3399
3487
  ConfigService.prototype.prepareConfig = function (config) {
3400
3488
  return Promise.resolve(config);
3401
3489
  };
3490
+ ConfigService.prototype.cloneRootElem = function () {
3491
+ if (this.rootElement instanceof HTMLElement) {
3492
+ var clone = this.rootElement.cloneNode(true);
3493
+ var children = Array.from(clone.childNodes);
3494
+ children.forEach(function (child) {
3495
+ if (child instanceof HTMLElement) {
3496
+ child.remove();
3497
+ }
3498
+ });
3499
+ return clone;
3500
+ }
3501
+ return this.rootElement.cloneNode(true);
3502
+ };
3402
3503
  ConfigService.prototype.prepareUrl = function (url, ending) {
3403
3504
  var _a;
3404
3505
  var project = !this.loadedConfig ? "" : this.loadedConfig.project;
@@ -3848,8 +3949,8 @@
3848
3949
  get: function () {
3849
3950
  var _this = this;
3850
3951
  this.loadSettings().then(function (s) { return _this.languageSettings.next(s); });
3851
- return rxjs.combineLatest([this.languageSettings, this.events.languageChanged]).pipe(operators.map(function (_a) {
3852
- var _b = __read(_a, 2), settings = _b[0], lang = _b[1];
3952
+ return rxjs.combineLatest([this.languageSettings, this.events.languageChanged]).pipe(operators.map(function (_b) {
3953
+ var _c = __read(_b, 2), settings = _c[0], lang = _c[1];
3853
3954
  return !settings ? {} : settings.settings[lang] || {};
3854
3955
  }));
3855
3956
  },
@@ -3870,22 +3971,35 @@
3870
3971
  LanguageService.prototype.initFromSettings = function () {
3871
3972
  return __awaiter(this, void 0, void 0, function () {
3872
3973
  var defaultLanguage, settings, devLanguages, lang;
3873
- return __generator(this, function (_a) {
3874
- switch (_a.label) {
3974
+ var _this = this;
3975
+ return __generator(this, function (_b) {
3976
+ switch (_b.label) {
3875
3977
  case 0:
3876
3978
  defaultLanguage = this.defaultLanguage;
3877
3979
  return [4 /*yield*/, this.loadSettings()];
3878
3980
  case 1:
3879
- settings = _a.sent();
3981
+ settings = _b.sent();
3880
3982
  this.languageSettings.next(settings);
3881
3983
  devLanguages = settings.devLanguages || [];
3882
3984
  this.languageList = (settings.languages || []).filter(function (lang) {
3985
+ var _a;
3986
+ var unavailable = (_a = settings.settings[lang]) === null || _a === void 0 ? void 0 : _a.unavailable;
3987
+ if (unavailable) {
3988
+ var parts = unavailable.split("/");
3989
+ var value = parts[0] || parts[1];
3990
+ var flags = parts.length > 1 ? parts[parts.length - 1] : "g";
3991
+ if (new RegExp(value, flags).test(_this.config.baseDomain))
3992
+ return false;
3993
+ }
3883
3994
  return devLanguages.indexOf(lang) < 0;
3884
3995
  });
3885
- lang = this.languages.indexOf(defaultLanguage) < 0 ? settings.defaultLanguage : defaultLanguage;
3996
+ if (this.languageList.length === 0) {
3997
+ this.languageList = [defaultLanguage];
3998
+ }
3999
+ lang = this.languages.indexOf(defaultLanguage) < 0 ? settings.defaultLanguage || this.languageList[0] : defaultLanguage;
3886
4000
  return [4 /*yield*/, this.useLanguage(lang)];
3887
4001
  case 2:
3888
- _a.sent();
4002
+ _b.sent();
3889
4003
  this.events.languageChanged.emit(lang);
3890
4004
  return [2 /*return*/];
3891
4005
  }
@@ -3896,24 +4010,24 @@
3896
4010
  if (params === void 0) { params = null; }
3897
4011
  return __awaiter(this, void 0, void 0, function () {
3898
4012
  var lowerKey, dict, reason_1;
3899
- return __generator(this, function (_a) {
3900
- switch (_a.label) {
4013
+ return __generator(this, function (_b) {
4014
+ switch (_b.label) {
3901
4015
  case 0:
3902
4016
  if (!key)
3903
4017
  return [2 /*return*/, ""];
3904
- _a.label = 1;
4018
+ _b.label = 1;
3905
4019
  case 1:
3906
- _a.trys.push([1, 3, , 4]);
4020
+ _b.trys.push([1, 3, , 4]);
3907
4021
  lowerKey = key.toLocaleLowerCase();
3908
4022
  return [4 /*yield*/, this.loadDictionary()];
3909
4023
  case 2:
3910
- dict = _a.sent();
4024
+ dict = _b.sent();
3911
4025
  if (lowerKey in dict) {
3912
4026
  return [2 /*return*/, this.interpolate(dict[lowerKey], params)];
3913
4027
  }
3914
4028
  return [2 /*return*/, this.interpolate(key, params)];
3915
4029
  case 3:
3916
- reason_1 = _a.sent();
4030
+ reason_1 = _b.sent();
3917
4031
  console.log("ERROR IN TRANSLATIONS", reason_1);
3918
4032
  return [2 /*return*/, key];
3919
4033
  case 4: return [2 /*return*/];
@@ -3924,8 +4038,8 @@
3924
4038
  LanguageService.prototype.useLanguage = function (lang) {
3925
4039
  return __awaiter(this, void 0, void 0, function () {
3926
4040
  var dict;
3927
- return __generator(this, function (_a) {
3928
- switch (_a.label) {
4041
+ return __generator(this, function (_b) {
4042
+ switch (_b.label) {
3929
4043
  case 0:
3930
4044
  lang = this.languages.indexOf(lang) < 0 ? this.languages[0] : lang;
3931
4045
  this.client.setExtraRequestParam("language", lang);
@@ -3935,7 +4049,7 @@
3935
4049
  this.currentLang = lang;
3936
4050
  return [4 /*yield*/, this.loadDictionary()];
3937
4051
  case 1:
3938
- dict = _a.sent();
4052
+ dict = _b.sent();
3939
4053
  this.translations[lang] = dict;
3940
4054
  return [2 /*return*/, dict];
3941
4055
  }
@@ -3959,7 +4073,7 @@
3959
4073
  return this.translationRequests[lang];
3960
4074
  };
3961
4075
  LanguageService.prototype.loadSettings = function () {
3962
- this.settingsPromise = this.settingsPromise || this.client.get(this.config.translationUrl + "languageSettings").toPromise()
4076
+ this.settingsPromise = this.settingsPromise || (this.client.get(this.config.translationUrl + "languageSettings").toPromise())
3963
4077
  .then(function (settings) {
3964
4078
  return settings;
3965
4079
  }, function () {
@@ -3970,7 +4084,7 @@
3970
4084
  settings: {
3971
4085
  de: {},
3972
4086
  hu: {},
3973
- end: {}
4087
+ en: {}
3974
4088
  }
3975
4089
  };
3976
4090
  });
@@ -4369,25 +4483,20 @@
4369
4483
  var isObject = ObjectUtils.isObject(values);
4370
4484
  if (!isObject && !ObjectUtils.isArray(values))
4371
4485
  return [];
4372
- var filterFunc = ObjectUtils.isFunction(filter) ? filter : function (value, key, params) {
4373
- return ObjectUtils.evaluate(filter, {
4374
- value: value,
4375
- key: key,
4376
- item: value,
4377
- index: key,
4378
- params: params
4379
- });
4486
+ var filterFunc = ObjectUtils.isFunction(filter) ? filter : function (value, key, params, values) {
4487
+ var index = key;
4488
+ return ObjectUtils.evaluate(filter, { value: value, key: key, params: params, values: values, index: index });
4380
4489
  };
4381
4490
  if (isObject) {
4382
4491
  return Object.keys(values).filter(function (key) {
4383
- return filterFunc(values[key], key, params);
4492
+ return filterFunc(values[key], key, params, values);
4384
4493
  }).reduce(function (result, key) {
4385
4494
  result[key] = values[key];
4386
4495
  return result;
4387
4496
  }, {});
4388
4497
  }
4389
4498
  return values.filter(function (value, key) {
4390
- return filterFunc(value, key, params);
4499
+ return filterFunc(value, key, params, values);
4391
4500
  });
4392
4501
  };
4393
4502
  return FilterPipe;
@@ -4406,17 +4515,16 @@
4406
4515
  }
4407
4516
  FindPipe.prototype.transform = function (values, filter, params) {
4408
4517
  if (filter === void 0) { filter = defaultFilter; }
4409
- if (params === void 0) { params = {}; }
4410
4518
  if (!ObjectUtils.isArray(values))
4411
4519
  return [];
4412
- var filterFunc = ObjectUtils.isFunction(filter) ? filter : function (value, index, params) {
4413
- return ObjectUtils.evaluate(filter, {
4414
- value: value,
4415
- index: index,
4416
- params: params
4417
- });
4520
+ params = params || {};
4521
+ if (ObjectUtils.isObject(params)) {
4522
+ params.values = values;
4523
+ }
4524
+ var filterFunc = ObjectUtils.isFunction(filter) ? filter : function (value, index, params, values) {
4525
+ return ObjectUtils.evaluate(filter, { value: value, index: index, params: params, values: values });
4418
4526
  };
4419
- return values.find(function (value, index) { return filterFunc(value, index, params); });
4527
+ return values.find(function (value, index) { return filterFunc(value, index, params, values); });
4420
4528
  };
4421
4529
  return FindPipe;
4422
4530
  }());
@@ -6210,6 +6318,7 @@
6210
6318
  exports.MinPipe = MinPipe;
6211
6319
  exports.NgxTemplateOutletDirective = NgxTemplateOutletDirective;
6212
6320
  exports.NgxUtilsModule = NgxUtilsModule;
6321
+ exports.ObjectType = ObjectType;
6213
6322
  exports.ObjectUtils = ObjectUtils;
6214
6323
  exports.ObservableUtils = ObservableUtils;
6215
6324
  exports.OpenApiService = OpenApiService;
@@ -6258,11 +6367,12 @@
6258
6367
  exports.ValuedPromise = ValuedPromise;
6259
6368
  exports.ValuesPipe = ValuesPipe;
6260
6369
  exports.Vector = Vector;
6261
- exports["ɵa"] = pipes;
6262
- exports["ɵb"] = directives;
6263
- exports["ɵc"] = components;
6264
- exports["ɵd"] = providers;
6265
- exports["ɵe"] = loadConfig;
6370
+ exports["ɵa"] = defaultPredicate;
6371
+ exports["ɵb"] = pipes;
6372
+ exports["ɵc"] = directives;
6373
+ exports["ɵd"] = components;
6374
+ exports["ɵe"] = providers;
6375
+ exports["ɵf"] = loadConfig;
6266
6376
 
6267
6377
  Object.defineProperty(exports, '__esModule', { value: true });
6268
6378