@sumaris-net/ngx-components 1.5.4 → 1.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sumaris-net.ngx-components.umd.js +32 -25
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +6 -0
- package/esm2015/src/app/shared/functions.js +28 -21
- package/esm2015/src/app/shared/observables.js +3 -3
- package/fesm2015/sumaris-net.ngx-components.js +30 -23
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/shared/functions.d.ts +1 -0
- package/src/app/shared/observables.d.ts +1 -1
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -523,49 +523,56 @@
|
|
|
523
523
|
return { data: [], total: 0 };
|
|
524
524
|
}
|
|
525
525
|
// Filter items
|
|
526
|
-
var
|
|
526
|
+
var filteredItems = items;
|
|
527
527
|
if (isNotNilOrBlank(value)) {
|
|
528
528
|
// If wildcard, search using regexp
|
|
529
529
|
if (value.indexOf('*') !== -1) {
|
|
530
530
|
value = value.replace('*', '.*');
|
|
531
|
-
|
|
531
|
+
filteredItems = filteredItems.filter(function (v) { return keys.findIndex(function (key) { return matchUpperCase(getPropertyByPathAsString(v, key), value); }) !== -1; });
|
|
532
532
|
}
|
|
533
533
|
// Else (no wildcard), search using startsWith
|
|
534
534
|
else {
|
|
535
|
-
|
|
535
|
+
filteredItems = filteredItems.filter(function (v) { return keys.findIndex(function (key) { return startsWithUpperCase(getPropertyByPathAsString(v, key), value); }) !== -1; });
|
|
536
536
|
}
|
|
537
537
|
}
|
|
538
538
|
// Exclude ids
|
|
539
539
|
if (isNotEmptyArray(opts === null || opts === void 0 ? void 0 : opts.excludedIds)) {
|
|
540
|
-
|
|
541
|
-
}
|
|
542
|
-
// Sort
|
|
543
|
-
if (
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
540
|
+
filteredItems = filteredItems.filter(function (v) { return !opts.excludedIds.includes(+v['id']); });
|
|
541
|
+
}
|
|
542
|
+
// Sort
|
|
543
|
+
if (!opts || opts.skipSort !== true) {
|
|
544
|
+
// Make to copy input items, before sorting (if not yet already done)
|
|
545
|
+
if (filteredItems === items)
|
|
546
|
+
filteredItems = filteredItems.slice();
|
|
547
|
+
// Sort by keys
|
|
548
|
+
filteredItems.sort(propertiesPathComparator(keys));
|
|
549
|
+
}
|
|
550
|
+
var total = filteredItems.length || 0;
|
|
551
|
+
// Pagination (truncate if need)
|
|
552
|
+
var pageData = filteredItems;
|
|
549
553
|
if (opts) {
|
|
550
|
-
if (
|
|
551
|
-
|
|
554
|
+
if (isNotNil(opts.offset) && opts.offset > 0) {
|
|
555
|
+
pageData = pageData.slice(opts.offset);
|
|
552
556
|
}
|
|
553
|
-
if (isNotNil(opts.size) &&
|
|
554
|
-
|
|
557
|
+
if (isNotNil(opts.size) && pageData.length > opts.size) {
|
|
558
|
+
pageData = pageData.slice(0, opts.size);
|
|
555
559
|
}
|
|
556
560
|
}
|
|
557
|
-
var
|
|
558
|
-
data:
|
|
561
|
+
var result = {
|
|
562
|
+
data: pageData,
|
|
559
563
|
total: total
|
|
560
564
|
};
|
|
561
565
|
// Add fetch more capability, if total was fetched
|
|
562
|
-
var nextOffset = (opts && opts.offset || 0) +
|
|
566
|
+
var nextOffset = (opts && opts.offset || 0) + pageData.length;
|
|
563
567
|
if (nextOffset < total) {
|
|
564
|
-
|
|
565
|
-
return
|
|
566
|
-
|
|
568
|
+
result.fetchMore = function (_) { return __awaiter(_this, void 0, void 0, function () {
|
|
569
|
+
return __generator(this, function (_a) {
|
|
570
|
+
return [2 /*return*/, suggestFromArray(filteredItems, undefined /*OPTIMISATION: already applied*/, Object.assign(Object.assign({}, opts), { offset: nextOffset, skipSort: true, excludedIds: undefined // OPTIMISATION: already filtered
|
|
571
|
+
}))];
|
|
572
|
+
});
|
|
573
|
+
}); };
|
|
567
574
|
}
|
|
568
|
-
return
|
|
575
|
+
return result;
|
|
569
576
|
}
|
|
570
577
|
function suggestFromStringArray(values, value, options) {
|
|
571
578
|
value = (typeof value === 'string' && value !== '*') && value.toUpperCase() || undefined;
|
|
@@ -1146,11 +1153,11 @@
|
|
|
1146
1153
|
});
|
|
1147
1154
|
});
|
|
1148
1155
|
}
|
|
1149
|
-
function waitForTrue(
|
|
1156
|
+
function waitForTrue(observable, opts) {
|
|
1150
1157
|
return __awaiter(this, void 0, void 0, function () {
|
|
1151
1158
|
var firstTrueObservable, $timeout;
|
|
1152
1159
|
return __generator(this, function (_a) {
|
|
1153
|
-
firstTrueObservable =
|
|
1160
|
+
firstTrueObservable = observable.pipe(operators.first(function (v) { return v === true; }), operators.map(function () { }) // convert to void
|
|
1154
1161
|
);
|
|
1155
1162
|
// Timeout (+ dueTime)
|
|
1156
1163
|
if (opts && opts.timeout > 0) {
|