@sumaris-net/ngx-components 2.4.106 → 2.4.107
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/esm2020/src/app/core/services/model/entity.model.mjs +4 -1
- package/esm2020/src/app/core/table/table.class.mjs +10 -3
- package/esm2020/src/app/core/table/table.utils.mjs +6 -3
- package/fesm2015/sumaris-net.ngx-components.mjs +16 -3
- package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
- package/fesm2020/sumaris-net.ngx-components.mjs +16 -3
- package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/services/model/entity.model.d.ts +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AppFormUtils } from '../form/form.utils';
|
|
2
2
|
import { EntityUtils } from '../services/model/entity.model';
|
|
3
|
-
import { isNotNil
|
|
3
|
+
import { isNotNil } from '../../shared/functions';
|
|
4
4
|
export class AppTableUtils {
|
|
5
5
|
static waitIdle(table) {
|
|
6
6
|
if (!table || !table.dataSource) {
|
|
@@ -12,6 +12,9 @@ export class AppTableUtils {
|
|
|
12
12
|
AppFormUtils.logFormErrors(row.validator, logPrefix);
|
|
13
13
|
}
|
|
14
14
|
static getEntityId(row) {
|
|
15
|
+
// When using validator: use the control (avoid to load the full form's value)
|
|
16
|
+
if (row.validator)
|
|
17
|
+
return row.validator.get('id').value;
|
|
15
18
|
return EntityUtils.getId(row.currentData);
|
|
16
19
|
}
|
|
17
20
|
static getEntityIds(rows) {
|
|
@@ -19,7 +22,7 @@ export class AppTableUtils {
|
|
|
19
22
|
.map((row) => row.currentData)
|
|
20
23
|
.filter(isNotNil)
|
|
21
24
|
.map(EntityUtils.getId)
|
|
22
|
-
.filter(
|
|
25
|
+
.filter(isNotNil);
|
|
23
26
|
}
|
|
24
27
|
static getEntities(rows) {
|
|
25
28
|
return (rows || [])
|
|
@@ -27,4 +30,4 @@ export class AppTableUtils {
|
|
|
27
30
|
.filter(isNotNil);
|
|
28
31
|
}
|
|
29
32
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvdGFibGUvdGFibGUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBQyxXQUFXLEVBQVUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsUUFBUSxFQUFnQixNQUFNLHdCQUF3QixDQUFDO0FBRS9ELE1BQU0sT0FBTyxhQUFhO0lBRXhCLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBOEI7UUFDNUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQTZDLEVBQUUsU0FBa0I7UUFDbkYsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUF5RCxHQUEyQztRQUNwSCw4RUFBOEU7UUFDOUUsSUFBSSxHQUFHLENBQUMsU0FBUztZQUFFLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBVyxDQUFDO1FBQzlELE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQXlELElBQWdEO1FBQzFILE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQzthQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO2FBQ3RCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBeUQsSUFBZ0Q7UUFDekgsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7YUFDaEIsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO2FBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FwcFRhYmxlfSBmcm9tICcuL3RhYmxlLmNsYXNzJztcbmltcG9ydCB7VGFibGVFbGVtZW50fSBmcm9tICdAZS1pcy9uZ3gtbWF0ZXJpYWwtdGFibGUnO1xuaW1wb3J0IHtBcHBGb3JtVXRpbHN9IGZyb20gJy4uL2Zvcm0vZm9ybS51dGlscyc7XG5pbXBvcnQge0FzeW5jVGFibGVFbGVtZW50fSBmcm9tICdAZS1pcy9uZ3gtbWF0ZXJpYWwtdGFibGUvc3JjL2FwcC9uZ3gtbWF0ZXJpYWwtdGFibGUvYXN5bmMvYXN5bmMtdGFibGUtZWxlbWVudCc7XG5pbXBvcnQge0VudGl0eVV0aWxzLCBJRW50aXR5fSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtpc05vdE5pbCwgaXNOb3ROaWxPck5hTn0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBBcHBUYWJsZVV0aWxzIHtcblxuICBzdGF0aWMgd2FpdElkbGUodGFibGU6IEFwcFRhYmxlPGFueSwgYW55LCBhbnk+KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXRhYmxlIHx8ICF0YWJsZS5kYXRhU291cmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdGFibGUuIE1pc3NpbmcgdGFibGUgb3IgdGFibGUuZGF0YVNvdXJjZScpO1xuICAgIH1cbiAgICByZXR1cm4gdGFibGUuZGF0YVNvdXJjZS53YWl0SWRsZSgpO1xuICB9XG5cbiAgc3RhdGljIGxvZ1Jvd0Vycm9ycyhyb3c6IFRhYmxlRWxlbWVudDxhbnk+fEFzeW5jVGFibGVFbGVtZW50PGFueT4sIGxvZ1ByZWZpeD86IHN0cmluZyk6IHZvaWQge1xuICAgIEFwcEZvcm1VdGlscy5sb2dGb3JtRXJyb3JzKHJvdy52YWxpZGF0b3IsIGxvZ1ByZWZpeCk7XG4gIH1cblxuICBzdGF0aWMgZ2V0RW50aXR5SWQ8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+ID0gSUVudGl0eTxhbnksIGFueT4sIElEID0gYW55Pihyb3c6IFRhYmxlRWxlbWVudDxUPiB8IEFzeW5jVGFibGVFbGVtZW50PFQ+KTogSUQge1xuICAgIC8vIFdoZW4gdXNpbmcgdmFsaWRhdG9yOiB1c2UgdGhlIGNvbnRyb2wgKGF2b2lkIHRvIGxvYWQgdGhlIGZ1bGwgZm9ybSdzIHZhbHVlKVxuICAgIGlmIChyb3cudmFsaWRhdG9yKSByZXR1cm4gcm93LnZhbGlkYXRvci5nZXQoJ2lkJykudmFsdWUgYXMgSUQ7XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLmdldElkKHJvdy5jdXJyZW50RGF0YSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0RW50aXR5SWRzPFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiA9IElFbnRpdHk8YW55LCBhbnk+LCBJRCA9IGFueT4ocm93czogVGFibGVFbGVtZW50PFQ+W10gfCBBc3luY1RhYmxlRWxlbWVudDxUPltdKTogSURbXSB7XG4gICAgcmV0dXJuIChyb3dzIHx8IFtdKVxuICAgICAgLm1hcCgocm93KSA9PiByb3cuY3VycmVudERhdGEpXG4gICAgICAuZmlsdGVyKGlzTm90TmlsKVxuICAgICAgLm1hcChFbnRpdHlVdGlscy5nZXRJZClcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWwpO1xuICB9XG5cbiAgc3RhdGljIGdldEVudGl0aWVzPFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiA9IElFbnRpdHk8YW55LCBhbnk+LCBJRCA9IGFueT4ocm93czogVGFibGVFbGVtZW50PFQ+W10gfCBBc3luY1RhYmxlRWxlbWVudDxUPltdKTogVFtdIHtcbiAgICByZXR1cm4gKHJvd3MgfHwgW10pXG4gICAgICAubWFwKChyb3cpID0+IHJvdy5jdXJyZW50RGF0YSlcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWwpO1xuICB9XG59XG4iXX0=
|
|
@@ -11659,6 +11659,9 @@ class EntityUtils {
|
|
|
11659
11659
|
static getId(entity) {
|
|
11660
11660
|
return entity.id;
|
|
11661
11661
|
}
|
|
11662
|
+
static hasId(entity) {
|
|
11663
|
+
return isNotNil(entity.id);
|
|
11664
|
+
}
|
|
11662
11665
|
static collectById(entities) {
|
|
11663
11666
|
return (entities || []).map(e => e.id);
|
|
11664
11667
|
}
|
|
@@ -26976,6 +26979,9 @@ class AppTableUtils {
|
|
|
26976
26979
|
AppFormUtils.logFormErrors(row.validator, logPrefix);
|
|
26977
26980
|
}
|
|
26978
26981
|
static getEntityId(row) {
|
|
26982
|
+
// When using validator: use the control (avoid to load the full form's value)
|
|
26983
|
+
if (row.validator)
|
|
26984
|
+
return row.validator.get('id').value;
|
|
26979
26985
|
return EntityUtils.getId(row.currentData);
|
|
26980
26986
|
}
|
|
26981
26987
|
static getEntityIds(rows) {
|
|
@@ -26983,7 +26989,7 @@ class AppTableUtils {
|
|
|
26983
26989
|
.map((row) => row.currentData)
|
|
26984
26990
|
.filter(isNotNil)
|
|
26985
26991
|
.map(EntityUtils.getId)
|
|
26986
|
-
.filter(
|
|
26992
|
+
.filter(isNotNil);
|
|
26987
26993
|
}
|
|
26988
26994
|
static getEntities(rows) {
|
|
26989
26995
|
return (rows || [])
|
|
@@ -27747,6 +27753,11 @@ class AppTable {
|
|
|
27747
27753
|
// Listen dataSource loading events
|
|
27748
27754
|
if (this._dataSource)
|
|
27749
27755
|
this.listenDatasourceLoading(this._dataSource);
|
|
27756
|
+
// Enable permanent selection (to keep selected rows after reloading)
|
|
27757
|
+
// (only on desktop, if not already done)
|
|
27758
|
+
if (!this.mobile && !this.permanentSelection) {
|
|
27759
|
+
this.initPermanentSelection();
|
|
27760
|
+
}
|
|
27750
27761
|
}
|
|
27751
27762
|
ngAfterViewInit() {
|
|
27752
27763
|
// Detect when parent ngOnInit() not call
|
|
@@ -28156,6 +28167,7 @@ class AppTable {
|
|
|
28156
28167
|
if (row.id === -1 || (!row.editing && row.invalid /*do not use !valid because if row is disabled, it will be always !valid */)) {
|
|
28157
28168
|
if (this.debug)
|
|
28158
28169
|
console.debug(`[table] Delete row #${row.id}`);
|
|
28170
|
+
this.selection.deselect(row);
|
|
28159
28171
|
row.delete();
|
|
28160
28172
|
this.visibleRowCount--;
|
|
28161
28173
|
this.totalRowCount--;
|
|
@@ -28166,6 +28178,7 @@ class AppTable {
|
|
|
28166
28178
|
}
|
|
28167
28179
|
// Cancel the row (and mark as pristine), when not valid but in edition
|
|
28168
28180
|
else if (row.editing && !row.valid) {
|
|
28181
|
+
this.selection.deselect(row);
|
|
28169
28182
|
row.cancel();
|
|
28170
28183
|
// Mark row as pristine (if possible)
|
|
28171
28184
|
this.checkIfRowPristine(row, { emitEvent: false, onlySelf: true /*avoid propagation to table*/ });
|
|
@@ -29040,7 +29053,7 @@ class AppTable {
|
|
|
29040
29053
|
if (selectionChange.added.length) {
|
|
29041
29054
|
this.permanentSelection.setSelection(...(this.permanentSelection.selected || [])
|
|
29042
29055
|
// Add new elements
|
|
29043
|
-
.concat(...AppTableUtils.getEntities(selectionChange.added))
|
|
29056
|
+
.concat(...AppTableUtils.getEntities(selectionChange.added).filter(EntityUtils.hasId))
|
|
29044
29057
|
// Avoid duplicated entities (Mantis #55351)
|
|
29045
29058
|
.filter(EntityUtils.arrayDistinctFilterFn));
|
|
29046
29059
|
}
|
|
@@ -29048,7 +29061,7 @@ class AppTable {
|
|
|
29048
29061
|
if (selectionChange.removed.length) {
|
|
29049
29062
|
const removedIds = AppTableUtils.getEntityIds(selectionChange.removed);
|
|
29050
29063
|
this.permanentSelection.setSelection(...(this.permanentSelection.selected || [])
|
|
29051
|
-
.filter((entity) => !removedIds.includes(entity.id)));
|
|
29064
|
+
.filter((entity) => EntityUtils.hasId(entity) && !removedIds.includes(entity.id)));
|
|
29052
29065
|
}
|
|
29053
29066
|
this.markForCheck();
|
|
29054
29067
|
}));
|