@sumaris-net/ngx-components 1.14.0 → 1.14.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.
- package/bundles/sumaris-net.ngx-components.umd.js +55 -36
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +2 -0
- package/esm2015/src/app/core/services/platform.service.js +26 -27
- package/esm2015/src/app/shared/dates.js +22 -1
- package/fesm2015/sumaris-net.ngx-components.js +45 -25
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +2 -1
- package/src/app/shared/dates.d.ts +7 -0
- package/src/assets/i18n/fr.json +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/cdk/table'), require('@angular/cdk/a11y'), require('@angular/cdk/overlay'), require('@angular/cdk/scrolling'), require('@angular/material/core'), require('@angular/material/table'), require('@angular/material/sort'), require('@angular/material/paginator'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/checkbox'), require('@angular/material/expansion'), require('@angular/material/toolbar'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/menu'), require('@angular/material/select'), require('@angular/material/card'), require('@angular/material/tabs'), require('@angular/material/stepper'), require('@angular/material/list'), require('@angular/material/button-toggle'), require('@angular/material/progress-spinner'), require('@angular/material/progress-bar'), require('@angular/material/radio'), require('@angular/material/badge'), require('@angular/material/slide-toggle'), require('@angular/material/dialog'), require('@angular/material/autocomplete'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core'), require('@ionic/angular'), require('moment'), require('@angular/material-moment-adapter'), require('@ionic-native/keyboard/ngx'), require('angular2-text-mask'), require('ngx-material-timepicker'), require('@angular/material/datepicker'), require('@angular/animations'), require('@angular/material/divider'), require('@angular/material/tooltip'), require('@angular/material/chips'), require('@angular/router'), require('@angular/platform-browser'), require('@angular/common/http'), require('ngx-color-picker'), require('@ionic-native/native-audio/ngx'), require('@ionic-native/vibration/ngx'), require('@ionic-native/audio-management/ngx'), require('@ionic-native/native-audio/ngx/index'), require('@ionic-native/vibration/ngx/index'), require('@ionic-native/audio-management/ngx/index'), require('uuid/v4'), require('@angular/cdk/drag-drop'), require('ngx-markdown'), require('tweetnacl'), require('@ionic/storage'), require('zone.js/dist/zone-error'), require('@ionic-native/splash-screen/ngx'), require('@ionic-native/network/ngx'), require('ionic-cache'), require('ionic-cache/dist/cache.service'), require('@ionic-native/network/ngx/index'), require('@ionic-native/splash-screen/ngx/index'), require('@ionic-native/status-bar/ngx'), require('@angular/cdk/platform'), require('@ionic-native/in-app-browser/ngx'), require('@apollo/client/core'), require('apollo-angular'), require('@apollo/client/link/ws'), require('@apollo/client/utilities'), require('@apollo/client/link/retry'), require('apollo-link-queue'), require('apollo-link-serialize'), require('apollo-link-logger'), require('apollo-angular/http'), require('apollo3-cache-persist'), require('@ionic-native/downloader/ngx'), require('@ionic-native/status-bar/ngx/index'), require('@ionic-native/keyboard/ngx/index'), require('@ionic-native/in-app-browser/ngx/index'), require('@ionic-native/downloader/ngx/index'), require('@angular/cdk/text-field'), require('@e-is/ngx-material-table'), require('@angular/cdk/collections'), require('ngx-jdenticon'), require('tweetnacl-util'), require('scrypt-async'), require('hammerjs')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@sumaris-net/ngx-components', ['exports', '@angular/core', '@angular/common', '@angular/cdk/table', '@angular/cdk/a11y', '@angular/cdk/overlay', '@angular/cdk/scrolling', '@angular/material/core', '@angular/material/table', '@angular/material/sort', '@angular/material/paginator', '@angular/material/form-field', '@angular/material/input', '@angular/material/checkbox', '@angular/material/expansion', '@angular/material/toolbar', '@angular/material/icon', '@angular/material/button', '@angular/material/menu', '@angular/material/select', '@angular/material/card', '@angular/material/tabs', '@angular/material/stepper', '@angular/material/list', '@angular/material/button-toggle', '@angular/material/progress-spinner', '@angular/material/progress-bar', '@angular/material/radio', '@angular/material/badge', '@angular/material/slide-toggle', '@angular/material/dialog', '@angular/material/autocomplete', '@angular/forms', 'rxjs', 'rxjs/operators', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', '@ionic-native/keyboard/ngx', 'angular2-text-mask', 'ngx-material-timepicker', '@angular/material/datepicker', '@angular/animations', '@angular/material/divider', '@angular/material/tooltip', '@angular/material/chips', '@angular/router', '@angular/platform-browser', '@angular/common/http', 'ngx-color-picker', '@ionic-native/native-audio/ngx', '@ionic-native/vibration/ngx', '@ionic-native/audio-management/ngx', '@ionic-native/native-audio/ngx/index', '@ionic-native/vibration/ngx/index', '@ionic-native/audio-management/ngx/index', 'uuid/v4', '@angular/cdk/drag-drop', 'ngx-markdown', 'tweetnacl', '@ionic/storage', 'zone.js/dist/zone-error', '@ionic-native/splash-screen/ngx', '@ionic-native/network/ngx', 'ionic-cache', 'ionic-cache/dist/cache.service', '@ionic-native/network/ngx/index', '@ionic-native/splash-screen/ngx/index', '@ionic-native/status-bar/ngx', '@angular/cdk/platform', '@ionic-native/in-app-browser/ngx', '@apollo/client/core', 'apollo-angular', '@apollo/client/link/ws', '@apollo/client/utilities', '@apollo/client/link/retry', 'apollo-link-queue', 'apollo-link-serialize', 'apollo-link-logger', 'apollo-angular/http', 'apollo3-cache-persist', '@ionic-native/downloader/ngx', '@ionic-native/status-bar/ngx/index', '@ionic-native/keyboard/ngx/index', '@ionic-native/in-app-browser/ngx/index', '@ionic-native/downloader/ngx/index', '@angular/cdk/text-field', '@e-is/ngx-material-table', '@angular/cdk/collections', 'ngx-jdenticon', 'tweetnacl-util', 'scrypt-async', 'hammerjs'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["sumaris-net"] = global["sumaris-net"] || {}, global["sumaris-net"]["ngx-components"] = {}), global.ng.core, global.ng.common, global.ng.cdk.table, global.ng.cdk.a11y, global.ng.cdk.overlay, global.ng.cdk.scrolling, global.ng.material.core, global.ng.material.table, global.ng.material.sort, global.ng.material.paginator, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.expansion, global.ng.material.toolbar, global.ng.material.icon, global.ng.material.button, global.ng.material.menu, global.ng.material.select, global.ng.material.card, global.ng.material.tabs, global.ng.material.stepper, global.ng.material.list, global.ng.material.buttonToggle, global.ng.material.progressSpinner, global.ng.material.progressBar, global.ng.material.radio, global.ng.material.badge, global.ng.material.slideToggle, global.ng.material.dialog, global.ng.material.autocomplete, global.ng.forms, global.rxjs, global.rxjs.operators, global["ngx-translate"].core, global.ionic.angular, global.moment, global.ng.materialMomentAdapter, global["ionic-native"].keyboard.ngx, global["angular2-text-mask"], global["ngx-material-timepicker"], global.ng.material.datepicker, global.ng.animations, global.ng.material.divider, global.ng.material.tooltip, global.ng.material.chips, global.ng.router, global.ng.platformBrowser, global.ng.common.http, global["ngx-color-picker"], global["ionic-native"]["native-audio"].ngx, global["ionic-native"].vibration.ngx, global["ionic-native"]["audio-management"].ngx, global["ionic-native"]["native-audio"].ngx.index, global["ionic-native"].vibration.ngx.index, global["ionic-native"]["audio-management"].ngx.index, global.uuid.v4, global.ng.cdk.dragDrop, global["ngx-markdown"], global.tweetnacl, global.ionic.storage, null, global["ionic-native"]["splash-screen"].ngx, global["ionic-native"].network.ngx, global["ionic-cache"], global["ionic-cache/dist/cache"].service, global["ionic-native"].network.ngx.index, global["ionic-native"]["splash-screen"].ngx.index, global["ionic-native"]["status-bar"].ngx, global.ng.cdk.platform, global["ionic-native"]["in-app-browser"].ngx, global.apollo.client.core, global["apollo-angular"], global.apollo.client.link.ws, global.apollo.client.utilities, global.apollo.client.link.retry, global["apollo-link-queue"], global["apollo-link-serialize"], global["apollo-link-logger"], global["apollo-angular"].http, global["apollo3-cache-persist"], global["ionic-native"].downloader.ngx, global["ionic-native"]["status-bar"].ngx.index, global["ionic-native"].keyboard.ngx.index, global["ionic-native"]["in-app-browser"].ngx.index, global["ionic-native"].downloader.ngx.index, global.ng.cdk.textField, global["e-is"]["ngx-material-table"], global.ng.cdk.collections, global["ngx-jdenticon"]));
|
|
5
|
-
})(this, (function (exports, i0, i1$4, table$1, a11y, overlay, scrolling, i1$3, table, sort$1, paginator, formField, input, checkbox, expansion, toolbar, icon, button, menu, select, card, tabs, stepper, list, buttonToggle, progressSpinner, progressBar, radio, badge, slideToggle, i2, autocomplete, i1, rxjs, operators, i1$2, i1$5, momentImported, i1$1, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, animations, divider, tooltip, chips, i3, i1$6, i2$1, ngxColorPicker, ngx$2, ngx$3, ngx$1, i2$2, i3$1, i4, uuidv4Imported, dragDrop, ngxMarkdown, tweetnacl, i3$2, zoneError, ngx$5, ngx$4, ionicCache, i6, i9, i10, ngx$7, i2$4, ngx$8, core, i2$3, ws, utilities, retry, QueueLink, SerializingLink, loggerLink, i3$3, apollo3CachePersist, ngx$6, i14, i15, i17, i18, textField, ngxMaterialTable, collections, ngxJdenticon) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/cdk/table'), require('@angular/cdk/a11y'), require('@angular/cdk/overlay'), require('@angular/cdk/scrolling'), require('@angular/material/core'), require('@angular/material/table'), require('@angular/material/sort'), require('@angular/material/paginator'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/checkbox'), require('@angular/material/expansion'), require('@angular/material/toolbar'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/menu'), require('@angular/material/select'), require('@angular/material/card'), require('@angular/material/tabs'), require('@angular/material/stepper'), require('@angular/material/list'), require('@angular/material/button-toggle'), require('@angular/material/progress-spinner'), require('@angular/material/progress-bar'), require('@angular/material/radio'), require('@angular/material/badge'), require('@angular/material/slide-toggle'), require('@angular/material/dialog'), require('@angular/material/autocomplete'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core'), require('@ionic/angular'), require('moment'), require('@angular/material-moment-adapter'), require('moment-timezone'), require('@ionic-native/keyboard/ngx'), require('angular2-text-mask'), require('ngx-material-timepicker'), require('@angular/material/datepicker'), require('@angular/animations'), require('@angular/material/divider'), require('@angular/material/tooltip'), require('@angular/material/chips'), require('@angular/router'), require('@angular/platform-browser'), require('@angular/common/http'), require('ngx-color-picker'), require('@ionic-native/native-audio/ngx'), require('@ionic-native/vibration/ngx'), require('@ionic-native/audio-management/ngx'), require('@ionic-native/native-audio/ngx/index'), require('@ionic-native/vibration/ngx/index'), require('@ionic-native/audio-management/ngx/index'), require('uuid/v4'), require('@angular/cdk/drag-drop'), require('ngx-markdown'), require('tweetnacl'), require('@ionic/storage'), require('zone.js/dist/zone-error'), require('@ionic-native/splash-screen/ngx'), require('@ionic-native/network/ngx'), require('ionic-cache'), require('ionic-cache/dist/cache.service'), require('@ionic-native/network/ngx/index'), require('@ionic-native/splash-screen/ngx/index'), require('@ionic-native/status-bar/ngx'), require('@angular/cdk/platform'), require('@ionic-native/in-app-browser/ngx'), require('@apollo/client/core'), require('apollo-angular'), require('@apollo/client/link/ws'), require('@apollo/client/utilities'), require('@apollo/client/link/retry'), require('apollo-link-queue'), require('apollo-link-serialize'), require('apollo-link-logger'), require('apollo-angular/http'), require('apollo3-cache-persist'), require('@ionic-native/downloader/ngx'), require('@ionic-native/status-bar/ngx/index'), require('@ionic-native/keyboard/ngx/index'), require('@ionic-native/in-app-browser/ngx/index'), require('@ionic-native/downloader/ngx/index'), require('@angular/cdk/text-field'), require('@e-is/ngx-material-table'), require('@angular/cdk/collections'), require('ngx-jdenticon'), require('tweetnacl-util'), require('scrypt-async'), require('hammerjs')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@sumaris-net/ngx-components', ['exports', '@angular/core', '@angular/common', '@angular/cdk/table', '@angular/cdk/a11y', '@angular/cdk/overlay', '@angular/cdk/scrolling', '@angular/material/core', '@angular/material/table', '@angular/material/sort', '@angular/material/paginator', '@angular/material/form-field', '@angular/material/input', '@angular/material/checkbox', '@angular/material/expansion', '@angular/material/toolbar', '@angular/material/icon', '@angular/material/button', '@angular/material/menu', '@angular/material/select', '@angular/material/card', '@angular/material/tabs', '@angular/material/stepper', '@angular/material/list', '@angular/material/button-toggle', '@angular/material/progress-spinner', '@angular/material/progress-bar', '@angular/material/radio', '@angular/material/badge', '@angular/material/slide-toggle', '@angular/material/dialog', '@angular/material/autocomplete', '@angular/forms', 'rxjs', 'rxjs/operators', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', 'moment-timezone', '@ionic-native/keyboard/ngx', 'angular2-text-mask', 'ngx-material-timepicker', '@angular/material/datepicker', '@angular/animations', '@angular/material/divider', '@angular/material/tooltip', '@angular/material/chips', '@angular/router', '@angular/platform-browser', '@angular/common/http', 'ngx-color-picker', '@ionic-native/native-audio/ngx', '@ionic-native/vibration/ngx', '@ionic-native/audio-management/ngx', '@ionic-native/native-audio/ngx/index', '@ionic-native/vibration/ngx/index', '@ionic-native/audio-management/ngx/index', 'uuid/v4', '@angular/cdk/drag-drop', 'ngx-markdown', 'tweetnacl', '@ionic/storage', 'zone.js/dist/zone-error', '@ionic-native/splash-screen/ngx', '@ionic-native/network/ngx', 'ionic-cache', 'ionic-cache/dist/cache.service', '@ionic-native/network/ngx/index', '@ionic-native/splash-screen/ngx/index', '@ionic-native/status-bar/ngx', '@angular/cdk/platform', '@ionic-native/in-app-browser/ngx', '@apollo/client/core', 'apollo-angular', '@apollo/client/link/ws', '@apollo/client/utilities', '@apollo/client/link/retry', 'apollo-link-queue', 'apollo-link-serialize', 'apollo-link-logger', 'apollo-angular/http', 'apollo3-cache-persist', '@ionic-native/downloader/ngx', '@ionic-native/status-bar/ngx/index', '@ionic-native/keyboard/ngx/index', '@ionic-native/in-app-browser/ngx/index', '@ionic-native/downloader/ngx/index', '@angular/cdk/text-field', '@e-is/ngx-material-table', '@angular/cdk/collections', 'ngx-jdenticon', 'tweetnacl-util', 'scrypt-async', 'hammerjs'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["sumaris-net"] = global["sumaris-net"] || {}, global["sumaris-net"]["ngx-components"] = {}), global.ng.core, global.ng.common, global.ng.cdk.table, global.ng.cdk.a11y, global.ng.cdk.overlay, global.ng.cdk.scrolling, global.ng.material.core, global.ng.material.table, global.ng.material.sort, global.ng.material.paginator, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.expansion, global.ng.material.toolbar, global.ng.material.icon, global.ng.material.button, global.ng.material.menu, global.ng.material.select, global.ng.material.card, global.ng.material.tabs, global.ng.material.stepper, global.ng.material.list, global.ng.material.buttonToggle, global.ng.material.progressSpinner, global.ng.material.progressBar, global.ng.material.radio, global.ng.material.badge, global.ng.material.slideToggle, global.ng.material.dialog, global.ng.material.autocomplete, global.ng.forms, global.rxjs, global.rxjs.operators, global["ngx-translate"].core, global.ionic.angular, global.moment, global.ng.materialMomentAdapter, global.momentTZImported, global["ionic-native"].keyboard.ngx, global["angular2-text-mask"], global["ngx-material-timepicker"], global.ng.material.datepicker, global.ng.animations, global.ng.material.divider, global.ng.material.tooltip, global.ng.material.chips, global.ng.router, global.ng.platformBrowser, global.ng.common.http, global["ngx-color-picker"], global["ionic-native"]["native-audio"].ngx, global["ionic-native"].vibration.ngx, global["ionic-native"]["audio-management"].ngx, global["ionic-native"]["native-audio"].ngx.index, global["ionic-native"].vibration.ngx.index, global["ionic-native"]["audio-management"].ngx.index, global.uuid.v4, global.ng.cdk.dragDrop, global["ngx-markdown"], global.tweetnacl, global.ionic.storage, null, global["ionic-native"]["splash-screen"].ngx, global["ionic-native"].network.ngx, global["ionic-cache"], global["ionic-cache/dist/cache"].service, global["ionic-native"].network.ngx.index, global["ionic-native"]["splash-screen"].ngx.index, global["ionic-native"]["status-bar"].ngx, global.ng.cdk.platform, global["ionic-native"]["in-app-browser"].ngx, global.apollo.client.core, global["apollo-angular"], global.apollo.client.link.ws, global.apollo.client.utilities, global.apollo.client.link.retry, global["apollo-link-queue"], global["apollo-link-serialize"], global["apollo-link-logger"], global["apollo-angular"].http, global["apollo3-cache-persist"], global["ionic-native"].downloader.ngx, global["ionic-native"]["status-bar"].ngx.index, global["ionic-native"].keyboard.ngx.index, global["ionic-native"]["in-app-browser"].ngx.index, global["ionic-native"].downloader.ngx.index, global.ng.cdk.textField, global["e-is"]["ngx-material-table"], global.ng.cdk.collections, global["ngx-jdenticon"]));
|
|
5
|
+
})(this, (function (exports, i0, i1$4, table$1, a11y, overlay, scrolling, i1$3, table, sort$1, paginator, formField, input, checkbox, expansion, toolbar, icon, button, menu, select, card, tabs, stepper, list, buttonToggle, progressSpinner, progressBar, radio, badge, slideToggle, i2, autocomplete, i1, rxjs, operators, i1$2, i1$5, momentImported, i1$1, momentTZImported, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, animations, divider, tooltip, chips, i3, i1$6, i2$1, ngxColorPicker, ngx$2, ngx$3, ngx$1, i2$2, i3$1, i4, uuidv4Imported, dragDrop, ngxMarkdown, tweetnacl, i3$2, zoneError, ngx$5, ngx$4, ionicCache, i6, i9, i10, ngx$7, i2$4, ngx$8, core, i2$3, ws, utilities, retry, QueueLink, SerializingLink, loggerLink, i3$3, apollo3CachePersist, ngx$6, i14, i15, i17, i18, textField, ngxMaterialTable, collections, ngxJdenticon) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$5);
|
|
34
34
|
var momentImported__namespace = /*#__PURE__*/_interopNamespace(momentImported);
|
|
35
35
|
var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
|
|
36
|
+
var momentTZImported__namespace = /*#__PURE__*/_interopNamespace(momentTZImported);
|
|
36
37
|
var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3);
|
|
37
38
|
var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$6);
|
|
38
39
|
var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$1);
|
|
@@ -2572,6 +2573,7 @@
|
|
|
2572
2573
|
];
|
|
2573
2574
|
|
|
2574
2575
|
var moment$5 = momentImported__namespace;
|
|
2576
|
+
var tz = momentTZImported__namespace;
|
|
2575
2577
|
var DATE_UNIX_TIMESTAMP = 'X';
|
|
2576
2578
|
var DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2577
2579
|
var DateUtils = /** @class */ (function () {
|
|
@@ -2594,6 +2596,25 @@
|
|
|
2594
2596
|
var d2 = fromDateISOString(date2);
|
|
2595
2597
|
return (!d1 && !d2) || d1.isSame(d2, granularity);
|
|
2596
2598
|
};
|
|
2599
|
+
/**
|
|
2600
|
+
* Create a copy of a date, without time fields (always return a new Moment object, or undefined).
|
|
2601
|
+
* Same implementation as the Java class Dates.resetTime() (see any SUMARiS like Pod)
|
|
2602
|
+
* @param value
|
|
2603
|
+
* @param timezone a timezone (see https://momentjs.com/timezone/)
|
|
2604
|
+
*/
|
|
2605
|
+
DateUtils.resetTime = function (value, timezone) {
|
|
2606
|
+
if (!value)
|
|
2607
|
+
return undefined;
|
|
2608
|
+
var date = fromDateISOString(value);
|
|
2609
|
+
// No timezone
|
|
2610
|
+
if (!timezone) {
|
|
2611
|
+
return moment$5(date).startOf('day');
|
|
2612
|
+
}
|
|
2613
|
+
// Use timezone
|
|
2614
|
+
moment$5(date)
|
|
2615
|
+
.tz(timezone, true)
|
|
2616
|
+
.startOf('day');
|
|
2617
|
+
};
|
|
2597
2618
|
return DateUtils;
|
|
2598
2619
|
}());
|
|
2599
2620
|
function toDateISOString(value) {
|
|
@@ -17741,9 +17762,9 @@
|
|
|
17741
17762
|
return this.platform.height();
|
|
17742
17763
|
};
|
|
17743
17764
|
PlatformService.prototype.ngOnStart = function () {
|
|
17744
|
-
var _a
|
|
17765
|
+
var _a;
|
|
17745
17766
|
return __awaiter(this, void 0, void 0, function () {
|
|
17746
|
-
var now, storage,
|
|
17767
|
+
var now, storage, checkIntervalMs, err_1;
|
|
17747
17768
|
var _this = this;
|
|
17748
17769
|
return __generator(this, function (_d) {
|
|
17749
17770
|
switch (_d.label) {
|
|
@@ -17753,7 +17774,7 @@
|
|
|
17753
17774
|
console.info('[platform] Starting platform...');
|
|
17754
17775
|
_d.label = 1;
|
|
17755
17776
|
case 1:
|
|
17756
|
-
_d.trys.push([1,
|
|
17777
|
+
_d.trys.push([1, 8, , 9]);
|
|
17757
17778
|
this._mobile = this.is('mobile');
|
|
17758
17779
|
this._cordova = this.is('cordova');
|
|
17759
17780
|
this._android = this.is('android');
|
|
@@ -17775,7 +17796,7 @@
|
|
|
17775
17796
|
// Start root services
|
|
17776
17797
|
return [4 /*yield*/, Promise.all([
|
|
17777
17798
|
this.entitiesStorage.ready(),
|
|
17778
|
-
this.cache.ready(),
|
|
17799
|
+
this.cache.ready().then(function () { return _this.configureCache(); }),
|
|
17779
17800
|
this.settings.ready(),
|
|
17780
17801
|
this.networkService.ready(),
|
|
17781
17802
|
this.audioProvider.ready()
|
|
@@ -17783,18 +17804,17 @@
|
|
|
17783
17804
|
case 5:
|
|
17784
17805
|
// Start root services
|
|
17785
17806
|
_d.sent();
|
|
17786
|
-
return [
|
|
17787
|
-
|
|
17788
|
-
this.checkAppVersion({ canReload: true })
|
|
17789
|
-
])];
|
|
17807
|
+
if (!(this.isWeb() && this.environment.production)) return [3 /*break*/, 7];
|
|
17808
|
+
return [4 /*yield*/, this.checkAppVersion({ canReload: true })];
|
|
17790
17809
|
case 6:
|
|
17791
17810
|
_d.sent();
|
|
17811
|
+
_d.label = 7;
|
|
17812
|
+
case 7:
|
|
17792
17813
|
// Update cache configuration when network changed
|
|
17793
17814
|
this.networkService.onNetworkStatusChanges
|
|
17794
|
-
.pipe(operators.skip(1)
|
|
17795
|
-
|
|
17796
|
-
|
|
17797
|
-
.subscribe();
|
|
17815
|
+
.pipe(operators.skip(1) // Olready done once, so we skip the first event
|
|
17816
|
+
)
|
|
17817
|
+
.subscribe(function (type) { return _this.configureCache(type !== 'none'); });
|
|
17798
17818
|
console.info("[platform] Starting platform [OK] {mobile: " + this._mobile + ", web: " + this.isWeb() + ", downloader: " + this.canDownload + ", fileOpener: " + this.canOpenFile + "} in " + (Date.now() - now) + "ms");
|
|
17799
17819
|
// Update authentication type
|
|
17800
17820
|
this.configService.config
|
|
@@ -17812,21 +17832,19 @@
|
|
|
17812
17832
|
_this.audioProvider.playStartupSound();
|
|
17813
17833
|
}, 1000);
|
|
17814
17834
|
}
|
|
17815
|
-
|
|
17816
|
-
if (this.isWeb()) {
|
|
17817
|
-
|
|
17818
|
-
|
|
17819
|
-
(
|
|
17820
|
-
|
|
17821
|
-
.subscribe(function (_) { return _this.checkAppVersion({ silent: true, canReload: false /*do NOT auto reload, when app is started*/ }); });
|
|
17822
|
-
}
|
|
17835
|
+
checkIntervalMs = (this.environment.checkAppVersionIntervalInSeconds || 0) * 1000;
|
|
17836
|
+
if (this.isWeb() && this.environment.production && checkIntervalMs > 0) {
|
|
17837
|
+
(_a = this.checkAppVersionTimer) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
17838
|
+
this.checkAppVersionTimer = rxjs.timer(checkIntervalMs, checkIntervalMs)
|
|
17839
|
+
.subscribe(function (_) { return _this.checkAppVersion({ silent: true, canReload: false /*do NOT auto reload, when app is started*/ }); });
|
|
17840
|
+
this.registerSubscription(this.checkAppVersionTimer);
|
|
17823
17841
|
}
|
|
17824
|
-
return [3 /*break*/,
|
|
17825
|
-
case
|
|
17842
|
+
return [3 /*break*/, 9];
|
|
17843
|
+
case 8:
|
|
17826
17844
|
err_1 = _d.sent();
|
|
17827
17845
|
// Manage startup error
|
|
17828
17846
|
return [2 /*return*/, this.onStartupError(err_1)];
|
|
17829
|
-
case
|
|
17847
|
+
case 9: return [2 /*return*/];
|
|
17830
17848
|
}
|
|
17831
17849
|
});
|
|
17832
17850
|
});
|
|
@@ -17950,7 +17968,7 @@
|
|
|
17950
17968
|
PlatformService.prototype.checkAppVersion = function (opts) {
|
|
17951
17969
|
var _a, _b, _c;
|
|
17952
17970
|
return __awaiter(this, void 0, void 0, function () {
|
|
17953
|
-
var silent, production, actualVersion, peer, remoteVersion,
|
|
17971
|
+
var silent, production, canAutoReload, actualVersion, peer, remoteVersion, reloadPath;
|
|
17954
17972
|
return __generator(this, function (_d) {
|
|
17955
17973
|
switch (_d.label) {
|
|
17956
17974
|
case 0:
|
|
@@ -17958,11 +17976,12 @@
|
|
|
17958
17976
|
return [2 /*return*/]; // Skip
|
|
17959
17977
|
silent = (opts === null || opts === void 0 ? void 0 : opts.silent) === true;
|
|
17960
17978
|
production = this.environment.production;
|
|
17979
|
+
canAutoReload = !opts || opts.canReload !== false;
|
|
17961
17980
|
if (!silent)
|
|
17962
17981
|
console.info('[platform] Checking remote app version...');
|
|
17963
17982
|
actualVersion = this.environment.version;
|
|
17964
17983
|
if (isNilOrBlank(actualVersion)) {
|
|
17965
|
-
console.
|
|
17984
|
+
console.error('[platform] Missing required value for \'environment.version\'. Cannot check remote app version.');
|
|
17966
17985
|
(_a = this.checkAppVersionTimer) === null || _a === void 0 ? void 0 : _a.unsubscribe(); // Stop timer if exists
|
|
17967
17986
|
return [2 /*return*/]; // Skip
|
|
17968
17987
|
}
|
|
@@ -17981,20 +18000,20 @@
|
|
|
17981
18000
|
console.info('[platform] Checking remote app version [OK]');
|
|
17982
18001
|
return [2 /*return*/];
|
|
17983
18002
|
}
|
|
17984
|
-
|
|
17985
|
-
|
|
17986
|
-
|
|
18003
|
+
reloadPath = location.href.replace(/[&]?version=[0-9.]+/gi, '');
|
|
18004
|
+
reloadPath += (reloadPath.indexOf('?') === -1) ? '?' : '&'; // Add query param separator
|
|
18005
|
+
reloadPath += 'version=' + remoteVersion; // Add version (to avoid a reload infinite loop)
|
|
18006
|
+
// Already try to reload, but version still bad
|
|
18007
|
+
if (reloadPath === location.href) {
|
|
17987
18008
|
if (canAutoReload)
|
|
17988
18009
|
console.error("[platform] Reloaded page failed, because version still mismatch! Please check version.appup file (expected app version: " + actualVersion + ")");
|
|
18010
|
+
// Stop timer, to avoid infinite loop
|
|
17989
18011
|
(_c = this.checkAppVersionTimer) === null || _c === void 0 ? void 0 : _c.unsubscribe();
|
|
17990
18012
|
return [2 /*return*/];
|
|
17991
18013
|
}
|
|
17992
18014
|
console.warn("[platform] More recent version detected (remote: " + remoteVersion + ", actual: " + actualVersion);
|
|
17993
|
-
reloadPath = location.href.replace(/[&?]{1}[a-z_-]=[0-9.]+/gi, '');
|
|
17994
|
-
reloadPath += (reloadPath.indexOf('?') === -1) ? '?' : '&'; // Add query param separator
|
|
17995
|
-
reloadPath += 'version=' + remoteVersion; // Add version (to avoid a reload infinite loop)
|
|
17996
|
-
console.info('[platform] Will reloading at ' + reloadPath);
|
|
17997
18015
|
if (!canAutoReload) return [3 /*break*/, 2];
|
|
18016
|
+
console.info('[platform] Will reloading at ' + reloadPath);
|
|
17998
18017
|
location.href = reloadPath;
|
|
17999
18018
|
return [3 /*break*/, 4];
|
|
18000
18019
|
case 2: return [4 /*yield*/, this.showToast({
|