@sumaris-net/ngx-components 1.10.0 → 1.10.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.
@@ -64,11 +64,11 @@ export const environment = Object.freeze({
64
64
  },
65
65
  account: {
66
66
  enableListenChanges: true,
67
- listenIntervalInSeconds: 30
67
+ listenIntervalInSeconds: 60
68
68
  },
69
69
  entityEditor: {
70
70
  enableListenChanges: true,
71
- listenIntervalInSeconds: 30
71
+ listenIntervalInSeconds: 60
72
72
  }
73
73
  });
74
74
  /*
@@ -78,4 +78,4 @@ export const environment = Object.freeze({
78
78
  * because it will have performance impact when throw error
79
79
  */
80
80
  import 'zone.js/dist/zone-error';
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdGQUFnRjtBQUNoRiwyRUFBMkU7QUFDM0UsZ0VBQWdFO0FBSWhFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBZ0IsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNwRCxJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxHQUFHO0lBQ1osYUFBYSxFQUFFLElBQUk7SUFDbkIsb0JBQW9CLEVBQUUsTUFBTTtJQUM1QixpQkFBaUIsRUFBRSxhQUFhO0lBRWhDLHNCQUFzQjtJQUN0QixZQUFZLEVBQUUsS0FBSztJQUVuQix3QkFBd0I7SUFDeEIsZ0JBQWdCO0lBRWhCLGNBQWMsRUFBRSxPQUFPO0lBRXZCLFlBQVksRUFBRTtRQUNaO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFLEVBQUU7U0FDVDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixJQUFJLEVBQUUsR0FBRztTQUNWO0tBQ0Y7SUFDRCxjQUFjLEVBQUUsU0FBUztJQUN6Qix3QkFBd0IsRUFBRSwrREFBK0Q7SUFFekYsVUFBVTtJQUNWLE9BQU8sRUFBRTtRQUNQLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQztLQUMvRDtJQUVELFFBQVE7SUFDUixTQUFTLEVBQUUscUVBQXFFO0lBQ2hGLGNBQWMsRUFBRSw4RUFBOEU7SUFDOUYsUUFBUSxFQUFFLDJCQUEyQjtJQUNyQyxPQUFPLEVBQUUsZ0dBQWdHO0lBRXpHLGNBQWM7SUFDZCxpQkFBaUIsRUFBRTtRQUVqQixxQ0FBcUM7UUFDckMsd0NBQXdDO1FBRXhDLG1DQUFtQztRQUNuQyxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLE9BQU87S0FDakQ7SUFFRCxPQUFPLEVBQUU7UUFDUCxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLHVCQUF1QixFQUFFLEVBQUU7S0FDNUI7SUFFRCxZQUFZLEVBQUU7UUFDWixtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLHVCQUF1QixFQUFFLEVBQUU7S0FDNUI7Q0FDRixDQUFDLENBQUM7QUFFSDs7Ozs7R0FLRztBQUNILE9BQU8seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgY2FuIGJlIHJlcGxhY2VkIGR1cmluZyBidWlsZCBieSB1c2luZyB0aGUgYGZpbGVSZXBsYWNlbWVudHNgIGFycmF5LlxuLy8gYG5nIGJ1aWxkIC0tLXByb2RgIHJlcGxhY2VzIGBlbnZpcm9ubWVudC50c2Agd2l0aCBgZW52aXJvbm1lbnQucHJvZC50c2AuXG4vLyBUaGUgbGlzdCBvZiBmaWxlIHJlcGxhY2VtZW50cyBjYW4gYmUgZm91bmQgaW4gYGFuZ3VsYXIuanNvbmAuXG5cbmltcG9ydCB7RW52aXJvbm1lbnR9IGZyb20gJy4vZW52aXJvbm1lbnQuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50ID0gT2JqZWN0LmZyZWV6ZSh7XG4gIG5hbWU6ICdAc3VtYXJpcy1uZXQvbmd4LWNvbXBvbmVudHMnLCAvLyBvdmVycmlkZGVuIGJ5IEVOVklST05NRU5UIHRva2VuXG4gIHZlcnNpb246IHVuZGVmaW5lZCwgLy8gb3ZlcnJpZGRlbiBieSBFTlZJUk9OTUVOVCB0b2tlblxuICBwcm9kdWN0aW9uOiB0cnVlLCAvLyBsZXQgdG8gdHJ1ZSAhIGJlY2F1c2UgdXNlZCBieSBwYWNrYWdlclxuICBiYXNlVXJsOiAnLycsXG4gIGRlZmF1bHRMb2NhbGU6ICdmcicsXG4gIGRlZmF1bHRMYXRMb25nRm9ybWF0OiAnRERNTScsXG4gIGFwb2xsb0ZldGNoUG9saWN5OiAnY2FjaGUtZmlyc3QnLFxuXG4gIC8vIEZJWE1FOiBlbmFibGUgY2FjaGVcbiAgcGVyc2lzdENhY2hlOiBmYWxzZSxcblxuICAvLyBUT0RPOiBtYWtlIHRoaXMgd29ya3NcbiAgLy9vZmZsaW5lOiB0cnVlLFxuXG4gIHBlZXJNaW5WZXJzaW9uOiAnMS44LjAnLFxuXG4gIGRlZmF1bHRQZWVyczogW1xuICAgIHtcbiAgICAgIGhvc3Q6ICdsb2NhbGhvc3QnLFxuICAgICAgcG9ydDogODA4MFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICBwb3J0OiA4MDgxXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnMTkyLjE2OC4wLjQ1JyxcbiAgICAgIHBvcnQ6IDgwODBcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICcxOTIuMTY4LjAuMjQnLFxuICAgICAgcG9ydDogODA4MFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC4yOScsXG4gICAgICBwb3J0OiA4MDgwXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnc2loLnNmYS5zYycsXG4gICAgICBwb3J0OiA4MFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ3Rlc3Quc3VtYXJpcy5uZXQnLFxuICAgICAgcG9ydDogNDQzXG4gICAgfVxuICBdLFxuICBkZWZhdWx0QXBwTmFtZTogJ1NVTUFSaVMnLFxuICBkZWZhdWx0QW5kcm9pZEluc3RhbGxVcmw6ICdodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9bmV0LnN1bWFyaXMuYXBwJyxcblxuICAvLyBTdG9yYWdlXG4gIHN0b3JhZ2U6IHtcbiAgICBkcml2ZXJPcmRlcjogWydzcWxpdGUnLCAnaW5kZXhlZGRiJywgJ3dlYnNxbCcsICdsb2NhbHN0b3JhZ2UnXVxuICB9LFxuXG4gIC8vIEFib3V0XG4gIHNvdXJjZVVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMnLFxuICByZXBvcnRJc3N1ZVVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMvLS9pc3N1ZXMnLFxuICBmb3J1bVVybDogJ2h0dHBzOi8vZm9ydW0uc3VtYXJpcy5uZXQnLFxuICBoZWxwVXJsOiAnaHR0cHM6Ly9naXRsYWIuaWZyZW1lci5mci9zaWgtcHVibGljL3N1bWFyaXMvc3VtYXJpcy1kb2MvLS9ibG9iL21hc3Rlci91c2VyLW1hbnVhbC9pbmRleF9mci5tZCcsXG5cbiAgLy8gRGV2ZWxvcG1lbnRcbiAgZGVmYXVsdEF1dGhWYWx1ZXM6IHtcblxuICAgIC8vIEJhc2ljIGF1dGggKHVzaW5nIFBlcnNvbi51c2VybmFtZSlcbiAgICAvLyB1c2VybmFtZTogJ2FkbXEyJywgcGFzc3dvcmQ6ICdxMjIwMDYnXG5cbiAgICAvLyBUb2tlbiBhdXRoICh1c2luZyBQZXJzb24ucHVia2V5KVxuICAgIHVzZXJuYW1lOiAnYWRtaW5Ac3VtYXJpcy5uZXQnLCBwYXNzd29yZDogJ2FkbWluJyxcbiAgfSxcblxuICBhY2NvdW50OiB7XG4gICAgZW5hYmxlTGlzdGVuQ2hhbmdlczogdHJ1ZSxcbiAgICBsaXN0ZW5JbnRlcnZhbEluU2Vjb25kczogMzBcbiAgfSxcblxuICBlbnRpdHlFZGl0b3I6IHtcbiAgICBlbmFibGVMaXN0ZW5DaGFuZ2VzOiB0cnVlLFxuICAgIGxpc3RlbkludGVydmFsSW5TZWNvbmRzOiAzMFxuICB9XG59KTtcblxuLypcbiAqIEluIGRldmVsb3BtZW50IG1vZGUsIHRvIGlnbm9yZSB6b25lIHJlbGF0ZWQgZXJyb3Igc3RhY2sgZnJhbWVzIHN1Y2ggYXNcbiAqIGB6b25lLnJ1bmAsIGB6b25lRGVsZWdhdGUuaW52b2tlVGFza2AgZm9yIGVhc2llciBkZWJ1Z2dpbmcsIHlvdSBjYW5cbiAqIGltcG9ydCB0aGUgZm9sbG93aW5nIGZpbGUsIGJ1dCBwbGVhc2UgY29tbWVudCBpdCBvdXQgaW4gcHJvZHVjdGlvbiBtb2RlXG4gKiBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBwZXJmb3JtYW5jZSBpbXBhY3Qgd2hlbiB0aHJvdyBlcnJvclxuICovXG5pbXBvcnQgJ3pvbmUuanMvZGlzdC96b25lLWVycm9yJztcbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdGQUFnRjtBQUNoRiwyRUFBMkU7QUFDM0UsZ0VBQWdFO0FBSWhFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBZ0IsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNwRCxJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxHQUFHO0lBQ1osYUFBYSxFQUFFLElBQUk7SUFDbkIsb0JBQW9CLEVBQUUsTUFBTTtJQUM1QixpQkFBaUIsRUFBRSxhQUFhO0lBRWhDLHNCQUFzQjtJQUN0QixZQUFZLEVBQUUsS0FBSztJQUVuQix3QkFBd0I7SUFDeEIsZ0JBQWdCO0lBRWhCLGNBQWMsRUFBRSxPQUFPO0lBRXZCLFlBQVksRUFBRTtRQUNaO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFLEVBQUU7U0FDVDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixJQUFJLEVBQUUsR0FBRztTQUNWO0tBQ0Y7SUFDRCxjQUFjLEVBQUUsU0FBUztJQUN6Qix3QkFBd0IsRUFBRSwrREFBK0Q7SUFFekYsVUFBVTtJQUNWLE9BQU8sRUFBRTtRQUNQLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQztLQUMvRDtJQUVELFFBQVE7SUFDUixTQUFTLEVBQUUscUVBQXFFO0lBQ2hGLGNBQWMsRUFBRSw4RUFBOEU7SUFDOUYsUUFBUSxFQUFFLDJCQUEyQjtJQUNyQyxPQUFPLEVBQUUsZ0dBQWdHO0lBRXpHLGNBQWM7SUFDZCxpQkFBaUIsRUFBRTtRQUVqQixxQ0FBcUM7UUFDckMsd0NBQXdDO1FBRXhDLG1DQUFtQztRQUNuQyxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLE9BQU87S0FDakQ7SUFFRCxPQUFPLEVBQUU7UUFDUCxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLHVCQUF1QixFQUFFLEVBQUU7S0FDNUI7SUFFRCxZQUFZLEVBQUU7UUFDWixtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLHVCQUF1QixFQUFFLEVBQUU7S0FDNUI7Q0FDRixDQUFDLENBQUM7QUFFSDs7Ozs7R0FLRztBQUNILE9BQU8seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgY2FuIGJlIHJlcGxhY2VkIGR1cmluZyBidWlsZCBieSB1c2luZyB0aGUgYGZpbGVSZXBsYWNlbWVudHNgIGFycmF5LlxuLy8gYG5nIGJ1aWxkIC0tLXByb2RgIHJlcGxhY2VzIGBlbnZpcm9ubWVudC50c2Agd2l0aCBgZW52aXJvbm1lbnQucHJvZC50c2AuXG4vLyBUaGUgbGlzdCBvZiBmaWxlIHJlcGxhY2VtZW50cyBjYW4gYmUgZm91bmQgaW4gYGFuZ3VsYXIuanNvbmAuXG5cbmltcG9ydCB7RW52aXJvbm1lbnR9IGZyb20gJy4vZW52aXJvbm1lbnQuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50ID0gT2JqZWN0LmZyZWV6ZSh7XG4gIG5hbWU6ICdAc3VtYXJpcy1uZXQvbmd4LWNvbXBvbmVudHMnLCAvLyBvdmVycmlkZGVuIGJ5IEVOVklST05NRU5UIHRva2VuXG4gIHZlcnNpb246IHVuZGVmaW5lZCwgLy8gb3ZlcnJpZGRlbiBieSBFTlZJUk9OTUVOVCB0b2tlblxuICBwcm9kdWN0aW9uOiB0cnVlLCAvLyBsZXQgdG8gdHJ1ZSAhIGJlY2F1c2UgdXNlZCBieSBwYWNrYWdlclxuICBiYXNlVXJsOiAnLycsXG4gIGRlZmF1bHRMb2NhbGU6ICdmcicsXG4gIGRlZmF1bHRMYXRMb25nRm9ybWF0OiAnRERNTScsXG4gIGFwb2xsb0ZldGNoUG9saWN5OiAnY2FjaGUtZmlyc3QnLFxuXG4gIC8vIEZJWE1FOiBlbmFibGUgY2FjaGVcbiAgcGVyc2lzdENhY2hlOiBmYWxzZSxcblxuICAvLyBUT0RPOiBtYWtlIHRoaXMgd29ya3NcbiAgLy9vZmZsaW5lOiB0cnVlLFxuXG4gIHBlZXJNaW5WZXJzaW9uOiAnMS44LjAnLFxuXG4gIGRlZmF1bHRQZWVyczogW1xuICAgIHtcbiAgICAgIGhvc3Q6ICdsb2NhbGhvc3QnLFxuICAgICAgcG9ydDogODA4MFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICBwb3J0OiA4MDgxXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnMTkyLjE2OC4wLjQ1JyxcbiAgICAgIHBvcnQ6IDgwODBcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICcxOTIuMTY4LjAuMjQnLFxuICAgICAgcG9ydDogODA4MFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC4yOScsXG4gICAgICBwb3J0OiA4MDgwXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnc2loLnNmYS5zYycsXG4gICAgICBwb3J0OiA4MFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ3Rlc3Quc3VtYXJpcy5uZXQnLFxuICAgICAgcG9ydDogNDQzXG4gICAgfVxuICBdLFxuICBkZWZhdWx0QXBwTmFtZTogJ1NVTUFSaVMnLFxuICBkZWZhdWx0QW5kcm9pZEluc3RhbGxVcmw6ICdodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9bmV0LnN1bWFyaXMuYXBwJyxcblxuICAvLyBTdG9yYWdlXG4gIHN0b3JhZ2U6IHtcbiAgICBkcml2ZXJPcmRlcjogWydzcWxpdGUnLCAnaW5kZXhlZGRiJywgJ3dlYnNxbCcsICdsb2NhbHN0b3JhZ2UnXVxuICB9LFxuXG4gIC8vIEFib3V0XG4gIHNvdXJjZVVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMnLFxuICByZXBvcnRJc3N1ZVVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL25neC1zdW1hcmlzLWNvbXBvbmVudHMvLS9pc3N1ZXMnLFxuICBmb3J1bVVybDogJ2h0dHBzOi8vZm9ydW0uc3VtYXJpcy5uZXQnLFxuICBoZWxwVXJsOiAnaHR0cHM6Ly9naXRsYWIuaWZyZW1lci5mci9zaWgtcHVibGljL3N1bWFyaXMvc3VtYXJpcy1kb2MvLS9ibG9iL21hc3Rlci91c2VyLW1hbnVhbC9pbmRleF9mci5tZCcsXG5cbiAgLy8gRGV2ZWxvcG1lbnRcbiAgZGVmYXVsdEF1dGhWYWx1ZXM6IHtcblxuICAgIC8vIEJhc2ljIGF1dGggKHVzaW5nIFBlcnNvbi51c2VybmFtZSlcbiAgICAvLyB1c2VybmFtZTogJ2FkbXEyJywgcGFzc3dvcmQ6ICdxMjIwMDYnXG5cbiAgICAvLyBUb2tlbiBhdXRoICh1c2luZyBQZXJzb24ucHVia2V5KVxuICAgIHVzZXJuYW1lOiAnYWRtaW5Ac3VtYXJpcy5uZXQnLCBwYXNzd29yZDogJ2FkbWluJyxcbiAgfSxcblxuICBhY2NvdW50OiB7XG4gICAgZW5hYmxlTGlzdGVuQ2hhbmdlczogdHJ1ZSxcbiAgICBsaXN0ZW5JbnRlcnZhbEluU2Vjb25kczogNjBcbiAgfSxcblxuICBlbnRpdHlFZGl0b3I6IHtcbiAgICBlbmFibGVMaXN0ZW5DaGFuZ2VzOiB0cnVlLFxuICAgIGxpc3RlbkludGVydmFsSW5TZWNvbmRzOiA2MFxuICB9XG59KTtcblxuLypcbiAqIEluIGRldmVsb3BtZW50IG1vZGUsIHRvIGlnbm9yZSB6b25lIHJlbGF0ZWQgZXJyb3Igc3RhY2sgZnJhbWVzIHN1Y2ggYXNcbiAqIGB6b25lLnJ1bmAsIGB6b25lRGVsZWdhdGUuaW52b2tlVGFza2AgZm9yIGVhc2llciBkZWJ1Z2dpbmcsIHlvdSBjYW5cbiAqIGltcG9ydCB0aGUgZm9sbG93aW5nIGZpbGUsIGJ1dCBwbGVhc2UgY29tbWVudCBpdCBvdXQgaW4gcHJvZHVjdGlvbiBtb2RlXG4gKiBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBwZXJmb3JtYW5jZSBpbXBhY3Qgd2hlbiB0aHJvdyBlcnJvclxuICovXG5pbXBvcnQgJ3pvbmUuanMvZGlzdC96b25lLWVycm9yJztcbiJdfQ==
@@ -9498,11 +9498,11 @@ const environment = Object.freeze({
9498
9498
  },
9499
9499
  account: {
9500
9500
  enableListenChanges: true,
9501
- listenIntervalInSeconds: 30
9501
+ listenIntervalInSeconds: 60
9502
9502
  },
9503
9503
  entityEditor: {
9504
9504
  enableListenChanges: true,
9505
- listenIntervalInSeconds: 30
9505
+ listenIntervalInSeconds: 60
9506
9506
  }
9507
9507
  });
