@sumaris-net/ngx-components 1.18.6 → 1.19.1
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 +806 -425
- 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/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/dates.js +3 -3
- 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/pipes/date-format.pipe.js +7 -1
- 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 +737 -408
- 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/pipes/date-format.pipe.d.ts +2 -0
- 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 +4 -4
- package/src/assets/i18n/en.json +5 -4
- package/src/assets/i18n/fr.json +24 -4
- 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 === 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 === 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;
|
|
@@ -2261,9 +2254,15 @@
|
|
|
2261
2254
|
var date = momentImported.isMoment(value) ? value : this.dateAdapter.parse(value, DATE_ISO_PATTERN);
|
|
2262
2255
|
return date && this.dateAdapter.format(date, pattern) || '';
|
|
2263
2256
|
};
|
|
2257
|
+
DateFormatPipe.prototype.format = function (date, pattern) {
|
|
2258
|
+
return this.dateAdapter.format(date, pattern);
|
|
2259
|
+
};
|
|
2260
|
+
DateFormatPipe.prototype.parse = function (value, parseFormat) {
|
|
2261
|
+
return momentImported.isMoment(value) ? value : this.dateAdapter.parse(value, parseFormat || DATE_ISO_PATTERN);
|
|
2262
|
+
};
|
|
2264
2263
|
return DateFormatPipe;
|
|
2265
2264
|
}());
|
|
2266
|
-
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" });
|
|
2267
2266
|
DateFormatPipe.decorators = [
|
|
2268
2267
|
{ type: i0.Pipe, args: [{
|
|
2269
2268
|
name: 'dateFormat'
|
|
@@ -2275,7 +2274,7 @@
|
|
|
2275
2274
|
{ type: i1$2.TranslateService }
|
|
2276
2275
|
]; };
|
|
2277
2276
|
|
|
2278
|
-
var moment
|
|
2277
|
+
var moment = momentImported__namespace;
|
|
2279
2278
|
var DateDiffDurationPipe = /** @class */ (function () {
|
|
2280
2279
|
function DateDiffDurationPipe(dateAdapter, translate) {
|
|
2281
2280
|
var _this = this;
|
|
@@ -2292,10 +2291,10 @@
|
|
|
2292
2291
|
return this.format(startDate, endDate);
|
|
2293
2292
|
};
|
|
2294
2293
|
DateDiffDurationPipe.prototype.format = function (startDate, endDate) {
|
|
2295
|
-
var duration = moment
|
|
2294
|
+
var duration = moment.duration(endDate.diff(startDate));
|
|
2296
2295
|
if (duration.asMinutes() < 0)
|
|
2297
2296
|
return '';
|
|
2298
|
-
var timeDuration = moment
|
|
2297
|
+
var timeDuration = moment(0)
|
|
2299
2298
|
.hour(duration.hours())
|
|
2300
2299
|
.minute(duration.minutes());
|
|
2301
2300
|
var days = Math.floor(duration.asDays());
|
|
@@ -2303,7 +2302,7 @@
|
|
|
2303
2302
|
};
|
|
2304
2303
|
return DateDiffDurationPipe;
|
|
2305
2304
|
}());
|
|
2306
|
-
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" });
|
|
2307
2306
|
DateDiffDurationPipe.decorators = [
|
|
2308
2307
|
{ type: i0.Pipe, args: [{
|
|
2309
2308
|
name: 'dateDiffDuration'
|
|
@@ -2325,7 +2324,7 @@
|
|
|
2325
2324
|
};
|
|
2326
2325
|
return DateFromNowPipe;
|
|
2327
2326
|
}());
|
|
2328
|
-
DateFromNowPipe.ɵprov =
|
|
2327
|
+
DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1$1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
2329
2328
|
DateFromNowPipe.decorators = [
|
|
2330
2329
|
{ type: i0.Pipe, args: [{
|
|
2331
2330
|
name: 'dateFromNow'
|
|
@@ -2394,7 +2393,7 @@
|
|
|
2394
2393
|
value *= -1;
|
|
2395
2394
|
}
|
|
2396
2395
|
}
|
|
2397
|
-
var degrees = roundFloat
|
|
2396
|
+
var degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
2398
2397
|
// Add sign
|
|
2399
2398
|
var sign = negative ? '-' : '+';
|
|
2400
2399
|
if (opts.placeholderChar) {
|
|
@@ -2445,7 +2444,7 @@
|
|
|
2445
2444
|
}
|
|
2446
2445
|
var degrees = Math.trunc(value);
|
|
2447
2446
|
var minutes = Math.trunc((value - degrees) * 60);
|
|
2448
|
-
var seconds = roundFloat
|
|
2447
|
+
var seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
2449
2448
|
while (seconds >= 60) {
|
|
2450
2449
|
seconds -= 60;
|
|
2451
2450
|
minutes += 1;
|
|
@@ -2513,7 +2512,7 @@
|
|
|
2513
2512
|
}
|
|
2514
2513
|
}
|
|
2515
2514
|
var degrees = Math.trunc(value);
|
|
2516
|
-
var minutes = roundFloat
|
|
2515
|
+
var minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
2517
2516
|
while (minutes >= 60) {
|
|
2518
2517
|
minutes -= 60;
|
|
2519
2518
|
degrees += 1;
|
|
@@ -2564,15 +2563,15 @@
|
|
|
2564
2563
|
return NaN;
|
|
2565
2564
|
}
|
|
2566
2565
|
if (pattern === 'DD')
|
|
2567
|
-
return roundFloat
|
|
2566
|
+
return roundFloat(degrees, maxDecimals);
|
|
2568
2567
|
var minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
2569
2568
|
var seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
2570
2569
|
var direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
2571
2570
|
var sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
2572
2571
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
2573
|
-
return roundFloat
|
|
2572
|
+
return roundFloat(degrees, maxDecimals);
|
|
2574
2573
|
}
|
|
2575
|
-
function roundFloat
|
|
2574
|
+
function roundFloat(input, maxDecimals) {
|
|
2576
2575
|
if (maxDecimals > 0) {
|
|
2577
2576
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
2578
2577
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -2595,7 +2594,7 @@
|
|
|
2595
2594
|
};
|
|
2596
2595
|
return LatLongFormatPipe;
|
|
2597
2596
|
}());
|
|
2598
|
-
LatLongFormatPipe.ɵprov =
|
|
2597
|
+
LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
2599
2598
|
LatLongFormatPipe.decorators = [
|
|
2600
2599
|
{ type: i0.Pipe, args: [{
|
|
2601
2600
|
name: 'latLongFormat'
|
|
@@ -2608,7 +2607,7 @@
|
|
|
2608
2607
|
}
|
|
2609
2608
|
return LatitudeFormatPipe;
|
|
2610
2609
|
}());
|
|
2611
|
-
LatitudeFormatPipe.ɵprov =
|
|
2610
|
+
LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
2612
2611
|
LatitudeFormatPipe.decorators = [
|
|
2613
2612
|
{ type: i0.Pipe, args: [{
|
|
2614
2613
|
name: 'latitudeFormat'
|
|
@@ -2621,7 +2620,7 @@
|
|
|
2621
2620
|
}
|
|
2622
2621
|
return LongitudeFormatPipe;
|
|
2623
2622
|
}());
|
|
2624
|
-
LongitudeFormatPipe.ɵprov =
|
|
2623
|
+
LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
2625
2624
|
LongitudeFormatPipe.decorators = [
|
|
2626
2625
|
{ type: i0.Pipe, args: [{
|
|
2627
2626
|
name: 'longitudeFormat'
|
|
@@ -2644,7 +2643,7 @@
|
|
|
2644
2643
|
};
|
|
2645
2644
|
return NumberFormatPipe;
|
|
2646
2645
|
}());
|
|
2647
|
-
NumberFormatPipe.ɵprov =
|
|
2646
|
+
NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
2648
2647
|
NumberFormatPipe.decorators = [
|
|
2649
2648
|
{ type: i0.Pipe, args: [{
|
|
2650
2649
|
name: 'numberFormat'
|
|
@@ -2687,7 +2686,7 @@
|
|
|
2687
2686
|
};
|
|
2688
2687
|
return HighlightPipe;
|
|
2689
2688
|
}());
|
|
2690
|
-
HighlightPipe.ɵprov =
|
|
2689
|
+
HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
2691
2690
|
HighlightPipe.decorators = [
|
|
2692
2691
|
{ type: i0.Pipe, args: [{
|
|
2693
2692
|
name: 'highlight'
|
|
@@ -2755,7 +2754,7 @@
|
|
|
2755
2754
|
{ type: i0.Pipe, args: [{ name: 'fileSize' },] }
|
|
2756
2755
|
];
|
|
2757
2756
|
|
|
2758
|
-
var moment$
|
|
2757
|
+
var moment$1 = momentImported__namespace;
|
|
2759
2758
|
var tz = momentTZImported__namespace;
|
|
2760
2759
|
var DATE_UNIX_TIMESTAMP = 'X';
|
|
2761
2760
|
var DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
@@ -2766,10 +2765,10 @@
|
|
|
2766
2765
|
this.toDuration = toDuration;
|
|
2767
2766
|
}
|
|
2768
2767
|
DateUtils.min = function (date1, date2) {
|
|
2769
|
-
return date1 && date2
|
|
2768
|
+
return date1 && (!date2 || date1.isSameOrBefore(date2)) ? date1 : date2;
|
|
2770
2769
|
};
|
|
2771
2770
|
DateUtils.max = function (date1, date2) {
|
|
2772
|
-
return
|
|
2771
|
+
return date1 && (!date2 || date1.isSameOrAfter(date2)) ? date1 : date2;
|
|
2773
2772
|
};
|
|
2774
2773
|
DateUtils.equals = function (date1, date2) {
|
|
2775
2774
|
return DateUtils.isSame(date1, date2);
|
|
@@ -2833,32 +2832,32 @@
|
|
|
2833
2832
|
if (!value || momentImported.isMoment(value))
|
|
2834
2833
|
return value;
|
|
2835
2834
|
// Parse the input value, as a ISO date time
|
|
2836
|
-
var date = moment$
|
|
2835
|
+
var date = moment$1(value, DATE_ISO_PATTERN);
|
|
2837
2836
|
if (date.isValid())
|
|
2838
2837
|
return date;
|
|
2839
2838
|
// Not valid: trying to convert from unix timestamp
|
|
2840
2839
|
if (typeof value === 'string') {
|
|
2841
2840
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2842
2841
|
if (value.length === 10) {
|
|
2843
|
-
return moment$
|
|
2842
|
+
return moment$1(value, DATE_UNIX_TIMESTAMP);
|
|
2844
2843
|
}
|
|
2845
2844
|
else if (value.length === 13) {
|
|
2846
|
-
return moment$
|
|
2845
|
+
return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2847
2846
|
}
|
|
2848
2847
|
}
|
|
2849
2848
|
console.warn('Unable to parse date: ' + value);
|
|
2850
2849
|
return undefined;
|
|
2851
2850
|
}
|
|
2852
2851
|
function fromUnixTimestamp(timeInSec) {
|
|
2853
|
-
return moment$
|
|
2852
|
+
return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2854
2853
|
}
|
|
2855
2854
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2856
|
-
return moment$
|
|
2855
|
+
return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2857
2856
|
}
|
|
2858
2857
|
function toDuration(value, unit) {
|
|
2859
2858
|
if (!value)
|
|
2860
2859
|
return undefined;
|
|
2861
|
-
var duration = moment$
|
|
2860
|
+
var duration = moment$1.duration(value, unit);
|
|
2862
2861
|
// fix 990+ ms
|
|
2863
2862
|
if (duration.milliseconds() >= 990) {
|
|
2864
2863
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2888,7 +2887,7 @@
|
|
|
2888
2887
|
};
|
|
2889
2888
|
return DurationPipe;
|
|
2890
2889
|
}());
|
|
2891
|
-
DurationPipe.ɵprov =
|
|
2890
|
+
DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$2.TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2892
2891
|
DurationPipe.decorators = [
|
|
2893
2892
|
{ type: i0.Pipe, args: [{
|
|
2894
2893
|
name: 'duration'
|
|
@@ -2912,7 +2911,7 @@
|
|
|
2912
2911
|
};
|
|
2913
2912
|
return MathAbsPipe;
|
|
2914
2913
|
}());
|
|
2915
|
-
MathAbsPipe.ɵprov =
|
|
2914
|
+
MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2916
2915
|
MathAbsPipe.decorators = [
|
|
2917
2916
|
{ type: i0.Pipe, args: [{
|
|
2918
2917
|
name: 'mathAbs'
|
|
@@ -2927,7 +2926,7 @@
|
|
|
2927
2926
|
};
|
|
2928
2927
|
return EvenPipe;
|
|
2929
2928
|
}());
|
|
2930
|
-
EvenPipe.ɵprov =
|
|
2929
|
+
EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2931
2930
|
EvenPipe.decorators = [
|
|
2932
2931
|
{ type: i0.Pipe, args: [{
|
|
2933
2932
|
name: 'even'
|
|
@@ -2942,7 +2941,7 @@
|
|
|
2942
2941
|
};
|
|
2943
2942
|
return OddPipe;
|
|
2944
2943
|
}());
|
|
2945
|
-
OddPipe.ɵprov =
|
|
2944
|
+
OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2946
2945
|
OddPipe.decorators = [
|
|
2947
2946
|
{ type: i0.Pipe, args: [{
|
|
2948
2947
|
name: 'odd'
|
|
@@ -3074,7 +3073,7 @@
|
|
|
3074
3073
|
};
|
|
3075
3074
|
return MapGetPipe;
|
|
3076
3075
|
}());
|
|
3077
|
-
MapGetPipe.ɵprov =
|
|
3076
|
+
MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
3078
3077
|
MapGetPipe.decorators = [
|
|
3079
3078
|
{ type: i0.Pipe, args: [{
|
|
3080
3079
|
name: 'mapGet'
|
|
@@ -3091,7 +3090,7 @@
|
|
|
3091
3090
|
};
|
|
3092
3091
|
return MapKeysPipe;
|
|
3093
3092
|
}());
|
|
3094
|
-
MapKeysPipe.ɵprov =
|
|
3093
|
+
MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
3095
3094
|
MapKeysPipe.decorators = [
|
|
3096
3095
|
{ type: i0.Pipe, args: [{
|
|
3097
3096
|
name: 'mapKeys'
|
|
@@ -3108,7 +3107,7 @@
|
|
|
3108
3107
|
};
|
|
3109
3108
|
return MapValuesPipe;
|
|
3110
3109
|
}());
|
|
3111
|
-
MapValuesPipe.ɵprov =
|
|
3110
|
+
MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
3112
3111
|
MapValuesPipe.decorators = [
|
|
3113
3112
|
{ type: i0.Pipe, args: [{
|
|
3114
3113
|
name: 'mapValues'
|
|
@@ -3124,7 +3123,7 @@
|
|
|
3124
3123
|
};
|
|
3125
3124
|
return IsNotNilOrBlankPipe;
|
|
3126
3125
|
}());
|
|
3127
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
3126
|
+
IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
3128
3127
|
IsNotNilOrBlankPipe.decorators = [
|
|
3129
3128
|
{ type: i0.Pipe, args: [{
|
|
3130
3129
|
name: 'isNotNilOrBlank'
|
|
@@ -3139,7 +3138,7 @@
|
|
|
3139
3138
|
};
|
|
3140
3139
|
return IsNilOrBlankPipe;
|
|
3141
3140
|
}());
|
|
3142
|
-
IsNilOrBlankPipe.ɵprov =
|
|
3141
|
+
IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
3143
3142
|
IsNilOrBlankPipe.decorators = [
|
|
3144
3143
|
{ type: i0.Pipe, args: [{
|
|
3145
3144
|
name: 'isNilOrBlank'
|
|
@@ -3154,7 +3153,7 @@
|
|
|
3154
3153
|
};
|
|
3155
3154
|
return ToStringPipe;
|
|
3156
3155
|
}());
|
|
3157
|
-
ToStringPipe.ɵprov =
|
|
3156
|
+
ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
3158
3157
|
ToStringPipe.decorators = [
|
|
3159
3158
|
{ type: i0.Pipe, args: [{
|
|
3160
3159
|
name: 'toString'
|
|
@@ -3169,7 +3168,7 @@
|
|
|
3169
3168
|
};
|
|
3170
3169
|
return StrLengthPipe;
|
|
3171
3170
|
}());
|
|
3172
|
-
StrLengthPipe.ɵprov =
|
|
3171
|
+
StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
3173
3172
|
StrLengthPipe.decorators = [
|
|
3174
3173
|
{ type: i0.Pipe, args: [{
|
|
3175
3174
|
name: 'strLength'
|
|
@@ -3184,7 +3183,7 @@
|
|
|
3184
3183
|
};
|
|
3185
3184
|
return StrIncludesPipe;
|
|
3186
3185
|
}());
|
|
3187
|
-
StrIncludesPipe.ɵprov =
|
|
3186
|
+
StrIncludesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrIncludesPipe_Factory() { return new StrIncludesPipe(); }, token: StrIncludesPipe, providedIn: "root" });
|
|
3188
3187
|
StrIncludesPipe.decorators = [
|
|
3189
3188
|
{ type: i0.Pipe, args: [{
|
|
3190
3189
|
name: 'strIncludes'
|
|
@@ -3275,7 +3274,7 @@
|
|
|
3275
3274
|
};
|
|
3276
3275
|
return TranslateContextService;
|
|
3277
3276
|
}());
|
|
3278
|
-
TranslateContextService.ɵprov =
|
|
3277
|
+
TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$2.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
3279
3278
|
TranslateContextService.decorators = [
|
|
3280
3279
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
3281
3280
|
];
|
|
@@ -3332,7 +3331,7 @@
|
|
|
3332
3331
|
};
|
|
3333
3332
|
return PropertyGetPipe;
|
|
3334
3333
|
}());
|
|
3335
|
-
PropertyGetPipe.ɵprov =
|
|
3334
|
+
PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
3336
3335
|
PropertyGetPipe.decorators = [
|
|
3337
3336
|
{ type: i0.Pipe, args: [{
|
|
3338
3337
|
name: 'propertyGet'
|
|
@@ -3358,7 +3357,7 @@
|
|
|
3358
3357
|
ngInit: [{ type: i0.Output }]
|
|
3359
3358
|
};
|
|
3360
3359
|
|
|
3361
|
-
var moment$
|
|
3360
|
+
var moment$2 = momentImported__namespace;
|
|
3362
3361
|
// @dynamic
|
|
3363
3362
|
var SharedValidators = /** @class */ (function () {
|
|
3364
3363
|
function SharedValidators() {
|
|
@@ -3441,7 +3440,7 @@
|
|
|
3441
3440
|
};
|
|
3442
3441
|
SharedValidators.validDate = function (control) {
|
|
3443
3442
|
var value = control.value;
|
|
3444
|
-
var date = !value || moment$
|
|
3443
|
+
var date = !value || moment$2.isMoment(value) ? value : moment$2(value, DATE_ISO_PATTERN);
|
|
3445
3444
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
3446
3445
|
return { validDate: true };
|
|
3447
3446
|
}
|
|
@@ -4648,7 +4647,7 @@
|
|
|
4648
4647
|
};
|
|
4649
4648
|
return FormErrorTranslator;
|
|
4650
4649
|
}());
|
|
4651
|
-
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" });
|
|
4652
4651
|
FormErrorTranslator.decorators = [
|
|
4653
4652
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
4654
4653
|
];
|
|
@@ -4733,7 +4732,7 @@
|
|
|
4733
4732
|
};
|
|
4734
4733
|
return FormGetPipe;
|
|
4735
4734
|
}());
|
|
4736
|
-
FormGetPipe.ɵprov =
|
|
4735
|
+
FormGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetPipe_Factory() { return new FormGetPipe(); }, token: FormGetPipe, providedIn: "root" });
|
|
4737
4736
|
FormGetPipe.decorators = [
|
|
4738
4737
|
{ type: i0.Pipe, args: [{
|
|
4739
4738
|
name: 'formGet'
|
|
@@ -4748,7 +4747,7 @@
|
|
|
4748
4747
|
};
|
|
4749
4748
|
return FormGetControlPipe;
|
|
4750
4749
|
}());
|
|
4751
|
-
FormGetControlPipe.ɵprov =
|
|
4750
|
+
FormGetControlPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetControlPipe_Factory() { return new FormGetControlPipe(); }, token: FormGetControlPipe, providedIn: "root" });
|
|
4752
4751
|
FormGetControlPipe.decorators = [
|
|
4753
4752
|
{ type: i0.Pipe, args: [{
|
|
4754
4753
|
name: 'formGetControl'
|
|
@@ -4763,7 +4762,7 @@
|
|
|
4763
4762
|
};
|
|
4764
4763
|
return FormGetArrayPipe;
|
|
4765
4764
|
}());
|
|
4766
|
-
FormGetArrayPipe.ɵprov =
|
|
4765
|
+
FormGetArrayPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetArrayPipe_Factory() { return new FormGetArrayPipe(); }, token: FormGetArrayPipe, providedIn: "root" });
|
|
4767
4766
|
FormGetArrayPipe.decorators = [
|
|
4768
4767
|
{ type: i0.Pipe, args: [{
|
|
4769
4768
|
name: 'formGetArray'
|
|
@@ -4778,7 +4777,7 @@
|
|
|
4778
4777
|
};
|
|
4779
4778
|
return FormGetGroupPipe;
|
|
4780
4779
|
}());
|
|
4781
|
-
FormGetGroupPipe.ɵprov =
|
|
4780
|
+
FormGetGroupPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetGroupPipe_Factory() { return new FormGetGroupPipe(); }, token: FormGetGroupPipe, providedIn: "root" });
|
|
4782
4781
|
FormGetGroupPipe.decorators = [
|
|
4783
4782
|
{ type: i0.Pipe, args: [{
|
|
4784
4783
|
name: 'formGetGroup'
|
|
@@ -5124,9 +5123,9 @@
|
|
|
5124
5123
|
var hour = parseInt(durationParts[0] || '0');
|
|
5125
5124
|
var minute = parseInt(durationParts[1] || '0');
|
|
5126
5125
|
var value = hour + (minute + 0.5) / 60;
|
|
5127
|
-
return roundFloat(value, maxDecimals);
|
|
5126
|
+
return roundFloat$1(value, maxDecimals);
|
|
5128
5127
|
}
|
|
5129
|
-
function roundFloat(input, maxDecimals) {
|
|
5128
|
+
function roundFloat$1(input, maxDecimals) {
|
|
5130
5129
|
if (maxDecimals > 0) {
|
|
5131
5130
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
5132
5131
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -5150,17 +5149,17 @@
|
|
|
5150
5149
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
5151
5150
|
}
|
|
5152
5151
|
};
|
|
5153
|
-
var noop$
|
|
5152
|
+
var noop$1 = function () {
|
|
5154
5153
|
};
|
|
5155
|
-
var ɵ0$
|
|
5154
|
+
var ɵ0$2 = noop$1;
|
|
5156
5155
|
var MatLatLongField = /** @class */ (function () {
|
|
5157
5156
|
function MatLatLongField(translate, formBuilder, cd, formGroupDir) {
|
|
5158
5157
|
this.translate = translate;
|
|
5159
5158
|
this.formBuilder = formBuilder;
|
|
5160
5159
|
this.cd = cd;
|
|
5161
5160
|
this.formGroupDir = formGroupDir;
|
|
5162
|
-
this._onChangeCallback = noop$
|
|
5163
|
-
this._onTouchedCallback = noop$
|
|
5161
|
+
this._onChangeCallback = noop$1;
|
|
5162
|
+
this._onTouchedCallback = noop$1;
|
|
5164
5163
|
this._subscription = new rxjs.Subscription();
|
|
5165
5164
|
this.disabling = false;
|
|
5166
5165
|
this.writing = false;
|
|
@@ -5511,14 +5510,14 @@
|
|
|
5511
5510
|
},] }
|
|
5512
5511
|
];
|
|
5513
5512
|
|
|
5514
|
-
var DEFAULT_VALUE_ACCESSOR
|
|
5513
|
+
var DEFAULT_VALUE_ACCESSOR = {
|
|
5515
5514
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5516
5515
|
useExisting: i0.forwardRef(function () { return MatDate; }),
|
|
5517
5516
|
multi: true
|
|
5518
5517
|
};
|
|
5519
|
-
var
|
|
5520
|
-
var noop$
|
|
5521
|
-
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;
|
|
5522
5521
|
var MatDate = /** @class */ (function () {
|
|
5523
5522
|
function MatDate(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5524
5523
|
this.dateAdapter = dateAdapter;
|
|
@@ -5527,13 +5526,13 @@
|
|
|
5527
5526
|
this.cd = cd;
|
|
5528
5527
|
this.keyboard = keyboard;
|
|
5529
5528
|
this.formGroupDir = formGroupDir;
|
|
5530
|
-
this._onChangeCallback = noop$
|
|
5531
|
-
this._onTouchedCallback = noop$
|
|
5529
|
+
this._onChangeCallback = noop$2;
|
|
5530
|
+
this._onTouchedCallback = noop$2;
|
|
5532
5531
|
this._subscription = new rxjs.Subscription();
|
|
5533
5532
|
this._writing = true;
|
|
5534
5533
|
this._disabling = false;
|
|
5535
5534
|
this._readonly = false;
|
|
5536
|
-
this.
|
|
5535
|
+
this.mask = TEXT_MASK;
|
|
5537
5536
|
this.floatLabel = 'auto';
|
|
5538
5537
|
this.compact = false;
|
|
5539
5538
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -5592,22 +5591,24 @@
|
|
|
5592
5591
|
this.formControl.setValidators(this.required ? [this.formControl.validator, i1.Validators.required, SharedValidators.validDate] :
|
|
5593
5592
|
[this.formControl.validator, SharedValidators.validDate]);
|
|
5594
5593
|
}
|
|
5595
|
-
// Create the
|
|
5596
|
-
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; });
|
|
5597
5598
|
// Get patterns to display date
|
|
5598
5599
|
this.updatePattern(this.translate.instant('COMMON.DATE_PATTERN'));
|
|
5599
5600
|
this._subscription.add(this.translate.get('COMMON.DATE_PATTERN')
|
|
5600
5601
|
.subscribe(function (pattern) { return _this.updatePattern(pattern); }));
|
|
5601
|
-
this._subscription.add(this.
|
|
5602
|
+
this._subscription.add(this.textControl.valueChanges
|
|
5602
5603
|
.subscribe(function (value) { return _this.onFormChange(value); }));
|
|
5603
5604
|
// Listen status changes (when done outside the component - e.g. when setErrors() is calling on the formControl)
|
|
5604
5605
|
this._subscription.add(this.formControl.statusChanges
|
|
5605
5606
|
.pipe(operators.filter(function (_) { return !_this.readonly && !_this._writing && !_this._disabling; }) // Skip
|
|
5606
5607
|
)
|
|
5607
5608
|
.subscribe(function () {
|
|
5608
|
-
_this.
|
|
5609
|
-
if (_this.formControl.touched && !_this.
|
|
5610
|
-
_this.
|
|
5609
|
+
_this.textControl.updateValueAndValidity({ emitEvent: false });
|
|
5610
|
+
if (_this.formControl.touched && !_this.textControl.touched) {
|
|
5611
|
+
_this.textControl.markAsTouched();
|
|
5611
5612
|
}
|
|
5612
5613
|
_this.markForCheck();
|
|
5613
5614
|
}));
|
|
@@ -5623,27 +5624,25 @@
|
|
|
5623
5624
|
this._writing = true;
|
|
5624
5625
|
// DEBUG
|
|
5625
5626
|
//console.debug("[mat-date] writeValue() with:", value);
|
|
5626
|
-
// Convert into date
|
|
5627
|
+
// Convert into date
|
|
5628
|
+
// Important: do a clone()
|
|
5627
5629
|
var date = momentImported.isMoment(value) ? value.clone() : fromDateISOString(value);
|
|
5628
5630
|
if (!date || !date.isValid()) {
|
|
5629
|
-
this.
|
|
5631
|
+
this.textControl.patchValue(null, { emitEvent: false });
|
|
5630
5632
|
if (this.formControl.value) {
|
|
5631
5633
|
this.formControl.patchValue(null, { emitEvent: false });
|
|
5632
5634
|
this._onChangeCallback(null);
|
|
5633
5635
|
}
|
|
5634
5636
|
}
|
|
5635
5637
|
else {
|
|
5636
|
-
//
|
|
5637
|
-
|
|
5638
|
-
//
|
|
5639
|
-
|
|
5640
|
-
|
|
5641
|
-
|
|
5642
|
-
|
|
5643
|
-
|
|
5644
|
-
if (this.dayControl.value !== dayStr) {
|
|
5645
|
-
// Update control
|
|
5646
|
-
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 });
|
|
5647
5646
|
}
|
|
5648
5647
|
}
|
|
5649
5648
|
this._writing = false;
|
|
@@ -5660,10 +5659,10 @@
|
|
|
5660
5659
|
return;
|
|
5661
5660
|
this._disabling = true;
|
|
5662
5661
|
if (isDisabled) {
|
|
5663
|
-
this.
|
|
5662
|
+
this.textControl.disable({ emitEvent: false });
|
|
5664
5663
|
}
|
|
5665
5664
|
else {
|
|
5666
|
-
this.
|
|
5665
|
+
this.textControl.enable({ emitEvent: false });
|
|
5667
5666
|
}
|
|
5668
5667
|
this._disabling = false;
|
|
5669
5668
|
this.markForCheck();
|
|
@@ -5680,12 +5679,12 @@
|
|
|
5680
5679
|
.locale(this.locale) // set as time as locale time
|
|
5681
5680
|
.minute(0).seconds(0).millisecond(0) // Reset hour
|
|
5682
5681
|
.utc(true);
|
|
5683
|
-
dateStr = this.dateAdapter.format(date, this.
|
|
5682
|
+
dateStr = this.dateAdapter.format(date, this.datePattern) || null;
|
|
5684
5683
|
}
|
|
5685
|
-
if (this.
|
|
5684
|
+
if (this.textControl.value !== dateStr) {
|
|
5686
5685
|
// DEBUG
|
|
5687
5686
|
//console.debug("[mat-date] onDatePickerChange() new value:", dateStr);
|
|
5688
|
-
this.
|
|
5687
|
+
this.textControl.setValue(dateStr, {
|
|
5689
5688
|
emitEvent: true // Will call onFormChange
|
|
5690
5689
|
});
|
|
5691
5690
|
}
|
|
@@ -5740,7 +5739,7 @@
|
|
|
5740
5739
|
});
|
|
5741
5740
|
};
|
|
5742
5741
|
MatDate.prototype.clear = function () {
|
|
5743
|
-
this.
|
|
5742
|
+
this.textControl.patchValue(null, { emitEvent: false });
|
|
5744
5743
|
this.formControl.setValue(null, { emitEvent: false });
|
|
5745
5744
|
this._onChangeCallback(null);
|
|
5746
5745
|
this.markAsTouched();
|
|
@@ -5749,43 +5748,70 @@
|
|
|
5749
5748
|
/* -- private method -- */
|
|
5750
5749
|
MatDate.prototype.updatePattern = function (pattern) {
|
|
5751
5750
|
pattern = pattern !== 'COMMON.DATE_PATTERN' ? pattern : 'L';
|
|
5752
|
-
if (this.
|
|
5753
|
-
this.
|
|
5754
|
-
this.dayPattern = pattern;
|
|
5751
|
+
if (this.datePattern !== pattern) {
|
|
5752
|
+
this.datePattern = pattern;
|
|
5755
5753
|
this.markForCheck();
|
|
5756
5754
|
}
|
|
5757
5755
|
};
|
|
5758
5756
|
MatDate.prototype.checkIfTouched = function (opts) {
|
|
5759
|
-
if (this.
|
|
5757
|
+
if (this.textControl.touched) {
|
|
5760
5758
|
this._onTouchedCallback();
|
|
5761
5759
|
if (!opts || opts.emitEvent !== false) {
|
|
5762
5760
|
this.markForCheck();
|
|
5763
5761
|
}
|
|
5764
5762
|
}
|
|
5765
5763
|
};
|
|
5766
|
-
MatDate.prototype.onFormChange = function (
|
|
5764
|
+
MatDate.prototype.onFormChange = function (value) {
|
|
5767
5765
|
if (this._writing)
|
|
5768
5766
|
return; // Skip if call by self
|
|
5769
5767
|
this._writing = true;
|
|
5770
|
-
|
|
5771
|
-
|
|
5772
|
-
|
|
5773
|
-
|
|
5774
|
-
|
|
5775
|
-
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
|
|
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');
|
|
5780
5789
|
}
|
|
5781
|
-
// Parse
|
|
5782
|
-
var
|
|
5790
|
+
// Parse date (strict = false)
|
|
5791
|
+
var date = isNotNilOrBlank(value) && this.dateAdapter.parse(value, this.datePattern) || null;
|
|
5783
5792
|
// Move to the expected TZ, and keep the local hour (= midnight) to have midnight at local time
|
|
5784
|
-
|
|
5785
|
-
|
|
5793
|
+
date = date && (this.timezone ? date.tz(this.timezone, true) : date) || null;
|
|
5794
|
+
date = date && date
|
|
5786
5795
|
.startOf('day') // Reset hour
|
|
5787
|
-
.utc()
|
|
5788
|
-
|
|
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();
|
|
5789
5815
|
this._writing = false;
|
|
5790
5816
|
};
|
|
5791
5817
|
MatDate.prototype.waitKeyboardHide = function (waitKeyboardDelay) {
|
|
@@ -5812,21 +5838,6 @@
|
|
|
5812
5838
|
});
|
|
5813
5839
|
});
|
|
5814
5840
|
};
|
|
5815
|
-
MatDate.prototype.emitChange = function (value) {
|
|
5816
|
-
// Get the model value
|
|
5817
|
-
var dateStr = toDateISOString(value) || null;
|
|
5818
|
-
if (this.formControl.value !== dateStr) {
|
|
5819
|
-
// DEBUG
|
|
5820
|
-
//console.debug('[mat-date] Emit new value: ' + dateStr);
|
|
5821
|
-
// Apply to form control. => Will call writeValue()
|
|
5822
|
-
// NOT NEED, because a formControl should NOT be used by multiple fields
|
|
5823
|
-
//this.formControl.setValue(dateStr, {emitEvent: false})
|
|
5824
|
-
// Changes comes from inside function: use the callback
|
|
5825
|
-
this._onChangeCallback(dateStr);
|
|
5826
|
-
// Check if need to update controls
|
|
5827
|
-
this.checkIfTouched();
|
|
5828
|
-
}
|
|
5829
|
-
};
|
|
5830
5841
|
MatDate.prototype.updateTabIndex = function () {
|
|
5831
5842
|
var _this = this;
|
|
5832
5843
|
if (isNil(this._tabindex) || this._tabindex === -1)
|
|
@@ -5840,7 +5851,7 @@
|
|
|
5840
5851
|
});
|
|
5841
5852
|
};
|
|
5842
5853
|
MatDate.prototype.markAsTouched = function (opts) {
|
|
5843
|
-
this.
|
|
5854
|
+
this.textControl.markAsTouched(opts);
|
|
5844
5855
|
this._onTouchedCallback();
|
|
5845
5856
|
this.markForCheck();
|
|
5846
5857
|
};
|
|
@@ -5855,16 +5866,16 @@
|
|
|
5855
5866
|
MatDate.decorators = [
|
|
5856
5867
|
{ type: i0.Component, args: [{
|
|
5857
5868
|
selector: 'mat-date-field',
|
|
5858
|
-
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",
|
|
5859
5870
|
providers: [
|
|
5860
|
-
DEFAULT_VALUE_ACCESSOR
|
|
5871
|
+
DEFAULT_VALUE_ACCESSOR,
|
|
5861
5872
|
],
|
|
5862
5873
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
5863
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%}"]
|
|
5864
5875
|
},] }
|
|
5865
5876
|
];
|
|
5866
5877
|
MatDate.ctorParameters = function () { return [
|
|
5867
|
-
{ type: i1$
|
|
5878
|
+
{ type: i1$1.MomentDateAdapter },
|
|
5868
5879
|
{ type: i1$2.TranslateService },
|
|
5869
5880
|
{ type: i1.FormBuilder },
|
|
5870
5881
|
{ type: i0.ChangeDetectorRef },
|
|
@@ -5891,16 +5902,16 @@
|
|
|
5891
5902
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
5892
5903
|
};
|
|
5893
5904
|
|
|
5894
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
5905
|
+
var DEFAULT_VALUE_ACCESSOR$1 = {
|
|
5895
5906
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5896
5907
|
useExisting: i0.forwardRef(function () { return MatDateTime; }),
|
|
5897
5908
|
multi: true
|
|
5898
5909
|
};
|
|
5899
|
-
var DAY_MASK
|
|
5910
|
+
var DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5900
5911
|
var HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
5901
|
-
var HOUR_MASK
|
|
5902
|
-
var noop$
|
|
5903
|
-
var ɵ0$
|
|
5912
|
+
var HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
5913
|
+
var noop$3 = function () { };
|
|
5914
|
+
var ɵ0$4 = noop$3;
|
|
5904
5915
|
var MatDateTime = /** @class */ (function () {
|
|
5905
5916
|
function MatDateTime(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5906
5917
|
this.dateAdapter = dateAdapter;
|
|
@@ -5909,14 +5920,14 @@
|
|
|
5909
5920
|
this.cd = cd;
|
|
5910
5921
|
this.keyboard = keyboard;
|
|
5911
5922
|
this.formGroupDir = formGroupDir;
|
|
5912
|
-
this._onChangeCallback = noop$
|
|
5913
|
-
this._onTouchedCallback = noop$
|
|
5923
|
+
this._onChangeCallback = noop$3;
|
|
5924
|
+
this._onTouchedCallback = noop$3;
|
|
5914
5925
|
this._subscription = new rxjs.Subscription();
|
|
5915
5926
|
this._writing = true;
|
|
5916
5927
|
this._disabling = false;
|
|
5917
5928
|
this._readonly = false;
|
|
5918
|
-
this.dayMask = DAY_MASK
|
|
5919
|
-
this.hourMask = HOUR_MASK
|
|
5929
|
+
this.dayMask = DAY_MASK;
|
|
5930
|
+
this.hourMask = HOUR_MASK;
|
|
5920
5931
|
this.floatLabel = 'auto';
|
|
5921
5932
|
this.compact = false;
|
|
5922
5933
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -6275,14 +6286,14 @@
|
|
|
6275
6286
|
selector: 'mat-date-time-field',
|
|
6276
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",
|
|
6277
6288
|
providers: [
|
|
6278
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6289
|
+
DEFAULT_VALUE_ACCESSOR$1,
|
|
6279
6290
|
],
|
|
6280
6291
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6281
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%}"]
|
|
6282
6293
|
},] }
|
|
6283
6294
|
];
|
|
6284
6295
|
MatDateTime.ctorParameters = function () { return [
|
|
6285
|
-
{ type: i1$
|
|
6296
|
+
{ type: i1$1.MomentDateAdapter },
|
|
6286
6297
|
{ type: i1$2.TranslateService },
|
|
6287
6298
|
{ type: i1.FormBuilder },
|
|
6288
6299
|
{ type: i0.ChangeDetectorRef },
|
|
@@ -6309,15 +6320,15 @@
|
|
|
6309
6320
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
6310
6321
|
};
|
|
6311
6322
|
|
|
6312
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6323
|
+
var DEFAULT_VALUE_ACCESSOR$2 = {
|
|
6313
6324
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6314
6325
|
useExisting: i0.forwardRef(function () { return MatDateShort; }),
|
|
6315
6326
|
multi: true
|
|
6316
6327
|
};
|
|
6317
|
-
var DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
6328
|
+
var DAY_MASK$1 = [/\d/, /\d/, /\d/, /\d/];
|
|
6318
6329
|
var noop$4 = function () {
|
|
6319
6330
|
};
|
|
6320
|
-
var ɵ0$
|
|
6331
|
+
var ɵ0$5 = noop$4;
|
|
6321
6332
|
var MatDateShort = /** @class */ (function () {
|
|
6322
6333
|
function MatDateShort(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
6323
6334
|
this.dateAdapter = dateAdapter;
|
|
@@ -6330,7 +6341,7 @@
|
|
|
6330
6341
|
this._onTouchedCallback = noop$4;
|
|
6331
6342
|
this.writing = true;
|
|
6332
6343
|
this.disabling = false;
|
|
6333
|
-
this.dayMask = DAY_MASK;
|
|
6344
|
+
this.dayMask = DAY_MASK$1;
|
|
6334
6345
|
this.disabled = false;
|
|
6335
6346
|
this.floatLabel = 'auto';
|
|
6336
6347
|
this.readonly = false;
|
|
@@ -6607,7 +6618,7 @@
|
|
|
6607
6618
|
selector: 'mat-date-short-field',
|
|
6608
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",
|
|
6609
6620
|
providers: [
|
|
6610
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6621
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
6611
6622
|
],
|
|
6612
6623
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6613
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%}"]
|
|
@@ -6678,16 +6689,16 @@
|
|
|
6678
6689
|
},] }
|
|
6679
6690
|
];
|
|
6680
6691
|
|
|
6681
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6692
|
+
var DEFAULT_VALUE_ACCESSOR$3 = {
|
|
6682
6693
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6683
6694
|
useExisting: i0.forwardRef(function () { return MatDuration; }),
|
|
6684
6695
|
multi: true
|
|
6685
6696
|
};
|
|
6686
6697
|
var HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
6687
|
-
var HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
6688
|
-
var noop$
|
|
6698
|
+
var HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
6699
|
+
var noop$5 = function () {
|
|
6689
6700
|
};
|
|
6690
|
-
var ɵ0$6 = noop$
|
|
6701
|
+
var ɵ0$6 = noop$5;
|
|
6691
6702
|
var MatDuration = /** @class */ (function () {
|
|
6692
6703
|
function MatDuration(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
6693
6704
|
this.dateAdapter = dateAdapter;
|
|
@@ -6696,11 +6707,11 @@
|
|
|
6696
6707
|
this.cd = cd;
|
|
6697
6708
|
this.formGroupDir = formGroupDir;
|
|
6698
6709
|
this._subscription = new rxjs.Subscription();
|
|
6699
|
-
this._onChangeCallback = noop$
|
|
6700
|
-
this._onTouchedCallback = noop$
|
|
6710
|
+
this._onChangeCallback = noop$5;
|
|
6711
|
+
this._onTouchedCallback = noop$5;
|
|
6701
6712
|
this.writing = true;
|
|
6702
6713
|
this.disabling = false;
|
|
6703
|
-
this.hourMask = HOUR_MASK;
|
|
6714
|
+
this.hourMask = HOUR_MASK$1;
|
|
6704
6715
|
this.disabled = false;
|
|
6705
6716
|
this.floatLabel = 'auto';
|
|
6706
6717
|
this.readonly = false;
|
|
@@ -6893,7 +6904,7 @@
|
|
|
6893
6904
|
selector: 'mat-duration-field',
|
|
6894
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",
|
|
6895
6906
|
providers: [
|
|
6896
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6907
|
+
DEFAULT_VALUE_ACCESSOR$3,
|
|
6897
6908
|
],
|
|
6898
6909
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6899
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%}"]
|
|
@@ -6953,22 +6964,22 @@
|
|
|
6953
6964
|
},] }
|
|
6954
6965
|
];
|
|
6955
6966
|
|
|
6956
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6967
|
+
var DEFAULT_VALUE_ACCESSOR$4 = {
|
|
6957
6968
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6958
6969
|
useExisting: i0.forwardRef(function () { return MatBooleanField; }),
|
|
6959
6970
|
multi: true
|
|
6960
6971
|
};
|
|
6961
|
-
var noop$
|
|
6972
|
+
var noop$6 = function () {
|
|
6962
6973
|
};
|
|
6963
|
-
var ɵ0$
|
|
6974
|
+
var ɵ0$7 = noop$6;
|
|
6964
6975
|
var MatBooleanField = /** @class */ (function () {
|
|
6965
6976
|
function MatBooleanField(translate, formBuilder, cd, formGroupDir) {
|
|
6966
6977
|
this.translate = translate;
|
|
6967
6978
|
this.formBuilder = formBuilder;
|
|
6968
6979
|
this.cd = cd;
|
|
6969
6980
|
this.formGroupDir = formGroupDir;
|
|
6970
|
-
this._onChangeCallback = noop$
|
|
6971
|
-
this._onTouchedCallback = noop$
|
|
6981
|
+
this._onChangeCallback = noop$6;
|
|
6982
|
+
this._onTouchedCallback = noop$6;
|
|
6972
6983
|
this._writing = false;
|
|
6973
6984
|
this.showRadio = false;
|
|
6974
6985
|
this.disabled = false;
|
|
@@ -7143,7 +7154,7 @@
|
|
|
7143
7154
|
selector: 'mat-boolean-field',
|
|
7144
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",
|
|
7145
7156
|
providers: [
|
|
7146
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
7157
|
+
DEFAULT_VALUE_ACCESSOR$4
|
|
7147
7158
|
],
|
|
7148
7159
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7149
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}"]
|
|
@@ -7230,7 +7241,6 @@
|
|
|
7230
7241
|
return MatNumpadEvent;
|
|
7231
7242
|
}(KeyboardEvent));
|
|
7232
7243
|
|
|
7233
|
-
exports.AnimationState = void 0;
|
|
7234
7244
|
(function (AnimationState) {
|
|
7235
7245
|
AnimationState["ENTER"] = "enter";
|
|
7236
7246
|
AnimationState["ENTER_INPUT"] = "enter-input";
|
|
@@ -7398,7 +7408,7 @@
|
|
|
7398
7408
|
};
|
|
7399
7409
|
return MatNumpadDomService;
|
|
7400
7410
|
}());
|
|
7401
|
-
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" });
|
|
7402
7412
|
MatNumpadDomService.decorators = [
|
|
7403
7413
|
{ type: i0.Injectable, args: [{
|
|
7404
7414
|
providedIn: 'root'
|
|
@@ -7804,7 +7814,7 @@
|
|
|
7804
7814
|
},] }
|
|
7805
7815
|
];
|
|
7806
7816
|
|
|
7807
|
-
var DEFAULT_VALUE_ACCESSOR = {
|
|
7817
|
+
var DEFAULT_VALUE_ACCESSOR$5 = {
|
|
7808
7818
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
7809
7819
|
useExisting: i0.forwardRef(function () { return MatSwipeField; }),
|
|
7810
7820
|
multi: true
|
|
@@ -8124,7 +8134,7 @@
|
|
|
8124
8134
|
{ type: i0.Component, args: [{
|
|
8125
8135
|
selector: 'mat-swipe-field',
|
|
8126
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",
|
|
8127
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
8137
|
+
providers: [DEFAULT_VALUE_ACCESSOR$5],
|
|
8128
8138
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
8129
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}"]
|
|
8130
8140
|
},] }
|
|
@@ -8185,14 +8195,14 @@
|
|
|
8185
8195
|
},] }
|
|
8186
8196
|
];
|
|
8187
8197
|
|
|
8188
|
-
var noop$
|
|
8189
|
-
var ɵ0$
|
|
8198
|
+
var noop$7 = function () { };
|
|
8199
|
+
var ɵ0$8 = noop$7;
|
|
8190
8200
|
var MatChipsField = /** @class */ (function () {
|
|
8191
8201
|
function MatChipsField(cd, formGroupDir) {
|
|
8192
8202
|
this.cd = cd;
|
|
8193
8203
|
this.formGroupDir = formGroupDir;
|
|
8194
|
-
this._onChangeCallback = noop$
|
|
8195
|
-
this._onTouchedCallback = noop$
|
|
8204
|
+
this._onChangeCallback = noop$7;
|
|
8205
|
+
this._onTouchedCallback = noop$7;
|
|
8196
8206
|
this.logPrefix = '[mat-chips] ';
|
|
8197
8207
|
this.formControlName = null;
|
|
8198
8208
|
this.required = false;
|
|
@@ -9163,7 +9173,7 @@
|
|
|
9163
9173
|
};
|
|
9164
9174
|
return ProgressBarService;
|
|
9165
9175
|
}());
|
|
9166
|
-
ProgressBarService.ɵprov =
|
|
9176
|
+
ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
9167
9177
|
ProgressBarService.decorators = [
|
|
9168
9178
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9169
9179
|
];
|
|
@@ -9210,7 +9220,7 @@
|
|
|
9210
9220
|
};
|
|
9211
9221
|
return AppGestureConfig;
|
|
9212
9222
|
}(i1$6.HammerGestureConfig));
|
|
9213
|
-
AppGestureConfig.ɵprov =
|
|
9223
|
+
AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
9214
9224
|
AppGestureConfig.decorators = [
|
|
9215
9225
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9216
9226
|
];
|
|
@@ -9477,7 +9487,7 @@
|
|
|
9477
9487
|
};
|
|
9478
9488
|
return MatPaginatorI18n;
|
|
9479
9489
|
}(paginator.MatPaginatorIntl));
|
|
9480
|
-
MatPaginatorI18n.ɵprov =
|
|
9490
|
+
MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
9481
9491
|
MatPaginatorI18n.decorators = [
|
|
9482
9492
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9483
9493
|
];
|
|
@@ -9569,17 +9579,17 @@
|
|
|
9569
9579
|
return rgbArrayToHex(rgb.map(function (v) { return 255 - v; }));
|
|
9570
9580
|
}
|
|
9571
9581
|
|
|
9572
|
-
var noop = function () {
|
|
9582
|
+
var noop$8 = function () {
|
|
9573
9583
|
};
|
|
9574
|
-
var ɵ0$
|
|
9584
|
+
var ɵ0$9 = noop$8;
|
|
9575
9585
|
var AppFormField = /** @class */ (function () {
|
|
9576
9586
|
function AppFormField(translate, cd, injector, formGroupDir) {
|
|
9577
9587
|
this.translate = translate;
|
|
9578
9588
|
this.cd = cd;
|
|
9579
9589
|
this.injector = injector;
|
|
9580
9590
|
this.formGroupDir = formGroupDir;
|
|
9581
|
-
this._onChangeCallback = noop;
|
|
9582
|
-
this._onTouchedCallback = noop;
|
|
9591
|
+
this._onChangeCallback = noop$8;
|
|
9592
|
+
this._onTouchedCallback = noop$8;
|
|
9583
9593
|
this.readonly = false;
|
|
9584
9594
|
this.compact = false;
|
|
9585
9595
|
this.floatLabel = 'auto';
|
|
@@ -10137,7 +10147,7 @@
|
|
|
10137
10147
|
};
|
|
10138
10148
|
return AudioProvider;
|
|
10139
10149
|
}(StartableService));
|
|
10140
|
-
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" });
|
|
10141
10151
|
AudioProvider.decorators = [
|
|
10142
10152
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
10143
10153
|
];
|
|
@@ -10247,7 +10257,7 @@
|
|
|
10247
10257
|
};
|
|
10248
10258
|
return Hotkeys;
|
|
10249
10259
|
}());
|
|
10250
|
-
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" });
|
|
10251
10261
|
Hotkeys.decorators = [
|
|
10252
10262
|
{ type: i0.Injectable, args: [{
|
|
10253
10263
|
providedIn: 'root'
|
|
@@ -10452,7 +10462,7 @@
|
|
|
10452
10462
|
return Base64ImageReader;
|
|
10453
10463
|
}());
|
|
10454
10464
|
|
|
10455
|
-
var uuidv4
|
|
10465
|
+
var uuidv4 = uuidv4Imported__namespace;
|
|
10456
10466
|
var FileService = /** @class */ (function () {
|
|
10457
10467
|
function FileService(platform,
|
|
10458
10468
|
//private transfer: FileTransfer,
|
|
@@ -10498,7 +10508,7 @@
|
|
|
10498
10508
|
lastSlashIndex = source.lastIndexOf('/');
|
|
10499
10509
|
if (lastSlashIndex === -1)
|
|
10500
10510
|
throw new Error('Invalid URL: ' + source);
|
|
10501
|
-
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4
|
|
10511
|
+
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
10502
10512
|
if (!(responseType === 'file' && this.canUseFileSystem)) return [3 /*break*/, 4];
|
|
10503
10513
|
console.warn("WARN: [file] Fetching image {" + source + "} in local file...");
|
|
10504
10514
|
targetFilePath = this._imageDirectory + fileName;
|
|
@@ -10561,7 +10571,7 @@
|
|
|
10561
10571
|
};
|
|
10562
10572
|
return FileService;
|
|
10563
10573
|
}());
|
|
10564
|
-
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" });
|
|
10565
10575
|
FileService.decorators = [
|
|
10566
10576
|
{ type: i0.Injectable, args: [{
|
|
10567
10577
|
providedIn: 'root',
|
|
@@ -10728,7 +10738,7 @@
|
|
|
10728
10738
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
10729
10739
|
|
|
10730
10740
|
var scrypt = require('scrypt-async');
|
|
10731
|
-
var sha256
|
|
10741
|
+
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
10732
10742
|
var sha512 = require('hash.js/lib/hash/sha/512');
|
|
10733
10743
|
var nacl = {
|
|
10734
10744
|
sign: tweetnacl.sign,
|
|
@@ -10834,7 +10844,7 @@
|
|
|
10834
10844
|
* Hash (using SHA256) a message
|
|
10835
10845
|
*/
|
|
10836
10846
|
CryptoService.prototype.sha256 = function (message) {
|
|
10837
|
-
return sha256
|
|
10847
|
+
return sha256().update(message).digest('hex');
|
|
10838
10848
|
};
|
|
10839
10849
|
/**
|
|
10840
10850
|
* Hash (using SHA512) a message
|
|
@@ -10848,7 +10858,7 @@
|
|
|
10848
10858
|
};
|
|
10849
10859
|
return CryptoService;
|
|
10850
10860
|
}());
|
|
10851
|
-
CryptoService.ɵprov =
|
|
10861
|
+
CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
10852
10862
|
CryptoService.decorators = [
|
|
10853
10863
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
10854
10864
|
];
|
|
@@ -11718,7 +11728,7 @@
|
|
|
11718
11728
|
onRefresh: [{ type: i0.Input }]
|
|
11719
11729
|
};
|
|
11720
11730
|
|
|
11721
|
-
var moment$
|
|
11731
|
+
var moment$3 = momentImported__namespace;
|
|
11722
11732
|
var SETTINGS_STORAGE_KEY = 'settings';
|
|
11723
11733
|
var SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
|
|
11724
11734
|
// fixme: this constant points to static environment
|
|
@@ -12020,11 +12030,11 @@
|
|
|
12020
12030
|
if (!feature) {
|
|
12021
12031
|
feature = {
|
|
12022
12032
|
name: featureName.toLowerCase(),
|
|
12023
|
-
lastSyncDate: moment$
|
|
12033
|
+
lastSyncDate: moment$3().toISOString()
|
|
12024
12034
|
};
|
|
12025
12035
|
}
|
|
12026
12036
|
else {
|
|
12027
|
-
feature.lastSyncDate = moment$
|
|
12037
|
+
feature.lastSyncDate = moment$3().toISOString();
|
|
12028
12038
|
}
|
|
12029
12039
|
this.saveOfflineFeature(feature);
|
|
12030
12040
|
};
|
|
@@ -12218,7 +12228,7 @@
|
|
|
12218
12228
|
if (!page || !page.title || !page.path)
|
|
12219
12229
|
throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
|
|
12220
12230
|
// Set time
|
|
12221
|
-
page.time = page.time || moment$
|
|
12231
|
+
page.time = page.time || moment$3();
|
|
12222
12232
|
// Clean the title (remove <small> tags)
|
|
12223
12233
|
if (!opts || opts.removeTitleSmallTag !== false) {
|
|
12224
12234
|
var tagIndex = page.title.indexOf('</small>');
|
|
@@ -12235,18 +12245,18 @@
|
|
|
12235
12245
|
};
|
|
12236
12246
|
return LocalSettingsService;
|
|
12237
12247
|
}(StartableService));
|
|
12238
|
-
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" });
|
|
12239
12249
|
LocalSettingsService.decorators = [
|
|
12240
12250
|
{ type: i0.Injectable, args: [{
|
|
12241
|
-
providedIn: 'root'
|
|
12242
|
-
deps: [APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS]
|
|
12251
|
+
providedIn: 'root'
|
|
12252
|
+
//deps: [APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS]
|
|
12243
12253
|
},] }
|
|
12244
12254
|
];
|
|
12245
12255
|
LocalSettingsService.ctorParameters = function () { return [
|
|
12246
12256
|
{ type: i1$2.TranslateService },
|
|
12247
12257
|
{ type: i1$5.Platform },
|
|
12248
12258
|
{ type: i3$2.Storage },
|
|
12249
|
-
{ type:
|
|
12259
|
+
{ type: Environment, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
|
|
12250
12260
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_LOCAL_SETTINGS,] }] },
|
|
12251
12261
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_LOCAL_SETTINGS_OPTIONS,] }] }
|
|
12252
12262
|
]; };
|
|
@@ -13116,7 +13126,7 @@
|
|
|
13116
13126
|
};
|
|
13117
13127
|
return NetworkService;
|
|
13118
13128
|
}(StartableService));
|
|
13119
|
-
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" });
|
|
13120
13130
|
NetworkService.decorators = [
|
|
13121
13131
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
13122
13132
|
];
|
|
@@ -13136,7 +13146,7 @@
|
|
|
13136
13146
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] }
|
|
13137
13147
|
]; };
|
|
13138
13148
|
|
|
13139
|
-
var ErrorCodes
|
|
13149
|
+
var ErrorCodes = {
|
|
13140
13150
|
UNKNOWN_ERROR: 0,
|
|
13141
13151
|
LOAD_ACCOUNT_ERROR: 1,
|
|
13142
13152
|
BAD_PASSWORD: 2,
|
|
@@ -13553,7 +13563,7 @@
|
|
|
13553
13563
|
case 13:
|
|
13554
13564
|
err_1 = _b.sent();
|
|
13555
13565
|
console.error(err_1);
|
|
13556
|
-
throw { code: ErrorCodes
|
|
13566
|
+
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
|
|
13557
13567
|
case 14:
|
|
13558
13568
|
// Emit update event
|
|
13559
13569
|
if (!opts || opts.emitEvent !== false) {
|
|
@@ -14330,7 +14340,7 @@
|
|
|
14330
14340
|
}(StartableService));
|
|
14331
14341
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
14332
14342
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
14333
|
-
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" });
|
|
14334
14344
|
EntitiesStorage.decorators = [
|
|
14335
14345
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
14336
14346
|
];
|
|
@@ -14486,10 +14496,10 @@
|
|
|
14486
14496
|
function referentialsToString(values, properties, separator) {
|
|
14487
14497
|
return (values || []).map(function (v) { return referentialToString(v, properties); }).join(separator || ', ');
|
|
14488
14498
|
}
|
|
14489
|
-
var ɵ0$
|
|
14499
|
+
var ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
14490
14500
|
var StatusList = Object.freeze([
|
|
14491
14501
|
{
|
|
14492
|
-
id: ɵ0$
|
|
14502
|
+
id: ɵ0$a,
|
|
14493
14503
|
icon: 'checkmark',
|
|
14494
14504
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
14495
14505
|
},
|
|
@@ -14792,7 +14802,7 @@
|
|
|
14792
14802
|
(data.lastName || '')) || '';
|
|
14793
14803
|
}
|
|
14794
14804
|
|
|
14795
|
-
var uuidv4 = uuidv4Imported__namespace;
|
|
14805
|
+
var uuidv4$1 = uuidv4Imported__namespace;
|
|
14796
14806
|
var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
14797
14807
|
var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
14798
14808
|
/**
|
|
@@ -14836,7 +14846,7 @@
|
|
|
14836
14846
|
// Skip if not tracked
|
|
14837
14847
|
if (!context || !context.tracked)
|
|
14838
14848
|
return forward(operation);
|
|
14839
|
-
var id = context.serializationKey || uuidv4();
|
|
14849
|
+
var id = context.serializationKey || uuidv4$1();
|
|
14840
14850
|
console.debug("[apollo-tracker-link] Watching tracked query {" + operation.operationName + "#" + id + "}");
|
|
14841
14851
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
14842
14852
|
var cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -15467,14 +15477,14 @@
|
|
|
15467
15477
|
mutationLinks = void 0;
|
|
15468
15478
|
// Add queue to store tracked queries, when offline
|
|
15469
15479
|
if (enableTrackMutationQueries) {
|
|
15470
|
-
serializingLink = new SerializingLink__default[
|
|
15480
|
+
serializingLink = new SerializingLink__default['default']();
|
|
15471
15481
|
trackerLink = createTrackerLink({
|
|
15472
15482
|
storage: storage,
|
|
15473
15483
|
onNetworkStatusChange: this._networkStatusChanged$,
|
|
15474
15484
|
debounce: 1000,
|
|
15475
15485
|
debug: true
|
|
15476
15486
|
});
|
|
15477
|
-
queueLink_1 = new QueueLink__default[
|
|
15487
|
+
queueLink_1 = new QueueLink__default['default']();
|
|
15478
15488
|
this.registerSubscription(this._networkStatusChanged$
|
|
15479
15489
|
.subscribe(function (type) {
|
|
15480
15490
|
// Network is offline: start buffering into queue
|
|
@@ -15489,7 +15499,7 @@
|
|
|
15489
15499
|
}
|
|
15490
15500
|
}));
|
|
15491
15501
|
mutationLinks = [
|
|
15492
|
-
loggerLink__default[
|
|
15502
|
+
loggerLink__default['default'],
|
|
15493
15503
|
queueLink_1,
|
|
15494
15504
|
trackerLink,
|
|
15495
15505
|
queueLink_1,
|
|
@@ -15596,7 +15606,7 @@
|
|
|
15596
15606
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
15597
15607
|
|| this.toAppError(err.networkError)
|
|
15598
15608
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
15599
|
-
|| this.createAppErrorByCode(ErrorCodes
|
|
15609
|
+
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
15600
15610
|
// If graphQL: try to convert the first error found
|
|
15601
15611
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
15602
15612
|
|| this.toAppError(err)
|
|
@@ -15604,7 +15614,7 @@
|
|
|
15604
15614
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
15605
15615
|
|| err;
|
|
15606
15616
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
15607
|
-
if (error && error.code === ErrorCodes
|
|
15617
|
+
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
15608
15618
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
15609
15619
|
this.onNetworkError.next(error);
|
|
15610
15620
|
}
|
|
@@ -15640,7 +15650,7 @@
|
|
|
15640
15650
|
return 'ERROR.UNAUTHORIZED';
|
|
15641
15651
|
case ServerErrorCodes.FORBIDDEN:
|
|
15642
15652
|
return 'ERROR.FORBIDDEN';
|
|
15643
|
-
case ErrorCodes
|
|
15653
|
+
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
15644
15654
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
15645
15655
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
15646
15656
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -15672,7 +15682,7 @@
|
|
|
15672
15682
|
};
|
|
15673
15683
|
return GraphqlService;
|
|
15674
15684
|
}(StartableService));
|
|
15675
|
-
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" });
|
|
15676
15686
|
GraphqlService.decorators = [
|
|
15677
15687
|
{ type: i0.Injectable, args: [{
|
|
15678
15688
|
providedIn: 'root'
|
|
@@ -15689,7 +15699,7 @@
|
|
|
15689
15699
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
15690
15700
|
]; };
|
|
15691
15701
|
|
|
15692
|
-
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
15702
|
+
var sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
15693
15703
|
var BaseGraphqlServiceOptions = /** @class */ (function () {
|
|
15694
15704
|
function BaseGraphqlServiceOptions() {
|
|
15695
15705
|
}
|
|
@@ -15859,8 +15869,8 @@
|
|
|
15859
15869
|
};
|
|
15860
15870
|
/* -- protected methods -- */
|
|
15861
15871
|
BaseGraphqlService.prototype.computeMutableWatchQueryId = function (opts) {
|
|
15862
|
-
var queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
15863
|
-
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) || '';
|
|
15864
15874
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
15865
15875
|
};
|
|
15866
15876
|
BaseGraphqlService.prototype.findMutableWatchQueries = function (opts) {
|
|
@@ -15933,19 +15943,19 @@
|
|
|
15933
15943
|
/* ------------------------------------
|
|
15934
15944
|
* GraphQL queries
|
|
15935
15945
|
* ------------------------------------*/
|
|
15936
|
-
var Fragments
|
|
15937
|
-
account: core.gql(templateObject_1
|
|
15938
|
-
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 }"])))
|
|
15939
15949
|
};
|
|
15940
15950
|
// Load account query
|
|
15941
|
-
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);
|
|
15942
15952
|
// Check email query
|
|
15943
|
-
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"])));
|
|
15944
15954
|
// Save (create or update) account mutation
|
|
15945
15955
|
var AccountMutations = {
|
|
15946
|
-
save: core.gql(templateObject_5
|
|
15947
|
-
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
|
|
15948
|
-
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)
|
|
15949
15959
|
};
|
|
15950
15960
|
// Sent confirmation email
|
|
15951
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"])));
|
|
@@ -16313,7 +16323,7 @@
|
|
|
16313
16323
|
error_3 = _b.sent();
|
|
16314
16324
|
console.error(error_3);
|
|
16315
16325
|
this.resetData();
|
|
16316
|
-
throw { code: ErrorCodes
|
|
16326
|
+
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
16317
16327
|
case 4:
|
|
16318
16328
|
// Store pubkey+keypair
|
|
16319
16329
|
this._cache.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -16349,7 +16359,7 @@
|
|
|
16349
16359
|
return [3 /*break*/, 18];
|
|
16350
16360
|
case 11:
|
|
16351
16361
|
err_1 = _b.sent();
|
|
16352
|
-
if (!(err_1 && +(err_1.code) === ErrorCodes
|
|
16362
|
+
if (!(err_1 && +(err_1.code) === ErrorCodes.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
|
|
16353
16363
|
if (!(data.username.indexOf('@') !== -1)) return [3 /*break*/, 16];
|
|
16354
16364
|
isEmailExists = void 0;
|
|
16355
16365
|
_b.label = 12;
|
|
@@ -16365,12 +16375,12 @@
|
|
|
16365
16375
|
case 15:
|
|
16366
16376
|
// Email not exists (no account)
|
|
16367
16377
|
if (!isEmailExists) {
|
|
16368
|
-
throw { code: ErrorCodes
|
|
16378
|
+
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
16369
16379
|
}
|
|
16370
16380
|
_b.label = 16;
|
|
16371
16381
|
case 16:
|
|
16372
16382
|
// Email exists, so error = 'bad password'
|
|
16373
|
-
throw { code: ErrorCodes
|
|
16383
|
+
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
16374
16384
|
case 17: throw err_1; // resend the first error
|
|
16375
16385
|
case 18:
|
|
16376
16386
|
_b.trys.push([18, 20, , 21]);
|
|
@@ -16566,8 +16576,8 @@
|
|
|
16566
16576
|
_b.label = 3;
|
|
16567
16577
|
case 3: return [3 /*break*/, 6];
|
|
16568
16578
|
case 4: return [4 /*yield*/, this.graphql.query({
|
|
16569
|
-
query: LoadQuery
|
|
16570
|
-
error: { code: ErrorCodes
|
|
16579
|
+
query: LoadQuery,
|
|
16580
|
+
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
16571
16581
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
16572
16582
|
})];
|
|
16573
16583
|
case 5:
|
|
@@ -16605,7 +16615,7 @@
|
|
|
16605
16615
|
case 1:
|
|
16606
16616
|
isEmailExists = _b.sent();
|
|
16607
16617
|
if (isEmailExists) {
|
|
16608
|
-
throw { code: ErrorCodes
|
|
16618
|
+
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
16609
16619
|
}
|
|
16610
16620
|
return [2 /*return*/];
|
|
16611
16621
|
}
|
|
@@ -16655,7 +16665,7 @@
|
|
|
16655
16665
|
locale: locale
|
|
16656
16666
|
},
|
|
16657
16667
|
error: {
|
|
16658
|
-
code: ErrorCodes
|
|
16668
|
+
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
16659
16669
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
16660
16670
|
}
|
|
16661
16671
|
})];
|
|
@@ -16678,7 +16688,7 @@
|
|
|
16678
16688
|
code: code
|
|
16679
16689
|
},
|
|
16680
16690
|
error: {
|
|
16681
|
-
code: ErrorCodes
|
|
16691
|
+
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
16682
16692
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
16683
16693
|
}
|
|
16684
16694
|
})];
|
|
@@ -16778,7 +16788,7 @@
|
|
|
16778
16788
|
throw error_7;
|
|
16779
16789
|
console.error(error_7);
|
|
16780
16790
|
throw {
|
|
16781
|
-
code: ErrorCodes
|
|
16791
|
+
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
16782
16792
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
16783
16793
|
};
|
|
16784
16794
|
case 6: return [2 /*return*/];
|
|
@@ -16989,7 +16999,7 @@
|
|
|
16989
16999
|
case 1:
|
|
16990
17000
|
existingAccount = _b.sent();
|
|
16991
17001
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
16992
|
-
throw { code: ErrorCodes
|
|
17002
|
+
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
16993
17003
|
}
|
|
16994
17004
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
16995
17005
|
_b.label = 2;
|
|
@@ -17001,7 +17011,7 @@
|
|
|
17001
17011
|
mutation: isNew ? AccountMutations.create : AccountMutations.save,
|
|
17002
17012
|
variables: { data: json },
|
|
17003
17013
|
error: {
|
|
17004
|
-
code: ErrorCodes
|
|
17014
|
+
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
17005
17015
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
17006
17016
|
}
|
|
17007
17017
|
})];
|
|
@@ -17035,7 +17045,7 @@
|
|
|
17035
17045
|
mutation: AccountMutations.saveSettings,
|
|
17036
17046
|
variables: { data: json },
|
|
17037
17047
|
error: {
|
|
17038
|
-
code: ErrorCodes
|
|
17048
|
+
code: ErrorCodes.SAVE_SETTINGS_ERROR,
|
|
17039
17049
|
message: 'ERROR.SAVE_SETTINGS_ERROR'
|
|
17040
17050
|
}
|
|
17041
17051
|
})];
|
|
@@ -17066,7 +17076,7 @@
|
|
|
17066
17076
|
if (counter > 4) {
|
|
17067
17077
|
if (this._debug)
|
|
17068
17078
|
console.debug("[account] Failed to authentication on pod (after " + counter + " attempts)");
|
|
17069
|
-
throw { code: ErrorCodes
|
|
17079
|
+
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
17070
17080
|
}
|
|
17071
17081
|
if (!token) return [3 /*break*/, 2];
|
|
17072
17082
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -17075,7 +17085,7 @@
|
|
|
17075
17085
|
token: token
|
|
17076
17086
|
},
|
|
17077
17087
|
error: {
|
|
17078
|
-
code: ErrorCodes
|
|
17088
|
+
code: ErrorCodes.UNAUTHORIZED,
|
|
17079
17089
|
message: 'ERROR.UNAUTHORIZED'
|
|
17080
17090
|
},
|
|
17081
17091
|
fetchPolicy: 'no-cache'
|
|
@@ -17092,7 +17102,7 @@
|
|
|
17092
17102
|
_b.label = 2;
|
|
17093
17103
|
case 2:
|
|
17094
17104
|
challengeError = {
|
|
17095
|
-
code: ErrorCodes
|
|
17105
|
+
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
17096
17106
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
17097
17107
|
};
|
|
17098
17108
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -17179,7 +17189,7 @@
|
|
|
17179
17189
|
query: AccountSubscriptions.listenChanges,
|
|
17180
17190
|
variables: variables,
|
|
17181
17191
|
error: {
|
|
17182
|
-
code: ErrorCodes
|
|
17192
|
+
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
17183
17193
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
|
|
17184
17194
|
}
|
|
17185
17195
|
}).pipe(operators.map(function (_b) {
|
|
@@ -17212,7 +17222,7 @@
|
|
|
17212
17222
|
};
|
|
17213
17223
|
return AccountService;
|
|
17214
17224
|
}(BaseGraphqlService));
|
|
17215
|
-
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" });
|
|
17216
17226
|
AccountService.decorators = [
|
|
17217
17227
|
{ type: i0.Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
|
|
17218
17228
|
];
|
|
@@ -17227,7 +17237,7 @@
|
|
|
17227
17237
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] },
|
|
17228
17238
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
17229
17239
|
]; };
|
|
17230
|
-
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;
|
|
17231
17241
|
|
|
17232
17242
|
var Software_1, Configuration_1;
|
|
17233
17243
|
// @dynamic
|
|
@@ -17485,13 +17495,13 @@
|
|
|
17485
17495
|
/* ------------------------------------
|
|
17486
17496
|
* GraphQL queries
|
|
17487
17497
|
* ------------------------------------*/
|
|
17488
|
-
var Fragments = {
|
|
17489
|
-
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 "])))
|
|
17490
17500
|
};
|
|
17491
|
-
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);
|
|
17492
17502
|
// Save (create or update) account mutation
|
|
17493
|
-
var SaveMutation = core.gql(templateObject_3$
|
|
17494
|
-
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"])));
|
|
17495
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"])));
|
|
17496
17506
|
var APP_CONFIG_OPTIONS = new i0.InjectionToken('defaultOptions');
|
|
17497
17507
|
var ConfigService = /** @class */ (function (_super) {
|
|
@@ -17551,12 +17561,12 @@
|
|
|
17551
17561
|
case 0:
|
|
17552
17562
|
now = Date.now();
|
|
17553
17563
|
console.debug('[config] Loading Pod configuration...');
|
|
17554
|
-
query = opts && opts.query || LoadQuery;
|
|
17564
|
+
query = opts && opts.query || LoadQuery$1;
|
|
17555
17565
|
variables = opts && opts.variables || undefined;
|
|
17556
17566
|
return [4 /*yield*/, this.graphql.query({
|
|
17557
17567
|
query: query,
|
|
17558
17568
|
variables: variables,
|
|
17559
|
-
error: { code: ErrorCodes
|
|
17569
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17560
17570
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
17561
17571
|
})];
|
|
17562
17572
|
case 1:
|
|
@@ -17598,7 +17608,7 @@
|
|
|
17598
17608
|
data: json
|
|
17599
17609
|
},
|
|
17600
17610
|
error: {
|
|
17601
|
-
code: ErrorCodes
|
|
17611
|
+
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
17602
17612
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
17603
17613
|
}
|
|
17604
17614
|
})];
|
|
@@ -17633,7 +17643,7 @@
|
|
|
17633
17643
|
return [4 /*yield*/, this.graphql.query({
|
|
17634
17644
|
query: CacheStatistics,
|
|
17635
17645
|
variables: null,
|
|
17636
|
-
error: { code: ErrorCodes
|
|
17646
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17637
17647
|
fetchPolicy: 'network-only'
|
|
17638
17648
|
})];
|
|
17639
17649
|
case 1:
|
|
@@ -17657,7 +17667,7 @@
|
|
|
17657
17667
|
return [4 /*yield*/, this.graphql.query({
|
|
17658
17668
|
query: ClearCache,
|
|
17659
17669
|
variables: variables,
|
|
17660
|
-
error: { code: ErrorCodes
|
|
17670
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17661
17671
|
fetchPolicy: 'no-cache'
|
|
17662
17672
|
})];
|
|
17663
17673
|
case 1:
|
|
@@ -17857,7 +17867,7 @@
|
|
|
17857
17867
|
};
|
|
17858
17868
|
return ConfigService;
|
|
17859
17869
|
}(BaseGraphqlService));
|
|
17860
|
-
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" });
|
|
17861
17871
|
ConfigService.decorators = [
|
|
17862
17872
|
{ type: i0.Injectable, args: [{
|
|
17863
17873
|
providedIn: 'root',
|
|
@@ -17876,9 +17886,9 @@
|
|
|
17876
17886
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
|
|
17877
17887
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
17878
17888
|
]; };
|
|
17879
|
-
var templateObject_1$
|
|
17889
|
+
var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1, templateObject_5$1;
|
|
17880
17890
|
|
|
17881
|
-
var moment$
|
|
17891
|
+
var moment$4 = momentImported__namespace;
|
|
17882
17892
|
var AndroidOsEnvironment = Object.freeze({
|
|
17883
17893
|
DIRECTORY_DOWNLOADS: 'Download',
|
|
17884
17894
|
DIRECTORY_DOWNLOADS_OLD: 'Downloads',
|
|
@@ -18149,16 +18159,16 @@
|
|
|
18149
18159
|
}
|
|
18150
18160
|
// config moment lib
|
|
18151
18161
|
try {
|
|
18152
|
-
moment$
|
|
18162
|
+
moment$4.locale(event.lang);
|
|
18153
18163
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
18154
18164
|
}
|
|
18155
18165
|
// If error, fallback to en
|
|
18156
18166
|
catch (err) {
|
|
18157
|
-
moment$
|
|
18167
|
+
moment$4.locale('en');
|
|
18158
18168
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
18159
18169
|
}
|
|
18160
18170
|
// Config date adapter
|
|
18161
|
-
_this.dateAdapter.setLocale(moment$
|
|
18171
|
+
_this.dateAdapter.setLocale(moment$4.locale());
|
|
18162
18172
|
}
|
|
18163
18173
|
});
|
|
18164
18174
|
this.settings.onChange.subscribe(function (data) {
|
|
@@ -18184,7 +18194,7 @@
|
|
|
18184
18194
|
PlatformService.prototype.checkAppVersion = function (opts) {
|
|
18185
18195
|
var _a, _b, _c;
|
|
18186
18196
|
return __awaiter(this, void 0, void 0, function () {
|
|
18187
|
-
var silent, production, canAutoReload, actualVersion,
|
|
18197
|
+
var silent, production, canAutoReload, actualVersion, remoteVersion, reloadPath;
|
|
18188
18198
|
return __generator(this, function (_d) {
|
|
18189
18199
|
switch (_d.label) {
|
|
18190
18200
|
case 0:
|
|
@@ -18201,8 +18211,7 @@
|
|
|
18201
18211
|
(_a = this.checkAppVersionTimer) === null || _a === void 0 ? void 0 : _a.unsubscribe(); // Stop timer if exists
|
|
18202
18212
|
return [2 /*return*/]; // Skip
|
|
18203
18213
|
}
|
|
18204
|
-
|
|
18205
|
-
return [4 /*yield*/, this.networkService.getAppVersion(peer)];
|
|
18214
|
+
return [4 /*yield*/, this.networkService.getAppVersion()];
|
|
18206
18215
|
case 1:
|
|
18207
18216
|
remoteVersion = _d.sent();
|
|
18208
18217
|
if (isNilOrBlank(remoteVersion)) {
|
|
@@ -18213,7 +18222,7 @@
|
|
|
18213
18222
|
}
|
|
18214
18223
|
if (VersionUtils.isCompatible(remoteVersion, actualVersion)) {
|
|
18215
18224
|
if (!silent)
|
|
18216
|
-
console.info(
|
|
18225
|
+
console.info("[platform] Checking remote app version [OK] {remote: '" + remoteVersion + "', actual: '" + actualVersion + "'}");
|
|
18217
18226
|
return [2 /*return*/];
|
|
18218
18227
|
}
|
|
18219
18228
|
reloadPath = location.href.replace(/[&]?version=[0-9.]+/gi, '');
|
|
@@ -18411,7 +18420,7 @@
|
|
|
18411
18420
|
};
|
|
18412
18421
|
return PlatformService;
|
|
18413
18422
|
}(StartableService));
|
|
18414
|
-
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" });
|
|
18415
18424
|
PlatformService.decorators = [
|
|
18416
18425
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
18417
18426
|
];
|
|
@@ -18509,7 +18518,7 @@
|
|
|
18509
18518
|
};
|
|
18510
18519
|
return MatStepperI18n;
|
|
18511
18520
|
}(stepper.MatStepperIntl));
|
|
18512
|
-
MatStepperI18n.ɵprov =
|
|
18521
|
+
MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
18513
18522
|
MatStepperI18n.decorators = [
|
|
18514
18523
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
18515
18524
|
];
|
|
@@ -20722,7 +20731,7 @@
|
|
|
20722
20731
|
return 1;
|
|
20723
20732
|
}
|
|
20724
20733
|
}
|
|
20725
|
-
var ɵ0$
|
|
20734
|
+
var ɵ0$b = function (defaultStateSize) { return [
|
|
20726
20735
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
20727
20736
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
20728
20737
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -20730,7 +20739,7 @@
|
|
|
20730
20739
|
var SCALE_OPTIONS_DEFAULT = {
|
|
20731
20740
|
startColor: rgbArrayMap.red,
|
|
20732
20741
|
startStates: [0, 2, 3],
|
|
20733
|
-
startStepsFn: ɵ0$
|
|
20742
|
+
startStepsFn: ɵ0$b
|
|
20734
20743
|
};
|
|
20735
20744
|
/**
|
|
20736
20745
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -21661,7 +21670,7 @@
|
|
|
21661
21670
|
};
|
|
21662
21671
|
return UserSettingsValidatorService;
|
|
21663
21672
|
}(AppValidatorService));
|
|
21664
|
-
UserSettingsValidatorService.ɵprov =
|
|
21673
|
+
UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
21665
21674
|
UserSettingsValidatorService.decorators = [
|
|
21666
21675
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
21667
21676
|
];
|
|
@@ -21709,7 +21718,7 @@
|
|
|
21709
21718
|
};
|
|
21710
21719
|
return AccountValidatorService;
|
|
21711
21720
|
}(AppValidatorService));
|
|
21712
|
-
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" });
|
|
21713
21722
|
AccountValidatorService.decorators = [
|
|
21714
21723
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
21715
21724
|
];
|
|
@@ -22340,7 +22349,7 @@
|
|
|
22340
22349
|
};
|
|
22341
22350
|
return LocalSettingsValidatorService;
|
|
22342
22351
|
}(AppValidatorService));
|
|
22343
|
-
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" });
|
|
22344
22353
|
LocalSettingsValidatorService.decorators = [
|
|
22345
22354
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
22346
22355
|
];
|
|
@@ -23120,7 +23129,7 @@
|
|
|
23120
23129
|
};
|
|
23121
23130
|
return IsOnFieldModePipe;
|
|
23122
23131
|
}());
|
|
23123
|
-
IsOnFieldModePipe.ɵprov =
|
|
23132
|
+
IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
23124
23133
|
IsOnFieldModePipe.decorators = [
|
|
23125
23134
|
{ type: i0.Pipe, args: [{
|
|
23126
23135
|
name: 'isOnField'
|
|
@@ -23135,7 +23144,7 @@
|
|
|
23135
23144
|
};
|
|
23136
23145
|
return IsNotOnFieldModePipe;
|
|
23137
23146
|
}());
|
|
23138
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
23147
|
+
IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
23139
23148
|
IsNotOnFieldModePipe.decorators = [
|
|
23140
23149
|
{ type: i0.Pipe, args: [{
|
|
23141
23150
|
name: 'isNotOnField'
|
|
@@ -23153,7 +23162,7 @@
|
|
|
23153
23162
|
};
|
|
23154
23163
|
return PersonToStringPipe;
|
|
23155
23164
|
}());
|
|
23156
|
-
PersonToStringPipe.ɵprov =
|
|
23165
|
+
PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
23157
23166
|
PersonToStringPipe.decorators = [
|
|
23158
23167
|
{ type: i0.Pipe, args: [{
|
|
23159
23168
|
name: 'personToString'
|
|
@@ -23617,7 +23626,7 @@
|
|
|
23617
23626
|
};
|
|
23618
23627
|
return IsLoginAccountPipe;
|
|
23619
23628
|
}());
|
|
23620
|
-
IsLoginAccountPipe.ɵprov =
|
|
23629
|
+
IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
23621
23630
|
IsLoginAccountPipe.decorators = [
|
|
23622
23631
|
{ type: i0.Pipe, args: [{
|
|
23623
23632
|
name: 'isLogin'
|
|
@@ -23632,7 +23641,7 @@
|
|
|
23632
23641
|
};
|
|
23633
23642
|
return AccountToStringPipe;
|
|
23634
23643
|
}());
|
|
23635
|
-
AccountToStringPipe.ɵprov =
|
|
23644
|
+
AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
23636
23645
|
AccountToStringPipe.decorators = [
|
|
23637
23646
|
{ type: i0.Pipe, args: [{
|
|
23638
23647
|
name: 'accountToString'
|
|
@@ -23650,7 +23659,7 @@
|
|
|
23650
23659
|
};
|
|
23651
23660
|
return DepartmentToStringPipe;
|
|
23652
23661
|
}());
|
|
23653
|
-
DepartmentToStringPipe.ɵprov =
|
|
23662
|
+
DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
23654
23663
|
DepartmentToStringPipe.decorators = [
|
|
23655
23664
|
{ type: i0.Pipe, args: [{
|
|
23656
23665
|
name: 'departmentToString'
|
|
@@ -23756,7 +23765,7 @@
|
|
|
23756
23765
|
};
|
|
23757
23766
|
return MenuService;
|
|
23758
23767
|
}());
|
|
23759
|
-
MenuService.ɵprov =
|
|
23768
|
+
MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
23760
23769
|
MenuService.decorators = [
|
|
23761
23770
|
{ type: i0.Injectable, args: [{
|
|
23762
23771
|
providedIn: 'root'
|
|
@@ -24301,7 +24310,7 @@
|
|
|
24301
24310
|
};
|
|
24302
24311
|
return AuthGuardService;
|
|
24303
24312
|
}());
|
|
24304
|
-
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" });
|
|
24305
24314
|
AuthGuardService.decorators = [
|
|
24306
24315
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
24307
24316
|
];
|
|
@@ -24346,7 +24355,7 @@
|
|
|
24346
24355
|
query: query,
|
|
24347
24356
|
variables: { id: id },
|
|
24348
24357
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
24349
|
-
error: { code: ErrorCodes
|
|
24358
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24350
24359
|
})
|
|
24351
24360
|
.pipe(operators.map(function (_b) {
|
|
24352
24361
|
var data = _b.data;
|
|
@@ -24368,7 +24377,7 @@
|
|
|
24368
24377
|
query: query,
|
|
24369
24378
|
variables: { id: id },
|
|
24370
24379
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
24371
|
-
error: { code: ErrorCodes
|
|
24380
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24372
24381
|
})];
|
|
24373
24382
|
case 1:
|
|
24374
24383
|
data = (_b.sent()).data;
|
|
@@ -24404,7 +24413,7 @@
|
|
|
24404
24413
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
24405
24414
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
24406
24415
|
variables: variables,
|
|
24407
|
-
error: { code: ErrorCodes
|
|
24416
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
24408
24417
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
24409
24418
|
})
|
|
24410
24419
|
.pipe(operators.map(function (_b) {
|
|
@@ -24446,7 +24455,7 @@
|
|
|
24446
24455
|
return [4 /*yield*/, this.graphql.query({
|
|
24447
24456
|
query: query,
|
|
24448
24457
|
variables: variables,
|
|
24449
|
-
error: { code: ErrorCodes
|
|
24458
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
24450
24459
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
24451
24460
|
})];
|
|
24452
24461
|
case 1:
|
|
@@ -24494,7 +24503,7 @@
|
|
|
24494
24503
|
variables: {
|
|
24495
24504
|
filter: filter && filter.asPodObject()
|
|
24496
24505
|
},
|
|
24497
|
-
error: { code: ErrorCodes
|
|
24506
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
24498
24507
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
24499
24508
|
})];
|
|
24500
24509
|
case 3:
|
|
@@ -24539,7 +24548,7 @@
|
|
|
24539
24548
|
variables: {
|
|
24540
24549
|
data: json
|
|
24541
24550
|
},
|
|
24542
|
-
error: { code: ErrorCodes
|
|
24551
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24543
24552
|
update: function (proxy, _b) {
|
|
24544
24553
|
var data = _b.data;
|
|
24545
24554
|
var savedEntities = data && data.data;
|
|
@@ -24606,7 +24615,7 @@
|
|
|
24606
24615
|
variables: {
|
|
24607
24616
|
data: json
|
|
24608
24617
|
},
|
|
24609
|
-
error: { code: ErrorCodes
|
|
24618
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24610
24619
|
update: function (cache, _b) {
|
|
24611
24620
|
var data = _b.data;
|
|
24612
24621
|
// Update entity
|
|
@@ -24664,7 +24673,7 @@
|
|
|
24664
24673
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
24665
24674
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
24666
24675
|
variables: { ids: ids },
|
|
24667
|
-
error: { code: ErrorCodes
|
|
24676
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24668
24677
|
update: function (cache, res) {
|
|
24669
24678
|
// Remove from cache
|
|
24670
24679
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -24717,7 +24726,7 @@
|
|
|
24717
24726
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
24718
24727
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
24719
24728
|
variables: { id: id },
|
|
24720
|
-
error: { code: ErrorCodes
|
|
24729
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24721
24730
|
update: function (proxy, res) {
|
|
24722
24731
|
// Remove from cache
|
|
24723
24732
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -24759,7 +24768,7 @@
|
|
|
24759
24768
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache',
|
|
24760
24769
|
variables: variables,
|
|
24761
24770
|
error: {
|
|
24762
|
-
code: ErrorCodes
|
|
24771
|
+
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
24763
24772
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
24764
24773
|
}
|
|
24765
24774
|
})
|
|
@@ -24982,7 +24991,7 @@
|
|
|
24982
24991
|
if (this._debug)
|
|
24983
24992
|
invalidRows.forEach(function (row) { return AppTableUtils.logRowErrors(row, "[table-datasource] " + _this._logTypeName + " row #" + row.id); });
|
|
24984
24993
|
// Stop with an error
|
|
24985
|
-
throw { code: ErrorCodes
|
|
24994
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
24986
24995
|
}
|
|
24987
24996
|
this._editingRowCount = 0;
|
|
24988
24997
|
data = void 0;
|
|
@@ -26002,14 +26011,14 @@
|
|
|
26002
26011
|
case 0:
|
|
26003
26012
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
26004
26013
|
if (this.readOnly) {
|
|
26005
|
-
throw { code: ErrorCodes
|
|
26014
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
26006
26015
|
}
|
|
26007
26016
|
this.resetError();
|
|
26008
26017
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
26009
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;
|
|
26010
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;
|
|
26011
26020
|
if (!this.confirmEditCreate()) {
|
|
26012
|
-
throw { code: ErrorCodes
|
|
26021
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
26013
26022
|
}
|
|
26014
26023
|
// Mark as saving
|
|
26015
26024
|
this.markAsSaving();
|
|
@@ -26166,7 +26175,7 @@
|
|
|
26166
26175
|
switch (_e.label) {
|
|
26167
26176
|
case 0:
|
|
26168
26177
|
if (this.readOnly) {
|
|
26169
|
-
throw { code: ErrorCodes
|
|
26178
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
26170
26179
|
}
|
|
26171
26180
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
26172
26181
|
return [2 /*return*/, 0]; // SKip
|
|
@@ -28066,7 +28075,7 @@
|
|
|
28066
28075
|
case 8:
|
|
28067
28076
|
data = _c.sent();
|
|
28068
28077
|
if (!data)
|
|
28069
|
-
throw { code: ErrorCodes
|
|
28078
|
+
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
28070
28079
|
this._usageMode = this.computeUsageMode(data);
|
|
28071
28080
|
return [4 /*yield*/, this.onEntityLoaded(data, opts)];
|
|
28072
28081
|
case 9:
|
|
@@ -28773,9 +28782,10 @@
|
|
|
28773
28782
|
canDelete: [{ type: i0.Input }]
|
|
28774
28783
|
};
|
|
28775
28784
|
|
|
28776
|
-
var
|
|
28785
|
+
var SocialErrorCodes = {
|
|
28777
28786
|
LOAD_USER_EVENTS_ERROR: 50000,
|
|
28778
|
-
SAVE_USER_EVENT_ERROR: 50001
|
|
28787
|
+
SAVE_USER_EVENT_ERROR: 50001,
|
|
28788
|
+
SEND_MESSAGE_ERROR: 50003
|
|
28779
28789
|
};
|
|
28780
28790
|
|
|
28781
28791
|
var UserEvent_1;
|
|
@@ -28821,7 +28831,7 @@
|
|
|
28821
28831
|
EntityClass({ typename: 'UserEventVO' })
|
|
28822
28832
|
], exports.UserEvent);
|
|
28823
28833
|
|
|
28824
|
-
var
|
|
28834
|
+
var UserEventFragments = {
|
|
28825
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 }"]))),
|
|
28826
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 }"])))
|
|
28827
28837
|
};
|
|
@@ -28856,12 +28866,12 @@
|
|
|
28856
28866
|
return UserEventFilter;
|
|
28857
28867
|
}(EntityFilter));
|
|
28858
28868
|
exports.UserEventFilter = __decorate([
|
|
28859
|
-
EntityClass({ typename: '
|
|
28869
|
+
EntityClass({ typename: 'UserEventFilterVO' })
|
|
28860
28870
|
], exports.UserEventFilter);
|
|
28861
|
-
var SaveQuery = core.gql(templateObject_1$
|
|
28862
|
-
var LoadAllQuery = core.gql(templateObject_2$
|
|
28863
|
-
var DeleteByIdsMutation = core.gql(templateObject_3$
|
|
28864
|
-
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);
|
|
28865
28875
|
var UserEventService = /** @class */ (function (_super) {
|
|
28866
28876
|
__extends(UserEventService, _super);
|
|
28867
28877
|
function UserEventService(graphql, accountService, network, translate, toastController, environment) {
|
|
@@ -28874,7 +28884,7 @@
|
|
|
28874
28884
|
_this.environment = environment;
|
|
28875
28885
|
_this._userEventActions = [];
|
|
28876
28886
|
// For DEV only
|
|
28877
|
-
_this._debug = !environment.production;
|
|
28887
|
+
_this._debug = environment && !environment.production;
|
|
28878
28888
|
return _this;
|
|
28879
28889
|
}
|
|
28880
28890
|
/**
|
|
@@ -28912,7 +28922,7 @@
|
|
|
28912
28922
|
filter: filter && filter.asPodObject()
|
|
28913
28923
|
},
|
|
28914
28924
|
arrayFieldName: 'data',
|
|
28915
|
-
error: { code:
|
|
28925
|
+
error: { code: SocialErrorCodes.LOAD_USER_EVENTS_ERROR, message: 'SOCIAL.ERROR.LOAD_USER_EVENTS_ERROR' },
|
|
28916
28926
|
fetchPolicy: options && options.fetchPolicy || undefined
|
|
28917
28927
|
})
|
|
28918
28928
|
.pipe(operators.map(function (res) {
|
|
@@ -28955,7 +28965,7 @@
|
|
|
28955
28965
|
variables: {
|
|
28956
28966
|
data: json
|
|
28957
28967
|
},
|
|
28958
|
-
error: { code:
|
|
28968
|
+
error: { code: SocialErrorCodes.SAVE_USER_EVENT_ERROR, message: 'SOCIAL.ERROR.SAVE_USER_EVENT_ERROR' },
|
|
28959
28969
|
update: function (proxy, _a) {
|
|
28960
28970
|
var data = _a.data;
|
|
28961
28971
|
// Update entity
|
|
@@ -29182,7 +29192,7 @@
|
|
|
29182
29192
|
};
|
|
29183
29193
|
return UserEventService;
|
|
29184
29194
|
}(BaseGraphqlService));
|
|
29185
|
-
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" });
|
|
29186
29196
|
UserEventService.decorators = [
|
|
29187
29197
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29188
29198
|
];
|
|
@@ -29192,9 +29202,9 @@
|
|
|
29192
29202
|
{ type: NetworkService },
|
|
29193
29203
|
{ type: i1$2.TranslateService },
|
|
29194
29204
|
{ type: i1$5.ToastController },
|
|
29195
|
-
{ type:
|
|
29205
|
+
{ type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
29196
29206
|
]; };
|
|
29197
|
-
var templateObject_1$
|
|
29207
|
+
var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2;
|
|
29198
29208
|
|
|
29199
29209
|
var ICONS_MAP = {
|
|
29200
29210
|
DEBUG_DATA: { matIcon: 'bug_report' },
|
|
@@ -29350,7 +29360,7 @@
|
|
|
29350
29360
|
UserEventsTable.decorators = [
|
|
29351
29361
|
{ type: i0.Component, args: [{
|
|
29352
29362
|
selector: 'app-user-events-table',
|
|
29353
|
-
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",
|
|
29354
29364
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
29355
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}"]
|
|
29356
29366
|
},] }
|
|
@@ -29370,35 +29380,350 @@
|
|
|
29370
29380
|
defaultSortDirection: [{ type: i0.Input }]
|
|
29371
29381
|
};
|
|
29372
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
|
+
|
|
29373
29616
|
var SocialModule = /** @class */ (function () {
|
|
29374
29617
|
function SocialModule() {
|
|
29375
29618
|
}
|
|
29376
|
-
SocialModule.forRoot = function () {
|
|
29377
|
-
console.debug('[social] Creating module (root)');
|
|
29378
|
-
return {
|
|
29379
|
-
ngModule: SocialModule,
|
|
29380
|
-
providers: [
|
|
29381
|
-
UserEventService
|
|
29382
|
-
]
|
|
29383
|
-
};
|
|
29384
|
-
};
|
|
29385
29619
|
return SocialModule;
|
|
29386
29620
|
}());
|
|
29387
29621
|
SocialModule.decorators = [
|
|
29388
29622
|
{ type: i0.NgModule, args: [{
|
|
29389
29623
|
imports: [
|
|
29390
29624
|
i1$4.CommonModule,
|
|
29391
|
-
CoreModule
|
|
29625
|
+
CoreModule,
|
|
29626
|
+
SharedModule
|
|
29392
29627
|
],
|
|
29393
29628
|
declarations: [
|
|
29394
|
-
UserEventsTable
|
|
29629
|
+
UserEventsTable,
|
|
29630
|
+
MessageModal,
|
|
29631
|
+
MessageForm
|
|
29395
29632
|
],
|
|
29396
29633
|
exports: [
|
|
29397
|
-
UserEventsTable
|
|
29634
|
+
UserEventsTable,
|
|
29635
|
+
MessageModal
|
|
29398
29636
|
]
|
|
29399
29637
|
},] }
|
|
29400
29638
|
];
|
|
29401
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
|
+
|
|
29402
29727
|
var PersonFilter_1;
|
|
29403
29728
|
// @dynamic
|
|
29404
29729
|
exports.PersonFilter = PersonFilter_1 = /** @class */ (function (_super) {
|
|
@@ -29456,16 +29781,16 @@
|
|
|
29456
29781
|
], exports.PersonFilter);
|
|
29457
29782
|
|
|
29458
29783
|
var PersonFragments = {
|
|
29459
|
-
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 }"])))
|
|
29460
29785
|
};
|
|
29461
29786
|
// Load persons query
|
|
29462
29787
|
var PersonQueries = {
|
|
29463
|
-
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),
|
|
29464
|
-
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)
|
|
29465
29790
|
};
|
|
29466
29791
|
var PersonMutations = {
|
|
29467
|
-
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),
|
|
29468
|
-
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 }"])))
|
|
29469
29794
|
};
|
|
29470
29795
|
var PersonService = /** @class */ (function (_super_1) {
|
|
29471
29796
|
__extends(PersonService, _super_1);
|
|
@@ -29586,7 +29911,7 @@
|
|
|
29586
29911
|
};
|
|
29587
29912
|
return PersonService;
|
|
29588
29913
|
}(BaseEntityService));
|
|
29589
|
-
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" });
|
|
29590
29915
|
PersonService.decorators = [
|
|
29591
29916
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29592
29917
|
];
|
|
@@ -29596,7 +29921,7 @@
|
|
|
29596
29921
|
{ type: NetworkService },
|
|
29597
29922
|
{ type: EntitiesStorage }
|
|
29598
29923
|
]; };
|
|
29599
|
-
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;
|
|
29600
29925
|
|
|
29601
29926
|
var PersonValidatorService = /** @class */ (function () {
|
|
29602
29927
|
function PersonValidatorService(formBuilder, accountValidatorService) {
|
|
@@ -29619,7 +29944,7 @@
|
|
|
29619
29944
|
};
|
|
29620
29945
|
return PersonValidatorService;
|
|
29621
29946
|
}());
|
|
29622
|
-
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" });
|
|
29623
29948
|
PersonValidatorService.decorators = [
|
|
29624
29949
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29625
29950
|
];
|
|
@@ -29630,7 +29955,7 @@
|
|
|
29630
29955
|
|
|
29631
29956
|
var UsersPage = /** @class */ (function (_super) {
|
|
29632
29957
|
__extends(UsersPage, _super);
|
|
29633
|
-
function UsersPage(injector, accountService, validatorService, configService, dataService,
|
|
29958
|
+
function UsersPage(injector, formBuilder, accountService, validatorService, configService, dataService, messageService, cd, environment) {
|
|
29634
29959
|
var _this = _super.call(this, injector, RESERVED_START_COLUMNS
|
|
29635
29960
|
.concat([
|
|
29636
29961
|
'avatar',
|
|
@@ -29655,16 +29980,17 @@
|
|
|
29655
29980
|
_this.validatorService = validatorService;
|
|
29656
29981
|
_this.configService = configService;
|
|
29657
29982
|
_this.dataService = dataService;
|
|
29983
|
+
_this.messageService = messageService;
|
|
29658
29984
|
_this.cd = cd;
|
|
29659
|
-
_this.canEdit = false;
|
|
29660
29985
|
_this.profiles = __spread(PRIORITIZED_AUTHORITIES).reverse();
|
|
29661
|
-
_this.filterCriteriaCount = 0;
|
|
29662
29986
|
_this.statusList = StatusList;
|
|
29663
29987
|
_this.statusById = StatusById;
|
|
29988
|
+
_this.filterCriteriaCount = 0;
|
|
29664
29989
|
_this.useSticky = false;
|
|
29665
29990
|
_this.referentialToString = referentialToString;
|
|
29666
|
-
_this.inlineEdition = accountService.isAdmin(); // Allow inline edition only if admin
|
|
29667
29991
|
_this.canEdit = accountService.isAdmin();
|
|
29992
|
+
_this.canSendMessage = _this.canEdit;
|
|
29993
|
+
_this.inlineEdition = _this.canEdit;
|
|
29668
29994
|
_this.confirmBeforeDelete = true;
|
|
29669
29995
|
_this.autoLoad = false; // Wait config loading
|
|
29670
29996
|
_this.i18nColumnPrefix = 'USER.';
|
|
@@ -29754,7 +30080,7 @@
|
|
|
29754
30080
|
UsersPage.prototype.restoreFilterOrLoad = function () {
|
|
29755
30081
|
return __awaiter(this, void 0, void 0, function () {
|
|
29756
30082
|
var json, filter;
|
|
29757
|
-
return __generator(this, function (
|
|
30083
|
+
return __generator(this, function (_b) {
|
|
29758
30084
|
this.markAsLoading();
|
|
29759
30085
|
console.debug("[users] Restoring filter from settings...");
|
|
29760
30086
|
json = this.settings.getPageSettings(this.settingsId, SETTINGS_FILTER) || {};
|
|
@@ -29771,6 +30097,56 @@
|
|
|
29771
30097
|
formControl.setValue(null);
|
|
29772
30098
|
return false;
|
|
29773
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
|
+
};
|
|
29774
30150
|
/* -- protected methods -- */
|
|
29775
30151
|
UsersPage.prototype.markForCheck = function () {
|
|
29776
30152
|
this.cd.markForCheck();
|
|
@@ -29780,7 +30156,7 @@
|
|
|
29780
30156
|
UsersPage.decorators = [
|
|
29781
30157
|
{ type: i0.Component, args: [{
|
|
29782
30158
|
selector: 'app-users-table',
|
|
29783
|
-
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",
|
|
29784
30160
|
providers: [
|
|
29785
30161
|
{ provide: ngxMaterialTable.ValidatorService, useExisting: PersonValidatorService }
|
|
29786
30162
|
],
|
|
@@ -29791,12 +30167,13 @@
|
|
|
29791
30167
|
];
|
|
29792
30168
|
UsersPage.ctorParameters = function () { return [
|
|
29793
30169
|
{ type: i0.Injector },
|
|
30170
|
+
{ type: i1.FormBuilder },
|
|
29794
30171
|
{ type: AccountService },
|
|
29795
30172
|
{ type: ngxMaterialTable.ValidatorService },
|
|
29796
30173
|
{ type: ConfigService },
|
|
29797
30174
|
{ type: PersonService },
|
|
30175
|
+
{ type: MessageService },
|
|
29798
30176
|
{ type: i0.ChangeDetectorRef },
|
|
29799
|
-
{ type: i1.FormBuilder },
|
|
29800
30177
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
29801
30178
|
]; };
|
|
29802
30179
|
UsersPage.propDecorators = {
|
|
@@ -29824,22 +30201,24 @@
|
|
|
29824
30201
|
UsersPage
|
|
29825
30202
|
],
|
|
29826
30203
|
exports: [
|
|
30204
|
+
SocialModule,
|
|
29827
30205
|
UsersPage
|
|
29828
30206
|
]
|
|
29829
30207
|
},] }
|
|
29830
30208
|
];
|
|
29831
30209
|
AdminModule.ctorParameters = function () { return []; };
|
|
29832
30210
|
|
|
29833
|
-
var ɵ0 = {
|
|
30211
|
+
var ɵ0$c = {
|
|
29834
30212
|
profile: 'ADMIN'
|
|
29835
30213
|
};
|
|
29836
|
-
var routes
|
|
30214
|
+
var routes = [
|
|
29837
30215
|
{
|
|
29838
30216
|
path: 'users',
|
|
29839
30217
|
pathMatch: 'full',
|
|
29840
30218
|
component: UsersPage,
|
|
29841
30219
|
canActivate: [AuthGuardService],
|
|
29842
|
-
|
|
30220
|
+
canDeactivate: [ComponentDirtyGuard],
|
|
30221
|
+
data: ɵ0$c
|
|
29843
30222
|
}
|
|
29844
30223
|
];
|
|
29845
30224
|
var AdminRoutingModule = /** @class */ (function () {
|
|
@@ -29852,36 +30231,30 @@
|
|
|
29852
30231
|
imports: [
|
|
29853
30232
|
SharedRoutingModule,
|
|
29854
30233
|
AdminModule,
|
|
29855
|
-
i3.RouterModule.forChild(routes
|
|
30234
|
+
i3.RouterModule.forChild(routes)
|
|
29856
30235
|
],
|
|
29857
30236
|
exports: [i3.RouterModule]
|
|
29858
30237
|
},] }
|
|
29859
30238
|
];
|
|
29860
30239
|
|
|
29861
|
-
var
|
|
29862
|
-
LOAD_PERSONS_ERROR: 100,
|
|
29863
|
-
SAVE_PERSONS_ERROR: 101,
|
|
29864
|
-
DELETE_PERSONS_ERROR: 102,
|
|
29865
|
-
};
|
|
29866
|
-
|
|
29867
|
-
var EntityTestClass$1 = /** @class */ (function () {
|
|
30240
|
+
var EntityTestClass = /** @class */ (function () {
|
|
29868
30241
|
function EntityTestClass() {
|
|
29869
30242
|
}
|
|
29870
30243
|
return EntityTestClass;
|
|
29871
30244
|
}());
|
|
29872
|
-
var FAKE_ENTITIES
|
|
30245
|
+
var FAKE_ENTITIES = [
|
|
29873
30246
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
29874
30247
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
29875
30248
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
29876
30249
|
];
|
|
29877
|
-
function deepCopy
|
|
30250
|
+
function deepCopy(values, size) {
|
|
29878
30251
|
if (isNil(size)) {
|
|
29879
|
-
return (values || FAKE_ENTITIES
|
|
30252
|
+
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
29880
30253
|
}
|
|
29881
30254
|
var result = [];
|
|
29882
30255
|
var i = 1;
|
|
29883
30256
|
while (result.length < size) {
|
|
29884
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
30257
|
+
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
29885
30258
|
var name = entity.name + ' #' + i;
|
|
29886
30259
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
29887
30260
|
}));
|
|
@@ -29891,7 +30264,7 @@
|
|
|
29891
30264
|
var AutocompleteTestPage = /** @class */ (function () {
|
|
29892
30265
|
function AutocompleteTestPage(formBuilder) {
|
|
29893
30266
|
this.formBuilder = formBuilder;
|
|
29894
|
-
this._items = deepCopy
|
|
30267
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
29895
30268
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
29896
30269
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
29897
30270
|
this.memoryHide = false;
|
|
@@ -29937,7 +30310,7 @@
|
|
|
29937
30310
|
});
|
|
29938
30311
|
// From items
|
|
29939
30312
|
this.autocompleteFields.add('entity-items-large', {
|
|
29940
|
-
items: FAKE_ENTITIES
|
|
30313
|
+
items: FAKE_ENTITIES.slice(),
|
|
29941
30314
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
29942
30315
|
displayWith: this.entityToString
|
|
29943
30316
|
});
|
|
@@ -29959,13 +30332,13 @@
|
|
|
29959
30332
|
var _this = this;
|
|
29960
30333
|
return __generator(this, function (_a) {
|
|
29961
30334
|
data = {
|
|
29962
|
-
entity: deepCopy
|
|
30335
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
29963
30336
|
// This item is NOT in the items list => i should be displayed anyway
|
|
29964
30337
|
missingEntity: {
|
|
29965
30338
|
id: -1, label: '??', name: 'Missing item'
|
|
29966
30339
|
},
|
|
29967
|
-
disableEntity: deepCopy
|
|
29968
|
-
entities: deepCopy
|
|
30340
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2],
|
|
30341
|
+
entities: deepCopy(FAKE_ENTITIES)
|
|
29969
30342
|
};
|
|
29970
30343
|
this.form.setValue(data);
|
|
29971
30344
|
// Load observables
|
|
@@ -30134,13 +30507,13 @@
|
|
|
30134
30507
|
{ type: i1.FormBuilder }
|
|
30135
30508
|
]; };
|
|
30136
30509
|
|
|
30137
|
-
var moment$
|
|
30510
|
+
var moment$5 = momentImported__namespace;
|
|
30138
30511
|
var SwipeTestPage = /** @class */ (function () {
|
|
30139
30512
|
function SwipeTestPage(formBuilder, dateFormatPipe) {
|
|
30140
30513
|
this.formBuilder = formBuilder;
|
|
30141
30514
|
this.dateFormatPipe = dateFormatPipe;
|
|
30142
30515
|
this.$dates = new rxjs.BehaviorSubject(undefined);
|
|
30143
|
-
this._today = moment$
|
|
30516
|
+
this._today = moment$5().startOf('day');
|
|
30144
30517
|
this.form = formBuilder.group({
|
|
30145
30518
|
empty: [null, i1.Validators.required],
|
|
30146
30519
|
date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
|
|
@@ -30154,7 +30527,7 @@
|
|
|
30154
30527
|
var _this = this;
|
|
30155
30528
|
var dates = [];
|
|
30156
30529
|
for (var d = 0; d < 7; d++) {
|
|
30157
|
-
dates[d] = moment$
|
|
30530
|
+
dates[d] = moment$5(this._today).add(d - 3, 'day');
|
|
30158
30531
|
}
|
|
30159
30532
|
this.$dates.next(dates);
|
|
30160
30533
|
this.loadData();
|
|
@@ -30201,7 +30574,7 @@
|
|
|
30201
30574
|
{ type: DateFormatPipe }
|
|
30202
30575
|
]; };
|
|
30203
30576
|
|
|
30204
|
-
var moment$
|
|
30577
|
+
var moment$6 = momentImported__namespace;
|
|
30205
30578
|
var DateTimeTestPage = /** @class */ (function () {
|
|
30206
30579
|
function DateTimeTestPage(platform, formBuilder, cd) {
|
|
30207
30580
|
this.platform = platform;
|
|
@@ -30236,7 +30609,7 @@
|
|
|
30236
30609
|
var now, data;
|
|
30237
30610
|
var _this = this;
|
|
30238
30611
|
return __generator(this, function (_a) {
|
|
30239
|
-
now = moment$
|
|
30612
|
+
now = moment$6();
|
|
30240
30613
|
data = {
|
|
30241
30614
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
30242
30615
|
enable: toDateISOString(now),
|
|
@@ -30301,12 +30674,12 @@
|
|
|
30301
30674
|
{ type: i0.ChangeDetectorRef }
|
|
30302
30675
|
]; };
|
|
30303
30676
|
|
|
30304
|
-
var EntityTestClass = /** @class */ (function () {
|
|
30677
|
+
var EntityTestClass$1 = /** @class */ (function () {
|
|
30305
30678
|
function EntityTestClass() {
|
|
30306
30679
|
}
|
|
30307
30680
|
return EntityTestClass;
|
|
30308
30681
|
}());
|
|
30309
|
-
var FAKE_ENTITIES = [
|
|
30682
|
+
var FAKE_ENTITIES$1 = [
|
|
30310
30683
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
30311
30684
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
30312
30685
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -30315,14 +30688,14 @@
|
|
|
30315
30688
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
30316
30689
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
30317
30690
|
];
|
|
30318
|
-
function deepCopy(values, size) {
|
|
30691
|
+
function deepCopy$1(values, size) {
|
|
30319
30692
|
if (isNil(size)) {
|
|
30320
|
-
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
30693
|
+
return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
|
|
30321
30694
|
}
|
|
30322
30695
|
var result = [];
|
|
30323
30696
|
var i = 1;
|
|
30324
30697
|
while (result.length < size) {
|
|
30325
|
-
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
30698
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
|
|
30326
30699
|
var name = entity.name + ' #' + i;
|
|
30327
30700
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
30328
30701
|
}));
|
|
@@ -30332,7 +30705,7 @@
|
|
|
30332
30705
|
var ChipsTestPage = /** @class */ (function () {
|
|
30333
30706
|
function ChipsTestPage(formBuilder) {
|
|
30334
30707
|
this.formBuilder = formBuilder;
|
|
30335
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
30708
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
30336
30709
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
30337
30710
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
30338
30711
|
this.form = formBuilder.group({
|
|
@@ -30375,7 +30748,7 @@
|
|
|
30375
30748
|
var items, data;
|
|
30376
30749
|
var _this = this;
|
|
30377
30750
|
return __generator(this, function (_a) {
|
|
30378
|
-
items = deepCopy(FAKE_ENTITIES);
|
|
30751
|
+
items = deepCopy$1(FAKE_ENTITIES$1);
|
|
30379
30752
|
data = {
|
|
30380
30753
|
entity: items.slice(0, 1),
|
|
30381
30754
|
entityInitial: items.slice(1, 2),
|
|
@@ -30512,7 +30885,7 @@
|
|
|
30512
30885
|
{ type: i1.FormBuilder }
|
|
30513
30886
|
]; };
|
|
30514
30887
|
|
|
30515
|
-
var moment = momentImported__namespace;
|
|
30888
|
+
var moment$7 = momentImported__namespace;
|
|
30516
30889
|
var DateTestPage = /** @class */ (function () {
|
|
30517
30890
|
function DateTestPage(formBuilder, cd) {
|
|
30518
30891
|
this.formBuilder = formBuilder;
|
|
@@ -30524,7 +30897,8 @@
|
|
|
30524
30897
|
this.timezone = 'Indian/Mahe';
|
|
30525
30898
|
this.stringify = JSON.stringify;
|
|
30526
30899
|
this.form = formBuilder.group({
|
|
30527
|
-
empty: [null,
|
|
30900
|
+
empty: [null, SharedValidators.validDate],
|
|
30901
|
+
emptyRequired: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
|
|
30528
30902
|
enable: [null, i1.Validators.required],
|
|
30529
30903
|
disable: [null, i1.Validators.required],
|
|
30530
30904
|
readonly: [null],
|
|
@@ -30548,10 +30922,11 @@
|
|
|
30548
30922
|
var now, nowAtMahe, data;
|
|
30549
30923
|
var _this = this;
|
|
30550
30924
|
return __generator(this, function (_a) {
|
|
30551
|
-
now = moment();
|
|
30925
|
+
now = moment$7();
|
|
30552
30926
|
nowAtMahe = now.clone().tz(this.timezone).startOf('day');
|
|
30553
30927
|
data = {
|
|
30554
|
-
empty:
|
|
30928
|
+
empty: null,
|
|
30929
|
+
emptyRequired: null,
|
|
30555
30930
|
enable: toDateISOString(now),
|
|
30556
30931
|
disable: now.clone(),
|
|
30557
30932
|
readonly: now.clone(),
|
|
@@ -30609,7 +30984,7 @@
|
|
|
30609
30984
|
DateTestPage.decorators = [
|
|
30610
30985
|
{ type: i0.Component, args: [{
|
|
30611
30986
|
selector: 'app-data-test',
|
|
30612
|
-
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"
|
|
30613
30988
|
},] }
|
|
30614
30989
|
];
|
|
30615
30990
|
DateTestPage.ctorParameters = function () { return [
|
|
@@ -30629,7 +31004,7 @@
|
|
|
30629
31004
|
{ label: 'Shared directives', divider: true },
|
|
30630
31005
|
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
|
|
30631
31006
|
];
|
|
30632
|
-
var routes$
|
|
31007
|
+
var routes$1 = [
|
|
30633
31008
|
{
|
|
30634
31009
|
path: '',
|
|
30635
31010
|
pathMatch: 'full',
|
|
@@ -30689,7 +31064,7 @@
|
|
|
30689
31064
|
i1.ReactiveFormsModule,
|
|
30690
31065
|
SharedMaterialModule,
|
|
30691
31066
|
i1$2.TranslateModule.forChild(),
|
|
30692
|
-
i3.RouterModule.forChild(routes$
|
|
31067
|
+
i3.RouterModule.forChild(routes$1)
|
|
30693
31068
|
],
|
|
30694
31069
|
declarations: [
|
|
30695
31070
|
DateTimeTestPage,
|
|
@@ -30751,7 +31126,7 @@
|
|
|
30751
31126
|
{ type: i1$2.TranslateService }
|
|
30752
31127
|
]; };
|
|
30753
31128
|
|
|
30754
|
-
var routes$
|
|
31129
|
+
var routes$2 = [
|
|
30755
31130
|
{
|
|
30756
31131
|
path: 'toast',
|
|
30757
31132
|
pathMatch: 'full',
|
|
@@ -30769,7 +31144,7 @@
|
|
|
30769
31144
|
i1$4.CommonModule,
|
|
30770
31145
|
i1$5.IonicModule,
|
|
30771
31146
|
i1$2.TranslateModule.forChild(),
|
|
30772
|
-
i3.RouterModule.forChild(routes$
|
|
31147
|
+
i3.RouterModule.forChild(routes$2)
|
|
30773
31148
|
],
|
|
30774
31149
|
declarations: [
|
|
30775
31150
|
ToastTestingPage
|
|
@@ -30849,7 +31224,7 @@
|
|
|
30849
31224
|
{ type: i1$5.PopoverController }
|
|
30850
31225
|
]; };
|
|
30851
31226
|
|
|
30852
|
-
var routes$
|
|
31227
|
+
var routes$3 = [
|
|
30853
31228
|
{
|
|
30854
31229
|
path: 'upload-file',
|
|
30855
31230
|
pathMatch: 'full',
|
|
@@ -30867,7 +31242,7 @@
|
|
|
30867
31242
|
i1$4.CommonModule,
|
|
30868
31243
|
i1$5.IonicModule,
|
|
30869
31244
|
i1$2.TranslateModule.forChild(),
|
|
30870
|
-
i3.RouterModule.forChild(routes$
|
|
31245
|
+
i3.RouterModule.forChild(routes$3)
|
|
30871
31246
|
],
|
|
30872
31247
|
declarations: [
|
|
30873
31248
|
UploadFileTestingPage
|
|
@@ -31291,7 +31666,7 @@
|
|
|
31291
31666
|
{ type: i1$5.PopoverController }
|
|
31292
31667
|
]; };
|
|
31293
31668
|
|
|
31294
|
-
var routes$
|
|
31669
|
+
var routes$4 = [
|
|
31295
31670
|
{
|
|
31296
31671
|
path: 'text-popover',
|
|
31297
31672
|
pathMatch: 'full',
|
|
@@ -31309,7 +31684,7 @@
|
|
|
31309
31684
|
i1$4.CommonModule,
|
|
31310
31685
|
i1$5.IonicModule,
|
|
31311
31686
|
i1$2.TranslateModule.forChild(),
|
|
31312
|
-
i3.RouterModule.forChild(routes$
|
|
31687
|
+
i3.RouterModule.forChild(routes$4)
|
|
31313
31688
|
],
|
|
31314
31689
|
declarations: [
|
|
31315
31690
|
TextPopoverTestingPage
|
|
@@ -31326,7 +31701,7 @@
|
|
|
31326
31701
|
{ label: 'Table', page: '/testing/core/table' },
|
|
31327
31702
|
{ label: 'Text popover', page: '/testing/core/text-popover' }
|
|
31328
31703
|
];
|
|
31329
|
-
var routes = [
|
|
31704
|
+
var routes$5 = [
|
|
31330
31705
|
{
|
|
31331
31706
|
path: '',
|
|
31332
31707
|
pathMatch: 'full',
|
|
@@ -31353,7 +31728,7 @@
|
|
|
31353
31728
|
imports: [
|
|
31354
31729
|
i1$4.CommonModule,
|
|
31355
31730
|
i1$2.TranslateModule.forChild(),
|
|
31356
|
-
i3.RouterModule.forChild(routes),
|
|
31731
|
+
i3.RouterModule.forChild(routes$5),
|
|
31357
31732
|
// Sub modules
|
|
31358
31733
|
TableTestingModule,
|
|
31359
31734
|
TextPopoverTestingModule
|
|
@@ -31476,7 +31851,6 @@
|
|
|
31476
31851
|
exports.EntityStore = EntityStore;
|
|
31477
31852
|
exports.EntityUtils = EntityUtils;
|
|
31478
31853
|
exports.Environment = Environment;
|
|
31479
|
-
exports.ErrorCodes = ErrorCodes;
|
|
31480
31854
|
exports.EvenPipe = EvenPipe;
|
|
31481
31855
|
exports.FileResponse = FileResponse;
|
|
31482
31856
|
exports.FileService = FileService;
|
|
@@ -31492,7 +31866,7 @@
|
|
|
31492
31866
|
exports.FormGetControlPipe = FormGetControlPipe;
|
|
31493
31867
|
exports.FormGetGroupPipe = FormGetGroupPipe;
|
|
31494
31868
|
exports.FormGetPipe = FormGetPipe;
|
|
31495
|
-
exports.Fragments = Fragments;
|
|
31869
|
+
exports.Fragments = Fragments$1;
|
|
31496
31870
|
exports.GraphqlService = GraphqlService;
|
|
31497
31871
|
exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
|
|
31498
31872
|
exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;
|
|
@@ -31541,6 +31915,11 @@
|
|
|
31541
31915
|
exports.MenuComponent = MenuComponent;
|
|
31542
31916
|
exports.MenuItems = MenuItems;
|
|
31543
31917
|
exports.MenuService = MenuService;
|
|
31918
|
+
exports.MessageForm = MessageForm;
|
|
31919
|
+
exports.MessageModal = MessageModal;
|
|
31920
|
+
exports.MessageService = MessageService;
|
|
31921
|
+
exports.MessageTypeList = MessageTypeList;
|
|
31922
|
+
exports.MessageTypes = MessageTypes;
|
|
31544
31923
|
exports.ModalToolbarComponent = ModalToolbarComponent;
|
|
31545
31924
|
exports.NetworkService = NetworkService;
|
|
31546
31925
|
exports.NgInitDirective = NgInitDirective;
|
|
@@ -31597,6 +31976,7 @@
|
|
|
31597
31976
|
exports.SharedTestingModule = SharedTestingModule;
|
|
31598
31977
|
exports.SharedTestsPage = SharedTestsPage;
|
|
31599
31978
|
exports.SharedValidators = SharedValidators;
|
|
31979
|
+
exports.SocialErrorCodes = SocialErrorCodes;
|
|
31600
31980
|
exports.SocialModule = SocialModule;
|
|
31601
31981
|
exports.StartableService = StartableService;
|
|
31602
31982
|
exports.StatusById = StatusById;
|
|
@@ -31624,6 +32004,7 @@
|
|
|
31624
32004
|
exports.UploadFilePopover = UploadFilePopover;
|
|
31625
32005
|
exports.UploadFileTestingModule = UploadFileTestingModule;
|
|
31626
32006
|
exports.UploadFileTestingPage = UploadFileTestingPage;
|
|
32007
|
+
exports.UserEventFragments = UserEventFragments;
|
|
31627
32008
|
exports.UserEventService = UserEventService;
|
|
31628
32009
|
exports.UserEventTypes = UserEventTypes;
|
|
31629
32010
|
exports.UserEventsTable = UserEventsTable;
|
|
@@ -31775,23 +32156,23 @@
|
|
|
31775
32156
|
exports.waitForTrue = waitForTrue;
|
|
31776
32157
|
exports.waitIdle = waitIdle;
|
|
31777
32158
|
exports.waitWhilePending = waitWhilePending;
|
|
31778
|
-
exports
|
|
31779
|
-
exports
|
|
31780
|
-
exports
|
|
31781
|
-
exports
|
|
31782
|
-
exports
|
|
31783
|
-
exports
|
|
31784
|
-
exports
|
|
31785
|
-
exports
|
|
31786
|
-
exports
|
|
31787
|
-
exports
|
|
31788
|
-
exports
|
|
31789
|
-
exports
|
|
31790
|
-
exports
|
|
31791
|
-
exports
|
|
31792
|
-
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;
|
|
31793
32174
|
|
|
31794
32175
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
31795
32176
|
|
|
31796
|
-
}));
|
|
32177
|
+
})));
|
|
31797
32178
|
//# sourceMappingURL=sumaris-net.ngx-components.umd.js.map
|