@sumaris-net/ngx-components 18.3.21 → 18.3.23
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/doc/changelog.md +7 -1
- package/esm2022/src/app/core/table/async-table.class.mjs +31 -5
- package/esm2022/src/app/core/table/table.class.mjs +14 -13
- package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +11 -12
- package/fesm2022/sumaris-net.ngx-components.mjs +52 -26
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/table/async-table.class.d.ts +4 -1
- package/src/assets/manifest.json +1 -1
|
@@ -41,17 +41,16 @@ export class GeolocationUtils {
|
|
|
41
41
|
*/
|
|
42
42
|
static async getCurrentPosition(platform, options) {
|
|
43
43
|
// Use Capacitor plugin
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (platform.is('capacitor')) {
|
|
44
|
+
if (platform.is('capacitor')) {
|
|
45
|
+
try {
|
|
46
|
+
console.info(`[geolocation-utils] Get current geo location, using Capacitor...(timeout: ${options?.timeout})`);
|
|
47
|
+
const pos = await Geolocation.getCurrentPosition(options);
|
|
48
|
+
return {
|
|
49
|
+
latitude: pos.coords.latitude,
|
|
50
|
+
longitude: pos.coords.longitude,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
55
54
|
console.error(`[geolocation-utils] Cannot get current geo location, using Capacitor: ${err?.message || ''}`);
|
|
56
55
|
// Detect a permission error, to add code
|
|
57
56
|
// FIXME - Capacitor use hardcoded strings! (see https://github.com/ionic-team/capacitor-plugins)
|
|
@@ -79,4 +78,4 @@ export class GeolocationUtils {
|
|
|
79
78
|
});
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24udXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9nZW9sb2NhdGlvbi9nZW9sb2NhdGlvbi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFHL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyQyxNQUFNLE9BQU8sU0FBUztJQUNwQixRQUFRLENBQVM7SUFDakIsU0FBUyxDQUFTO0NBQ25CO0FBRUQsTUFBTSxPQUFnQixnQkFBZ0I7SUFDcEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQW1CLEVBQUUsSUFBMEI7UUFDckUsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFckYsa0JBQWtCO1FBQ2xCLElBQUksUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsUUFBUSxHQUFHLEVBQUUsSUFBSSxRQUFRLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDL0csaURBQWlEO1lBQ2pELElBQUksSUFBSSxFQUFFLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN4RSxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFtQixFQUFFLElBQTBCO1FBQ25FLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFB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QkFBaUIsRUFBRSxDQUFDO2dCQUNyRSxDQUFDO2dCQUNELE1BQU0sR0FBRyxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxPQUFPLENBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDaEQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FDdEMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDTixPQUFPLENBQVk7b0JBQ2pCLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVE7b0JBQzdCLFNBQVMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVM7aUJBQ2hDLENBQUMsQ0FBQztZQUNMLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNOLElBQUksT0FBTyxHQUFHLEdBQUcsRUFBRSxPQUFPLElBQUksR0FBRyxDQUFDO2dCQUNsQyxPQUFPLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFFLE9BQU8sQ0FBQyxLQUFLLENBQUMscUVBQXFFLEdBQUcsT0FBTyxDQUFDLENBQUM7Z0JBQy9GLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLENBQUMsRUFDRCxPQUFPLENBQ1IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VvbG9jYXRpb24sIFBvc2l0aW9uIH0gZnJvbSAnQGNhcGFjaXRvci9nZW9sb2NhdGlvbic7XG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBJUG9zaXRpb24ge1xuICBsYXRpdHVkZTogbnVtYmVyO1xuICBsb25naXR1ZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdlb2xvY2F0aW9uVXRpbHMge1xuICBzdGF0aWMgaXNOb3ROaWxBbmRWYWxpZChwb3NpdGlvbjogSVBvc2l0aW9uLCBvcHRzPzogeyBkZWJ1Zz86IGJvb2xlYW4gfSkge1xuICAgIGlmICghcG9zaXRpb24gfHwgaXNOaWwocG9zaXRpb24ubGF0aXR1ZGUpIHx8IGlzTmlsKHBvc2l0aW9uLmxvbmdpdHVkZSkpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIEludmFsaWQgbGF0L2xvblxuICAgIGlmIChwb3NpdGlvbi5sYXRpdHVkZSA8IC05MCB8fCBwb3NpdGlvbi5sYXRpdHVkZSA+IDkwIHx8IHBvc2l0aW9uLmxvbmdpdHVkZSA8IC0xODAgfHwgcG9zaXRpb24ubG9uZ2l0dWRlID4gMTgwKSB7XG4gICAgICAvLyAvIVxcIExvZyBpbiBjb25zb2xlLCBiZWNhdXNlIHNob3VsZCBuZXZlciBvY2N1clxuICAgICAgaWYgKG9wdHM/LmRlYnVnKSBjb25zb2xlLndhcm4oJ0ludmFsaWQgbGF0L2xvbmcgcG9zaXRpb246ICAnLCBwb3NpdGlvbik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT0s6IHZhbGlkXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgaXNOaWxPckludmFsaWQocG9zaXRpb246IElQb3NpdGlvbiwgb3B0cz86IHsgZGVidWc/OiBib29sZWFuIH0pIHtcbiAgICByZXR1cm4gIUdlb2xvY2F0aW9uVXRpbHMuaXNOb3ROaWxBbmRWYWxpZChwb3NpdGlvbiwgb3B0cyk7XG4gIH1cblxuICBzdGF0aWMgY29tcHV0ZURpc3RhbmNlSW5NaWxlcyhwb3NpdGlvbjE6IElQb3NpdGlvbiwgcG9zaXRpb24yOiBJUG9zaXRpb24pOiBudW1iZXIge1xuICAgIC8vIEludmFsaWQgcG9zaXRpb24ocyk6IHNraXBcbiAgICBpZiAoR2VvbG9jYXRpb25VdGlscy5pc05pbE9ySW52YWxpZChwb3NpdGlvbjEsIHsgZGVidWc6IHRydWUgfSkgfHwgR2VvbG9jYXRpb25VdGlscy5pc05pbE9ySW52YWxpZChwb3NpdGlvbjIsIHsgZGVidWc6IHRydWUgfSkpIHJldHVybjtcblxuICAgIGNvbnN0IGxhdGl0dWRlMVJhZCA9IChNYXRoLlBJICogcG9zaXRpb24xLmxhdGl0dWRlKSAvIDE4MDtcbiAgICBjb25zdCBsb25naXR1ZGUxUmFkID0gKE1hdGguUEkgKiBwb3NpdGlvbjEubG9uZ2l0dWRlKSAvIDE4MDtcbiAgICBjb25zdCBsYXRpdHVkZTJSYWQgPSAoTWF0aC5QSSAqIHBvc2l0aW9uMi5sYXRpdHVkZSkgLyAxODA7XG4gICAgY29uc3QgbG9uZ2l0dWRlMlJhZCA9IChNYXRoLlBJICogcG9zaXRpb24yLmxvbmdpdHVkZSkgLyAxODA7XG5cbiAgICBsZXQgZGlzdGFuY2UgPVxuICAgICAgMiAqXG4gICAgICA2MzcxICpcbiAgICAgIE1hdGguYXNpbihcbiAgICAgICAgTWF0aC5zcXJ0KFxuICAgICAgICAgIE1hdGgucG93KE1hdGguc2luKChsYXRpdHVkZTFSYWQgLSBsYXRpdHVkZTJSYWQpIC8gMiksIDIpICtcbiAgICAgICAgICAgIE1hdGguY29zKGxhdGl0dWRlMVJhZCkgKiBNYXRoLmNvcyhsYXRpdHVkZTJSYWQpICogTWF0aC5wb3coTWF0aC5zaW4oKGxvbmdpdHVkZTJSYWQgLSBsb25naXR1ZGUxUmFkKSAvIDIpLCAyKVxuICAgICAgICApXG4gICAgICApO1xuICAgIGRpc3RhbmNlID0gTWF0aC5yb3VuZCgoZGlzdGFuY2UgLyAxLjg1MiArIE51bWJlci5FUFNJTE9OKSAqIDEwMCkgLyAxMDA7XG4gICAgcmV0dXJuIGRpc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcG9zaXRpb24gYnkgZ2VvIGxvYyBzZW5zb3JcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRDdXJyZW50UG9zaXRpb24ocGxhdGZvcm06IFBsYXRmb3JtU2VydmljZSB8IFBsYXRmb3JtLCBvcHRpb25zPzogUG9zaXRpb25PcHRpb25zKTogUHJvbWlzZTxJUG9zaXRpb24+IHtcbiAgICAvLyBVc2UgQ2FwYWNpdG9yIHBsdWdpblxuICAgIGlmIChwbGF0Zm9ybS5pcygnY2FwYWNpdG9yJykpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhgW2dlb2xvY2F0aW9uLXV0aWxzXSBHZXQgY3VycmVudCBnZW8gbG9jYXRpb24sIHVzaW5nIENhcGFjaXRvci4uLih0aW1lb3V0OiAke29wdGlvbnM/LnRpbWVvdXR9KWApO1xuICAgICAgICBjb25zdCBwb3M6IFBvc2l0aW9uID0gYXdhaXQgR2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gPElQb3NpdGlvbj57XG4gICAgICAgICAgbGF0aXR1ZGU6IHBvcy5jb29yZHMubGF0aXR1ZGUsXG4gICAgICAgICAgbG9uZ2l0dWRlOiBwb3MuY29vcmRzLmxvbmdpdHVkZSxcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbZ2VvbG9jYXRpb24tdXRpbHNdIENhbm5vdCBnZXQgY3VycmVudCBnZW8gbG9jYXRpb24sIHVzaW5nIENhcGFjaXRvcjogJHtlcnI/Lm1lc3NhZ2UgfHwgJyd9YCk7XG5cbiAgICAgICAgLy8gRGV0ZWN0IGEgcGVybWlzc2lvbiBlcnJvciwgdG8gYWRkIGNvZGVcbiAgICAgICAgLy8gRklYTUUgLSBDYXBhY2l0b3IgdXNlIGhhcmRjb2RlZCBzdHJpbmdzISAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9pb25pYy10ZWFtL2NhcGFjaXRvci1wbHVnaW5zKVxuICAgICAgICBjb25zdCBtZXNzYWdlID0gKChlcnI/Lm1lc3NhZ2UgfHwgJycpIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKG1lc3NhZ2UuaW5jbHVkZXMoJ2xvY2F0aW9uIHBlcm1pc3Npb24gd2FzIGRlbmllZCcpIHx8IG1lc3NhZ2UuaW5jbHVkZXMoJ2xvY2F0aW9uIGRpc2FibGVkJykpIHtcbiAgICAgICAgICB0aHJvdyB7IC4uLmVyciwgY29kZTogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLlBFUk1JU1NJT05fREVOSUVEIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9yIGZhbGxiYWNrIHRvIG5hdmlnYXRvclxuICAgIGNvbnNvbGUuaW5mbygnW2dlb2xvY2F0aW9uLXV0aWxzXSBHZXQgY3VycmVudCBnZW8gbG9jYXRpb24sIHVzaW5nIGJyb3dzZXIuLi4nKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8SVBvc2l0aW9uPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKFxuICAgICAgICAocmVzKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSg8SVBvc2l0aW9uPntcbiAgICAgICAgICAgIGxhdGl0dWRlOiByZXMuY29vcmRzLmxhdGl0dWRlLFxuICAgICAgICAgICAgbG9uZ2l0dWRlOiByZXMuY29vcmRzLmxvbmdpdHVkZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIGxldCBtZXNzYWdlID0gZXJyPy5tZXNzYWdlIHx8IGVycjtcbiAgICAgICAgICBtZXNzYWdlID0gdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnID8gbWVzc2FnZSA6IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tnZW9sb2NhdGlvbi11dGlsc10gQ2Fubm90IGdldCBjdXJyZW50IGdlbyBsb2NhdGlvbiwgdXNpbmcgYnJvd3NlcjonICsgbWVzc2FnZSk7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnNcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -26627,17 +26627,16 @@ class GeolocationUtils {
|
|
|
26627
26627
|
*/
|
|
26628
26628
|
static async getCurrentPosition(platform, options) {
|
|
26629
26629
|
// Use Capacitor plugin
|
|
26630
|
-
|
|
26631
|
-
|
|
26632
|
-
|
|
26633
|
-
|
|
26634
|
-
|
|
26635
|
-
|
|
26636
|
-
|
|
26637
|
-
|
|
26638
|
-
|
|
26639
|
-
|
|
26640
|
-
if (platform.is('capacitor')) {
|
|
26630
|
+
if (platform.is('capacitor')) {
|
|
26631
|
+
try {
|
|
26632
|
+
console.info(`[geolocation-utils] Get current geo location, using Capacitor...(timeout: ${options?.timeout})`);
|
|
26633
|
+
const pos = await Geolocation.getCurrentPosition(options);
|
|
26634
|
+
return {
|
|
26635
|
+
latitude: pos.coords.latitude,
|
|
26636
|
+
longitude: pos.coords.longitude,
|
|
26637
|
+
};
|
|
26638
|
+
}
|
|
26639
|
+
catch (err) {
|
|
26641
26640
|
console.error(`[geolocation-utils] Cannot get current geo location, using Capacitor: ${err?.message || ''}`);
|
|
26642
26641
|
// Detect a permission error, to add code
|
|
26643
26642
|
// FIXME - Capacitor use hardcoded strings! (see https://github.com/ionic-team/capacitor-plugins)
|
|
@@ -31565,7 +31564,7 @@ class AppTable {
|
|
|
31565
31564
|
saveBeforeFilter;
|
|
31566
31565
|
propagateRowError = false;
|
|
31567
31566
|
permanentSelectionAllowed = false; // Allow keep selected rows over page change or sort change
|
|
31568
|
-
openRowThrottleTime = 800;
|
|
31567
|
+
openRowThrottleTime = 800; // Prevent double click - see issue sumaris-app#864
|
|
31569
31568
|
defaultSortBy;
|
|
31570
31569
|
defaultSortDirection;
|
|
31571
31570
|
defaultPageSize = DEFAULT_PAGE_SIZE;
|
|
@@ -32421,11 +32420,17 @@ class AppTable {
|
|
|
32421
32420
|
this.selection.clear();
|
|
32422
32421
|
this.openRow(row.currentData.id, row)
|
|
32423
32422
|
.catch((err) => console.error('Failed to open row', err)) // Continue
|
|
32424
|
-
.then(
|
|
32423
|
+
.then(() => {
|
|
32425
32424
|
this.markAsLoaded();
|
|
32426
|
-
//
|
|
32427
|
-
|
|
32428
|
-
|
|
32425
|
+
// Prevent double click (use an open throttle time)
|
|
32426
|
+
if (this.openRowThrottleTime > 0) {
|
|
32427
|
+
setTimeout(() => {
|
|
32428
|
+
this._openingRow = false;
|
|
32429
|
+
}, this.openRowThrottleTime);
|
|
32430
|
+
}
|
|
32431
|
+
else {
|
|
32432
|
+
this._openingRow = false;
|
|
32433
|
+
}
|
|
32429
32434
|
});
|
|
32430
32435
|
return true;
|
|
32431
32436
|
}
|
|
@@ -32551,8 +32556,6 @@ class AppTable {
|
|
|
32551
32556
|
}
|
|
32552
32557
|
this.editedRow = row;
|
|
32553
32558
|
this.onStartEditingRow.emit(row);
|
|
32554
|
-
// FIXME
|
|
32555
|
-
//this.detectChanges(); // Workaround need by SUMARiS (e.g. for samples tables) otherwise the row will not be editable
|
|
32556
32559
|
return true;
|
|
32557
32560
|
}
|
|
32558
32561
|
/**
|
|
@@ -32831,11 +32834,8 @@ class AppTable {
|
|
|
32831
32834
|
this.visibleRowCount++;
|
|
32832
32835
|
this.markAsDirty({ emitEvent: false /*markForCheck() is called just after*/ });
|
|
32833
32836
|
// Emit event
|
|
32834
|
-
if (!opts || opts.emitEvent !== false)
|
|
32837
|
+
if (!opts || opts.emitEvent !== false)
|
|
32835
32838
|
this.markForCheck();
|
|
32836
|
-
// FIXME
|
|
32837
|
-
//this.detectChanges(); // Workaround need by SUMARiS (e.g. samples tables) otherwise new row is not visible
|
|
32838
|
-
}
|
|
32839
32839
|
return row;
|
|
32840
32840
|
}
|
|
32841
32841
|
registerCellValueChanges(name, formPath, emitInitialValue) {
|
|
@@ -34250,6 +34250,7 @@ class AppAsyncTable {
|
|
|
34250
34250
|
_dataSource;
|
|
34251
34251
|
_filter;
|
|
34252
34252
|
_initialized = false;
|
|
34253
|
+
_openingRow = false;
|
|
34253
34254
|
_subscription = new Subscription();
|
|
34254
34255
|
_dataSourceLoadingSubscription;
|
|
34255
34256
|
_cellValueChangesDefs = {};
|
|
@@ -34309,6 +34310,7 @@ class AppAsyncTable {
|
|
|
34309
34310
|
saveBeforeFilter;
|
|
34310
34311
|
propagateRowError = false;
|
|
34311
34312
|
permanentSelectionAllowed = false; // Allow keep selected rows over page change or sort change
|
|
34313
|
+
openRowThrottleTime = 800; // Prevent double click - see issue sumaris-app#864
|
|
34312
34314
|
defaultSortBy;
|
|
34313
34315
|
defaultSortDirection;
|
|
34314
34316
|
defaultPageSize = DEFAULT_PAGE_SIZE;
|
|
@@ -34524,6 +34526,14 @@ class AppAsyncTable {
|
|
|
34524
34526
|
get sortDirection() {
|
|
34525
34527
|
return (this.sort && this.sort.direction && (this.sort.direction === 'desc' ? 'desc' : 'asc')) || undefined;
|
|
34526
34528
|
}
|
|
34529
|
+
set sortDirection(value) {
|
|
34530
|
+
if (this.sort) {
|
|
34531
|
+
this.sort.direction = value;
|
|
34532
|
+
}
|
|
34533
|
+
else {
|
|
34534
|
+
this.defaultSortDirection = value;
|
|
34535
|
+
}
|
|
34536
|
+
}
|
|
34527
34537
|
_paginator = null;
|
|
34528
34538
|
set paginator(value) {
|
|
34529
34539
|
this._paginator = value;
|
|
@@ -35103,15 +35113,29 @@ class AppAsyncTable {
|
|
|
35103
35113
|
}
|
|
35104
35114
|
// Open the detail page (if not inline editing)
|
|
35105
35115
|
if (!this.inlineEdition) {
|
|
35116
|
+
if (this._openingRow)
|
|
35117
|
+
return; // Prevent double click
|
|
35106
35118
|
if (event) {
|
|
35107
35119
|
event.stopPropagation();
|
|
35108
35120
|
event.preventDefault();
|
|
35109
35121
|
}
|
|
35122
|
+
this._openingRow = true; // Prevent double click
|
|
35110
35123
|
this.markAsLoading();
|
|
35111
35124
|
this.selection.clear();
|
|
35112
35125
|
this.openRow(row.currentData.id, row)
|
|
35113
|
-
.
|
|
35114
|
-
.
|
|
35126
|
+
.catch((err) => console.error('Failed to open row', err)) // Continue
|
|
35127
|
+
.then(() => {
|
|
35128
|
+
this.markAsLoaded();
|
|
35129
|
+
// Prevent double click (use an open throttle time)
|
|
35130
|
+
if (this.openRowThrottleTime > 0) {
|
|
35131
|
+
setTimeout(() => {
|
|
35132
|
+
this._openingRow = false;
|
|
35133
|
+
}, this.openRowThrottleTime);
|
|
35134
|
+
}
|
|
35135
|
+
else {
|
|
35136
|
+
this._openingRow = false;
|
|
35137
|
+
}
|
|
35138
|
+
});
|
|
35115
35139
|
return true;
|
|
35116
35140
|
}
|
|
35117
35141
|
// Start editing row
|
|
@@ -35727,7 +35751,7 @@ class AppAsyncTable {
|
|
|
35727
35751
|
}
|
|
35728
35752
|
}
|
|
35729
35753
|
setLoading(value, opts) {
|
|
35730
|
-
if (this.loadingSubject.value !== value) {
|
|
35754
|
+
if (!this.loadingSubject.closed && this.loadingSubject.value !== value) {
|
|
35731
35755
|
this.loadingSubject.next(value);
|
|
35732
35756
|
if (!opts || opts.emitEvent !== false) {
|
|
35733
35757
|
this.markForCheck();
|
|
@@ -35875,7 +35899,7 @@ class AppAsyncTable {
|
|
|
35875
35899
|
}
|
|
35876
35900
|
}
|
|
35877
35901
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: AppAsyncTable, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
35878
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: AppAsyncTable, inputs: { settingsId: "settingsId", debug: "debug", i18nColumnPrefix: "i18nColumnPrefix", i18nColumnSuffix: "i18nColumnSuffix", autoLoad: "autoLoad", readOnly: "readOnly", inlineEdition: "inlineEdition", focusFirstColumn: "focusFirstColumn", confirmBeforeDelete: "confirmBeforeDelete", confirmBeforeCancel: "confirmBeforeCancel", undoableDeletion: "undoableDeletion", saveBeforeDelete: "saveBeforeDelete", keepEditedRowOnSave: "keepEditedRowOnSave", saveBeforeSort: "saveBeforeSort", saveBeforeFilter: "saveBeforeFilter", propagateRowError: "propagateRowError", permanentSelectionAllowed: "permanentSelectionAllowed", defaultSortBy: "defaultSortBy", defaultSortDirection: "defaultSortDirection", defaultPageSize: "defaultPageSize", defaultPageSizeOptions: "defaultPageSizeOptions", focusColumn: "focusColumn", dataSource: "dataSource", filter: "filter", disabled: "disabled", paginator: "paginator" }, outputs: { onRefresh: "onRefresh", onOpenRow: "onOpenRow", onNewRow: "onNewRow", onStartEditingRow: "onStartEditingRow", onConfirmEditCreateRow: "onConfirmEditCreateRow", onCancelOrDeleteRow: "onCancelOrDeleteRow", onBeforeDeleteRows: "onBeforeDeleteRows", onBeforeCancelRows: "onBeforeCancelRows", onBeforeSave: "onBeforeSave", onAfterDeletedRows: "onAfterDeletedRows", onSort: "onSort", onDirty: "onDirty", onError: "onError" }, viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true }, { propertyName: "childPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0 });
|
|
35902
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: AppAsyncTable, inputs: { settingsId: "settingsId", debug: "debug", i18nColumnPrefix: "i18nColumnPrefix", i18nColumnSuffix: "i18nColumnSuffix", autoLoad: "autoLoad", readOnly: "readOnly", inlineEdition: "inlineEdition", focusFirstColumn: "focusFirstColumn", confirmBeforeDelete: "confirmBeforeDelete", confirmBeforeCancel: "confirmBeforeCancel", undoableDeletion: "undoableDeletion", saveBeforeDelete: "saveBeforeDelete", keepEditedRowOnSave: "keepEditedRowOnSave", saveBeforeSort: "saveBeforeSort", saveBeforeFilter: "saveBeforeFilter", propagateRowError: "propagateRowError", permanentSelectionAllowed: "permanentSelectionAllowed", openRowThrottleTime: "openRowThrottleTime", defaultSortBy: "defaultSortBy", defaultSortDirection: "defaultSortDirection", defaultPageSize: "defaultPageSize", defaultPageSizeOptions: "defaultPageSizeOptions", focusColumn: "focusColumn", dataSource: "dataSource", filter: "filter", disabled: "disabled", paginator: "paginator" }, outputs: { onRefresh: "onRefresh", onOpenRow: "onOpenRow", onNewRow: "onNewRow", onStartEditingRow: "onStartEditingRow", onConfirmEditCreateRow: "onConfirmEditCreateRow", onCancelOrDeleteRow: "onCancelOrDeleteRow", onBeforeDeleteRows: "onBeforeDeleteRows", onBeforeCancelRows: "onBeforeCancelRows", onBeforeSave: "onBeforeSave", onAfterDeletedRows: "onAfterDeletedRows", onSort: "onSort", onDirty: "onDirty", onError: "onError" }, viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true }, { propertyName: "childPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0 });
|
|
35879
35903
|
}
|
|
35880
35904
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: AppAsyncTable, decorators: [{
|
|
35881
35905
|
type: Directive
|
|
@@ -35913,6 +35937,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
35913
35937
|
type: Input
|
|
35914
35938
|
}], permanentSelectionAllowed: [{
|
|
35915
35939
|
type: Input
|
|
35940
|
+
}], openRowThrottleTime: [{
|
|
35941
|
+
type: Input
|
|
35916
35942
|
}], defaultSortBy: [{
|
|
35917
35943
|
type: Input
|
|
35918
35944
|
}], defaultSortDirection: [{
|