@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.
@@ -41,17 +41,16 @@ export class GeolocationUtils {
41
41
  */
42
42
  static async getCurrentPosition(platform, options) {
43
43
  // Use Capacitor plugin
44
- try {
45
- console.info(`[geolocation-utils] Get current geo location, using Capacitor...(timeout: ${options?.timeout})`);
46
- const pos = await Geolocation.getCurrentPosition(options);
47
- return {
48
- latitude: pos.coords.latitude,
49
- longitude: pos.coords.longitude,
50
- };
51
- }
52
- catch (err) {
53
- // If capacitor : throw error (cannot fallback to browser geolocation, because of browser security limitation)
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24udXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9nZW9sb2NhdGlvbi9nZW9sb2NhdGlvbi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFHL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyQyxNQUFNLE9BQU8sU0FBUztJQUNwQixRQUFRLENBQVM7SUFDakIsU0FBUyxDQUFTO0NBQ25CO0FBRUQsTUFBTSxPQUFnQixnQkFBZ0I7SUFDcEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQW1CLEVBQUUsSUFBMEI7UUFDckUsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFckYsa0JBQWtCO1FBQ2xCLElBQUksUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsUUFBUSxHQUFHLEVBQUUsSUFBSSxRQUFRLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDL0csaURBQWlEO1lBQ2pELElBQUksSUFBSSxFQUFFLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN4RSxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFtQixFQUFFLElBQTBCO1FBQ25FLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFB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d0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNyRSxDQUFDO2dCQUNELE1BQU0sR0FBRyxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxPQUFPLENBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDaEQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FDdEMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDTixPQUFPLENBQVk7b0JBQ2pCLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVE7b0JBQzdCLFNBQVMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVM7aUJBQ2hDLENBQUMsQ0FBQztZQUNMLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNOLElBQUksT0FBTyxHQUFHLEdBQUcsRUFBRSxPQUFPLElBQUksR0FBRyxDQUFDO2dCQUNsQyxPQUFPLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFFLE9BQU8sQ0FBQyxLQUFLLENBQUMscUVBQXFFLEdBQUcsT0FBTyxDQUFDLENBQUM7Z0JBQy9GLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLENBQUMsRUFDRCxPQUFPLENBQ1IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VvbG9jYXRpb24sIFBvc2l0aW9uIH0gZnJvbSAnQGNhcGFjaXRvci9nZW9sb2NhdGlvbic7XG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBJUG9zaXRpb24ge1xuICBsYXRpdHVkZTogbnVtYmVyO1xuICBsb25naXR1ZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdlb2xvY2F0aW9uVXRpbHMge1xuICBzdGF0aWMgaXNOb3ROaWxBbmRWYWxpZChwb3NpdGlvbjogSVBvc2l0aW9uLCBvcHRzPzogeyBkZWJ1Zz86IGJvb2xlYW4gfSkge1xuICAgIGlmICghcG9zaXRpb24gfHwgaXNOaWwocG9zaXRpb24ubGF0aXR1ZGUpIHx8IGlzTmlsKHBvc2l0aW9uLmxvbmdpdHVkZSkpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIEludmFsaWQgbGF0L2xvblxuICAgIGlmIChwb3NpdGlvbi5sYXRpdHVkZSA8IC05MCB8fCBwb3NpdGlvbi5sYXRpdHVkZSA+IDkwIHx8IHBvc2l0aW9uLmxvbmdpdHVkZSA8IC0xODAgfHwgcG9zaXRpb24ubG9uZ2l0dWRlID4gMTgwKSB7XG4gICAgICAvLyAvIVxcIExvZyBpbiBjb25zb2xlLCBiZWNhdXNlIHNob3VsZCBuZXZlciBvY2N1clxuICAgICAgaWYgKG9wdHM/LmRlYnVnKSBjb25zb2xlLndhcm4oJ0ludmFsaWQgbGF0L2xvbmcgcG9zaXRpb246ICAnLCBwb3NpdGlvbik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT0s6IHZhbGlkXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgaXNOaWxPckludmFsaWQocG9zaXRpb246IElQb3NpdGlvbiwgb3B0cz86IHsgZGVidWc/OiBib29sZWFuIH0pIHtcbiAgICByZXR1cm4gIUdlb2xvY2F0aW9uVXRpbHMuaXNOb3ROaWxBbmRWYWxpZChwb3NpdGlvbiwgb3B0cyk7XG4gIH1cblxuICBzdGF0aWMgY29tcHV0ZURpc3RhbmNlSW5NaWxlcyhwb3NpdGlvbjE6IElQb3NpdGlvbiwgcG9zaXRpb24yOiBJUG9zaXRpb24pOiBudW1iZXIge1xuICAgIC8vIEludmFsaWQgcG9zaXRpb24ocyk6IHNraXBcbiAgICBpZiAoR2VvbG9jYXRpb25VdGlscy5pc05pbE9ySW52YWxpZChwb3NpdGlvbjEsIHsgZGVidWc6IHRydWUgfSkgfHwgR2VvbG9jYXRpb25VdGlscy5pc05pbE9ySW52YWxpZChwb3NpdGlvbjIsIHsgZGVidWc6IHRydWUgfSkpIHJldHVybjtcblxuICAgIGNvbnN0IGxhdGl0dWRlMVJhZCA9IChNYXRoLlBJICogcG9zaXRpb24xLmxhdGl0dWRlKSAvIDE4MDtcbiAgICBjb25zdCBsb25naXR1ZGUxUmFkID0gKE1hdGguUEkgKiBwb3NpdGlvbjEubG9uZ2l0dWRlKSAvIDE4MDtcbiAgICBjb25zdCBsYXRpdHVkZTJSYWQgPSAoTWF0aC5QSSAqIHBvc2l0aW9uMi5sYXRpdHVkZSkgLyAxODA7XG4gICAgY29uc3QgbG9uZ2l0dWRlMlJhZCA9IChNYXRoLlBJICogcG9zaXRpb24yLmxvbmdpdHVkZSkgLyAxODA7XG5cbiAgICBsZXQgZGlzdGFuY2UgPVxuICAgICAgMiAqXG4gICAgICA2MzcxICpcbiAgICAgIE1hdGguYXNpbihcbiAgICAgICAgTWF0aC5zcXJ0KFxuICAgICAgICAgIE1hdGgucG93KE1hdGguc2luKChsYXRpdHVkZTFSYWQgLSBsYXRpdHVkZTJSYWQpIC8gMiksIDIpICtcbiAgICAgICAgICAgIE1hdGguY29zKGxhdGl0dWRlMVJhZCkgKiBNYXRoLmNvcyhsYXRpdHVkZTJSYWQpICogTWF0aC5wb3coTWF0aC5zaW4oKGxvbmdpdHVkZTJSYWQgLSBsb25naXR1ZGUxUmFkKSAvIDIpLCAyKVxuICAgICAgICApXG4gICAgICApO1xuICAgIGRpc3RhbmNlID0gTWF0aC5yb3VuZCgoZGlzdGFuY2UgLyAxLjg1MiArIE51bWJlci5FUFNJTE9OKSAqIDEwMCkgLyAxMDA7XG4gICAgcmV0dXJuIGRpc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcG9zaXRpb24gYnkgZ2VvIGxvYyBzZW5zb3JcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRDdXJyZW50UG9zaXRpb24ocGxhdGZvcm06IFBsYXRmb3JtU2VydmljZSB8IFBsYXRmb3JtLCBvcHRpb25zPzogUG9zaXRpb25PcHRpb25zKTogUHJvbWlzZTxJUG9zaXRpb24+IHtcbiAgICAvLyBVc2UgQ2FwYWNpdG9yIHBsdWdpblxuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmluZm8oYFtnZW9sb2NhdGlvbi11dGlsc10gR2V0IGN1cnJlbnQgZ2VvIGxvY2F0aW9uLCB1c2luZyBDYXBhY2l0b3IuLi4odGltZW91dDogJHtvcHRpb25zPy50aW1lb3V0fSlgKTtcbiAgICAgIGNvbnN0IHBvczogUG9zaXRpb24gPSBhd2FpdCBHZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24ob3B0aW9ucyk7XG4gICAgICByZXR1cm4gPElQb3NpdGlvbj57XG4gICAgICAgIGxhdGl0dWRlOiBwb3MuY29vcmRzLmxhdGl0dWRlLFxuICAgICAgICBsb25naXR1ZGU6IHBvcy5jb29yZHMubG9uZ2l0dWRlLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIElmIGNhcGFjaXRvciA6IHRocm93IGVycm9yIChjYW5ub3QgZmFsbGJhY2sgdG8gYnJvd3NlciBnZW9sb2NhdGlvbiwgYmVjYXVzZSBvZiBicm93c2VyIHNlY3VyaXR5IGxpbWl0YXRpb24pXG4gICAgICBpZiAocGxhdGZvcm0uaXMoJ2NhcGFjaXRvcicpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFtnZW9sb2NhdGlvbi11dGlsc10gQ2Fubm90IGdldCBjdXJyZW50IGdlbyBsb2NhdGlvbiwgdXNpbmcgQ2FwYWNpdG9yOiAke2Vycj8ubWVzc2FnZSB8fCAnJ31gKTtcblxuICAgICAgICAvLyBEZXRlY3QgYSBwZXJtaXNzaW9uIGVycm9yLCB0byBhZGQgY29kZVxuICAgICAgICAvLyBGSVhNRSAtIENhcGFjaXRvciB1c2UgaGFyZGNvZGVkIHN0cmluZ3MhIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vY2FwYWNpdG9yLXBsdWdpbnMpXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAoKGVycj8ubWVzc2FnZSB8fCAnJykgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobWVzc2FnZS5pbmNsdWRlcygnbG9jYXRpb24gcGVybWlzc2lvbiB3YXMgZGVuaWVkJykgfHwgbWVzc2FnZS5pbmNsdWRlcygnbG9jYXRpb24gZGlzYWJsZWQnKSkge1xuICAgICAgICAgIHRocm93IHsgLi4uZXJyLCBjb2RlOiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQgfTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gT3IgZmFsbGJhY2sgdG8gbmF2aWdhdG9yXG4gICAgY29uc29sZS5pbmZvKCdbZ2VvbG9jYXRpb24tdXRpbHNdIEdldCBjdXJyZW50IGdlbyBsb2NhdGlvbiwgdXNpbmcgYnJvd3Nlci4uLicpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxJUG9zaXRpb24+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oXG4gICAgICAgIChyZXMpID0+IHtcbiAgICAgICAgICByZXNvbHZlKDxJUG9zaXRpb24+e1xuICAgICAgICAgICAgbGF0aXR1ZGU6IHJlcy5jb29yZHMubGF0aXR1ZGUsXG4gICAgICAgICAgICBsb25naXR1ZGU6IHJlcy5jb29yZHMubG9uZ2l0dWRlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSBlcnI/Lm1lc3NhZ2UgfHwgZXJyO1xuICAgICAgICAgIG1lc3NhZ2UgPSB0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycgPyBtZXNzYWdlIDogSlNPTi5zdHJpbmdpZnkobWVzc2FnZSk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignW2dlb2xvY2F0aW9uLXV0aWxzXSBDYW5ub3QgZ2V0IGN1cnJlbnQgZ2VvIGxvY2F0aW9uLCB1c2luZyBicm93c2VyOicgKyBtZXNzYWdlKTtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
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
- try {
26631
- console.info(`[geolocation-utils] Get current geo location, using Capacitor...(timeout: ${options?.timeout})`);
26632
- const pos = await Geolocation.getCurrentPosition(options);
26633
- return {
26634
- latitude: pos.coords.latitude,
26635
- longitude: pos.coords.longitude,
26636
- };
26637
- }
26638
- catch (err) {
26639
- // If capacitor : throw error (cannot fallback to browser geolocation, because of browser security limitation)
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(async () => {
32423
+ .then(() => {
32425
32424
  this.markAsLoaded();
32426
- // Add the throttle time, before authorize to click again (prevent double click)
32427
- await sleep(this.openRowThrottleTime);
32428
- this._openingRow = false;
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
- .then(() => this.markAsLoaded())
35114
- .catch(() => this.markAsLoaded());
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: [{