9508
9508
 
@@ -13612,7 +13612,8 @@ class AccountService extends BaseGraphqlService {
13612
13612
  };
13613
13613
  this._$additionalFields = new BehaviorSubject([]);
13614
13614
  this._tokenType$ = new BehaviorSubject(undefined);
13615
- this._enableListenChanges = (!environment.account || environment.account.enableListenChanges !== false);
13615
+ this._enableListenChanges = (!environment.account || environment.account.enableListenChanges !== false); // True by default
13616
+ this._listenIntervalInSeconds = toNumber(environment.account && environment.account.listenIntervalInSeconds, 0); // no timer by default
13616
13617
  this._debug = !environment.production;
13617
13618
  if (this._debug)
13618
13619
  console.debug('[account-service] Creating service');
@@ -13802,7 +13803,7 @@ class AccountService extends BaseGraphqlService {
13802
13803
  this.onChange.next(this._data);
13803
13804
  // Listen remote changes
13804
13805
  if (this._enableListenChanges)
13805
- this.startListenChanges();
13806
+ this.startListenRemoteChanges();
13806
13807
  return this._data;
13807
13808
  }
13808
13809
  catch (error) {
@@ -13927,7 +13928,7 @@ class AccountService extends BaseGraphqlService {
13927
13928
  this.onLogin.next(this._data);
13928
13929
  this.onChange.next(this._data);
13929
13930
  if (this._enableListenChanges)
13930
- this.startListenChanges();
13931
+ this.startListenRemoteChanges();
13931
13932
  return this._data;
13932
13933
  });
