@sumaris-net/ngx-components 1.18.7 → 1.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sumaris-net.ngx-components.umd.js +804 -429
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +10 -0
- package/esm2015/public_api.js +10 -5
- package/esm2015/src/app/admin/admin-routing.module.js +3 -1
- package/esm2015/src/app/admin/admin.module.js +2 -1
- package/esm2015/src/app/admin/users/list/users.js +45 -7
- package/esm2015/src/app/core/services/base-entity-service.class.js +6 -6
- package/esm2015/src/app/core/services/local-settings.service.js +5 -5
- package/esm2015/src/app/core/services/model/referential.model.js +1 -1
- package/esm2015/src/app/core/services/platform.service.js +3 -4
- package/esm2015/src/app/shared/material/datetime/material.date.js +82 -70
- package/esm2015/src/app/shared/material/datetime/material.datetime.js +3 -3
- package/esm2015/src/app/shared/material/datetime/testing/mat-date.test.js +7 -5
- package/esm2015/src/app/shared/platforms.js +20 -4
- package/esm2015/src/app/shared/validator/validators.js +2 -2
- package/esm2015/src/app/social/message/message.form.js +73 -0
- package/esm2015/src/app/social/message/message.modal.js +96 -0
- package/esm2015/src/app/social/message/message.model.js +65 -0
- package/esm2015/src/app/social/message/message.service.js +87 -0
- package/esm2015/src/app/social/social.errors.js +6 -0
- package/esm2015/src/app/social/social.module.js +12 -15
- package/esm2015/src/app/social/user-event/user-event.fragments.js +27 -0
- package/esm2015/src/app/social/user-event/user-event.model.js +46 -0
- package/esm2015/src/app/social/user-event/user-event.service.js +367 -0
- package/esm2015/src/app/social/user-event/user-events.table.js +154 -0
- package/fesm2015/sumaris-net.ngx-components.js +734 -411
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +4 -3
- package/public_api.d.ts +9 -4
- package/src/app/admin/users/list/users.d.ts +10 -6
- package/src/app/core/services/local-settings.service.d.ts +3 -2
- package/src/app/core/services/model/referential.model.d.ts +7 -7
- package/src/app/shared/material/datetime/material.date.d.ts +6 -8
- package/src/app/shared/material/datetime/material.datetime.d.ts +2 -2
- package/src/app/shared/platforms.d.ts +1 -1
- package/src/app/social/message/message.form.d.ts +27 -0
- package/src/app/social/message/message.modal.d.ts +36 -0
- package/src/app/social/message/message.model.d.ts +31 -0
- package/src/app/social/message/message.service.d.ts +24 -0
- package/src/app/social/{services/errors.d.ts → social.errors.d.ts} +2 -1
- package/src/app/social/social.module.d.ts +0 -2
- package/src/app/social/{services/social.fragments.d.ts → user-event/user-event.fragments.d.ts} +1 -1
- package/src/app/social/{services/model → user-event}/user-event.model.d.ts +1 -1
- package/src/app/social/{services → user-event}/user-event.service.d.ts +4 -3
- package/src/app/social/{list → user-event}/user-events.table.d.ts +2 -2
- package/src/assets/i18n/en-US.json +23 -4
- package/src/assets/i18n/en.json +23 -4
- package/src/assets/i18n/fr.json +25 -5
- package/src/theme/_ionic.globals.scss +2 -1
- package/sumaris-net.ngx-components.metadata.json +1 -1
- package/esm2015/src/app/admin/services/errors.js +0 -6
- package/esm2015/src/app/social/list/user-events.table.js +0 -154
- package/esm2015/src/app/social/services/errors.js +0 -5
- package/esm2015/src/app/social/services/model/user-event.model.js +0 -46
- package/esm2015/src/app/social/services/social.fragments.js +0 -27
- package/esm2015/src/app/social/services/user-event.service.js +0 -367
- package/src/app/admin/services/errors.d.ts +0 -5
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
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('@angular/animations'), require('@ngx-translate/core'), require('@ionic/angular'), require('moment'), require('@angular/material-moment-adapter'), require('moment-timezone'), require('@ionic-native/keyboard/ngx'), require('angular2-text-mask'), require('ngx-material-timepicker'), require('@angular/material/datepicker'), require('@angular/material/divider'), require('@angular/material/tooltip'), require('@angular/material/chips'), require('@angular/router'), require('@angular/platform-browser'), require('@angular/common/http'), require('ngx-color-picker'), require('@ionic-native/native-audio/ngx'), require('@ionic-native/vibration/ngx'), require('@ionic-native/audio-management/ngx'), require('@ionic-native/native-audio/ngx/index'), require('@ionic-native/vibration/ngx/index'), require('@ionic-native/audio-management/ngx/index'), require('uuid/v4'), require('@angular/cdk/drag-drop'), require('ngx-markdown'), require('tweetnacl'), require('@ionic/storage'), require('zone.js/dist/zone-error'), require('@ionic-native/splash-screen/ngx'), require('@ionic-native/network/ngx'), require('ionic-cache'), require('ionic-cache/dist/cache.service'), require('@ionic-native/network/ngx/index'), require('@ionic-native/splash-screen/ngx/index'), require('@ionic-native/status-bar/ngx'), require('@angular/cdk/platform'), require('@ionic-native/in-app-browser/ngx'), require('@apollo/client/core'), require('apollo-angular'), require('@apollo/client/link/ws'), require('@apollo/client/utilities'), require('@apollo/client/link/retry'), require('apollo-link-queue'), require('apollo-link-serialize'), require('apollo-link-logger'), require('apollo-angular/http'), require('apollo3-cache-persist'), require('@ionic-native/downloader/ngx'), require('@ionic-native/status-bar/ngx/index'), require('@ionic-native/keyboard/ngx/index'), require('@ionic-native/in-app-browser/ngx/index'), require('@ionic-native/downloader/ngx/index'), require('@angular/cdk/text-field'), require('@e-is/ngx-material-table'), require('@angular/cdk/collections'), require('ngx-jdenticon'), require('tweetnacl-util'), require('scrypt-async'), require('hammerjs')) :
|
|
3
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', '@angular/animations', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', 'moment-timezone', '@ionic-native/keyboard/ngx', 'angular2-text-mask', 'ngx-material-timepicker', '@angular/material/datepicker', '@angular/material/divider', '@angular/material/tooltip', '@angular/material/chips', '@angular/router', '@angular/platform-browser', '@angular/common/http', 'ngx-color-picker', '@ionic-native/native-audio/ngx', '@ionic-native/vibration/ngx', '@ionic-native/audio-management/ngx', '@ionic-native/native-audio/ngx/index', '@ionic-native/vibration/ngx/index', '@ionic-native/audio-management/ngx/index', 'uuid/v4', '@angular/cdk/drag-drop', 'ngx-markdown', 'tweetnacl', '@ionic/storage', 'zone.js/dist/zone-error', '@ionic-native/splash-screen/ngx', '@ionic-native/network/ngx', 'ionic-cache', 'ionic-cache/dist/cache.service', '@ionic-native/network/ngx/index', '@ionic-native/splash-screen/ngx/index', '@ionic-native/status-bar/ngx', '@angular/cdk/platform', '@ionic-native/in-app-browser/ngx', '@apollo/client/core', 'apollo-angular', '@apollo/client/link/ws', '@apollo/client/utilities', '@apollo/client/link/retry', 'apollo-link-queue', 'apollo-link-serialize', 'apollo-link-logger', 'apollo-angular/http', 'apollo3-cache-persist', '@ionic-native/downloader/ngx', '@ionic-native/status-bar/ngx/index', '@ionic-native/keyboard/ngx/index', '@ionic-native/in-app-browser/ngx/index', '@ionic-native/downloader/ngx/index', '@angular/cdk/text-field', '@e-is/ngx-material-table', '@angular/cdk/collections', 'ngx-jdenticon', 'tweetnacl-util', 'scrypt-async', 'hammerjs'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global[
|
|
5
|
-
}
|
|
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.ng.animations, global['ngx-translate'].core, global.ionic.angular, global.moment, global.ng.materialMomentAdapter, global['moment-timezone'], global['ionic-native'].keyboard.ngx, global['angular2-text-mask'], global['ngx-material-timepicker'], global.ng.material.datepicker, global.ng.material.divider, global.ng.material.tooltip, global.ng.material.chips, global.ng.router, global.ng.platformBrowser, global.ng.common.http, global['ngx-color-picker'], global['ionic-native']['native-audio'].ngx, global['ionic-native'].vibration.ngx, global['ionic-native']['audio-management'].ngx, global['ionic-native']['native-audio'].ngx.index, global['ionic-native'].vibration.ngx.index, global['ionic-native']['audio-management'].ngx.index, global.uuid.v4, global.ng.cdk.dragDrop, global['ngx-markdown'], global.tweetnacl, global.ionic.storage, null, global['ionic-native']['splash-screen'].ngx, global['ionic-native'].network.ngx, global['ionic-cache'], global['ionic-cache/dist/cache'].service, global['ionic-native'].network.ngx.index, global['ionic-native']['splash-screen'].ngx.index, global['ionic-native']['status-bar'].ngx, global.ng.cdk.platform, global['ionic-native']['in-app-browser'].ngx, global.apollo.client.core, global['apollo-angular'], global.apollo.client.link.ws, global.apollo.client.utilities, global.apollo.client.link.retry, global['apollo-link-queue'], global['apollo-link-serialize'], global['apollo-link-logger'], global['apollo-angular'].http, global['apollo3-cache-persist'], global['ionic-native'].downloader.ngx, global['ionic-native']['status-bar'].ngx.index, global['ionic-native'].keyboard.ngx.index, global['ionic-native']['in-app-browser'].ngx.index, global['ionic-native'].downloader.ngx.index, global.ng.cdk.textField, global['e-is']['ngx-material-table'], global.ng.cdk.collections, global['ngx-jdenticon']));
|
|
5
|
+
}(this, (function (exports, i0, i1$4, table$1, a11y, overlay, scrolling, i1$3, table, sort$1, paginator, formField, input, checkbox, expansion, toolbar, icon, button, menu, select, card, tabs, stepper, list, buttonToggle, progressSpinner, progressBar, radio, badge, slideToggle, i2, autocomplete, i1, rxjs, operators, animations, i1$2, i1$5, momentImported, i1$1, momentTZImported, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, divider, tooltip, chips, i3, i1$6, i2$1, ngxColorPicker, ngx$2, ngx$3, ngx$1, i2$2, i3$1, i4, uuidv4Imported, dragDrop, ngxMarkdown, tweetnacl, i3$2, zoneError, ngx$5, ngx$4, ionicCache, i6, i9, i10, ngx$7, i2$4, ngx$8, core, i2$3, ws, utilities, retry, QueueLink, SerializingLink, loggerLink, i3$3, apollo3CachePersist, ngx$6, i14, i15, i17, i18, textField, ngxMaterialTable, collections, ngxJdenticon) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -15,46 +15,23 @@
|
|
|
15
15
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
16
|
Object.defineProperty(n, k, d.get ? d : {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () {
|
|
18
|
+
get: function () {
|
|
19
|
+
return e[k];
|
|
20
|
+
}
|
|
19
21
|
});
|
|
20
22
|
}
|
|
21
23
|
});
|
|
22
24
|
}
|
|
23
|
-
n[
|
|
25
|
+
n['default'] = e;
|
|
24
26
|
return Object.freeze(n);
|
|
25
27
|
}
|
|
26
28
|
|
|
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);
|
|
34
29
|
var momentImported__namespace = /*#__PURE__*/_interopNamespace(momentImported);
|
|
35
|
-
var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
|
|
36
30
|
var momentTZImported__namespace = /*#__PURE__*/_interopNamespace(momentTZImported);
|
|
37
|
-
var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3);
|
|
38
|
-
var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$6);
|
|
39
|
-
var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$1);
|
|
40
|
-
var i2__namespace = /*#__PURE__*/_interopNamespace(i2$2);
|
|
41
|
-
var i3__namespace = /*#__PURE__*/_interopNamespace(i3$1);
|
|
42
|
-
var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
|
|
43
31
|
var uuidv4Imported__namespace = /*#__PURE__*/_interopNamespace(uuidv4Imported);
|
|
44
|
-
var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$2);
|
|
45
|
-
var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
|
|
46
|
-
var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
|
|
47
|
-
var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
|
|
48
|
-
var i2__namespace$4 = /*#__PURE__*/_interopNamespace(i2$4);
|
|
49
|
-
var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
|
|
50
32
|
var QueueLink__default = /*#__PURE__*/_interopDefaultLegacy(QueueLink);
|
|
51
33
|
var SerializingLink__default = /*#__PURE__*/_interopDefaultLegacy(SerializingLink);
|
|
52
34
|
var loggerLink__default = /*#__PURE__*/_interopDefaultLegacy(loggerLink);
|
|
53
|
-
var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$3);
|
|
54
|
-
var i14__namespace = /*#__PURE__*/_interopNamespace(i14);
|
|
55
|
-
var i15__namespace = /*#__PURE__*/_interopNamespace(i15);
|
|
56
|
-
var i17__namespace = /*#__PURE__*/_interopNamespace(i17);
|
|
57
|
-
var i18__namespace = /*#__PURE__*/_interopNamespace(i18);
|
|
58
35
|
|
|
59
36
|
var ENVIRONMENT = new i0.InjectionToken('ENV');
|
|
60
37
|
var Environment = /** @class */ (function () {
|
|
@@ -1354,6 +1331,10 @@
|
|
|
1354
1331
|
/* ---
|
|
1355
1332
|
* Source: https://github.com/ionic-team/ionic-framework/blob/b0d53ca73619585671d8cf4dc24e47f826495a0a/core/src/utils/platform.ts
|
|
1356
1333
|
* --- */
|
|
1334
|
+
var _cache = {
|
|
1335
|
+
mobile: null,
|
|
1336
|
+
cordova: null
|
|
1337
|
+
};
|
|
1357
1338
|
var matchMedia = function (win, query) { return win.matchMedia(query).matches; };
|
|
1358
1339
|
var testUserAgent = function (win, expr) {
|
|
1359
1340
|
var userAgent = win.navigator.userAgent || win.navigator.vendor || window.opera;
|
|
@@ -1361,22 +1342,34 @@
|
|
|
1361
1342
|
};
|
|
1362
1343
|
var isWindows = function (win) { return testUserAgent(win, /windows/i); };
|
|
1363
1344
|
var isTouchUi = function (win) { return matchMedia(win, '(any-pointer:coarse)'); };
|
|
1364
|
-
var isMobile = function (win) { return isCordova(window) || isAndroid(win) || isIOS(window) || (isTouchUi(win) && !isWindows(win)); };
|
|
1365
1345
|
var isIpad = function (win) {
|
|
1366
1346
|
// iOS 12 and below
|
|
1367
1347
|
if (testUserAgent(win, /iPad/i)) {
|
|
1368
1348
|
return true;
|
|
1369
1349
|
}
|
|
1370
1350
|
// iOS 13+
|
|
1371
|
-
if (testUserAgent(win, /Macintosh/i) &&
|
|
1351
|
+
if (testUserAgent(win, /Macintosh/i) && isTouchUi(win)) {
|
|
1372
1352
|
return true;
|
|
1373
1353
|
}
|
|
1374
1354
|
return false;
|
|
1375
1355
|
};
|
|
1376
|
-
var ɵ0
|
|
1356
|
+
var ɵ0 = isIpad;
|
|
1377
1357
|
var isIOS = function (win) { return testUserAgent(win, /iPhone|iPod/i) || isIpad(win); };
|
|
1378
1358
|
var isAndroid = function (win) { return testUserAgent(win, /android|sink/i); };
|
|
1379
|
-
var isCordova = function (win) {
|
|
1359
|
+
var isCordova = function (win) {
|
|
1360
|
+
if (_cache.cordova === null || _cache.cordova === undefined) {
|
|
1361
|
+
_cache.cordova = !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
|
1362
|
+
}
|
|
1363
|
+
return _cache.cordova;
|
|
1364
|
+
};
|
|
1365
|
+
var isMobile = function (win) {
|
|
1366
|
+
if (_cache.mobile === null || _cache.mobile === undefined) {
|
|
1367
|
+
_cache.mobile = isCordova(window)
|
|
1368
|
+
|| isAndroid(win) || isIOS(window)
|
|
1369
|
+
|| (isTouchUi(win) && !isWindows(win));
|
|
1370
|
+
}
|
|
1371
|
+
return _cache.mobile;
|
|
1372
|
+
};
|
|
1380
1373
|
|
|
1381
1374
|
var MatAutocompleteConfigHolder = /** @class */ (function () {
|
|
1382
1375
|
function MatAutocompleteConfigHolder(options) {
|
|
@@ -1436,14 +1429,14 @@
|
|
|
1436
1429
|
};
|
|
1437
1430
|
return MatAutocompleteFieldUtils;
|
|
1438
1431
|
}());
|
|
1439
|
-
var noop
|
|
1440
|
-
var ɵ0$
|
|
1432
|
+
var noop = function (_) { };
|
|
1433
|
+
var ɵ0$1 = noop;
|
|
1441
1434
|
var MatAutocompleteField = /** @class */ (function () {
|
|
1442
1435
|
function MatAutocompleteField(cd, formGroupDir) {
|
|
1443
1436
|
this.cd = cd;
|
|
1444
1437
|
this.formGroupDir = formGroupDir;
|
|
1445
|
-
this._onChangeCallback = noop
|
|
1446
|
-
this._onTouchedCallback = noop
|
|
1438
|
+
this._onChangeCallback = noop;
|
|
1439
|
+
this._onTouchedCallback = noop;
|
|
1447
1440
|
this.logPrefix = '[mat-autocomplete] ';
|
|
1448
1441
|
this.formControlName = null;
|
|
1449
1442
|
this.required = false;
|
|
@@ -2269,7 +2262,7 @@
|
|
|
2269
2262
|
};
|
|
2270
2263
|
return DateFormatPipe;
|
|
2271
2264
|
}());
|
|
2272
|
-
DateFormatPipe.ɵprov =
|
|
2265
|
+
DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1$1.MomentDateAdapter), i0.ɵɵinject(i1$2.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
2273
2266
|
DateFormatPipe.decorators = [
|
|
2274
2267
|
{ type: i0.Pipe, args: [{
|
|
2275
2268
|
name: 'dateFormat'
|
|
@@ -2281,7 +2274,7 @@
|
|
|
2281
2274
|
{ type: i1$2.TranslateService }
|
|
2282
2275
|
]; };
|
|
2283
2276
|
|
|
2284
|
-
var moment
|
|
2277
|
+
var moment = momentImported__namespace;
|
|
2285
2278
|
var DateDiffDurationPipe = /** @class */ (function () {
|
|
2286
2279
|
function DateDiffDurationPipe(dateAdapter, translate) {
|
|
2287
2280
|
var _this = this;
|
|
@@ -2298,10 +2291,10 @@
|
|
|
2298
2291
|
return this.format(startDate, endDate);
|
|
2299
2292
|
};
|
|
2300
2293
|
DateDiffDurationPipe.prototype.format = function (startDate, endDate) {
|
|
2301
|
-
var duration = moment
|
|
2294
|
+
var duration = moment.duration(endDate.diff(startDate));
|
|
2302
2295
|
if (duration.asMinutes() < 0)
|
|
2303
2296
|
return '';
|
|
2304
|
-
var timeDuration = moment
|
|
2297
|
+
var timeDuration = moment(0)
|
|
2305
2298
|
.hour(duration.hours())
|
|
2306
2299
|
.minute(duration.minutes());
|
|
2307
2300
|
var days = Math.floor(duration.asDays());
|
|
@@ -2309,7 +2302,7 @@
|
|
|
2309
2302
|
};
|
|
2310
2303
|
return DateDiffDurationPipe;
|
|
2311
2304
|
}());
|
|
2312
|
-
DateDiffDurationPipe.ɵprov =
|
|
2305
|
+
DateDiffDurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0.ɵɵinject(i1$3.DateAdapter), i0.ɵɵinject(i1$2.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
2313
2306
|
DateDiffDurationPipe.decorators = [
|
|
2314
2307
|
{ type: i0.Pipe, args: [{
|
|
2315
2308
|
name: 'dateDiffDuration'
|
|
@@ -2331,7 +2324,7 @@
|
|
|
2331
2324
|
};
|
|
2332
2325
|
return DateFromNowPipe;
|
|
2333
2326
|
}());
|
|
2334
|
-
DateFromNowPipe.ɵprov =
|
|
2327
|
+
DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1$1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
2335
2328
|
DateFromNowPipe.decorators = [
|
|
2336
2329
|
{ type: i0.Pipe, args: [{
|
|
2337
2330
|
name: 'dateFromNow'
|
|
@@ -2400,7 +2393,7 @@
|
|
|
2400
2393
|
value *= -1;
|
|
2401
2394
|
}
|
|
2402
2395
|
}
|
|
2403
|
-
var degrees = roundFloat
|
|
2396
|
+
var degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
2404
2397
|
// Add sign
|
|
2405
2398
|
var sign = negative ? '-' : '+';
|
|
2406
2399
|
if (opts.placeholderChar) {
|
|
@@ -2451,7 +2444,7 @@
|
|
|
2451
2444
|
}
|
|
2452
2445
|
var degrees = Math.trunc(value);
|
|
2453
2446
|
var minutes = Math.trunc((value - degrees) * 60);
|
|
2454
|
-
var seconds = roundFloat
|
|
2447
|
+
var seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
2455
2448
|
while (seconds >= 60) {
|
|
2456
2449
|
seconds -= 60;
|
|
2457
2450
|
minutes += 1;
|
|
@@ -2519,7 +2512,7 @@
|
|
|
2519
2512
|
}
|
|
2520
2513
|
}
|
|
2521
2514
|
var degrees = Math.trunc(value);
|
|
2522
|
-
var minutes = roundFloat
|
|
2515
|
+
var minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
2523
2516
|
while (minutes >= 60) {
|
|
2524
2517
|
minutes -= 60;
|
|
2525
2518
|
degrees += 1;
|
|
@@ -2570,15 +2563,15 @@
|
|
|
2570
2563
|
return NaN;
|
|
2571
2564
|
}
|
|
2572
2565
|
if (pattern === 'DD')
|
|
2573
|
-
return roundFloat
|
|
2566
|
+
return roundFloat(degrees, maxDecimals);
|
|
2574
2567
|
var minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
2575
2568
|
var seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
2576
2569
|
var direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
2577
2570
|
var sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
2578
2571
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
2579
|
-
return roundFloat
|
|
2572
|
+
return roundFloat(degrees, maxDecimals);
|
|
2580
2573
|
}
|
|
2581
|
-
function roundFloat
|
|
2574
|
+
function roundFloat(input, maxDecimals) {
|
|
2582
2575
|
if (maxDecimals > 0) {
|
|
2583
2576
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
2584
2577
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -2601,7 +2594,7 @@
|
|
|
2601
2594
|
};
|
|
2602
2595
|
return LatLongFormatPipe;
|
|
2603
2596
|
}());
|
|
2604
|
-
LatLongFormatPipe.ɵprov =
|
|
2597
|
+
LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
2605
2598
|
LatLongFormatPipe.decorators = [
|
|
2606
2599
|
{ type: i0.Pipe, args: [{
|
|
2607
2600
|
name: 'latLongFormat'
|
|
@@ -2614,7 +2607,7 @@
|
|
|
2614
2607
|
}
|
|
2615
2608
|
return LatitudeFormatPipe;
|
|
2616
2609
|
}());
|
|
2617
|
-
LatitudeFormatPipe.ɵprov =
|
|
2610
|
+
LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
2618
2611
|
LatitudeFormatPipe.decorators = [
|
|
2619
2612
|
{ type: i0.Pipe, args: [{
|
|
2620
2613
|
name: 'latitudeFormat'
|
|
@@ -2627,7 +2620,7 @@
|
|
|
2627
2620
|
}
|
|
2628
2621
|
return LongitudeFormatPipe;
|
|
2629
2622
|
}());
|
|
2630
|
-
LongitudeFormatPipe.ɵprov =
|
|
2623
|
+
LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
2631
2624
|
LongitudeFormatPipe.decorators = [
|
|
2632
2625
|
{ type: i0.Pipe, args: [{
|
|
2633
2626
|
name: 'longitudeFormat'
|
|
@@ -2650,7 +2643,7 @@
|
|
|
2650
2643
|
};
|
|
2651
2644
|
return NumberFormatPipe;
|
|
2652
2645
|
}());
|
|
2653
|
-
NumberFormatPipe.ɵprov =
|
|
2646
|
+
NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
2654
2647
|
NumberFormatPipe.decorators = [
|
|
2655
2648
|
{ type: i0.Pipe, args: [{
|
|
2656
2649
|
name: 'numberFormat'
|
|
@@ -2693,7 +2686,7 @@
|
|
|
2693
2686
|
};
|
|
2694
2687
|
return HighlightPipe;
|
|
2695
2688
|
}());
|
|
2696
|
-
HighlightPipe.ɵprov =
|
|
2689
|
+
HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
2697
2690
|
HighlightPipe.decorators = [
|
|
2698
2691
|
{ type: i0.Pipe, args: [{
|
|
2699
2692
|
name: 'highlight'
|
|
@@ -2761,7 +2754,7 @@
|
|
|
2761
2754
|
{ type: i0.Pipe, args: [{ name: 'fileSize' },] }
|
|
2762
2755
|
];
|
|
2763
2756
|
|
|
2764
|
-
var moment$
|
|
2757
|
+
var moment$1 = momentImported__namespace;
|
|
2765
2758
|
var tz = momentTZImported__namespace;
|
|
2766
2759
|
var DATE_UNIX_TIMESTAMP = 'X';
|
|
2767
2760
|
var DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
@@ -2839,32 +2832,32 @@
|
|
|
2839
2832
|
if (!value || momentImported.isMoment(value))
|
|
2840
2833
|
return value;
|
|
2841
2834
|
// Parse the input value, as a ISO date time
|
|
2842
|
-
var date = moment$
|
|
2835
|
+
var date = moment$1(value, DATE_ISO_PATTERN);
|
|
2843
2836
|
if (date.isValid())
|
|
2844
2837
|
return date;
|
|
2845
2838
|
// Not valid: trying to convert from unix timestamp
|
|
2846
2839
|
if (typeof value === 'string') {
|
|
2847
2840
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2848
2841
|
if (value.length === 10) {
|
|
2849
|
-
return moment$
|
|
2842
|
+
return moment$1(value, DATE_UNIX_TIMESTAMP);
|
|
2850
2843
|
}
|
|
2851
2844
|
else if (value.length === 13) {
|
|
2852
|
-
return moment$
|
|
2845
|
+
return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2853
2846
|
}
|
|
2854
2847
|
}
|
|
2855
2848
|
console.warn('Unable to parse date: ' + value);
|
|
2856
2849
|
return undefined;
|
|
2857
2850
|
}
|
|
2858
2851
|
function fromUnixTimestamp(timeInSec) {
|
|
2859
|
-
return moment$
|
|
2852
|
+
return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2860
2853
|
}
|
|
2861
2854
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2862
|
-
return moment$
|
|
2855
|
+
return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2863
2856
|
}
|
|
2864
2857
|
function toDuration(value, unit) {
|
|
2865
2858
|
if (!value)
|
|
2866
2859
|
return undefined;
|
|
2867
|
-
var duration = moment$
|
|
2860
|
+
var duration = moment$1.duration(value, unit);
|
|
2868
2861
|
// fix 990+ ms
|
|
2869
2862
|
if (duration.milliseconds() >= 990) {
|
|
2870
2863
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2894,7 +2887,7 @@
|
|
|
2894
2887
|
};
|
|
2895
2888
|
return DurationPipe;
|
|
2896
2889
|
}());
|
|
2897
|
-
DurationPipe.ɵprov =
|
|
2890
|
+
DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$2.TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2898
2891
|
DurationPipe.decorators = [
|
|
2899
2892
|
{ type: i0.Pipe, args: [{
|
|
2900
2893
|
name: 'duration'
|
|
@@ -2918,7 +2911,7 @@
|
|
|
2918
2911
|
};
|
|
2919
2912
|
return MathAbsPipe;
|
|
2920
2913
|
}());
|
|
2921
|
-
MathAbsPipe.ɵprov =
|
|
2914
|
+
MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2922
2915
|
MathAbsPipe.decorators = [
|
|
2923
2916
|
{ type: i0.Pipe, args: [{
|
|
2924
2917
|
name: 'mathAbs'
|
|
@@ -2933,7 +2926,7 @@
|
|
|
2933
2926
|
};
|
|
2934
2927
|
return EvenPipe;
|
|
2935
2928
|
}());
|
|
2936
|
-
EvenPipe.ɵprov =
|
|
2929
|
+
EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2937
2930
|
EvenPipe.decorators = [
|
|
2938
2931
|
{ type: i0.Pipe, args: [{
|
|
2939
2932
|
name: 'even'
|
|
@@ -2948,7 +2941,7 @@
|
|
|
2948
2941
|
};
|
|
2949
2942
|
return OddPipe;
|
|
2950
2943
|
}());
|
|
2951
|
-
OddPipe.ɵprov =
|
|
2944
|
+
OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2952
2945
|
OddPipe.decorators = [
|
|
2953
2946
|
{ type: i0.Pipe, args: [{
|
|
2954
2947
|
name: 'odd'
|
|
@@ -3080,7 +3073,7 @@
|
|
|
3080
3073
|
};
|
|
3081
3074
|
return MapGetPipe;
|
|
3082
3075
|
}());
|
|
3083
|
-
MapGetPipe.ɵprov =
|
|
3076
|
+
MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
3084
3077
|
MapGetPipe.decorators = [
|
|
3085
3078
|
{ type: i0.Pipe, args: [{
|
|
3086
3079
|
name: 'mapGet'
|
|
@@ -3097,7 +3090,7 @@
|
|
|
3097
3090
|
};
|
|
3098
3091
|
return MapKeysPipe;
|
|
3099
3092
|
}());
|
|
3100
|
-
MapKeysPipe.ɵprov =
|
|
3093
|
+
MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
3101
3094
|
MapKeysPipe.decorators = [
|
|
3102
3095
|
{ type: i0.Pipe, args: [{
|
|
3103
3096
|
name: 'mapKeys'
|
|
@@ -3114,7 +3107,7 @@
|
|
|
3114
3107
|
};
|
|
3115
3108
|
return MapValuesPipe;
|
|
3116
3109
|
}());
|
|
3117
|
-
MapValuesPipe.ɵprov =
|
|
3110
|
+
MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
3118
3111
|
MapValuesPipe.decorators = [
|
|
3119
3112
|
{ type: i0.Pipe, args: [{
|
|
3120
3113
|
name: 'mapValues'
|
|
@@ -3130,7 +3123,7 @@
|
|
|
3130
3123
|
};
|
|
3131
3124
|
return IsNotNilOrBlankPipe;
|
|
3132
3125
|
}());
|
|
3133
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
3126
|
+
IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
3134
3127
|
IsNotNilOrBlankPipe.decorators = [
|
|
3135
3128
|
{ type: i0.Pipe, args: [{
|
|
3136
3129
|
name: 'isNotNilOrBlank'
|
|
@@ -3145,7 +3138,7 @@
|
|
|
3145
3138
|
};
|
|
3146
3139
|
return IsNilOrBlankPipe;
|
|
3147
3140
|
}());
|
|
3148
|
-
IsNilOrBlankPipe.ɵprov =
|
|
3141
|
+
IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
3149
3142
|
IsNilOrBlankPipe.decorators = [
|
|
3150
3143
|
{ type: i0.Pipe, args: [{
|
|
3151
3144
|
name: 'isNilOrBlank'
|
|
@@ -3160,7 +3153,7 @@
|
|
|
3160
3153
|
};
|
|
3161
3154
|
return ToStringPipe;
|
|
3162
3155
|
}());
|
|
3163
|
-
ToStringPipe.ɵprov =
|
|
3156
|
+
ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
3164
3157
|
ToStringPipe.decorators = [
|
|
3165
3158
|
{ type: i0.Pipe, args: [{
|
|
3166
3159
|
name: 'toString'
|
|
@@ -3175,7 +3168,7 @@
|
|
|
3175
3168
|
};
|
|
3176
3169
|
return StrLengthPipe;
|
|
3177
3170
|
}());
|
|
3178
|
-
StrLengthPipe.ɵprov =
|
|
3171
|
+
StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
3179
3172
|
StrLengthPipe.decorators = [
|
|
3180
3173
|
{ type: i0.Pipe, args: [{
|
|
3181
3174
|
name: 'strLength'
|
|
@@ -3190,7 +3183,7 @@
|
|
|
3190
3183
|
};
|
|
3191
3184
|
return StrIncludesPipe;
|
|
3192
3185
|
}());
|
|
3193
|
-
StrIncludesPipe.ɵprov =
|
|
3186
|
+
StrIncludesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrIncludesPipe_Factory() { return new StrIncludesPipe(); }, token: StrIncludesPipe, providedIn: "root" });
|
|
3194
3187
|
StrIncludesPipe.decorators = [
|
|
3195
3188
|
{ type: i0.Pipe, args: [{
|
|
3196
3189
|
name: 'strIncludes'
|
|
@@ -3281,7 +3274,7 @@
|
|
|
3281
3274
|
};
|
|
3282
3275
|
return TranslateContextService;
|
|
3283
3276
|
}());
|
|
3284
|
-
TranslateContextService.ɵprov =
|
|
3277
|
+
TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$2.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
3285
3278
|
TranslateContextService.decorators = [
|
|
3286
3279
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
3287
3280
|
];
|
|
@@ -3338,7 +3331,7 @@
|
|
|
3338
3331
|
};
|
|
3339
3332
|
return PropertyGetPipe;
|
|
3340
3333
|
}());
|
|
3341
|
-
PropertyGetPipe.ɵprov =
|
|
3334
|
+
PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
3342
3335
|
PropertyGetPipe.decorators = [
|
|
3343
3336
|
{ type: i0.Pipe, args: [{
|
|
3344
3337
|
name: 'propertyGet'
|
|
@@ -3364,7 +3357,7 @@
|
|
|
3364
3357
|
ngInit: [{ type: i0.Output }]
|
|
3365
3358
|
};
|
|
3366
3359
|
|
|
3367
|
-
var moment$
|
|
3360
|
+
var moment$2 = momentImported__namespace;
|
|
3368
3361
|
// @dynamic
|
|
3369
3362
|
var SharedValidators = /** @class */ (function () {
|
|
3370
3363
|
function SharedValidators() {
|
|
@@ -3447,7 +3440,7 @@
|
|
|
3447
3440
|
};
|
|
3448
3441
|
SharedValidators.validDate = function (control) {
|
|
3449
3442
|
var value = control.value;
|
|
3450
|
-
var date = !value || moment$
|
|
3443
|
+
var date = !value || moment$2.isMoment(value) ? value : moment$2(value, DATE_ISO_PATTERN);
|
|
3451
3444
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
3452
3445
|
return { validDate: true };
|
|
3453
3446
|
}
|
|
@@ -4654,7 +4647,7 @@
|
|
|
4654
4647
|
};
|
|
4655
4648
|
return FormErrorTranslator;
|
|
4656
4649
|
}());
|
|
4657
|
-
FormErrorTranslator.ɵprov =
|
|
4650
|
+
FormErrorTranslator.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
|
|
4658
4651
|
FormErrorTranslator.decorators = [
|
|
4659
4652
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
4660
4653
|
];
|
|
@@ -4739,7 +4732,7 @@
|
|
|
4739
4732
|
};
|
|
4740
4733
|
return FormGetPipe;
|
|
4741
4734
|
}());
|
|
4742
|
-
FormGetPipe.ɵprov =
|
|
4735
|
+
FormGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetPipe_Factory() { return new FormGetPipe(); }, token: FormGetPipe, providedIn: "root" });
|
|
4743
4736
|
FormGetPipe.decorators = [
|
|
4744
4737
|
{ type: i0.Pipe, args: [{
|
|
4745
4738
|
name: 'formGet'
|
|
@@ -4754,7 +4747,7 @@
|
|
|
4754
4747
|
};
|
|
4755
4748
|
return FormGetControlPipe;
|
|
4756
4749
|
}());
|
|
4757
|
-
FormGetControlPipe.ɵprov =
|
|
4750
|
+
FormGetControlPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetControlPipe_Factory() { return new FormGetControlPipe(); }, token: FormGetControlPipe, providedIn: "root" });
|
|
4758
4751
|
FormGetControlPipe.decorators = [
|
|
4759
4752
|
{ type: i0.Pipe, args: [{
|
|
4760
4753
|
name: 'formGetControl'
|
|
@@ -4769,7 +4762,7 @@
|
|
|
4769
4762
|
};
|
|
4770
4763
|
return FormGetArrayPipe;
|
|
4771
4764
|
}());
|
|
4772
|
-
FormGetArrayPipe.ɵprov =
|
|
4765
|
+
FormGetArrayPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetArrayPipe_Factory() { return new FormGetArrayPipe(); }, token: FormGetArrayPipe, providedIn: "root" });
|
|
4773
4766
|
FormGetArrayPipe.decorators = [
|
|
4774
4767
|
{ type: i0.Pipe, args: [{
|
|
4775
4768
|
name: 'formGetArray'
|
|
@@ -4784,7 +4777,7 @@
|
|
|
4784
4777
|
};
|
|
4785
4778
|
return FormGetGroupPipe;
|
|
4786
4779
|
}());
|
|
4787
|
-
FormGetGroupPipe.ɵprov =
|
|
4780
|
+
FormGetGroupPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetGroupPipe_Factory() { return new FormGetGroupPipe(); }, token: FormGetGroupPipe, providedIn: "root" });
|
|
4788
4781
|
FormGetGroupPipe.decorators = [
|
|
4789
4782
|
{ type: i0.Pipe, args: [{
|
|
4790
4783
|
name: 'formGetGroup'
|
|
@@ -5130,9 +5123,9 @@
|
|
|
5130
5123
|
var hour = parseInt(durationParts[0] || '0');
|
|
5131
5124
|
var minute = parseInt(durationParts[1] || '0');
|
|
5132
5125
|
var value = hour + (minute + 0.5) / 60;
|
|
5133
|
-
return roundFloat(value, maxDecimals);
|
|
5126
|
+
return roundFloat$1(value, maxDecimals);
|
|
5134
5127
|
}
|
|
5135
|
-
function roundFloat(input, maxDecimals) {
|
|
5128
|
+
function roundFloat$1(input, maxDecimals) {
|
|
5136
5129
|
if (maxDecimals > 0) {
|
|
5137
5130
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
5138
5131
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -5156,17 +5149,17 @@
|
|
|
5156
5149
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
5157
5150
|
}
|
|
5158
5151
|
};
|
|
5159
|
-
var noop$
|
|
5152
|
+
var noop$1 = function () {
|
|
5160
5153
|
};
|
|
5161
|
-
var ɵ0$
|
|
5154
|
+
var ɵ0$2 = noop$1;
|
|
5162
5155
|
var MatLatLongField = /** @class */ (function () {
|
|
5163
5156
|
function MatLatLongField(translate, formBuilder, cd, formGroupDir) {
|
|
5164
5157
|
this.translate = translate;
|
|
5165
5158
|
this.formBuilder = formBuilder;
|
|
5166
5159
|
this.cd = cd;
|
|
5167
5160
|
this.formGroupDir = formGroupDir;
|
|
5168
|
-
this._onChangeCallback = noop$
|
|
5169
|
-
this._onTouchedCallback = noop$
|
|
5161
|
+
this._onChangeCallback = noop$1;
|
|
5162
|
+
this._onTouchedCallback = noop$1;
|
|
5170
5163
|
this._subscription = new rxjs.Subscription();
|
|
5171
5164
|
this.disabling = false;
|
|
5172
5165
|
this.writing = false;
|
|
@@ -5517,14 +5510,14 @@
|
|
|
5517
5510
|
},] }
|
|
5518
5511
|
];
|
|
5519
5512
|
|
|
5520
|
-
var DEFAULT_VALUE_ACCESSOR
|
|
5513
|
+
var DEFAULT_VALUE_ACCESSOR = {
|
|
5521
5514
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5522
5515
|
useExisting: i0.forwardRef(function () { return MatDate; }),
|
|
5523
5516
|
multi: true
|
|
5524
5517
|
};
|
|
5525
|
-
var
|
|
5526
|
-
var noop$
|
|
5527
|
-
var ɵ0$
|
|
5518
|
+
var TEXT_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5519
|
+
var noop$2 = function () { };
|
|
5520
|
+
var ɵ0$3 = noop$2;
|
|
5528
5521
|
var MatDate = /** @class */ (function () {
|
|
5529
5522
|
function MatDate(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5530
5523
|
this.dateAdapter = dateAdapter;
|
|
@@ -5533,13 +5526,13 @@
|
|
|
5533
5526
|
this.cd = cd;
|
|
5534
5527
|
this.keyboard = keyboard;
|
|
5535
5528
|
this.formGroupDir = formGroupDir;
|
|
5536
|
-
this._onChangeCallback = noop$
|
|
5537
|
-
this._onTouchedCallback = noop$
|
|
5529
|
+
this._onChangeCallback = noop$2;
|
|
5530
|
+
this._onTouchedCallback = noop$2;
|
|
5538
5531
|
this._subscription = new rxjs.Subscription();
|
|
5539
5532
|
this._writing = true;
|
|
5540
5533
|
this._disabling = false;
|
|
5541
5534
|
this._readonly = false;
|
|
5542
|
-
this.
|
|
5535
|
+
this.mask = TEXT_MASK;
|
|
5543
5536
|
this.floatLabel = 'auto';
|
|
5544
5537
|
this.compact = false;
|
|
5545
5538
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -5598,22 +5591,24 @@
|
|
|
5598
5591
|
this.formControl.setValidators(this.required ? [this.formControl.validator, i1.Validators.required, SharedValidators.validDate] :
|
|
5599
5592
|
[this.formControl.validator, SharedValidators.validDate]);
|
|
5600
5593
|
}
|
|
5601
|
-
// Create the
|
|
5602
|
-
this.
|
|
5594
|
+
// Create the text control
|
|
5595
|
+
this.textControl = this.formBuilder.control(null,
|
|
5596
|
+
// Important: should copy errors from the model formControl
|
|
5597
|
+
function () { return _this.formControl.errors; });
|
|
5603
5598
|
// Get patterns to display date
|
|
5604
5599
|
this.updatePattern(this.translate.instant('COMMON.DATE_PATTERN'));
|
|
5605
5600
|
this._subscription.add(this.translate.get('COMMON.DATE_PATTERN')
|
|
5606
5601
|
.subscribe(function (pattern) { return _this.updatePattern(pattern); }));
|
|
5607
|
-
this._subscription.add(this.
|
|
5602
|
+
this._subscription.add(this.textControl.valueChanges
|
|
5608
5603
|
.subscribe(function (value) { return _this.onFormChange(value); }));
|
|
5609
5604
|
// Listen status changes (when done outside the component - e.g. when setErrors() is calling on the formControl)
|
|
5610
5605
|
this._subscription.add(this.formControl.statusChanges
|
|
5611
5606
|
.pipe(operators.filter(function (_) { return !_this.readonly && !_this._writing && !_this._disabling; }) // Skip
|
|
5612
5607
|
)
|
|
5613
5608
|
.subscribe(function () {
|
|
5614
|
-
_this.
|
|
5615
|
-
if (_this.formControl.touched && !_this.
|
|
5616
|
-
_this.
|
|
5609
|
+
_this.textControl.updateValueAndValidity({ emitEvent: false });
|
|
5610
|
+
if (_this.formControl.touched && !_this.textControl.touched) {
|
|
5611
|
+
_this.textControl.markAsTouched();
|
|
5617
5612
|
}
|
|
5618
5613
|
_this.markForCheck();
|
|
5619
5614
|
}));
|
|
@@ -5629,27 +5624,25 @@
|
|
|
5629
5624
|
this._writing = true;
|
|
5630
5625
|
// DEBUG
|
|
5631
5626
|
//console.debug("[mat-date] writeValue() with:", value);
|
|
5632
|
-
// Convert into date
|
|
5627
|
+
// Convert into date
|
|
5628
|
+
// Important: do a clone()
|
|
5633
5629
|
var date = momentImported.isMoment(value) ? value.clone() : fromDateISOString(value);
|
|
5634
5630
|
if (!date || !date.isValid()) {
|
|
5635
|
-
this.
|
|
5631
|
+
this.textControl.patchValue(null, { emitEvent: false });
|
|
5636
5632
|
if (this.formControl.value) {
|
|
5637
5633
|
this.formControl.patchValue(null, { emitEvent: false });
|
|
5638
5634
|
this._onChangeCallback(null);
|
|
5639
5635
|
}
|
|
5640
5636
|
}
|
|
5641
5637
|
else {
|
|
5642
|
-
//
|
|
5643
|
-
|
|
5644
|
-
//
|
|
5645
|
-
|
|
5646
|
-
|
|
5647
|
-
|
|
5648
|
-
|
|
5649
|
-
|
|
5650
|
-
if (this.dayControl.value !== dayStr) {
|
|
5651
|
-
// Update control
|
|
5652
|
-
this.dayControl.patchValue(dayStr, { emitEvent: false });
|
|
5638
|
+
// Move to the expected TZ (keeping local hour - e.g. midnight)
|
|
5639
|
+
date = (this.timezone && date.tz(this.timezone) || date)
|
|
5640
|
+
// Reset hour
|
|
5641
|
+
.startOf('day');
|
|
5642
|
+
var dayStr = this.dateAdapter.format(date, this.datePattern);
|
|
5643
|
+
if (this.textControl.value !== dayStr) {
|
|
5644
|
+
// Update day control
|
|
5645
|
+
this.textControl.patchValue(dayStr, { emitEvent: false });
|
|
5653
5646
|
}
|
|
5654
5647
|
}
|
|
5655
5648
|
this._writing = false;
|
|
@@ -5666,10 +5659,10 @@
|
|
|
5666
5659
|
return;
|
|
5667
5660
|
this._disabling = true;
|
|
5668
5661
|
if (isDisabled) {
|
|
5669
|
-
this.
|
|
5662
|
+
this.textControl.disable({ emitEvent: false });
|
|
5670
5663
|
}
|
|
5671
5664
|
else {
|
|
5672
|
-
this.
|
|
5665
|
+
this.textControl.enable({ emitEvent: false });
|
|
5673
5666
|
}
|
|
5674
5667
|
this._disabling = false;
|
|
5675
5668
|
this.markForCheck();
|
|
@@ -5686,12 +5679,12 @@
|
|
|
5686
5679
|
.locale(this.locale) // set as time as locale time
|
|
5687
5680
|
.minute(0).seconds(0).millisecond(0) // Reset hour
|
|
5688
5681
|
.utc(true);
|
|
5689
|
-
dateStr = this.dateAdapter.format(date, this.
|
|
5682
|
+
dateStr = this.dateAdapter.format(date, this.datePattern) || null;
|
|
5690
5683
|
}
|
|
5691
|
-
if (this.
|
|
5684
|
+
if (this.textControl.value !== dateStr) {
|
|
5692
5685
|
// DEBUG
|
|
5693
5686
|
//console.debug("[mat-date] onDatePickerChange() new value:", dateStr);
|
|
5694
|
-
this.
|
|
5687
|
+
this.textControl.setValue(dateStr, {
|
|
5695
5688
|
emitEvent: true // Will call onFormChange
|
|
5696
5689
|
});
|
|
5697
5690
|
}
|
|
@@ -5746,7 +5739,7 @@
|
|
|
5746
5739
|
});
|
|
5747
5740
|
};
|
|
5748
5741
|
MatDate.prototype.clear = function () {
|
|
5749
|
-
this.
|
|
5742
|
+
this.textControl.patchValue(null, { emitEvent: false });
|
|
5750
5743
|
this.formControl.setValue(null, { emitEvent: false });
|
|
5751
5744
|
this._onChangeCallback(null);
|
|
5752
5745
|
this.markAsTouched();
|
|
@@ -5755,43 +5748,70 @@
|
|
|
5755
5748
|
/* -- private method -- */
|
|
5756
5749
|
MatDate.prototype.updatePattern = function (pattern) {
|
|
5757
5750
|
pattern = pattern !== 'COMMON.DATE_PATTERN' ? pattern : 'L';
|
|
5758
|
-
if (this.
|
|
5759
|
-
this.
|
|
5760
|
-
this.dayPattern = pattern;
|
|
5751
|
+
if (this.datePattern !== pattern) {
|
|
5752
|
+
this.datePattern = pattern;
|
|
5761
5753
|
this.markForCheck();
|
|
5762
5754
|
}
|
|
5763
5755
|
};
|
|
5764
5756
|
MatDate.prototype.checkIfTouched = function (opts) {
|
|
5765
|
-
if (this.
|
|
5757
|
+
if (this.textControl.touched) {
|
|
5766
5758
|
this._onTouchedCallback();
|
|
5767
5759
|
if (!opts || opts.emitEvent !== false) {
|
|
5768
5760
|
this.markForCheck();
|
|
5769
5761
|
}
|
|
5770
5762
|
}
|
|
5771
5763
|
};
|
|
5772
|
-
MatDate.prototype.onFormChange = function (
|
|
5764
|
+
MatDate.prototype.onFormChange = function (value) {
|
|
5773
5765
|
if (this._writing)
|
|
5774
5766
|
return; // Skip if call by self
|
|
5775
5767
|
this._writing = true;
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
|
|
5780
|
-
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5768
|
+
// DEBUG
|
|
5769
|
+
//console.debug(`[mat-date-time] onFormChange() from event: ${event} - controls values: `, [dayStr, time]);
|
|
5770
|
+
/*if (this.dayControl.invalid) {
|
|
5771
|
+
this.formControl.markAsPending({onlySelf: true});
|
|
5772
|
+
this.formControl.setErrors({
|
|
5773
|
+
...this.formControl.errors,
|
|
5774
|
+
...this.dayControl.errors
|
|
5775
|
+
});
|
|
5776
|
+
this.formControl.markAsDirty();
|
|
5777
|
+
this._writing = false;
|
|
5778
|
+
return;
|
|
5779
|
+
}*/
|
|
5780
|
+
if (value) {
|
|
5781
|
+
// Make to remove placeholder chars
|
|
5782
|
+
while (value.indexOf(this.placeholderChar) !== -1) {
|
|
5783
|
+
value = value.replace(this.placeholderChar, '');
|
|
5784
|
+
}
|
|
5785
|
+
// Force '0' for empty month (otherwise moment will use the current month)
|
|
5786
|
+
value = value.replace('//', '/0/')
|
|
5787
|
+
// Force '0' for empty year (otherwise moment will use the current year)
|
|
5788
|
+
.replace(/\/$/, '/0');
|
|
5786
5789
|
}
|
|
5787
|
-
// Parse
|
|
5788
|
-
var
|
|
5790
|
+
// Parse date (strict = false)
|
|
5791
|
+
var date = isNotNilOrBlank(value) && this.dateAdapter.parse(value, this.datePattern) || null;
|
|
5789
5792
|
// Move to the expected TZ, and keep the local hour (= midnight) to have midnight at local time
|
|
5790
|
-
|
|
5791
|
-
|
|
5793
|
+
date = date && (this.timezone ? date.tz(this.timezone, true) : date) || null;
|
|
5794
|
+
date = date && date
|
|
5792
5795
|
.startOf('day') // Reset hour
|
|
5793
|
-
.utc()
|
|
5794
|
-
|
|
5796
|
+
.utc() // Convert to UTC (avoid TZ offset in final string)
|
|
5797
|
+
|| null;
|
|
5798
|
+
// Convert to model value (ISO date string)
|
|
5799
|
+
// IMPORTANT: If date is invalid, then keep the invalid string value
|
|
5800
|
+
// to allow SharedValidators.validDate() to raise an error
|
|
5801
|
+
var formControlValue = date && date.isValid() ? toDateISOString(date) : (value || null);
|
|
5802
|
+
if (this.formControl.value !== formControlValue) {
|
|
5803
|
+
// DEBUG
|
|
5804
|
+
//console.debug('[mat-date] Emit new value: ' + dateStr);
|
|
5805
|
+
// Apply to form control. => Will call writeValue()
|
|
5806
|
+
// NOT NEED, because a formControl should NOT be used by multiple fields
|
|
5807
|
+
//this.formControl.setValue(dateStr, {emitEvent: false})
|
|
5808
|
+
// Changes comes from inside function: use the callback
|
|
5809
|
+
this._onChangeCallback(formControlValue);
|
|
5810
|
+
// Check if need to update controls
|
|
5811
|
+
this.checkIfTouched();
|
|
5812
|
+
}
|
|
5813
|
+
// Force the day control to update its validity (same errors as formControl - see ngOnInit())
|
|
5814
|
+
this.textControl.updateValueAndValidity();
|
|
5795
5815
|
this._writing = false;
|
|
5796
5816
|
};
|
|
5797
5817
|
MatDate.prototype.waitKeyboardHide = function (waitKeyboardDelay) {
|
|
@@ -5818,21 +5838,6 @@
|
|
|
5818
5838
|
});
|
|
5819
5839
|
});
|
|
5820
5840
|
};
|
|
5821
|
-
MatDate.prototype.emitChange = function (value) {
|
|
5822
|
-
// Get the model value
|
|
5823
|
-
var dateStr = toDateISOString(value) || null;
|
|
5824
|
-
if (this.formControl.value !== dateStr) {
|
|
5825
|
-
// DEBUG
|
|
5826
|
-
//console.debug('[mat-date] Emit new value: ' + dateStr);
|
|
5827
|
-
// Apply to form control. => Will call writeValue()
|
|
5828
|
-
// NOT NEED, because a formControl should NOT be used by multiple fields
|
|
5829
|
-
//this.formControl.setValue(dateStr, {emitEvent: false})
|
|
5830
|
-
// Changes comes from inside function: use the callback
|
|
5831
|
-
this._onChangeCallback(dateStr);
|
|
5832
|
-
// Check if need to update controls
|
|
5833
|
-
this.checkIfTouched();
|
|
5834
|
-
}
|
|
5835
|
-
};
|
|
5836
5841
|
MatDate.prototype.updateTabIndex = function () {
|
|
5837
5842
|
var _this = this;
|
|
5838
5843
|
if (isNil(this._tabindex) || this._tabindex === -1)
|
|
@@ -5846,7 +5851,7 @@
|
|
|
5846
5851
|
});
|
|
5847
5852
|
};
|
|
5848
5853
|
MatDate.prototype.markAsTouched = function (opts) {
|
|
5849
|
-
this.
|
|
5854
|
+
this.textControl.markAsTouched(opts);
|
|
5850
5855
|
this._onTouchedCallback();
|
|
5851
5856
|
this.markForCheck();
|
|
5852
5857
|
};
|
|
@@ -5861,16 +5866,16 @@
|
|
|
5861
5866
|
MatDate.decorators = [
|
|
5862
5867
|
{ type: i0.Component, args: [{
|
|
5863
5868
|
selector: 'mat-date-field',
|
|
5864
|
-
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern:
|
|
5869
|
+
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: datePattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable -->\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"textControl\"\n [textMask]=\"{mask: mask, 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]=\"textControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final input -->\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"datePickerFilter\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix\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)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <!-- errors -->\n <mat-error *ngIf=\"formControl.touched && formControl.errors|mapKeys|arrayFirst; let errorKey\">\n <ng-container [ngSwitch]=\"errorKey\">\n <span *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</span>\n <span *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE</span>\n <span *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</span>\n <span *ngSwitchCase=\"'dateIsBefore'\">{{'ERROR.FIELD_NOT_VALID_DATE_BEFORE' | translate: formControl.errors.dateIsBefore }}</span>\n <span *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</span>\n <span *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</span>\n <span *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</span>\n <span *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</span>\n </ng-container>\n </mat-error>\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 </mat-form-field>\n\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"\n ></mat-datepicker>\n\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\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
|
|
5865
5870
|
providers: [
|
|
5866
|
-
DEFAULT_VALUE_ACCESSOR
|
|
5871
|
+
DEFAULT_VALUE_ACCESSOR,
|
|
5867
5872
|
],
|
|
5868
5873
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
5869
5874
|
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%}"]
|
|
5870
5875
|
},] }
|
|
5871
5876
|
];
|
|
5872
5877
|
MatDate.ctorParameters = function () { return [
|
|
5873
|
-
{ type: i1$
|
|
5878
|
+
{ type: i1$1.MomentDateAdapter },
|
|
5874
5879
|
{ type: i1$2.TranslateService },
|
|
5875
5880
|
{ type: i1.FormBuilder },
|
|
5876
5881
|
{ type: i0.ChangeDetectorRef },
|
|
@@ -5897,16 +5902,16 @@
|
|
|
5897
5902
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
5898
5903
|
};
|
|
5899
5904
|
|
|
5900
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
5905
|
+
var DEFAULT_VALUE_ACCESSOR$1 = {
|
|
5901
5906
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5902
5907
|
useExisting: i0.forwardRef(function () { return MatDateTime; }),
|
|
5903
5908
|
multi: true
|
|
5904
5909
|
};
|
|
5905
|
-
var DAY_MASK
|
|
5910
|
+
var DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5906
5911
|
var HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
5907
|
-
var HOUR_MASK
|
|
5908
|
-
var noop$
|
|
5909
|
-
var ɵ0$
|
|
5912
|
+
var HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
5913
|
+
var noop$3 = function () { };
|
|
5914
|
+
var ɵ0$4 = noop$3;
|
|
5910
5915
|
var MatDateTime = /** @class */ (function () {
|
|
5911
5916
|
function MatDateTime(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5912
5917
|
this.dateAdapter = dateAdapter;
|
|
@@ -5915,14 +5920,14 @@
|
|
|
5915
5920
|
this.cd = cd;
|
|
5916
5921
|
this.keyboard = keyboard;
|
|
5917
5922
|
this.formGroupDir = formGroupDir;
|
|
5918
|
-
this._onChangeCallback = noop$
|
|
5919
|
-
this._onTouchedCallback = noop$
|
|
5923
|
+
this._onChangeCallback = noop$3;
|
|
5924
|
+
this._onTouchedCallback = noop$3;
|
|
5920
5925
|
this._subscription = new rxjs.Subscription();
|
|
5921
5926
|
this._writing = true;
|
|
5922
5927
|
this._disabling = false;
|
|
5923
5928
|
this._readonly = false;
|
|
5924
|
-
this.dayMask = DAY_MASK
|
|
5925
|
-
this.hourMask = HOUR_MASK
|
|
5929
|
+
this.dayMask = DAY_MASK;
|
|
5930
|
+
this.hourMask = HOUR_MASK;
|
|
5926
5931
|
this.floatLabel = 'auto';
|
|
5927
5932
|
this.compact = false;
|
|
5928
5933
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -6281,14 +6286,14 @@
|
|
|
6281
6286
|
selector: 'mat-date-time-field',
|
|
6282
6287
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\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>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </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 input -->\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"datePickerFilter\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix\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)=\"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=\"'dateIsBefore'\">{{'ERROR.FIELD_NOT_VALID_DATE_BEFORE' | translate: formControl.errors.dateIsBefore }}</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 && (hourControl.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]=\"hourControl\"\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]=\"hourControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"hourControl\"\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\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
|
|
6283
6288
|
providers: [
|
|
6284
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6289
|
+
DEFAULT_VALUE_ACCESSOR$1,
|
|
6285
6290
|
],
|
|
6286
6291
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6287
6292
|
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%}"]
|
|
6288
6293
|
},] }
|
|
6289
6294
|
];
|
|
6290
6295
|
MatDateTime.ctorParameters = function () { return [
|
|
6291
|
-
{ type: i1$
|
|
6296
|
+
{ type: i1$1.MomentDateAdapter },
|
|
6292
6297
|
{ type: i1$2.TranslateService },
|
|
6293
6298
|
{ type: i1.FormBuilder },
|
|
6294
6299
|
{ type: i0.ChangeDetectorRef },
|
|
@@ -6315,15 +6320,15 @@
|
|
|
6315
6320
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
6316
6321
|
};
|
|
6317
6322
|
|
|
6318
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6323
|
+
var DEFAULT_VALUE_ACCESSOR$2 = {
|
|
6319
6324
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6320
6325
|
useExisting: i0.forwardRef(function () { return MatDateShort; }),
|
|
6321
6326
|
multi: true
|
|
6322
6327
|
};
|
|
6323
|
-
var DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
6328
|
+
var DAY_MASK$1 = [/\d/, /\d/, /\d/, /\d/];
|
|
6324
6329
|
var noop$4 = function () {
|
|
6325
6330
|
};
|
|
6326
|
-
var ɵ0$
|
|
6331
|
+
var ɵ0$5 = noop$4;
|
|
6327
6332
|
var MatDateShort = /** @class */ (function () {
|
|
6328
6333
|
function MatDateShort(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
6329
6334
|
this.dateAdapter = dateAdapter;
|
|
@@ -6336,7 +6341,7 @@
|
|
|
6336
6341
|
this._onTouchedCallback = noop$4;
|
|
6337
6342
|
this.writing = true;
|
|
6338
6343
|
this.disabling = false;
|
|
6339
|
-
this.dayMask = DAY_MASK;
|
|
6344
|
+
this.dayMask = DAY_MASK$1;
|
|
6340
6345
|
this.disabled = false;
|
|
6341
6346
|
this.floatLabel = 'auto';
|
|
6342
6347
|
this.readonly = false;
|
|
@@ -6613,7 +6618,7 @@
|
|
|
6613
6618
|
selector: 'mat-date-short-field',
|
|
6614
6619
|
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_YEAR_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker1)\"\n (keyup.escape)=\"preventEvent($event)\"\n (click)=\"matInput.select()\"\n [required]=\"required\"\n [tabindex]=\"tabindex\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker1)\"\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]=\"datePicker1\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker1)\"\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 <ng-content select=\"mat-error\"></ng-content>\n </mat-form-field>\n\n <mat-datepicker #datePicker1\n startView=\"multi-year\"\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n (yearSelected)=\"closeDatePicker($event, datePicker1)\"\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",
|
|
6615
6620
|
providers: [
|
|
6616
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6621
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
6617
6622
|
],
|
|
6618
6623
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6619
6624
|
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%}"]
|
|
@@ -6684,16 +6689,16 @@
|
|
|
6684
6689
|
},] }
|
|
6685
6690
|
];
|
|
6686
6691
|
|
|
6687
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6692
|
+
var DEFAULT_VALUE_ACCESSOR$3 = {
|
|
6688
6693
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6689
6694
|
useExisting: i0.forwardRef(function () { return MatDuration; }),
|
|
6690
6695
|
multi: true
|
|
6691
6696
|
};
|
|
6692
6697
|
var HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
6693
|
-
var HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
6694
|
-
var noop$
|
|
6698
|
+
var HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
6699
|
+
var noop$5 = function () {
|
|
6695
6700
|
};
|
|
6696
|
-
var ɵ0$6 = noop$
|
|
6701
|
+
var ɵ0$6 = noop$5;
|
|
6697
6702
|
var MatDuration = /** @class */ (function () {
|
|
6698
6703
|
function MatDuration(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
6699
6704
|
this.dateAdapter = dateAdapter;
|
|
@@ -6702,11 +6707,11 @@
|
|
|
6702
6707
|
this.cd = cd;
|
|
6703
6708
|
this.formGroupDir = formGroupDir;
|
|
6704
6709
|
this._subscription = new rxjs.Subscription();
|
|
6705
|
-
this._onChangeCallback = noop$
|
|
6706
|
-
this._onTouchedCallback = noop$
|
|
6710
|
+
this._onChangeCallback = noop$5;
|
|
6711
|
+
this._onTouchedCallback = noop$5;
|
|
6707
6712
|
this.writing = true;
|
|
6708
6713
|
this.disabling = false;
|
|
6709
|
-
this.hourMask = HOUR_MASK;
|
|
6714
|
+
this.hourMask = HOUR_MASK$1;
|
|
6710
6715
|
this.disabled = false;
|
|
6711
6716
|
this.floatLabel = 'auto';
|
|
6712
6717
|
this.readonly = false;
|
|
@@ -6899,7 +6904,7 @@
|
|
|
6899
6904
|
selector: 'mat-duration-field',
|
|
6900
6905
|
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",
|
|
6901
6906
|
providers: [
|
|
6902
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6907
|
+
DEFAULT_VALUE_ACCESSOR$3,
|
|
6903
6908
|
],
|
|
6904
6909
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6905
6910
|
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%}"]
|
|
@@ -6959,22 +6964,22 @@
|
|
|
6959
6964
|
},] }
|
|
6960
6965
|
];
|
|
6961
6966
|
|
|
6962
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6967
|
+
var DEFAULT_VALUE_ACCESSOR$4 = {
|
|
6963
6968
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6964
6969
|
useExisting: i0.forwardRef(function () { return MatBooleanField; }),
|
|
6965
6970
|
multi: true
|
|
6966
6971
|
};
|
|
6967
|
-
var noop$
|
|
6972
|
+
var noop$6 = function () {
|
|
6968
6973
|
};
|
|
6969
|
-
var ɵ0$
|
|
6974
|
+
var ɵ0$7 = noop$6;
|
|
6970
6975
|
var MatBooleanField = /** @class */ (function () {
|
|
6971
6976
|
function MatBooleanField(translate, formBuilder, cd, formGroupDir) {
|
|
6972
6977
|
this.translate = translate;
|
|
6973
6978
|
this.formBuilder = formBuilder;
|
|
6974
6979
|
this.cd = cd;
|
|
6975
6980
|
this.formGroupDir = formGroupDir;
|
|
6976
|
-
this._onChangeCallback = noop$
|
|
6977
|
-
this._onTouchedCallback = noop$
|
|
6981
|
+
this._onChangeCallback = noop$6;
|
|
6982
|
+
this._onTouchedCallback = noop$6;
|
|
6978
6983
|
this._writing = false;
|
|
6979
6984
|
this.showRadio = false;
|
|
6980
6985
|
this.disabled = false;
|
|
@@ -7149,7 +7154,7 @@
|
|
|
7149
7154
|
selector: 'mat-boolean-field',
|
|
7150
7155
|
template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\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 <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\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 <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\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 <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\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 <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\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 <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\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 <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\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 <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n </ng-container>\n\n</ng-template>\n\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
|
|
7151
7156
|
providers: [
|
|
7152
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
7157
|
+
DEFAULT_VALUE_ACCESSOR$4
|
|
7153
7158
|
],
|
|
7154
7159
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7155
7160
|
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}"]
|
|
@@ -7236,7 +7241,6 @@
|
|
|
7236
7241
|
return MatNumpadEvent;
|
|
7237
7242
|
}(KeyboardEvent));
|
|
7238
7243
|
|
|
7239
|
-
exports.AnimationState = void 0;
|
|
7240
7244
|
(function (AnimationState) {
|
|
7241
7245
|
AnimationState["ENTER"] = "enter";
|
|
7242
7246
|
AnimationState["ENTER_INPUT"] = "enter-input";
|
|
@@ -7404,7 +7408,7 @@
|
|
|
7404
7408
|
};
|
|
7405
7409
|
return MatNumpadDomService;
|
|
7406
7410
|
}());
|
|
7407
|
-
MatNumpadDomService.ɵprov =
|
|
7411
|
+
MatNumpadDomService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1$4.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
7408
7412
|
MatNumpadDomService.decorators = [
|
|
7409
7413
|
{ type: i0.Injectable, args: [{
|
|
7410
7414
|
providedIn: 'root'
|
|
@@ -7810,7 +7814,7 @@
|
|
|
7810
7814
|
},] }
|
|
7811
7815
|
];
|
|
7812
7816
|
|
|
7813
|
-
var DEFAULT_VALUE_ACCESSOR = {
|
|
7817
|
+
var DEFAULT_VALUE_ACCESSOR$5 = {
|
|
7814
7818
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
7815
7819
|
useExisting: i0.forwardRef(function () { return MatSwipeField; }),
|
|
7816
7820
|
multi: true
|
|
@@ -8130,7 +8134,7 @@
|
|
|
8130
8134
|
{ type: i0.Component, args: [{
|
|
8131
8135
|
selector: 'mat-swipe-field',
|
|
8132
8136
|
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",
|
|
8133
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
8137
|
+
providers: [DEFAULT_VALUE_ACCESSOR$5],
|
|
8134
8138
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
8135
8139
|
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}"]
|
|
8136
8140
|
},] }
|
|
@@ -8191,14 +8195,14 @@
|
|
|
8191
8195
|
},] }
|
|
8192
8196
|
];
|
|
8193
8197
|
|
|
8194
|
-
var noop$
|
|
8195
|
-
var ɵ0$
|
|
8198
|
+
var noop$7 = function () { };
|
|
8199
|
+
var ɵ0$8 = noop$7;
|
|
8196
8200
|
var MatChipsField = /** @class */ (function () {
|
|
8197
8201
|
function MatChipsField(cd, formGroupDir) {
|
|
8198
8202
|
this.cd = cd;
|
|
8199
8203
|
this.formGroupDir = formGroupDir;
|
|
8200
|
-
this._onChangeCallback = noop$
|
|
8201
|
-
this._onTouchedCallback = noop$
|
|
8204
|
+
this._onChangeCallback = noop$7;
|
|
8205
|
+
this._onTouchedCallback = noop$7;
|
|
8202
8206
|
this.logPrefix = '[mat-chips] ';
|
|
8203
8207
|
this.formControlName = null;
|
|
8204
8208
|
this.required = false;
|
|
@@ -9169,7 +9173,7 @@
|
|
|
9169
9173
|
};
|
|
9170
9174
|
return ProgressBarService;
|
|
9171
9175
|
}());
|
|
9172
|
-
ProgressBarService.ɵprov =
|
|
9176
|
+
ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
9173
9177
|
ProgressBarService.decorators = [
|
|
9174
9178
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9175
9179
|
];
|
|
@@ -9216,7 +9220,7 @@
|
|
|
9216
9220
|
};
|
|
9217
9221
|
return AppGestureConfig;
|
|
9218
9222
|
}(i1$6.HammerGestureConfig));
|
|
9219
|
-
AppGestureConfig.ɵprov =
|
|
9223
|
+
AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
9220
9224
|
AppGestureConfig.decorators = [
|
|
9221
9225
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9222
9226
|
];
|
|
@@ -9483,7 +9487,7 @@
|
|
|
9483
9487
|
};
|
|
9484
9488
|
return MatPaginatorI18n;
|
|
9485
9489
|
}(paginator.MatPaginatorIntl));
|
|
9486
|
-
MatPaginatorI18n.ɵprov =
|
|
9490
|
+
MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
9487
9491
|
MatPaginatorI18n.decorators = [
|
|
9488
9492
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9489
9493
|
];
|
|
@@ -9575,17 +9579,17 @@
|
|
|
9575
9579
|
return rgbArrayToHex(rgb.map(function (v) { return 255 - v; }));
|
|
9576
9580
|
}
|
|
9577
9581
|
|
|
9578
|
-
var noop = function () {
|
|
9582
|
+
var noop$8 = function () {
|
|
9579
9583
|
};
|
|
9580
|
-
var ɵ0$
|
|
9584
|
+
var ɵ0$9 = noop$8;
|
|
9581
9585
|
var AppFormField = /** @class */ (function () {
|
|
9582
9586
|
function AppFormField(translate, cd, injector, formGroupDir) {
|
|
9583
9587
|
this.translate = translate;
|
|
9584
9588
|
this.cd = cd;
|
|
9585
9589
|
this.injector = injector;
|
|
9586
9590
|
this.formGroupDir = formGroupDir;
|
|
9587
|
-
this._onChangeCallback = noop;
|
|
9588
|
-
this._onTouchedCallback = noop;
|
|
9591
|
+
this._onChangeCallback = noop$8;
|
|
9592
|
+
this._onTouchedCallback = noop$8;
|
|
9589
9593
|
this.readonly = false;
|
|
9590
9594
|
this.compact = false;
|
|
9591
9595
|
this.floatLabel = 'auto';
|
|
@@ -10143,7 +10147,7 @@
|
|
|
10143
10147
|
};
|
|
10144
10148
|
return AudioProvider;
|
|
10145
10149
|
}(StartableService));
|
|
10146
|
-
AudioProvider.ɵprov =
|
|
10150
|
+
AudioProvider.ɵprov = i0.ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$2.NativeAudio, 8), i0.ɵɵinject(i3$1.Vibration, 8), i0.ɵɵinject(i4.AudioManagement, 8)); }, token: AudioProvider, providedIn: "root" });
|
|
10147
10151
|
AudioProvider.decorators = [
|
|
10148
10152
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
10149
10153
|
];
|
|
@@ -10253,7 +10257,7 @@
|
|
|
10253
10257
|
};
|
|
10254
10258
|
return Hotkeys;
|
|
10255
10259
|
}());
|
|
10256
|
-
Hotkeys.ɵprov =
|
|
10260
|
+
Hotkeys.ɵprov = i0.ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(i0.ɵɵinject(i1$6.EventManager), i0.ɵɵinject(i2.MatDialog), i0.ɵɵinject(i1$4.DOCUMENT), i0.ɵɵinject(i1$5.ModalController), i0.ɵɵinject(i1$5.PopoverController)); }, token: Hotkeys, providedIn: "root" });
|
|
10257
10261
|
Hotkeys.decorators = [
|
|
10258
10262
|
{ type: i0.Injectable, args: [{
|
|
10259
10263
|
providedIn: 'root'
|
|
@@ -10458,7 +10462,7 @@
|
|
|
10458
10462
|
return Base64ImageReader;
|
|
10459
10463
|
}());
|
|
10460
10464
|
|
|
10461
|
-
var uuidv4
|
|
10465
|
+
var uuidv4 = uuidv4Imported__namespace;
|
|
10462
10466
|
var FileService = /** @class */ (function () {
|
|
10463
10467
|
function FileService(platform,
|
|
10464
10468
|
//private transfer: FileTransfer,
|
|
@@ -10504,7 +10508,7 @@
|
|
|
10504
10508
|
lastSlashIndex = source.lastIndexOf('/');
|
|
10505
10509
|
if (lastSlashIndex === -1)
|
|
10506
10510
|
throw new Error('Invalid URL: ' + source);
|
|
10507
|
-
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4
|
|
10511
|
+
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
10508
10512
|
if (!(responseType === 'file' && this.canUseFileSystem)) return [3 /*break*/, 4];
|
|
10509
10513
|
console.warn("WARN: [file] Fetching image {" + source + "} in local file...");
|
|
10510
10514
|
targetFilePath = this._imageDirectory + fileName;
|
|
@@ -10567,7 +10571,7 @@
|
|
|
10567
10571
|
};
|
|
10568
10572
|
return FileService;
|
|
10569
10573
|
}());
|
|
10570
|
-
FileService.ɵprov =
|
|
10574
|
+
FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$1.HttpClient), i0.ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
10571
10575
|
FileService.decorators = [
|
|
10572
10576
|
{ type: i0.Injectable, args: [{
|
|
10573
10577
|
providedIn: 'root',
|
|
@@ -10734,7 +10738,7 @@
|
|
|
10734
10738
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
10735
10739
|
|
|
10736
10740
|
var scrypt = require('scrypt-async');
|
|
10737
|
-
var sha256
|
|
10741
|
+
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
10738
10742
|
var sha512 = require('hash.js/lib/hash/sha/512');
|
|
10739
10743
|
var nacl = {
|
|
10740
10744
|
sign: tweetnacl.sign,
|
|
@@ -10840,7 +10844,7 @@
|
|
|
10840
10844
|
* Hash (using SHA256) a message
|
|
10841
10845
|
*/
|
|
10842
10846
|
CryptoService.prototype.sha256 = function (message) {
|
|
10843
|
-
return sha256
|
|
10847
|
+
return sha256().update(message).digest('hex');
|
|
10844
10848
|
};
|
|
10845
10849
|
/**
|
|
10846
10850
|
* Hash (using SHA512) a message
|
|
@@ -10854,7 +10858,7 @@
|
|
|
10854
10858
|
};
|
|
10855
10859
|
return CryptoService;
|
|
10856
10860
|
}());
|
|
10857
|
-
CryptoService.ɵprov =
|
|
10861
|
+
CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
10858
10862
|
CryptoService.decorators = [
|
|
10859
10863
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
10860
10864
|
];
|
|
@@ -11724,7 +11728,7 @@
|
|
|
11724
11728
|
onRefresh: [{ type: i0.Input }]
|
|
11725
11729
|
};
|
|
11726
11730
|
|
|
11727
|
-
var moment$
|
|
11731
|
+
var moment$3 = momentImported__namespace;
|
|
11728
11732
|
var SETTINGS_STORAGE_KEY = 'settings';
|
|
11729
11733
|
var SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
|
|
11730
11734
|
// fixme: this constant points to static environment
|
|
@@ -12026,11 +12030,11 @@
|
|
|
12026
12030
|
if (!feature) {
|
|
12027
12031
|
feature = {
|
|
12028
12032
|
name: featureName.toLowerCase(),
|
|
12029
|
-
lastSyncDate: moment$
|
|
12033
|
+
lastSyncDate: moment$3().toISOString()
|
|
12030
12034
|
};
|
|
12031
12035
|
}
|
|
12032
12036
|
else {
|
|
12033
|
-
feature.lastSyncDate = moment$
|
|
12037
|
+
feature.lastSyncDate = moment$3().toISOString();
|
|
12034
12038
|
}
|
|
12035
12039
|
this.saveOfflineFeature(feature);
|
|
12036
12040
|
};
|
|
@@ -12224,7 +12228,7 @@
|
|
|
12224
12228
|
if (!page || !page.title || !page.path)
|
|
12225
12229
|
throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
|
|
12226
12230
|
// Set time
|
|
12227
|
-
page.time = page.time || moment$
|
|
12231
|
+
page.time = page.time || moment$3();
|
|
12228
12232
|
// Clean the title (remove <small> tags)
|
|
12229
12233
|
if (!opts || opts.removeTitleSmallTag !== false) {
|
|
12230
12234
|
var tagIndex = page.title.indexOf('</small>');
|
|
@@ -12241,18 +12245,18 @@
|
|
|
12241
12245
|
};
|
|
12242
12246
|
return LocalSettingsService;
|
|
12243
12247
|
}(StartableService));
|
|
12244
|
-
LocalSettingsService.ɵprov =
|
|
12248
|
+
LocalSettingsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_SETTINGS, 8), i0.ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
|
|
12245
12249
|
LocalSettingsService.decorators = [
|
|
12246
12250
|
{ type: i0.Injectable, args: [{
|
|
12247
|
-
providedIn: 'root'
|
|
12248
|
-
deps: [APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS]
|
|
12251
|
+
providedIn: 'root'
|
|
12252
|
+
//deps: [APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS]
|
|
12249
12253
|
},] }
|
|
12250
12254
|
];
|
|
12251
12255
|
LocalSettingsService.ctorParameters = function () { return [
|
|
12252
12256
|
{ type: i1$2.TranslateService },
|
|
12253
12257
|
{ type: i1$5.Platform },
|
|
12254
12258
|
{ type: i3$2.Storage },
|
|
12255
|
-
{ type:
|
|
12259
|
+
{ type: Environment, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
|
|
12256
12260
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_LOCAL_SETTINGS,] }] },
|
|
12257
12261
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_LOCAL_SETTINGS_OPTIONS,] }] }
|
|
12258
12262
|
]; };
|
|
@@ -13122,7 +13126,7 @@
|
|
|
13122
13126
|
};
|
|
13123
13127
|
return NetworkService;
|
|
13124
13128
|
}(StartableService));
|
|
13125
|
-
NetworkService.ɵprov =
|
|
13129
|
+
NetworkService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(i0.ɵɵinject(i1$4.DOCUMENT), i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i1$5.ModalController), i0.ɵɵinject(CryptoService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i2$1.HttpClient), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i9.Network, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i1$2.TranslateService, 8), i0.ɵɵinject(i1$5.ToastController, 8)); }, token: NetworkService, providedIn: "root" });
|
|
13126
13130
|
NetworkService.decorators = [
|
|
13127
13131
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
13128
13132
|
];
|
|
@@ -13142,7 +13146,7 @@
|
|
|
13142
13146
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] }
|
|
13143
13147
|
]; };
|
|
13144
13148
|
|
|
13145
|
-
var ErrorCodes
|
|
13149
|
+
var ErrorCodes = {
|
|
13146
13150
|
UNKNOWN_ERROR: 0,
|
|
13147
13151
|
LOAD_ACCOUNT_ERROR: 1,
|
|
13148
13152
|
BAD_PASSWORD: 2,
|
|
@@ -13559,7 +13563,7 @@
|
|
|
13559
13563
|
case 13:
|
|
13560
13564
|
err_1 = _b.sent();
|
|
13561
13565
|
console.error(err_1);
|
|
13562
|
-
throw { code: ErrorCodes
|
|
13566
|
+
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
|
|
13563
13567
|
case 14:
|
|
13564
13568
|
// Emit update event
|
|
13565
13569
|
if (!opts || opts.emitEvent !== false) {
|
|
@@ -14336,7 +14340,7 @@
|
|
|
14336
14340
|
}(StartableService));
|
|
14337
14341
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
14338
14342
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
14339
|
-
EntitiesStorage.ɵprov =
|
|
14343
|
+
EntitiesStorage.ɵprov = i0.ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(ProgressBarService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
|
|
14340
14344
|
EntitiesStorage.decorators = [
|
|
14341
14345
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
14342
14346
|
];
|
|
@@ -14492,10 +14496,10 @@
|
|
|
14492
14496
|
function referentialsToString(values, properties, separator) {
|
|
14493
14497
|
return (values || []).map(function (v) { return referentialToString(v, properties); }).join(separator || ', ');
|
|
14494
14498
|
}
|
|
14495
|
-
var ɵ0$
|
|
14499
|
+
var ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
14496
14500
|
var StatusList = Object.freeze([
|
|
14497
14501
|
{
|
|
14498
|
-
id: ɵ0$
|
|
14502
|
+
id: ɵ0$a,
|
|
14499
14503
|
icon: 'checkmark',
|
|
14500
14504
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
14501
14505
|
},
|
|
@@ -14798,7 +14802,7 @@
|
|
|
14798
14802
|
(data.lastName || '')) || '';
|
|
14799
14803
|
}
|
|
14800
14804
|
|
|
14801
|
-
var uuidv4 = uuidv4Imported__namespace;
|
|
14805
|
+
var uuidv4$1 = uuidv4Imported__namespace;
|
|
14802
14806
|
var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
14803
14807
|
var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
14804
14808
|
/**
|
|
@@ -14842,7 +14846,7 @@
|
|
|
14842
14846
|
// Skip if not tracked
|
|
14843
14847
|
if (!context || !context.tracked)
|
|
14844
14848
|
return forward(operation);
|
|
14845
|
-
var id = context.serializationKey || uuidv4();
|
|
14849
|
+
var id = context.serializationKey || uuidv4$1();
|
|
14846
14850
|
console.debug("[apollo-tracker-link] Watching tracked query {" + operation.operationName + "#" + id + "}");
|
|
14847
14851
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
14848
14852
|
var cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -15473,14 +15477,14 @@
|
|
|
15473
15477
|
mutationLinks = void 0;
|
|
15474
15478
|
// Add queue to store tracked queries, when offline
|
|
15475
15479
|
if (enableTrackMutationQueries) {
|
|
15476
|
-
serializingLink = new SerializingLink__default[
|
|
15480
|
+
serializingLink = new SerializingLink__default['default']();
|
|
15477
15481
|
trackerLink = createTrackerLink({
|
|
15478
15482
|
storage: storage,
|
|
15479
15483
|
onNetworkStatusChange: this._networkStatusChanged$,
|
|
15480
15484
|
debounce: 1000,
|
|
15481
15485
|
debug: true
|
|
15482
15486
|
});
|
|
15483
|
-
queueLink_1 = new QueueLink__default[
|
|
15487
|
+
queueLink_1 = new QueueLink__default['default']();
|
|
15484
15488
|
this.registerSubscription(this._networkStatusChanged$
|
|
15485
15489
|
.subscribe(function (type) {
|
|
15486
15490
|
// Network is offline: start buffering into queue
|
|
@@ -15495,7 +15499,7 @@
|
|
|
15495
15499
|
}
|
|
15496
15500
|
}));
|
|
15497
15501
|
mutationLinks = [
|
|
15498
|
-
loggerLink__default[
|
|
15502
|
+
loggerLink__default['default'],
|
|
15499
15503
|
queueLink_1,
|
|
15500
15504
|
trackerLink,
|
|
15501
15505
|
queueLink_1,
|
|
@@ -15602,7 +15606,7 @@
|
|
|
15602
15606
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
15603
15607
|
|| this.toAppError(err.networkError)
|
|
15604
15608
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
15605
|
-
|| this.createAppErrorByCode(ErrorCodes
|
|
15609
|
+
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
15606
15610
|
// If graphQL: try to convert the first error found
|
|
15607
15611
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
15608
15612
|
|| this.toAppError(err)
|
|
@@ -15610,7 +15614,7 @@
|
|
|
15610
15614
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
15611
15615
|
|| err;
|
|
15612
15616
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
15613
|
-
if (error && error.code === ErrorCodes
|
|
15617
|
+
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
15614
15618
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
15615
15619
|
this.onNetworkError.next(error);
|
|
15616
15620
|
}
|
|
@@ -15646,7 +15650,7 @@
|
|
|
15646
15650
|
return 'ERROR.UNAUTHORIZED';
|
|
15647
15651
|
case ServerErrorCodes.FORBIDDEN:
|
|
15648
15652
|
return 'ERROR.FORBIDDEN';
|
|
15649
|
-
case ErrorCodes
|
|
15653
|
+
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
15650
15654
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
15651
15655
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
15652
15656
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -15678,7 +15682,7 @@
|
|
|
15678
15682
|
};
|
|
15679
15683
|
return GraphqlService;
|
|
15680
15684
|
}(StartableService));
|
|
15681
|
-
GraphqlService.ɵprov =
|
|
15685
|
+
GraphqlService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$3.Apollo), i0.ɵɵinject(i3$3.HttpLink), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(CryptoService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
|
|
15682
15686
|
GraphqlService.decorators = [
|
|
15683
15687
|
{ type: i0.Injectable, args: [{
|
|
15684
15688
|
providedIn: 'root'
|
|
@@ -15695,7 +15699,7 @@
|
|
|
15695
15699
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
15696
15700
|
]; };
|
|
15697
15701
|
|
|
15698
|
-
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
15702
|
+
var sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
15699
15703
|
var BaseGraphqlServiceOptions = /** @class */ (function () {
|
|
15700
15704
|
function BaseGraphqlServiceOptions() {
|
|
15701
15705
|
}
|
|
@@ -15865,8 +15869,8 @@
|
|
|
15865
15869
|
};
|
|
15866
15870
|
/* -- protected methods -- */
|
|
15867
15871
|
BaseGraphqlService.prototype.computeMutableWatchQueryId = function (opts) {
|
|
15868
|
-
var queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
15869
|
-
var variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
15872
|
+
var queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
15873
|
+
var variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
15870
15874
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
15871
15875
|
};
|
|
15872
15876
|
BaseGraphqlService.prototype.findMutableWatchQueries = function (opts) {
|
|
@@ -15939,19 +15943,19 @@
|
|
|
15939
15943
|
/* ------------------------------------
|
|
15940
15944
|
* GraphQL queries
|
|
15941
15945
|
* ------------------------------------*/
|
|
15942
|
-
var Fragments
|
|
15943
|
-
account: core.gql(templateObject_1
|
|
15944
|
-
settings: core.gql(templateObject_2
|
|
15946
|
+
var Fragments = {
|
|
15947
|
+
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 ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\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 ...UserSettingsFragment\n }\n department {\n id\n label\n name\n __typename\n }\n __typename\n }"]))),
|
|
15948
|
+
settings: core.gql(templateObject_2 || (templateObject_2 = __makeTemplateObject(["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"], ["fragment UserSettingsFragment on UserSettingsVO {\n id\n locale\n latLongFormat\n content\n nonce\n updateDate\n __typename\n }"])))
|
|
15945
15949
|
};
|
|
15946
15950
|
// Load account query
|
|
15947
|
-
var LoadQuery
|
|
15951
|
+
var LoadQuery = core.gql(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"], ["\n query Account {\n data: account {\n ...AccountFragment\n }\n }\n ", "\n ", "\n"])), Fragments.account, Fragments.settings);
|
|
15948
15952
|
// Check email query
|
|
15949
|
-
var IsEmailExistsQuery = core.gql(templateObject_4
|
|
15953
|
+
var IsEmailExistsQuery = core.gql(templateObject_4 || (templateObject_4 = __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"])));
|
|
15950
15954
|
// Save (create or update) account mutation
|
|
15951
15955
|
var AccountMutations = {
|
|
15952
|
-
save: core.gql(templateObject_5
|
|
15953
|
-
create: core.gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], ["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments
|
|
15954
|
-
saveSettings: core.gql(templateObject_7 || (templateObject_7 = __makeTemplateObject(["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""], ["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""])), Fragments
|
|
15956
|
+
save: core.gql(templateObject_5 || (templateObject_5 = __makeTemplateObject([" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], [" mutation SaveAccount($data:AccountVOInput){\n data: saveAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments.account, Fragments.settings),
|
|
15957
|
+
create: core.gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""], ["mutation CreateAccount($data:AccountVOInput){\n data: createAccount(account: $data){\n ...AccountFragment\n }\n }\n ", "\n ", ""])), Fragments.account, Fragments.settings),
|
|
15958
|
+
saveSettings: core.gql(templateObject_7 || (templateObject_7 = __makeTemplateObject(["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""], ["mutation SaveSettings($data:UserSettingsVOInput){\n data: saveSettings(settings: $data){\n ...UserSettingsFragment\n }\n }\n ", ""])), Fragments.settings)
|
|
15955
15959
|
};
|
|
15956
15960
|
// Sent confirmation email
|
|
15957
15961
|
var SendConfirmEmailMutation = core.gql(templateObject_8 || (templateObject_8 = __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"])));
|
|
@@ -16319,7 +16323,7 @@
|
|
|
16319
16323
|
error_3 = _b.sent();
|
|
16320
16324
|
console.error(error_3);
|
|
16321
16325
|
this.resetData();
|
|
16322
|
-
throw { code: ErrorCodes
|
|
16326
|
+
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
16323
16327
|
case 4:
|
|
16324
16328
|
// Store pubkey+keypair
|
|
16325
16329
|
this._cache.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -16355,7 +16359,7 @@
|
|
|
16355
16359
|
return [3 /*break*/, 18];
|
|
16356
16360
|
case 11:
|
|
16357
16361
|
err_1 = _b.sent();
|
|
16358
|
-
if (!(err_1 && +(err_1.code) === ErrorCodes
|
|
16362
|
+
if (!(err_1 && +(err_1.code) === ErrorCodes.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
|
|
16359
16363
|
if (!(data.username.indexOf('@') !== -1)) return [3 /*break*/, 16];
|
|
16360
16364
|
isEmailExists = void 0;
|
|
16361
16365
|
_b.label = 12;
|
|
@@ -16371,12 +16375,12 @@
|
|
|
16371
16375
|
case 15:
|
|
16372
16376
|
// Email not exists (no account)
|
|
16373
16377
|
if (!isEmailExists) {
|
|
16374
|
-
throw { code: ErrorCodes
|
|
16378
|
+
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
16375
16379
|
}
|
|
16376
16380
|
_b.label = 16;
|
|
16377
16381
|
case 16:
|
|
16378
16382
|
// Email exists, so error = 'bad password'
|
|
16379
|
-
throw { code: ErrorCodes
|
|
16383
|
+
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
16380
16384
|
case 17: throw err_1; // resend the first error
|
|
16381
16385
|
case 18:
|
|
16382
16386
|
_b.trys.push([18, 20, , 21]);
|
|
@@ -16572,8 +16576,8 @@
|
|
|
16572
16576
|
_b.label = 3;
|
|
16573
16577
|
case 3: return [3 /*break*/, 6];
|
|
16574
16578
|
case 4: return [4 /*yield*/, this.graphql.query({
|
|
16575
|
-
query: LoadQuery
|
|
16576
|
-
error: { code: ErrorCodes
|
|
16579
|
+
query: LoadQuery,
|
|
16580
|
+
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
16577
16581
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
16578
16582
|
})];
|
|
16579
16583
|
case 5:
|
|
@@ -16611,7 +16615,7 @@
|
|
|
16611
16615
|
case 1:
|
|
16612
16616
|
isEmailExists = _b.sent();
|
|
16613
16617
|
if (isEmailExists) {
|
|
16614
|
-
throw { code: ErrorCodes
|
|
16618
|
+
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
16615
16619
|
}
|
|
16616
16620
|
return [2 /*return*/];
|
|
16617
16621
|
}
|
|
@@ -16661,7 +16665,7 @@
|
|
|
16661
16665
|
locale: locale
|
|
16662
16666
|
},
|
|
16663
16667
|
error: {
|
|
16664
|
-
code: ErrorCodes
|
|
16668
|
+
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
16665
16669
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
16666
16670
|
}
|
|
16667
16671
|
})];
|
|
@@ -16684,7 +16688,7 @@
|
|
|
16684
16688
|
code: code
|
|
16685
16689
|
},
|
|
16686
16690
|
error: {
|
|
16687
|
-
code: ErrorCodes
|
|
16691
|
+
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
16688
16692
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
16689
16693
|
}
|
|
16690
16694
|
})];
|
|
@@ -16784,7 +16788,7 @@
|
|
|
16784
16788
|
throw error_7;
|
|
16785
16789
|
console.error(error_7);
|
|
16786
16790
|
throw {
|
|
16787
|
-
code: ErrorCodes
|
|
16791
|
+
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
16788
16792
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
16789
16793
|
};
|
|
16790
16794
|
case 6: return [2 /*return*/];
|
|
@@ -16995,7 +16999,7 @@
|
|
|
16995
16999
|
case 1:
|
|
16996
17000
|
existingAccount = _b.sent();
|
|
16997
17001
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
16998
|
-
throw { code: ErrorCodes
|
|
17002
|
+
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
16999
17003
|
}
|
|
17000
17004
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
17001
17005
|
_b.label = 2;
|
|
@@ -17007,7 +17011,7 @@
|
|
|
17007
17011
|
mutation: isNew ? AccountMutations.create : AccountMutations.save,
|
|
17008
17012
|
variables: { data: json },
|
|
17009
17013
|
error: {
|
|
17010
|
-
code: ErrorCodes
|
|
17014
|
+
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
17011
17015
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
17012
17016
|
}
|
|
17013
17017
|
})];
|
|
@@ -17041,7 +17045,7 @@
|
|
|
17041
17045
|
mutation: AccountMutations.saveSettings,
|
|
17042
17046
|
variables: { data: json },
|
|
17043
17047
|
error: {
|
|
17044
|
-
code: ErrorCodes
|
|
17048
|
+
code: ErrorCodes.SAVE_SETTINGS_ERROR,
|
|
17045
17049
|
message: 'ERROR.SAVE_SETTINGS_ERROR'
|
|
17046
17050
|
}
|
|
17047
17051
|
})];
|
|
@@ -17072,7 +17076,7 @@
|
|
|
17072
17076
|
if (counter > 4) {
|
|
17073
17077
|
if (this._debug)
|
|
17074
17078
|
console.debug("[account] Failed to authentication on pod (after " + counter + " attempts)");
|
|
17075
|
-
throw { code: ErrorCodes
|
|
17079
|
+
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
17076
17080
|
}
|
|
17077
17081
|
if (!token) return [3 /*break*/, 2];
|
|
17078
17082
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -17081,7 +17085,7 @@
|
|
|
17081
17085
|
token: token
|
|
17082
17086
|
},
|
|
17083
17087
|
error: {
|
|
17084
|
-
code: ErrorCodes
|
|
17088
|
+
code: ErrorCodes.UNAUTHORIZED,
|
|
17085
17089
|
message: 'ERROR.UNAUTHORIZED'
|
|
17086
17090
|
},
|
|
17087
17091
|
fetchPolicy: 'no-cache'
|
|
@@ -17098,7 +17102,7 @@
|
|
|
17098
17102
|
_b.label = 2;
|
|
17099
17103
|
case 2:
|
|
17100
17104
|
challengeError = {
|
|
17101
|
-
code: ErrorCodes
|
|
17105
|
+
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
17102
17106
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
17103
17107
|
};
|
|
17104
17108
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -17185,7 +17189,7 @@
|
|
|
17185
17189
|
query: AccountSubscriptions.listenChanges,
|
|
17186
17190
|
variables: variables,
|
|
17187
17191
|
error: {
|
|
17188
|
-
code: ErrorCodes
|
|
17192
|
+
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
17189
17193
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
|
|
17190
17194
|
}
|
|
17191
17195
|
}).pipe(operators.map(function (_b) {
|
|
@@ -17218,7 +17222,7 @@
|
|
|
17218
17222
|
};
|
|
17219
17223
|
return AccountService;
|
|
17220
17224
|
}(BaseGraphqlService));
|
|
17221
|
-
AccountService.ɵprov =
|
|
17225
|
+
AccountService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0.ɵɵinject(CryptoService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$2.TranslateService, 8), i0.ɵɵinject(i1$5.ToastController, 8), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
17222
17226
|
AccountService.decorators = [
|
|
17223
17227
|
{ type: i0.Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
|
|
17224
17228
|
];
|
|
@@ -17233,7 +17237,7 @@
|
|
|
17233
17237
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] },
|
|
17234
17238
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
17235
17239
|
]; };
|
|
17236
|
-
var templateObject_1
|
|
17240
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
|
|
17237
17241
|
|
|
17238
17242
|
var Software_1, Configuration_1;
|
|
17239
17243
|
// @dynamic
|
|
@@ -17491,13 +17495,13 @@
|
|
|
17491
17495
|
/* ------------------------------------
|
|
17492
17496
|
* GraphQL queries
|
|
17493
17497
|
* ------------------------------------*/
|
|
17494
|
-
var Fragments = {
|
|
17495
|
-
config: core.gql(templateObject_1$
|
|
17498
|
+
var Fragments$1 = {
|
|
17499
|
+
config: core.gql(templateObject_1$1 || (templateObject_1$1 = __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 "])))
|
|
17496
17500
|
};
|
|
17497
|
-
var LoadQuery = core.gql(templateObject_2$
|
|
17501
|
+
var LoadQuery$1 = core.gql(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"], ["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"])), Fragments$1.config);
|
|
17498
17502
|
// Save (create or update) account mutation
|
|
17499
|
-
var SaveMutation = core.gql(templateObject_3$
|
|
17500
|
-
var ClearCache = core.gql(templateObject_4$
|
|
17503
|
+
var SaveMutation = core.gql(templateObject_3$1 || (templateObject_3$1 = __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$1.config);
|
|
17504
|
+
var ClearCache = core.gql(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"], ["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"])));
|
|
17501
17505
|
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"])));
|
|
17502
17506
|
var APP_CONFIG_OPTIONS = new i0.InjectionToken('defaultOptions');
|
|
17503
17507
|
var ConfigService = /** @class */ (function (_super) {
|
|
@@ -17557,12 +17561,12 @@
|
|
|
17557
17561
|
case 0:
|
|
17558
17562
|
now = Date.now();
|
|
17559
17563
|
console.debug('[config] Loading Pod configuration...');
|
|
17560
|
-
query = opts && opts.query || LoadQuery;
|
|
17564
|
+
query = opts && opts.query || LoadQuery$1;
|
|
17561
17565
|
variables = opts && opts.variables || undefined;
|
|
17562
17566
|
return [4 /*yield*/, this.graphql.query({
|
|
17563
17567
|
query: query,
|
|
17564
17568
|
variables: variables,
|
|
17565
|
-
error: { code: ErrorCodes
|
|
17569
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17566
17570
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
17567
17571
|
})];
|
|
17568
17572
|
case 1:
|
|
@@ -17604,7 +17608,7 @@
|
|
|
17604
17608
|
data: json
|
|
17605
17609
|
},
|
|
17606
17610
|
error: {
|
|
17607
|
-
code: ErrorCodes
|
|
17611
|
+
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
17608
17612
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
17609
17613
|
}
|
|
17610
17614
|
})];
|
|
@@ -17639,7 +17643,7 @@
|
|
|
17639
17643
|
return [4 /*yield*/, this.graphql.query({
|
|
17640
17644
|
query: CacheStatistics,
|
|
17641
17645
|
variables: null,
|
|
17642
|
-
error: { code: ErrorCodes
|
|
17646
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17643
17647
|
fetchPolicy: 'network-only'
|
|
17644
17648
|
})];
|
|
17645
17649
|
case 1:
|
|
@@ -17663,7 +17667,7 @@
|
|
|
17663
17667
|
return [4 /*yield*/, this.graphql.query({
|
|
17664
17668
|
query: ClearCache,
|
|
17665
17669
|
variables: variables,
|
|
17666
|
-
error: { code: ErrorCodes
|
|
17670
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17667
17671
|
fetchPolicy: 'no-cache'
|
|
17668
17672
|
})];
|
|
17669
17673
|
case 1:
|
|
@@ -17863,7 +17867,7 @@
|
|
|
17863
17867
|
};
|
|
17864
17868
|
return ConfigService;
|
|
17865
17869
|
}(BaseGraphqlService));
|
|
17866
|
-
ConfigService.ɵprov =
|
|
17870
|
+
ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(NetworkService), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
17867
17871
|
ConfigService.decorators = [
|
|
17868
17872
|
{ type: i0.Injectable, args: [{
|
|
17869
17873
|
providedIn: 'root',
|
|
@@ -17882,9 +17886,9 @@
|
|
|
17882
17886
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
|
|
17883
17887
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
17884
17888
|
]; };
|
|
17885
|
-
var templateObject_1$
|
|
17889
|
+
var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1, templateObject_5$1;
|
|
17886
17890
|
|
|
17887
|
-
var moment$
|
|
17891
|
+
var moment$4 = momentImported__namespace;
|
|
17888
17892
|
var AndroidOsEnvironment = Object.freeze({
|
|
17889
17893
|
DIRECTORY_DOWNLOADS: 'Download',
|
|
17890
17894
|
DIRECTORY_DOWNLOADS_OLD: 'Downloads',
|
|
@@ -18155,16 +18159,16 @@
|
|
|
18155
18159
|
}
|
|
18156
18160
|
// config moment lib
|
|
18157
18161
|
try {
|
|
18158
|
-
moment$
|
|
18162
|
+
moment$4.locale(event.lang);
|
|
18159
18163
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
18160
18164
|
}
|
|
18161
18165
|
// If error, fallback to en
|
|
18162
18166
|
catch (err) {
|
|
18163
|
-
moment$
|
|
18167
|
+
moment$4.locale('en');
|
|
18164
18168
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
18165
18169
|
}
|
|
18166
18170
|
// Config date adapter
|
|
18167
|
-
_this.dateAdapter.setLocale(moment$
|
|
18171
|
+
_this.dateAdapter.setLocale(moment$4.locale());
|
|
18168
18172
|
}
|
|
18169
18173
|
});
|
|
18170
18174
|
this.settings.onChange.subscribe(function (data) {
|
|
@@ -18190,7 +18194,7 @@
|
|
|
18190
18194
|
PlatformService.prototype.checkAppVersion = function (opts) {
|
|
18191
18195
|
var _a, _b, _c;
|
|
18192
18196
|
return __awaiter(this, void 0, void 0, function () {
|
|
18193
|
-
var silent, production, canAutoReload, actualVersion,
|
|
18197
|
+
var silent, production, canAutoReload, actualVersion, remoteVersion, reloadPath;
|
|
18194
18198
|
return __generator(this, function (_d) {
|
|
18195
18199
|
switch (_d.label) {
|
|
18196
18200
|
case 0:
|
|
@@ -18207,8 +18211,7 @@
|
|
|
18207
18211
|
(_a = this.checkAppVersionTimer) === null || _a === void 0 ? void 0 : _a.unsubscribe(); // Stop timer if exists
|
|
18208
18212
|
return [2 /*return*/]; // Skip
|
|
18209
18213
|
}
|
|
18210
|
-
|
|
18211
|
-
return [4 /*yield*/, this.networkService.getAppVersion(peer)];
|
|
18214
|
+
return [4 /*yield*/, this.networkService.getAppVersion()];
|
|
18212
18215
|
case 1:
|
|
18213
18216
|
remoteVersion = _d.sent();
|
|
18214
18217
|
if (isNilOrBlank(remoteVersion)) {
|
|
@@ -18219,7 +18222,7 @@
|
|
|
18219
18222
|
}
|
|
18220
18223
|
if (VersionUtils.isCompatible(remoteVersion, actualVersion)) {
|
|
18221
18224
|
if (!silent)
|
|
18222
|
-
console.info(
|
|
18225
|
+
console.info("[platform] Checking remote app version [OK] {remote: '" + remoteVersion + "', actual: '" + actualVersion + "'}");
|
|
18223
18226
|
return [2 /*return*/];
|
|
18224
18227
|
}
|
|
18225
18228
|
reloadPath = location.href.replace(/[&]?version=[0-9.]+/gi, '');
|
|
@@ -18417,7 +18420,7 @@
|
|
|
18417
18420
|
};
|
|
18418
18421
|
return PlatformService;
|
|
18419
18422
|
}(StartableService));
|
|
18420
|
-
PlatformService.ɵprov =
|
|
18423
|
+
PlatformService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$4.Platform), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$1.MomentDateAdapter), i0.ɵɵinject(EntitiesStorage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ConfigService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(AudioProvider), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i14.StatusBar, 8), i0.ɵɵinject(i15.Keyboard, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i17.InAppBrowser, 8), i0.ɵɵinject(i18.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
|
|
18421
18424
|
PlatformService.decorators = [
|
|
18422
18425
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
18423
18426
|
];
|
|
@@ -18515,7 +18518,7 @@
|
|
|
18515
18518
|
};
|
|
18516
18519
|
return MatStepperI18n;
|
|
18517
18520
|
}(stepper.MatStepperIntl));
|
|
18518
|
-
MatStepperI18n.ɵprov =
|
|
18521
|
+
MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
18519
18522
|
MatStepperI18n.decorators = [
|
|
18520
18523
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
18521
18524
|
];
|
|
@@ -20728,7 +20731,7 @@
|
|
|
20728
20731
|
return 1;
|
|
20729
20732
|
}
|
|
20730
20733
|
}
|
|
20731
|
-
var ɵ0$
|
|
20734
|
+
var ɵ0$b = function (defaultStateSize) { return [
|
|
20732
20735
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
20733
20736
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
20734
20737
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -20736,7 +20739,7 @@
|
|
|
20736
20739
|
var SCALE_OPTIONS_DEFAULT = {
|
|
20737
20740
|
startColor: rgbArrayMap.red,
|
|
20738
20741
|
startStates: [0, 2, 3],
|
|
20739
|
-
startStepsFn: ɵ0$
|
|
20742
|
+
startStepsFn: ɵ0$b
|
|
20740
20743
|
};
|
|
20741
20744
|
/**
|
|
20742
20745
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -21667,7 +21670,7 @@
|
|
|
21667
21670
|
};
|
|
21668
21671
|
return UserSettingsValidatorService;
|
|
21669
21672
|
}(AppValidatorService));
|
|
21670
|
-
UserSettingsValidatorService.ɵprov =
|
|
21673
|
+
UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
21671
21674
|
UserSettingsValidatorService.decorators = [
|
|
21672
21675
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
21673
21676
|
];
|
|
@@ -21715,7 +21718,7 @@
|
|
|
21715
21718
|
};
|
|
21716
21719
|
return AccountValidatorService;
|
|
21717
21720
|
}(AppValidatorService));
|
|
21718
|
-
AccountValidatorService.ɵprov =
|
|
21721
|
+
AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
21719
21722
|
AccountValidatorService.decorators = [
|
|
21720
21723
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
21721
21724
|
];
|
|
@@ -22346,7 +22349,7 @@
|
|
|
22346
22349
|
};
|
|
22347
22350
|
return LocalSettingsValidatorService;
|
|
22348
22351
|
}(AppValidatorService));
|
|
22349
|
-
LocalSettingsValidatorService.ɵprov =
|
|
22352
|
+
LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
22350
22353
|
LocalSettingsValidatorService.decorators = [
|
|
22351
22354
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
22352
22355
|
];
|
|
@@ -23126,7 +23129,7 @@
|
|
|
23126
23129
|
};
|
|
23127
23130
|
return IsOnFieldModePipe;
|
|
23128
23131
|
}());
|
|
23129
|
-
IsOnFieldModePipe.ɵprov =
|
|
23132
|
+
IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
23130
23133
|
IsOnFieldModePipe.decorators = [
|
|
23131
23134
|
{ type: i0.Pipe, args: [{
|
|
23132
23135
|
name: 'isOnField'
|
|
@@ -23141,7 +23144,7 @@
|
|
|
23141
23144
|
};
|
|
23142
23145
|
return IsNotOnFieldModePipe;
|
|
23143
23146
|
}());
|
|
23144
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
23147
|
+
IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
23145
23148
|
IsNotOnFieldModePipe.decorators = [
|
|
23146
23149
|
{ type: i0.Pipe, args: [{
|
|
23147
23150
|
name: 'isNotOnField'
|
|
@@ -23159,7 +23162,7 @@
|
|
|
23159
23162
|
};
|
|
23160
23163
|
return PersonToStringPipe;
|
|
23161
23164
|
}());
|
|
23162
|
-
PersonToStringPipe.ɵprov =
|
|
23165
|
+
PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
23163
23166
|
PersonToStringPipe.decorators = [
|
|
23164
23167
|
{ type: i0.Pipe, args: [{
|
|
23165
23168
|
name: 'personToString'
|
|
@@ -23623,7 +23626,7 @@
|
|
|
23623
23626
|
};
|
|
23624
23627
|
return IsLoginAccountPipe;
|
|
23625
23628
|
}());
|
|
23626
|
-
IsLoginAccountPipe.ɵprov =
|
|
23629
|
+
IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
23627
23630
|
IsLoginAccountPipe.decorators = [
|
|
23628
23631
|
{ type: i0.Pipe, args: [{
|
|
23629
23632
|
name: 'isLogin'
|
|
@@ -23638,7 +23641,7 @@
|
|
|
23638
23641
|
};
|
|
23639
23642
|
return AccountToStringPipe;
|
|
23640
23643
|
}());
|
|
23641
|
-
AccountToStringPipe.ɵprov =
|
|
23644
|
+
AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
23642
23645
|
AccountToStringPipe.decorators = [
|
|
23643
23646
|
{ type: i0.Pipe, args: [{
|
|
23644
23647
|
name: 'accountToString'
|
|
@@ -23656,7 +23659,7 @@
|
|
|
23656
23659
|
};
|
|
23657
23660
|
return DepartmentToStringPipe;
|
|
23658
23661
|
}());
|
|
23659
|
-
DepartmentToStringPipe.ɵprov =
|
|
23662
|
+
DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
23660
23663
|
DepartmentToStringPipe.decorators = [
|
|
23661
23664
|
{ type: i0.Pipe, args: [{
|
|
23662
23665
|
name: 'departmentToString'
|
|
@@ -23762,7 +23765,7 @@
|
|
|
23762
23765
|
};
|
|
23763
23766
|
return MenuService;
|
|
23764
23767
|
}());
|
|
23765
|
-
MenuService.ɵprov =
|
|
23768
|
+
MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
23766
23769
|
MenuService.decorators = [
|
|
23767
23770
|
{ type: i0.Injectable, args: [{
|
|
23768
23771
|
providedIn: 'root'
|
|
@@ -24307,7 +24310,7 @@
|
|
|
24307
24310
|
};
|
|
24308
24311
|
return AuthGuardService;
|
|
24309
24312
|
}());
|
|
24310
|
-
AuthGuardService.ɵprov =
|
|
24313
|
+
AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0.ɵɵinject(AccountService), i0.ɵɵinject(i1$5.ModalController), i0.ɵɵinject(i3.Router), i0.ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
24311
24314
|
AuthGuardService.decorators = [
|
|
24312
24315
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
24313
24316
|
];
|
|
@@ -24352,7 +24355,7 @@
|
|
|
24352
24355
|
query: query,
|
|
24353
24356
|
variables: { id: id },
|
|
24354
24357
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
24355
|
-
error: { code: ErrorCodes
|
|
24358
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24356
24359
|
})
|
|
24357
24360
|
.pipe(operators.map(function (_b) {
|
|
24358
24361
|
var data = _b.data;
|
|
@@ -24374,7 +24377,7 @@
|
|
|
24374
24377
|
query: query,
|
|
24375
24378
|
variables: { id: id },
|
|
24376
24379
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
24377
|
-
error: { code: ErrorCodes
|
|
24380
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24378
24381
|
})];
|
|
24379
24382
|
case 1:
|
|
24380
24383
|
data = (_b.sent()).data;
|
|
@@ -24410,7 +24413,7 @@
|
|
|
24410
24413
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
24411
24414
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
24412
24415
|
variables: variables,
|
|
24413
|
-
error: { code: ErrorCodes
|
|
24416
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
24414
24417
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
24415
24418
|
})
|
|
24416
24419
|
.pipe(operators.map(function (_b) {
|
|
@@ -24428,7 +24431,7 @@
|
|
|
24428
24431
|
};
|
|
24429
24432
|
BaseEntityService.prototype.loadAll = function (offset, size, sortBy, sortDirection, filter, opts) {
|
|
24430
24433
|
return __awaiter(this, void 0, void 0, function () {
|
|
24431
|
-
var debug, variables, now, withTotal, query, _b, data, total, entities,
|
|
24434
|
+
var debug, variables, now, withTotal, query, _b, data, total, entities, result, nextOffset_1;
|
|
24432
24435
|
var _this = this;
|
|
24433
24436
|
return __generator(this, function (_c) {
|
|
24434
24437
|
switch (_c.label) {
|
|
@@ -24452,7 +24455,7 @@
|
|
|
24452
24455
|
return [4 /*yield*/, this.graphql.query({
|
|
24453
24456
|
query: query,
|
|
24454
24457
|
variables: variables,
|
|
24455
|
-
error: { code: ErrorCodes
|
|
24458
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
24456
24459
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
24457
24460
|
})];
|
|
24458
24461
|
case 1:
|
|
@@ -24462,18 +24465,18 @@
|
|
|
24462
24465
|
(data || []);
|
|
24463
24466
|
if (debug)
|
|
24464
24467
|
console.debug(this._logPrefix + (this._logTypeName + " items loaded in " + (Date.now() - now) + "ms"));
|
|
24465
|
-
|
|
24468
|
+
result = {
|
|
24466
24469
|
data: entities,
|
|
24467
|
-
total: total
|
|
24470
|
+
total: total || entities.length
|
|
24468
24471
|
};
|
|
24469
24472
|
// Add fetch more capability, if total was fetched
|
|
24470
24473
|
if (withTotal) {
|
|
24471
24474
|
nextOffset_1 = (offset || 0) + entities.length;
|
|
24472
|
-
if (nextOffset_1 <
|
|
24473
|
-
|
|
24475
|
+
if (nextOffset_1 < result.total) {
|
|
24476
|
+
result.fetchMore = function () { return _this.loadAll(nextOffset_1, size, sortBy, sortDirection, filter, opts); };
|
|
24474
24477
|
}
|
|
24475
24478
|
}
|
|
24476
|
-
return [2 /*return*/,
|
|
24479
|
+
return [2 /*return*/, result];
|
|
24477
24480
|
}
|
|
24478
24481
|
});
|
|
24479
24482
|
});
|
|
@@ -24500,7 +24503,7 @@
|
|
|
24500
24503
|
variables: {
|
|
24501
24504
|
filter: filter && filter.asPodObject()
|
|
24502
24505
|
},
|
|
24503
|
-
error: { code: ErrorCodes
|
|
24506
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
24504
24507
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
24505
24508
|
})];
|
|
24506
24509
|
case 3:
|
|
@@ -24545,7 +24548,7 @@
|
|
|
24545
24548
|
variables: {
|
|
24546
24549
|
data: json
|
|
24547
24550
|
},
|
|
24548
|
-
error: { code: ErrorCodes
|
|
24551
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24549
24552
|
update: function (proxy, _b) {
|
|
24550
24553
|
var data = _b.data;
|
|
24551
24554
|
var savedEntities = data && data.data;
|
|
@@ -24612,7 +24615,7 @@
|
|
|
24612
24615
|
variables: {
|
|
24613
24616
|
data: json
|
|
24614
24617
|
},
|
|
24615
|
-
error: { code: ErrorCodes
|
|
24618
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24616
24619
|
update: function (cache, _b) {
|
|
24617
24620
|
var data = _b.data;
|
|
24618
24621
|
// Update entity
|
|
@@ -24670,7 +24673,7 @@
|
|
|
24670
24673
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
24671
24674
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
24672
24675
|
variables: { ids: ids },
|
|
24673
|
-
error: { code: ErrorCodes
|
|
24676
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24674
24677
|
update: function (cache, res) {
|
|
24675
24678
|
// Remove from cache
|
|
24676
24679
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -24723,7 +24726,7 @@
|
|
|
24723
24726
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
24724
24727
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
24725
24728
|
variables: { id: id },
|
|
24726
|
-
error: { code: ErrorCodes
|
|
24729
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24727
24730
|
update: function (proxy, res) {
|
|
24728
24731
|
// Remove from cache
|
|
24729
24732
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -24765,7 +24768,7 @@
|
|
|
24765
24768
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache',
|
|
24766
24769
|
variables: variables,
|
|
24767
24770
|
error: {
|
|
24768
|
-
code: ErrorCodes
|
|
24771
|
+
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
24769
24772
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
24770
24773
|
}
|
|
24771
24774
|
})
|
|
@@ -24988,7 +24991,7 @@
|
|
|
24988
24991
|
if (this._debug)
|
|
24989
24992
|
invalidRows.forEach(function (row) { return AppTableUtils.logRowErrors(row, "[table-datasource] " + _this._logTypeName + " row #" + row.id); });
|
|
24990
24993
|
// Stop with an error
|
|
24991
|
-
throw { code: ErrorCodes
|
|
24994
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
24992
24995
|
}
|
|
24993
24996
|
this._editingRowCount = 0;
|
|
24994
24997
|
data = void 0;
|
|
@@ -26008,14 +26011,14 @@
|
|
|
26008
26011
|
case 0:
|
|
26009
26012
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
26010
26013
|
if (this.readOnly) {
|
|
26011
|
-
throw { code: ErrorCodes
|
|
26014
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
26012
26015
|
}
|
|
26013
26016
|
this.resetError();
|
|
26014
26017
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
26015
26018
|
this.previouslyEditedRowId = opts.keepEditing ? ((((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined) || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.id)) : undefined;
|
|
26016
26019
|
previouslyEditedData = opts.keepEditing ? (isNotNil(this.previouslyEditedRowId) && ((_c = this.editedRow) === null || _c === void 0 ? void 0 : _c.currentData) || ((_d = this.singleSelectedRow) === null || _d === void 0 ? void 0 : _d.currentData)) : undefined;
|
|
26017
26020
|
if (!this.confirmEditCreate()) {
|
|
26018
|
-
throw { code: ErrorCodes
|
|
26021
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
26019
26022
|
}
|
|
26020
26023
|
// Mark as saving
|
|
26021
26024
|
this.markAsSaving();
|
|
@@ -26172,7 +26175,7 @@
|
|
|
26172
26175
|
switch (_e.label) {
|
|
26173
26176
|
case 0:
|
|
26174
26177
|
if (this.readOnly) {
|
|
26175
|
-
throw { code: ErrorCodes
|
|
26178
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
26176
26179
|
}
|
|
26177
26180
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
26178
26181
|
return [2 /*return*/, 0]; // SKip
|
|
@@ -28072,7 +28075,7 @@
|
|
|
28072
28075
|
case 8:
|
|
28073
28076
|
data = _c.sent();
|
|
28074
28077
|
if (!data)
|
|
28075
|
-
throw { code: ErrorCodes
|
|
28078
|
+
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
28076
28079
|
this._usageMode = this.computeUsageMode(data);
|
|
28077
28080
|
return [4 /*yield*/, this.onEntityLoaded(data, opts)];
|
|
28078
28081
|
case 9:
|
|
@@ -28779,9 +28782,10 @@
|
|
|
28779
28782
|
canDelete: [{ type: i0.Input }]
|
|
28780
28783
|
};
|
|
28781
28784
|
|
|
28782
|
-
var
|
|
28785
|
+
var SocialErrorCodes = {
|
|
28783
28786
|
LOAD_USER_EVENTS_ERROR: 50000,
|
|
28784
|
-
SAVE_USER_EVENT_ERROR: 50001
|
|
28787
|
+
SAVE_USER_EVENT_ERROR: 50001,
|
|
28788
|
+
SEND_MESSAGE_ERROR: 50003
|
|
28785
28789
|
};
|
|
28786
28790
|
|
|
28787
28791
|
var UserEvent_1;
|
|
@@ -28827,7 +28831,7 @@
|
|
|
28827
28831
|
EntityClass({ typename: 'UserEventVO' })
|
|
28828
28832
|
], exports.UserEvent);
|
|
28829
28833
|
|
|
28830
|
-
var
|
|
28834
|
+
var UserEventFragments = {
|
|
28831
28835
|
userEvent: core.gql(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["fragment UserEventFragment on UserEventVO {\n id\n issuer\n updateDate\n creationDate\n eventType\n recipient\n content\n hash\n signature\n readSignature\n __typename\n }"], ["fragment UserEventFragment on UserEventVO {\n id\n issuer\n updateDate\n creationDate\n eventType\n recipient\n content\n hash\n signature\n readSignature\n __typename\n }"]))),
|
|
28832
28836
|
lightUserEvent: core.gql(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["fragment LightUserEventFragment on UserEventVO {\n id\n issuer\n recipient\n updateDate\n creationDate\n eventType\n readSignature\n __typename\n }"], ["fragment LightUserEventFragment on UserEventVO {\n id\n issuer\n recipient\n updateDate\n creationDate\n eventType\n readSignature\n __typename\n }"])))
|
|
28833
28837
|
};
|
|
@@ -28862,12 +28866,12 @@
|
|
|
28862
28866
|
return UserEventFilter;
|
|
28863
28867
|
}(EntityFilter));
|
|
28864
28868
|
exports.UserEventFilter = __decorate([
|
|
28865
|
-
EntityClass({ typename: '
|
|
28869
|
+
EntityClass({ typename: 'UserEventFilterVO' })
|
|
28866
28870
|
], exports.UserEventFilter);
|
|
28867
|
-
var SaveQuery = core.gql(templateObject_1$
|
|
28868
|
-
var LoadAllQuery = core.gql(templateObject_2$
|
|
28869
|
-
var DeleteByIdsMutation = core.gql(templateObject_3$
|
|
28870
|
-
var LoadAllWithContentQuery = core.gql(templateObject_4$
|
|
28871
|
+
var SaveQuery = core.gql(templateObject_1$3 || (templateObject_1$3 = __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"])), UserEventFragments.userEvent);
|
|
28872
|
+
var LoadAllQuery = core.gql(templateObject_2$3 || (templateObject_2$3 = __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"])), UserEventFragments.lightUserEvent);
|
|
28873
|
+
var DeleteByIdsMutation = core.gql(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"], ["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"])));
|
|
28874
|
+
var LoadAllWithContentQuery = core.gql(templateObject_4$2 || (templateObject_4$2 = __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"])), UserEventFragments.userEvent);
|
|
28871
28875
|
var UserEventService = /** @class */ (function (_super) {
|
|
28872
28876
|
__extends(UserEventService, _super);
|
|
28873
28877
|
function UserEventService(graphql, accountService, network, translate, toastController, environment) {
|
|
@@ -28880,7 +28884,7 @@
|
|
|
28880
28884
|
_this.environment = environment;
|
|
28881
28885
|
_this._userEventActions = [];
|
|
28882
28886
|
// For DEV only
|
|
28883
|
-
_this._debug = !environment.production;
|
|
28887
|
+
_this._debug = environment && !environment.production;
|
|
28884
28888
|
return _this;
|
|
28885
28889
|
}
|
|
28886
28890
|
/**
|
|
@@ -28918,7 +28922,7 @@
|
|
|
28918
28922
|
filter: filter && filter.asPodObject()
|
|
28919
28923
|
},
|
|
28920
28924
|
arrayFieldName: 'data',
|
|
28921
|
-
error: { code:
|
|
28925
|
+
error: { code: SocialErrorCodes.LOAD_USER_EVENTS_ERROR, message: 'SOCIAL.ERROR.LOAD_USER_EVENTS_ERROR' },
|
|
28922
28926
|
fetchPolicy: options && options.fetchPolicy || undefined
|
|
28923
28927
|
})
|
|
28924
28928
|
.pipe(operators.map(function (res) {
|
|
@@ -28961,7 +28965,7 @@
|
|
|
28961
28965
|
variables: {
|
|
28962
28966
|
data: json
|
|
28963
28967
|
},
|
|
28964
|
-
error: { code:
|
|
28968
|
+
error: { code: SocialErrorCodes.SAVE_USER_EVENT_ERROR, message: 'SOCIAL.ERROR.SAVE_USER_EVENT_ERROR' },
|
|
28965
28969
|
update: function (proxy, _a) {
|
|
28966
28970
|
var data = _a.data;
|
|
28967
28971
|
// Update entity
|
|
@@ -29188,7 +29192,7 @@
|
|
|
29188
29192
|
};
|
|
29189
29193
|
return UserEventService;
|
|
29190
29194
|
}(BaseGraphqlService));
|
|
29191
|
-
UserEventService.ɵprov =
|
|
29195
|
+
UserEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(AccountService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(ENVIRONMENT, 8)); }, token: UserEventService, providedIn: "root" });
|
|
29192
29196
|
UserEventService.decorators = [
|
|
29193
29197
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29194
29198
|
];
|
|
@@ -29198,9 +29202,9 @@
|
|
|
29198
29202
|
{ type: NetworkService },
|
|
29199
29203
|
{ type: i1$2.TranslateService },
|
|
29200
29204
|
{ type: i1$5.ToastController },
|
|
29201
|
-
{ type:
|
|
29205
|
+
{ type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
29202
29206
|
]; };
|
|
29203
|
-
var templateObject_1$
|
|
29207
|
+
var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2;
|
|
29204
29208
|
|
|
29205
29209
|
var ICONS_MAP = {
|
|
29206
29210
|
DEBUG_DATA: { matIcon: 'bug_report' },
|
|
@@ -29356,7 +29360,7 @@
|
|
|
29356
29360
|
UserEventsTable.decorators = [
|
|
29357
29361
|
{ type: i0.Component, args: [{
|
|
29358
29362
|
selector: 'app-user-events-table',
|
|
29359
|
-
template: "\n<!-- Type = options menu -->\n<mat-menu #optionsMenu=\"matMenu\" xPosition=\"after\">\n\n <!-- display columns -->\n <button mat-menu-item\n (click)=\"openSelectColumnsModal($event)\">\n <mat-icon>view_column</mat-icon>\n <ion-label translate>COMMON.DISPLAYED_COLUMNS_DOTS</ion-label>\n </button>\n\n</mat-menu>\n\n<!-- top header -->\n<mat-toolbar>\n\n <ng-container *ngIf=\"!selection.hasValue(); else hasSelection\">\n\n <button mat-icon-button [title]=\"'COMMON.BTN_REFRESH'|translate\" (click)=\"onRefresh.emit()\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n </ng-container>\n\n <!-- if row selection -->\n <ng-template #hasSelection>\n\n <!-- delete -->\n <button mat-icon-button class=\"hidden-xs hidden-sm\" *ngIf=\"canDelete\"\n [title]=\"'COMMON.BTN_DELETE'|translate\" (click)=\"deleteSelection($event)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ng-template>\n\n <!-- error -->\n <ion-item *ngIf=\"error\" hidden-xs hidden-sm hidden-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <div class=\"toolbar-spacer\"></div>\n\n <button mat-icon-button\n [title]=\"'COMMON.BTN_OPTIONS'|translate\"\n [matMenuTriggerFor]=\"optionsMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n</mat-toolbar>\n\n\n<mat-table [dataSource]=\"dataSource\" matSort\n [matSortActive]=\"defaultSortBy\"\n [matSortDirection]=\"defaultSortDirection\"\n matSortDisableClear [trackBy]=\"trackByFn\">\n\n <!-- select -->\n <ng-container matColumnDef=\"select\">\n <mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </mat-cell>\n </ng-container>\n\n <!-- id -->\n <ng-container matColumnDef=\"id\">\n <mat-header-cell *matHeaderCellDef mat-sort-header [class.cdk-visually-hidden]=\"!isAdmin\">\n <app-loading-spinner [loading]=\"loadingSubject|async\"><ion-label>#</ion-label></app-loading-spinner>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!isAdmin\">{{ row.currentData.id | mathAbs }}</mat-cell>\n </ng-container>\n\n <!-- creationDate -->\n <ng-container matColumnDef=\"creationDate\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>SOCIAL.USER_EVENT.CREATION_DATE</ion-label>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\">\n <ion-text>\n {{row.currentData.creationDate | dateFromNow }}<br/>\n <ion-text color=\"medium\"><small>{{row.currentData.creationDate | dateFormat: {time: true} }}</small></ion-text>\n </ion-text>\n </mat-cell>\n </ng-container>\n\n <!-- icon -->\n <ng-container matColumnDef=\"icon\">\n <mat-header-cell *matHeaderCellDef>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row;\">\n <ng-container *ngIf=\"getIcon(row.currentData); let details\">\n <ion-icon slot=\"start\" *ngIf=\"details.icon\" [name]=\"details.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"details.matIcon\">{{details.matIcon}}</mat-icon>\n </ng-container>\n </mat-cell>\n </ng-container>\n\n <!-- event type -->\n <ng-container matColumnDef=\"eventType\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>SOCIAL.USER_EVENT.EVENT_TYPE</ion-label>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row;\">\n <span>{{'SOCIAL.
|
|
29363
|
+
template: "\n<!-- Type = options menu -->\n<mat-menu #optionsMenu=\"matMenu\" xPosition=\"after\">\n\n <!-- display columns -->\n <button mat-menu-item\n (click)=\"openSelectColumnsModal($event)\">\n <mat-icon>view_column</mat-icon>\n <ion-label translate>COMMON.DISPLAYED_COLUMNS_DOTS</ion-label>\n </button>\n\n</mat-menu>\n\n<!-- top header -->\n<mat-toolbar>\n\n <ng-container *ngIf=\"!selection.hasValue(); else hasSelection\">\n\n <button mat-icon-button [title]=\"'COMMON.BTN_REFRESH'|translate\" (click)=\"onRefresh.emit()\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n </ng-container>\n\n <!-- if row selection -->\n <ng-template #hasSelection>\n\n <!-- delete -->\n <button mat-icon-button class=\"hidden-xs hidden-sm\" *ngIf=\"canDelete\"\n [title]=\"'COMMON.BTN_DELETE'|translate\" (click)=\"deleteSelection($event)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ng-template>\n\n <!-- error -->\n <ion-item *ngIf=\"error\" hidden-xs hidden-sm hidden-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <div class=\"toolbar-spacer\"></div>\n\n <button mat-icon-button\n [title]=\"'COMMON.BTN_OPTIONS'|translate\"\n [matMenuTriggerFor]=\"optionsMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n</mat-toolbar>\n\n\n<mat-table [dataSource]=\"dataSource\" matSort\n [matSortActive]=\"defaultSortBy\"\n [matSortDirection]=\"defaultSortDirection\"\n matSortDisableClear [trackBy]=\"trackByFn\">\n\n <!-- select -->\n <ng-container matColumnDef=\"select\">\n <mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!canEdit\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </mat-cell>\n </ng-container>\n\n <!-- id -->\n <ng-container matColumnDef=\"id\">\n <mat-header-cell *matHeaderCellDef mat-sort-header [class.cdk-visually-hidden]=\"!isAdmin\">\n <app-loading-spinner [loading]=\"loadingSubject|async\"><ion-label>#</ion-label></app-loading-spinner>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!isAdmin\">{{ row.currentData.id | mathAbs }}</mat-cell>\n </ng-container>\n\n <!-- creationDate -->\n <ng-container matColumnDef=\"creationDate\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>SOCIAL.USER_EVENT.CREATION_DATE</ion-label>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\">\n <ion-text>\n {{row.currentData.creationDate | dateFromNow }}<br/>\n <ion-text color=\"medium\"><small>{{row.currentData.creationDate | dateFormat: {time: true} }}</small></ion-text>\n </ion-text>\n </mat-cell>\n </ng-container>\n\n <!-- icon -->\n <ng-container matColumnDef=\"icon\">\n <mat-header-cell *matHeaderCellDef>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row;\">\n <ng-container *ngIf=\"getIcon(row.currentData); let details\">\n <ion-icon slot=\"start\" *ngIf=\"details.icon\" [name]=\"details.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"details.matIcon\">{{details.matIcon}}</mat-icon>\n </ng-container>\n </mat-cell>\n </ng-container>\n\n <!-- event type -->\n <ng-container matColumnDef=\"eventType\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label translate>SOCIAL.USER_EVENT.EVENT_TYPE</ion-label>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row;\">\n <span>{{'SOCIAL.USER_EVENT.TYPE_ENUM.' + row.currentData.eventType | translate}}</span>\n </mat-cell>\n </ng-container>\n\n <!-- message -->\n <ng-container matColumnDef=\"message\">\n <mat-header-cell *matHeaderCellDef>\n <ion-label translate>SOCIAL.USER_EVENT.MESSAGE</ion-label>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row;\">\n <ng-container *ngIf=\"getDetail(row.currentData); let details\">\n <ion-text [innerHTML]=\"details.title|translate\">\n </ion-text>\n </ng-container>\n </mat-cell>\n </ng-container>\n\n <!-- Actions buttons column -->\n <ng-container matColumnDef=\"actions\">\n <mat-header-cell *matHeaderCellDef>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row\">\n <ng-container *ngIf=\"getDetail(row.currentData); let details\">\n <button mat-icon-button color=\"light\"\n *ngFor=\"let action of details.actions\"\n [title]=\"action.title |translate\"\n [color]=\"action.color\"\n (click)=\"doAction(action, row)\">\n <ion-icon slot=\"start\" *ngIf=\"action.icon\" [name]=\"action.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"action.matIcon\">{{action.matIcon}}</mat-icon>\n </button>\n </ng-container>\n </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n class=\"mat-row-disabled\"\n (click)=\"clickRow($event, row)\"></mat-row>\n\n</mat-table>\n\n<ion-row class=\"ion-no-padding\">\n <ion-col></ion-col>\n <ion-col class=\"ion-no-padding\" size=\"auto\">\n <mat-paginator [length]=\"totalRowCount\" [pageSize]=\"defaultPageSize\" [pageSizeOptions]=\"defaultPageSizeOptions\" showFirstLastButtons>\n </mat-paginator>\n </ion-col>\n</ion-row>\n",
|
|
29360
29364
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
29361
29365
|
styles: [".mat-header-row .mat-column-icon,.mat-row .mat-column-icon{max-width:40px;padding-left:0}.mat-header-row .mat-column-icon ion-icon,.mat-header-row .mat-column-icon mat-icon,.mat-row .mat-column-icon ion-icon,.mat-row .mat-column-icon mat-icon{font-size:1.2em;height:1.2em;width:1.2em}.mat-header-row .mat-column-creationDate,.mat-row .mat-column-creationDate{min-width:100px;max-width:120px}"]
|
|
29362
29366
|
},] }
|
|
@@ -29376,35 +29380,350 @@
|
|
|
29376
29380
|
defaultSortDirection: [{ type: i0.Input }]
|
|
29377
29381
|
};
|
|
29378
29382
|
|
|
29383
|
+
var MessageTypes = {
|
|
29384
|
+
INBOX_MESSAGE: 'INBOX_MESSAGE',
|
|
29385
|
+
EMAIL: 'EMAIL',
|
|
29386
|
+
FEED: 'FEED',
|
|
29387
|
+
};
|
|
29388
|
+
var MessageTypeList = Object.freeze([
|
|
29389
|
+
{
|
|
29390
|
+
id: MessageTypes.INBOX_MESSAGE,
|
|
29391
|
+
icon: 'notifications',
|
|
29392
|
+
label: 'SOCIAL.MESSAGE.TYPE_ENUM.INBOX_MESSAGE'
|
|
29393
|
+
},
|
|
29394
|
+
{
|
|
29395
|
+
id: MessageTypes.EMAIL,
|
|
29396
|
+
icon: 'mail',
|
|
29397
|
+
label: 'SOCIAL.MESSAGE.TYPE_ENUM.EMAIL'
|
|
29398
|
+
},
|
|
29399
|
+
{
|
|
29400
|
+
id: MessageTypes.FEED,
|
|
29401
|
+
icon: 'paper',
|
|
29402
|
+
label: 'SOCIAL.MESSAGE.TYPE_ENUM.FEED'
|
|
29403
|
+
}
|
|
29404
|
+
]);
|
|
29405
|
+
// @dynamic
|
|
29406
|
+
exports.Message = /** @class */ (function (_super) {
|
|
29407
|
+
__extends(Message, _super);
|
|
29408
|
+
function Message() {
|
|
29409
|
+
return _super.call(this) || this;
|
|
29410
|
+
}
|
|
29411
|
+
Message.prototype.fromObject = function (source, opts) {
|
|
29412
|
+
_super.prototype.fromObject.call(this, source, opts);
|
|
29413
|
+
this.type = source.type;
|
|
29414
|
+
this.issuer = source.issuer && exports.Person.fromObject(source.issuer);
|
|
29415
|
+
this.recipients = source.recipients && source.recipients.map(exports.Person.fromObject);
|
|
29416
|
+
this.subject = source.subject;
|
|
29417
|
+
this.body = source.body;
|
|
29418
|
+
};
|
|
29419
|
+
Message.prototype.asObject = function (opts) {
|
|
29420
|
+
var target = _super.prototype.asObject.call(this, opts);
|
|
29421
|
+
target.recipients = this.recipients && this.recipients.map(function (p) { return p.asObject(opts); });
|
|
29422
|
+
return target;
|
|
29423
|
+
};
|
|
29424
|
+
return Message;
|
|
29425
|
+
}(Entity));
|
|
29426
|
+
exports.Message = __decorate([
|
|
29427
|
+
EntityClass({ typename: 'MessageVO' })
|
|
29428
|
+
], exports.Message);
|
|
29429
|
+
// @dynamic
|
|
29430
|
+
exports.MessageFilter = /** @class */ (function (_super) {
|
|
29431
|
+
__extends(MessageFilter, _super);
|
|
29432
|
+
function MessageFilter() {
|
|
29433
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
29434
|
+
}
|
|
29435
|
+
MessageFilter.prototype.fromObject = function (source, opts) {
|
|
29436
|
+
_super.prototype.fromObject.call(this, source, opts);
|
|
29437
|
+
};
|
|
29438
|
+
MessageFilter.prototype.buildFilter = function () {
|
|
29439
|
+
var filterFns = _super.prototype.buildFilter.call(this);
|
|
29440
|
+
return filterFns;
|
|
29441
|
+
};
|
|
29442
|
+
return MessageFilter;
|
|
29443
|
+
}(EntityFilter));
|
|
29444
|
+
exports.MessageFilter = __decorate([
|
|
29445
|
+
EntityClass({ typename: 'MessageFilterVO' })
|
|
29446
|
+
], exports.MessageFilter);
|
|
29447
|
+
|
|
29448
|
+
var MessageModal = /** @class */ (function () {
|
|
29449
|
+
function MessageModal(settings, viewCtrl, accountService, cd) {
|
|
29450
|
+
this.settings = settings;
|
|
29451
|
+
this.viewCtrl = viewCtrl;
|
|
29452
|
+
this.accountService = accountService;
|
|
29453
|
+
this.cd = cd;
|
|
29454
|
+
this.mobile = this.settings.mobile;
|
|
29455
|
+
}
|
|
29456
|
+
MessageModal.prototype.ngOnInit = function () {
|
|
29457
|
+
this.canSelectType = toBoolean(this.canSelectType, this.accountService.isAdmin());
|
|
29458
|
+
};
|
|
29459
|
+
MessageModal.prototype.ngAfterViewInit = function () {
|
|
29460
|
+
this.form.markAsReady({ emitEvent: false });
|
|
29461
|
+
if (this.data) {
|
|
29462
|
+
this.data.type = this.data.type || MessageTypes.INBOX_MESSAGE;
|
|
29463
|
+
this.form.setValue(this.data);
|
|
29464
|
+
}
|
|
29465
|
+
this.form.markAsLoaded();
|
|
29466
|
+
this.form.enable();
|
|
29467
|
+
};
|
|
29468
|
+
MessageModal.prototype.cancel = function (event) {
|
|
29469
|
+
this.viewCtrl.dismiss();
|
|
29470
|
+
};
|
|
29471
|
+
MessageModal.prototype.doSubmit = function (event) {
|
|
29472
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
29473
|
+
var data, entity;
|
|
29474
|
+
var _this = this;
|
|
29475
|
+
return __generator(this, function (_a) {
|
|
29476
|
+
switch (_a.label) {
|
|
29477
|
+
case 0:
|
|
29478
|
+
if (this.form.disabled)
|
|
29479
|
+
return [2 /*return*/];
|
|
29480
|
+
if (!!this.form.valid) return [3 /*break*/, 2];
|
|
29481
|
+
return [4 /*yield*/, AppFormUtils.waitWhilePending(this.form)];
|
|
29482
|
+
case 1:
|
|
29483
|
+
_a.sent();
|
|
29484
|
+
if (this.form.invalid) {
|
|
29485
|
+
AppFormUtils.logFormErrors(this.form.form, '[message-modal] ');
|
|
29486
|
+
this.form.markAllAsTouched();
|
|
29487
|
+
return [2 /*return*/];
|
|
29488
|
+
}
|
|
29489
|
+
_a.label = 2;
|
|
29490
|
+
case 2:
|
|
29491
|
+
this.markAsLoading();
|
|
29492
|
+
try {
|
|
29493
|
+
data = this.form.value;
|
|
29494
|
+
// Disable the form
|
|
29495
|
+
this.form.disable();
|
|
29496
|
+
entity = exports.Message.fromObject(data);
|
|
29497
|
+
return [2 /*return*/, this.viewCtrl.dismiss(entity)];
|
|
29498
|
+
}
|
|
29499
|
+
catch (err) {
|
|
29500
|
+
this.form.error = err && err.message || err;
|
|
29501
|
+
this.markAsLoaded();
|
|
29502
|
+
// Enable the form
|
|
29503
|
+
this.form.enable();
|
|
29504
|
+
// Reset form error on next changes
|
|
29505
|
+
firstNotNilPromise(this.form.form.valueChanges).then(function () {
|
|
29506
|
+
_this.form.error = null;
|
|
29507
|
+
_this.markForCheck();
|
|
29508
|
+
});
|
|
29509
|
+
return [2 /*return*/];
|
|
29510
|
+
}
|
|
29511
|
+
return [2 /*return*/];
|
|
29512
|
+
}
|
|
29513
|
+
});
|
|
29514
|
+
});
|
|
29515
|
+
};
|
|
29516
|
+
MessageModal.prototype.markForCheck = function () {
|
|
29517
|
+
this.cd.markForCheck();
|
|
29518
|
+
};
|
|
29519
|
+
MessageModal.prototype.markAsLoading = function (opts) {
|
|
29520
|
+
this.form.markAsLoading(opts);
|
|
29521
|
+
};
|
|
29522
|
+
MessageModal.prototype.markAsLoaded = function (opts) {
|
|
29523
|
+
this.form.markAsLoaded(opts);
|
|
29524
|
+
};
|
|
29525
|
+
return MessageModal;
|
|
29526
|
+
}());
|
|
29527
|
+
MessageModal.decorators = [
|
|
29528
|
+
{ type: i0.Component, args: [{
|
|
29529
|
+
selector: 'app-message-modal',
|
|
29530
|
+
template: "<ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-buttons slot=\"start\">\n <ion-button class=\"back-button\" (click)=\"cancel($event)\" visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title>\n {{'SOCIAL.MESSAGE.NEW.TITLE' | translate}}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n\n <ion-button class=\"back-button\" (click)=\"doSubmit($event)\"\n [disabled]=\"!form.valid\"\n visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n\n<ion-content class=\"ion-padding\" >\n\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-message-form #form (onSubmit)=\"doSubmit($event)\"\n (onCancel)=\"cancel($event)\"\n [canSelectType]=\"canSelectType\"\n [suggestFn]=\"suggestFn\">\n </app-message-form>\n\n</ion-content>\n\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel($event)\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n\n <ion-button [fill]=\"form.invalid ? 'clear' : 'solid'\"\n [disabled]=\"form.loading || form.invalid\"\n (keyup.enter)=\"doSubmit($event)\"\n (click)=\"doSubmit($event)\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_SEND</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n\n\n </ion-toolbar>\n</ion-footer>\n",
|
|
29531
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
29532
|
+
},] }
|
|
29533
|
+
];
|
|
29534
|
+
MessageModal.ctorParameters = function () { return [
|
|
29535
|
+
{ type: LocalSettingsService },
|
|
29536
|
+
{ type: i1$5.ModalController },
|
|
29537
|
+
{ type: AccountService },
|
|
29538
|
+
{ type: i0.ChangeDetectorRef }
|
|
29539
|
+
]; };
|
|
29540
|
+
MessageModal.propDecorators = {
|
|
29541
|
+
suggestFn: [{ type: i0.Input }],
|
|
29542
|
+
data: [{ type: i0.Input }],
|
|
29543
|
+
canSelectType: [{ type: i0.Input }],
|
|
29544
|
+
form: [{ type: i0.ViewChild, args: ['form', { static: true },] }]
|
|
29545
|
+
};
|
|
29546
|
+
|
|
29547
|
+
var MessageForm = /** @class */ (function (_super) {
|
|
29548
|
+
__extends(MessageForm, _super);
|
|
29549
|
+
function MessageForm(injector, formBuilder, cd) {
|
|
29550
|
+
var _this = _super.call(this, injector) || this;
|
|
29551
|
+
_this.formBuilder = formBuilder;
|
|
29552
|
+
_this.cd = cd;
|
|
29553
|
+
_this.subjectMinLength = 5;
|
|
29554
|
+
_this.subjectMaxLength = 255;
|
|
29555
|
+
_this.bodyMaxLength = 2000;
|
|
29556
|
+
_this.bodyAutoHeight = true;
|
|
29557
|
+
_this.canSelectType = false;
|
|
29558
|
+
_this.types = MessageTypeList;
|
|
29559
|
+
_this.mobile = _this.settings.mobile;
|
|
29560
|
+
return _this;
|
|
29561
|
+
}
|
|
29562
|
+
MessageForm.prototype.ngOnInit = function () {
|
|
29563
|
+
this.setForm(this.formBuilder.group({
|
|
29564
|
+
type: [MessageTypes.INBOX_MESSAGE, i1.Validators.required],
|
|
29565
|
+
recipients: [null, i1.Validators.required],
|
|
29566
|
+
subject: [null, this.subjectMaxLength
|
|
29567
|
+
? i1.Validators.compose([i1.Validators.required, i1.Validators.minLength(this.subjectMinLength), i1.Validators.maxLength(this.subjectMaxLength)])
|
|
29568
|
+
: i1.Validators.required],
|
|
29569
|
+
body: [null, this.bodyMaxLength
|
|
29570
|
+
? i1.Validators.compose([i1.Validators.maxLength(this.bodyMaxLength)])
|
|
29571
|
+
: i1.Validators.required]
|
|
29572
|
+
}));
|
|
29573
|
+
var personAttributes = this.settings.getFieldDisplayAttributes('person', ['lastName', 'firstName', 'department.name']);
|
|
29574
|
+
this.registerAutocompleteField('recipients', {
|
|
29575
|
+
showAllOnFocus: false,
|
|
29576
|
+
suggestFn: this.suggestFn,
|
|
29577
|
+
filter: {
|
|
29578
|
+
statusIds: [StatusIds.TEMPORARY, StatusIds.ENABLE]
|
|
29579
|
+
},
|
|
29580
|
+
attributes: personAttributes,
|
|
29581
|
+
displayWith: PersonUtils.personToString,
|
|
29582
|
+
multiple: true,
|
|
29583
|
+
mobile: this.mobile
|
|
29584
|
+
});
|
|
29585
|
+
};
|
|
29586
|
+
MessageForm.prototype.isSamePerson = function (o1, o2) {
|
|
29587
|
+
return EntityUtils.equals(o1, o2, 'id');
|
|
29588
|
+
};
|
|
29589
|
+
MessageForm.prototype.markForCheck = function () {
|
|
29590
|
+
this.cd.markForCheck();
|
|
29591
|
+
};
|
|
29592
|
+
return MessageForm;
|
|
29593
|
+
}(AppForm));
|
|
29594
|
+
MessageForm.decorators = [
|
|
29595
|
+
{ type: i0.Component, args: [{
|
|
29596
|
+
selector: 'app-message-form',
|
|
29597
|
+
template: "\n\n<form [formGroup]=\"form\" class=\"form-container\">\n\n <!-- type -->\n <mat-form-field *ngIf=\"canSelectType\">\n <mat-select formControlName=\"type\" [placeholder]=\"'SOCIAL.MESSAGE.TYPE'|translate\">\n <mat-option *ngFor=\"let item of types\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <!-- Recipients -->\n <mat-chips-field *ngIf=\"(form.controls.type.valueChanges|async) !== 'FEED'\"\n formControlName=\"recipients\"\n [placeholder]=\"'SOCIAL.MESSAGE.RECIPIENTS'|translate\"\n [config]=\"autocompleteFields.recipients\"\n [equals]=\"isSamePerson\">\n </mat-chips-field>\n\n <!-- Subject -->\n <mat-form-field>\n <input matInput type=\"text\"\n [placeholder]=\"'SOCIAL.MESSAGE.SUBJECT'|translate\"\n formControlName=\"subject\"\n autocomplete=\"off\"\n required>\n <mat-error *ngIf=\"form.controls.subject.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('minlength')\">\n {{ 'ERROR.FIELD_MIN_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-hint *ngIf=\"subjectMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.subject.value?.length || 0, max: subjectMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n <!-- Body -->\n <mat-form-field floatLabel=\"never\">\n <textarea matInput type=\"text\"\n [placeholder]=\"'SOCIAL.MESSAGE.BODY_HELP'|translate\"\n formControlName=\"body\"\n [class.fixed-height]=\"!bodyAutoHeight\"\n [cdkTextareaAutosize]=\"bodyAutoHeight\"\n (keydown.control.enter)=\"doSubmit($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"form.controls.body.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: form.controls.body.errors.maxlength }}\n </mat-error>\n <mat-hint *ngIf=\"bodyMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.body.value?.length || 0, max: bodyMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n</form>\n",
|
|
29598
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
29599
|
+
styles: ["textarea.fixed-height{height:11.5em}textarea{min-height:11.5em}"]
|
|
29600
|
+
},] }
|
|
29601
|
+
];
|
|
29602
|
+
MessageForm.ctorParameters = function () { return [
|
|
29603
|
+
{ type: i0.Injector },
|
|
29604
|
+
{ type: i1.FormBuilder },
|
|
29605
|
+
{ type: i0.ChangeDetectorRef }
|
|
29606
|
+
]; };
|
|
29607
|
+
MessageForm.propDecorators = {
|
|
29608
|
+
suggestFn: [{ type: i0.Input }],
|
|
29609
|
+
subjectMinLength: [{ type: i0.Input }],
|
|
29610
|
+
subjectMaxLength: [{ type: i0.Input }],
|
|
29611
|
+
bodyMaxLength: [{ type: i0.Input }],
|
|
29612
|
+
bodyAutoHeight: [{ type: i0.Input }],
|
|
29613
|
+
canSelectType: [{ type: i0.Input }]
|
|
29614
|
+
};
|
|
29615
|
+
|
|
29379
29616
|
var SocialModule = /** @class */ (function () {
|
|
29380
29617
|
function SocialModule() {
|
|
29381
29618
|
}
|
|
29382
|
-
SocialModule.forRoot = function () {
|
|
29383
|
-
console.debug('[social] Creating module (root)');
|
|
29384
|
-
return {
|
|
29385
|
-
ngModule: SocialModule,
|
|
29386
|
-
providers: [
|
|
29387
|
-
UserEventService
|
|
29388
|
-
]
|
|
29389
|
-
};
|
|
29390
|
-
};
|
|
29391
29619
|
return SocialModule;
|
|
29392
29620
|
}());
|
|
29393
29621
|
SocialModule.decorators = [
|
|
29394
29622
|
{ type: i0.NgModule, args: [{
|
|
29395
29623
|
imports: [
|
|
29396
29624
|
i1$4.CommonModule,
|
|
29397
|
-
CoreModule
|
|
29625
|
+
CoreModule,
|
|
29626
|
+
SharedModule
|
|
29398
29627
|
],
|
|
29399
29628
|
declarations: [
|
|
29400
|
-
UserEventsTable
|
|
29629
|
+
UserEventsTable,
|
|
29630
|
+
MessageModal,
|
|
29631
|
+
MessageForm
|
|
29401
29632
|
],
|
|
29402
29633
|
exports: [
|
|
29403
|
-
UserEventsTable
|
|
29634
|
+
UserEventsTable,
|
|
29635
|
+
MessageModal
|
|
29404
29636
|
]
|
|
29405
29637
|
},] }
|
|
29406
29638
|
];
|
|
29407
29639
|
|
|
29640
|
+
var Mutations = {
|
|
29641
|
+
send: core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"], ["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"])))
|
|
29642
|
+
};
|
|
29643
|
+
var MessageService = /** @class */ (function (_super) {
|
|
29644
|
+
__extends(MessageService, _super);
|
|
29645
|
+
function MessageService(graphql, translate, toastController, environment) {
|
|
29646
|
+
var _this = _super.call(this, graphql, environment) || this;
|
|
29647
|
+
_this.graphql = graphql;
|
|
29648
|
+
_this.translate = translate;
|
|
29649
|
+
_this.toastController = toastController;
|
|
29650
|
+
_this.environment = environment;
|
|
29651
|
+
// For DEV only
|
|
29652
|
+
_this._debug = !environment.production;
|
|
29653
|
+
return _this;
|
|
29654
|
+
}
|
|
29655
|
+
/**
|
|
29656
|
+
* Send a message to recipient(s)
|
|
29657
|
+
*
|
|
29658
|
+
* @param entity
|
|
29659
|
+
* @param opts
|
|
29660
|
+
*/
|
|
29661
|
+
MessageService.prototype.send = function (entity, opts) {
|
|
29662
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
29663
|
+
var data, now, done, err_1, error, message;
|
|
29664
|
+
return __generator(this, function (_a) {
|
|
29665
|
+
switch (_a.label) {
|
|
29666
|
+
case 0:
|
|
29667
|
+
data = entity.asObject(MINIFY_ENTITY_FOR_POD);
|
|
29668
|
+
now = Date.now();
|
|
29669
|
+
if (this._debug)
|
|
29670
|
+
console.debug("[message-service] Send message...", data);
|
|
29671
|
+
_a.label = 1;
|
|
29672
|
+
case 1:
|
|
29673
|
+
_a.trys.push([1, 5, , 8]);
|
|
29674
|
+
return [4 /*yield*/, this.graphql.mutate({
|
|
29675
|
+
mutation: Mutations.send,
|
|
29676
|
+
variables: { data: data },
|
|
29677
|
+
error: { code: SocialErrorCodes.SEND_MESSAGE_ERROR, message: 'SOCIAL.ERROR.SEND_MESSAGE_ERROR' }
|
|
29678
|
+
})];
|
|
29679
|
+
case 2:
|
|
29680
|
+
done = (_a.sent()).done;
|
|
29681
|
+
if (this._debug)
|
|
29682
|
+
console.debug("[message-service] Send message [OK] in " + (Date.now() - now) + "ms");
|
|
29683
|
+
if (!(done && (!opts || opts.showToast !== false))) return [3 /*break*/, 4];
|
|
29684
|
+
return [4 /*yield*/, this.showToast({ type: 'info', message: 'SOCIAL.INFO.MESSAGE_SENT' })];
|
|
29685
|
+
case 3:
|
|
29686
|
+
_a.sent();
|
|
29687
|
+
_a.label = 4;
|
|
29688
|
+
case 4: return [2 /*return*/, done];
|
|
29689
|
+
case 5:
|
|
29690
|
+
err_1 = _a.sent();
|
|
29691
|
+
error = err_1 && err_1.message || err_1;
|
|
29692
|
+
console.error(error);
|
|
29693
|
+
if (!(!opts || opts.showToast !== false)) return [3 /*break*/, 7];
|
|
29694
|
+
message = error || 'SOCIAL.ERROR.SEND_MESSAGE_ERROR';
|
|
29695
|
+
return [4 /*yield*/, this.showToast({ type: 'error', message: message })];
|
|
29696
|
+
case 6:
|
|
29697
|
+
_a.sent();
|
|
29698
|
+
_a.label = 7;
|
|
29699
|
+
case 7: return [2 /*return*/, false];
|
|
29700
|
+
case 8: return [2 /*return*/];
|
|
29701
|
+
}
|
|
29702
|
+
});
|
|
29703
|
+
});
|
|
29704
|
+
};
|
|
29705
|
+
/* -- protected methods -- */
|
|
29706
|
+
MessageService.prototype.showToast = function (opts) {
|
|
29707
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
29708
|
+
return __generator(this, function (_a) {
|
|
29709
|
+
return [2 /*return*/, Toasts.show(this.toastController, this.translate, Object.assign({ type: 'info', message: 'SOCIAL.INFO.MESSAGE_SENT' }, opts))];
|
|
29710
|
+
});
|
|
29711
|
+
});
|
|
29712
|
+
};
|
|
29713
|
+
return MessageService;
|
|
29714
|
+
}(BaseGraphqlService));
|
|
29715
|
+
MessageService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MessageService_Factory() { return new MessageService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(ENVIRONMENT, 8)); }, token: MessageService, providedIn: "root" });
|
|
29716
|
+
MessageService.decorators = [
|
|
29717
|
+
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29718
|
+
];
|
|
29719
|
+
MessageService.ctorParameters = function () { return [
|
|
29720
|
+
{ type: GraphqlService },
|
|
29721
|
+
{ type: i1$2.TranslateService },
|
|
29722
|
+
{ type: i1$5.ToastController },
|
|
29723
|
+
{ type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
29724
|
+
]; };
|
|
29725
|
+
var templateObject_1$4;
|
|
29726
|
+
|
|
29408
29727
|
var PersonFilter_1;
|
|
29409
29728
|
// @dynamic
|
|
29410
29729
|
exports.PersonFilter = PersonFilter_1 = /** @class */ (function (_super) {
|
|
@@ -29462,16 +29781,16 @@
|
|
|
29462
29781
|
], exports.PersonFilter);
|
|
29463
29782
|
|
|
29464
29783
|
var PersonFragments = {
|
|
29465
|
-
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 }"])))
|
|
29784
|
+
person: core.gql(templateObject_1$5 || (templateObject_1$5 = __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 }"])))
|
|
29466
29785
|
};
|
|
29467
29786
|
// Load persons query
|
|
29468
29787
|
var PersonQueries = {
|
|
29469
|
-
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),
|
|
29470
|
-
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)
|
|
29788
|
+
loadAll: core.gql(templateObject_2$4 || (templateObject_2$4 = __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),
|
|
29789
|
+
loadAllWithTotal: core.gql(templateObject_3$3 || (templateObject_3$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)
|
|
29471
29790
|
};
|
|
29472
29791
|
var PersonMutations = {
|
|
29473
|
-
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),
|
|
29474
|
-
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 }"])))
|
|
29792
|
+
saveAll: core.gql(templateObject_4$3 || (templateObject_4$3 = __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),
|
|
29793
|
+
deleteAll: core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"], ["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"])))
|
|
29475
29794
|
};
|
|
29476
29795
|
var PersonService = /** @class */ (function (_super_1) {
|
|
29477
29796
|
__extends(PersonService, _super_1);
|
|
@@ -29592,7 +29911,7 @@
|
|
|
29592
29911
|
};
|
|
29593
29912
|
return PersonService;
|
|
29594
29913
|
}(BaseEntityService));
|
|
29595
|
-
PersonService.ɵprov =
|
|
29914
|
+
PersonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(PlatformService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
29596
29915
|
PersonService.decorators = [
|
|
29597
29916
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29598
29917
|
];
|
|
@@ -29602,7 +29921,7 @@
|
|
|
29602
29921
|
{ type: NetworkService },
|
|
29603
29922
|
{ type: EntitiesStorage }
|
|
29604
29923
|
]; };
|
|
29605
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
29924
|
+
var templateObject_1$5, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$2;
|
|
29606
29925
|
|
|
29607
29926
|
var PersonValidatorService = /** @class */ (function () {
|
|
29608
29927
|
function PersonValidatorService(formBuilder, accountValidatorService) {
|
|
@@ -29625,7 +29944,7 @@
|
|
|
29625
29944
|
};
|
|
29626
29945
|
return PersonValidatorService;
|
|
29627
29946
|
}());
|
|
29628
|
-
PersonValidatorService.ɵprov =
|
|
29947
|
+
PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
29629
29948
|
PersonValidatorService.decorators = [
|
|
29630
29949
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29631
29950
|
];
|
|
@@ -29636,7 +29955,7 @@
|
|
|
29636
29955
|
|
|
29637
29956
|
var UsersPage = /** @class */ (function (_super) {
|
|
29638
29957
|
__extends(UsersPage, _super);
|
|
29639
|
-
function UsersPage(injector, accountService, validatorService, configService, dataService,
|
|
29958
|
+
function UsersPage(injector, formBuilder, accountService, validatorService, configService, dataService, messageService, cd, environment) {
|
|
29640
29959
|
var _this = _super.call(this, injector, RESERVED_START_COLUMNS
|
|
29641
29960
|
.concat([
|
|
29642
29961
|
'avatar',
|
|
@@ -29661,16 +29980,17 @@
|
|
|
29661
29980
|
_this.validatorService = validatorService;
|
|
29662
29981
|
_this.configService = configService;
|
|
29663
29982
|
_this.dataService = dataService;
|
|
29983
|
+
_this.messageService = messageService;
|
|
29664
29984
|
_this.cd = cd;
|
|
29665
|
-
_this.canEdit = false;
|
|
29666
29985
|
_this.profiles = __spread(PRIORITIZED_AUTHORITIES).reverse();
|
|
29667
|
-
_this.filterCriteriaCount = 0;
|
|
29668
29986
|
_this.statusList = StatusList;
|
|
29669
29987
|
_this.statusById = StatusById;
|
|
29988
|
+
_this.filterCriteriaCount = 0;
|
|
29670
29989
|
_this.useSticky = false;
|
|
29671
29990
|
_this.referentialToString = referentialToString;
|
|
29672
|
-
_this.inlineEdition = accountService.isAdmin(); // Allow inline edition only if admin
|
|
29673
29991
|
_this.canEdit = accountService.isAdmin();
|
|
29992
|
+
_this.canSendMessage = _this.canEdit;
|
|
29993
|
+
_this.inlineEdition = _this.canEdit;
|
|
29674
29994
|
_this.confirmBeforeDelete = true;
|
|
29675
29995
|
_this.autoLoad = false; // Wait config loading
|
|
29676
29996
|
_this.i18nColumnPrefix = 'USER.';
|
|
@@ -29760,7 +30080,7 @@
|
|
|
29760
30080
|
UsersPage.prototype.restoreFilterOrLoad = function () {
|
|
29761
30081
|
return __awaiter(this, void 0, void 0, function () {
|
|
29762
30082
|
var json, filter;
|
|
29763
|
-
return __generator(this, function (
|
|
30083
|
+
return __generator(this, function (_b) {
|
|
29764
30084
|
this.markAsLoading();
|
|
29765
30085
|
console.debug("[users] Restoring filter from settings...");
|
|
29766
30086
|
json = this.settings.getPageSettings(this.settingsId, SETTINGS_FILTER) || {};
|
|
@@ -29777,6 +30097,56 @@
|
|
|
29777
30097
|
formControl.setValue(null);
|
|
29778
30098
|
return false;
|
|
29779
30099
|
};
|
|
30100
|
+
UsersPage.prototype.openComposeMessageModal = function (event) {
|
|
30101
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
30102
|
+
var recipients, hasTopModal, modal, data;
|
|
30103
|
+
var _this = this;
|
|
30104
|
+
return __generator(this, function (_b) {
|
|
30105
|
+
switch (_b.label) {
|
|
30106
|
+
case 0:
|
|
30107
|
+
recipients = (this.selection.selected || [])
|
|
30108
|
+
.map(function (row) { return row.currentData; })
|
|
30109
|
+
.map(exports.Person.fromObject)
|
|
30110
|
+
.map(function (p) {
|
|
30111
|
+
var _a;
|
|
30112
|
+
var target = p.asObject({ minify: true });
|
|
30113
|
+
target.department = (_a = p.department) === null || _a === void 0 ? void 0 : _a.asObject();
|
|
30114
|
+
return target;
|
|
30115
|
+
});
|
|
30116
|
+
return [4 /*yield*/, this.modalCtrl.getTop()];
|
|
30117
|
+
case 1:
|
|
30118
|
+
hasTopModal = !!(_b.sent());
|
|
30119
|
+
return [4 /*yield*/, this.modalCtrl.create({
|
|
30120
|
+
component: MessageModal,
|
|
30121
|
+
componentProps: {
|
|
30122
|
+
suggestFn: function (value, filter, sortBy, sortDirection) { return _this.dataService.suggest(value, filter, sortBy, sortDirection); },
|
|
30123
|
+
data: {
|
|
30124
|
+
recipients: recipients
|
|
30125
|
+
}
|
|
30126
|
+
},
|
|
30127
|
+
cssClass: hasTopModal && 'stack-modal'
|
|
30128
|
+
})];
|
|
30129
|
+
case 2:
|
|
30130
|
+
modal = _b.sent();
|
|
30131
|
+
// Open the modal
|
|
30132
|
+
return [4 /*yield*/, modal.present()];
|
|
30133
|
+
case 3:
|
|
30134
|
+
// Open the modal
|
|
30135
|
+
_b.sent();
|
|
30136
|
+
return [4 /*yield*/, modal.onDidDismiss()];
|
|
30137
|
+
case 4:
|
|
30138
|
+
data = (_b.sent()).data;
|
|
30139
|
+
if (!data || !(data instanceof exports.Message))
|
|
30140
|
+
return [2 /*return*/]; // CANCELLED
|
|
30141
|
+
console.info('[users] received message to send: ', data);
|
|
30142
|
+
return [4 /*yield*/, this.messageService.send(data)];
|
|
30143
|
+
case 5:
|
|
30144
|
+
_b.sent();
|
|
30145
|
+
return [2 /*return*/];
|
|
30146
|
+
}
|
|
30147
|
+
});
|
|
30148
|
+
});
|
|
30149
|
+
};
|
|
29780
30150
|
/* -- protected methods -- */
|
|
29781
30151
|
UsersPage.prototype.markForCheck = function () {
|
|
29782
30152
|
this.cd.markForCheck();
|
|
@@ -29786,7 +30156,7 @@
|
|
|
29786
30156
|
UsersPage.decorators = [
|
|
29787
30157
|
{ type: i0.Component, args: [{
|
|
29788
30158
|
selector: 'app-users-table',
|
|
29789
|
-
template: "<app-toolbar [title]=\"'USER.LIST.TITLE'|translate\"\n color=\"primary\"\n [canGoBack]=\"false\"\n [hasValidate]=\"!(loadingSubject|async) && dirty\"\n (onValidate)=\"save()\">\n <ion-buttons slot=\"end\">\n <ng-container *ngIf=\"!selection.hasValue(); else hasSelection\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"canEdit && !mobile\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"addRow()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Refresh -->\n <button mat-icon-button *ngIf=\"!mobile\"\n [title]=\"'COMMON.BTN_REFRESH'|translate\"\n (click)=\"onRefresh.emit()\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n <!-- reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\"\n *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold;\">close</mat-icon>\n </button>\n\n <!-- show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon *ngIf=\"filterCriteriaCount; else emptyFilter\"\n [matBadge]=\"filterCriteriaCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\">filter_list_alt\n </mat-icon>\n <ng-template #emptyFilter>\n <mat-icon>filter_list_alt</mat-icon>\n </ng-template>\n </button>\n </ng-container>\n\n <ng-template #hasSelection>\n <!-- delete -->\n <button mat-icon-button\n class=\"hidden-xs hidden-sm\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n (click)=\"deleteSelection($event)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ng-template>\n </ion-buttons>\n</app-toolbar>\n\n<ion-content class=\"ion-no-padding\">\n\n <!-- error -->\n <ion-item *ngIf=\"errorSubject|async ; let error\" lines=\"none\" @slideUpDownAnimation>\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <!-- search -->\n <mat-expansion-panel #filterExpansionPanel class=\"ion-no-padding filter-panel filter-panel-floating\">\n <form class=\"form-container ion-padding\" [formGroup]=\"filterForm\" (ngSubmit)=\"onRefresh.emit()\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search -->\n <mat-form-field>\n <input matInput [placeholder]=\"'USER.LIST.FILTER.SEARCH'|translate\" formControlName=\"searchText\">\n\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n\n <ion-col>\n <!-- status -->\n <mat-form-field>\n <mat-select formControlName=\"statusId\" [placeholder]=\"'USER.STATUS'|translate\">\n <mat-option [value]=\"null\"><i><span translate>COMMON.EMPTY_OPTION</span></i></mat-option>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.statusId)\"\n [hidden]=\"filterForm.controls.statusId.disabled || !filterForm.controls.statusId.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label [hidden]=\"(loadingSubject|async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\">\n {{ (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT') | translate: {\n count: (totalRowCount |\n numberFormat)\n } }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\"\n (click)=\"filterExpansionPanel.close()\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n\n </mat-action-row>\n </mat-expansion-panel>\n\n <!-- error -->\n <ion-item *ngIf=\"error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <div class=\"table-container\">\n <table #table mat-table matSort\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\" [matSortDirection]=\"defaultSortDirection\"\n matSortDisableClear [trackBy]=\"trackByFn\">\n\n <ng-container matColumnDef=\"select\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!inlineEdition\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!inlineEdition\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Id Column -->\n <ng-container matColumnDef=\"id\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label>#</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">{{ row.currentData.id }}</td>\n </ng-container>\n\n <!-- avatar Column -->\n <ng-container matColumnDef=\"avatar\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <div class=\"avatar\" *ngIf=\"row.currentData.avatar; else generateIcon\"\n [ngStyle]=\"{'background-image':'url('+row.currentData.avatar+')'}\"></div>\n <ng-template #generateIcon>\n <div class=\"avatar\">\n <svg width=\"38\" width=\"38\" [data-jdenticon-value]=\"row.currentData.id\"></svg>\n </div>\n </ng-template>\n </td>\n </ng-container>\n\n <!-- lastName -->\n <ng-container matColumnDef=\"lastName\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.LAST_NAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"focusColumn='lastName'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput\n [formControl]=\"row.validator.controls['lastName']\"\n [placeholder]=\"'USER.LAST_NAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='lastName'\">\n <mat-error *ngIf=\"row.validator.controls['lastName'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['lastName'].hasError('minlength')\">\n <span>{{'ERROR.FIELD_MIN_LENGTH' | translate: {minLength: 2} }}</span>\n </mat-error>\n </mat-form-field>\n\n </td>\n\n </ng-container>\n\n <!-- firstname -->\n <ng-container matColumnDef=\"firstName\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.FIRST_NAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n\n (click)=\"focusColumn='firstName'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['firstName']\"\n [placeholder]=\"'USER.FIRST_NAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='firstName'\">\n <mat-error *ngIf=\"row.validator.controls['firstName'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['firstName'].hasError('minlength')\">\n <span>{{'ERROR.FIELD_MIN_LENGTH' | translate: {minLength: 2} }}</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- email -->\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.EMAIL</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"focusColumn='email'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['email']\"\n [placeholder]=\"'USER.EMAIL'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='email'\">\n <mat-error *ngIf=\"row.validator.controls['email'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['email'].hasError('email')\">\n <span translate>ERROR.FIELD_NOT_VALID_EMAIL</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- additional fields -->\n <ng-container *ngFor=\"let definition of additionalFields\" [matColumnDef]=\"definition.key\">\n <th mat-header-cell *matHeaderCellDef>\n <span>{{definition.label|translate}}</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn=definition.key\">\n <app-form-field floatLabel=\"never\"\n [definition]=\"definition\"\n [formControl]=\"row.validator.controls[definition.key]\"\n [required]=\"definition.extra?.account?.required\"\n [autofocus]=\"row.editing && focusColumn===definition.ke\">\n </app-form-field>\n </td>\n </ng-container>\n\n <!-- profile column -->\n <ng-container matColumnDef=\"profile\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.PROFILE</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='profile'\">\n <mat-form-field floatLabel=\"never\">\n <mat-select [formControl]=\"row.validator.controls['mainProfile']\"\n [placeholder]=\"'USER.PROFILE'|translate\">\n <mat-option *ngFor=\"let item of profiles\" [value]=\"item\">\n {{ ('USER.PROFILE_ENUM.' + item) | uppercase |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['mainProfile'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Status column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.STATUS</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='status'\">\n <mat-form-field floatLabel=\"never\">\n <ion-icon matPrefix *ngIf=\"row.validator.controls['statusId'].value >=0\" [name]=\"statusById[row.validator.controls['statusId'].value]?.icon\"></ion-icon>\n\n <mat-select [formControl]=\"row.validator.controls['statusId']\"\n [placeholder]=\"'REFERENTIAL.STATUS'|translate\">\n <mat-select-trigger>\n <span *ngIf=\"row.validator.controls['statusId'].value >=0\">\n {{ statusById[row.validator.controls['statusId'].value]?.label | translate}}</span>\n </mat-select-trigger>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['statusId'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- username -->\n <ng-container matColumnDef=\"username\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.USERNAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='username'\">\n <mat-form-field floatLabel=\"never\" >\n <input matInput [formControl]=\"row.validator.controls.username\"\n [placeholder]=\"'USER.USERNAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='username'\">\n <mat-error *ngIf=\"row.validator.controls.username.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- username extranet -->\n <ng-container matColumnDef=\"usernameExtranet\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.USERNAME_EXTRANET</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='usernameExtranet'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls.usernameExtranet\"\n [placeholder]=\"'USER.USERNAME_EXTRANET'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='usernameExtranet'\">\n <mat-error *ngIf=\"row.validator.controls.usernameExtranet.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- pubkey -->\n <ng-container matColumnDef=\"pubkey\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.PUBKEY</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n [title]=\"row.validator.controls['pubkey'].value\"\n (click)=\"focusColumn='pubkey'\">\n <mat-form-field floatLabel=\"never\" >\n <input matInput [formControl]=\"row.validator.controls['pubkey']\" [placeholder]=\"'USER.PUBKEY'|translate\"\n [readonly]=\"!row.editing\" autocomplete=\"off\">\n <mat-error *ngIf=\"row.validator.controls['pubkey'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['pubkey'].hasError('pubkey')\">\n <span translate>ERROR.FIELD_NOT_VALID_PUBKEY</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Actions buttons column -->\n <app-actions-column [stickyEnd]=\"useSticky\"\n (optionsClick)=\"openSelectColumnsModal($event)\"\n (cancelOrDeleteClick)=\"cancelOrDelete($event.event, $event.row)\"\n (confirmAndAddClick)=\"confirmAndAdd($event.event, $event.row)\"\n (backward)=\"confirmAndBackward($event.event, $event.row)\"\n (forward)=\"confirmAndForward($event.event, $event.row)\"\n [canCancel]=\"false\">\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [class.mat-row-error]=\"row.validator.invalid\"\n [class.mat-row-dirty]=\"row.currentData.dirty\"\n [class.mat-row-disabled]=\"!row.editing\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator.invalid\"></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n </div>\n</ion-content>\n\n<ion-footer>\n <mat-paginator class=\"mat-paginator-footer\"\n [length]=\"totalRowCount\" [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"defaultPageSizeOptions\" showFirstLastButtons>\n </mat-paginator>\n\n <app-form-buttons-bar *ngIf=\"!mobile && inlineEdition\"\n (onCancel)=\"onRefresh.emit()\" (onSave)=\"save()\" [disabled]=\"(loadingSubject|async) || !dirty\"></app-form-buttons-bar>\n</ion-footer>\n\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\" *ngIf=\"mobile\">\n <ion-fab-button color=\"tertiary\" (click)=\"addRow()\">\n <ion-icon name=\"add\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n",
|
|
30159
|
+
template: "<app-toolbar [title]=\"'USER.LIST.TITLE'|translate\"\n color=\"primary\"\n [canGoBack]=\"false\"\n [hasValidate]=\"!(loadingSubject|async) && dirty\"\n (onValidate)=\"save()\">\n <ion-buttons slot=\"end\">\n\n <!-- Compose message -->\n <button mat-icon-button *ngIf=\"canSendMessage\"\n [title]=\"'USER.LIST.BTN_SEND_MESSAGE'|translate\"\n (click)=\"openComposeMessageModal($event)\">\n <ion-icon name=\"mail\" slot=\"icon-only\"></ion-icon>\n </button>\n\n <ng-container *ngIf=\"!selection.hasValue(); else hasSelection\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"canEdit && !mobile\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"addRow()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Refresh -->\n <button mat-icon-button *ngIf=\"!mobile\"\n [title]=\"'COMMON.BTN_REFRESH'|translate\"\n (click)=\"onRefresh.emit()\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n <!-- reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\"\n *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold;\">close</mat-icon>\n </button>\n\n <!-- show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon *ngIf=\"filterCriteriaCount; else emptyFilter\"\n [matBadge]=\"filterCriteriaCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\">filter_list_alt\n </mat-icon>\n <ng-template #emptyFilter>\n <mat-icon>filter_list_alt</mat-icon>\n </ng-template>\n </button>\n </ng-container>\n\n <ng-template #hasSelection>\n\n <!-- delete -->\n <button mat-icon-button\n class=\"hidden-xs hidden-sm\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n (click)=\"deleteSelection($event)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ng-template>\n </ion-buttons>\n</app-toolbar>\n\n<ion-content class=\"ion-no-padding\">\n\n <!-- error -->\n <ion-item *ngIf=\"errorSubject|async ; let error\" lines=\"none\" @slideUpDownAnimation>\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <!-- search -->\n <mat-expansion-panel #filterExpansionPanel class=\"ion-no-padding filter-panel filter-panel-floating\">\n <form class=\"form-container ion-padding\" [formGroup]=\"filterForm\" (ngSubmit)=\"onRefresh.emit()\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search -->\n <mat-form-field>\n <input matInput [placeholder]=\"'USER.LIST.FILTER.SEARCH'|translate\" formControlName=\"searchText\">\n\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n\n <ion-col>\n <!-- status -->\n <mat-form-field>\n <mat-select formControlName=\"statusId\" [placeholder]=\"'USER.STATUS'|translate\">\n <mat-option [value]=\"null\"><i><span translate>COMMON.EMPTY_OPTION</span></i></mat-option>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.statusId)\"\n [hidden]=\"filterForm.controls.statusId.disabled || !filterForm.controls.statusId.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label [hidden]=\"(loadingSubject|async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\">\n {{ (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT') | translate: {\n count: (totalRowCount |\n numberFormat)\n } }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\"\n (click)=\"filterExpansionPanel.close()\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n\n </mat-action-row>\n </mat-expansion-panel>\n\n <!-- error -->\n <ion-item *ngIf=\"error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <div class=\"table-container\">\n <table #table mat-table matSort\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\" [matSortDirection]=\"defaultSortDirection\"\n matSortDisableClear [trackBy]=\"trackByFn\">\n\n <ng-container matColumnDef=\"select\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!inlineEdition\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!inlineEdition\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Id Column -->\n <ng-container matColumnDef=\"id\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label>#</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">{{ row.currentData.id }}</td>\n </ng-container>\n\n <!-- avatar Column -->\n <ng-container matColumnDef=\"avatar\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <div class=\"avatar\" *ngIf=\"row.currentData.avatar; else generateIcon\"\n [ngStyle]=\"{'background-image':'url('+row.currentData.avatar+')'}\"></div>\n <ng-template #generateIcon>\n <div class=\"avatar\">\n <svg width=\"38\" width=\"38\" [data-jdenticon-value]=\"row.currentData.id\"></svg>\n </div>\n </ng-template>\n </td>\n </ng-container>\n\n <!-- lastName -->\n <ng-container matColumnDef=\"lastName\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.LAST_NAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"focusColumn='lastName'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput\n [formControl]=\"row.validator.controls['lastName']\"\n [placeholder]=\"'USER.LAST_NAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='lastName'\">\n <mat-error *ngIf=\"row.validator.controls['lastName'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['lastName'].hasError('minlength')\">\n <span>{{'ERROR.FIELD_MIN_LENGTH' | translate: {minLength: 2} }}</span>\n </mat-error>\n </mat-form-field>\n\n </td>\n\n </ng-container>\n\n <!-- firstname -->\n <ng-container matColumnDef=\"firstName\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.FIRST_NAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n\n (click)=\"focusColumn='firstName'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['firstName']\"\n [placeholder]=\"'USER.FIRST_NAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='firstName'\">\n <mat-error *ngIf=\"row.validator.controls['firstName'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['firstName'].hasError('minlength')\">\n <span>{{'ERROR.FIELD_MIN_LENGTH' | translate: {minLength: 2} }}</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- email -->\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.EMAIL</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"focusColumn='email'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['email']\"\n [placeholder]=\"'USER.EMAIL'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='email'\">\n <mat-error *ngIf=\"row.validator.controls['email'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['email'].hasError('email')\">\n <span translate>ERROR.FIELD_NOT_VALID_EMAIL</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- additional fields -->\n <ng-container *ngFor=\"let definition of additionalFields\" [matColumnDef]=\"definition.key\">\n <th mat-header-cell *matHeaderCellDef>\n <span>{{definition.label|translate}}</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn=definition.key\">\n <app-form-field floatLabel=\"never\"\n [definition]=\"definition\"\n [formControl]=\"row.validator.controls[definition.key]\"\n [required]=\"definition.extra?.account?.required\"\n [autofocus]=\"row.editing && focusColumn===definition.ke\">\n </app-form-field>\n </td>\n </ng-container>\n\n <!-- profile column -->\n <ng-container matColumnDef=\"profile\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.PROFILE</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='profile'\">\n <mat-form-field floatLabel=\"never\">\n <mat-select [formControl]=\"row.validator.controls['mainProfile']\"\n [placeholder]=\"'USER.PROFILE'|translate\">\n <mat-option *ngFor=\"let item of profiles\" [value]=\"item\">\n {{ ('USER.PROFILE_ENUM.' + item) | uppercase |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['mainProfile'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Status column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.STATUS</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='status'\">\n <mat-form-field floatLabel=\"never\">\n <ion-icon matPrefix *ngIf=\"row.validator.controls['statusId'].value >=0\" [name]=\"statusById[row.validator.controls['statusId'].value]?.icon\"></ion-icon>\n\n <mat-select [formControl]=\"row.validator.controls['statusId']\"\n [placeholder]=\"'REFERENTIAL.STATUS'|translate\">\n <mat-select-trigger>\n <span *ngIf=\"row.validator.controls['statusId'].value >=0\">\n {{ statusById[row.validator.controls['statusId'].value]?.label | translate}}</span>\n </mat-select-trigger>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['statusId'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- username -->\n <ng-container matColumnDef=\"username\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.USERNAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='username'\">\n <mat-form-field floatLabel=\"never\" >\n <input matInput [formControl]=\"row.validator.controls.username\"\n [placeholder]=\"'USER.USERNAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='username'\">\n <mat-error *ngIf=\"row.validator.controls.username.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- username extranet -->\n <ng-container matColumnDef=\"usernameExtranet\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.USERNAME_EXTRANET</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='usernameExtranet'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls.usernameExtranet\"\n [placeholder]=\"'USER.USERNAME_EXTRANET'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='usernameExtranet'\">\n <mat-error *ngIf=\"row.validator.controls.usernameExtranet.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- pubkey -->\n <ng-container matColumnDef=\"pubkey\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.PUBKEY</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n [title]=\"row.validator.controls.pubkey.valueChanges|async\"\n (click)=\"focusColumn='pubkey'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['pubkey']\" [placeholder]=\"'USER.PUBKEY'|translate\"\n [readonly]=\"!row.editing\" autocomplete=\"off\">\n <mat-error *ngIf=\"row.validator.controls.pubkey.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls.pubkey.hasError('pubkey')\">\n <span translate>ERROR.FIELD_NOT_VALID_PUBKEY</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Actions buttons column -->\n <app-actions-column [stickyEnd]=\"useSticky\"\n (optionsClick)=\"openSelectColumnsModal($event)\"\n (cancelOrDeleteClick)=\"cancelOrDelete($event.event, $event.row)\"\n (confirmAndAddClick)=\"confirmAndAdd($event.event, $event.row)\"\n (backward)=\"confirmAndBackward($event.event, $event.row)\"\n (forward)=\"confirmAndForward($event.event, $event.row)\"\n [canCancel]=\"false\">\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [class.mat-row-error]=\"row.validator.invalid\"\n [class.mat-row-dirty]=\"row.currentData.dirty\"\n [class.mat-row-disabled]=\"!row.editing\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator.invalid\"></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n </div>\n</ion-content>\n\n<ion-footer>\n <mat-paginator class=\"mat-paginator-footer\"\n [length]=\"totalRowCount\" [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"defaultPageSizeOptions\" showFirstLastButtons>\n </mat-paginator>\n\n <app-form-buttons-bar *ngIf=\"!mobile && inlineEdition\"\n (onCancel)=\"onRefresh.emit()\" (onSave)=\"save()\" [disabled]=\"(loadingSubject|async) || !dirty\"></app-form-buttons-bar>\n</ion-footer>\n\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\" *ngIf=\"mobile\">\n <ion-fab-button color=\"tertiary\" (click)=\"addRow()\">\n <ion-icon name=\"add\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n",
|
|
29790
30160
|
providers: [
|
|
29791
30161
|
{ provide: ngxMaterialTable.ValidatorService, useExisting: PersonValidatorService }
|
|
29792
30162
|
],
|
|
@@ -29797,12 +30167,13 @@
|
|
|
29797
30167
|
];
|
|
29798
30168
|
UsersPage.ctorParameters = function () { return [
|
|
29799
30169
|
{ type: i0.Injector },
|
|
30170
|
+
{ type: i1.FormBuilder },
|
|
29800
30171
|
{ type: AccountService },
|
|
29801
30172
|
{ type: ngxMaterialTable.ValidatorService },
|
|
29802
30173
|
{ type: ConfigService },
|
|
29803
30174
|
{ type: PersonService },
|
|
30175
|
+
{ type: MessageService },
|
|
29804
30176
|
{ type: i0.ChangeDetectorRef },
|
|
29805
|
-
{ type: i1.FormBuilder },
|
|
29806
30177
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
29807
30178
|
]; };
|
|
29808
30179
|
UsersPage.propDecorators = {
|
|
@@ -29830,22 +30201,24 @@
|
|
|
29830
30201
|
UsersPage
|
|
29831
30202
|
],
|
|
29832
30203
|
exports: [
|
|
30204
|
+
SocialModule,
|
|
29833
30205
|
UsersPage
|
|
29834
30206
|
]
|
|
29835
30207
|
},] }
|
|
29836
30208
|
];
|
|
29837
30209
|
AdminModule.ctorParameters = function () { return []; };
|
|
29838
30210
|
|
|
29839
|
-
var ɵ0 = {
|
|
30211
|
+
var ɵ0$c = {
|
|
29840
30212
|
profile: 'ADMIN'
|
|
29841
30213
|
};
|
|
29842
|
-
var routes
|
|
30214
|
+
var routes = [
|
|
29843
30215
|
{
|
|
29844
30216
|
path: 'users',
|
|
29845
30217
|
pathMatch: 'full',
|
|
29846
30218
|
component: UsersPage,
|
|
29847
30219
|
canActivate: [AuthGuardService],
|
|
29848
|
-
|
|
30220
|
+
canDeactivate: [ComponentDirtyGuard],
|
|
30221
|
+
data: ɵ0$c
|
|
29849
30222
|
}
|
|
29850
30223
|
];
|
|
29851
30224
|
var AdminRoutingModule = /** @class */ (function () {
|
|
@@ -29858,36 +30231,30 @@
|
|
|
29858
30231
|
imports: [
|
|
29859
30232
|
SharedRoutingModule,
|
|
29860
30233
|
AdminModule,
|
|
29861
|
-
i3.RouterModule.forChild(routes
|
|
30234
|
+
i3.RouterModule.forChild(routes)
|
|
29862
30235
|
],
|
|
29863
30236
|
exports: [i3.RouterModule]
|
|
29864
30237
|
},] }
|
|
29865
30238
|
];
|
|
29866
30239
|
|
|
29867
|
-
var
|
|
29868
|
-
LOAD_PERSONS_ERROR: 100,
|
|
29869
|
-
SAVE_PERSONS_ERROR: 101,
|
|
29870
|
-
DELETE_PERSONS_ERROR: 102,
|
|
29871
|
-
};
|
|
29872
|
-
|
|
29873
|
-
var EntityTestClass$1 = /** @class */ (function () {
|
|
30240
|
+
var EntityTestClass = /** @class */ (function () {
|
|
29874
30241
|
function EntityTestClass() {
|
|
29875
30242
|
}
|
|
29876
30243
|
return EntityTestClass;
|
|
29877
30244
|
}());
|
|
29878
|
-
var FAKE_ENTITIES
|
|
30245
|
+
var FAKE_ENTITIES = [
|
|
29879
30246
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
29880
30247
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
29881
30248
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
29882
30249
|
];
|
|
29883
|
-
function deepCopy
|
|
30250
|
+
function deepCopy(values, size) {
|
|
29884
30251
|
if (isNil(size)) {
|
|
29885
|
-
return (values || FAKE_ENTITIES
|
|
30252
|
+
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
29886
30253
|
}
|
|
29887
30254
|
var result = [];
|
|
29888
30255
|
var i = 1;
|
|
29889
30256
|
while (result.length < size) {
|
|
29890
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
30257
|
+
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
29891
30258
|
var name = entity.name + ' #' + i;
|
|
29892
30259
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
29893
30260
|
}));
|
|
@@ -29897,7 +30264,7 @@
|
|
|
29897
30264
|
var AutocompleteTestPage = /** @class */ (function () {
|
|
29898
30265
|
function AutocompleteTestPage(formBuilder) {
|
|
29899
30266
|
this.formBuilder = formBuilder;
|
|
29900
|
-
this._items = deepCopy
|
|
30267
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
29901
30268
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
29902
30269
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
29903
30270
|
this.memoryHide = false;
|
|
@@ -29943,7 +30310,7 @@
|
|
|
29943
30310
|
});
|
|
29944
30311
|
// From items
|
|
29945
30312
|
this.autocompleteFields.add('entity-items-large', {
|
|
29946
|
-
items: FAKE_ENTITIES
|
|
30313
|
+
items: FAKE_ENTITIES.slice(),
|
|
29947
30314
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
29948
30315
|
displayWith: this.entityToString
|
|
29949
30316
|
});
|
|
@@ -29965,13 +30332,13 @@
|
|
|
29965
30332
|
var _this = this;
|
|
29966
30333
|
return __generator(this, function (_a) {
|
|
29967
30334
|
data = {
|
|
29968
|
-
entity: deepCopy
|
|
30335
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
29969
30336
|
// This item is NOT in the items list => i should be displayed anyway
|
|
29970
30337
|
missingEntity: {
|
|
29971
30338
|
id: -1, label: '??', name: 'Missing item'
|
|
29972
30339
|
},
|
|
29973
|
-
disableEntity: deepCopy
|
|
29974
|
-
entities: deepCopy
|
|
30340
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2],
|
|
30341
|
+
entities: deepCopy(FAKE_ENTITIES)
|
|
29975
30342
|
};
|
|
29976
30343
|
this.form.setValue(data);
|
|
29977
30344
|
// Load observables
|
|
@@ -30140,13 +30507,13 @@
|
|
|
30140
30507
|
{ type: i1.FormBuilder }
|
|
30141
30508
|
]; };
|
|
30142
30509
|
|
|
30143
|
-
var moment$
|
|
30510
|
+
var moment$5 = momentImported__namespace;
|
|
30144
30511
|
var SwipeTestPage = /** @class */ (function () {
|
|
30145
30512
|
function SwipeTestPage(formBuilder, dateFormatPipe) {
|
|
30146
30513
|
this.formBuilder = formBuilder;
|
|
30147
30514
|
this.dateFormatPipe = dateFormatPipe;
|
|
30148
30515
|
this.$dates = new rxjs.BehaviorSubject(undefined);
|
|
30149
|
-
this._today = moment$
|
|
30516
|
+
this._today = moment$5().startOf('day');
|
|
30150
30517
|
this.form = formBuilder.group({
|
|
30151
30518
|
empty: [null, i1.Validators.required],
|
|
30152
30519
|
date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
|
|
@@ -30160,7 +30527,7 @@
|
|
|
30160
30527
|
var _this = this;
|
|
30161
30528
|
var dates = [];
|
|
30162
30529
|
for (var d = 0; d < 7; d++) {
|
|
30163
|
-
dates[d] = moment$
|
|
30530
|
+
dates[d] = moment$5(this._today).add(d - 3, 'day');
|
|
30164
30531
|
}
|
|
30165
30532
|
this.$dates.next(dates);
|
|
30166
30533
|
this.loadData();
|
|
@@ -30207,7 +30574,7 @@
|
|
|
30207
30574
|
{ type: DateFormatPipe }
|
|
30208
30575
|
]; };
|
|
30209
30576
|
|
|
30210
|
-
var moment$
|
|
30577
|
+
var moment$6 = momentImported__namespace;
|
|
30211
30578
|
var DateTimeTestPage = /** @class */ (function () {
|
|
30212
30579
|
function DateTimeTestPage(platform, formBuilder, cd) {
|
|
30213
30580
|
this.platform = platform;
|
|
@@ -30242,7 +30609,7 @@
|
|
|
30242
30609
|
var now, data;
|
|
30243
30610
|
var _this = this;
|
|
30244
30611
|
return __generator(this, function (_a) {
|
|
30245
|
-
now = moment$
|
|
30612
|
+
now = moment$6();
|
|
30246
30613
|
data = {
|
|
30247
30614
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
30248
30615
|
enable: toDateISOString(now),
|
|
@@ -30307,12 +30674,12 @@
|
|
|
30307
30674
|
{ type: i0.ChangeDetectorRef }
|
|
30308
30675
|
]; };
|
|
30309
30676
|
|
|
30310
|
-
var EntityTestClass = /** @class */ (function () {
|
|
30677
|
+
var EntityTestClass$1 = /** @class */ (function () {
|
|
30311
30678
|
function EntityTestClass() {
|
|
30312
30679
|
}
|
|
30313
30680
|
return EntityTestClass;
|
|
30314
30681
|
}());
|
|
30315
|
-
var FAKE_ENTITIES = [
|
|
30682
|
+
var FAKE_ENTITIES$1 = [
|
|
30316
30683
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
30317
30684
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
30318
30685
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -30321,14 +30688,14 @@
|
|
|
30321
30688
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
30322
30689
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
30323
30690
|
];
|
|
30324
|
-
function deepCopy(values, size) {
|
|
30691
|
+
function deepCopy$1(values, size) {
|
|
30325
30692
|
if (isNil(size)) {
|
|
30326
|
-
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
30693
|
+
return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
|
|
30327
30694
|
}
|
|
30328
30695
|
var result = [];
|
|
30329
30696
|
var i = 1;
|
|
30330
30697
|
while (result.length < size) {
|
|
30331
|
-
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
30698
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
|
|
30332
30699
|
var name = entity.name + ' #' + i;
|
|
30333
30700
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
30334
30701
|
}));
|
|
@@ -30338,7 +30705,7 @@
|
|
|
30338
30705
|
var ChipsTestPage = /** @class */ (function () {
|
|
30339
30706
|
function ChipsTestPage(formBuilder) {
|
|
30340
30707
|
this.formBuilder = formBuilder;
|
|
30341
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
30708
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
30342
30709
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
30343
30710
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
30344
30711
|
this.form = formBuilder.group({
|
|
@@ -30381,7 +30748,7 @@
|
|
|
30381
30748
|
var items, data;
|
|
30382
30749
|
var _this = this;
|
|
30383
30750
|
return __generator(this, function (_a) {
|
|
30384
|
-
items = deepCopy(FAKE_ENTITIES);
|
|
30751
|
+
items = deepCopy$1(FAKE_ENTITIES$1);
|
|
30385
30752
|
data = {
|
|
30386
30753
|
entity: items.slice(0, 1),
|
|
30387
30754
|
entityInitial: items.slice(1, 2),
|
|
@@ -30518,7 +30885,7 @@
|
|
|
30518
30885
|
{ type: i1.FormBuilder }
|
|
30519
30886
|
]; };
|
|
30520
30887
|
|
|
30521
|
-
var moment = momentImported__namespace;
|
|
30888
|
+
var moment$7 = momentImported__namespace;
|
|
30522
30889
|
var DateTestPage = /** @class */ (function () {
|
|
30523
30890
|
function DateTestPage(formBuilder, cd) {
|
|
30524
30891
|
this.formBuilder = formBuilder;
|
|
@@ -30530,7 +30897,8 @@
|
|
|
30530
30897
|
this.timezone = 'Indian/Mahe';
|
|
30531
30898
|
this.stringify = JSON.stringify;
|
|
30532
30899
|
this.form = formBuilder.group({
|
|
30533
|
-
empty: [null,
|
|
30900
|
+
empty: [null, SharedValidators.validDate],
|
|
30901
|
+
emptyRequired: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
|
|
30534
30902
|
enable: [null, i1.Validators.required],
|
|
30535
30903
|
disable: [null, i1.Validators.required],
|
|
30536
30904
|
readonly: [null],
|
|
@@ -30554,10 +30922,11 @@
|
|
|
30554
30922
|
var now, nowAtMahe, data;
|
|
30555
30923
|
var _this = this;
|
|
30556
30924
|
return __generator(this, function (_a) {
|
|
30557
|
-
now = moment();
|
|
30925
|
+
now = moment$7();
|
|
30558
30926
|
nowAtMahe = now.clone().tz(this.timezone).startOf('day');
|
|
30559
30927
|
data = {
|
|
30560
|
-
empty:
|
|
30928
|
+
empty: null,
|
|
30929
|
+
emptyRequired: null,
|
|
30561
30930
|
enable: toDateISOString(now),
|
|
30562
30931
|
disable: now.clone(),
|
|
30563
30932
|
readonly: now.clone(),
|
|
@@ -30615,7 +30984,7 @@
|
|
|
30615
30984
|
DateTestPage.decorators = [
|
|
30616
30985
|
{ type: i0.Component, args: [{
|
|
30617
30986
|
selector: 'app-data-test',
|
|
30618
|
-
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>Date field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\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 <ion-button *ngIf=\"!memoryTimer\" (click)=\"startMemoryTimer()\">Start timer</ion-button>\n <ion-button *ngIf=\"memoryTimer\" (click)=\"stopMemoryTimer()\">Stop timer</ion-button>\n </ion-col>\n <ion-col size=\"2\">\n <mat-form-field floatLabel=\"never\">\n <input matInput type=\"text\" hidden>\n <mat-checkbox (change)=\"memoryMobile=$event.checked\" [value]=\"memoryMobile\">\n Mobile ?\n </mat-checkbox>\n </mat-form-field>\n </ion-col>\n <ion-col>\n <mat-date-field formControlName=\"empty\"\n *ngIf=\"!memoryHide\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"memoryMobile\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-col>\n </ion-row>\n\n <!-- Mobile mode -->\n <ion-row><ion-col><ion-text><h4>Mobile mode</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.empty.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"empty\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Enable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n With value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.enable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"enable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.disable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"disable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- TimeZone -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n TimeZone\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>timezone=\"{{timezone}}\" value=\"{{stringify(form.controls.timezone.value)}}\"</pre></small>\n <pre>Should display using the browser TZ,<br/>but serialize/deserialize for the given TZ</pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field #readonlyField formControlName=\"timezone\"\n placeholder=\"Date\"\n [mobile]=\"true\"\n [clearable]=\"true\"\n [timezone]=\"timezone\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n <!-- debug console -->\n <ion-row>\n <!-- buttons -->\n <ion-col size=\"2\">\n <!-- submit form -->\n <ion-button (click)=\"doSubmit($event)\"\n fill=\"outline\">\n <ion-icon name=\"checkmark\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n\n <!-- clear log -->\n <ion-button (click)=\"clearLogPanel()\"\n fill=\"outline\">\n <ion-icon name=\"trash\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col size=\"10\" *ngIf=\"showLogPanel\">\n <ion-text color=\"primary\">Log:<br/></ion-text>\n <div class=\"ion-padding-start\">\n <ion-text color=\"medium\">\n <small [innerHTML]=\"logContent\"></small>\n </ion-text>\n </div>\n </ion-col>\n </ion-row>\n\n <hr/>\n\n <!-- Desktop mode -->\n <ion-row><ion-col><ion-text><h4>Desktop mode</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.empty.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"empty\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Enable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n With value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.enable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"enable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.disable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"disable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"false\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- TimeZone -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n TimeZone\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>timezone=\"{{timezone}}\" value={{stringify(form.controls.timezone.value)}}</pre></small>\n <pre>Should display using the browser TZ,<br/>but serialize/deserialize for the given TZ</pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field #readonlyField formControlName=\"timezone\"\n placeholder=\"Date\"\n [mobile]=\"false\"\n [clearable]=\"true\"\n [timezone]=\"timezone\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Readonly -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly toggle\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.readonly.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\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-date-field #readonlyField formControlName=\"readonly\"\n placeholder=\"Date\"\n [readonly]=\"true\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n </ion-grid>\n </form>\n\n</ion-content>\n"
|
|
30987
|
+
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>Date field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n\n <ion-grid>\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 <ion-button *ngIf=\"!memoryTimer\" (click)=\"startMemoryTimer()\">Start timer</ion-button>\n <ion-button *ngIf=\"memoryTimer\" (click)=\"stopMemoryTimer()\">Stop timer</ion-button>\n </ion-col>\n <ion-col size=\"2\">\n <mat-form-field floatLabel=\"never\">\n <input matInput type=\"text\" hidden>\n <mat-checkbox (change)=\"memoryMobile=$event.checked\" [value]=\"memoryMobile\">\n Mobile ?\n </mat-checkbox>\n </mat-form-field>\n </ion-col>\n <ion-col>\n <mat-date-field formControlName=\"empty\"\n *ngIf=\"!memoryHide\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"memoryMobile\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-col>\n </ion-row>\n\n <!-- Mobile mode -->\n <ion-row><ion-col><ion-text><h4>Mobile mode</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.empty.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"empty\"\n placeholder=\"Date\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value (required)\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.emptyRequired.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"emptyRequired\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Enable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n With value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.enable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"enable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.disable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"disable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- TimeZone -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n TimeZone\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>timezone=\"{{timezone}}\" value=\"{{stringify(form.controls.timezone.value)}}\"</pre></small>\n <pre>Should display using the browser TZ,<br/>but serialize/deserialize for the given TZ</pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"timezone\"\n placeholder=\"Date\"\n [mobile]=\"true\"\n [clearable]=\"true\"\n [timezone]=\"timezone\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Readonly -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly toggle\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.readonly.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-checkbox (change)=\"mobileReadonlyField.readonly=$event.checked\" [checked]=\"mobileReadonlyField.readonly\">\n </mat-checkbox>\n\n <mat-date-field #mobileReadonlyField formControlName=\"readonly\"\n placeholder=\"Date\"\n [readonly]=\"true\"\n [mobile]=\"true\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n <!-- debug console -->\n <ion-row>\n <!-- buttons -->\n <ion-col size=\"2\">\n <!-- submit form -->\n <ion-button (click)=\"doSubmit($event)\"\n fill=\"outline\">\n <ion-icon name=\"checkmark\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n\n <!-- clear log -->\n <ion-button (click)=\"clearLogPanel()\"\n fill=\"outline\">\n <ion-icon name=\"trash\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col size=\"10\" *ngIf=\"showLogPanel\">\n <ion-text color=\"primary\">Log:<br/></ion-text>\n <div class=\"ion-padding-start\">\n <ion-text color=\"medium\">\n <small [innerHTML]=\"logContent\"></small>\n </ion-text>\n </div>\n </ion-col>\n </ion-row>\n\n <hr/>\n\n <!-- Desktop mode -->\n <ion-row><ion-col><ion-text><h4>Desktop mode</h4></ion-text></ion-col></ion-row>\n <ion-row>\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.empty.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"empty\"\n placeholder=\"Date\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n\n <!-- Empty value -->\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Empty value (required)\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.emptyRequired.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"emptyRequired\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Enable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n With value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.enable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"enable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Disable -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.disable.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"disable\"\n placeholder=\"Date\"\n [required]=\"true\"\n [mobile]=\"false\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- TimeZone -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n TimeZone\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>timezone=\"{{timezone}}\" value={{stringify(form.controls.timezone.value)}}</pre></small>\n <pre>Should display using the browser TZ,<br/>but serialize/deserialize for the given TZ</pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-date-field formControlName=\"timezone\"\n placeholder=\"Date\"\n [mobile]=\"false\"\n [clearable]=\"true\"\n [timezone]=\"timezone\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <!-- Readonly -->\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly toggle\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>{{stringify(form.controls.readonly.value)}}</pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-checkbox (change)=\"desktopReadonlyField.readonly=$event.checked\" [checked]=\"desktopReadonlyField.readonly\">\n </mat-checkbox>\n\n <mat-date-field #desktopReadonlyField formControlName=\"readonly\"\n placeholder=\"Date\"\n [readonly]=\"true\"\n [mobile]=\"false\"\n [clearable]=\"true\">\n <ion-icon matPrefix name=\"calendar-outline\"></ion-icon>\n </mat-date-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n </ion-grid>\n\n </form>\n</ion-content>\n"
|
|
30619
30988
|
},] }
|
|
30620
30989
|
];
|
|
30621
30990
|
DateTestPage.ctorParameters = function () { return [
|
|
@@ -30635,7 +31004,7 @@
|
|
|
30635
31004
|
{ label: 'Shared directives', divider: true },
|
|
30636
31005
|
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
|
|
30637
31006
|
];
|
|
30638
|
-
var routes$
|
|
31007
|
+
var routes$1 = [
|
|
30639
31008
|
{
|
|
30640
31009
|
path: '',
|
|
30641
31010
|
pathMatch: 'full',
|
|
@@ -30695,7 +31064,7 @@
|
|
|
30695
31064
|
i1.ReactiveFormsModule,
|
|
30696
31065
|
SharedMaterialModule,
|
|
30697
31066
|
i1$2.TranslateModule.forChild(),
|
|
30698
|
-
i3.RouterModule.forChild(routes$
|
|
31067
|
+
i3.RouterModule.forChild(routes$1)
|
|
30699
31068
|
],
|
|
30700
31069
|
declarations: [
|
|
30701
31070
|
DateTimeTestPage,
|
|
@@ -30757,7 +31126,7 @@
|
|
|
30757
31126
|
{ type: i1$2.TranslateService }
|
|
30758
31127
|
]; };
|
|
30759
31128
|
|
|
30760
|
-
var routes$
|
|
31129
|
+
var routes$2 = [
|
|
30761
31130
|
{
|
|
30762
31131
|
path: 'toast',
|
|
30763
31132
|
pathMatch: 'full',
|
|
@@ -30775,7 +31144,7 @@
|
|
|
30775
31144
|
i1$4.CommonModule,
|
|
30776
31145
|
i1$5.IonicModule,
|
|
30777
31146
|
i1$2.TranslateModule.forChild(),
|
|
30778
|
-
i3.RouterModule.forChild(routes$
|
|
31147
|
+
i3.RouterModule.forChild(routes$2)
|
|
30779
31148
|
],
|
|
30780
31149
|
declarations: [
|
|
30781
31150
|
ToastTestingPage
|
|
@@ -30855,7 +31224,7 @@
|
|
|
30855
31224
|
{ type: i1$5.PopoverController }
|
|
30856
31225
|
]; };
|
|
30857
31226
|
|
|
30858
|
-
var routes$
|
|
31227
|
+
var routes$3 = [
|
|
30859
31228
|
{
|
|
30860
31229
|
path: 'upload-file',
|
|
30861
31230
|
pathMatch: 'full',
|
|
@@ -30873,7 +31242,7 @@
|
|
|
30873
31242
|
i1$4.CommonModule,
|
|
30874
31243
|
i1$5.IonicModule,
|
|
30875
31244
|
i1$2.TranslateModule.forChild(),
|
|
30876
|
-
i3.RouterModule.forChild(routes$
|
|
31245
|
+
i3.RouterModule.forChild(routes$3)
|
|
30877
31246
|
],
|
|
30878
31247
|
declarations: [
|
|
30879
31248
|
UploadFileTestingPage
|
|
@@ -31297,7 +31666,7 @@
|
|
|
31297
31666
|
{ type: i1$5.PopoverController }
|
|
31298
31667
|
]; };
|
|
31299
31668
|
|
|
31300
|
-
var routes$
|
|
31669
|
+
var routes$4 = [
|
|
31301
31670
|
{
|
|
31302
31671
|
path: 'text-popover',
|
|
31303
31672
|
pathMatch: 'full',
|
|
@@ -31315,7 +31684,7 @@
|
|
|
31315
31684
|
i1$4.CommonModule,
|
|
31316
31685
|
i1$5.IonicModule,
|
|
31317
31686
|
i1$2.TranslateModule.forChild(),
|
|
31318
|
-
i3.RouterModule.forChild(routes$
|
|
31687
|
+
i3.RouterModule.forChild(routes$4)
|
|
31319
31688
|
],
|
|
31320
31689
|
declarations: [
|
|
31321
31690
|
TextPopoverTestingPage
|
|
@@ -31332,7 +31701,7 @@
|
|
|
31332
31701
|
{ label: 'Table', page: '/testing/core/table' },
|
|
31333
31702
|
{ label: 'Text popover', page: '/testing/core/text-popover' }
|
|
31334
31703
|
];
|
|
31335
|
-
var routes = [
|
|
31704
|
+
var routes$5 = [
|
|
31336
31705
|
{
|
|
31337
31706
|
path: '',
|
|
31338
31707
|
pathMatch: 'full',
|
|
@@ -31359,7 +31728,7 @@
|
|
|
31359
31728
|
imports: [
|
|
31360
31729
|
i1$4.CommonModule,
|
|
31361
31730
|
i1$2.TranslateModule.forChild(),
|
|
31362
|
-
i3.RouterModule.forChild(routes),
|
|
31731
|
+
i3.RouterModule.forChild(routes$5),
|
|
31363
31732
|
// Sub modules
|
|
31364
31733
|
TableTestingModule,
|
|
31365
31734
|
TextPopoverTestingModule
|
|
@@ -31482,7 +31851,6 @@
|
|
|
31482
31851
|
exports.EntityStore = EntityStore;
|
|
31483
31852
|
exports.EntityUtils = EntityUtils;
|
|
31484
31853
|
exports.Environment = Environment;
|
|
31485
|
-
exports.ErrorCodes = ErrorCodes;
|
|
31486
31854
|
exports.EvenPipe = EvenPipe;
|
|
31487
31855
|
exports.FileResponse = FileResponse;
|
|
31488
31856
|
exports.FileService = FileService;
|
|
@@ -31498,7 +31866,7 @@
|
|
|
31498
31866
|
exports.FormGetControlPipe = FormGetControlPipe;
|
|
31499
31867
|
exports.FormGetGroupPipe = FormGetGroupPipe;
|
|
31500
31868
|
exports.FormGetPipe = FormGetPipe;
|
|
31501
|
-
exports.Fragments = Fragments;
|
|
31869
|
+
exports.Fragments = Fragments$1;
|
|
31502
31870
|
exports.GraphqlService = GraphqlService;
|
|
31503
31871
|
exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
|
|
31504
31872
|
exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;
|
|
@@ -31547,6 +31915,11 @@
|
|
|
31547
31915
|
exports.MenuComponent = MenuComponent;
|
|
31548
31916
|
exports.MenuItems = MenuItems;
|
|
31549
31917
|
exports.MenuService = MenuService;
|
|
31918
|
+
exports.MessageForm = MessageForm;
|
|
31919
|
+
exports.MessageModal = MessageModal;
|
|
31920
|
+
exports.MessageService = MessageService;
|
|
31921
|
+
exports.MessageTypeList = MessageTypeList;
|
|
31922
|
+
exports.MessageTypes = MessageTypes;
|
|
31550
31923
|
exports.ModalToolbarComponent = ModalToolbarComponent;
|
|
31551
31924
|
exports.NetworkService = NetworkService;
|
|
31552
31925
|
exports.NgInitDirective = NgInitDirective;
|
|
@@ -31603,6 +31976,7 @@
|
|
|
31603
31976
|
exports.SharedTestingModule = SharedTestingModule;
|
|
31604
31977
|
exports.SharedTestsPage = SharedTestsPage;
|
|
31605
31978
|
exports.SharedValidators = SharedValidators;
|
|
31979
|
+
exports.SocialErrorCodes = SocialErrorCodes;
|
|
31606
31980
|
exports.SocialModule = SocialModule;
|
|
31607
31981
|
exports.StartableService = StartableService;
|
|
31608
31982
|
exports.StatusById = StatusById;
|
|
@@ -31630,6 +32004,7 @@
|
|
|
31630
32004
|
exports.UploadFilePopover = UploadFilePopover;
|
|
31631
32005
|
exports.UploadFileTestingModule = UploadFileTestingModule;
|
|
31632
32006
|
exports.UploadFileTestingPage = UploadFileTestingPage;
|
|
32007
|
+
exports.UserEventFragments = UserEventFragments;
|
|
31633
32008
|
exports.UserEventService = UserEventService;
|
|
31634
32009
|
exports.UserEventTypes = UserEventTypes;
|
|
31635
32010
|
exports.UserEventsTable = UserEventsTable;
|
|
@@ -31781,23 +32156,23 @@
|
|
|
31781
32156
|
exports.waitForTrue = waitForTrue;
|
|
31782
32157
|
exports.waitIdle = waitIdle;
|
|
31783
32158
|
exports.waitWhilePending = waitWhilePending;
|
|
31784
|
-
exports
|
|
31785
|
-
exports
|
|
31786
|
-
exports
|
|
31787
|
-
exports
|
|
31788
|
-
exports
|
|
31789
|
-
exports
|
|
31790
|
-
exports
|
|
31791
|
-
exports
|
|
31792
|
-
exports
|
|
31793
|
-
exports
|
|
31794
|
-
exports
|
|
31795
|
-
exports
|
|
31796
|
-
exports
|
|
31797
|
-
exports
|
|
31798
|
-
exports
|
|
32159
|
+
exports.ɵ0 = ɵ0;
|
|
32160
|
+
exports.ɵa = CustomReuseStrategy;
|
|
32161
|
+
exports.ɵb = MatNumpadDomService;
|
|
32162
|
+
exports.ɵc = isFocusableElement;
|
|
32163
|
+
exports.ɵd = RegisterForm;
|
|
32164
|
+
exports.ɵe = AccountValidatorService;
|
|
32165
|
+
exports.ɵf = RegisterModal;
|
|
32166
|
+
exports.ɵg = UserSettingsValidatorService;
|
|
32167
|
+
exports.ɵh = LocalSettingsValidatorService;
|
|
32168
|
+
exports.ɵi = AppIconComponent;
|
|
32169
|
+
exports.ɵj = DateTestPage;
|
|
32170
|
+
exports.ɵk = NumpadTestPage;
|
|
32171
|
+
exports.ɵl = MatBadgeIconTestPage;
|
|
32172
|
+
exports.ɵm = ToastTestingModule;
|
|
32173
|
+
exports.ɵn = ToastTestingPage;
|
|
31799
32174
|
|
|
31800
32175
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
31801
32176
|
|
|
31802
|
-
}));
|
|
32177
|
+
})));
|
|
31803
32178
|
//# sourceMappingURL=sumaris-net.ngx-components.umd.js.map
|