@sumaris-net/ngx-components 0.23.2 → 0.24.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/{ngx-sumaris-components.umd.js → sumaris-net.ngx-components.umd.js} +347 -296
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -0
- package/bundles/sumaris-net.ngx-components.umd.min.js +25 -0
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -0
- package/esm2015/src/app/admin/services/filter/person.filter.js +4 -2
- package/esm2015/src/app/admin/services/person.service.js +4 -3
- package/esm2015/src/app/core/graphql/graphql.service.js +3 -2
- package/esm2015/src/app/core/graphql/graphql.utils.js +1 -1
- package/esm2015/src/app/core/install/install-upgrade-card.component.js +20 -14
- package/esm2015/src/app/core/services/network.service.js +3 -3
- package/esm2015/src/app/core/services/platform.service.js +28 -8
- package/esm2015/src/app/shared/functions.js +6 -7
- package/esm2015/src/app/shared/material/autocomplete/testing/autocomplete.test.js +2 -2
- package/esm2015/sumaris-net.ngx-components.js +13 -0
- package/fesm2015/{ngx-sumaris-components.js → sumaris-net.ngx-components.js} +329 -285
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -0
- package/package.json +13 -9
- package/src/app/admin/services/filter/person.filter.d.ts +1 -0
- package/src/app/admin/services/person.service.d.ts +1 -1
- package/src/app/core/graphql/graphql.utils.d.ts +2 -1
- package/src/app/core/install/install-upgrade-card.component.d.ts +8 -5
- package/src/app/core/services/platform.service.d.ts +10 -1
- package/src/app/shared/functions.d.ts +1 -1
- package/{ngx-sumaris-components.d.ts → sumaris-net.ngx-components.d.ts} +0 -0
- package/sumaris-net.ngx-components.metadata.json +1 -0
- package/bundles/ngx-sumaris-components.umd.js.map +0 -1
- package/bundles/ngx-sumaris-components.umd.min.js +0 -25
- package/bundles/ngx-sumaris-components.umd.min.js.map +0 -1
- package/esm2015/ngx-sumaris-components.js +0 -13
- package/fesm2015/ngx-sumaris-components.js.map +0 -1
- package/ngx-sumaris-components.metadata.json +0 -1
|
@@ -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/status-bar/ngx/index'), require('@ionic-native/keyboard/ngx/index'), require('@ionic-native/in-app-browser/ngx/index'), 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/status-bar/ngx/index', '@ionic-native/keyboard/ngx/index', '@ionic-native/in-app-browser/ngx/index', '@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[
|
|
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$
|
|
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('@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', '@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.ngx$6, global["ionic-native"]["status-bar"].ngx.index, global["ionic-native"].keyboard.ngx.index, global["ionic-native"]["in-app-browser"].ngx.index, global.i18, 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, 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
|
|
|
@@ -15,22 +15,45 @@
|
|
|
15
15
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
16
|
Object.defineProperty(n, k, d.get ? d : {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () {
|
|
19
|
-
return e[k];
|
|
20
|
-
}
|
|
18
|
+
get: function () { return e[k]; }
|
|
21
19
|
});
|
|
22
20
|
}
|
|
23
21
|
});
|
|
24
22
|
}
|
|
25
|
-
n[
|
|
23
|
+
n["default"] = e;
|
|
26
24
|
return Object.freeze(n);
|
|
27
25
|
}
|
|
28
26
|
|
|
27
|
+
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
|
|
28
|
+
var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$4);
|
|
29
|
+
var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$3);
|
|
30
|
+
var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2);
|
|
31
|
+
var i1__namespace$6 = /*#__PURE__*/_interopNamespace(i1);
|
|
32
|
+
var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$2);
|
|
33
|
+
var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$5);
|
|
29
34
|
var momentImported__namespace = /*#__PURE__*/_interopNamespace(momentImported);
|
|
35
|
+
var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
|
|
36
|
+
var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3);
|
|
37
|
+
var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$6);
|
|
38
|
+
var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$1);
|
|
39
|
+
var i2__namespace = /*#__PURE__*/_interopNamespace(i2$2);
|
|
40
|
+
var i3__namespace = /*#__PURE__*/_interopNamespace(i3$1);
|
|
41
|
+
var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
|
|
30
42
|
var uuidv4Imported__namespace = /*#__PURE__*/_interopNamespace(uuidv4Imported);
|
|
43
|
+
var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$2);
|
|
44
|
+
var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
|
|
45
|
+
var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
|
|
46
|
+
var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
|
|
47
|
+
var i2__namespace$4 = /*#__PURE__*/_interopNamespace(i2$4);
|
|
48
|
+
var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
|
|
31
49
|
var QueueLink__default = /*#__PURE__*/_interopDefaultLegacy(QueueLink);
|
|
32
50
|
var SerializingLink__default = /*#__PURE__*/_interopDefaultLegacy(SerializingLink);
|
|
33
51
|
var loggerLink__default = /*#__PURE__*/_interopDefaultLegacy(loggerLink);
|
|
52
|
+
var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$3);
|
|
53
|
+
var i14__namespace = /*#__PURE__*/_interopNamespace(i14);
|
|
54
|
+
var i15__namespace = /*#__PURE__*/_interopNamespace(i15);
|
|
55
|
+
var i17__namespace = /*#__PURE__*/_interopNamespace(i17);
|
|
56
|
+
var i18__namespace = /*#__PURE__*/_interopNamespace(i18);
|
|
34
57
|
|
|
35
58
|
var ENVIRONMENT = new i0.InjectionToken('ENV');
|
|
36
59
|
var Environment = /** @class */ (function () {
|
|
@@ -582,16 +605,15 @@
|
|
|
582
605
|
// Stop if not equals, otherwise continue with the next key
|
|
583
606
|
.find(function (res) { return res !== 0; }) || 0; };
|
|
584
607
|
}
|
|
585
|
-
function sort(array, attribute) {
|
|
608
|
+
function sort(array, attribute, opts) {
|
|
586
609
|
if (isEmptyArray(array))
|
|
587
610
|
return array;
|
|
611
|
+
var compareFn = opts
|
|
612
|
+
? new Intl.Collator(undefined, opts).compare
|
|
613
|
+
: function (v1, v2) { return v1 === v2 ? 0 : v1 > v2 ? 1 : -1; };
|
|
588
614
|
return array
|
|
589
615
|
.slice() // copy
|
|
590
|
-
.sort(function (a, b) {
|
|
591
|
-
var valueA = a[attribute];
|
|
592
|
-
var valueB = b[attribute];
|
|
593
|
-
return valueA === valueB ? 0 : (valueA > valueB ? 1 : -1);
|
|
594
|
-
});
|
|
616
|
+
.sort(function (a, b) { return compareFn(a[attribute], b[attribute]); });
|
|
595
617
|
}
|
|
596
618
|
var INTEGER_REGEXP = /^[-]?\d+$/;
|
|
597
619
|
function isInt(value) {
|
|
@@ -1135,19 +1157,19 @@
|
|
|
1135
1157
|
};
|
|
1136
1158
|
return MatAutocompleteConfigHolder;
|
|
1137
1159
|
}());
|
|
1138
|
-
var DEFAULT_VALUE_ACCESSOR = {
|
|
1160
|
+
var DEFAULT_VALUE_ACCESSOR$6 = {
|
|
1139
1161
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
1140
1162
|
useExisting: i0.forwardRef(function () { return MatAutocompleteField; }),
|
|
1141
1163
|
multi: true
|
|
1142
1164
|
};
|
|
1143
|
-
var noop = function () { };
|
|
1144
|
-
var ɵ0 = noop;
|
|
1165
|
+
var noop$7 = function () { };
|
|
1166
|
+
var ɵ0$a = noop$7;
|
|
1145
1167
|
var MatAutocompleteField = /** @class */ (function () {
|
|
1146
1168
|
function MatAutocompleteField(cd, formGroupDir) {
|
|
1147
1169
|
this.cd = cd;
|
|
1148
1170
|
this.formGroupDir = formGroupDir;
|
|
1149
|
-
this._onChangeCallback = noop;
|
|
1150
|
-
this._onTouchedCallback = noop;
|
|
1171
|
+
this._onChangeCallback = noop$7;
|
|
1172
|
+
this._onTouchedCallback = noop$7;
|
|
1151
1173
|
this._subscription = new rxjs.Subscription();
|
|
1152
1174
|
this._filter$ = new rxjs.BehaviorSubject(undefined);
|
|
1153
1175
|
this._reload$ = new rxjs.Subject();
|
|
@@ -1804,7 +1826,7 @@
|
|
|
1804
1826
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
1805
1827
|
selector: 'mat-autocomplete-field',
|
|
1806
1828
|
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <!-- readonly -->\n <ng-container *ngIf=\"_readonly; else writable\">\n <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\n </ng-container>\n\n <ng-template #writable>\n\n <!-- Basic select -->\n <mat-select #matSelect\n *ngIf=\"!searchable; else searchableTemplate\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n [compareWith]=\"compareWith\"\n [multiple]=\"multiple\"\n [required]=\"required\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- header -->\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <!-- options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text>{{item | propertyGet: path }}</ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initMatSelectInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n </mat-select>\n </ng-template>\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #searchableTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [required]=\"required\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"filterInputTextFocusInEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n (keyup.enter)=\"onKeyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.opened && onDropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [class.cdk-visually-hidden]=\"!searchable\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as last\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"last && itemCount; let count \" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\" >\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n </ng-template>\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content matSuffix select=\"[matSuffix]\"></ng-content>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n\n</ion-grid>\n",
|
|
1807
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
1829
|
+
providers: [DEFAULT_VALUE_ACCESSOR$6],
|
|
1808
1830
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1809
1831
|
styles: [":host{display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}mat-icon.select-arrow{color:rgba(0,0,0,.47);font-size:150%}.fact-scroll-viewport{height:100%;width:100%}.fact-item{height:54px;display:flex}.fact-item .fact-date{min-width:100px;text-align:center;font-size:24pt}.fact-item .fact-date,.fact-item .fact-text{height:100%;align-items:center;justify-content:center;display:flex}.fact-item .fact-text{border-radius:10px}cdk-virtual-scroll-viewport{border:1px solid #000}cdk-virtual-scroll-viewport li{list-style:none}"]
|
|
1810
1832
|
},] }
|
|
@@ -1882,7 +1904,7 @@
|
|
|
1882
1904
|
};
|
|
1883
1905
|
return DateFormatPipe;
|
|
1884
1906
|
}());
|
|
1885
|
-
DateFormatPipe.ɵprov =
|
|
1907
|
+
DateFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
1886
1908
|
DateFormatPipe.decorators = [
|
|
1887
1909
|
{ type: i0.Pipe, args: [{
|
|
1888
1910
|
name: 'dateFormat'
|
|
@@ -1894,7 +1916,7 @@
|
|
|
1894
1916
|
{ type: i1$2.TranslateService }
|
|
1895
1917
|
]; };
|
|
1896
1918
|
|
|
1897
|
-
var moment = momentImported__namespace;
|
|
1919
|
+
var moment$6 = momentImported__namespace;
|
|
1898
1920
|
var DateDiffDurationPipe = /** @class */ (function () {
|
|
1899
1921
|
function DateDiffDurationPipe(dateAdapter, translate) {
|
|
1900
1922
|
var _this = this;
|
|
@@ -1911,10 +1933,10 @@
|
|
|
1911
1933
|
return this.format(startDate, endDate);
|
|
1912
1934
|
};
|
|
1913
1935
|
DateDiffDurationPipe.prototype.format = function (startDate, endDate) {
|
|
1914
|
-
var duration = moment.duration(endDate.diff(startDate));
|
|
1936
|
+
var duration = moment$6.duration(endDate.diff(startDate));
|
|
1915
1937
|
if (duration.asMinutes() < 0)
|
|
1916
1938
|
return '';
|
|
1917
|
-
var timeDuration = moment(0)
|
|
1939
|
+
var timeDuration = moment$6(0)
|
|
1918
1940
|
.hour(duration.hours())
|
|
1919
1941
|
.minute(duration.minutes());
|
|
1920
1942
|
var days = Math.floor(duration.asDays());
|
|
@@ -1922,7 +1944,7 @@
|
|
|
1922
1944
|
};
|
|
1923
1945
|
return DateDiffDurationPipe;
|
|
1924
1946
|
}());
|
|
1925
|
-
DateDiffDurationPipe.ɵprov =
|
|
1947
|
+
DateDiffDurationPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0__namespace.ɵɵinject(i1__namespace$2.DateAdapter), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
1926
1948
|
DateDiffDurationPipe.decorators = [
|
|
1927
1949
|
{ type: i0.Pipe, args: [{
|
|
1928
1950
|
name: 'dateDiffDuration'
|
|
@@ -1944,7 +1966,7 @@
|
|
|
1944
1966
|
};
|
|
1945
1967
|
return DateFromNowPipe;
|
|
1946
1968
|
}());
|
|
1947
|
-
DateFromNowPipe.ɵprov =
|
|
1969
|
+
DateFromNowPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
1948
1970
|
DateFromNowPipe.decorators = [
|
|
1949
1971
|
{ type: i0.Pipe, args: [{
|
|
1950
1972
|
name: 'dateFromNow'
|
|
@@ -2013,7 +2035,7 @@
|
|
|
2013
2035
|
value *= -1;
|
|
2014
2036
|
}
|
|
2015
2037
|
}
|
|
2016
|
-
var degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
2038
|
+
var degrees = roundFloat$1(value, opts.maxDecimals).toString();
|
|
2017
2039
|
// Add sign
|
|
2018
2040
|
var sign = negative ? '-' : '+';
|
|
2019
2041
|
if (opts.placeholderChar) {
|
|
@@ -2064,7 +2086,7 @@
|
|
|
2064
2086
|
}
|
|
2065
2087
|
var degrees = Math.trunc(value);
|
|
2066
2088
|
var minutes = Math.trunc((value - degrees) * 60);
|
|
2067
|
-
var seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
2089
|
+
var seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
2068
2090
|
while (seconds >= 60) {
|
|
2069
2091
|
seconds -= 60;
|
|
2070
2092
|
minutes += 1;
|
|
@@ -2132,7 +2154,7 @@
|
|
|
2132
2154
|
}
|
|
2133
2155
|
}
|
|
2134
2156
|
var degrees = Math.trunc(value);
|
|
2135
|
-
var minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
2157
|
+
var minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
|
|
2136
2158
|
while (minutes >= 60) {
|
|
2137
2159
|
minutes -= 60;
|
|
2138
2160
|
degrees += 1;
|
|
@@ -2183,15 +2205,15 @@
|
|
|
2183
2205
|
return NaN;
|
|
2184
2206
|
}
|
|
2185
2207
|
if (pattern === 'DD')
|
|
2186
|
-
return roundFloat(degrees, maxDecimals);
|
|
2208
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
2187
2209
|
var minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
2188
2210
|
var seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
2189
2211
|
var direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
2190
2212
|
var sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
2191
2213
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
2192
|
-
return roundFloat(degrees, maxDecimals);
|
|
2214
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
2193
2215
|
}
|
|
2194
|
-
function roundFloat(input, maxDecimals) {
|
|
2216
|
+
function roundFloat$1(input, maxDecimals) {
|
|
2195
2217
|
if (maxDecimals > 0) {
|
|
2196
2218
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
2197
2219
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -2214,7 +2236,7 @@
|
|
|
2214
2236
|
};
|
|
2215
2237
|
return LatLongFormatPipe;
|
|
2216
2238
|
}());
|
|
2217
|
-
LatLongFormatPipe.ɵprov =
|
|
2239
|
+
LatLongFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
2218
2240
|
LatLongFormatPipe.decorators = [
|
|
2219
2241
|
{ type: i0.Pipe, args: [{
|
|
2220
2242
|
name: 'latLongFormat'
|
|
@@ -2227,7 +2249,7 @@
|
|
|
2227
2249
|
}
|
|
2228
2250
|
return LatitudeFormatPipe;
|
|
2229
2251
|
}());
|
|
2230
|
-
LatitudeFormatPipe.ɵprov =
|
|
2252
|
+
LatitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
2231
2253
|
LatitudeFormatPipe.decorators = [
|
|
2232
2254
|
{ type: i0.Pipe, args: [{
|
|
2233
2255
|
name: 'latitudeFormat'
|
|
@@ -2240,7 +2262,7 @@
|
|
|
2240
2262
|
}
|
|
2241
2263
|
return LongitudeFormatPipe;
|
|
2242
2264
|
}());
|
|
2243
|
-
LongitudeFormatPipe.ɵprov =
|
|
2265
|
+
LongitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
2244
2266
|
LongitudeFormatPipe.decorators = [
|
|
2245
2267
|
{ type: i0.Pipe, args: [{
|
|
2246
2268
|
name: 'longitudeFormat'
|
|
@@ -2263,7 +2285,7 @@
|
|
|
2263
2285
|
};
|
|
2264
2286
|
return NumberFormatPipe;
|
|
2265
2287
|
}());
|
|
2266
|
-
NumberFormatPipe.ɵprov =
|
|
2288
|
+
NumberFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
2267
2289
|
NumberFormatPipe.decorators = [
|
|
2268
2290
|
{ type: i0.Pipe, args: [{
|
|
2269
2291
|
name: 'numberFormat'
|
|
@@ -2306,7 +2328,7 @@
|
|
|
2306
2328
|
};
|
|
2307
2329
|
return HighlightPipe;
|
|
2308
2330
|
}());
|
|
2309
|
-
HighlightPipe.ɵprov =
|
|
2331
|
+
HighlightPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
2310
2332
|
HighlightPipe.decorators = [
|
|
2311
2333
|
{ type: i0.Pipe, args: [{
|
|
2312
2334
|
name: 'highlight'
|
|
@@ -2374,7 +2396,7 @@
|
|
|
2374
2396
|
{ type: i0.Pipe, args: [{ name: 'fileSize' },] }
|
|
2375
2397
|
];
|
|
2376
2398
|
|
|
2377
|
-
var moment$
|
|
2399
|
+
var moment$5 = momentImported__namespace;
|
|
2378
2400
|
var DATE_UNIX_TIMESTAMP = 'X';
|
|
2379
2401
|
var DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2380
2402
|
var DateUtils = /** @class */ (function () {
|
|
@@ -2409,32 +2431,32 @@
|
|
|
2409
2431
|
if (!value || momentImported.isMoment(value))
|
|
2410
2432
|
return value;
|
|
2411
2433
|
// Parse the input value, as a ISO date time
|
|
2412
|
-
var date = moment$
|
|
2434
|
+
var date = moment$5(value, DATE_ISO_PATTERN);
|
|
2413
2435
|
if (date.isValid())
|
|
2414
2436
|
return date;
|
|
2415
2437
|
// Not valid: trying to convert from unix timestamp
|
|
2416
2438
|
if (typeof value === 'string') {
|
|
2417
2439
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2418
2440
|
if (value.length === 10) {
|
|
2419
|
-
return moment$
|
|
2441
|
+
return moment$5(value, DATE_UNIX_TIMESTAMP);
|
|
2420
2442
|
}
|
|
2421
2443
|
else if (value.length === 13) {
|
|
2422
|
-
return moment$
|
|
2444
|
+
return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2423
2445
|
}
|
|
2424
2446
|
}
|
|
2425
2447
|
console.warn('Unable to parse date: ' + value);
|
|
2426
2448
|
return undefined;
|
|
2427
2449
|
}
|
|
2428
2450
|
function fromUnixTimestamp(timeInSec) {
|
|
2429
|
-
return moment$
|
|
2451
|
+
return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2430
2452
|
}
|
|
2431
2453
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2432
|
-
return moment$
|
|
2454
|
+
return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2433
2455
|
}
|
|
2434
2456
|
function toDuration(value, unit) {
|
|
2435
2457
|
if (!value)
|
|
2436
2458
|
return undefined;
|
|
2437
|
-
var duration = moment$
|
|
2459
|
+
var duration = moment$5.duration(value, unit);
|
|
2438
2460
|
// fix 990+ ms
|
|
2439
2461
|
if (duration.milliseconds() >= 990) {
|
|
2440
2462
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2464,7 +2486,7 @@
|
|
|
2464
2486
|
};
|
|
2465
2487
|
return DurationPipe;
|
|
2466
2488
|
}());
|
|
2467
|
-
DurationPipe.ɵprov =
|
|
2489
|
+
DurationPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2468
2490
|
DurationPipe.decorators = [
|
|
2469
2491
|
{ type: i0.Pipe, args: [{
|
|
2470
2492
|
name: 'duration'
|
|
@@ -2488,7 +2510,7 @@
|
|
|
2488
2510
|
};
|
|
2489
2511
|
return MathAbsPipe;
|
|
2490
2512
|
}());
|
|
2491
|
-
MathAbsPipe.ɵprov =
|
|
2513
|
+
MathAbsPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2492
2514
|
MathAbsPipe.decorators = [
|
|
2493
2515
|
{ type: i0.Pipe, args: [{
|
|
2494
2516
|
name: 'mathAbs'
|
|
@@ -2503,7 +2525,7 @@
|
|
|
2503
2525
|
};
|
|
2504
2526
|
return EvenPipe;
|
|
2505
2527
|
}());
|
|
2506
|
-
EvenPipe.ɵprov =
|
|
2528
|
+
EvenPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2507
2529
|
EvenPipe.decorators = [
|
|
2508
2530
|
{ type: i0.Pipe, args: [{
|
|
2509
2531
|
name: 'even'
|
|
@@ -2518,7 +2540,7 @@
|
|
|
2518
2540
|
};
|
|
2519
2541
|
return OddPipe;
|
|
2520
2542
|
}());
|
|
2521
|
-
OddPipe.ɵprov =
|
|
2543
|
+
OddPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2522
2544
|
OddPipe.decorators = [
|
|
2523
2545
|
{ type: i0.Pipe, args: [{
|
|
2524
2546
|
name: 'odd'
|
|
@@ -2650,7 +2672,7 @@
|
|
|
2650
2672
|
};
|
|
2651
2673
|
return MapGetPipe;
|
|
2652
2674
|
}());
|
|
2653
|
-
MapGetPipe.ɵprov =
|
|
2675
|
+
MapGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
2654
2676
|
MapGetPipe.decorators = [
|
|
2655
2677
|
{ type: i0.Pipe, args: [{
|
|
2656
2678
|
name: 'mapGet'
|
|
@@ -2667,7 +2689,7 @@
|
|
|
2667
2689
|
};
|
|
2668
2690
|
return MapKeysPipe;
|
|
2669
2691
|
}());
|
|
2670
|
-
MapKeysPipe.ɵprov =
|
|
2692
|
+
MapKeysPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
2671
2693
|
MapKeysPipe.decorators = [
|
|
2672
2694
|
{ type: i0.Pipe, args: [{
|
|
2673
2695
|
name: 'mapKeys'
|
|
@@ -2684,7 +2706,7 @@
|
|
|
2684
2706
|
};
|
|
2685
2707
|
return MapValuesPipe;
|
|
2686
2708
|
}());
|
|
2687
|
-
MapValuesPipe.ɵprov =
|
|
2709
|
+
MapValuesPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
2688
2710
|
MapValuesPipe.decorators = [
|
|
2689
2711
|
{ type: i0.Pipe, args: [{
|
|
2690
2712
|
name: 'mapValues'
|
|
@@ -2700,7 +2722,7 @@
|
|
|
2700
2722
|
};
|
|
2701
2723
|
return IsNotNilOrBlankPipe;
|
|
2702
2724
|
}());
|
|
2703
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
2725
|
+
IsNotNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2704
2726
|
IsNotNilOrBlankPipe.decorators = [
|
|
2705
2727
|
{ type: i0.Pipe, args: [{
|
|
2706
2728
|
name: 'isNotNilOrBlank'
|
|
@@ -2715,7 +2737,7 @@
|
|
|
2715
2737
|
};
|
|
2716
2738
|
return IsNilOrBlankPipe;
|
|
2717
2739
|
}());
|
|
2718
|
-
IsNilOrBlankPipe.ɵprov =
|
|
2740
|
+
IsNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2719
2741
|
IsNilOrBlankPipe.decorators = [
|
|
2720
2742
|
{ type: i0.Pipe, args: [{
|
|
2721
2743
|
name: 'isNilOrBlank'
|
|
@@ -2730,7 +2752,7 @@
|
|
|
2730
2752
|
};
|
|
2731
2753
|
return ToStringPipe;
|
|
2732
2754
|
}());
|
|
2733
|
-
ToStringPipe.ɵprov =
|
|
2755
|
+
ToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2734
2756
|
ToStringPipe.decorators = [
|
|
2735
2757
|
{ type: i0.Pipe, args: [{
|
|
2736
2758
|
name: 'toString'
|
|
@@ -2745,7 +2767,7 @@
|
|
|
2745
2767
|
};
|
|
2746
2768
|
return StrLengthPipe;
|
|
2747
2769
|
}());
|
|
2748
|
-
StrLengthPipe.ɵprov =
|
|
2770
|
+
StrLengthPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2749
2771
|
StrLengthPipe.decorators = [
|
|
2750
2772
|
{ type: i0.Pipe, args: [{
|
|
2751
2773
|
name: 'strLength'
|
|
@@ -2798,7 +2820,7 @@
|
|
|
2798
2820
|
};
|
|
2799
2821
|
return TranslateContextService;
|
|
2800
2822
|
}());
|
|
2801
|
-
TranslateContextService.ɵprov =
|
|
2823
|
+
TranslateContextService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
2802
2824
|
TranslateContextService.decorators = [
|
|
2803
2825
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
2804
2826
|
];
|
|
@@ -2815,7 +2837,7 @@
|
|
|
2815
2837
|
};
|
|
2816
2838
|
return TranslateContextPipe;
|
|
2817
2839
|
}());
|
|
2818
|
-
TranslateContextPipe.ɵprov =
|
|
2840
|
+
TranslateContextPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(i0__namespace.ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
|
|
2819
2841
|
TranslateContextPipe.decorators = [
|
|
2820
2842
|
{ type: i0.Pipe, args: [{
|
|
2821
2843
|
name: 'translateContext'
|
|
@@ -2835,7 +2857,7 @@
|
|
|
2835
2857
|
};
|
|
2836
2858
|
return TranslatablePipe;
|
|
2837
2859
|
}());
|
|
2838
|
-
TranslatablePipe.ɵprov =
|
|
2860
|
+
TranslatablePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
|
|
2839
2861
|
TranslatablePipe.decorators = [
|
|
2840
2862
|
{ type: i0.Pipe, args: [{
|
|
2841
2863
|
name: 'translatable'
|
|
@@ -2855,7 +2877,7 @@
|
|
|
2855
2877
|
};
|
|
2856
2878
|
return PropertyGetPipe;
|
|
2857
2879
|
}());
|
|
2858
|
-
PropertyGetPipe.ɵprov =
|
|
2880
|
+
PropertyGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
2859
2881
|
PropertyGetPipe.decorators = [
|
|
2860
2882
|
{ type: i0.Pipe, args: [{
|
|
2861
2883
|
name: 'propertyGet'
|
|
@@ -3112,14 +3134,14 @@
|
|
|
3112
3134
|
},] }
|
|
3113
3135
|
];
|
|
3114
3136
|
|
|
3115
|
-
var moment$
|
|
3137
|
+
var moment$4 = momentImported__namespace;
|
|
3116
3138
|
// @dynamic
|
|
3117
3139
|
var SharedValidators = /** @class */ (function () {
|
|
3118
3140
|
function SharedValidators() {
|
|
3119
3141
|
}
|
|
3120
3142
|
SharedValidators.validDate = function (control) {
|
|
3121
3143
|
var value = control.value;
|
|
3122
|
-
var date = !value || moment$
|
|
3144
|
+
var date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
|
|
3123
3145
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
3124
3146
|
return { validDate: true };
|
|
3125
3147
|
}
|
|
@@ -3590,9 +3612,9 @@
|
|
|
3590
3612
|
var hour = parseInt(durationParts[0] || '0');
|
|
3591
3613
|
var minute = parseInt(durationParts[1] || '0');
|
|
3592
3614
|
var value = hour + (minute + 0.5) / 60;
|
|
3593
|
-
return roundFloat
|
|
3615
|
+
return roundFloat(value, maxDecimals);
|
|
3594
3616
|
}
|
|
3595
|
-
function roundFloat
|
|
3617
|
+
function roundFloat(input, maxDecimals) {
|
|
3596
3618
|
if (maxDecimals > 0) {
|
|
3597
3619
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
3598
3620
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -3616,9 +3638,9 @@
|
|
|
3616
3638
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
3617
3639
|
}
|
|
3618
3640
|
};
|
|
3619
|
-
var noop$
|
|
3641
|
+
var noop$6 = function () {
|
|
3620
3642
|
};
|
|
3621
|
-
var ɵ0$
|
|
3643
|
+
var ɵ0$9 = noop$6;
|
|
3622
3644
|
var MatLatLongField = /** @class */ (function () {
|
|
3623
3645
|
function MatLatLongField(platform, translate, formBuilder, cd, formGroupDir) {
|
|
3624
3646
|
this.platform = platform;
|
|
@@ -3626,8 +3648,8 @@
|
|
|
3626
3648
|
this.formBuilder = formBuilder;
|
|
3627
3649
|
this.cd = cd;
|
|
3628
3650
|
this.formGroupDir = formGroupDir;
|
|
3629
|
-
this._onChangeCallback = noop$
|
|
3630
|
-
this._onTouchedCallback = noop$
|
|
3651
|
+
this._onChangeCallback = noop$6;
|
|
3652
|
+
this._onTouchedCallback = noop$6;
|
|
3631
3653
|
this._subscription = new rxjs.Subscription();
|
|
3632
3654
|
this.disabling = false;
|
|
3633
3655
|
this.writing = false;
|
|
@@ -3980,14 +4002,14 @@
|
|
|
3980
4002
|
},] }
|
|
3981
4003
|
];
|
|
3982
4004
|
|
|
3983
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
4005
|
+
var DEFAULT_VALUE_ACCESSOR$5 = {
|
|
3984
4006
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
3985
4007
|
useExisting: i0.forwardRef(function () { return MatDate; }),
|
|
3986
4008
|
multi: true
|
|
3987
4009
|
};
|
|
3988
|
-
var DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
3989
|
-
var noop$
|
|
3990
|
-
var ɵ0$
|
|
4010
|
+
var DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4011
|
+
var noop$5 = function () { };
|
|
4012
|
+
var ɵ0$8 = noop$5;
|
|
3991
4013
|
var MatDate = /** @class */ (function () {
|
|
3992
4014
|
function MatDate(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
3993
4015
|
this.dateAdapter = dateAdapter;
|
|
@@ -3996,12 +4018,12 @@
|
|
|
3996
4018
|
this.cd = cd;
|
|
3997
4019
|
this.keyboard = keyboard;
|
|
3998
4020
|
this.formGroupDir = formGroupDir;
|
|
3999
|
-
this._onChangeCallback = noop$
|
|
4000
|
-
this._onTouchedCallback = noop$
|
|
4021
|
+
this._onChangeCallback = noop$5;
|
|
4022
|
+
this._onTouchedCallback = noop$5;
|
|
4001
4023
|
this._subscription = new rxjs.Subscription();
|
|
4002
4024
|
this.writing = true;
|
|
4003
4025
|
this.disabling = false;
|
|
4004
|
-
this.dayMask = DAY_MASK;
|
|
4026
|
+
this.dayMask = DAY_MASK$2;
|
|
4005
4027
|
this.disabled = false;
|
|
4006
4028
|
this.floatLabel = 'auto';
|
|
4007
4029
|
this.readonly = false;
|
|
@@ -4270,7 +4292,7 @@
|
|
|
4270
4292
|
selector: 'mat-date-field',
|
|
4271
4293
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final control -->\n <input matInput type=\"text\"\n [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"writeValue(null)\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('validDate')\" translate>ERROR.FIELD_NOT_VALID_DATE</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateIsAfter')\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateRange')\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMaxDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMinDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngIf=\"formControl.hasError('msg')\">{{formControl.errors.msg}}</mat-error>\n </mat-form-field>\n\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n\n <ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n </ng-template>\n\n <ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n </ng-template>\n\n</ng-template>\n\n",
|
|
4272
4294
|
providers: [
|
|
4273
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
4295
|
+
DEFAULT_VALUE_ACCESSOR$5,
|
|
4274
4296
|
],
|
|
4275
4297
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
4276
4298
|
styles: [":host{display:inline-block;width:100%;position:relative}:host [no-padding]{--ion-grid-column-padding:0}:host [nowrap]{flex-wrap:nowrap}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}mat-form-field .datetime-md,mat-form-field ion-datetime{padding:0!important}ion-col.day{min-width:100px}ion-col.day .mat-form-field-subscript-wrapper{overflow:visible;right:-64px;width:calc(100% + 64px)}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}ion-col.hour{min-width:55px;max-width:65px}ion-col.hour mat-form-field{width:100%}ion-col.hour mat-form-field input[type=text],ion-col.hour mat-form-field mat-label{text-align:left;min-width:50px}mat-form-field.mat-form-field-disabled ion-col.day{min-width:100px}.hour .mat-form-field-label{max-width:40px}.hour mat-form-field.mat-form-field-should-float .mat-form-field-placeholder{max-width:inherit}mat-error{text-align:right;width:100%}"]
|
|
@@ -4303,17 +4325,17 @@
|
|
|
4303
4325
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
4304
4326
|
};
|
|
4305
4327
|
|
|
4306
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
4328
|
+
var DEFAULT_VALUE_ACCESSOR$4 = {
|
|
4307
4329
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
4308
4330
|
useExisting: i0.forwardRef(function () { return MatDateTime; }),
|
|
4309
4331
|
multi: true
|
|
4310
4332
|
};
|
|
4311
4333
|
var DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4312
4334
|
var HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
4313
|
-
var HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
4314
|
-
var noop$
|
|
4335
|
+
var HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
4336
|
+
var noop$4 = function () {
|
|
4315
4337
|
};
|
|
4316
|
-
var ɵ0$
|
|
4338
|
+
var ɵ0$7 = noop$4;
|
|
4317
4339
|
var MatDateTime = /** @class */ (function () {
|
|
4318
4340
|
function MatDateTime(platform, dateAdapter, translate, formBuilder, keyboard, cd, formGroupDir) {
|
|
4319
4341
|
this.platform = platform;
|
|
@@ -4323,14 +4345,14 @@
|
|
|
4323
4345
|
this.keyboard = keyboard;
|
|
4324
4346
|
this.cd = cd;
|
|
4325
4347
|
this.formGroupDir = formGroupDir;
|
|
4326
|
-
this._onChangeCallback = noop$
|
|
4327
|
-
this._onTouchedCallback = noop$
|
|
4348
|
+
this._onChangeCallback = noop$4;
|
|
4349
|
+
this._onTouchedCallback = noop$4;
|
|
4328
4350
|
this._subscription = new rxjs.Subscription();
|
|
4329
4351
|
this.writing = true;
|
|
4330
4352
|
this.disabling = false;
|
|
4331
4353
|
this._onDestroy = new i0.EventEmitter();
|
|
4332
4354
|
this.dayMask = DAY_MASK$1;
|
|
4333
|
-
this.hourMask = HOUR_MASK;
|
|
4355
|
+
this.hourMask = HOUR_MASK$1;
|
|
4334
4356
|
this.floatLabel = 'auto';
|
|
4335
4357
|
this.readonly = false;
|
|
4336
4358
|
this.compact = false;
|
|
@@ -4677,7 +4699,7 @@
|
|
|
4677
4699
|
selector: 'mat-date-time-field',
|
|
4678
4700
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable + time -->\n<ng-template #writable >\n <ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding no-wrap\" nowrap>\n\n <!-- day -->\n <ion-col class=\"day ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dateFormControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dateFormControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix #datePickerButton2 (click)=\"openDatePicker($event, datePicker)\" [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n <div class=\"mat-form-field-subscript mat-form-field-subscript-wrapper\" >\n <!-- errors -->\n <ng-container [ngSwitch]=\"formControl.touched && formControl.errors|mapKeys|arrayFirst\">\n <mat-error *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</mat-error>\n <mat-error *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</mat-error>\n </ng-container>\n <ng-content select=\"mat-error\"></ng-content>\n\n <!-- mat hint -->\n <div class=\"mat-form-field-hint-wrapper\" [class.cdk-visually-hidden]=\"formControl.invalid\">\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint\"></ng-content>\n </div>\n </div>\n\n </ion-col>\n\n <!-- hour -->\n <ion-col class=\"hour ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && (timeFormControl.invalid || formControl.invalid)\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n <input matInput #matInput type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"timeFormControl\"\n autocomplete=\"off\"\n min=\"0\" max=\"23\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.TIME_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keyup.arrowdown)=\"openTimePicker($event)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n <input matInput #matInput type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"timeFormControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"timeFormControl\"\n hidden\n [ngxTimepicker]=\"timePicker\"\n [format]=\"24\">\n\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && !mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePicker($event)\" >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePickerIfMobile($event)\">\n <mat-icon>access_time</mat-icon>\n </button>\n\n <ngx-material-timepicker #timePicker [@.disabled]=\"true\"\n (timeSet)=\"onTimePickerChange($event)\"\n [ESC]=\"!mobile\"\n [defaultTime]=\"'00:00'\"\n [cancelBtnTmpl]=\"timePickerCancelButton\"\n [confirmBtnTmpl]=\"timePickerOkButton\"\n [preventOverlayClick]=\"mobile\"\n [enableKeyboardInput]=\"false\"\n [disableAnimation]=\"true\">\n <!-- cancel button -->\n <ng-template #timePickerCancelButton>\n <ion-button fill=\"clear\" color=\"dark\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n </ng-template>\n\n <!-- confirm button -->\n <ng-template #timePickerOkButton>\n <ion-button fill=\"solid\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ng-template>\n\n </ngx-material-timepicker>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n",
|
|
4679
4701
|
providers: [
|
|
4680
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
4702
|
+
DEFAULT_VALUE_ACCESSOR$4,
|
|
4681
4703
|
],
|
|
4682
4704
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
4683
4705
|
styles: [":host{display:inline-block;width:100%;position:relative;--ion-grid-column-padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}mat-form-field .datetime-md{padding:0!important}ion-row.no-wrap{flex-wrap:nowrap}ion-col.day{min-width:100px}ion-col.day .mat-form-field-subscript-wrapper{overflow:visible;right:-64px;width:calc(100% + 64px)}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}ion-col.hour{min-width:55px;max-width:65px}ion-col.hour mat-form-field{width:100%}ion-col.hour mat-form-field input[type=text],ion-col.hour mat-form-field mat-label{text-align:left;min-width:50px}mat-form-field.mat-form-field-disabled ion-col.day{min-width:100px}.hour .mat-form-field-label{max-width:40px}.hour mat-form-field.mat-form-field-should-float .mat-form-field-placeholder{max-width:inherit}mat-error{text-align:right;width:100%}"]
|
|
@@ -4716,10 +4738,10 @@
|
|
|
4716
4738
|
useExisting: i0.forwardRef(function () { return MatDateShort; }),
|
|
4717
4739
|
multi: true
|
|
4718
4740
|
};
|
|
4719
|
-
var DAY_MASK
|
|
4720
|
-
var noop$
|
|
4741
|
+
var DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
4742
|
+
var noop$3 = function () {
|
|
4721
4743
|
};
|
|
4722
|
-
var ɵ0$
|
|
4744
|
+
var ɵ0$6 = noop$3;
|
|
4723
4745
|
var MatDateShort = /** @class */ (function () {
|
|
4724
4746
|
function MatDateShort(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4725
4747
|
this.dateAdapter = dateAdapter;
|
|
@@ -4728,11 +4750,11 @@
|
|
|
4728
4750
|
this.cd = cd;
|
|
4729
4751
|
this.keyboard = keyboard;
|
|
4730
4752
|
this.formGroupDir = formGroupDir;
|
|
4731
|
-
this._onChangeCallback = noop$
|
|
4732
|
-
this._onTouchedCallback = noop$
|
|
4753
|
+
this._onChangeCallback = noop$3;
|
|
4754
|
+
this._onTouchedCallback = noop$3;
|
|
4733
4755
|
this.writing = true;
|
|
4734
4756
|
this.disabling = false;
|
|
4735
|
-
this.dayMask = DAY_MASK
|
|
4757
|
+
this.dayMask = DAY_MASK;
|
|
4736
4758
|
this.disabled = false;
|
|
4737
4759
|
this.floatLabel = 'auto';
|
|
4738
4760
|
this.readonly = false;
|
|
@@ -5080,16 +5102,16 @@
|
|
|
5080
5102
|
},] }
|
|
5081
5103
|
];
|
|
5082
5104
|
|
|
5083
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
5105
|
+
var DEFAULT_VALUE_ACCESSOR$2 = {
|
|
5084
5106
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5085
5107
|
useExisting: i0.forwardRef(function () { return MatDuration; }),
|
|
5086
5108
|
multi: true
|
|
5087
5109
|
};
|
|
5088
5110
|
var HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
5089
|
-
var HOUR_MASK
|
|
5090
|
-
var noop$
|
|
5111
|
+
var HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5112
|
+
var noop$2 = function () {
|
|
5091
5113
|
};
|
|
5092
|
-
var ɵ0$5 = noop$
|
|
5114
|
+
var ɵ0$5 = noop$2;
|
|
5093
5115
|
var MatDuration = /** @class */ (function () {
|
|
5094
5116
|
function MatDuration(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
5095
5117
|
this.dateAdapter = dateAdapter;
|
|
@@ -5098,11 +5120,11 @@
|
|
|
5098
5120
|
this.cd = cd;
|
|
5099
5121
|
this.formGroupDir = formGroupDir;
|
|
5100
5122
|
this._subscription = new rxjs.Subscription();
|
|
5101
|
-
this._onChangeCallback = noop$
|
|
5102
|
-
this._onTouchedCallback = noop$
|
|
5123
|
+
this._onChangeCallback = noop$2;
|
|
5124
|
+
this._onTouchedCallback = noop$2;
|
|
5103
5125
|
this.writing = true;
|
|
5104
5126
|
this.disabling = false;
|
|
5105
|
-
this.hourMask = HOUR_MASK
|
|
5127
|
+
this.hourMask = HOUR_MASK;
|
|
5106
5128
|
this.disabled = false;
|
|
5107
5129
|
this.floatLabel = 'auto';
|
|
5108
5130
|
this.readonly = false;
|
|
@@ -5295,7 +5317,7 @@
|
|
|
5295
5317
|
selector: 'mat-duration-field',
|
|
5296
5318
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{ formControl.value|duration }}</ion-text>\n</mat-form-field>\n\n<!-- writable -->\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"formControl.disabled\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput type=\"text\"\n autocomplete=\"off\"\n [formControl]=\"textControl\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.DURATION_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keydown.tab)=\"moveCaretToSeparator($event, true)\"\n (keydown.shift.tab)=\"moveCaretToSeparator($event, false)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n\n <!-- errors -->\n <mat-error *ngIf=\"!formControl.hasError('required') && textControl.hasError('pattern')\" translate>ERROR.FIELD_NOT_VALID_PATTERN</mat-error>\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('min')\">\n {{(compact ? 'ERROR.FIELD_MIN_COMPACT' : 'ERROR.FIELD_MIN') | translate:formControl.errors.min }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('max')\">\n {{(compact ? 'ERROR.FIELD_MAX_COMPACT' : 'ERROR.FIELD_MAX') | translate:formControl.errors.max }}</mat-error>\n\n <ng-content select=\"mat-error\"></ng-content>\n </mat-form-field>\n</ng-template>\n\n",
|
|
5297
5319
|
providers: [
|
|
5298
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5320
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
5299
5321
|
],
|
|
5300
5322
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
5301
5323
|
styles: [":host{display:inline-block;min-width:140px;position:relative;--ion-grid-column-padding:0}:host,mat-form-field{width:100%}mat-form-field .mat-form-field-subscript-wrapper{overflow:visible;top:100%}mat-form-field .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}mat-form-field .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}mat-error{text-align:right;width:100%}"]
|
|
@@ -5355,22 +5377,22 @@
|
|
|
5355
5377
|
},] }
|
|
5356
5378
|
];
|
|
5357
5379
|
|
|
5358
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
5380
|
+
var DEFAULT_VALUE_ACCESSOR$1 = {
|
|
5359
5381
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5360
5382
|
useExisting: i0.forwardRef(function () { return MatBooleanField; }),
|
|
5361
5383
|
multi: true
|
|
5362
5384
|
};
|
|
5363
|
-
var noop$
|
|
5385
|
+
var noop$1 = function () {
|
|
5364
5386
|
};
|
|
5365
|
-
var ɵ0$
|
|
5387
|
+
var ɵ0$4 = noop$1;
|
|
5366
5388
|
var MatBooleanField = /** @class */ (function () {
|
|
5367
5389
|
function MatBooleanField(translate, formBuilder, cd, formGroupDir) {
|
|
5368
5390
|
this.translate = translate;
|
|
5369
5391
|
this.formBuilder = formBuilder;
|
|
5370
5392
|
this.cd = cd;
|
|
5371
5393
|
this.formGroupDir = formGroupDir;
|
|
5372
|
-
this._onChangeCallback = noop$
|
|
5373
|
-
this._onTouchedCallback = noop$
|
|
5394
|
+
this._onChangeCallback = noop$1;
|
|
5395
|
+
this._onTouchedCallback = noop$1;
|
|
5374
5396
|
this._writing = false;
|
|
5375
5397
|
this.showRadio = false;
|
|
5376
5398
|
this.disabled = false;
|
|
@@ -5556,7 +5578,7 @@
|
|
|
5556
5578
|
selector: 'mat-boolean-field',
|
|
5557
5579
|
template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button> \n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label> </ion-label>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===undefined\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </ng-container>\n\n <div class=\"cdk-visually-hidden\">\n <div #suffix><ng-content select=\"[matSuffix]\"></ng-content></div>\n </div>\n\n</ng-template>\n\n\n",
|
|
5558
5580
|
providers: [
|
|
5559
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5581
|
+
DEFAULT_VALUE_ACCESSOR$1
|
|
5560
5582
|
],
|
|
5561
5583
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
5562
5584
|
styles: [":host{width:100%}.mat-form-field.mat-boolean-field-radio{margin-top:-2px}.mat-form-field.mat-boolean-field-button{margin-top:-4px}.mat-form-field .mat-form-field-buttons{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}.mat-form-field .mat-form-field-buttons .mat-form-field-button{--flex-basis:calc(100% / var(--buttons-col-count, 2));flex:0 1 var(--flex-basis);max-width:min(var(--flex-basis),150px);white-space:normal;padding:0 2px;height:40px}"]
|
|
@@ -5645,6 +5667,7 @@
|
|
|
5645
5667
|
return MatNumpadEvent;
|
|
5646
5668
|
}(KeyboardEvent));
|
|
5647
5669
|
|
|
5670
|
+
exports.AnimationState = void 0;
|
|
5648
5671
|
(function (AnimationState) {
|
|
5649
5672
|
AnimationState["ENTER"] = "enter";
|
|
5650
5673
|
AnimationState["ENTER_INPUT"] = "enter-input";
|
|
@@ -5812,7 +5835,7 @@
|
|
|
5812
5835
|
};
|
|
5813
5836
|
return MatNumpadDomService;
|
|
5814
5837
|
}());
|
|
5815
|
-
MatNumpadDomService.ɵprov =
|
|
5838
|
+
MatNumpadDomService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0__namespace.ɵɵinject(i0__namespace.ComponentFactoryResolver), i0__namespace.ɵɵinject(i0__namespace.ApplicationRef), i0__namespace.ɵɵinject(i0__namespace.INJECTOR), i0__namespace.ɵɵinject(i1__namespace$3.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
5816
5839
|
MatNumpadDomService.decorators = [
|
|
5817
5840
|
{ type: i0.Injectable, args: [{
|
|
5818
5841
|
providedIn: 'root'
|
|
@@ -6218,7 +6241,7 @@
|
|
|
6218
6241
|
},] }
|
|
6219
6242
|
];
|
|
6220
6243
|
|
|
6221
|
-
var DEFAULT_VALUE_ACCESSOR
|
|
6244
|
+
var DEFAULT_VALUE_ACCESSOR = {
|
|
6222
6245
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6223
6246
|
useExisting: i0.forwardRef(function () { return MatSwipeField; }),
|
|
6224
6247
|
multi: true
|
|
@@ -6538,7 +6561,7 @@
|
|
|
6538
6561
|
{ type: i0.Component, args: [{
|
|
6539
6562
|
selector: 'mat-swipe-field',
|
|
6540
6563
|
template: "<mat-form-field [floatLabel]=\"showSlides && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [class]=\"classList\"\n [class.mat-form-field-disabled]=\"disabled\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n </mat-label>\n <input matInput #fakeInput type=\"text\"\n [formControl]=\"formControl\"\n [readonly]=\"true\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showSlides\"\n [tabindex]=\"tabindex\">\n\n <div class=\"slides-container\" [class.hidden]=\"!showSlides\">\n <ion-slides #slides\n [options]=\"slidesOptions\"\n (ionSlidesDidLoad)=\"slidesLoaded()\"\n (ionSlideReachStart)=\"reachStart(true)\"\n (ionSlideReachEnd)=\"reachEnd(true)\"\n (ionSlideNextEnd)=\"reachStart(false)\"\n (ionSlidePrevEnd)=\"reachEnd(false)\"\n (ionSlideDidChange)=\"slideChanged()\"\n >\n <ion-slide *ngFor=\"let item of $items | async\">\n <ion-label>{{ displayWith(item) }}</ion-label>\n </ion-slide>\n\n </ion-slides>\n </div>\n\n <button #prevButton\n mat-icon-button\n type=\"button\"\n class=\"button-prev\"\n [hidden]=\"!showSlides\"\n [disabled]=\"previousDisabled\"\n (click)=\"previous()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button #nextButton\n mat-icon-button\n type=\"button\"\n class=\"button-next\"\n [hidden]=\"!showSlides\"\n [disabled]=\"nextDisabled\"\n (click)=\"next()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n\n</mat-form-field>\n",
|
|
6541
|
-
providers: [DEFAULT_VALUE_ACCESSOR
|
|
6564
|
+
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
6542
6565
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6543
6566
|
styles: [":host{display:inline-block;width:100%;position:relative}input.hidden{display:none}.slides-container .swiper-slide{font-size:16px!important}.slides-container.hidden{visibility:hidden;height:0!important}.button-next,.button-prev{position:absolute;top:calc(50% - 20px);z-index:10}.button-prev{left:0;right:auto}.button-next{left:auto;right:0}"]
|
|
6544
6567
|
},] }
|
|
@@ -7096,7 +7119,7 @@
|
|
|
7096
7119
|
};
|
|
7097
7120
|
return ProgressBarService;
|
|
7098
7121
|
}());
|
|
7099
|
-
ProgressBarService.ɵprov =
|
|
7122
|
+
ProgressBarService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
7100
7123
|
ProgressBarService.decorators = [
|
|
7101
7124
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
7102
7125
|
];
|
|
@@ -7143,7 +7166,7 @@
|
|
|
7143
7166
|
};
|
|
7144
7167
|
return AppGestureConfig;
|
|
7145
7168
|
}(i1$6.HammerGestureConfig));
|
|
7146
|
-
AppGestureConfig.ɵprov =
|
|
7169
|
+
AppGestureConfig.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
7147
7170
|
AppGestureConfig.decorators = [
|
|
7148
7171
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
7149
7172
|
];
|
|
@@ -7408,7 +7431,7 @@
|
|
|
7408
7431
|
};
|
|
7409
7432
|
return MatPaginatorI18n;
|
|
7410
7433
|
}(paginator.MatPaginatorIntl));
|
|
7411
|
-
MatPaginatorI18n.ɵprov =
|
|
7434
|
+
MatPaginatorI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
7412
7435
|
MatPaginatorI18n.decorators = [
|
|
7413
7436
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
7414
7437
|
];
|
|
@@ -7500,17 +7523,17 @@
|
|
|
7500
7523
|
return rgbArrayToHex(rgb.map(function (v) { return 255 - v; }));
|
|
7501
7524
|
}
|
|
7502
7525
|
|
|
7503
|
-
var noop
|
|
7526
|
+
var noop = function () {
|
|
7504
7527
|
};
|
|
7505
|
-
var ɵ0$
|
|
7528
|
+
var ɵ0$3 = noop;
|
|
7506
7529
|
var AppFormField = /** @class */ (function () {
|
|
7507
7530
|
function AppFormField(translate, cd, injector, formGroupDir) {
|
|
7508
7531
|
this.translate = translate;
|
|
7509
7532
|
this.cd = cd;
|
|
7510
7533
|
this.injector = injector;
|
|
7511
7534
|
this.formGroupDir = formGroupDir;
|
|
7512
|
-
this._onChangeCallback = noop
|
|
7513
|
-
this._onTouchedCallback = noop
|
|
7535
|
+
this._onChangeCallback = noop;
|
|
7536
|
+
this._onTouchedCallback = noop;
|
|
7514
7537
|
this.readonly = false;
|
|
7515
7538
|
this.compact = false;
|
|
7516
7539
|
this.floatLabel = 'auto';
|
|
@@ -7969,7 +7992,7 @@
|
|
|
7969
7992
|
};
|
|
7970
7993
|
return AudioProvider;
|
|
7971
7994
|
}());
|
|
7972
|
-
AudioProvider.ɵprov =
|
|
7995
|
+
AudioProvider.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace.NativeAudio, 8), i0__namespace.ɵɵinject(i3__namespace.Vibration, 8), i0__namespace.ɵɵinject(i4__namespace.AudioManagement, 8)); }, token: AudioProvider, providedIn: "root" });
|
|
7973
7996
|
AudioProvider.decorators = [
|
|
7974
7997
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
7975
7998
|
];
|
|
@@ -8069,7 +8092,7 @@
|
|
|
8069
8092
|
};
|
|
8070
8093
|
return Hotkeys;
|
|
8071
8094
|
}());
|
|
8072
|
-
Hotkeys.ɵprov =
|
|
8095
|
+
Hotkeys.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(i0__namespace.ɵɵinject(i1__namespace$5.EventManager), i0__namespace.ɵɵinject(i2__namespace$1.MatDialog), i0__namespace.ɵɵinject(i1__namespace$3.DOCUMENT), i0__namespace.ɵɵinject(i1__namespace$4.ModalController)); }, token: Hotkeys, providedIn: "root" });
|
|
8073
8096
|
Hotkeys.decorators = [
|
|
8074
8097
|
{ type: i0.Injectable, args: [{
|
|
8075
8098
|
providedIn: 'root'
|
|
@@ -8273,7 +8296,7 @@
|
|
|
8273
8296
|
return Base64ImageReader;
|
|
8274
8297
|
}());
|
|
8275
8298
|
|
|
8276
|
-
var uuidv4 = uuidv4Imported__namespace;
|
|
8299
|
+
var uuidv4$1 = uuidv4Imported__namespace;
|
|
8277
8300
|
var FileService = /** @class */ (function () {
|
|
8278
8301
|
function FileService(platform,
|
|
8279
8302
|
//private transfer: FileTransfer,
|
|
@@ -8319,7 +8342,7 @@
|
|
|
8319
8342
|
lastSlashIndex = source.lastIndexOf('/');
|
|
8320
8343
|
if (lastSlashIndex === -1)
|
|
8321
8344
|
throw new Error('Invalid URL: ' + source);
|
|
8322
|
-
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
8345
|
+
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
|
|
8323
8346
|
if (!(responseType === 'file' && this.canUseFileSystem)) return [3 /*break*/, 4];
|
|
8324
8347
|
console.warn("WARN: [file] Fetching image {" + source + "} in local file...");
|
|
8325
8348
|
targetFilePath = this._imageDirectory + fileName;
|
|
@@ -8382,7 +8405,7 @@
|
|
|
8382
8405
|
};
|
|
8383
8406
|
return FileService;
|
|
8384
8407
|
}());
|
|
8385
|
-
FileService.ɵprov =
|
|
8408
|
+
FileService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace$2.HttpClient), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
8386
8409
|
FileService.decorators = [
|
|
8387
8410
|
{ type: i0.Injectable, args: [{
|
|
8388
8411
|
providedIn: 'root',
|
|
@@ -8545,7 +8568,7 @@
|
|
|
8545
8568
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
8546
8569
|
|
|
8547
8570
|
var scrypt = require('scrypt-async');
|
|
8548
|
-
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
8571
|
+
var sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
8549
8572
|
var sha512 = require('hash.js/lib/hash/sha/512');
|
|
8550
8573
|
var nacl = {
|
|
8551
8574
|
sign: tweetnacl.sign,
|
|
@@ -8651,7 +8674,7 @@
|
|
|
8651
8674
|
* Hash (using SHA256) a message
|
|
8652
8675
|
*/
|
|
8653
8676
|
CryptoService.prototype.sha256 = function (message) {
|
|
8654
|
-
return sha256().update(message).digest('hex');
|
|
8677
|
+
return sha256$1().update(message).digest('hex');
|
|
8655
8678
|
};
|
|
8656
8679
|
/**
|
|
8657
8680
|
* Hash (using SHA512) a message
|
|
@@ -8665,7 +8688,7 @@
|
|
|
8665
8688
|
};
|
|
8666
8689
|
return CryptoService;
|
|
8667
8690
|
}());
|
|
8668
|
-
CryptoService.ɵprov =
|
|
8691
|
+
CryptoService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
8669
8692
|
CryptoService.decorators = [
|
|
8670
8693
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
8671
8694
|
];
|
|
@@ -10078,7 +10101,7 @@
|
|
|
10078
10101
|
};
|
|
10079
10102
|
return LocalSettingsService;
|
|
10080
10103
|
}());
|
|
10081
|
-
LocalSettingsService.ɵprov =
|
|
10104
|
+
LocalSettingsService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_LOCAL_SETTINGS, 8), i0__namespace.ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
|
|
10082
10105
|
LocalSettingsService.decorators = [
|
|
10083
10106
|
{ type: i0.Injectable, args: [{
|
|
10084
10107
|
providedIn: 'root',
|
|
@@ -10224,6 +10247,8 @@
|
|
|
10224
10247
|
switch (type) {
|
|
10225
10248
|
case ngx$4.Connection.NONE:
|
|
10226
10249
|
return 'none';
|
|
10250
|
+
case ngx$4.Connection.ETHERNET:
|
|
10251
|
+
return 'ethernet';
|
|
10227
10252
|
case ngx$4.Connection.WIFI:
|
|
10228
10253
|
return 'wifi';
|
|
10229
10254
|
case ngx$4.Connection.CELL:
|
|
@@ -10231,8 +10256,6 @@
|
|
|
10231
10256
|
case ngx$4.Connection.CELL_3G:
|
|
10232
10257
|
case ngx$4.Connection.CELL_4G:
|
|
10233
10258
|
return 'cell';
|
|
10234
|
-
case ngx$4.Connection.ETHERNET:
|
|
10235
|
-
return 'ethernet';
|
|
10236
10259
|
case ngx$4.Connection.UNKNOWN:
|
|
10237
10260
|
return 'unknown';
|
|
10238
10261
|
default:
|
|
@@ -10923,7 +10946,7 @@
|
|
|
10923
10946
|
};
|
|
10924
10947
|
return NetworkService;
|
|
10925
10948
|
}());
|
|
10926
|
-
NetworkService.ɵprov =
|
|
10949
|
+
NetworkService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(i0__namespace.ɵɵinject(i1__namespace$3.DOCUMENT), i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i1__namespace$4.ModalController), i0__namespace.ɵɵinject(CryptoService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(LocalSettingsService), i0__namespace.ɵɵinject(i6__namespace.CacheService), i0__namespace.ɵɵinject(i2__namespace$2.HttpClient), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(i9__namespace.Network, 8), i0__namespace.ɵɵinject(i10__namespace.SplashScreen, 8), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService, 8), i0__namespace.ɵɵinject(i1__namespace$4.ToastController, 8)); }, token: NetworkService, providedIn: "root" });
|
|
10927
10950
|
NetworkService.decorators = [
|
|
10928
10951
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
10929
10952
|
];
|
|
@@ -10943,7 +10966,7 @@
|
|
|
10943
10966
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] }
|
|
10944
10967
|
]; };
|
|
10945
10968
|
|
|
10946
|
-
var ErrorCodes = {
|
|
10969
|
+
var ErrorCodes$2 = {
|
|
10947
10970
|
UNKNOWN_ERROR: 0,
|
|
10948
10971
|
LOAD_ACCOUNT_ERROR: 1,
|
|
10949
10972
|
BAD_PASSWORD: 2,
|
|
@@ -11351,7 +11374,7 @@
|
|
|
11351
11374
|
case 13:
|
|
11352
11375
|
err_1 = _a.sent();
|
|
11353
11376
|
console.error(err_1);
|
|
11354
|
-
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
|
|
11377
|
+
throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
|
|
11355
11378
|
case 14:
|
|
11356
11379
|
// Emit update event
|
|
11357
11380
|
if (!opts || opts.emitEvent !== false) {
|
|
@@ -12111,7 +12134,7 @@
|
|
|
12111
12134
|
}());
|
|
12112
12135
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
12113
12136
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
12114
|
-
EntitiesStorage.ɵprov =
|
|
12137
|
+
EntitiesStorage.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(ProgressBarService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
|
|
12115
12138
|
EntitiesStorage.decorators = [
|
|
12116
12139
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
12117
12140
|
];
|
|
@@ -12228,10 +12251,10 @@
|
|
|
12228
12251
|
function referentialsToString(values, properties, separator) {
|
|
12229
12252
|
return (values || []).map(function (v) { return referentialToString(v, properties); }).join(separator || ', ');
|
|
12230
12253
|
}
|
|
12231
|
-
var ɵ0$
|
|
12254
|
+
var ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
12232
12255
|
var StatusList = Object.freeze([
|
|
12233
12256
|
{
|
|
12234
|
-
id: ɵ0$
|
|
12257
|
+
id: ɵ0$2,
|
|
12235
12258
|
icon: 'checkmark',
|
|
12236
12259
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
12237
12260
|
},
|
|
@@ -12534,7 +12557,7 @@
|
|
|
12534
12557
|
(data.lastName || '')) || '';
|
|
12535
12558
|
}
|
|
12536
12559
|
|
|
12537
|
-
var uuidv4
|
|
12560
|
+
var uuidv4 = uuidv4Imported__namespace;
|
|
12538
12561
|
var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
12539
12562
|
var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
12540
12563
|
/**
|
|
@@ -12578,7 +12601,7 @@
|
|
|
12578
12601
|
// Skip if not tracked
|
|
12579
12602
|
if (!context || !context.tracked)
|
|
12580
12603
|
return forward(operation);
|
|
12581
|
-
var id = context.serializationKey || uuidv4
|
|
12604
|
+
var id = context.serializationKey || uuidv4();
|
|
12582
12605
|
console.debug("[apollo-tracker-link] Watching tracked query {" + operation.operationName + "#" + id + "}");
|
|
12583
12606
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
12584
12607
|
var cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -13251,18 +13274,19 @@
|
|
|
13251
13274
|
mutationLinks = void 0;
|
|
13252
13275
|
// Add queue to store tracked queries, when offline
|
|
13253
13276
|
if (enableTrackMutationQueries) {
|
|
13254
|
-
serializingLink = new SerializingLink__default[
|
|
13277
|
+
serializingLink = new SerializingLink__default["default"]();
|
|
13255
13278
|
trackerLink = createTrackerLink({
|
|
13256
13279
|
storage: storage,
|
|
13257
13280
|
onNetworkStatusChange: this._networkStatusChanged$,
|
|
13258
13281
|
debounce: 1000,
|
|
13259
13282
|
debug: true
|
|
13260
13283
|
});
|
|
13261
|
-
queueLink_1 = new QueueLink__default[
|
|
13284
|
+
queueLink_1 = new QueueLink__default["default"]();
|
|
13262
13285
|
this._subscription.add(this._networkStatusChanged$
|
|
13263
13286
|
.subscribe(function (type) {
|
|
13287
|
+
var offline = type === 'none';
|
|
13264
13288
|
// Network is offline: start buffering into queue
|
|
13265
|
-
if (
|
|
13289
|
+
if (offline) {
|
|
13266
13290
|
console.info('[graphql] offline mode: enable mutations buffer');
|
|
13267
13291
|
queueLink_1.close();
|
|
13268
13292
|
}
|
|
@@ -13273,7 +13297,7 @@
|
|
|
13273
13297
|
}
|
|
13274
13298
|
}));
|
|
13275
13299
|
mutationLinks = [
|
|
13276
|
-
loggerLink__default[
|
|
13300
|
+
loggerLink__default["default"],
|
|
13277
13301
|
queueLink_1,
|
|
13278
13302
|
trackerLink,
|
|
13279
13303
|
queueLink_1,
|
|
@@ -13389,7 +13413,7 @@
|
|
|
13389
13413
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
13390
13414
|
|| this.toAppError(err.networkError)
|
|
13391
13415
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
13392
|
-
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
13416
|
+
|| this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
|
|
13393
13417
|
// If graphQL: try to convert the first error found
|
|
13394
13418
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
13395
13419
|
|| this.toAppError(err)
|
|
@@ -13397,7 +13421,7 @@
|
|
|
13397
13421
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
13398
13422
|
|| err;
|
|
13399
13423
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
13400
|
-
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
13424
|
+
if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
13401
13425
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
13402
13426
|
this.onNetworkError.next(error);
|
|
13403
13427
|
}
|
|
@@ -13433,7 +13457,7 @@
|
|
|
13433
13457
|
return 'ERROR.UNAUTHORIZED';
|
|
13434
13458
|
case ServerErrorCodes.FORBIDDEN:
|
|
13435
13459
|
return 'ERROR.FORBIDDEN';
|
|
13436
|
-
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
13460
|
+
case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
|
|
13437
13461
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
13438
13462
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
13439
13463
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -13478,7 +13502,7 @@
|
|
|
13478
13502
|
};
|
|
13479
13503
|
return GraphqlService;
|
|
13480
13504
|
}());
|
|
13481
|
-
GraphqlService.ɵprov =
|
|
13505
|
+
GraphqlService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace$3.Apollo), i0__namespace.ɵɵinject(i3__namespace$2.HttpLink), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(CryptoService), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
|
|
13482
13506
|
GraphqlService.decorators = [
|
|
13483
13507
|
{ type: i0.Injectable, args: [{
|
|
13484
13508
|
providedIn: 'root'
|
|
@@ -13495,7 +13519,7 @@
|
|
|
13495
13519
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
13496
13520
|
]; };
|
|
13497
13521
|
|
|
13498
|
-
var sha256
|
|
13522
|
+
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
13499
13523
|
var BaseGraphqlServiceOptions = /** @class */ (function () {
|
|
13500
13524
|
function BaseGraphqlServiceOptions() {
|
|
13501
13525
|
}
|
|
@@ -13662,8 +13686,8 @@
|
|
|
13662
13686
|
};
|
|
13663
13687
|
/* -- protected methods -- */
|
|
13664
13688
|
BaseGraphqlService.prototype.computeMutableWatchQueryId = function (opts) {
|
|
13665
|
-
var queryName = opts.queryName || sha256
|
|
13666
|
-
var variablesKey = opts.variables && sha256
|
|
13689
|
+
var queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
13690
|
+
var variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
13667
13691
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
13668
13692
|
};
|
|
13669
13693
|
BaseGraphqlService.prototype.findMutableWatchQueries = function (opts) {
|
|
@@ -13729,17 +13753,17 @@
|
|
|
13729
13753
|
/* ------------------------------------
|
|
13730
13754
|
* GraphQL queries
|
|
13731
13755
|
* ------------------------------------*/
|
|
13732
|
-
var Fragments = {
|
|
13733
|
-
account: core.gql(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\n "], ["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\n "])))
|
|
13756
|
+
var Fragments$1 = {
|
|
13757
|
+
account: core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\n "], ["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }\n "])))
|
|
13734
13758
|
};
|
|
13735
13759
|
// Load account query
|
|
13736
|
-
var LoadQuery = core.gql(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments.account);
|
|
13760
|
+
var LoadQuery$1 = core.gql(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments$1.account);
|
|
13737
13761
|
// Check email query
|
|
13738
|
-
var IsEmailExistsQuery = core.gql(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"], ["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"])));
|
|
13762
|
+
var IsEmailExistsQuery = core.gql(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"], ["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"])));
|
|
13739
13763
|
// Save (create or update) account mutation
|
|
13740
|
-
var SaveMutation = core.gql(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments.account);
|
|
13764
|
+
var SaveMutation$1 = core.gql(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments$1.account);
|
|
13741
13765
|
// Create account mutation
|
|
13742
|
-
var CreateMutation = core.gql(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments.account);
|
|
13766
|
+
var CreateMutation = core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"], ["\n mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n"])), Fragments$1.account);
|
|
13743
13767
|
// Sent confirmation email
|
|
13744
13768
|
var SendConfirmEmailMutation = core.gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"], ["\n mutation sendAccountConfirmationEmail($email:String, $locale:String){\n sendAccountConfirmationEmail(email: $email, locale: $locale)\n }\n"])));
|
|
13745
13769
|
// Confirm account email
|
|
@@ -14138,7 +14162,7 @@
|
|
|
14138
14162
|
error_3 = _b.sent();
|
|
14139
14163
|
console.error(error_3);
|
|
14140
14164
|
this.resetData();
|
|
14141
|
-
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
14165
|
+
throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
14142
14166
|
case 4:
|
|
14143
14167
|
// Store pubkey+keypair
|
|
14144
14168
|
this.data.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -14174,7 +14198,7 @@
|
|
|
14174
14198
|
return [3 /*break*/, 18];
|
|
14175
14199
|
case 11:
|
|
14176
14200
|
err_1 = _b.sent();
|
|
14177
|
-
if (!(err_1 && +(err_1.code) === ErrorCodes.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
|
|
14201
|
+
if (!(err_1 && +(err_1.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
|
|
14178
14202
|
if (!(data.username.indexOf('@') !== -1)) return [3 /*break*/, 16];
|
|
14179
14203
|
isEmailExists = void 0;
|
|
14180
14204
|
_b.label = 12;
|
|
@@ -14190,12 +14214,12 @@
|
|
|
14190
14214
|
case 15:
|
|
14191
14215
|
// Email not exists (no account)
|
|
14192
14216
|
if (!isEmailExists) {
|
|
14193
|
-
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
14217
|
+
throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
14194
14218
|
}
|
|
14195
14219
|
_b.label = 16;
|
|
14196
14220
|
case 16:
|
|
14197
14221
|
// Email exists, so error = 'bad password'
|
|
14198
|
-
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
14222
|
+
throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
14199
14223
|
case 17: throw err_1; // resend the first error
|
|
14200
14224
|
case 18:
|
|
14201
14225
|
_b.trys.push([18, 20, , 21]);
|
|
@@ -14367,8 +14391,8 @@
|
|
|
14367
14391
|
_b.label = 3;
|
|
14368
14392
|
case 3: return [3 /*break*/, 6];
|
|
14369
14393
|
case 4: return [4 /*yield*/, this.graphql.query({
|
|
14370
|
-
query: LoadQuery,
|
|
14371
|
-
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
14394
|
+
query: LoadQuery$1,
|
|
14395
|
+
error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
14372
14396
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
14373
14397
|
})];
|
|
14374
14398
|
case 5:
|
|
@@ -14406,7 +14430,7 @@
|
|
|
14406
14430
|
case 1:
|
|
14407
14431
|
isEmailExists = _b.sent();
|
|
14408
14432
|
if (isEmailExists) {
|
|
14409
|
-
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
14433
|
+
throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
14410
14434
|
}
|
|
14411
14435
|
return [2 /*return*/];
|
|
14412
14436
|
}
|
|
@@ -14456,7 +14480,7 @@
|
|
|
14456
14480
|
locale: locale
|
|
14457
14481
|
},
|
|
14458
14482
|
error: {
|
|
14459
|
-
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
14483
|
+
code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
14460
14484
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
14461
14485
|
}
|
|
14462
14486
|
})];
|
|
@@ -14479,7 +14503,7 @@
|
|
|
14479
14503
|
code: code
|
|
14480
14504
|
},
|
|
14481
14505
|
error: {
|
|
14482
|
-
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
14506
|
+
code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
|
|
14483
14507
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
14484
14508
|
}
|
|
14485
14509
|
})];
|
|
@@ -14501,7 +14525,7 @@
|
|
|
14501
14525
|
interval: 10
|
|
14502
14526
|
},
|
|
14503
14527
|
error: {
|
|
14504
|
-
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
14528
|
+
code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
|
|
14505
14529
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
|
|
14506
14530
|
}
|
|
14507
14531
|
}).subscribe({
|
|
@@ -14647,7 +14671,7 @@
|
|
|
14647
14671
|
throw error_6;
|
|
14648
14672
|
console.error(error_6);
|
|
14649
14673
|
throw {
|
|
14650
|
-
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
14674
|
+
code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
|
|
14651
14675
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
14652
14676
|
};
|
|
14653
14677
|
case 4: return [2 /*return*/];
|
|
@@ -14821,7 +14845,7 @@
|
|
|
14821
14845
|
case 1:
|
|
14822
14846
|
existingAccount = _b.sent();
|
|
14823
14847
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
14824
|
-
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
14848
|
+
throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
14825
14849
|
}
|
|
14826
14850
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
14827
14851
|
_b.label = 2;
|
|
@@ -14830,10 +14854,10 @@
|
|
|
14830
14854
|
// User not allow to change his profiles
|
|
14831
14855
|
delete json.profiles;
|
|
14832
14856
|
return [4 /*yield*/, this.graphql.mutate({
|
|
14833
|
-
mutation: isNew ? CreateMutation : SaveMutation,
|
|
14857
|
+
mutation: isNew ? CreateMutation : SaveMutation$1,
|
|
14834
14858
|
variables: { data: json },
|
|
14835
14859
|
error: {
|
|
14836
|
-
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
14860
|
+
code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
|
|
14837
14861
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
14838
14862
|
}
|
|
14839
14863
|
})];
|
|
@@ -14861,7 +14885,7 @@
|
|
|
14861
14885
|
if (counter > 4) {
|
|
14862
14886
|
if (this._debug)
|
|
14863
14887
|
console.debug("[account] Failed to authentication on pod (after " + counter + " attempts)");
|
|
14864
|
-
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
14888
|
+
throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
14865
14889
|
}
|
|
14866
14890
|
if (!token) return [3 /*break*/, 2];
|
|
14867
14891
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -14870,7 +14894,7 @@
|
|
|
14870
14894
|
token: token
|
|
14871
14895
|
},
|
|
14872
14896
|
error: {
|
|
14873
|
-
code: ErrorCodes.UNAUTHORIZED,
|
|
14897
|
+
code: ErrorCodes$2.UNAUTHORIZED,
|
|
14874
14898
|
message: 'ERROR.UNAUTHORIZED'
|
|
14875
14899
|
},
|
|
14876
14900
|
fetchPolicy: 'no-cache'
|
|
@@ -14887,7 +14911,7 @@
|
|
|
14887
14911
|
_b.label = 2;
|
|
14888
14912
|
case 2:
|
|
14889
14913
|
challengeError = {
|
|
14890
|
-
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
14914
|
+
code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
|
|
14891
14915
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
14892
14916
|
};
|
|
14893
14917
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -14929,7 +14953,7 @@
|
|
|
14929
14953
|
};
|
|
14930
14954
|
return AccountService;
|
|
14931
14955
|
}(BaseGraphqlService));
|
|
14932
|
-
AccountService.ɵprov =
|
|
14956
|
+
AccountService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0__namespace.ɵɵinject(CryptoService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(LocalSettingsService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(FileService), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
14933
14957
|
AccountService.decorators = [
|
|
14934
14958
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
14935
14959
|
];
|
|
@@ -14942,7 +14966,7 @@
|
|
|
14942
14966
|
{ type: FileService },
|
|
14943
14967
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
14944
14968
|
]; };
|
|
14945
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
|
|
14969
|
+
var templateObject_1$4, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$2, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
|
|
14946
14970
|
|
|
14947
14971
|
var Software_1, Configuration_1;
|
|
14948
14972
|
// @dynamic
|
|
@@ -15194,13 +15218,13 @@
|
|
|
15194
15218
|
/* ------------------------------------
|
|
15195
15219
|
* GraphQL queries
|
|
15196
15220
|
* ------------------------------------*/
|
|
15197
|
-
var Fragments
|
|
15198
|
-
config: core.gql(templateObject_1$
|
|
15221
|
+
var Fragments = {
|
|
15222
|
+
config: core.gql(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "], ["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "])))
|
|
15199
15223
|
};
|
|
15200
|
-
var LoadQuery
|
|
15224
|
+
var LoadQuery = core.gql(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"], ["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"])), Fragments.config);
|
|
15201
15225
|
// Save (create or update) account mutation
|
|
15202
|
-
var SaveMutation
|
|
15203
|
-
var ClearCache = core.gql(templateObject_4$
|
|
15226
|
+
var SaveMutation = core.gql(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"], ["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"])), Fragments.config);
|
|
15227
|
+
var ClearCache = core.gql(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"], ["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"])));
|
|
15204
15228
|
var CacheStatistics = core.gql(templateObject_5$1 || (templateObject_5$1 = __makeTemplateObject(["\n query CacheStatistics {\n cacheStatistics\n }\n"], ["\n query CacheStatistics {\n cacheStatistics\n }\n"])));
|
|
15205
15229
|
var APP_CONFIG_OPTIONS = new i0.InjectionToken('defaultOptions');
|
|
15206
15230
|
var ConfigService = /** @class */ (function (_super) {
|
|
@@ -15293,12 +15317,12 @@
|
|
|
15293
15317
|
case 0:
|
|
15294
15318
|
now = Date.now();
|
|
15295
15319
|
console.debug('[config] Loading Pod configuration...');
|
|
15296
|
-
query = opts && opts.query || LoadQuery
|
|
15320
|
+
query = opts && opts.query || LoadQuery;
|
|
15297
15321
|
variables = opts && opts.variables || undefined;
|
|
15298
15322
|
return [4 /*yield*/, this.graphql.query({
|
|
15299
15323
|
query: query,
|
|
15300
15324
|
variables: variables,
|
|
15301
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15325
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15302
15326
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
15303
15327
|
})];
|
|
15304
15328
|
case 1:
|
|
@@ -15332,12 +15356,12 @@
|
|
|
15332
15356
|
console.debug('[config] Saving Pod configuration...', config);
|
|
15333
15357
|
json = config.asObject();
|
|
15334
15358
|
return [4 /*yield*/, this.graphql.mutate({
|
|
15335
|
-
mutation: SaveMutation
|
|
15359
|
+
mutation: SaveMutation,
|
|
15336
15360
|
variables: {
|
|
15337
15361
|
data: json
|
|
15338
15362
|
},
|
|
15339
15363
|
error: {
|
|
15340
|
-
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
15364
|
+
code: ErrorCodes$2.SAVE_CONFIG_ERROR,
|
|
15341
15365
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
15342
15366
|
}
|
|
15343
15367
|
})];
|
|
@@ -15372,7 +15396,7 @@
|
|
|
15372
15396
|
return [4 /*yield*/, this.graphql.query({
|
|
15373
15397
|
query: CacheStatistics,
|
|
15374
15398
|
variables: null,
|
|
15375
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15399
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15376
15400
|
fetchPolicy: 'network-only'
|
|
15377
15401
|
})];
|
|
15378
15402
|
case 1:
|
|
@@ -15396,7 +15420,7 @@
|
|
|
15396
15420
|
return [4 /*yield*/, this.graphql.query({
|
|
15397
15421
|
query: ClearCache,
|
|
15398
15422
|
variables: variables,
|
|
15399
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15423
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15400
15424
|
fetchPolicy: 'network-only'
|
|
15401
15425
|
})];
|
|
15402
15426
|
case 1:
|
|
@@ -15597,7 +15621,7 @@
|
|
|
15597
15621
|
};
|
|
15598
15622
|
return ConfigService;
|
|
15599
15623
|
}(BaseGraphqlService));
|
|
15600
|
-
ConfigService.ɵprov =
|
|
15624
|
+
ConfigService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(FileService), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
15601
15625
|
ConfigService.decorators = [
|
|
15602
15626
|
{ type: i0.Injectable, args: [{
|
|
15603
15627
|
providedIn: 'root',
|
|
@@ -15615,11 +15639,11 @@
|
|
|
15615
15639
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
|
|
15616
15640
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
15617
15641
|
]; };
|
|
15618
|
-
var templateObject_1$
|
|
15642
|
+
var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2, templateObject_5$1;
|
|
15619
15643
|
|
|
15620
|
-
var moment$
|
|
15644
|
+
var moment$2 = momentImported__namespace;
|
|
15621
15645
|
var PlatformService = /** @class */ (function () {
|
|
15622
|
-
function PlatformService(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser) {
|
|
15646
|
+
function PlatformService(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
|
|
15623
15647
|
this.platform = platform;
|
|
15624
15648
|
this.cdkPlatform = cdkPlatform;
|
|
15625
15649
|
this.toastController = toastController;
|
|
@@ -15638,6 +15662,7 @@
|
|
|
15638
15662
|
this.keyboard = keyboard;
|
|
15639
15663
|
this.splashScreen = splashScreen;
|
|
15640
15664
|
this.browser = browser;
|
|
15665
|
+
this.downloader = downloader;
|
|
15641
15666
|
this._started = false;
|
|
15642
15667
|
this._debug = !environment.production;
|
|
15643
15668
|
if (this._debug)
|
|
@@ -15668,6 +15693,9 @@
|
|
|
15668
15693
|
PlatformService.prototype.isWebOrDesktop = function () {
|
|
15669
15694
|
return !this.platform.is('mobile') || this.platform.is('mobileweb');
|
|
15670
15695
|
};
|
|
15696
|
+
PlatformService.prototype.isAndroidCordova = function () {
|
|
15697
|
+
return this._android && this._cordova;
|
|
15698
|
+
};
|
|
15671
15699
|
PlatformService.prototype.width = function () {
|
|
15672
15700
|
return this.platform.width();
|
|
15673
15701
|
};
|
|
@@ -15687,6 +15715,8 @@
|
|
|
15687
15715
|
this._startPromise = this.platform.ready()
|
|
15688
15716
|
.then(function () {
|
|
15689
15717
|
_this._mobile = _this.platform.is('mobile');
|
|
15718
|
+
_this._cordova = _this.platform.is('cordova');
|
|
15719
|
+
_this._android = _this.platform.is('android');
|
|
15690
15720
|
_this.configureCordovaPlugins(_this._mobile);
|
|
15691
15721
|
_this.touchUi = _this._mobile || _this.platform.is('tablet') || _this.platform.is('phablet');
|
|
15692
15722
|
// Force mobile in settings
|
|
@@ -15748,6 +15778,7 @@
|
|
|
15748
15778
|
operators.filter(function () { return _this._started; }), operators.first()).toPromise();
|
|
15749
15779
|
};
|
|
15750
15780
|
PlatformService.prototype.open = function (url, target, features, replace) {
|
|
15781
|
+
console.info("[platform] Opening link: " + url);
|
|
15751
15782
|
if (this.browser && this._mobile) {
|
|
15752
15783
|
this.browser.create(url, target, features).show();
|
|
15753
15784
|
}
|
|
@@ -15755,10 +15786,20 @@
|
|
|
15755
15786
|
window.open(url, target, features, replace);
|
|
15756
15787
|
}
|
|
15757
15788
|
};
|
|
15758
|
-
|
|
15759
|
-
|
|
15760
|
-
|
|
15761
|
-
|
|
15789
|
+
PlatformService.prototype.download = function (request) {
|
|
15790
|
+
if (!request || !request.uri)
|
|
15791
|
+
throw new Error('Missing argument \'request\' or \'request.uri\'');
|
|
15792
|
+
if (this._android && this._cordova) {
|
|
15793
|
+
request = Object.assign(Object.assign({ visibleInDownloadsUi: true, notificationVisibility: ngx$6.NotificationVisibility.VisibleNotifyCompleted, title: request.filename || '' }, request), { destinationInExternalFilesDir: Object.assign({ dirType: 'Downloads', subPath: request.filename || request.title || '' }, request.destinationInExternalFilesDir) });
|
|
15794
|
+
this.downloader.download(request)
|
|
15795
|
+
.then(function (location) { return console.info('[platform] File successfully downloaded at:' + location); })
|
|
15796
|
+
.catch(function (error) { return console.error(error); });
|
|
15797
|
+
}
|
|
15798
|
+
// Web mode: open URI using the browser
|
|
15799
|
+
else {
|
|
15800
|
+
this.open(request.uri, '_system', 'location=yes');
|
|
15801
|
+
}
|
|
15802
|
+
};
|
|
15762
15803
|
/* -- protected methods -- */
|
|
15763
15804
|
PlatformService.prototype.configureCordovaPlugins = function (mobile) {
|
|
15764
15805
|
console.info('[platform] Configuring Cordova plugins...');
|
|
@@ -15793,16 +15834,16 @@
|
|
|
15793
15834
|
}
|
|
15794
15835
|
// config moment lib
|
|
15795
15836
|
try {
|
|
15796
|
-
moment$
|
|
15837
|
+
moment$2.locale(event.lang);
|
|
15797
15838
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
15798
15839
|
}
|
|
15799
15840
|
// If error, fallback to en
|
|
15800
15841
|
catch (err) {
|
|
15801
|
-
moment$
|
|
15842
|
+
moment$2.locale('en');
|
|
15802
15843
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
15803
15844
|
}
|
|
15804
15845
|
// Config date adapter
|
|
15805
|
-
_this.dateAdapter.setLocale(moment$
|
|
15846
|
+
_this.dateAdapter.setLocale(moment$2.locale());
|
|
15806
15847
|
}
|
|
15807
15848
|
});
|
|
15808
15849
|
this.settings.onChange.subscribe(function (data) {
|
|
@@ -15987,7 +16028,7 @@
|
|
|
15987
16028
|
};
|
|
15988
16029
|
return PlatformService;
|
|
15989
16030
|
}());
|
|
15990
|
-
PlatformService.ɵprov =
|
|
16031
|
+
PlatformService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace$4.Platform), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter), i0__namespace.ɵɵinject(EntitiesStorage), i0__namespace.ɵɵinject(LocalSettingsService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(ConfigService), i0__namespace.ɵɵinject(i6__namespace.CacheService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(AudioProvider), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(i14__namespace.StatusBar, 8), i0__namespace.ɵɵinject(i15__namespace.Keyboard, 8), i0__namespace.ɵɵinject(i10__namespace.SplashScreen, 8), i0__namespace.ɵɵinject(i17__namespace.InAppBrowser, 8), i0__namespace.ɵɵinject(i18__namespace.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
|
|
15991
16032
|
PlatformService.decorators = [
|
|
15992
16033
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
15993
16034
|
];
|
|
@@ -16006,10 +16047,11 @@
|
|
|
16006
16047
|
{ type: i3$2.Storage },
|
|
16007
16048
|
{ type: AudioProvider },
|
|
16008
16049
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
|
|
16009
|
-
{ type: ngx$
|
|
16050
|
+
{ type: ngx$7.StatusBar, decorators: [{ type: i0.Optional }] },
|
|
16010
16051
|
{ type: ngx.Keyboard, decorators: [{ type: i0.Optional }] },
|
|
16011
16052
|
{ type: ngx$5.SplashScreen, decorators: [{ type: i0.Optional }] },
|
|
16012
|
-
{ type: ngx$
|
|
16053
|
+
{ type: ngx$8.InAppBrowser, decorators: [{ type: i0.Optional }] },
|
|
16054
|
+
{ type: ngx$6.Downloader, decorators: [{ type: i0.Optional }] }
|
|
16013
16055
|
]; };
|
|
16014
16056
|
|
|
16015
16057
|
var AppHelpModal = /** @class */ (function () {
|
|
@@ -16084,7 +16126,7 @@
|
|
|
16084
16126
|
};
|
|
16085
16127
|
return MatStepperI18n;
|
|
16086
16128
|
}(stepper.MatStepperIntl));
|
|
16087
|
-
MatStepperI18n.ɵprov =
|
|
16129
|
+
MatStepperI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
16088
16130
|
MatStepperI18n.decorators = [
|
|
16089
16131
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
16090
16132
|
];
|
|
@@ -17276,7 +17318,7 @@
|
|
|
17276
17318
|
return 1;
|
|
17277
17319
|
}
|
|
17278
17320
|
}
|
|
17279
|
-
var ɵ0$
|
|
17321
|
+
var ɵ0$1 = function (defaultStateSize) { return [
|
|
17280
17322
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
17281
17323
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
17282
17324
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -17284,7 +17326,7 @@
|
|
|
17284
17326
|
var SCALE_OPTIONS_DEFAULT = {
|
|
17285
17327
|
startColor: rgbArrayMap.red,
|
|
17286
17328
|
startStates: [0, 2, 3],
|
|
17287
|
-
startStepsFn: ɵ0$
|
|
17329
|
+
startStepsFn: ɵ0$1
|
|
17288
17330
|
};
|
|
17289
17331
|
/**
|
|
17290
17332
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -17376,24 +17418,24 @@
|
|
|
17376
17418
|
return result;
|
|
17377
17419
|
}
|
|
17378
17420
|
|
|
17379
|
-
var EntityTestClass = /** @class */ (function () {
|
|
17421
|
+
var EntityTestClass$1 = /** @class */ (function () {
|
|
17380
17422
|
function EntityTestClass() {
|
|
17381
17423
|
}
|
|
17382
17424
|
return EntityTestClass;
|
|
17383
17425
|
}());
|
|
17384
|
-
var FAKE_ENTITIES = [
|
|
17426
|
+
var FAKE_ENTITIES$1 = [
|
|
17385
17427
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
17386
17428
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
17387
17429
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
17388
17430
|
];
|
|
17389
|
-
function deepCopy(values, size) {
|
|
17431
|
+
function deepCopy$1(values, size) {
|
|
17390
17432
|
if (isNil(size)) {
|
|
17391
|
-
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
17433
|
+
return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
|
|
17392
17434
|
}
|
|
17393
17435
|
var result = [];
|
|
17394
17436
|
var i = 1;
|
|
17395
17437
|
while (result.length < size) {
|
|
17396
|
-
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
17438
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
|
|
17397
17439
|
var name = entity.name + ' #' + i;
|
|
17398
17440
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
17399
17441
|
}));
|
|
@@ -17403,7 +17445,7 @@
|
|
|
17403
17445
|
var AutocompleteTestPage = /** @class */ (function () {
|
|
17404
17446
|
function AutocompleteTestPage(formBuilder) {
|
|
17405
17447
|
this.formBuilder = formBuilder;
|
|
17406
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
17448
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
17407
17449
|
this.$items = new rxjs.BehaviorSubject(undefined);
|
|
17408
17450
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
17409
17451
|
this.memoryHide = false;
|
|
@@ -17448,7 +17490,7 @@
|
|
|
17448
17490
|
});
|
|
17449
17491
|
// From items
|
|
17450
17492
|
this.autocompleteFields.add('entity-items-large', {
|
|
17451
|
-
items: FAKE_ENTITIES.slice(),
|
|
17493
|
+
items: FAKE_ENTITIES$1.slice(),
|
|
17452
17494
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
17453
17495
|
displayWith: this.entityToString
|
|
17454
17496
|
});
|
|
@@ -17461,12 +17503,12 @@
|
|
|
17461
17503
|
var _this = this;
|
|
17462
17504
|
return __generator(this, function (_a) {
|
|
17463
17505
|
data = {
|
|
17464
|
-
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
17506
|
+
entity: deepCopy$1(FAKE_ENTITIES$1)[0],
|
|
17465
17507
|
// This item is NOT in the items list => i should be displayed anyway
|
|
17466
17508
|
missingEntity: {
|
|
17467
17509
|
id: -1, label: '??', name: 'Missing item'
|
|
17468
17510
|
},
|
|
17469
|
-
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
17511
|
+
disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
|
|
17470
17512
|
};
|
|
17471
17513
|
this.form.setValue(data);
|
|
17472
17514
|
// Load observables
|
|
@@ -17552,7 +17594,7 @@
|
|
|
17552
17594
|
AutocompleteTestPage.decorators = [
|
|
17553
17595
|
{ type: i0.Component, args: [{
|
|
17554
17596
|
selector: 'app-autocomplete-test',
|
|
17555
|
-
template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Autocomplete field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <!-- Tab nav - mobile/desktop mode -->\n <nav mat-tab-nav-bar>\n <a mat-tab-link\n [active]=\"mode==='mobile'\"\n (click)=\"toggleMode('mobile')\">\n <mat-label>Mobile</mat-label>\n </a>\n <a mat-tab-link [active]=\"mode==='desktop'\"\n (click)=\"toggleMode('desktop')\">\n <mat-label>Desktop</mat-label>\n </a>\n <a mat-tab-link [active]=\"mode==='memory'\"\n (click)=\"toggleMode('memory')\">\n <mat-label>Memory leak debug</mat-label>\n </a>\n <a mat-tab-link\n [active]=\"mode==='temp'\"\n (click)=\"toggleMode('temp')\">\n <mat-label>Temporary</mat-label>\n </a>\n </nav>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <!--<ion-grid *ngIf=\"mode === 'temp'\">\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an Observable\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [logPrefix]=\"'[combo-desktop-2]'\"\n [compareWith]=\"compareWithFn\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n\n </ion-card>\n </ion-col>\n </ion-row>\n\n\n </ion-grid>-->\n\n\n <ion-grid *ngIf=\"mode === 'memory'\">\n\n <!-- debugging memory leak -->\n <ion-row><ion-col><ion-text><h4>Debug memory leak</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col size=\"2\">\n <mat-form-field floatLabel=\"always\">\n <input matInput type=\"text\" hidden placeholder=\"Items type\">\n <mat-select (selectionChange)=\"memoryAutocompleteFieldName=$event.value\" [value]=\"memoryAutocompleteFieldName\">\n <mat-option value=\"entity-$items\">Observable</mat-option>\n <mat-option value=\"entity-suggestFn\">Suggest function</mat-option>\n </mat-select>\n </mat-form-field>\n </ion-col>\n <ion-col size=\"1\" class=\"ion-no-padding\">\n <mat-form-field floatLabel=\"always\" >\n <input matInput type=\"text\" hidden placeholder=\"Mobile ?\">\n <mat-checkbox (change)=\"memoryMobile=$event.checked\" [checked]=\"memoryMobile\">\n </mat-checkbox>\n </mat-form-field>\n </ion-col>\n\n <ion-col size=\"2\">\n <ion-button *ngIf=\"!memoryTimer\" (click)=\"startMemoryTimer()\" color=\"tertiary\">Start</ion-button>\n <ion-button *ngIf=\"memoryTimer\" (click)=\"stopMemoryTimer()\" color=\"tertiary\">Stop</ion-button>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <mat-autocomplete-field formControlName=\"entity\"\n *ngIf=\"!memoryHide && memoryAutocompleteFieldName\"\n [config]=\"autocompleteFields.get(memoryAutocompleteFieldName)\"\n [mobile]=\"memoryMobile\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-memory-leak]'\">\n </mat-autocomplete-field>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n <!-- Mobile mode -->\n <ion-grid *ngIf=\"mode === 'mobile'\">\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Suggest() function\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>mobile: true, suggestFn: (searchText, filter) => any[]</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-1]'\"\n [required]=\"true\"\n placeholder=\"Suggest field\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Items is an Observable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>mobile: true, items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-observable]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Control value if missing in items\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>mobile: true, items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"missingEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-2]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-2]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n\n <ion-row>\n <ion-col size=\"9\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Change filter\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <ion-button (click)=\"updateFilter('entity-items-filter')\">Filter on: {{autocompleteFields.get('entity-items-filter').filter?.searchAttribute }}</ion-button>\n </ion-col>\n <ion-col>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-filter]'\"\n ></mat-autocomplete-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"3\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Large combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>class=\"min-width-large\"</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"true\"\n class=\"min-width-large\"\n panelWidth=\"400px\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-large]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <!-- Desktop mode -->\n <ion-grid *ngIf=\"mode === 'desktop'\">\n <ion-row>\n <ion-col><ion-text><h4>Desktop mode</h4></ion-text></ion-col>\n </ion-row>\n <ion-row>\n\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n items from suggest function\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>suggest: (value, filter) => LoadResult<any>\nsuggestLengthThreshold: '3'</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [mobile]=\"false\"\n [compareWith]=\"compareWithFn\"\n suggestLengthThreshold=\"3\"\n [logPrefix]=\"'[combo-desktop-suggest]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an array\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: [], value: {{stringify(form.controls.entity.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items')\"\n [logPrefix]=\"'[combo-desktop-array-1]'\"\n [compareWith]=\"compareWithFn\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an Observable\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [logPrefix]=\"'[combo-desktop-2]'\"\n [compareWith]=\"compareWithFn\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Control value if missing in items\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"missingEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-missing]'\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Full size panel\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>class: 'mat-autocomplete-panel-full-size'</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [class]=\"'mat-autocomplete-panel-full-size'\"\n [compareWith]=\"compareWithFn\"\n [matAutocompletePosition]=\"'above'\"\n [logPrefix]=\"'[combo-desktop-full-size]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-disable]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-readonly]'\"\n [readonly]=\"true\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col size=\"9\" >\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Full size combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>class=\"mat-autocomplete-panel-full-size\"</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"false\"\n class=\"mat-autocomplete-panel-full-size\"\n panelWidth=\"100vw\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-full-size]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"3\" >\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Large combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>panelWidth: string</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"false\"\n panelWidth=\"400px\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-large]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n\n\n\n </ion-grid>\n\n </form>\n\n</ion-content>\n"
|
|
17597
|
+
template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Autocomplete field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <!-- Tab nav - mobile/desktop mode -->\n <nav mat-tab-nav-bar>\n <a mat-tab-link\n [active]=\"mode==='mobile'\"\n (click)=\"toggleMode('mobile')\">\n <mat-label>Mobile</mat-label>\n </a>\n <a mat-tab-link [active]=\"mode==='desktop'\"\n (click)=\"toggleMode('desktop')\">\n <mat-label>Desktop</mat-label>\n </a>\n <a mat-tab-link [active]=\"mode==='memory'\"\n (click)=\"toggleMode('memory')\">\n <mat-label>Memory leak debug</mat-label>\n </a>\n <a mat-tab-link\n [active]=\"mode==='temp'\"\n (click)=\"toggleMode('temp')\">\n <mat-label>Temporary</mat-label>\n </a>\n </nav>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <!--<ion-grid *ngIf=\"mode === 'temp'\">\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an Observable\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [logPrefix]=\"'[combo-desktop-2]'\"\n [compareWith]=\"compareWithFn\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n\n </ion-card>\n </ion-col>\n </ion-row>\n\n\n </ion-grid>-->\n\n\n <ion-grid *ngIf=\"mode === 'memory'\">\n\n <!-- debugging memory leak -->\n <ion-row><ion-col><ion-text><h4>Debug memory leak</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col size=\"2\">\n <mat-form-field floatLabel=\"always\">\n <input matInput type=\"text\" hidden placeholder=\"Items type\">\n <mat-select (selectionChange)=\"memoryAutocompleteFieldName=$event.value\" [value]=\"memoryAutocompleteFieldName\">\n <mat-option value=\"entity-$items\">Observable</mat-option>\n <mat-option value=\"entity-suggestFn\">Suggest function</mat-option>\n </mat-select>\n </mat-form-field>\n </ion-col>\n <ion-col size=\"1\" class=\"ion-no-padding\">\n <mat-form-field floatLabel=\"always\" >\n <input matInput type=\"text\" hidden placeholder=\"Mobile ?\">\n <mat-checkbox (change)=\"memoryMobile=$event.checked\" [checked]=\"memoryMobile\">\n </mat-checkbox>\n </mat-form-field>\n </ion-col>\n\n <ion-col size=\"2\">\n <ion-button *ngIf=\"!memoryTimer\" (click)=\"startMemoryTimer()\" color=\"tertiary\">Start</ion-button>\n <ion-button *ngIf=\"memoryTimer\" (click)=\"stopMemoryTimer()\" color=\"tertiary\">Stop</ion-button>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <mat-autocomplete-field formControlName=\"entity\"\n *ngIf=\"!memoryHide && memoryAutocompleteFieldName\"\n [config]=\"autocompleteFields.get(memoryAutocompleteFieldName)\"\n [mobile]=\"memoryMobile\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-memory-leak]'\">\n </mat-autocomplete-field>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n <!-- Mobile mode -->\n <ion-grid *ngIf=\"mode === 'mobile'\">\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Suggest() function\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>mobile: true, suggestFn: (searchText, filter) => any[]</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-1]'\"\n [required]=\"true\"\n placeholder=\"Suggest field\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Items is an Observable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>mobile: true, items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-observable]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Control value if missing in items\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>mobile: true, items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"missingEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-2]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-2]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n\n <ion-row>\n <ion-col size=\"9\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Change filter\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <ion-button (click)=\"updateFilter('entity-items-filter')\">Filter on: {{autocompleteFields.get('entity-items-filter').filter?.searchAttribute }}</ion-button>\n </ion-col>\n <ion-col>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [mobile]=\"true\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-filter]'\"\n ></mat-autocomplete-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"3\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Large combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>class=\"min-width-large\"</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"true\"\n class=\"min-width-large\"\n panelWidth=\"400px\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-mobile-large]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <!-- Desktop mode -->\n <ion-grid *ngIf=\"mode === 'desktop'\">\n <ion-row>\n <ion-col><ion-text><h4>Desktop mode</h4></ion-text></ion-col>\n </ion-row>\n <ion-row>\n\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n items from suggest function\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>suggest: (value, filter) => LoadResult<any>\nsuggestLengthThreshold: '3'</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"false\"\n [compareWith]=\"compareWithFn\"\n suggestLengthThreshold=\"3\"\n [logPrefix]=\"'[combo-desktop-suggest]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an array\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: [], value: {{stringify(form.controls.entity.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items')\"\n [logPrefix]=\"'[combo-desktop-array-1]'\"\n [compareWith]=\"compareWithFn\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an Observable\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [logPrefix]=\"'[combo-desktop-2]'\"\n [compareWith]=\"compareWithFn\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Control value if missing in items\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"missingEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-missing]'\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Full size panel\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>class: 'mat-autocomplete-panel-full-size'</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [class]=\"'mat-autocomplete-panel-full-size'\"\n [compareWith]=\"compareWithFn\"\n [matAutocompletePosition]=\"'above'\"\n [logPrefix]=\"'[combo-desktop-full-size]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-disable]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-readonly]'\"\n [readonly]=\"true\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col size=\"9\" >\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Full size combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>class=\"mat-autocomplete-panel-full-size\"</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"false\"\n class=\"mat-autocomplete-panel-full-size\"\n panelWidth=\"100vw\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-full-size]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"3\" >\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Large combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>panelWidth: string</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"false\"\n panelWidth=\"400px\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-large]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Readonly toggle\n </ion-text>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-checkbox (change)=\"readonlyField.readonly=$event.checked\" [checked]=\"readonlyField.readonly\">\n </mat-checkbox>\n\n <mat-autocomplete-field #readonlyField formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"false\"\n [compareWith]=\"compareWithFn\"\n [logPrefix]=\"'[combo-desktop-readonly]'\"\n [readonly]=\"true\">\n </mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </form>\n\n</ion-content>\n"
|
|
17556
17598
|
},] }
|
|
17557
17599
|
];
|
|
17558
17600
|
AutocompleteTestPage.ctorParameters = function () { return [
|
|
@@ -17664,13 +17706,13 @@
|
|
|
17664
17706
|
{ type: Array, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_TESTING_PAGES,] }] }
|
|
17665
17707
|
]; };
|
|
17666
17708
|
|
|
17667
|
-
var moment$
|
|
17709
|
+
var moment$1 = momentImported__namespace;
|
|
17668
17710
|
var SwipeTestPage = /** @class */ (function () {
|
|
17669
17711
|
function SwipeTestPage(formBuilder, dateFormatPipe) {
|
|
17670
17712
|
this.formBuilder = formBuilder;
|
|
17671
17713
|
this.dateFormatPipe = dateFormatPipe;
|
|
17672
17714
|
this.$dates = new rxjs.BehaviorSubject(undefined);
|
|
17673
|
-
this._today = moment$
|
|
17715
|
+
this._today = moment$1().startOf('day');
|
|
17674
17716
|
this.form = formBuilder.group({
|
|
17675
17717
|
empty: [null, i1.Validators.required],
|
|
17676
17718
|
date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
|
|
@@ -17684,7 +17726,7 @@
|
|
|
17684
17726
|
var _this = this;
|
|
17685
17727
|
var dates = [];
|
|
17686
17728
|
for (var d = 0; d < 7; d++) {
|
|
17687
|
-
dates[d] = moment$
|
|
17729
|
+
dates[d] = moment$1(this._today).add(d - 3, 'day');
|
|
17688
17730
|
}
|
|
17689
17731
|
this.$dates.next(dates);
|
|
17690
17732
|
this.loadData();
|
|
@@ -18367,7 +18409,7 @@
|
|
|
18367
18409
|
return FormArrayHelper;
|
|
18368
18410
|
}());
|
|
18369
18411
|
|
|
18370
|
-
var moment
|
|
18412
|
+
var moment = momentImported__namespace;
|
|
18371
18413
|
var DateTimeTestPage = /** @class */ (function () {
|
|
18372
18414
|
function DateTimeTestPage(platform, formBuilder, cd) {
|
|
18373
18415
|
this.platform = platform;
|
|
@@ -18402,7 +18444,7 @@
|
|
|
18402
18444
|
var now, data;
|
|
18403
18445
|
var _this = this;
|
|
18404
18446
|
return __generator(this, function (_a) {
|
|
18405
|
-
now = moment
|
|
18447
|
+
now = moment();
|
|
18406
18448
|
data = {
|
|
18407
18449
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
18408
18450
|
enable: toDateISOString(now),
|
|
@@ -18466,23 +18508,23 @@
|
|
|
18466
18508
|
{ type: i0.ChangeDetectorRef }
|
|
18467
18509
|
]; };
|
|
18468
18510
|
|
|
18469
|
-
var EntityTestClass
|
|
18511
|
+
var EntityTestClass = /** @class */ (function () {
|
|
18470
18512
|
function EntityTestClass() {
|
|
18471
18513
|
}
|
|
18472
18514
|
return EntityTestClass;
|
|
18473
18515
|
}());
|
|
18474
|
-
var FAKE_ENTITIES
|
|
18516
|
+
var FAKE_ENTITIES = [
|
|
18475
18517
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
18476
18518
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
18477
18519
|
{ id: 3, label: 'CCC', name: 'Item C' }
|
|
18478
18520
|
];
|
|
18479
|
-
function deepCopy
|
|
18480
|
-
return (values || FAKE_ENTITIES
|
|
18521
|
+
function deepCopy(values) {
|
|
18522
|
+
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
18481
18523
|
}
|
|
18482
18524
|
var ChipsTestPage = /** @class */ (function () {
|
|
18483
18525
|
function ChipsTestPage(formBuilder) {
|
|
18484
18526
|
this.formBuilder = formBuilder;
|
|
18485
|
-
this._items = deepCopy
|
|
18527
|
+
this._items = deepCopy(FAKE_ENTITIES);
|
|
18486
18528
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
18487
18529
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
18488
18530
|
this.form = formBuilder.group({
|
|
@@ -18502,7 +18544,7 @@
|
|
|
18502
18544
|
});
|
|
18503
18545
|
// From items
|
|
18504
18546
|
this.autocompleteFields.add('entity-items', {
|
|
18505
|
-
items: FAKE_ENTITIES
|
|
18547
|
+
items: FAKE_ENTITIES.slice(),
|
|
18506
18548
|
attributes: ['label', 'name'],
|
|
18507
18549
|
displayWith: this.entityToString
|
|
18508
18550
|
});
|
|
@@ -18525,8 +18567,8 @@
|
|
|
18525
18567
|
data = {
|
|
18526
18568
|
entity: [],
|
|
18527
18569
|
// THis item is NOT in the items list => i should be displayed anyway
|
|
18528
|
-
entityInitial: FAKE_ENTITIES
|
|
18529
|
-
disableEntity: FAKE_ENTITIES
|
|
18570
|
+
entityInitial: FAKE_ENTITIES.slice(1, 2),
|
|
18571
|
+
disableEntity: FAKE_ENTITIES.slice(1, 2)
|
|
18530
18572
|
};
|
|
18531
18573
|
this.form.setValue(data);
|
|
18532
18574
|
return [2 /*return*/];
|
|
@@ -18536,7 +18578,7 @@
|
|
|
18536
18578
|
ChipsTestPage.prototype.loadItems = function () {
|
|
18537
18579
|
return __awaiter(this, void 0, void 0, function () {
|
|
18538
18580
|
return __generator(this, function (_a) {
|
|
18539
|
-
this._$items.next(deepCopy
|
|
18581
|
+
this._$items.next(deepCopy(FAKE_ENTITIES));
|
|
18540
18582
|
return [2 /*return*/];
|
|
18541
18583
|
});
|
|
18542
18584
|
});
|
|
@@ -18573,7 +18615,7 @@
|
|
|
18573
18615
|
{ type: i1.FormBuilder }
|
|
18574
18616
|
]; };
|
|
18575
18617
|
|
|
18576
|
-
var routes = [
|
|
18618
|
+
var routes$1 = [
|
|
18577
18619
|
{
|
|
18578
18620
|
path: '',
|
|
18579
18621
|
pathMatch: 'full',
|
|
@@ -18623,7 +18665,7 @@
|
|
|
18623
18665
|
i1.ReactiveFormsModule,
|
|
18624
18666
|
SharedMaterialModule,
|
|
18625
18667
|
i1$2.TranslateModule.forChild(),
|
|
18626
|
-
i3.RouterModule.forChild(routes)
|
|
18668
|
+
i3.RouterModule.forChild(routes$1)
|
|
18627
18669
|
],
|
|
18628
18670
|
declarations: [
|
|
18629
18671
|
MaterialTestingPage,
|
|
@@ -19741,7 +19783,7 @@
|
|
|
19741
19783
|
};
|
|
19742
19784
|
return UserSettingsValidatorService;
|
|
19743
19785
|
}(AppValidatorService));
|
|
19744
|
-
UserSettingsValidatorService.ɵprov =
|
|
19786
|
+
UserSettingsValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
19745
19787
|
UserSettingsValidatorService.decorators = [
|
|
19746
19788
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
19747
19789
|
];
|
|
@@ -19789,7 +19831,7 @@
|
|
|
19789
19831
|
};
|
|
19790
19832
|
return AccountValidatorService;
|
|
19791
19833
|
}(AppValidatorService));
|
|
19792
|
-
AccountValidatorService.ɵprov =
|
|
19834
|
+
AccountValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder), i0__namespace.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
19793
19835
|
AccountValidatorService.decorators = [
|
|
19794
19836
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
19795
19837
|
];
|
|
@@ -20386,7 +20428,7 @@
|
|
|
20386
20428
|
};
|
|
20387
20429
|
return LocalSettingsValidatorService;
|
|
20388
20430
|
}(AppValidatorService));
|
|
20389
|
-
LocalSettingsValidatorService.ɵprov =
|
|
20431
|
+
LocalSettingsValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder), i0__namespace.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
20390
20432
|
LocalSettingsValidatorService.decorators = [
|
|
20391
20433
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
20392
20434
|
];
|
|
@@ -21170,7 +21212,7 @@
|
|
|
21170
21212
|
};
|
|
21171
21213
|
return IsOnFieldModePipe;
|
|
21172
21214
|
}());
|
|
21173
|
-
IsOnFieldModePipe.ɵprov =
|
|
21215
|
+
IsOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
21174
21216
|
IsOnFieldModePipe.decorators = [
|
|
21175
21217
|
{ type: i0.Pipe, args: [{
|
|
21176
21218
|
name: 'isOnField'
|
|
@@ -21185,7 +21227,7 @@
|
|
|
21185
21227
|
};
|
|
21186
21228
|
return IsNotOnFieldModePipe;
|
|
21187
21229
|
}());
|
|
21188
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
21230
|
+
IsNotOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
21189
21231
|
IsNotOnFieldModePipe.decorators = [
|
|
21190
21232
|
{ type: i0.Pipe, args: [{
|
|
21191
21233
|
name: 'isNotOnField'
|
|
@@ -21203,7 +21245,7 @@
|
|
|
21203
21245
|
};
|
|
21204
21246
|
return PersonToStringPipe;
|
|
21205
21247
|
}());
|
|
21206
|
-
PersonToStringPipe.ɵprov =
|
|
21248
|
+
PersonToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
21207
21249
|
PersonToStringPipe.decorators = [
|
|
21208
21250
|
{ type: i0.Pipe, args: [{
|
|
21209
21251
|
name: 'personToString'
|
|
@@ -21211,6 +21253,9 @@
|
|
|
21211
21253
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
21212
21254
|
];
|
|
21213
21255
|
|
|
21256
|
+
var MimeTypes = Object.freeze({
|
|
21257
|
+
ANDROID_APK: 'application/vnd.android.package-archive'
|
|
21258
|
+
});
|
|
21214
21259
|
var AppInstallUpgradeCard = /** @class */ (function () {
|
|
21215
21260
|
function AppInstallUpgradeCard(modalCtrl, configService, platform, cd, network, environment) {
|
|
21216
21261
|
this.modalCtrl = modalCtrl;
|
|
@@ -21227,6 +21272,7 @@
|
|
|
21227
21272
|
this.showOfflineWarning = true;
|
|
21228
21273
|
this.showInstallButton = false;
|
|
21229
21274
|
this.onUpdateOfflineModeClick = new i0.EventEmitter();
|
|
21275
|
+
this.isAndroidCordova = platform.isAndroidCordova();
|
|
21230
21276
|
}
|
|
21231
21277
|
Object.defineProperty(AppInstallUpgradeCard.prototype, "showUpdateOfflineFeature", {
|
|
21232
21278
|
get: function () {
|
|
@@ -21282,15 +21328,14 @@
|
|
|
21282
21328
|
AppInstallUpgradeCard.prototype.ngOnDestroy = function () {
|
|
21283
21329
|
this._subscription.unsubscribe();
|
|
21284
21330
|
};
|
|
21285
|
-
AppInstallUpgradeCard.prototype.
|
|
21286
|
-
if (!url)
|
|
21331
|
+
AppInstallUpgradeCard.prototype.downloadLink = function (event, link) {
|
|
21332
|
+
if (!link || !link.url)
|
|
21287
21333
|
return; // Skip
|
|
21288
|
-
|
|
21289
|
-
|
|
21290
|
-
|
|
21291
|
-
|
|
21292
|
-
|
|
21293
|
-
return false;
|
|
21334
|
+
this.platform.download({
|
|
21335
|
+
uri: link.url,
|
|
21336
|
+
filename: link.downloadFilename,
|
|
21337
|
+
mimeType: link.mimeType
|
|
21338
|
+
});
|
|
21294
21339
|
};
|
|
21295
21340
|
AppInstallUpgradeCard.prototype.tryOnline = function () {
|
|
21296
21341
|
var _this = this;
|
|
@@ -21316,10 +21361,10 @@
|
|
|
21316
21361
|
return '';
|
|
21317
21362
|
}
|
|
21318
21363
|
};
|
|
21319
|
-
AppInstallUpgradeCard.prototype.
|
|
21320
|
-
return;
|
|
21364
|
+
AppInstallUpgradeCard.prototype.asLink = function (value) {
|
|
21365
|
+
return value;
|
|
21321
21366
|
};
|
|
21322
|
-
/* --
|
|
21367
|
+
/* -- private method -- */
|
|
21323
21368
|
AppInstallUpgradeCard.prototype.getCompatibleInstallLinks = function (installLinks) {
|
|
21324
21369
|
// Cordova already running: not need to install
|
|
21325
21370
|
if (this.platform.is('cordova'))
|
|
@@ -21357,11 +21402,14 @@
|
|
|
21357
21402
|
if (url) {
|
|
21358
21403
|
var downloadFilename = void 0;
|
|
21359
21404
|
var version = void 0;
|
|
21405
|
+
var mimeType = void 0;
|
|
21360
21406
|
// Get file name
|
|
21361
21407
|
var filename = this.getFilename(url);
|
|
21362
21408
|
version = config.getProperty(CORE_CONFIG_OPTIONS.APP_MIN_VERSION);
|
|
21363
21409
|
// OK, this is a downloadable APK file (e.g. NOT a link to a playstore)
|
|
21364
21410
|
if (filename === null || filename === void 0 ? void 0 : filename.endsWith('.apk')) {
|
|
21411
|
+
// Define mime type
|
|
21412
|
+
mimeType = MimeTypes.ANDROID_APK;
|
|
21365
21413
|
// Get the file version (if any)
|
|
21366
21414
|
var versionMatches = /-v([1-9][0-9]*\.[0-9]+\.(:?(:?alpha|beta|rc)?[0-9]*))/i.exec(filename);
|
|
21367
21415
|
version = versionMatches && versionMatches[1] || version;
|
|
@@ -21378,7 +21426,7 @@
|
|
|
21378
21426
|
}
|
|
21379
21427
|
}
|
|
21380
21428
|
}
|
|
21381
|
-
result.push({ name: name, url: url, platform: 'android', version: version, downloadFilename: downloadFilename });
|
|
21429
|
+
result.push({ name: name, url: url, platform: 'android', version: version, downloadFilename: downloadFilename, mimeType: mimeType });
|
|
21382
21430
|
}
|
|
21383
21431
|
}
|
|
21384
21432
|
// iOS - TODO
|
|
@@ -21407,7 +21455,7 @@
|
|
|
21407
21455
|
AppInstallUpgradeCard.decorators = [
|
|
21408
21456
|
{ type: i0.Component, args: [{
|
|
21409
21457
|
selector: 'app-install-upgrade-card',
|
|
21410
|
-
template: "\n\n<!-- Offline mode card-->\n<ion-card *ngIf=\"showOfflineWarning && (!loading && offline || waitingNetwork)\"\n color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\" *ngIf=\"!waitingNetwork; else waitingNetworkText\">\n <h4>\n <b *ngIf=\"isLogin; else notLogin\" [innerHTML]=\"'NETWORK.INFO.OFFLINE_OR_UNAUTHORIZED'| translate\"></b>\n <ng-template #notLogin>\n <b [innerHTML]=\"'NETWORK.INFO.OFFLINE'| translate\"></b>\n </ng-template>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.OFFLINE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n <ng-template #waitingNetworkText>\n <ion-text class=\"ion-text-wrap\" [innerHTML]=\"'NETWORK.INFO.RETRY_TO_CONNECT'| translate\"></ion-text>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\">\n\n <!-- Retry button -->\n <ion-button *ngIf=\"!waitingNetwork; else waitingSpinner\" color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"tryOnline()\">\n <span translate>NETWORK.BTN_CHECK_ALIVE</span>\n </ion-button>\n\n <!-- Waiting spinner -->\n <ng-template #waitingSpinner>\n <ion-spinner *ngIf=\"waitingNetwork\" color=\"light\"></ion-spinner>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Upgrade links -->\n<ion-card *ngIf=\"showUpgradeWarning && !loading && !offline && updateLinks\"\n color=\"accent\"\n class=\"ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngFor=\"let link of updateLinks; last as last\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h3>\n <span *ngIf=\"link.version\" [innerHTML]=\"'INFO.UPDATE_APP_TO_VERSION'| translate: link\"></span>\n <span *ngIf=\"!link.version\" [innerHTML]=\"'INFO.UPDATE_APP'| translate: link\"></span>\n </h3>\n <h4>\n <small *ngIf=\"last\" [innerHTML]=\"'INFO.UPDATE_APP_HELP'|translate\"></small>\n </h4>\n </ion-text>\n </ion-col>\n\n <ion-col size=\"auto\">\n\n <!-- Download button -->\n <ion-button *ngIf=\"link.downloadFilename; else redirectButton\"\n [download]=\"link.downloadFilename\"\n [href]=\"link.url\"\n color=\"tertiary\" class=\"ion-float-end\" >\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <!-- Redirect button -->\n <ng-template #redirectButton>\n <ion-button [href]=\"link.url\" rel=\"external\" color=\"tertiary\" class=\"ion-float-end\" target=\"_blank\">\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n </ion-button>\n </ng-template>\n\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Install links -->\n<ion-card *ngIf=\"showInstallButton && !loading && !offline && installLinks\"\n color=\"secondary\"\n class=\"ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngFor=\"let link of installLinks; last as last\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h3 [innerHTML]=\"'INFO.DOWNLOAD_APP_TITLE'| translate: {name: link.name, platform: getPlatformName(link.platform) }\"></h3>\n <h4><small *ngIf=\"last\" [innerHTML]=\"'INFO.DOWNLOAD_APP_HELP'|translate\"></small></h4>\n </ion-text>\n </ion-col>\n <ion-col size=\"auto\">\n
|
|
21458
|
+
template: "\n\n<!-- Offline mode card-->\n<ion-card *ngIf=\"showOfflineWarning && (!loading && offline || waitingNetwork)\"\n color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\" *ngIf=\"!waitingNetwork; else waitingNetworkText\">\n <h4>\n <b *ngIf=\"isLogin; else notLogin\" [innerHTML]=\"'NETWORK.INFO.OFFLINE_OR_UNAUTHORIZED'| translate\"></b>\n <ng-template #notLogin>\n <b [innerHTML]=\"'NETWORK.INFO.OFFLINE'| translate\"></b>\n </ng-template>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.OFFLINE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n <ng-template #waitingNetworkText>\n <ion-text class=\"ion-text-wrap\" [innerHTML]=\"'NETWORK.INFO.RETRY_TO_CONNECT'| translate\"></ion-text>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\">\n\n <!-- Retry button -->\n <ion-button *ngIf=\"!waitingNetwork; else waitingSpinner\" color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"tryOnline()\">\n <span translate>NETWORK.BTN_CHECK_ALIVE</span>\n </ion-button>\n\n <!-- Waiting spinner -->\n <ng-template #waitingSpinner>\n <ion-spinner *ngIf=\"waitingNetwork\" color=\"light\"></ion-spinner>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Upgrade links -->\n<ion-card *ngIf=\"showUpgradeWarning && !loading && !offline && updateLinks\"\n color=\"accent\"\n class=\"ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngFor=\"let link of updateLinks; last as last\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h3>\n <span *ngIf=\"link.version\" [innerHTML]=\"'INFO.UPDATE_APP_TO_VERSION'| translate: link\"></span>\n <span *ngIf=\"!link.version\" [innerHTML]=\"'INFO.UPDATE_APP'| translate: link\"></span>\n </h3>\n <h4>\n <small *ngIf=\"last\" [innerHTML]=\"'INFO.UPDATE_APP_HELP'|translate\"></small>\n </h4>\n </ion-text>\n </ion-col>\n\n <ion-col size=\"auto\">\n\n <!-- Download button -->\n <ion-button *ngIf=\"link.downloadFilename; else redirectButton\"\n [download]=\"link.downloadFilename\"\n [href]=\"link.url\"\n color=\"tertiary\" class=\"ion-float-end\" >\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <!-- Redirect button -->\n <ng-template #redirectButton>\n <ion-button [href]=\"link.url\" rel=\"external\" color=\"tertiary\" class=\"ion-float-end\" target=\"_blank\">\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n </ion-button>\n </ng-template>\n\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Install links -->\n<ion-card *ngIf=\"showInstallButton && !loading && !offline && installLinks\"\n color=\"secondary\"\n class=\"ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngFor=\"let link of installLinks; last as last\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h3 [innerHTML]=\"'INFO.DOWNLOAD_APP_TITLE'| translate: {name: link.name, platform: getPlatformName(link.platform) }\"></h3>\n <h4><small *ngIf=\"last\" [innerHTML]=\"'INFO.DOWNLOAD_APP_HELP'|translate\"></small></h4>\n </ion-text>\n </ion-col>\n <ion-col size=\"auto\">\n <ng-container *ngTemplateOutlet=\"downloadButton; context: { $implicit: link }\"></ng-container>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Update offline feature card-->\n<ion-card *ngIf=\"showUpdateOfflineFeature && !loading && !offline\"\n color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\">\n <h4>\n <b [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE'| translate\"></b>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n </ion-col>\n <ion-col size=\"auto\">\n\n <!-- Retry button -->\n <ion-button color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"onUpdateOfflineModeClick.emit($event)\">\n <span translate>NETWORK.BTN_UPDATE</span>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n</ion-card>\n\n<!-- Display a download button, depending on the link URL, and the device platform -->\n<ng-template #downloadButton let-link>\n\n <ng-container *ngIf=\"link.downloadFilename; else redirectButton\">\n\n <!-- Cordova download button -->\n <ion-button *ngIf=\"isAndroidCordova; else webDownloadButton\"\n (click)=\"downloadLink($event, asLink(link))\"\n color=\"tertiary\" class=\"ion-float-end\" >\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <!-- Web download button -->\n <ng-template #webDownloadButton>\n <ion-button [download]=\"link.downloadFilename\"\n [href]=\"link.url\"\n color=\"tertiary\" class=\"ion-float-end\" >\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n </ng-template>\n </ng-container>\n\n <!-- Web redirect button -->\n <ng-template #redirectButton>\n <ion-button [href]=\"link.url\" rel=\"external\" color=\"tertiary\" class=\"ion-float-end\" target=\"_blank\">\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n </ion-button>\n </ng-template>\n</ng-template>\n",
|
|
21411
21459
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
21412
21460
|
animations: [slideUpDownAnimation],
|
|
21413
21461
|
styles: ["ion-text small{font-size:85%}"]
|
|
@@ -21438,7 +21486,7 @@
|
|
|
21438
21486
|
};
|
|
21439
21487
|
return IsLoginAccountPipe;
|
|
21440
21488
|
}());
|
|
21441
|
-
IsLoginAccountPipe.ɵprov =
|
|
21489
|
+
IsLoginAccountPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
21442
21490
|
IsLoginAccountPipe.decorators = [
|
|
21443
21491
|
{ type: i0.Pipe, args: [{
|
|
21444
21492
|
name: 'isLogin'
|
|
@@ -21453,7 +21501,7 @@
|
|
|
21453
21501
|
};
|
|
21454
21502
|
return AccountToStringPipe;
|
|
21455
21503
|
}());
|
|
21456
|
-
AccountToStringPipe.ɵprov =
|
|
21504
|
+
AccountToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
21457
21505
|
AccountToStringPipe.decorators = [
|
|
21458
21506
|
{ type: i0.Pipe, args: [{
|
|
21459
21507
|
name: 'accountToString'
|
|
@@ -21471,7 +21519,7 @@
|
|
|
21471
21519
|
};
|
|
21472
21520
|
return DepartmentToStringPipe;
|
|
21473
21521
|
}());
|
|
21474
|
-
DepartmentToStringPipe.ɵprov =
|
|
21522
|
+
DepartmentToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
21475
21523
|
DepartmentToStringPipe.decorators = [
|
|
21476
21524
|
{ type: i0.Pipe, args: [{
|
|
21477
21525
|
name: 'departmentToString'
|
|
@@ -21506,7 +21554,7 @@
|
|
|
21506
21554
|
};
|
|
21507
21555
|
return MenuService;
|
|
21508
21556
|
}());
|
|
21509
|
-
MenuService.ɵprov =
|
|
21557
|
+
MenuService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
21510
21558
|
MenuService.decorators = [
|
|
21511
21559
|
{ type: i0.Injectable, args: [{
|
|
21512
21560
|
providedIn: 'root'
|
|
@@ -22085,7 +22133,7 @@
|
|
|
22085
22133
|
};
|
|
22086
22134
|
return AuthGuardService;
|
|
22087
22135
|
}());
|
|
22088
|
-
AuthGuardService.ɵprov =
|
|
22136
|
+
AuthGuardService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(i1__namespace$4.ModalController), i0__namespace.ɵɵinject(i3__namespace$3.Router), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
22089
22137
|
AuthGuardService.decorators = [
|
|
22090
22138
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
22091
22139
|
];
|
|
@@ -22136,7 +22184,7 @@
|
|
|
22136
22184
|
query: query,
|
|
22137
22185
|
variables: { id: id },
|
|
22138
22186
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
22139
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
22187
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
22140
22188
|
})
|
|
22141
22189
|
.pipe(operators.map(function (_b) {
|
|
22142
22190
|
var data = _b.data;
|
|
@@ -22158,7 +22206,7 @@
|
|
|
22158
22206
|
query: query,
|
|
22159
22207
|
variables: { id: id },
|
|
22160
22208
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
22161
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
22209
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
22162
22210
|
})];
|
|
22163
22211
|
case 1:
|
|
22164
22212
|
data = (_b.sent()).data;
|
|
@@ -22194,7 +22242,7 @@
|
|
|
22194
22242
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
22195
22243
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
22196
22244
|
variables: variables,
|
|
22197
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
22245
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
22198
22246
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
22199
22247
|
})
|
|
22200
22248
|
.pipe(operators.map(function (_b) {
|
|
@@ -22236,7 +22284,7 @@
|
|
|
22236
22284
|
return [4 /*yield*/, this.graphql.query({
|
|
22237
22285
|
query: query,
|
|
22238
22286
|
variables: variables,
|
|
22239
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
22287
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
22240
22288
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
22241
22289
|
})];
|
|
22242
22290
|
case 1:
|
|
@@ -22284,7 +22332,7 @@
|
|
|
22284
22332
|
variables: {
|
|
22285
22333
|
filter: filter && filter.asPodObject()
|
|
22286
22334
|
},
|
|
22287
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
22335
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
22288
22336
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
22289
22337
|
})];
|
|
22290
22338
|
case 3:
|
|
@@ -22326,7 +22374,7 @@
|
|
|
22326
22374
|
variables: {
|
|
22327
22375
|
data: json
|
|
22328
22376
|
},
|
|
22329
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
22377
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
22330
22378
|
update: function (proxy, _b) {
|
|
22331
22379
|
var data = _b.data;
|
|
22332
22380
|
var savedEntities = data && data.data;
|
|
@@ -22393,7 +22441,7 @@
|
|
|
22393
22441
|
variables: {
|
|
22394
22442
|
data: json
|
|
22395
22443
|
},
|
|
22396
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
22444
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
22397
22445
|
update: function (cache, _b) {
|
|
22398
22446
|
var data = _b.data;
|
|
22399
22447
|
// Update entity
|
|
@@ -22451,7 +22499,7 @@
|
|
|
22451
22499
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
22452
22500
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
22453
22501
|
variables: { ids: ids },
|
|
22454
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
22502
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
22455
22503
|
update: function (cache, res) {
|
|
22456
22504
|
// Remove from cache
|
|
22457
22505
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -22504,7 +22552,7 @@
|
|
|
22504
22552
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
22505
22553
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
22506
22554
|
variables: { id: id },
|
|
22507
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
22555
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
22508
22556
|
update: function (proxy, res) {
|
|
22509
22557
|
// Remove from cache
|
|
22510
22558
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -22543,7 +22591,7 @@
|
|
|
22543
22591
|
query: opts && opts.query || this.subscriptions.listenChanges,
|
|
22544
22592
|
variables: variables,
|
|
22545
22593
|
error: {
|
|
22546
|
-
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
22594
|
+
code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
|
|
22547
22595
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
22548
22596
|
}
|
|
22549
22597
|
})
|
|
@@ -22752,7 +22800,7 @@
|
|
|
22752
22800
|
if (this._debug)
|
|
22753
22801
|
invalidRows.forEach(function (row) { return AppTableUtils.logRowErrors(row, "[table-datasource] " + _this._logTypeName + " row #" + row.id); });
|
|
22754
22802
|
// Stop with an error
|
|
22755
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
22803
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
22756
22804
|
}
|
|
22757
22805
|
this._editingRowCount = 0;
|
|
22758
22806
|
data = void 0;
|
|
@@ -23708,14 +23756,14 @@
|
|
|
23708
23756
|
case 0:
|
|
23709
23757
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
23710
23758
|
if (this.readOnly) {
|
|
23711
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
23759
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
23712
23760
|
}
|
|
23713
23761
|
this.resetError();
|
|
23714
23762
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
23715
23763
|
this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
|
|
23716
23764
|
previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.currentData);
|
|
23717
23765
|
if (!this.confirmEditCreate()) {
|
|
23718
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
23766
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
23719
23767
|
}
|
|
23720
23768
|
// Mark as saving
|
|
23721
23769
|
this.markAsSaving();
|
|
@@ -23868,7 +23916,7 @@
|
|
|
23868
23916
|
switch (_d.label) {
|
|
23869
23917
|
case 0:
|
|
23870
23918
|
if (this.readOnly) {
|
|
23871
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
23919
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
23872
23920
|
}
|
|
23873
23921
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
23874
23922
|
return [2 /*return*/, 0]; // SKip
|
|
@@ -25564,7 +25612,7 @@
|
|
|
25564
25612
|
case 4:
|
|
25565
25613
|
data = _b.sent();
|
|
25566
25614
|
if (!data)
|
|
25567
|
-
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
25615
|
+
throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
25568
25616
|
this._usageMode = this.computeUsageMode(data);
|
|
25569
25617
|
return [4 /*yield*/, this.onEntityLoaded(data, opts)];
|
|
25570
25618
|
case 5:
|
|
@@ -26294,10 +26342,10 @@
|
|
|
26294
26342
|
exports.UserEventFilter = __decorate([
|
|
26295
26343
|
EntityClass({ typename: 'UserEventVO' })
|
|
26296
26344
|
], exports.UserEventFilter);
|
|
26297
|
-
var SaveQuery = core.gql(templateObject_1$
|
|
26298
|
-
var LoadAllQuery = core.gql(templateObject_2$
|
|
26299
|
-
var DeleteByIdsMutation = core.gql(templateObject_3$
|
|
26300
|
-
var LoadAllWithContentQuery = core.gql(templateObject_4$
|
|
26345
|
+
var SaveQuery = core.gql(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n"], ["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n"])), SocialFragments.userEvent);
|
|
26346
|
+
var LoadAllQuery = core.gql(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n"], ["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n"])), SocialFragments.lightUserEvent);
|
|
26347
|
+
var DeleteByIdsMutation = core.gql(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"], ["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"])));
|
|
26348
|
+
var LoadAllWithContentQuery = core.gql(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n"], ["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n"])), SocialFragments.userEvent);
|
|
26301
26349
|
var UserEventService = /** @class */ (function (_super) {
|
|
26302
26350
|
__extends(UserEventService, _super);
|
|
26303
26351
|
function UserEventService(graphql, accountService, network, translate, toastController, environment) {
|
|
@@ -26618,7 +26666,7 @@
|
|
|
26618
26666
|
};
|
|
26619
26667
|
return UserEventService;
|
|
26620
26668
|
}(BaseGraphqlService));
|
|
26621
|
-
UserEventService.ɵprov =
|
|
26669
|
+
UserEventService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
|
|
26622
26670
|
UserEventService.decorators = [
|
|
26623
26671
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
26624
26672
|
];
|
|
@@ -26630,7 +26678,7 @@
|
|
|
26630
26678
|
{ type: i1$5.ToastController },
|
|
26631
26679
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
26632
26680
|
]; };
|
|
26633
|
-
var templateObject_1$
|
|
26681
|
+
var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1;
|
|
26634
26682
|
|
|
26635
26683
|
var ICONS_MAP = {
|
|
26636
26684
|
DEBUG_DATA: { matIcon: 'bug_report' },
|
|
@@ -26855,6 +26903,7 @@
|
|
|
26855
26903
|
this.userProfiles = source.userProfiles;
|
|
26856
26904
|
this.excludedIds = source.excludedIds;
|
|
26857
26905
|
this.searchAttribute = source.searchAttribute;
|
|
26906
|
+
this.searchAttributes = source.searchAttributes;
|
|
26858
26907
|
};
|
|
26859
26908
|
PersonFilter.prototype.asObject = function (opts) {
|
|
26860
26909
|
var target = _super.prototype.asObject.call(this, opts);
|
|
@@ -26865,6 +26914,7 @@
|
|
|
26865
26914
|
target.userProfiles = this.userProfiles;
|
|
26866
26915
|
target.excludedIds = this.excludedIds;
|
|
26867
26916
|
target.searchAttribute = this.searchAttribute;
|
|
26917
|
+
target.searchAttributes = this.searchAttributes;
|
|
26868
26918
|
return target;
|
|
26869
26919
|
};
|
|
26870
26920
|
PersonFilter.prototype.buildFilter = function () {
|
|
@@ -26879,7 +26929,7 @@
|
|
|
26879
26929
|
filterFns.push(function (e) { return isNil(e.id) || !_this.excludedIds.includes(e.id); });
|
|
26880
26930
|
}
|
|
26881
26931
|
// Search text
|
|
26882
|
-
var searchTextFilter = EntityUtils.searchTextFilter(this.searchAttribute || ['lastName', 'firstName', 'department.name'], this.searchText);
|
|
26932
|
+
var searchTextFilter = EntityUtils.searchTextFilter(this.searchAttribute || this.searchAttributes || ['lastName', 'firstName', 'department.name'], this.searchText);
|
|
26883
26933
|
if (searchTextFilter)
|
|
26884
26934
|
filterFns.push(searchTextFilter);
|
|
26885
26935
|
return filterFns;
|
|
@@ -26891,16 +26941,16 @@
|
|
|
26891
26941
|
], exports.PersonFilter);
|
|
26892
26942
|
|
|
26893
26943
|
var PersonFragments = {
|
|
26894
|
-
person: core.gql(templateObject_1
|
|
26944
|
+
person: core.gql(templateObject_1 || (templateObject_1 = __makeTemplateObject(["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"], ["fragment PersonFragment on PersonVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n username\n usernameExtranet\n department {\n id\n label\n name\n logo\n __typename\n }\n __typename\n }"])))
|
|
26895
26945
|
};
|
|
26896
26946
|
// Load persons query
|
|
26897
26947
|
var PersonQueries = {
|
|
26898
|
-
loadAll: core.gql(templateObject_2
|
|
26899
|
-
loadAllWithTotal: core.gql(templateObject_3
|
|
26948
|
+
loadAll: core.gql(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""], ["\n query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
|
|
26949
|
+
loadAllWithTotal: core.gql(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""], ["\n query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){\n data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){\n ...PersonFragment\n }\n total: personsCount(filter: $filter)\n }\n ", ""])), PersonFragments.person)
|
|
26900
26950
|
};
|
|
26901
26951
|
var PersonMutations = {
|
|
26902
|
-
saveAll: core.gql(templateObject_4
|
|
26903
|
-
deleteAll: core.gql(templateObject_5
|
|
26952
|
+
saveAll: core.gql(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""], ["\n mutation savePersons($data:[PersonVOInput]){\n data: savePersons(persons: $data){\n ...PersonFragment\n }\n }\n ", ""])), PersonFragments.person),
|
|
26953
|
+
deleteAll: core.gql(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"], ["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"])))
|
|
26904
26954
|
};
|
|
26905
26955
|
var PersonService = /** @class */ (function (_super_1) {
|
|
26906
26956
|
__extends(PersonService, _super_1);
|
|
@@ -26962,13 +27012,14 @@
|
|
|
26962
27012
|
});
|
|
26963
27013
|
});
|
|
26964
27014
|
};
|
|
26965
|
-
PersonService.prototype.suggest = function (value, filter) {
|
|
27015
|
+
PersonService.prototype.suggest = function (value, filter, sortBy, sortDirection) {
|
|
26966
27016
|
return __awaiter(this, void 0, void 0, function () {
|
|
26967
27017
|
return __generator(this, function (_a) {
|
|
26968
27018
|
if (ReferentialUtils.isNotEmpty(value))
|
|
26969
27019
|
return [2 /*return*/, { data: [value] }];
|
|
26970
27020
|
value = (typeof value === 'string' && value !== '*') && value || undefined;
|
|
26971
|
-
|
|
27021
|
+
sortBy = sortBy || filter.searchAttribute || (filter.searchAttributes && filter.searchAttributes[0]);
|
|
27022
|
+
return [2 /*return*/, this.loadAll(0, !value ? 30 : 10, sortBy, sortDirection, Object.assign(Object.assign({}, filter), { searchText: value, statusIds: filter && filter.statusIds || [StatusIds.ENABLE], userProfiles: filter && filter.userProfiles }), { withTotal: true /* need by autocomplete */ })];
|
|
26972
27023
|
});
|
|
26973
27024
|
});
|
|
26974
27025
|
};
|
|
@@ -27023,7 +27074,7 @@
|
|
|
27023
27074
|
};
|
|
27024
27075
|
return PersonService;
|
|
27025
27076
|
}(BaseEntityService));
|
|
27026
|
-
PersonService.ɵprov =
|
|
27077
|
+
PersonService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(PlatformService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
27027
27078
|
PersonService.decorators = [
|
|
27028
27079
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
27029
27080
|
];
|
|
@@ -27033,7 +27084,7 @@
|
|
|
27033
27084
|
{ type: NetworkService },
|
|
27034
27085
|
{ type: EntitiesStorage }
|
|
27035
27086
|
]; };
|
|
27036
|
-
var templateObject_1
|
|
27087
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
27037
27088
|
|
|
27038
27089
|
var PersonValidatorService = /** @class */ (function () {
|
|
27039
27090
|
function PersonValidatorService(formBuilder, accountValidatorService) {
|
|
@@ -27056,7 +27107,7 @@
|
|
|
27056
27107
|
};
|
|
27057
27108
|
return PersonValidatorService;
|
|
27058
27109
|
}());
|
|
27059
|
-
PersonValidatorService.ɵprov =
|
|
27110
|
+
PersonValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder), i0__namespace.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
27060
27111
|
PersonValidatorService.decorators = [
|
|
27061
27112
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
27062
27113
|
];
|
|
@@ -27277,16 +27328,16 @@
|
|
|
27277
27328
|
];
|
|
27278
27329
|
AdminModule.ctorParameters = function () { return []; };
|
|
27279
27330
|
|
|
27280
|
-
var ɵ0
|
|
27331
|
+
var ɵ0 = {
|
|
27281
27332
|
profile: 'ADMIN'
|
|
27282
27333
|
};
|
|
27283
|
-
var routes
|
|
27334
|
+
var routes = [
|
|
27284
27335
|
{
|
|
27285
27336
|
path: 'users',
|
|
27286
27337
|
pathMatch: 'full',
|
|
27287
27338
|
component: UsersPage,
|
|
27288
27339
|
canActivate: [AuthGuardService],
|
|
27289
|
-
data: ɵ0
|
|
27340
|
+
data: ɵ0
|
|
27290
27341
|
}
|
|
27291
27342
|
];
|
|
27292
27343
|
var AdminRoutingModule = /** @class */ (function () {
|
|
@@ -27299,13 +27350,13 @@
|
|
|
27299
27350
|
imports: [
|
|
27300
27351
|
SharedRoutingModule,
|
|
27301
27352
|
AdminModule,
|
|
27302
|
-
i3.RouterModule.forChild(routes
|
|
27353
|
+
i3.RouterModule.forChild(routes)
|
|
27303
27354
|
],
|
|
27304
27355
|
exports: [i3.RouterModule]
|
|
27305
27356
|
},] }
|
|
27306
27357
|
];
|
|
27307
27358
|
|
|
27308
|
-
var ErrorCodes
|
|
27359
|
+
var ErrorCodes = {
|
|
27309
27360
|
LOAD_PERSONS_ERROR: 100,
|
|
27310
27361
|
SAVE_PERSONS_ERROR: 101,
|
|
27311
27362
|
DELETE_PERSONS_ERROR: 102,
|
|
@@ -27414,7 +27465,7 @@
|
|
|
27414
27465
|
exports.EntityStore = EntityStore;
|
|
27415
27466
|
exports.EntityUtils = EntityUtils;
|
|
27416
27467
|
exports.Environment = Environment;
|
|
27417
|
-
exports.ErrorCodes = ErrorCodes
|
|
27468
|
+
exports.ErrorCodes = ErrorCodes;
|
|
27418
27469
|
exports.EvenPipe = EvenPipe;
|
|
27419
27470
|
exports.FileService = FileService;
|
|
27420
27471
|
exports.FileSizePipe = FileSizePipe;
|
|
@@ -27422,7 +27473,7 @@
|
|
|
27422
27473
|
exports.FormButtonsBarComponent = FormButtonsBarComponent;
|
|
27423
27474
|
exports.FormButtonsBarToken = FormButtonsBarToken;
|
|
27424
27475
|
exports.FormFieldValuesHolder = FormFieldValuesHolder;
|
|
27425
|
-
exports.Fragments = Fragments
|
|
27476
|
+
exports.Fragments = Fragments;
|
|
27426
27477
|
exports.GraphqlService = GraphqlService;
|
|
27427
27478
|
exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
|
|
27428
27479
|
exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;
|
|
@@ -27669,17 +27720,17 @@
|
|
|
27669
27720
|
exports.waitFor = waitFor;
|
|
27670
27721
|
exports.waitIdle = waitIdle;
|
|
27671
27722
|
exports.waitWhilePending = waitWhilePending;
|
|
27672
|
-
exports
|
|
27673
|
-
exports
|
|
27674
|
-
exports
|
|
27675
|
-
exports
|
|
27676
|
-
exports
|
|
27677
|
-
exports
|
|
27678
|
-
exports
|
|
27679
|
-
exports
|
|
27680
|
-
exports
|
|
27723
|
+
exports["ɵ0"] = ɵ0$5;
|
|
27724
|
+
exports["ɵa"] = CustomReuseStrategy;
|
|
27725
|
+
exports["ɵb"] = MatNumpadDomService;
|
|
27726
|
+
exports["ɵc"] = isFocusableElement;
|
|
27727
|
+
exports["ɵd"] = RegisterForm;
|
|
27728
|
+
exports["ɵe"] = AccountValidatorService;
|
|
27729
|
+
exports["ɵf"] = RegisterModal;
|
|
27730
|
+
exports["ɵg"] = UserSettingsValidatorService;
|
|
27731
|
+
exports["ɵh"] = LocalSettingsValidatorService;
|
|
27681
27732
|
|
|
27682
27733
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
27683
27734
|
|
|
27684
|
-
}))
|
|
27685
|
-
//# sourceMappingURL=ngx-
|
|
27735
|
+
}));
|
|
27736
|
+
//# sourceMappingURL=sumaris-net.ngx-components.umd.js.map
|