13933
13934
  }
@@ -14027,7 +14028,6 @@ class AccountService extends BaseGraphqlService {
14027
14028
  if (hadAuthBasic)
14028
14029
  this.onAuthBasicChange.next(undefined);
14029
14030
  this.onChange.next(undefined);
14030
- this.stopListenChanges();
14031
14031
  });
14032
14032
  }
14033
14033
  /**
@@ -14147,7 +14147,7 @@ class AccountService extends BaseGraphqlService {
14147
14147
  listenChanges(opts) {
14148
14148
  if (this._enableListenChanges)
14149
14149
  return new Subscription(); // Already started: skip
14150
- return this.startListenChanges(opts);
14150
+ return this.startListenRemoteChanges(opts);
14151
14151
  }
14152
14152
  get additionalFields() {
14153
14153
  return this._$additionalFields.getValue();
@@ -14169,7 +14169,7 @@ class AccountService extends BaseGraphqlService {
14169
14169
  }
14170
14170
  /* -- protected method -- */
14171
14171
  resetData() {
14172
- this.stopListenChanges();
14172
+ this.stopListenRemoteChanges();
14173
14173
  this._cache.loaded = false;
14174
14174
  this._cache.keypair = null;
14175
14175
  this._cache.authToken = null;
@@ -14298,7 +14298,7 @@ class AccountService extends BaseGraphqlService {
14298
14298
  this.onLogin.next(this._data);
14299
14299
  this.onChange.next(this._data);
14300
14300
  if (this._enableListenChanges)
14301
- this.startListenChanges();
14301
+ this.startListenRemoteChanges();
14302
14302
  if (this._debug)
14303
14303
  console.debug(`[account] Account restoration [OK] {pubkey: ${pubkey.substr(0, 8)}}, {profile: ${this._cache.mainProfile}}`);
14304
14304
  return account;
@@ -14498,12 +14498,12 @@ class AccountService extends BaseGraphqlService {
14498
14498
  return yield this.authenticateAndGetToken(newToken, (counter || 1) + 1 /* increment */);
14499
14499
  });
14500
14500
  }
14501
- startListenChanges(opts) {
14501
+ startListenRemoteChanges(opts) {
14502
14502
  if (this._listenChangesSubscription)
14503
- this.stopListenChanges(); // Stop previous subscription
14503
+ this.stopListenRemoteChanges(); // Stop previous subscription
14504
14504
  if (this.network.offline)
14505
14505
  return new Subscription(); // Offline: skip
14506
- const subscription = this.watchChanges(opts)
14506
+ this._listenChangesSubscription = this.watchChanges(opts)
14507
14507
  .subscribe({
14508
14508
  next: (data) => {
14509
14509
  console.debug(`[account] Remote update detected at ${data.updateDate}`);
@@ -14523,20 +14523,17 @@ class AccountService extends BaseGraphqlService {
14523
14523
  }
14524
14524
  }
14525
14525
  });
14526
- // Add close log
14527
- subscription.add(() => console.debug(`[account] Stop watching remote changes`));
14528
- this._listenChangesSubscription = subscription;
14529
- // Make sure to use the stop function, when unsubscribe
14530
- return new Subscription(() => this.stopListenChanges());
14531
- }
14532
- stopListenChanges() {
14533
- if (this._listenChangesSubscription) {
14534
- this._listenChangesSubscription.unsubscribe();
14526
+ this._listenChangesSubscription.add(() => {
14527
+ console.debug(`[account] Stop watching remote changes`);
14535
14528
  this._listenChangesSubscription = null;
14536
- }
14529
+ });
14530
+ return this._listenChangesSubscription;
14537
14531
  }
14538
- watchChanges(opts) {
14532
+ stopListenRemoteChanges() {
14539
14533
  var _a;
14534
+ (_a = this._listenChangesSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
14535
+ }
14536
+ watchChanges(opts) {
14540
14537
  if (!this.started) {
14541
14538
  // Wait service ready, then loop
14542
14539
  return from(this.ready())
@@ -14547,7 +14544,7 @@ class AccountService extends BaseGraphqlService {
14547
14544
  if (this.network.offline)
14548
14545
  throw new Error('Cannot watch account changes: network is offline.');
14549
14546
  const variables = {
14550
- interval: Math.max(0, (opts === null || opts === void 0 ? void 0 : opts.intervalInSeconds) || ((_a = this.environment.account) === null || _a === void 0 ? void 0 : _a.listenIntervalInSeconds) || 0)
14547
+ interval: toNumber(opts && opts.intervalInSeconds, this._listenIntervalInSeconds)
14551
14548
  };
14552
14549
  console.debug(`[account] Watching remote changes, every ${variables.interval}s`);
14553
14550
  return this.graphql.subscribe({
@@ -20504,11 +20501,14 @@ AppIconComponent.propDecorators = {
20504
20501
  };
20505
20502
 
20506
20503
  class CoreModule {
20507
- static forRoot() {
20504
+ static forRoot(environment) {
20508
20505
  console.info('[core] Creating module (root)');
20509
20506
  return {
20510
20507
  ngModule: CoreModule,
20511
- providers: [PlatformService]
20508
+ providers: [
20509
+ PlatformService,
20510
+ { provide: ENVIRONMENT, useValue: environment }
20511
+ ]
20512
20512
  };
20513
20513
  }
20514
20514
  }
@@ -21007,7 +21007,7 @@ class BaseEntityService extends BaseGraphqlService {
21007
21007
  throw Error('Not implemented!');
21008
21008
  const variables = opts && opts.variables || {
21009
21009
  id,
21010
- interval: opts && opts.interval || 10 // seconds
21010
+ interval: toNumber(opts && opts.interval, 0) // no timer by default
21011
21011
  };
21012
21012
  if (this._debug)
21013
21013
  console.debug(this._logPrefix + `[WS] Listening for changes on ${this._logTypeName} {${id}}...`);
@@ -22208,6 +22208,7 @@ class AppTable {
22208
22208
  const canDelete = yield this.canDeleteRows(rows, opts);
22209
22209
  if (!canDelete)
22210
22210
  return 0; // Cannot delete
22211
+ // If data need to be saved first
22211
22212
  if (this.saveBeforeDelete) {
22212
22213
  // Cancel invalid rows (because of save() will fail, if invalid rows exists)
22213
22214
  rows = rows.reduce((res, row) => {
@@ -22218,30 +22219,40 @@ class AppTable {
22218
22219
  if (deleted) {
22219
22220
  this.visibleRowCount--;
22220
22221
  this.totalRowCount--;
22222
+ // Forget is was the edited row
22223
+ if (row === this.editedRow) {
22224
+ this.editedRow = undefined;
22225
+ }
22221
22226
  return res;
22222
22227
  }
22223
22228
  }
22224
22229
  return res.concat(row);
22225
22230
  }, []);
22226
- if (isEmptyArray(rows))
22227
- return 0;
22228
- // If data need to be saved first: do it
22229
- const saved = yield this.saveBeforeAction('delete');
22230
- if (!saved) {
22231
- // Stop if save cancelled or save failed
22232
- return;
22231
+ // Apply save, only if there is still some rows to delete
22232
+ // WARN: If no more rows (e.g. because all has been cancelled) then continue anyway to clear editedRow and selection (issue IMAGINE-669)
22233
+ if (isNotEmptyArray(rows)) {
22234
+ // Save data (e.g. when using memory service)
22235
+ const saved = yield this.saveBeforeAction('delete');
22236
+ if (!saved) {
22237
+ // Stop if save cancelled or save failed
22238
+ return;
22239
+ }
22233
22240
  }
22234
22241
  }
22235
- if (this.debug)
22236
- console.debug('[table] Delete selection...');
22237
- const rowsToDelete = rows.slice()
22238
- // Reverse row order
22239
- // This is a workaround, need because row.delete() has async execution
22240
- // and index cache is updated with a delay)
22241
- .sort((a, b) => a.id > b.id ? -1 : 1);
22242
22242
  try {
22243
- const deleteCount = rowsToDelete.length;
22244
- yield this._dataSource.deleteAll(rowsToDelete);
22243
+ const deleteCount = rows.length;
22244
+ // Apply deletion on datasource
22245
+ // If no more rows to delete, continue anyway to clear editedRow and selection (issue IMAGINE-669)
22246
+ if (deleteCount) {
22247
+ if (this.debug)
22248
+ console.debug('[table] Delete selected rows...');
22249
+ // Reverse row order (on a copy)
22250
+ // This is a workaround, need because row.delete() has async execution
22251
+ // and index cache is updated with a delay
22252
+ rows = rows.slice()
22253
+ .sort((a, b) => a.id > b.id ? -1 : 1);
22254
+ yield this._dataSource.deleteAll(rows);
22255
+ }
22245
22256
  // DO not update manually, because watchALl().subscribe() will update this count
22246
22257
  //this.totalRowCount -= deleteCount;
22247
22258
  //this.visibleRowCount -= deleteCount;
@@ -22249,7 +22260,8 @@ class AppTable {
22249
22260
  this.editedRow = undefined;
22250
22261
  this.markAsDirty({ emitEvent: false /*markForCheck() is called just after*/ });
22251
22262
  this.markForCheck();
22252
- this.onAfterDeletedRows.next(rowsToDelete);
22263
+ if (deleteCount)
22264
+ this.onAfterDeletedRows.next(rows);
22253
22265
  return deleteCount;
22254
22266
  }
22255
22267
  catch (err) {
@@ -23569,22 +23581,23 @@ class AppEditorOptions extends AppTabEditorOptions {
23569
23581
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
23570
23582
  class AppEntityEditor extends AppTabEditor {
23571
23583
  constructor(injector, dataType, dataService, options) {
23572
- var _a;
23573
23584
  super(injector.get(ActivatedRoute), injector.get(Router), injector.get(AlertController), injector.get(TranslateService), options);
23574
23585
  this.dataType = dataType;
23575
23586
  this.dataService = dataService;
23576
23587
  this.saving = false;
23577
23588
  this.$title = new Subject();
23578
23589
  this.onUpdateView = new EventEmitter();
23590
+ this.environement = injector.get(ENVIRONMENT);
23579
23591
  options = Object.assign({
23580
23592
  // Default options
23581
- enableListenChanges: (((_a = injector.get(ENVIRONMENT).entityEditor) === null || _a === void 0 ? void 0 : _a.enableListenChanges) === true), pathIdAttribute: 'id', autoLoad: true, autoUpdateRoute: true, i18nPrefix: '' }, options);
23593
+ enableListenChanges: !this.environement.entityEditor || this.environement.entityEditor.enableListenChanges !== false, listenIntervalInSeconds: toNumber(this.environement.entityEditor && this.environement.entityEditor.listenIntervalInSeconds, 0), pathIdAttribute: 'id', autoLoad: true, autoUpdateRoute: true, i18nPrefix: '' }, options);
23582
23594
  this.settings = injector.get(LocalSettingsService);
23583
23595
  this.errorTranslator = injector.get(FormErrorTranslator);
23584
23596
  this.cd = injector.get(ChangeDetectorRef);
23585
23597
  this.dateFormat = injector.get(DateFormatPipe);
23586
23598
  this.toastController = injector.get(ToastController);
23587
23599
  this._enableListenChanges = options.enableListenChanges;
23600
+ this._listenIntervalInSeconds = options.listenIntervalInSeconds;
23588
23601
  this._pathIdAttribute = options.pathIdAttribute;
23589
23602
  this._autoLoad = options.autoLoad;
23590
23603
  this._autoLoadDelay = options.autoLoadDelay;
@@ -23652,7 +23665,7 @@ class AppEntityEditor extends AppTabEditor {
23652
23665
  }
23653
23666
  ngOnDestroy() {
23654
23667
  super.ngOnDestroy();
23655
- this.listenRemoteSubscription = null; // already unsubscribe in the super function
23668
+ this._listenChangesSubscription = null; // already unsubscribe in the super function
23656
23669
  this.$title.complete();
23657
23670
  this.$title.unsubscribe();
23658
23671
  this.onUpdateView.complete();
@@ -23731,32 +23744,33 @@ class AppEntityEditor extends AppTabEditor {
23731
23744
  }
23732
23745
  startListenRemoteChanges() {
23733
23746
  // Skip if disable, or already listening
23734
- if (this.listenRemoteSubscription || !this._enableListenChanges || this.isNewData)
23747
+ if (this._listenChangesSubscription || !this._enableListenChanges || this.isNewData)
23735
23748
  return;
23736
23749
  // Listen for changes on server
23737
- this.listenRemoteSubscription = this.dataService.listenChanges(this.data.id)
23750
+ this._listenChangesSubscription = this.dataService.listenChanges(this.data.id, { interval: this._listenIntervalInSeconds })
23738
23751
  .pipe(filter(isNotNil))
23739
23752
  .subscribe((data) => {
23740
23753
  if (data.updateDate && data.updateDate.isAfter(this.data.updateDate)) {
23741
23754
  if (!this.dirty) {
23742
23755
  if (this.debug)
23743
- console.debug(`[data-editor] Changes detected on server, at {${data.updateDate}} : reloading page...`);
23756
+ console.debug(`[data-editor] Changes detected on server, at {${data.updateDate}}: reloading page...`);
23744
23757
  this.updateView(data);
23745
23758
  }
23746
23759
  else {
23747
23760
  if (this.debug)
23748
23761
  console.debug(`[data-editor] Changes detected on server, at {${data.updateDate}}, but page is dirty: skip reloading.`);
23762
+ // TODO: alter user (with a toast ?)
23749
23763
  }
23750
23764
  }
23751
23765
  });
23752
- this.listenRemoteSubscription.add(() => this.listenRemoteSubscription = null);
23753
- this.registerSubscription(this.listenRemoteSubscription);
23766
+ this._listenChangesSubscription.add(() => this._listenChangesSubscription = null);
23767
+ this.registerSubscription(this._listenChangesSubscription);
23754
23768
  }
23755
23769
  stopListenRemoteChanges() {
23756
- if (this.listenRemoteSubscription) {
23757
- this.unregisterSubscription(this.listenRemoteSubscription);
23758
- this.listenRemoteSubscription.unsubscribe();
23759
- this.listenRemoteSubscription = null;
23770
+ if (this._listenChangesSubscription) {
23771
+ this.unregisterSubscription(this._listenChangesSubscription);
23772
+ this._listenChangesSubscription.unsubscribe();
23773
+ this._listenChangesSubscription = null;
23760
23774
  }
23761
23775
  }
23762
23776
  updateView(data, opts) {
@@ -23901,7 +23915,7 @@ class AppEntityEditor extends AppTabEditor {
23901
23915
  // Update the view (e.g metadata)
23902
23916
  yield this.updateView(updatedData, opts);
23903
23917
  // Subscribe to remote changes
23904
- if (!this.listenRemoteSubscription)
23918
+ if (!this._listenChangesSubscription)
23905
23919
  this.startListenRemoteChanges();
23906
23920
  this.submitted = false;
23907
23921
  return true;