@sumaris-net/ngx-components 1.17.1 → 1.18.0-rc1
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 +570 -492
- 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 +5 -0
- package/esm2015/src/app/shared/hotkeys/hotkeys.service.js +7 -11
- package/esm2015/src/app/shared/inputs.js +1 -1
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +102 -61
- package/esm2015/src/app/shared/material/autocomplete/testing/autocomplete.test.js +20 -5
- package/esm2015/src/app/shared/material/chips/material.chips.js +26 -23
- package/esm2015/src/app/shared/material/material.module.js +1 -1
- package/fesm2015/sumaris-net.ngx-components.js +541 -472
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/shared/hotkeys/hotkeys.service.d.ts +2 -3
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +8 -3
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +5 -3
- package/src/theme/_ngx-components.scss +67 -20
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/cdk/table'), require('@angular/cdk/a11y'), require('@angular/cdk/overlay'), require('@angular/cdk/scrolling'), require('@angular/material/core'), require('@angular/material/table'), require('@angular/material/sort'), require('@angular/material/paginator'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/checkbox'), require('@angular/material/expansion'), require('@angular/material/toolbar'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/menu'), require('@angular/material/select'), require('@angular/material/card'), require('@angular/material/tabs'), require('@angular/material/stepper'), require('@angular/material/list'), require('@angular/material/button-toggle'), require('@angular/material/progress-spinner'), require('@angular/material/progress-bar'), require('@angular/material/radio'), require('@angular/material/badge'), require('@angular/material/slide-toggle'), require('@angular/material/dialog'), require('@angular/material/autocomplete'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core'), require('@ionic/angular'), require('moment'), require('@angular/material-moment-adapter'), require('moment-timezone'), require('@ionic-native/keyboard/ngx'), require('angular2-text-mask'), require('ngx-material-timepicker'), require('@angular/material/datepicker'), require('@angular/
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@sumaris-net/ngx-components', ['exports', '@angular/core', '@angular/common', '@angular/cdk/table', '@angular/cdk/a11y', '@angular/cdk/overlay', '@angular/cdk/scrolling', '@angular/material/core', '@angular/material/table', '@angular/material/sort', '@angular/material/paginator', '@angular/material/form-field', '@angular/material/input', '@angular/material/checkbox', '@angular/material/expansion', '@angular/material/toolbar', '@angular/material/icon', '@angular/material/button', '@angular/material/menu', '@angular/material/select', '@angular/material/card', '@angular/material/tabs', '@angular/material/stepper', '@angular/material/list', '@angular/material/button-toggle', '@angular/material/progress-spinner', '@angular/material/progress-bar', '@angular/material/radio', '@angular/material/badge', '@angular/material/slide-toggle', '@angular/material/dialog', '@angular/material/autocomplete', '@angular/forms', 'rxjs', 'rxjs/operators', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', 'moment-timezone', '@ionic-native/keyboard/ngx', 'angular2-text-mask', 'ngx-material-timepicker', '@angular/material/datepicker', '@angular/
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global[
|
|
5
|
-
}(this, (function (exports, i0, i1$4, table$1, a11y, overlay, scrolling, i1$3, table, sort$1, paginator, formField, input, checkbox, expansion, toolbar, icon, button, menu, select, card, tabs, stepper, list, buttonToggle, progressSpinner, progressBar, radio, badge, slideToggle, i2, autocomplete, i1, rxjs, operators, i1$2, i1$5, momentImported, i1$1, momentTZImported, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker,
|
|
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
|
+
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["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,23 +15,46 @@
|
|
|
15
15
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
16
|
Object.defineProperty(n, k, d.get ? d : {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () {
|
|
19
|
-
return e[k];
|
|
20
|
-
}
|
|
18
|
+
get: function () { return e[k]; }
|
|
21
19
|
});
|
|
22
20
|
}
|
|
23
21
|
});
|
|
24
22
|
}
|
|
25
|
-
n[
|
|
23
|
+
n["default"] = e;
|
|
26
24
|
return Object.freeze(n);
|
|
27
25
|
}
|
|
28
26
|
|
|
27
|
+
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
|
|
28
|
+
var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$4);
|
|
29
|
+
var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$3);
|
|
30
|
+
var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2);
|
|
31
|
+
var i1__namespace$6 = /*#__PURE__*/_interopNamespace(i1);
|
|
32
|
+
var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$2);
|
|
33
|
+
var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$5);
|
|
29
34
|
var momentImported__namespace = /*#__PURE__*/_interopNamespace(momentImported);
|
|
35
|
+
var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
|
|
30
36
|
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);
|
|
31
43
|
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);
|
|
32
50
|
var QueueLink__default = /*#__PURE__*/_interopDefaultLegacy(QueueLink);
|
|
33
51
|
var SerializingLink__default = /*#__PURE__*/_interopDefaultLegacy(SerializingLink);
|
|
34
52
|
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);
|
|
35
58
|
|
|
36
59
|
var ENVIRONMENT = new i0.InjectionToken('ENV');
|
|
37
60
|
var Environment = /** @class */ (function () {
|
|
@@ -1219,6 +1242,109 @@
|
|
|
1219
1242
|
.pipe(operators.filter(function () { return isEnd(); }));
|
|
1220
1243
|
}
|
|
1221
1244
|
|
|
1245
|
+
// import the required animation functions from the angular animations module
|
|
1246
|
+
var fadeInAnimation =
|
|
1247
|
+
// trigger name for attaching this animation to an element using the [@triggerName] syntax
|
|
1248
|
+
animations.trigger('fadeInAnimation', [
|
|
1249
|
+
// route 'enter' transition
|
|
1250
|
+
animations.transition(':enter', [
|
|
1251
|
+
// css styles at start of transition
|
|
1252
|
+
animations.style({ opacity: 0 }),
|
|
1253
|
+
// animation and styles at end of transition
|
|
1254
|
+
animations.animate('.3s', animations.style({ opacity: 1 }))
|
|
1255
|
+
]),
|
|
1256
|
+
]);
|
|
1257
|
+
var fadeInOutAnimation =
|
|
1258
|
+
// trigger name for attaching this animation to an element using the [@triggerName] syntax
|
|
1259
|
+
animations.trigger('fadeInOutAnimation', [
|
|
1260
|
+
// route 'enter' transition
|
|
1261
|
+
animations.transition(':enter', [
|
|
1262
|
+
// css styles at start of transition
|
|
1263
|
+
animations.style({ opacity: 0 }),
|
|
1264
|
+
// animation and styles at end of transition
|
|
1265
|
+
animations.animate('.3s', animations.style({ opacity: 1 }))
|
|
1266
|
+
]),
|
|
1267
|
+
// route 'leave' transition
|
|
1268
|
+
animations.transition(':leave', [
|
|
1269
|
+
// animation and styles at end of transition
|
|
1270
|
+
animations.animate('.5s ease-in-out', animations.style({
|
|
1271
|
+
opacity: 0
|
|
1272
|
+
}))
|
|
1273
|
+
]),
|
|
1274
|
+
]);
|
|
1275
|
+
var slideInOutAnimation =
|
|
1276
|
+
// trigger name for attaching this animation to an element using the [@triggerName] syntax
|
|
1277
|
+
animations.trigger('slideInOutAnimation', [
|
|
1278
|
+
// end state styles for route container (host)
|
|
1279
|
+
animations.state('*', animations.style({
|
|
1280
|
+
// the view covers the whole screen with a semi tranparent background
|
|
1281
|
+
position: 'relative',
|
|
1282
|
+
top: 0,
|
|
1283
|
+
left: 0,
|
|
1284
|
+
right: 0,
|
|
1285
|
+
bottom: 0,
|
|
1286
|
+
opacity: 1
|
|
1287
|
+
})),
|
|
1288
|
+
// route 'enter' transition
|
|
1289
|
+
animations.transition(':enter', [
|
|
1290
|
+
// styles at start of transition
|
|
1291
|
+
animations.style({
|
|
1292
|
+
// start with the content positioned off the right of the screen,
|
|
1293
|
+
// -400% is required instead of -100% because the negative position adds to the width of the element
|
|
1294
|
+
left: '400%',
|
|
1295
|
+
// start with background opacity set to 0 (invisible)
|
|
1296
|
+
opacity: 0
|
|
1297
|
+
}),
|
|
1298
|
+
// animation and styles at end of transition
|
|
1299
|
+
animations.animate('.3s ease-in-out', animations.style({
|
|
1300
|
+
// transition the right position to 0 which slides the content into view
|
|
1301
|
+
left: 0,
|
|
1302
|
+
// transition the background opacity to 0.8 to fade it in
|
|
1303
|
+
opacity: 0.8
|
|
1304
|
+
}))
|
|
1305
|
+
]),
|
|
1306
|
+
// route 'leave' transition
|
|
1307
|
+
animations.transition(':leave', [
|
|
1308
|
+
// animation and styles at end of transition
|
|
1309
|
+
animations.animate('.5s ease-in-out', animations.style({
|
|
1310
|
+
// transition the right position to -400% which slides the content out of view
|
|
1311
|
+
left: '400%',
|
|
1312
|
+
// transition the background opacity to 0 to fade it out
|
|
1313
|
+
opacity: 0
|
|
1314
|
+
}))
|
|
1315
|
+
])
|
|
1316
|
+
]);
|
|
1317
|
+
var slideUpDownAnimation =
|
|
1318
|
+
// trigger name for attaching this animation to an element using the [@triggerName] syntax
|
|
1319
|
+
animations.trigger('slideUpDownAnimation', [
|
|
1320
|
+
// end state styles for route container (host)
|
|
1321
|
+
animations.state('*', animations.style({
|
|
1322
|
+
transform: 'translateY(0)',
|
|
1323
|
+
opacity: 1
|
|
1324
|
+
})),
|
|
1325
|
+
// route 'enter' transition
|
|
1326
|
+
animations.transition(':enter', [
|
|
1327
|
+
// styles at start of transition
|
|
1328
|
+
animations.style({
|
|
1329
|
+
transform: 'translateY(-400%)',
|
|
1330
|
+
opacity: 0
|
|
1331
|
+
}),
|
|
1332
|
+
// animation and styles at end of transition
|
|
1333
|
+
animations.animate('.3s ease-in-out', animations.style({
|
|
1334
|
+
transform: 'translateY(0)',
|
|
1335
|
+
opacity: 1
|
|
1336
|
+
}))
|
|
1337
|
+
]),
|
|
1338
|
+
// route 'leave' transition
|
|
1339
|
+
animations.transition(':leave', [
|
|
1340
|
+
// animation and styles at end of transition
|
|
1341
|
+
animations.animate('.5s ease-in-out', animations.style({
|
|
1342
|
+
transform: 'translateY(-100%)',
|
|
1343
|
+
opacity: 0
|
|
1344
|
+
}))
|
|
1345
|
+
])
|
|
1346
|
+
]);
|
|
1347
|
+
|
|
1222
1348
|
var MatAutocompleteConfigHolder = /** @class */ (function () {
|
|
1223
1349
|
function MatAutocompleteConfigHolder(options) {
|
|
1224
1350
|
this.options = options;
|
|
@@ -1240,8 +1366,8 @@
|
|
|
1240
1366
|
// Keep original the function from options, when exists
|
|
1241
1367
|
var attributesOrFn = attributes.map(function (a, index) { return typeof a === 'function' && options.attributes[index] || a; });
|
|
1242
1368
|
var filter = Object.assign({ searchAttribute: attributes.length === 1 ? attributes[0] : undefined, searchAttributes: attributes.length > 1 ? attributes : undefined }, options.filter);
|
|
1243
|
-
var displayWith = options.displayWith || (
|
|
1244
|
-
var equals = options.equals ||
|
|
1369
|
+
var displayWith = options.displayWith || MatAutocompleteFieldUtils.createDisplayFn(attributes, options.multiple);
|
|
1370
|
+
var equals = options.equals || MatAutocompleteFieldUtils.defaultEquals;
|
|
1245
1371
|
var config = Object.assign(Object.assign({}, options), { attributes: attributesOrFn, suggestFn: suggestFn,
|
|
1246
1372
|
filter: filter,
|
|
1247
1373
|
displayWith: displayWith,
|
|
@@ -1257,14 +1383,34 @@
|
|
|
1257
1383
|
};
|
|
1258
1384
|
return MatAutocompleteConfigHolder;
|
|
1259
1385
|
}());
|
|
1260
|
-
var
|
|
1261
|
-
|
|
1386
|
+
var MatAutocompleteFieldUtils = /** @class */ (function () {
|
|
1387
|
+
function MatAutocompleteFieldUtils() {
|
|
1388
|
+
}
|
|
1389
|
+
MatAutocompleteFieldUtils.createDisplayFn = function (displayAttributes, multiple) {
|
|
1390
|
+
// if multiple (manage array)
|
|
1391
|
+
if (multiple) {
|
|
1392
|
+
return function (value) {
|
|
1393
|
+
return Array.isArray(value)
|
|
1394
|
+
? (value || []).map(function (obj) { return obj && joinPropertiesPath(obj, displayAttributes); }).join(', ')
|
|
1395
|
+
: value && joinPropertiesPath(value, displayAttributes);
|
|
1396
|
+
};
|
|
1397
|
+
}
|
|
1398
|
+
// Join properties
|
|
1399
|
+
return function (obj) { return obj && joinPropertiesPath(obj, displayAttributes); };
|
|
1400
|
+
};
|
|
1401
|
+
MatAutocompleteFieldUtils.defaultEquals = function (o1, o2) {
|
|
1402
|
+
return isNotNil(o1 === null || o1 === void 0 ? void 0 : o1.id) && o1.id === (o2 === null || o2 === void 0 ? void 0 : o2.id);
|
|
1403
|
+
};
|
|
1404
|
+
return MatAutocompleteFieldUtils;
|
|
1405
|
+
}());
|
|
1406
|
+
var noop$8 = function (_) { };
|
|
1407
|
+
var ɵ0$c = noop$8;
|
|
1262
1408
|
var MatAutocompleteField = /** @class */ (function () {
|
|
1263
1409
|
function MatAutocompleteField(cd, formGroupDir) {
|
|
1264
1410
|
this.cd = cd;
|
|
1265
1411
|
this.formGroupDir = formGroupDir;
|
|
1266
|
-
this._onChangeCallback = noop;
|
|
1267
|
-
this._onTouchedCallback = noop;
|
|
1412
|
+
this._onChangeCallback = noop$8;
|
|
1413
|
+
this._onTouchedCallback = noop$8;
|
|
1268
1414
|
this.logPrefix = '[mat-autocomplete] ';
|
|
1269
1415
|
this.formControlName = null;
|
|
1270
1416
|
this.required = false;
|
|
@@ -1272,12 +1418,13 @@
|
|
|
1272
1418
|
this.debounceTime = null;
|
|
1273
1419
|
this.i18nPrefix = 'REFERENTIAL.';
|
|
1274
1420
|
this.noResultMessage = 'COMMON.NO_RESULT';
|
|
1275
|
-
this.multiple = false;
|
|
1276
1421
|
this.itemSize = '48px';
|
|
1277
1422
|
this.fetchMoreThreshold = '15%';
|
|
1278
1423
|
this.suggestLengthThreshold = null;
|
|
1279
1424
|
this.showLoadingSpinner = true;
|
|
1280
1425
|
this.debug = false;
|
|
1426
|
+
this.showSearchBar = true;
|
|
1427
|
+
this.stickySearchBar = true;
|
|
1281
1428
|
this.clicked = new i0.EventEmitter();
|
|
1282
1429
|
this.blurred = new i0.EventEmitter();
|
|
1283
1430
|
this.focused = new i0.EventEmitter();
|
|
@@ -1398,6 +1545,13 @@
|
|
|
1398
1545
|
enumerable: false,
|
|
1399
1546
|
configurable: true
|
|
1400
1547
|
});
|
|
1548
|
+
Object.defineProperty(MatAutocompleteField.prototype, "desktop", {
|
|
1549
|
+
get: function () {
|
|
1550
|
+
return !this.mobile;
|
|
1551
|
+
},
|
|
1552
|
+
enumerable: false,
|
|
1553
|
+
configurable: true
|
|
1554
|
+
});
|
|
1401
1555
|
MatAutocompleteField.prototype.ngOnInit = function () {
|
|
1402
1556
|
var _this = this;
|
|
1403
1557
|
var _a, _b;
|
|
@@ -1416,6 +1570,7 @@
|
|
|
1416
1570
|
this.displayColumnNames = this.displayColumnNames || this.config.columnNames;
|
|
1417
1571
|
this.displayWith = this.displayWith || this.config.displayWith;
|
|
1418
1572
|
this.equals = this.equals || this.config.equals;
|
|
1573
|
+
this.multiple = toBoolean(this.multiple, this.config.multiple);
|
|
1419
1574
|
this.mobile = toBoolean(this.mobile, this.config.mobile);
|
|
1420
1575
|
this.suggestLengthThreshold = toNumber(this.suggestLengthThreshold, this.config.suggestLengthThreshold || 0);
|
|
1421
1576
|
this.showAllOnFocus = toBoolean(this.showAllOnFocus, toBoolean(this.config.showAllOnFocus, this.suggestLengthThreshold <= 0));
|
|
@@ -1425,8 +1580,11 @@
|
|
|
1425
1580
|
this.highlightAccent = toBoolean(this.highlightAccent, toBoolean(this.config.highlightAccent));
|
|
1426
1581
|
}
|
|
1427
1582
|
// Default values
|
|
1583
|
+
this.multiple = toBoolean(this.multiple, false);
|
|
1584
|
+
this.mobile = toBoolean(this.mobile, this.multiple);
|
|
1428
1585
|
this.displayAttributes = this.displayAttributes || ((_a = this.filter) === null || _a === void 0 ? void 0 : _a.attributes) || ['label', 'name'];
|
|
1429
|
-
this.displayWith = this.displayWith || (
|
|
1586
|
+
this.displayWith = this.displayWith || MatAutocompleteFieldUtils.createDisplayFn(this.displayAttributes, this.multiple);
|
|
1587
|
+
this.equals = this.equals || MatAutocompleteFieldUtils.defaultEquals;
|
|
1430
1588
|
this.displayColumnSizes = this.displayColumnSizes
|
|
1431
1589
|
// if only column: auto size
|
|
1432
1590
|
|| (this.displayAttributes.length === 1 && [undefined])
|
|
@@ -1434,24 +1592,21 @@
|
|
|
1434
1592
|
// - if label then col size = 2
|
|
1435
1593
|
// - if rankOrder then col size = 1
|
|
1436
1594
|
// - ese => auto size
|
|
1437
|
-
|| this.displayAttributes.map(function (attr) { return
|
|
1438
|
-
: (
|
|
1439
|
-
: undefined); });
|
|
1595
|
+
|| this.displayAttributes.map(function (attr) { return attr && (attr.endsWith('label') ? 3
|
|
1596
|
+
: (attr.endsWith('rankOrder') ? 2
|
|
1597
|
+
: undefined)); });
|
|
1440
1598
|
this.displayColumnNames = this.displayAttributes.map(function (attr, index) { return _this.displayColumnNames && _this.displayColumnNames[index] ||
|
|
1441
1599
|
(_this.i18nPrefix + changeCaseToUnderscore(attr).toUpperCase()); });
|
|
1442
|
-
this.mobile = toBoolean(this.mobile, false);
|
|
1443
|
-
this.searchable = !this.mobile && !this.multiple;
|
|
1444
|
-
this.equals = this.equals || (function (o1, o2) { return o1 && o2 && o1.id === o2.id; });
|
|
1445
1600
|
var classList = (_b = this.classList) === null || _b === void 0 ? void 0 : _b.split(' ');
|
|
1446
1601
|
this.panelWidth = this.panelWidth || (classList && ((classList.includes('min-width-medium') && '300px')
|
|
1447
1602
|
|| (classList.includes('min-width-large') && '400px')
|
|
1448
1603
|
|| (classList.includes('min-width-xlarge') && '450px')
|
|
1449
1604
|
|| (classList.includes('mat-autocomplete-panel-full-size') && '100vw')));
|
|
1450
1605
|
this.showPanelOnFocus = toBoolean(this.showPanelOnFocus, true);
|
|
1451
|
-
this.debounceTime = toNumber(this.debounceTime, 250);
|
|
1606
|
+
this.debounceTime = toNumber(this.debounceTime, this.mobile ? 650 : 250);
|
|
1452
1607
|
this.highlightAccent = toBoolean(this.highlightAccent, false);
|
|
1453
1608
|
this.suggestLengthThreshold = this.suggestLengthThreshold || 0;
|
|
1454
|
-
this.matAutocompletePosition = this.matAutocompletePosition ||
|
|
1609
|
+
this.matAutocompletePosition = this.matAutocompletePosition || 'auto';
|
|
1455
1610
|
// No suggestFn: filter on the given items
|
|
1456
1611
|
if (!this.suggestFn) {
|
|
1457
1612
|
var suggestFromArrayFn_1 = function (value, filter) { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -1482,10 +1637,10 @@
|
|
|
1482
1637
|
});
|
|
1483
1638
|
}); };
|
|
1484
1639
|
}
|
|
1485
|
-
else if (
|
|
1640
|
+
else if (this.mobile) {
|
|
1486
1641
|
// Manually fill input items, from the given suggest function
|
|
1487
|
-
this._subscription.add(this._$filter.pipe(operators.startWith(this.filter), operators.debounceTime(250), operators.takeWhile(function (_) { return
|
|
1488
|
-
operators.switchMap(function (filter) { return _this.suggest('*', filter); }))
|
|
1642
|
+
this._subscription.add(this._$filter.pipe(operators.startWith(this.filter), operators.debounceTime(250), operators.takeWhile(function (_) { return _this.mobile; }), // Close subscription, when not mobile (no more mat-select)
|
|
1643
|
+
operators.filter(function (_) { return _this.suggestLengthThreshold <= 0; }), operators.switchMap(function (filter) { return _this.suggest('*', filter); }))
|
|
1489
1644
|
.subscribe(function (items) { return _this.$inputItems.next(items); }));
|
|
1490
1645
|
}
|
|
1491
1646
|
// Send value to suggest when :
|
|
@@ -1501,11 +1656,17 @@
|
|
|
1501
1656
|
this._reload$,
|
|
1502
1657
|
// Search text (no distinctUntilChanged() because of the debounceTime() pipe)
|
|
1503
1658
|
this.formControl.valueChanges
|
|
1504
|
-
.pipe(operators.filter(function (value) { return _this.enabled &&
|
|
1659
|
+
.pipe(operators.filter(function (value) { return _this.enabled && isNotNilString(value); }),
|
|
1505
1660
|
// Mark as loading (to show loading spinner) - earlier as possible, so before the debounce time
|
|
1506
1661
|
operators.tap(function (_) { return _this.showLoadingSpinner && _this.markAsLoading(); }),
|
|
1507
1662
|
// Filter if not enough character
|
|
1508
|
-
operators.filter(function (value) {
|
|
1663
|
+
operators.filter(function (value) {
|
|
1664
|
+
if (value.length >= _this.suggestLengthThreshold)
|
|
1665
|
+
return true;
|
|
1666
|
+
// Update display value, to enable the message "not enough characters"
|
|
1667
|
+
_this.displayValue = value;
|
|
1668
|
+
return false;
|
|
1669
|
+
}),
|
|
1509
1670
|
// Wait a debounce time
|
|
1510
1671
|
operators.debounceTime(this.debounceTime)
|
|
1511
1672
|
// DEBUG
|
|
@@ -1513,37 +1674,34 @@
|
|
|
1513
1674
|
),
|
|
1514
1675
|
// Object set: use it (no distinctUntilChanged() pipe need)
|
|
1515
1676
|
this.formControl.valueChanges
|
|
1516
|
-
.pipe(operators.startWith(this.formControl.value), operators.filter(function (value) { return (_this.
|
|
1677
|
+
.pipe(operators.startWith(this.formControl.value), operators.filter(function (value) { return (!_this.mobile && isNotNil(value) && typeof value === 'object'); }), operators.tap(function (value) {
|
|
1517
1678
|
// DEBUG
|
|
1518
|
-
if (
|
|
1519
|
-
|
|
1679
|
+
//if (this.debug) console.debug(this.logPrefix + ' object changes:', value)
|
|
1680
|
+
var _a;
|
|
1520
1681
|
// Update the display value (if need)
|
|
1521
1682
|
var displayValue = _this.displayWith(value) || '';
|
|
1522
1683
|
if (_this.displayValue !== displayValue) {
|
|
1523
1684
|
_this.displayValue = displayValue;
|
|
1524
1685
|
// Apply to the input[type=text] field
|
|
1525
|
-
if (_this.matInputText
|
|
1686
|
+
if ((_a = _this.matInputText) === null || _a === void 0 ? void 0 : _a.nativeElement) {
|
|
1526
1687
|
_this.matInputText.nativeElement.value = _this.displayValue;
|
|
1527
1688
|
}
|
|
1528
1689
|
}
|
|
1529
|
-
})
|
|
1530
|
-
// DEBUG
|
|
1531
|
-
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received an object value: ', value))
|
|
1532
|
-
),
|
|
1690
|
+
})),
|
|
1533
1691
|
// On dropdown button click (no distinctUntilChanged(), nor debounceTime)
|
|
1534
1692
|
this.dropButtonClick
|
|
1535
|
-
.pipe(operators.filter(function (event) { return _this.
|
|
1693
|
+
.pipe(operators.filter(function (event) { return !_this.mobile && _this.enabled && (!event || !event.defaultPrevented); }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.formControl.value; }),
|
|
1536
1694
|
// Make sure there is enough characters
|
|
1537
1695
|
operators.filter(thresholdFilterFn)),
|
|
1538
1696
|
// Merge some observables, with a common distinctUntilChanged() pipe, and NO debounceTime
|
|
1539
1697
|
rxjs.merge(
|
|
1540
1698
|
// Focus or click => Load all
|
|
1541
1699
|
rxjs.merge(this.focused, this.clicked)
|
|
1542
|
-
.pipe(operators.filter(function (_) { return _this.enabled && _this.
|
|
1700
|
+
.pipe(operators.filter(function (_) { return _this.enabled && !_this.mobile; }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.formControl.value; })
|
|
1543
1701
|
// DEBUG
|
|
1544
1702
|
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received focused or clicked event: ', value))
|
|
1545
1703
|
), rxjs.merge(this.$inputItems, this._$filter)
|
|
1546
|
-
.pipe(operators.filter(function (_) { return _this.
|
|
1704
|
+
.pipe(operators.filter(function (_) { return _this.enabled; }), operators.map(function (_) { return _this.formControl.value; })))
|
|
1547
1705
|
.pipe(
|
|
1548
1706
|
// Make sure there is enough characters
|
|
1549
1707
|
operators.filter(thresholdFilterFn),
|
|
@@ -1576,7 +1734,7 @@
|
|
|
1576
1734
|
fetchMoreItemsChanges)
|
|
1577
1735
|
.subscribe(function (items) {
|
|
1578
1736
|
// Make sure control value is inside (mat-select)
|
|
1579
|
-
if (items &&
|
|
1737
|
+
if (items && _this.mobile) {
|
|
1580
1738
|
var value_1 = _this.formControl.value;
|
|
1581
1739
|
if (isNotNil(value_1) && typeof value_1 === 'object' && items.findIndex(function (item) { return _this.equals(item, value_1); }) === -1) {
|
|
1582
1740
|
// If form value is missing: add it to the list
|
|
@@ -1590,7 +1748,7 @@
|
|
|
1590
1748
|
this._subscription.add(this.blurred
|
|
1591
1749
|
.pipe(
|
|
1592
1750
|
// Skip if not searchable
|
|
1593
|
-
operators.filter(function (_) { return _this.
|
|
1751
|
+
operators.filter(function (_) { return !_this.mobile; }), operators.map(function (_) { return _this.formControl.value; })
|
|
1594
1752
|
// DEBUG
|
|
1595
1753
|
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received blurred event: ', value)),
|
|
1596
1754
|
)
|
|
@@ -1614,6 +1772,7 @@
|
|
|
1614
1772
|
_this.$filteredItems.next(undefined);
|
|
1615
1773
|
}
|
|
1616
1774
|
_this._implicitValue = null; // reset the implicit value
|
|
1775
|
+
_this.closePanel(); // Clone panel
|
|
1617
1776
|
}));
|
|
1618
1777
|
// Listen form control status change
|
|
1619
1778
|
this._subscription.add(this.formControl.statusChanges
|
|
@@ -1624,6 +1783,7 @@
|
|
|
1624
1783
|
.subscribe(function () { return _this.checkIfTouched(); }));
|
|
1625
1784
|
this._subscription.add(this.keydownEscape.subscribe(function (event) {
|
|
1626
1785
|
if (_this.isOpen) {
|
|
1786
|
+
// Avoid form or page to manage escape event
|
|
1627
1787
|
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
1628
1788
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
|
1629
1789
|
// DEBUG
|
|
@@ -1659,7 +1819,6 @@
|
|
|
1659
1819
|
this.equals = null;
|
|
1660
1820
|
this.suggestFn = null;
|
|
1661
1821
|
this.$filteredItems = null;
|
|
1662
|
-
this.matSelectItems$ = null;
|
|
1663
1822
|
this.config = null;
|
|
1664
1823
|
this.classList = null;
|
|
1665
1824
|
this._onChangeCallback = null;
|
|
@@ -1674,8 +1833,13 @@
|
|
|
1674
1833
|
* Allow to reload content. Useful when filter has been changed but not detected
|
|
1675
1834
|
*/
|
|
1676
1835
|
MatAutocompleteField.prototype.reloadItems = function (value) {
|
|
1836
|
+
var _a;
|
|
1677
1837
|
// Force a refresh
|
|
1678
1838
|
this._reload$.next(value || '*');
|
|
1839
|
+
// Clear the search bar, because options will not correspond
|
|
1840
|
+
if (!this.isOpen && isNotNilOrBlank((_a = this.ionSearchbar) === null || _a === void 0 ? void 0 : _a.value)) {
|
|
1841
|
+
this.ionSearchbar.value = null;
|
|
1842
|
+
}
|
|
1679
1843
|
};
|
|
1680
1844
|
MatAutocompleteField.prototype.writeValue = function (value) {
|
|
1681
1845
|
// DEBUG
|
|
@@ -1699,15 +1863,15 @@
|
|
|
1699
1863
|
this.cd.markForCheck();
|
|
1700
1864
|
};
|
|
1701
1865
|
MatAutocompleteField.prototype.focus = function () {
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
focusInput(this.matInputText);
|
|
1866
|
+
if (this.mobile) {
|
|
1867
|
+
this.matSelect.focus();
|
|
1705
1868
|
}
|
|
1706
1869
|
else {
|
|
1707
|
-
(
|
|
1870
|
+
focusInput(this.matInputText);
|
|
1708
1871
|
}
|
|
1709
1872
|
};
|
|
1710
1873
|
MatAutocompleteField.prototype.filterInputTextFocusEvent = function (event) {
|
|
1874
|
+
var _a;
|
|
1711
1875
|
if (!event || event.defaultPrevented)
|
|
1712
1876
|
return;
|
|
1713
1877
|
// Ignore event from mat-option
|
|
@@ -1722,7 +1886,7 @@
|
|
|
1722
1886
|
}
|
|
1723
1887
|
// DEBUG
|
|
1724
1888
|
//if (this.debug) console.debug(this.logPrefix + ' Select input content');
|
|
1725
|
-
var hasContent =
|
|
1889
|
+
var hasContent = isNotNilOrBlank((_a = event.target) === null || _a === void 0 ? void 0 : _a.value);
|
|
1726
1890
|
// If combo is empty, or if has content but should force to show panel on focus
|
|
1727
1891
|
if (!hasContent || this.showPanelOnFocus || this.showAllOnFocus) {
|
|
1728
1892
|
// DEBUG
|
|
@@ -1742,18 +1906,38 @@
|
|
|
1742
1906
|
event.stopPropagation();
|
|
1743
1907
|
event.returnValue = false;
|
|
1744
1908
|
// DEBUG
|
|
1745
|
-
if (this.debug)
|
|
1746
|
-
console.debug(this.logPrefix + " Cancelling blur event");
|
|
1909
|
+
//if (this.debug) console.debug(this.logPrefix + " Cancelling blur event");
|
|
1747
1910
|
return false;
|
|
1748
1911
|
}
|
|
1749
|
-
//DEBUG
|
|
1750
|
-
if (this.debug)
|
|
1751
|
-
console.debug(this.logPrefix + ' Blur: move caret to the beginning');
|
|
1912
|
+
// DEBUG
|
|
1913
|
+
//if (this.debug) console.debug(this.logPrefix + ' Blur: move caret to the beginning');
|
|
1752
1914
|
// Move caret to the beginning (fix issue IMAGINE-469)
|
|
1753
1915
|
selectInputRange(event.target, 0, 0);
|
|
1754
1916
|
this.blurred.emit(event);
|
|
1755
1917
|
return true;
|
|
1756
1918
|
};
|
|
1919
|
+
MatAutocompleteField.prototype.ionSearchBarChanged = function (event) {
|
|
1920
|
+
if (!event || event.defaultPrevented || !this.matSelect.panelOpen)
|
|
1921
|
+
return;
|
|
1922
|
+
// DEBUG
|
|
1923
|
+
//console.debug(this.logPrefix + " Received <ion-searchbar> changes", event.detail.data);
|
|
1924
|
+
event.preventDefault();
|
|
1925
|
+
event.detail.preventDefault();
|
|
1926
|
+
event.stopPropagation();
|
|
1927
|
+
event.detail.stopPropagation();
|
|
1928
|
+
this.markAsLoading();
|
|
1929
|
+
this.reloadItems(event.detail.data);
|
|
1930
|
+
// TODO avoid mat-select to focus the option
|
|
1931
|
+
/*if (this.multiple) {
|
|
1932
|
+
this.matSelect._elementRef;
|
|
1933
|
+
}*/
|
|
1934
|
+
};
|
|
1935
|
+
MatAutocompleteField.prototype.ionSearchBarClear = function (event) {
|
|
1936
|
+
if (!event || event.defaultPrevented || !this.matSelect.panelOpen)
|
|
1937
|
+
return;
|
|
1938
|
+
this.markAsLoading();
|
|
1939
|
+
this.reloadItems();
|
|
1940
|
+
};
|
|
1757
1941
|
MatAutocompleteField.prototype.filterMatSelectFocusEvent = function (event) {
|
|
1758
1942
|
if (!event || event.defaultPrevented)
|
|
1759
1943
|
return;
|
|
@@ -1779,20 +1963,6 @@
|
|
|
1779
1963
|
this.blurred.emit(event);
|
|
1780
1964
|
return true;
|
|
1781
1965
|
};
|
|
1782
|
-
MatAutocompleteField.prototype.toggleSearch = function (event) {
|
|
1783
|
-
var searchable = !this.searchable;
|
|
1784
|
-
if (searchable && this.searchable && this.matInputText) {
|
|
1785
|
-
this.focus();
|
|
1786
|
-
}
|
|
1787
|
-
else {
|
|
1788
|
-
this.searchable = searchable;
|
|
1789
|
-
if (searchable) {
|
|
1790
|
-
this.autofocus = true;
|
|
1791
|
-
this.showPanelOnFocus = false;
|
|
1792
|
-
}
|
|
1793
|
-
this.markForCheck();
|
|
1794
|
-
}
|
|
1795
|
-
};
|
|
1796
1966
|
MatAutocompleteField.prototype.clearValue = function (event) {
|
|
1797
1967
|
this.writeValue(null);
|
|
1798
1968
|
event.stopPropagation();
|
|
@@ -1845,7 +2015,7 @@
|
|
|
1845
2015
|
Object.defineProperty(MatAutocompleteField.prototype, "isOpen", {
|
|
1846
2016
|
get: function () {
|
|
1847
2017
|
var _a, _b;
|
|
1848
|
-
return (this.
|
|
2018
|
+
return (!this.mobile && ((_a = this.autocomplete) === null || _a === void 0 ? void 0 : _a.isOpen))
|
|
1849
2019
|
|| ((_b = this.matSelect) === null || _b === void 0 ? void 0 : _b.panelOpen)
|
|
1850
2020
|
|| false;
|
|
1851
2021
|
},
|
|
@@ -1891,8 +2061,7 @@
|
|
|
1891
2061
|
res = data;
|
|
1892
2062
|
}
|
|
1893
2063
|
// DEBUG
|
|
1894
|
-
if (this.debug)
|
|
1895
|
-
console.debug(this.logPrefix + ' Filtered items by suggestFn:', value, res);
|
|
2064
|
+
//if (this.debug) console.debug(this.logPrefix + ' Filtered items by suggestFn:', value, res);
|
|
1896
2065
|
return [2 /*return*/, res];
|
|
1897
2066
|
}
|
|
1898
2067
|
});
|
|
@@ -1920,7 +2089,7 @@
|
|
|
1920
2089
|
});
|
|
1921
2090
|
};
|
|
1922
2091
|
MatAutocompleteField.prototype.updateImplicitValue = function (items) {
|
|
1923
|
-
if (this.
|
|
2092
|
+
if (!this.mobile) {
|
|
1924
2093
|
// Store implicit value (will use it onBlur if not other value selected)
|
|
1925
2094
|
if (items && items.length === 1) {
|
|
1926
2095
|
this._implicitValue = items[0];
|
|
@@ -1974,12 +2143,13 @@
|
|
|
1974
2143
|
{ type: i0.Component, args: [{
|
|
1975
2144
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
1976
2145
|
selector: 'mat-autocomplete-field',
|
|
1977
|
-
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <!-- readonly -->\n <mat-form-field *ngIf=\"_readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [title]=\"displayValue\"\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 [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n\n <ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- Basic select -->\n <mat-select #matSelect\n *ngIf=\"!searchable; else searchableTemplate\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n [compareWith]=\"equals\"\n [multiple]=\"multiple\"\n [required]=\"required\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- header -->\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <!-- options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text>{{item | propertyGet: path }}</ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initMatSelectInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <ion-row class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text *ngIf=\"itemCount; let count\" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n </mat-select>\n\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #searchableTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [required]=\"required\"\n (click)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label><i>{{noResultMessage | translate}}</i></ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n\n <ion-row class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text *ngIf=\"itemCount; let count\" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n </mat-autocomplete>\n\n </ng-template>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n</ion-grid>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"dropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
|
|
2146
|
+
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <!-- readonly -->\n <mat-form-field *ngIf=\"_readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [title]=\"displayValue\"\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 [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n\n <ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- Mobile or Mutliple (use <mat-select>) -->\n <mat-select #matSelect\n *ngIf=\"mobile || multiple; else desktopTemplate\"\n [disableRipple]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n [compareWith]=\"equals\"\n [multiple]=\"multiple\"\n [typeaheadDebounceInterval]=\"debounceTime * 10\"\n [required]=\"required\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- Search bar -->\n <ion-searchbar *ngIf=\"showSearchBar\" #ionSearchbar\n class=\"mat-select-header\"\n [class.ion-searchbar-sticky]=\"stickySearchBar\"\n inputmode=\"search\"\n autocomplete=\"off\"\n animated=\"true\"\n showClearButton\n [debounce]=\"debounceTime\"\n (ionClear)=\"ionSearchBarClear($event)\"\n (ionInput)=\"ionSearchBarChanged($event)\"\n [placeholder]=\"'COMMON.BTN_SEARCH'|translate\"\n ></ion-searchbar>\n\n <!-- Headers -->\n <ion-row class=\"mat-select-header column ion-no-padding\"\n [class.multiple]=\"multiple\"\n [class.ion-searchbar-sticky]=\"showSearchBar && stickySearchBar\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required && !multiple\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- Options -->\n <ng-container *ngIf=\"$filteredItems | async as items; else loadingTemplate\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label><i>{{noResultMessage | translate}}</i></ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initMatSelectInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- footer -->\n <ion-row *ngIf=\"itemCount as count\"\n class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(displayValue | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-select>\n\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #desktopTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [required]=\"required\"\n (click)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [panelWidth]=\"panelWidth\">\n <!-- Headers -->\n <ion-row class=\"mat-autocomplete-header column ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- Options -->\n <ng-container *ngIf=\"$filteredItems | async as items; else loadingTemplate\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label><i>{{noResultMessage | translate}}</i></ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(displayValue | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n\n <!-- footer -->\n <ion-row *ngIf=\"itemCount; let count\" class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n </mat-autocomplete>\n\n </ng-template>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n</ion-grid>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"desktop\"\n (click)=\"dropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n\n<ng-template #headers>\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n</ng-template>\n\n<ng-template #options>\n\n\n</ng-template>\n\n",
|
|
1978
2147
|
providers: [{
|
|
1979
2148
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
1980
2149
|
multi: true,
|
|
1981
2150
|
useExisting: i0.forwardRef(function () { return MatAutocompleteField; })
|
|
1982
2151
|
}],
|
|
2152
|
+
animations: [slideInOutAnimation],
|
|
1983
2153
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1984
2154
|
styles: [":host{display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}mat-icon.select-arrow{color:rgba(0,0,0,.47);font-size:150%}"]
|
|
1985
2155
|
},] }
|
|
@@ -2020,6 +2190,8 @@
|
|
|
2020
2190
|
suggestLengthThreshold: [{ type: i0.Input }],
|
|
2021
2191
|
showLoadingSpinner: [{ type: i0.Input }],
|
|
2022
2192
|
debug: [{ type: i0.Input }],
|
|
2193
|
+
showSearchBar: [{ type: i0.Input }],
|
|
2194
|
+
stickySearchBar: [{ type: i0.Input }],
|
|
2023
2195
|
clicked: [{ type: i0.Output, args: ['click',] }],
|
|
2024
2196
|
blurred: [{ type: i0.Output, args: ['blur',] }],
|
|
2025
2197
|
focused: [{ type: i0.Output, args: ['focus',] }],
|
|
@@ -2027,6 +2199,7 @@
|
|
|
2027
2199
|
keydownEscape: [{ type: i0.Output, args: ['keydown.escape',] }],
|
|
2028
2200
|
keyupEnter: [{ type: i0.Output, args: ['keyup.enter',] }],
|
|
2029
2201
|
matSelect: [{ type: i0.ViewChild, args: ['matSelect',] }],
|
|
2202
|
+
ionSearchbar: [{ type: i0.ViewChild, args: ['ionSearchbar',] }],
|
|
2030
2203
|
matInputText: [{ type: i0.ViewChild, args: ['matInputText',] }],
|
|
2031
2204
|
autocomplete: [{ type: i0.ViewChild, args: [autocomplete.MatAutocomplete,] }],
|
|
2032
2205
|
autocompleteTrigger: [{ type: i0.ViewChild, args: [autocomplete.MatAutocompleteTrigger,] }],
|
|
@@ -2057,7 +2230,7 @@
|
|
|
2057
2230
|
};
|
|
2058
2231
|
return DateFormatPipe;
|
|
2059
2232
|
}());
|
|
2060
|
-
DateFormatPipe.ɵprov =
|
|
2233
|
+
DateFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
2061
2234
|
DateFormatPipe.decorators = [
|
|
2062
2235
|
{ type: i0.Pipe, args: [{
|
|
2063
2236
|
name: 'dateFormat'
|
|
@@ -2069,7 +2242,7 @@
|
|
|
2069
2242
|
{ type: i1$2.TranslateService }
|
|
2070
2243
|
]; };
|
|
2071
2244
|
|
|
2072
|
-
var moment = momentImported__namespace;
|
|
2245
|
+
var moment$7 = momentImported__namespace;
|
|
2073
2246
|
var DateDiffDurationPipe = /** @class */ (function () {
|
|
2074
2247
|
function DateDiffDurationPipe(dateAdapter, translate) {
|
|
2075
2248
|
var _this = this;
|
|
@@ -2086,10 +2259,10 @@
|
|
|
2086
2259
|
return this.format(startDate, endDate);
|
|
2087
2260
|
};
|
|
2088
2261
|
DateDiffDurationPipe.prototype.format = function (startDate, endDate) {
|
|
2089
|
-
var duration = moment.duration(endDate.diff(startDate));
|
|
2262
|
+
var duration = moment$7.duration(endDate.diff(startDate));
|
|
2090
2263
|
if (duration.asMinutes() < 0)
|
|
2091
2264
|
return '';
|
|
2092
|
-
var timeDuration = moment(0)
|
|
2265
|
+
var timeDuration = moment$7(0)
|
|
2093
2266
|
.hour(duration.hours())
|
|
2094
2267
|
.minute(duration.minutes());
|
|
2095
2268
|
var days = Math.floor(duration.asDays());
|
|
@@ -2097,7 +2270,7 @@
|
|
|
2097
2270
|
};
|
|
2098
2271
|
return DateDiffDurationPipe;
|
|
2099
2272
|
}());
|
|
2100
|
-
DateDiffDurationPipe.ɵprov =
|
|
2273
|
+
DateDiffDurationPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0__namespace.ɵɵinject(i1__namespace$2.DateAdapter), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
2101
2274
|
DateDiffDurationPipe.decorators = [
|
|
2102
2275
|
{ type: i0.Pipe, args: [{
|
|
2103
2276
|
name: 'dateDiffDuration'
|
|
@@ -2119,7 +2292,7 @@
|
|
|
2119
2292
|
};
|
|
2120
2293
|
return DateFromNowPipe;
|
|
2121
2294
|
}());
|
|
2122
|
-
DateFromNowPipe.ɵprov =
|
|
2295
|
+
DateFromNowPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
2123
2296
|
DateFromNowPipe.decorators = [
|
|
2124
2297
|
{ type: i0.Pipe, args: [{
|
|
2125
2298
|
name: 'dateFromNow'
|
|
@@ -2188,7 +2361,7 @@
|
|
|
2188
2361
|
value *= -1;
|
|
2189
2362
|
}
|
|
2190
2363
|
}
|
|
2191
|
-
var degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
2364
|
+
var degrees = roundFloat$1(value, opts.maxDecimals).toString();
|
|
2192
2365
|
// Add sign
|
|
2193
2366
|
var sign = negative ? '-' : '+';
|
|
2194
2367
|
if (opts.placeholderChar) {
|
|
@@ -2239,7 +2412,7 @@
|
|
|
2239
2412
|
}
|
|
2240
2413
|
var degrees = Math.trunc(value);
|
|
2241
2414
|
var minutes = Math.trunc((value - degrees) * 60);
|
|
2242
|
-
var seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
2415
|
+
var seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
2243
2416
|
while (seconds >= 60) {
|
|
2244
2417
|
seconds -= 60;
|
|
2245
2418
|
minutes += 1;
|
|
@@ -2307,7 +2480,7 @@
|
|
|
2307
2480
|
}
|
|
2308
2481
|
}
|
|
2309
2482
|
var degrees = Math.trunc(value);
|
|
2310
|
-
var minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
2483
|
+
var minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
|
|
2311
2484
|
while (minutes >= 60) {
|
|
2312
2485
|
minutes -= 60;
|
|
2313
2486
|
degrees += 1;
|
|
@@ -2358,15 +2531,15 @@
|
|
|
2358
2531
|
return NaN;
|
|
2359
2532
|
}
|
|
2360
2533
|
if (pattern === 'DD')
|
|
2361
|
-
return roundFloat(degrees, maxDecimals);
|
|
2534
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
2362
2535
|
var minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
2363
2536
|
var seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
2364
2537
|
var direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
2365
2538
|
var sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
2366
2539
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
2367
|
-
return roundFloat(degrees, maxDecimals);
|
|
2540
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
2368
2541
|
}
|
|
2369
|
-
function roundFloat(input, maxDecimals) {
|
|
2542
|
+
function roundFloat$1(input, maxDecimals) {
|
|
2370
2543
|
if (maxDecimals > 0) {
|
|
2371
2544
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
2372
2545
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -2389,7 +2562,7 @@
|
|
|
2389
2562
|
};
|
|
2390
2563
|
return LatLongFormatPipe;
|
|
2391
2564
|
}());
|
|
2392
|
-
LatLongFormatPipe.ɵprov =
|
|
2565
|
+
LatLongFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
2393
2566
|
LatLongFormatPipe.decorators = [
|
|
2394
2567
|
{ type: i0.Pipe, args: [{
|
|
2395
2568
|
name: 'latLongFormat'
|
|
@@ -2402,7 +2575,7 @@
|
|
|
2402
2575
|
}
|
|
2403
2576
|
return LatitudeFormatPipe;
|
|
2404
2577
|
}());
|
|
2405
|
-
LatitudeFormatPipe.ɵprov =
|
|
2578
|
+
LatitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
2406
2579
|
LatitudeFormatPipe.decorators = [
|
|
2407
2580
|
{ type: i0.Pipe, args: [{
|
|
2408
2581
|
name: 'latitudeFormat'
|
|
@@ -2415,7 +2588,7 @@
|
|
|
2415
2588
|
}
|
|
2416
2589
|
return LongitudeFormatPipe;
|
|
2417
2590
|
}());
|
|
2418
|
-
LongitudeFormatPipe.ɵprov =
|
|
2591
|
+
LongitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
2419
2592
|
LongitudeFormatPipe.decorators = [
|
|
2420
2593
|
{ type: i0.Pipe, args: [{
|
|
2421
2594
|
name: 'longitudeFormat'
|
|
@@ -2438,7 +2611,7 @@
|
|
|
2438
2611
|
};
|
|
2439
2612
|
return NumberFormatPipe;
|
|
2440
2613
|
}());
|
|
2441
|
-
NumberFormatPipe.ɵprov =
|
|
2614
|
+
NumberFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
2442
2615
|
NumberFormatPipe.decorators = [
|
|
2443
2616
|
{ type: i0.Pipe, args: [{
|
|
2444
2617
|
name: 'numberFormat'
|
|
@@ -2481,7 +2654,7 @@
|
|
|
2481
2654
|
};
|
|
2482
2655
|
return HighlightPipe;
|
|
2483
2656
|
}());
|
|
2484
|
-
HighlightPipe.ɵprov =
|
|
2657
|
+
HighlightPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
2485
2658
|
HighlightPipe.decorators = [
|
|
2486
2659
|
{ type: i0.Pipe, args: [{
|
|
2487
2660
|
name: 'highlight'
|
|
@@ -2549,7 +2722,7 @@
|
|
|
2549
2722
|
{ type: i0.Pipe, args: [{ name: 'fileSize' },] }
|
|
2550
2723
|
];
|
|
2551
2724
|
|
|
2552
|
-
var moment$
|
|
2725
|
+
var moment$6 = momentImported__namespace;
|
|
2553
2726
|
var tz = momentTZImported__namespace;
|
|
2554
2727
|
var DATE_UNIX_TIMESTAMP = 'X';
|
|
2555
2728
|
var DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
@@ -2627,32 +2800,32 @@
|
|
|
2627
2800
|
if (!value || momentImported.isMoment(value))
|
|
2628
2801
|
return value;
|
|
2629
2802
|
// Parse the input value, as a ISO date time
|
|
2630
|
-
var date = moment$
|
|
2803
|
+
var date = moment$6(value, DATE_ISO_PATTERN);
|
|
2631
2804
|
if (date.isValid())
|
|
2632
2805
|
return date;
|
|
2633
2806
|
// Not valid: trying to convert from unix timestamp
|
|
2634
2807
|
if (typeof value === 'string') {
|
|
2635
2808
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2636
2809
|
if (value.length === 10) {
|
|
2637
|
-
return moment$
|
|
2810
|
+
return moment$6(value, DATE_UNIX_TIMESTAMP);
|
|
2638
2811
|
}
|
|
2639
2812
|
else if (value.length === 13) {
|
|
2640
|
-
return moment$
|
|
2813
|
+
return moment$6(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2641
2814
|
}
|
|
2642
2815
|
}
|
|
2643
2816
|
console.warn('Unable to parse date: ' + value);
|
|
2644
2817
|
return undefined;
|
|
2645
2818
|
}
|
|
2646
2819
|
function fromUnixTimestamp(timeInSec) {
|
|
2647
|
-
return moment$
|
|
2820
|
+
return moment$6(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2648
2821
|
}
|
|
2649
2822
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2650
|
-
return moment$
|
|
2823
|
+
return moment$6(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2651
2824
|
}
|
|
2652
2825
|
function toDuration(value, unit) {
|
|
2653
2826
|
if (!value)
|
|
2654
2827
|
return undefined;
|
|
2655
|
-
var duration = moment$
|
|
2828
|
+
var duration = moment$6.duration(value, unit);
|
|
2656
2829
|
// fix 990+ ms
|
|
2657
2830
|
if (duration.milliseconds() >= 990) {
|
|
2658
2831
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2682,7 +2855,7 @@
|
|
|
2682
2855
|
};
|
|
2683
2856
|
return DurationPipe;
|
|
2684
2857
|
}());
|
|
2685
|
-
DurationPipe.ɵprov =
|
|
2858
|
+
DurationPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2686
2859
|
DurationPipe.decorators = [
|
|
2687
2860
|
{ type: i0.Pipe, args: [{
|
|
2688
2861
|
name: 'duration'
|
|
@@ -2706,7 +2879,7 @@
|
|
|
2706
2879
|
};
|
|
2707
2880
|
return MathAbsPipe;
|
|
2708
2881
|
}());
|
|
2709
|
-
MathAbsPipe.ɵprov =
|
|
2882
|
+
MathAbsPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2710
2883
|
MathAbsPipe.decorators = [
|
|
2711
2884
|
{ type: i0.Pipe, args: [{
|
|
2712
2885
|
name: 'mathAbs'
|
|
@@ -2721,7 +2894,7 @@
|
|
|
2721
2894
|
};
|
|
2722
2895
|
return EvenPipe;
|
|
2723
2896
|
}());
|
|
2724
|
-
EvenPipe.ɵprov =
|
|
2897
|
+
EvenPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2725
2898
|
EvenPipe.decorators = [
|
|
2726
2899
|
{ type: i0.Pipe, args: [{
|
|
2727
2900
|
name: 'even'
|
|
@@ -2736,7 +2909,7 @@
|
|
|
2736
2909
|
};
|
|
2737
2910
|
return OddPipe;
|
|
2738
2911
|
}());
|
|
2739
|
-
OddPipe.ɵprov =
|
|
2912
|
+
OddPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2740
2913
|
OddPipe.decorators = [
|
|
2741
2914
|
{ type: i0.Pipe, args: [{
|
|
2742
2915
|
name: 'odd'
|
|
@@ -2868,7 +3041,7 @@
|
|
|
2868
3041
|
};
|
|
2869
3042
|
return MapGetPipe;
|
|
2870
3043
|
}());
|
|
2871
|
-
MapGetPipe.ɵprov =
|
|
3044
|
+
MapGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
2872
3045
|
MapGetPipe.decorators = [
|
|
2873
3046
|
{ type: i0.Pipe, args: [{
|
|
2874
3047
|
name: 'mapGet'
|
|
@@ -2885,7 +3058,7 @@
|
|
|
2885
3058
|
};
|
|
2886
3059
|
return MapKeysPipe;
|
|
2887
3060
|
}());
|
|
2888
|
-
MapKeysPipe.ɵprov =
|
|
3061
|
+
MapKeysPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
2889
3062
|
MapKeysPipe.decorators = [
|
|
2890
3063
|
{ type: i0.Pipe, args: [{
|
|
2891
3064
|
name: 'mapKeys'
|
|
@@ -2902,7 +3075,7 @@
|
|
|
2902
3075
|
};
|
|
2903
3076
|
return MapValuesPipe;
|
|
2904
3077
|
}());
|
|
2905
|
-
MapValuesPipe.ɵprov =
|
|
3078
|
+
MapValuesPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
2906
3079
|
MapValuesPipe.decorators = [
|
|
2907
3080
|
{ type: i0.Pipe, args: [{
|
|
2908
3081
|
name: 'mapValues'
|
|
@@ -2918,7 +3091,7 @@
|
|
|
2918
3091
|
};
|
|
2919
3092
|
return IsNotNilOrBlankPipe;
|
|
2920
3093
|
}());
|
|
2921
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
3094
|
+
IsNotNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2922
3095
|
IsNotNilOrBlankPipe.decorators = [
|
|
2923
3096
|
{ type: i0.Pipe, args: [{
|
|
2924
3097
|
name: 'isNotNilOrBlank'
|
|
@@ -2933,7 +3106,7 @@
|
|
|
2933
3106
|
};
|
|
2934
3107
|
return IsNilOrBlankPipe;
|
|
2935
3108
|
}());
|
|
2936
|
-
IsNilOrBlankPipe.ɵprov =
|
|
3109
|
+
IsNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2937
3110
|
IsNilOrBlankPipe.decorators = [
|
|
2938
3111
|
{ type: i0.Pipe, args: [{
|
|
2939
3112
|
name: 'isNilOrBlank'
|
|
@@ -2948,7 +3121,7 @@
|
|
|
2948
3121
|
};
|
|
2949
3122
|
return ToStringPipe;
|
|
2950
3123
|
}());
|
|
2951
|
-
ToStringPipe.ɵprov =
|
|
3124
|
+
ToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2952
3125
|
ToStringPipe.decorators = [
|
|
2953
3126
|
{ type: i0.Pipe, args: [{
|
|
2954
3127
|
name: 'toString'
|
|
@@ -2963,7 +3136,7 @@
|
|
|
2963
3136
|
};
|
|
2964
3137
|
return StrLengthPipe;
|
|
2965
3138
|
}());
|
|
2966
|
-
StrLengthPipe.ɵprov =
|
|
3139
|
+
StrLengthPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2967
3140
|
StrLengthPipe.decorators = [
|
|
2968
3141
|
{ type: i0.Pipe, args: [{
|
|
2969
3142
|
name: 'strLength'
|
|
@@ -2978,7 +3151,7 @@
|
|
|
2978
3151
|
};
|
|
2979
3152
|
return StrIncludesPipe;
|
|
2980
3153
|
}());
|
|
2981
|
-
StrIncludesPipe.ɵprov =
|
|
3154
|
+
StrIncludesPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function StrIncludesPipe_Factory() { return new StrIncludesPipe(); }, token: StrIncludesPipe, providedIn: "root" });
|
|
2982
3155
|
StrIncludesPipe.decorators = [
|
|
2983
3156
|
{ type: i0.Pipe, args: [{
|
|
2984
3157
|
name: 'strIncludes'
|
|
@@ -3069,7 +3242,7 @@
|
|
|
3069
3242
|
};
|
|
3070
3243
|
return TranslateContextService;
|
|
3071
3244
|
}());
|
|
3072
|
-
TranslateContextService.ɵprov =
|
|
3245
|
+
TranslateContextService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
3073
3246
|
TranslateContextService.decorators = [
|
|
3074
3247
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
3075
3248
|
];
|
|
@@ -3126,7 +3299,7 @@
|
|
|
3126
3299
|
};
|
|
3127
3300
|
return PropertyGetPipe;
|
|
3128
3301
|
}());
|
|
3129
|
-
PropertyGetPipe.ɵprov =
|
|
3302
|
+
PropertyGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
3130
3303
|
PropertyGetPipe.decorators = [
|
|
3131
3304
|
{ type: i0.Pipe, args: [{
|
|
3132
3305
|
name: 'propertyGet'
|
|
@@ -3152,7 +3325,7 @@
|
|
|
3152
3325
|
ngInit: [{ type: i0.Output }]
|
|
3153
3326
|
};
|
|
3154
3327
|
|
|
3155
|
-
var moment$
|
|
3328
|
+
var moment$5 = momentImported__namespace;
|
|
3156
3329
|
// @dynamic
|
|
3157
3330
|
var SharedValidators = /** @class */ (function () {
|
|
3158
3331
|
function SharedValidators() {
|
|
@@ -3235,7 +3408,7 @@
|
|
|
3235
3408
|
};
|
|
3236
3409
|
SharedValidators.validDate = function (control) {
|
|
3237
3410
|
var value = control.value;
|
|
3238
|
-
var date = !value || moment$
|
|
3411
|
+
var date = !value || moment$5.isMoment(value) ? value : moment$5(control.value, DATE_ISO_PATTERN);
|
|
3239
3412
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
3240
3413
|
return { validDate: true };
|
|
3241
3414
|
}
|
|
@@ -4442,7 +4615,7 @@
|
|
|
4442
4615
|
};
|
|
4443
4616
|
return FormErrorTranslator;
|
|
4444
4617
|
}());
|
|
4445
|
-
FormErrorTranslator.ɵprov =
|
|
4618
|
+
FormErrorTranslator.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
|
|
4446
4619
|
FormErrorTranslator.decorators = [
|
|
4447
4620
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
4448
4621
|
];
|
|
@@ -4527,7 +4700,7 @@
|
|
|
4527
4700
|
};
|
|
4528
4701
|
return FormGetPipe;
|
|
4529
4702
|
}());
|
|
4530
|
-
FormGetPipe.ɵprov =
|
|
4703
|
+
FormGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormGetPipe_Factory() { return new FormGetPipe(); }, token: FormGetPipe, providedIn: "root" });
|
|
4531
4704
|
FormGetPipe.decorators = [
|
|
4532
4705
|
{ type: i0.Pipe, args: [{
|
|
4533
4706
|
name: 'formGet'
|
|
@@ -4542,7 +4715,7 @@
|
|
|
4542
4715
|
};
|
|
4543
4716
|
return FormGetControlPipe;
|
|
4544
4717
|
}());
|
|
4545
|
-
FormGetControlPipe.ɵprov =
|
|
4718
|
+
FormGetControlPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormGetControlPipe_Factory() { return new FormGetControlPipe(); }, token: FormGetControlPipe, providedIn: "root" });
|
|
4546
4719
|
FormGetControlPipe.decorators = [
|
|
4547
4720
|
{ type: i0.Pipe, args: [{
|
|
4548
4721
|
name: 'formGetControl'
|
|
@@ -4557,7 +4730,7 @@
|
|
|
4557
4730
|
};
|
|
4558
4731
|
return FormGetArrayPipe;
|
|
4559
4732
|
}());
|
|
4560
|
-
FormGetArrayPipe.ɵprov =
|
|
4733
|
+
FormGetArrayPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormGetArrayPipe_Factory() { return new FormGetArrayPipe(); }, token: FormGetArrayPipe, providedIn: "root" });
|
|
4561
4734
|
FormGetArrayPipe.decorators = [
|
|
4562
4735
|
{ type: i0.Pipe, args: [{
|
|
4563
4736
|
name: 'formGetArray'
|
|
@@ -4572,7 +4745,7 @@
|
|
|
4572
4745
|
};
|
|
4573
4746
|
return FormGetGroupPipe;
|
|
4574
4747
|
}());
|
|
4575
|
-
FormGetGroupPipe.ɵprov =
|
|
4748
|
+
FormGetGroupPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormGetGroupPipe_Factory() { return new FormGetGroupPipe(); }, token: FormGetGroupPipe, providedIn: "root" });
|
|
4576
4749
|
FormGetGroupPipe.decorators = [
|
|
4577
4750
|
{ type: i0.Pipe, args: [{
|
|
4578
4751
|
name: 'formGetGroup'
|
|
@@ -4695,7 +4868,7 @@
|
|
|
4695
4868
|
}
|
|
4696
4869
|
return false;
|
|
4697
4870
|
};
|
|
4698
|
-
var ɵ0$
|
|
4871
|
+
var ɵ0$b = isIpad;
|
|
4699
4872
|
var isIOS = function (win) { return testUserAgent(win, /iPhone|iPod/i) || isIpad(win); };
|
|
4700
4873
|
var isAndroid = function (win) { return testUserAgent(win, /android|sink/i); };
|
|
4701
4874
|
var isCordova = function (win) { return !!(win['cordova'] || win['phonegap'] || win['PhoneGap']); };
|
|
@@ -4944,9 +5117,9 @@
|
|
|
4944
5117
|
var hour = parseInt(durationParts[0] || '0');
|
|
4945
5118
|
var minute = parseInt(durationParts[1] || '0');
|
|
4946
5119
|
var value = hour + (minute + 0.5) / 60;
|
|
4947
|
-
return roundFloat
|
|
5120
|
+
return roundFloat(value, maxDecimals);
|
|
4948
5121
|
}
|
|
4949
|
-
function roundFloat
|
|
5122
|
+
function roundFloat(input, maxDecimals) {
|
|
4950
5123
|
if (maxDecimals > 0) {
|
|
4951
5124
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
4952
5125
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -4970,9 +5143,9 @@
|
|
|
4970
5143
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
4971
5144
|
}
|
|
4972
5145
|
};
|
|
4973
|
-
var noop$
|
|
5146
|
+
var noop$7 = function () {
|
|
4974
5147
|
};
|
|
4975
|
-
var ɵ0$
|
|
5148
|
+
var ɵ0$a = noop$7;
|
|
4976
5149
|
var MatLatLongField = /** @class */ (function () {
|
|
4977
5150
|
function MatLatLongField(platform, translate, formBuilder, cd, formGroupDir) {
|
|
4978
5151
|
this.platform = platform;
|
|
@@ -4980,8 +5153,8 @@
|
|
|
4980
5153
|
this.formBuilder = formBuilder;
|
|
4981
5154
|
this.cd = cd;
|
|
4982
5155
|
this.formGroupDir = formGroupDir;
|
|
4983
|
-
this._onChangeCallback = noop$
|
|
4984
|
-
this._onTouchedCallback = noop$
|
|
5156
|
+
this._onChangeCallback = noop$7;
|
|
5157
|
+
this._onTouchedCallback = noop$7;
|
|
4985
5158
|
this._subscription = new rxjs.Subscription();
|
|
4986
5159
|
this.disabling = false;
|
|
4987
5160
|
this.writing = false;
|
|
@@ -5333,14 +5506,14 @@
|
|
|
5333
5506
|
},] }
|
|
5334
5507
|
];
|
|
5335
5508
|
|
|
5336
|
-
var DEFAULT_VALUE_ACCESSOR = {
|
|
5509
|
+
var DEFAULT_VALUE_ACCESSOR$5 = {
|
|
5337
5510
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5338
5511
|
useExisting: i0.forwardRef(function () { return MatDate; }),
|
|
5339
5512
|
multi: true
|
|
5340
5513
|
};
|
|
5341
|
-
var DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5342
|
-
var noop$
|
|
5343
|
-
var ɵ0$
|
|
5514
|
+
var DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5515
|
+
var noop$6 = function () { };
|
|
5516
|
+
var ɵ0$9 = noop$6;
|
|
5344
5517
|
var MatDate = /** @class */ (function () {
|
|
5345
5518
|
function MatDate(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5346
5519
|
this.platform = platform;
|
|
@@ -5350,13 +5523,13 @@
|
|
|
5350
5523
|
this.cd = cd;
|
|
5351
5524
|
this.keyboard = keyboard;
|
|
5352
5525
|
this.formGroupDir = formGroupDir;
|
|
5353
|
-
this._onChangeCallback = noop$
|
|
5354
|
-
this._onTouchedCallback = noop$
|
|
5526
|
+
this._onChangeCallback = noop$6;
|
|
5527
|
+
this._onTouchedCallback = noop$6;
|
|
5355
5528
|
this._subscription = new rxjs.Subscription();
|
|
5356
5529
|
this._writing = true;
|
|
5357
5530
|
this._disabling = false;
|
|
5358
5531
|
this._readonly = false;
|
|
5359
|
-
this.dayMask = DAY_MASK;
|
|
5532
|
+
this.dayMask = DAY_MASK$2;
|
|
5360
5533
|
this.floatLabel = 'auto';
|
|
5361
5534
|
this.compact = false;
|
|
5362
5535
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -5679,7 +5852,7 @@
|
|
|
5679
5852
|
selector: 'mat-date-field',
|
|
5680
5853
|
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 -->\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]=\"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\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_TIME</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",
|
|
5681
5854
|
providers: [
|
|
5682
|
-
DEFAULT_VALUE_ACCESSOR,
|
|
5855
|
+
DEFAULT_VALUE_ACCESSOR$5,
|
|
5683
5856
|
],
|
|
5684
5857
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
5685
5858
|
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%}"]
|
|
@@ -5714,16 +5887,16 @@
|
|
|
5714
5887
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
5715
5888
|
};
|
|
5716
5889
|
|
|
5717
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
5890
|
+
var DEFAULT_VALUE_ACCESSOR$4 = {
|
|
5718
5891
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5719
5892
|
useExisting: i0.forwardRef(function () { return MatDateTime; }),
|
|
5720
5893
|
multi: true
|
|
5721
5894
|
};
|
|
5722
5895
|
var DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5723
5896
|
var HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
5724
|
-
var HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
5725
|
-
var noop$
|
|
5726
|
-
var ɵ0$
|
|
5897
|
+
var HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
5898
|
+
var noop$5 = function () { };
|
|
5899
|
+
var ɵ0$8 = noop$5;
|
|
5727
5900
|
var MatDateTime = /** @class */ (function () {
|
|
5728
5901
|
function MatDateTime(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5729
5902
|
this.platform = platform;
|
|
@@ -5733,14 +5906,14 @@
|
|
|
5733
5906
|
this.cd = cd;
|
|
5734
5907
|
this.keyboard = keyboard;
|
|
5735
5908
|
this.formGroupDir = formGroupDir;
|
|
5736
|
-
this._onChangeCallback = noop$
|
|
5737
|
-
this._onTouchedCallback = noop$
|
|
5909
|
+
this._onChangeCallback = noop$5;
|
|
5910
|
+
this._onTouchedCallback = noop$5;
|
|
5738
5911
|
this._subscription = new rxjs.Subscription();
|
|
5739
5912
|
this._writing = true;
|
|
5740
5913
|
this._disabling = false;
|
|
5741
5914
|
this._readonly = false;
|
|
5742
5915
|
this.dayMask = DAY_MASK$1;
|
|
5743
|
-
this.hourMask = HOUR_MASK;
|
|
5916
|
+
this.hourMask = HOUR_MASK$1;
|
|
5744
5917
|
this.floatLabel = 'auto';
|
|
5745
5918
|
this.compact = false;
|
|
5746
5919
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -6098,7 +6271,7 @@
|
|
|
6098
6271
|
selector: 'mat-date-time-field',
|
|
6099
6272
|
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",
|
|
6100
6273
|
providers: [
|
|
6101
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6274
|
+
DEFAULT_VALUE_ACCESSOR$4,
|
|
6102
6275
|
],
|
|
6103
6276
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6104
6277
|
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%}"]
|
|
@@ -6133,15 +6306,15 @@
|
|
|
6133
6306
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
6134
6307
|
};
|
|
6135
6308
|
|
|
6136
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6309
|
+
var DEFAULT_VALUE_ACCESSOR$3 = {
|
|
6137
6310
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6138
6311
|
useExisting: i0.forwardRef(function () { return MatDateShort; }),
|
|
6139
6312
|
multi: true
|
|
6140
6313
|
};
|
|
6141
|
-
var DAY_MASK
|
|
6314
|
+
var DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
6142
6315
|
var noop$4 = function () {
|
|
6143
6316
|
};
|
|
6144
|
-
var ɵ0$
|
|
6317
|
+
var ɵ0$7 = noop$4;
|
|
6145
6318
|
var MatDateShort = /** @class */ (function () {
|
|
6146
6319
|
function MatDateShort(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
6147
6320
|
this.dateAdapter = dateAdapter;
|
|
@@ -6154,7 +6327,7 @@
|
|
|
6154
6327
|
this._onTouchedCallback = noop$4;
|
|
6155
6328
|
this.writing = true;
|
|
6156
6329
|
this.disabling = false;
|
|
6157
|
-
this.dayMask = DAY_MASK
|
|
6330
|
+
this.dayMask = DAY_MASK;
|
|
6158
6331
|
this.disabled = false;
|
|
6159
6332
|
this.floatLabel = 'auto';
|
|
6160
6333
|
this.readonly = false;
|
|
@@ -6431,7 +6604,7 @@
|
|
|
6431
6604
|
selector: 'mat-date-short-field',
|
|
6432
6605
|
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",
|
|
6433
6606
|
providers: [
|
|
6434
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6607
|
+
DEFAULT_VALUE_ACCESSOR$3,
|
|
6435
6608
|
],
|
|
6436
6609
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6437
6610
|
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%}"]
|
|
@@ -6502,16 +6675,16 @@
|
|
|
6502
6675
|
},] }
|
|
6503
6676
|
];
|
|
6504
6677
|
|
|
6505
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6678
|
+
var DEFAULT_VALUE_ACCESSOR$2 = {
|
|
6506
6679
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6507
6680
|
useExisting: i0.forwardRef(function () { return MatDuration; }),
|
|
6508
6681
|
multi: true
|
|
6509
6682
|
};
|
|
6510
6683
|
var HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
6511
|
-
var HOUR_MASK
|
|
6512
|
-
var noop$
|
|
6684
|
+
var HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
6685
|
+
var noop$3 = function () {
|
|
6513
6686
|
};
|
|
6514
|
-
var ɵ0$6 = noop$
|
|
6687
|
+
var ɵ0$6 = noop$3;
|
|
6515
6688
|
var MatDuration = /** @class */ (function () {
|
|
6516
6689
|
function MatDuration(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
6517
6690
|
this.dateAdapter = dateAdapter;
|
|
@@ -6520,11 +6693,11 @@
|
|
|
6520
6693
|
this.cd = cd;
|
|
6521
6694
|
this.formGroupDir = formGroupDir;
|
|
6522
6695
|
this._subscription = new rxjs.Subscription();
|
|
6523
|
-
this._onChangeCallback = noop$
|
|
6524
|
-
this._onTouchedCallback = noop$
|
|
6696
|
+
this._onChangeCallback = noop$3;
|
|
6697
|
+
this._onTouchedCallback = noop$3;
|
|
6525
6698
|
this.writing = true;
|
|
6526
6699
|
this.disabling = false;
|
|
6527
|
-
this.hourMask = HOUR_MASK
|
|
6700
|
+
this.hourMask = HOUR_MASK;
|
|
6528
6701
|
this.disabled = false;
|
|
6529
6702
|
this.floatLabel = 'auto';
|
|
6530
6703
|
this.readonly = false;
|
|
@@ -6717,7 +6890,7 @@
|
|
|
6717
6890
|
selector: 'mat-duration-field',
|
|
6718
6891
|
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",
|
|
6719
6892
|
providers: [
|
|
6720
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6893
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
6721
6894
|
],
|
|
6722
6895
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6723
6896
|
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%}"]
|
|
@@ -6777,22 +6950,22 @@
|
|
|
6777
6950
|
},] }
|
|
6778
6951
|
];
|
|
6779
6952
|
|
|
6780
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6953
|
+
var DEFAULT_VALUE_ACCESSOR$1 = {
|
|
6781
6954
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6782
6955
|
useExisting: i0.forwardRef(function () { return MatBooleanField; }),
|
|
6783
6956
|
multi: true
|
|
6784
6957
|
};
|
|
6785
|
-
var noop$
|
|
6958
|
+
var noop$2 = function () {
|
|
6786
6959
|
};
|
|
6787
|
-
var ɵ0$
|
|
6960
|
+
var ɵ0$5 = noop$2;
|
|
6788
6961
|
var MatBooleanField = /** @class */ (function () {
|
|
6789
6962
|
function MatBooleanField(translate, formBuilder, cd, formGroupDir) {
|
|
6790
6963
|
this.translate = translate;
|
|
6791
6964
|
this.formBuilder = formBuilder;
|
|
6792
6965
|
this.cd = cd;
|
|
6793
6966
|
this.formGroupDir = formGroupDir;
|
|
6794
|
-
this._onChangeCallback = noop$
|
|
6795
|
-
this._onTouchedCallback = noop$
|
|
6967
|
+
this._onChangeCallback = noop$2;
|
|
6968
|
+
this._onTouchedCallback = noop$2;
|
|
6796
6969
|
this._writing = false;
|
|
6797
6970
|
this.showRadio = false;
|
|
6798
6971
|
this.disabled = false;
|
|
@@ -6967,7 +7140,7 @@
|
|
|
6967
7140
|
selector: 'mat-boolean-field',
|
|
6968
7141
|
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",
|
|
6969
7142
|
providers: [
|
|
6970
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
7143
|
+
DEFAULT_VALUE_ACCESSOR$1
|
|
6971
7144
|
],
|
|
6972
7145
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6973
7146
|
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}"]
|
|
@@ -7054,6 +7227,7 @@
|
|
|
7054
7227
|
return MatNumpadEvent;
|
|
7055
7228
|
}(KeyboardEvent));
|
|
7056
7229
|
|
|
7230
|
+
exports.AnimationState = void 0;
|
|
7057
7231
|
(function (AnimationState) {
|
|
7058
7232
|
AnimationState["ENTER"] = "enter";
|
|
7059
7233
|
AnimationState["ENTER_INPUT"] = "enter-input";
|
|
@@ -7221,7 +7395,7 @@
|
|
|
7221
7395
|
};
|
|
7222
7396
|
return MatNumpadDomService;
|
|
7223
7397
|
}());
|
|
7224
|
-
MatNumpadDomService.ɵprov =
|
|
7398
|
+
MatNumpadDomService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0__namespace.ɵɵinject(i0__namespace.ComponentFactoryResolver), i0__namespace.ɵɵinject(i0__namespace.ApplicationRef), i0__namespace.ɵɵinject(i0__namespace.INJECTOR), i0__namespace.ɵɵinject(i1__namespace$3.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
7225
7399
|
MatNumpadDomService.decorators = [
|
|
7226
7400
|
{ type: i0.Injectable, args: [{
|
|
7227
7401
|
providedIn: 'root'
|
|
@@ -7627,7 +7801,7 @@
|
|
|
7627
7801
|
},] }
|
|
7628
7802
|
];
|
|
7629
7803
|
|
|
7630
|
-
var DEFAULT_VALUE_ACCESSOR
|
|
7804
|
+
var DEFAULT_VALUE_ACCESSOR = {
|
|
7631
7805
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
7632
7806
|
useExisting: i0.forwardRef(function () { return MatSwipeField; }),
|
|
7633
7807
|
multi: true
|
|
@@ -7947,7 +8121,7 @@
|
|
|
7947
8121
|
{ type: i0.Component, args: [{
|
|
7948
8122
|
selector: 'mat-swipe-field',
|
|
7949
8123
|
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",
|
|
7950
|
-
providers: [DEFAULT_VALUE_ACCESSOR
|
|
8124
|
+
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
7951
8125
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7952
8126
|
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}"]
|
|
7953
8127
|
},] }
|
|
@@ -8008,14 +8182,14 @@
|
|
|
8008
8182
|
},] }
|
|
8009
8183
|
];
|
|
8010
8184
|
|
|
8011
|
-
var noop$
|
|
8012
|
-
var ɵ0$
|
|
8185
|
+
var noop$1 = function () { };
|
|
8186
|
+
var ɵ0$4 = noop$1;
|
|
8013
8187
|
var MatChipsField = /** @class */ (function () {
|
|
8014
8188
|
function MatChipsField(cd, formGroupDir) {
|
|
8015
8189
|
this.cd = cd;
|
|
8016
8190
|
this.formGroupDir = formGroupDir;
|
|
8017
|
-
this._onChangeCallback = noop$
|
|
8018
|
-
this._onTouchedCallback = noop$
|
|
8191
|
+
this._onChangeCallback = noop$1;
|
|
8192
|
+
this._onTouchedCallback = noop$1;
|
|
8019
8193
|
this.logPrefix = '[mat-chips] ';
|
|
8020
8194
|
this.formControlName = null;
|
|
8021
8195
|
this.required = false;
|
|
@@ -8174,9 +8348,9 @@
|
|
|
8174
8348
|
// - if label then col size = 2
|
|
8175
8349
|
// - if rankOrder then col size = 1
|
|
8176
8350
|
// - ese => auto size
|
|
8177
|
-
|| this.displayAttributes.map(function (attr) { return
|
|
8178
|
-
: (
|
|
8179
|
-
: undefined); });
|
|
8351
|
+
|| this.displayAttributes.map(function (attr) { return attr && (attr.endsWith('label') ? 3
|
|
8352
|
+
: (attr.endsWith('rankOrder') ? 2
|
|
8353
|
+
: undefined)); });
|
|
8180
8354
|
this.displayColumnNames = this.displayAttributes.map(function (attr, index) { return _this.displayColumnNames && _this.displayColumnNames[index] ||
|
|
8181
8355
|
(_this.i18nPrefix + changeCaseToUnderscore(attr).toUpperCase()); });
|
|
8182
8356
|
this.mobile = toBoolean(this.mobile, false);
|
|
@@ -8195,8 +8369,8 @@
|
|
|
8195
8369
|
if (!this.suggestFn) {
|
|
8196
8370
|
var suggestFromArrayFn_1 = function (value, filter) { return __awaiter(_this, void 0, void 0, function () {
|
|
8197
8371
|
return __generator(this, function (_c) {
|
|
8198
|
-
|
|
8199
|
-
|
|
8372
|
+
// DEBUG
|
|
8373
|
+
//if (this.debug) console.debug(this.logPrefix + ' Calling suggestFromArray with value=', value);
|
|
8200
8374
|
return [2 /*return*/, suggestFromArray(this.$inputItems.value, value, Object.assign({ searchAttributes: this.displayAttributes }, filter))];
|
|
8201
8375
|
});
|
|
8202
8376
|
}); };
|
|
@@ -8206,13 +8380,13 @@
|
|
|
8206
8380
|
switch (_c.label) {
|
|
8207
8381
|
case 0:
|
|
8208
8382
|
if (!isNil(this.$inputItems.value)) return [3 /*break*/, 2];
|
|
8209
|
-
|
|
8210
|
-
|
|
8383
|
+
// DEBUG
|
|
8384
|
+
//if (this.debug) console.debug('[mat-chips] Waiting items to be set...');
|
|
8211
8385
|
return [4 /*yield*/, firstNotNilPromise(this.$inputItems)];
|
|
8212
8386
|
case 1:
|
|
8387
|
+
// DEBUG
|
|
8388
|
+
//if (this.debug) console.debug('[mat-chips] Waiting items to be set...');
|
|
8213
8389
|
_c.sent();
|
|
8214
|
-
if (this.debug)
|
|
8215
|
-
console.debug('[mat-chips] Received items:', this.$inputItems.value);
|
|
8216
8390
|
_c.label = 2;
|
|
8217
8391
|
case 2:
|
|
8218
8392
|
this.suggestFn = suggestFromArrayFn_1;
|
|
@@ -8244,9 +8418,7 @@
|
|
|
8244
8418
|
),
|
|
8245
8419
|
// Object set: use it (no distinctUntilChanged() pipe need)
|
|
8246
8420
|
this.inputControl.valueChanges
|
|
8247
|
-
.pipe(operators.startWith(this.inputControl.value), operators.filter(function (value) { return isNotNil(value) && typeof value === 'object'; }),
|
|
8248
|
-
// DEBUG
|
|
8249
|
-
operators.tap(function (value) { return _this.debug && console.debug(_this.logPrefix + ' Received an object value: ', value); })),
|
|
8421
|
+
.pipe(operators.startWith(this.inputControl.value), operators.filter(function (value) { return isNotNil(value) && typeof value === 'object'; })),
|
|
8250
8422
|
// On dropdown button click (no distinctUntilChanged(), nor debounceTime)
|
|
8251
8423
|
this.dropButtonClick
|
|
8252
8424
|
.pipe(operators.filter(function (event) { return _this.enabled && (!event || !event.defaultPrevented); }), operators.tap(function (_) { return _this.matInputText.nativeElement.focus(); }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.formControl.value; }),
|
|
@@ -8319,6 +8491,7 @@
|
|
|
8319
8491
|
_this.$filteredItems.next(undefined);
|
|
8320
8492
|
}
|
|
8321
8493
|
_this._implicitValue = null; // reset the implicit value
|
|
8494
|
+
_this.closePanel(); // Clone panel
|
|
8322
8495
|
}));
|
|
8323
8496
|
// Listen form control status change
|
|
8324
8497
|
this._subscription.add(this.formControl.statusChanges
|
|
@@ -8329,6 +8502,7 @@
|
|
|
8329
8502
|
.subscribe(function () { return _this.checkIfTouched(); }));
|
|
8330
8503
|
this._subscription.add(this.keydownEscape.subscribe(function (event) {
|
|
8331
8504
|
if (_this.isOpen) {
|
|
8505
|
+
// Avoid form or page to manage escape event
|
|
8332
8506
|
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
8333
8507
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
|
8334
8508
|
// DEBUG
|
|
@@ -8416,8 +8590,8 @@
|
|
|
8416
8590
|
value = [value];
|
|
8417
8591
|
}
|
|
8418
8592
|
if (value !== this.formControl.value) {
|
|
8419
|
-
|
|
8420
|
-
|
|
8593
|
+
// DEBUG
|
|
8594
|
+
//if (this.debug) console.debug(this.logPrefix + ' Writing value: ', value);
|
|
8421
8595
|
this.formControl.patchValue(value, { emitEvent: false });
|
|
8422
8596
|
this._onChangeCallback(value);
|
|
8423
8597
|
}
|
|
@@ -8450,15 +8624,17 @@
|
|
|
8450
8624
|
if (event.stopPropagation)
|
|
8451
8625
|
event.stopPropagation();
|
|
8452
8626
|
event.returnValue = false;
|
|
8453
|
-
|
|
8454
|
-
|
|
8627
|
+
// DEBUG
|
|
8628
|
+
//if (this.debug) console.debug(this.logPrefix + ' Cancelling focus event');
|
|
8455
8629
|
return false;
|
|
8456
8630
|
}
|
|
8631
|
+
// DEBUG
|
|
8632
|
+
//if (this.debug) console.debug(this.logPrefix + ' Select input content');
|
|
8457
8633
|
var hasContent = selectInputContent(event);
|
|
8458
8634
|
// If combo is empty, or if has content but should force to show panel on focus
|
|
8459
8635
|
if (!hasContent || (this.showPanelOnFocus && this.showAllOnFocus)) {
|
|
8460
|
-
|
|
8461
|
-
|
|
8636
|
+
// DEBUG
|
|
8637
|
+
//if (this.debug) console.debug(this.logPrefix + ' Emit focus event');
|
|
8462
8638
|
this.focused.emit(event);
|
|
8463
8639
|
return true;
|
|
8464
8640
|
}
|
|
@@ -8473,11 +8649,12 @@
|
|
|
8473
8649
|
if (event.stopPropagation)
|
|
8474
8650
|
event.stopPropagation();
|
|
8475
8651
|
event.returnValue = false;
|
|
8476
|
-
//DEBUG
|
|
8652
|
+
//DEBUG
|
|
8653
|
+
//if (this.debug) console.debug(this.logPrefix + " Cancelling blur event");
|
|
8477
8654
|
return false;
|
|
8478
8655
|
}
|
|
8479
|
-
//DEBUG
|
|
8480
|
-
//console.debug(this.logPrefix + ' Blur: move caret to the beginning');
|
|
8656
|
+
// DEBUG
|
|
8657
|
+
//if (this.debug) console.debug(this.logPrefix + ' Blur: move caret to the beginning');
|
|
8481
8658
|
// Move caret to the beginning (fix issue IMAGINE-469)
|
|
8482
8659
|
selectInputRange(event.target, 0, 0);
|
|
8483
8660
|
this.blurred.emit(event);
|
|
@@ -8634,7 +8811,7 @@
|
|
|
8634
8811
|
{ type: i0.Component, args: [{
|
|
8635
8812
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
8636
8813
|
selector: 'mat-chips-field',
|
|
8637
|
-
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\" class=\"material-chips\" [class.mat-form-field-disabled]=\"disabled\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <mat-label>{{placeholder}}</mat-label>\n <mat-chip-list #chipList\n (focus)=\"filterChipsFocusEvent($event)\" >\n <mat-chip\n *ngFor=\"let item of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"remove(item)\"\n [color]=\"chipColor\"\n >\n {{displayWith(item)}}\n <mat-icon matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\n </mat-chip>\n\n <input #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"inputControl\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [readonly]=\"disabled\"\n [hidden]=\"disabled\"\n [required]=\"required\"\n (click)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\"\n [matChipInputFor]=\"chipList\"\n >\n </mat-chip-list>\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n (optionSelected)=\"add($event)\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [panelWidth]=\"panelWidth\">\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i
|
|
8814
|
+
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\" class=\"material-chips\" [class.mat-form-field-disabled]=\"disabled\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <mat-label>{{placeholder}}</mat-label>\n <mat-chip-list #chipList\n (focus)=\"filterChipsFocusEvent($event)\" >\n <mat-chip\n *ngFor=\"let item of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"remove(item)\"\n [color]=\"chipColor\"\n >\n {{displayWith(item)}}\n <mat-icon matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\n </mat-chip>\n\n <input #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"inputControl\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [readonly]=\"disabled\"\n [hidden]=\"disabled\"\n [required]=\"required\"\n (click)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\"\n [matChipInputFor]=\"chipList\"\n >\n </mat-chip-list>\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n (optionSelected)=\"add($event)\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [panelWidth]=\"panelWidth\">\n <ion-row class=\"mat-autocomplete-header ion-no-padding column\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async as items; else loadingTemplate\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: inputControl.value, withAccent: highlightAccent } \"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- footer -->\n <ion-row *ngIf=\"itemCount as count\"\n class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n</ion-grid>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\n <button mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"dropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
|
|
8638
8815
|
providers: [{
|
|
8639
8816
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
8640
8817
|
multi: true,
|
|
@@ -8983,7 +9160,7 @@
|
|
|
8983
9160
|
};
|
|
8984
9161
|
return ProgressBarService;
|
|
8985
9162
|
}());
|
|
8986
|
-
ProgressBarService.ɵprov =
|
|
9163
|
+
ProgressBarService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
8987
9164
|
ProgressBarService.decorators = [
|
|
8988
9165
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
8989
9166
|
];
|
|
@@ -9030,7 +9207,7 @@
|
|
|
9030
9207
|
};
|
|
9031
9208
|
return AppGestureConfig;
|
|
9032
9209
|
}(i1$6.HammerGestureConfig));
|
|
9033
|
-
AppGestureConfig.ɵprov =
|
|
9210
|
+
AppGestureConfig.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
9034
9211
|
AppGestureConfig.decorators = [
|
|
9035
9212
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9036
9213
|
];
|
|
@@ -9297,7 +9474,7 @@
|
|
|
9297
9474
|
};
|
|
9298
9475
|
return MatPaginatorI18n;
|
|
9299
9476
|
}(paginator.MatPaginatorIntl));
|
|
9300
|
-
MatPaginatorI18n.ɵprov =
|
|
9477
|
+
MatPaginatorI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
9301
9478
|
MatPaginatorI18n.decorators = [
|
|
9302
9479
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9303
9480
|
];
|
|
@@ -9389,17 +9566,17 @@
|
|
|
9389
9566
|
return rgbArrayToHex(rgb.map(function (v) { return 255 - v; }));
|
|
9390
9567
|
}
|
|
9391
9568
|
|
|
9392
|
-
var noop
|
|
9569
|
+
var noop = function () {
|
|
9393
9570
|
};
|
|
9394
|
-
var ɵ0$
|
|
9571
|
+
var ɵ0$3 = noop;
|
|
9395
9572
|
var AppFormField = /** @class */ (function () {
|
|
9396
9573
|
function AppFormField(translate, cd, injector, formGroupDir) {
|
|
9397
9574
|
this.translate = translate;
|
|
9398
9575
|
this.cd = cd;
|
|
9399
9576
|
this.injector = injector;
|
|
9400
9577
|
this.formGroupDir = formGroupDir;
|
|
9401
|
-
this._onChangeCallback = noop
|
|
9402
|
-
this._onTouchedCallback = noop
|
|
9578
|
+
this._onChangeCallback = noop;
|
|
9579
|
+
this._onTouchedCallback = noop;
|
|
9403
9580
|
this.readonly = false;
|
|
9404
9581
|
this.compact = false;
|
|
9405
9582
|
this.floatLabel = 'auto';
|
|
@@ -9957,7 +10134,7 @@
|
|
|
9957
10134
|
};
|
|
9958
10135
|
return AudioProvider;
|
|
9959
10136
|
}(StartableService));
|
|
9960
|
-
AudioProvider.ɵprov =
|
|
10137
|
+
AudioProvider.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace.NativeAudio, 8), i0__namespace.ɵɵinject(i3__namespace.Vibration, 8), i0__namespace.ɵɵinject(i4__namespace.AudioManagement, 8)); }, token: AudioProvider, providedIn: "root" });
|
|
9961
10138
|
AudioProvider.decorators = [
|
|
9962
10139
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9963
10140
|
];
|
|
@@ -9988,13 +10165,12 @@
|
|
|
9988
10165
|
]; };
|
|
9989
10166
|
|
|
9990
10167
|
var Hotkeys = /** @class */ (function () {
|
|
9991
|
-
function Hotkeys(eventManager, dialog, document, modalController
|
|
10168
|
+
function Hotkeys(eventManager, dialog, document, modalController) {
|
|
9992
10169
|
var _this = this;
|
|
9993
10170
|
this.eventManager = eventManager;
|
|
9994
10171
|
this.dialog = dialog;
|
|
9995
10172
|
this.document = document;
|
|
9996
10173
|
this.modalController = modalController;
|
|
9997
|
-
this.popoverController = popoverController;
|
|
9998
10174
|
this._debug = false;
|
|
9999
10175
|
this._hotkeys = new Map();
|
|
10000
10176
|
this._defaults = {
|
|
@@ -10023,24 +10199,15 @@
|
|
|
10023
10199
|
}
|
|
10024
10200
|
return new rxjs.Observable(function (observer) {
|
|
10025
10201
|
var handler = function (e) { return __awaiter(_this, void 0, void 0, function () {
|
|
10026
|
-
var top
|
|
10027
|
-
return __generator(this, function (
|
|
10028
|
-
switch (
|
|
10202
|
+
var top;
|
|
10203
|
+
return __generator(this, function (_a) {
|
|
10204
|
+
switch (_a.label) {
|
|
10029
10205
|
case 0: return [4 /*yield*/, this.modalController.getTop()];
|
|
10030
10206
|
case 1:
|
|
10031
|
-
|
|
10032
|
-
if (_a) return [3 /*break*/, 3];
|
|
10033
|
-
return [4 /*yield*/, this.popoverController.getTop()];
|
|
10034
|
-
case 2:
|
|
10035
|
-
_a = (_b.sent());
|
|
10036
|
-
_b.label = 3;
|
|
10037
|
-
case 3:
|
|
10038
|
-
top = _a;
|
|
10207
|
+
top = _a.sent();
|
|
10039
10208
|
// If modal present, check its component name against hotkey element name (fix #181)
|
|
10040
|
-
if (top && top.component['name'] !== merged.elementName)
|
|
10041
|
-
e.preventDefault();
|
|
10209
|
+
if (top && top.component['name'] !== merged.elementName)
|
|
10042
10210
|
return [2 /*return*/];
|
|
10043
|
-
}
|
|
10044
10211
|
if (e instanceof KeyboardEvent && e.repeat)
|
|
10045
10212
|
return [2 /*return*/]; // skip when repeated
|
|
10046
10213
|
if (merged.preventDefault)
|
|
@@ -10067,7 +10234,7 @@
|
|
|
10067
10234
|
};
|
|
10068
10235
|
return Hotkeys;
|
|
10069
10236
|
}());
|
|
10070
|
-
Hotkeys.ɵprov =
|
|
10237
|
+
Hotkeys.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(i0__namespace.ɵɵinject(i1__namespace$5.EventManager), i0__namespace.ɵɵinject(i2__namespace$1.MatDialog), i0__namespace.ɵɵinject(i1__namespace$3.DOCUMENT), i0__namespace.ɵɵinject(i1__namespace$4.ModalController)); }, token: Hotkeys, providedIn: "root" });
|
|
10071
10238
|
Hotkeys.decorators = [
|
|
10072
10239
|
{ type: i0.Injectable, args: [{
|
|
10073
10240
|
providedIn: 'root'
|
|
@@ -10077,8 +10244,7 @@
|
|
|
10077
10244
|
{ type: i1$6.EventManager },
|
|
10078
10245
|
{ type: i2.MatDialog },
|
|
10079
10246
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [i1$4.DOCUMENT,] }] },
|
|
10080
|
-
{ type: i1$5.ModalController }
|
|
10081
|
-
{ type: i1$5.PopoverController }
|
|
10247
|
+
{ type: i1$5.ModalController }
|
|
10082
10248
|
]; };
|
|
10083
10249
|
|
|
10084
10250
|
var SharedHotkeysModule = /** @class */ (function () {
|
|
@@ -10272,7 +10438,7 @@
|
|
|
10272
10438
|
return Base64ImageReader;
|
|
10273
10439
|
}());
|
|
10274
10440
|
|
|
10275
|
-
var uuidv4 = uuidv4Imported__namespace;
|
|
10441
|
+
var uuidv4$1 = uuidv4Imported__namespace;
|
|
10276
10442
|
var FileService = /** @class */ (function () {
|
|
10277
10443
|
function FileService(platform,
|
|
10278
10444
|
//private transfer: FileTransfer,
|
|
@@ -10318,7 +10484,7 @@
|
|
|
10318
10484
|
lastSlashIndex = source.lastIndexOf('/');
|
|
10319
10485
|
if (lastSlashIndex === -1)
|
|
10320
10486
|
throw new Error('Invalid URL: ' + source);
|
|
10321
|
-
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
10487
|
+
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
|
|
10322
10488
|
if (!(responseType === 'file' && this.canUseFileSystem)) return [3 /*break*/, 4];
|
|
10323
10489
|
console.warn("WARN: [file] Fetching image {" + source + "} in local file...");
|
|
10324
10490
|
targetFilePath = this._imageDirectory + fileName;
|
|
@@ -10381,7 +10547,7 @@
|
|
|
10381
10547
|
};
|
|
10382
10548
|
return FileService;
|
|
10383
10549
|
}());
|
|
10384
|
-
FileService.ɵprov =
|
|
10550
|
+
FileService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace$2.HttpClient), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
10385
10551
|
FileService.decorators = [
|
|
10386
10552
|
{ type: i0.Injectable, args: [{
|
|
10387
10553
|
providedIn: 'root',
|
|
@@ -10548,7 +10714,7 @@
|
|
|
10548
10714
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
10549
10715
|
|
|
10550
10716
|
var scrypt = require('scrypt-async');
|
|
10551
|
-
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
10717
|
+
var sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
10552
10718
|
var sha512 = require('hash.js/lib/hash/sha/512');
|
|
10553
10719
|
var nacl = {
|
|
10554
10720
|
sign: tweetnacl.sign,
|
|
@@ -10654,7 +10820,7 @@
|
|
|
10654
10820
|
* Hash (using SHA256) a message
|
|
10655
10821
|
*/
|
|
10656
10822
|
CryptoService.prototype.sha256 = function (message) {
|
|
10657
|
-
return sha256().update(message).digest('hex');
|
|
10823
|
+
return sha256$1().update(message).digest('hex');
|
|
10658
10824
|
};
|
|
10659
10825
|
/**
|
|
10660
10826
|
* Hash (using SHA512) a message
|
|
@@ -10668,7 +10834,7 @@
|
|
|
10668
10834
|
};
|
|
10669
10835
|
return CryptoService;
|
|
10670
10836
|
}());
|
|
10671
|
-
CryptoService.ɵprov =
|
|
10837
|
+
CryptoService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
10672
10838
|
CryptoService.decorators = [
|
|
10673
10839
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
10674
10840
|
];
|
|
@@ -11198,109 +11364,6 @@
|
|
|
11198
11364
|
EntityClass({ typename: 'PeerVO' })
|
|
11199
11365
|
], exports.Peer);
|
|
11200
11366
|
|
|
11201
|
-
// import the required animation functions from the angular animations module
|
|
11202
|
-
var fadeInAnimation =
|
|
11203
|
-
// trigger name for attaching this animation to an element using the [@triggerName] syntax
|
|
11204
|
-
animations.trigger('fadeInAnimation', [
|
|
11205
|
-
// route 'enter' transition
|
|
11206
|
-
animations.transition(':enter', [
|
|
11207
|
-
// css styles at start of transition
|
|
11208
|
-
animations.style({ opacity: 0 }),
|
|
11209
|
-
// animation and styles at end of transition
|
|
11210
|
-
animations.animate('.3s', animations.style({ opacity: 1 }))
|
|
11211
|
-
]),
|
|
11212
|
-
]);
|
|
11213
|
-
var fadeInOutAnimation =
|
|
11214
|
-
// trigger name for attaching this animation to an element using the [@triggerName] syntax
|
|
11215
|
-
animations.trigger('fadeInOutAnimation', [
|
|
11216
|
-
// route 'enter' transition
|
|
11217
|
-
animations.transition(':enter', [
|
|
11218
|
-
// css styles at start of transition
|
|
11219
|
-
animations.style({ opacity: 0 }),
|
|
11220
|
-
// animation and styles at end of transition
|
|
11221
|
-
animations.animate('.3s', animations.style({ opacity: 1 }))
|
|
11222
|
-
]),
|
|
11223
|
-
// route 'leave' transition
|
|
11224
|
-
animations.transition(':leave', [
|
|
11225
|
-
// animation and styles at end of transition
|
|
11226
|
-
animations.animate('.5s ease-in-out', animations.style({
|
|
11227
|
-
opacity: 0
|
|
11228
|
-
}))
|
|
11229
|
-
]),
|
|
11230
|
-
]);
|
|
11231
|
-
var slideInOutAnimation =
|
|
11232
|
-
// trigger name for attaching this animation to an element using the [@triggerName] syntax
|
|
11233
|
-
animations.trigger('slideInOutAnimation', [
|
|
11234
|
-
// end state styles for route container (host)
|
|
11235
|
-
animations.state('*', animations.style({
|
|
11236
|
-
// the view covers the whole screen with a semi tranparent background
|
|
11237
|
-
position: 'relative',
|
|
11238
|
-
top: 0,
|
|
11239
|
-
left: 0,
|
|
11240
|
-
right: 0,
|
|
11241
|
-
bottom: 0,
|
|
11242
|
-
opacity: 1
|
|
11243
|
-
})),
|
|
11244
|
-
// route 'enter' transition
|
|
11245
|
-
animations.transition(':enter', [
|
|
11246
|
-
// styles at start of transition
|
|
11247
|
-
animations.style({
|
|
11248
|
-
// start with the content positioned off the right of the screen,
|
|
11249
|
-
// -400% is required instead of -100% because the negative position adds to the width of the element
|
|
11250
|
-
left: '400%',
|
|
11251
|
-
// start with background opacity set to 0 (invisible)
|
|
11252
|
-
opacity: 0
|
|
11253
|
-
}),
|
|
11254
|
-
// animation and styles at end of transition
|
|
11255
|
-
animations.animate('.3s ease-in-out', animations.style({
|
|
11256
|
-
// transition the right position to 0 which slides the content into view
|
|
11257
|
-
left: 0,
|
|
11258
|
-
// transition the background opacity to 0.8 to fade it in
|
|
11259
|
-
opacity: 0.8
|
|
11260
|
-
}))
|
|
11261
|
-
]),
|
|
11262
|
-
// route 'leave' transition
|
|
11263
|
-
animations.transition(':leave', [
|
|
11264
|
-
// animation and styles at end of transition
|
|
11265
|
-
animations.animate('.5s ease-in-out', animations.style({
|
|
11266
|
-
// transition the right position to -400% which slides the content out of view
|
|
11267
|
-
left: '400%',
|
|
11268
|
-
// transition the background opacity to 0 to fade it out
|
|
11269
|
-
opacity: 0
|
|
11270
|
-
}))
|
|
11271
|
-
])
|
|
11272
|
-
]);
|
|
11273
|
-
var slideUpDownAnimation =
|
|
11274
|
-
// trigger name for attaching this animation to an element using the [@triggerName] syntax
|
|
11275
|
-
animations.trigger('slideUpDownAnimation', [
|
|
11276
|
-
// end state styles for route container (host)
|
|
11277
|
-
animations.state('*', animations.style({
|
|
11278
|
-
transform: 'translateY(0)',
|
|
11279
|
-
opacity: 1
|
|
11280
|
-
})),
|
|
11281
|
-
// route 'enter' transition
|
|
11282
|
-
animations.transition(':enter', [
|
|
11283
|
-
// styles at start of transition
|
|
11284
|
-
animations.style({
|
|
11285
|
-
transform: 'translateY(-400%)',
|
|
11286
|
-
opacity: 0
|
|
11287
|
-
}),
|
|
11288
|
-
// animation and styles at end of transition
|
|
11289
|
-
animations.animate('.3s ease-in-out', animations.style({
|
|
11290
|
-
transform: 'translateY(0)',
|
|
11291
|
-
opacity: 1
|
|
11292
|
-
}))
|
|
11293
|
-
]),
|
|
11294
|
-
// route 'leave' transition
|
|
11295
|
-
animations.transition(':leave', [
|
|
11296
|
-
// animation and styles at end of transition
|
|
11297
|
-
animations.animate('.5s ease-in-out', animations.style({
|
|
11298
|
-
transform: 'translateY(-100%)',
|
|
11299
|
-
opacity: 0
|
|
11300
|
-
}))
|
|
11301
|
-
])
|
|
11302
|
-
]);
|
|
11303
|
-
|
|
11304
11367
|
var HttpUtils = /** @class */ (function () {
|
|
11305
11368
|
function HttpUtils() {
|
|
11306
11369
|
}
|
|
@@ -11641,7 +11704,7 @@
|
|
|
11641
11704
|
onRefresh: [{ type: i0.Input }]
|
|
11642
11705
|
};
|
|
11643
11706
|
|
|
11644
|
-
var moment$
|
|
11707
|
+
var moment$4 = momentImported__namespace;
|
|
11645
11708
|
var SETTINGS_STORAGE_KEY = 'settings';
|
|
11646
11709
|
var SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
|
|
11647
11710
|
// fixme: this constant points to static environment
|
|
@@ -11943,11 +12006,11 @@
|
|
|
11943
12006
|
if (!feature) {
|
|
11944
12007
|
feature = {
|
|
11945
12008
|
name: featureName.toLowerCase(),
|
|
11946
|
-
lastSyncDate: moment$
|
|
12009
|
+
lastSyncDate: moment$4().toISOString()
|
|
11947
12010
|
};
|
|
11948
12011
|
}
|
|
11949
12012
|
else {
|
|
11950
|
-
feature.lastSyncDate = moment$
|
|
12013
|
+
feature.lastSyncDate = moment$4().toISOString();
|
|
11951
12014
|
}
|
|
11952
12015
|
this.saveOfflineFeature(feature);
|
|
11953
12016
|
};
|
|
@@ -12141,7 +12204,7 @@
|
|
|
12141
12204
|
if (!page || !page.title || !page.path)
|
|
12142
12205
|
throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
|
|
12143
12206
|
// Set time
|
|
12144
|
-
page.time = page.time || moment$
|
|
12207
|
+
page.time = page.time || moment$4();
|
|
12145
12208
|
// Clean the title (remove <small> tags)
|
|
12146
12209
|
if (!opts || opts.removeTitleSmallTag !== false) {
|
|
12147
12210
|
var tagIndex = page.title.indexOf('</small>');
|
|
@@ -12158,7 +12221,7 @@
|
|
|
12158
12221
|
};
|
|
12159
12222
|
return LocalSettingsService;
|
|
12160
12223
|
}(StartableService));
|
|
12161
|
-
LocalSettingsService.ɵprov =
|
|
12224
|
+
LocalSettingsService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_LOCAL_SETTINGS, 8), i0__namespace.ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
|
|
12162
12225
|
LocalSettingsService.decorators = [
|
|
12163
12226
|
{ type: i0.Injectable, args: [{
|
|
12164
12227
|
providedIn: 'root',
|
|
@@ -13039,7 +13102,7 @@
|
|
|
13039
13102
|
};
|
|
13040
13103
|
return NetworkService;
|
|
13041
13104
|
}(StartableService));
|
|
13042
|
-
NetworkService.ɵprov =
|
|
13105
|
+
NetworkService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(i0__namespace.ɵɵinject(i1__namespace$3.DOCUMENT), i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i1__namespace$4.ModalController), i0__namespace.ɵɵinject(CryptoService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(LocalSettingsService), i0__namespace.ɵɵinject(i6__namespace.CacheService), i0__namespace.ɵɵinject(i2__namespace$2.HttpClient), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(i9__namespace.Network, 8), i0__namespace.ɵɵinject(i10__namespace.SplashScreen, 8), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService, 8), i0__namespace.ɵɵinject(i1__namespace$4.ToastController, 8)); }, token: NetworkService, providedIn: "root" });
|
|
13043
13106
|
NetworkService.decorators = [
|
|
13044
13107
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
13045
13108
|
];
|
|
@@ -13059,7 +13122,7 @@
|
|
|
13059
13122
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] }
|
|
13060
13123
|
]; };
|
|
13061
13124
|
|
|
13062
|
-
var ErrorCodes = {
|
|
13125
|
+
var ErrorCodes$2 = {
|
|
13063
13126
|
UNKNOWN_ERROR: 0,
|
|
13064
13127
|
LOAD_ACCOUNT_ERROR: 1,
|
|
13065
13128
|
BAD_PASSWORD: 2,
|
|
@@ -13476,7 +13539,7 @@
|
|
|
13476
13539
|
case 13:
|
|
13477
13540
|
err_1 = _b.sent();
|
|
13478
13541
|
console.error(err_1);
|
|
13479
|
-
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
|
|
13542
|
+
throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
|
|
13480
13543
|
case 14:
|
|
13481
13544
|
// Emit update event
|
|
13482
13545
|
if (!opts || opts.emitEvent !== false) {
|
|
@@ -14253,7 +14316,7 @@
|
|
|
14253
14316
|
}(StartableService));
|
|
14254
14317
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
14255
14318
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
14256
|
-
EntitiesStorage.ɵprov =
|
|
14319
|
+
EntitiesStorage.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(ProgressBarService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
|
|
14257
14320
|
EntitiesStorage.decorators = [
|
|
14258
14321
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
14259
14322
|
];
|
|
@@ -14409,10 +14472,10 @@
|
|
|
14409
14472
|
function referentialsToString(values, properties, separator) {
|
|
14410
14473
|
return (values || []).map(function (v) { return referentialToString(v, properties); }).join(separator || ', ');
|
|
14411
14474
|
}
|
|
14412
|
-
var ɵ0$
|
|
14475
|
+
var ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
14413
14476
|
var StatusList = Object.freeze([
|
|
14414
14477
|
{
|
|
14415
|
-
id: ɵ0$
|
|
14478
|
+
id: ɵ0$2,
|
|
14416
14479
|
icon: 'checkmark',
|
|
14417
14480
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
14418
14481
|
},
|
|
@@ -14715,7 +14778,7 @@
|
|
|
14715
14778
|
(data.lastName || '')) || '';
|
|
14716
14779
|
}
|
|
14717
14780
|
|
|
14718
|
-
var uuidv4
|
|
14781
|
+
var uuidv4 = uuidv4Imported__namespace;
|
|
14719
14782
|
var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
14720
14783
|
var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
14721
14784
|
/**
|
|
@@ -14759,7 +14822,7 @@
|
|
|
14759
14822
|
// Skip if not tracked
|
|
14760
14823
|
if (!context || !context.tracked)
|
|
14761
14824
|
return forward(operation);
|
|
14762
|
-
var id = context.serializationKey || uuidv4
|
|
14825
|
+
var id = context.serializationKey || uuidv4();
|
|
14763
14826
|
console.debug("[apollo-tracker-link] Watching tracked query {" + operation.operationName + "#" + id + "}");
|
|
14764
14827
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
14765
14828
|
var cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -15390,14 +15453,14 @@
|
|
|
15390
15453
|
mutationLinks = void 0;
|
|
15391
15454
|
// Add queue to store tracked queries, when offline
|
|
15392
15455
|
if (enableTrackMutationQueries) {
|
|
15393
|
-
serializingLink = new SerializingLink__default[
|
|
15456
|
+
serializingLink = new SerializingLink__default["default"]();
|
|
15394
15457
|
trackerLink = createTrackerLink({
|
|
15395
15458
|
storage: storage,
|
|
15396
15459
|
onNetworkStatusChange: this._networkStatusChanged$,
|
|
15397
15460
|
debounce: 1000,
|
|
15398
15461
|
debug: true
|
|
15399
15462
|
});
|
|
15400
|
-
queueLink_1 = new QueueLink__default[
|
|
15463
|
+
queueLink_1 = new QueueLink__default["default"]();
|
|
15401
15464
|
this.registerSubscription(this._networkStatusChanged$
|
|
15402
15465
|
.subscribe(function (type) {
|
|
15403
15466
|
// Network is offline: start buffering into queue
|
|
@@ -15412,7 +15475,7 @@
|
|
|
15412
15475
|
}
|
|
15413
15476
|
}));
|
|
15414
15477
|
mutationLinks = [
|
|
15415
|
-
loggerLink__default[
|
|
15478
|
+
loggerLink__default["default"],
|
|
15416
15479
|
queueLink_1,
|
|
15417
15480
|
trackerLink,
|
|
15418
15481
|
queueLink_1,
|
|
@@ -15519,7 +15582,7 @@
|
|
|
15519
15582
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
15520
15583
|
|| this.toAppError(err.networkError)
|
|
15521
15584
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
15522
|
-
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
15585
|
+
|| this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
|
|
15523
15586
|
// If graphQL: try to convert the first error found
|
|
15524
15587
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
15525
15588
|
|| this.toAppError(err)
|
|
@@ -15527,7 +15590,7 @@
|
|
|
15527
15590
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
15528
15591
|
|| err;
|
|
15529
15592
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
15530
|
-
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
15593
|
+
if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
15531
15594
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
15532
15595
|
this.onNetworkError.next(error);
|
|
15533
15596
|
}
|
|
@@ -15563,7 +15626,7 @@
|
|
|
15563
15626
|
return 'ERROR.UNAUTHORIZED';
|
|
15564
15627
|
case ServerErrorCodes.FORBIDDEN:
|
|
15565
15628
|
return 'ERROR.FORBIDDEN';
|
|
15566
|
-
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
15629
|
+
case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
|
|
15567
15630
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
15568
15631
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
15569
15632
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -15595,7 +15658,7 @@
|
|
|
15595
15658
|
};
|
|
15596
15659
|
return GraphqlService;
|
|
15597
15660
|
}(StartableService));
|
|
15598
|
-
GraphqlService.ɵprov =
|
|
15661
|
+
GraphqlService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace$3.Apollo), i0__namespace.ɵɵinject(i3__namespace$2.HttpLink), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(CryptoService), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
|
|
15599
15662
|
GraphqlService.decorators = [
|
|
15600
15663
|
{ type: i0.Injectable, args: [{
|
|
15601
15664
|
providedIn: 'root'
|
|
@@ -15612,7 +15675,7 @@
|
|
|
15612
15675
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
15613
15676
|
]; };
|
|
15614
15677
|
|
|
15615
|
-
var sha256
|
|
15678
|
+
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
15616
15679
|
var BaseGraphqlServiceOptions = /** @class */ (function () {
|
|
15617
15680
|
function BaseGraphqlServiceOptions() {
|
|
15618
15681
|
}
|
|
@@ -15782,8 +15845,8 @@
|
|
|
15782
15845
|
};
|
|
15783
15846
|
/* -- protected methods -- */
|
|
15784
15847
|
BaseGraphqlService.prototype.computeMutableWatchQueryId = function (opts) {
|
|
15785
|
-
var queryName = opts.queryName || sha256
|
|
15786
|
-
var variablesKey = opts.variables && sha256
|
|
15848
|
+
var queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
15849
|
+
var variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
15787
15850
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
15788
15851
|
};
|
|
15789
15852
|
BaseGraphqlService.prototype.findMutableWatchQueries = function (opts) {
|
|
@@ -15856,19 +15919,19 @@
|
|
|
15856
15919
|
/* ------------------------------------
|
|
15857
15920
|
* GraphQL queries
|
|
15858
15921
|
* ------------------------------------*/
|
|
15859
|
-
var Fragments = {
|
|
15860
|
-
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 }"]))),
|
|
15861
|
-
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 }"])))
|
|
15922
|
+
var Fragments$1 = {
|
|
15923
|
+
account: core.gql(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n fragment AccountFragment on AccountVO {\n id\n firstName\n lastName\n email\n pubkey\n avatar\n statusId\n updateDate\n creationDate\n profiles\n settings {\n ...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 }"]))),
|
|
15924
|
+
settings: core.gql(templateObject_2$4 || (templateObject_2$4 = __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 }"])))
|
|
15862
15925
|
};
|
|
15863
15926
|
// Load account query
|
|
15864
|
-
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);
|
|
15927
|
+
var LoadQuery$1 = core.gql(templateObject_3$3 || (templateObject_3$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$1.account, Fragments$1.settings);
|
|
15865
15928
|
// Check email query
|
|
15866
|
-
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"])));
|
|
15929
|
+
var IsEmailExistsQuery = core.gql(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject(["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"], ["\n query IsEmailExists($email: String, $hash: String){\n isEmailExists(email: $email, hash: $hash)\n }\n"])));
|
|
15867
15930
|
// Save (create or update) account mutation
|
|
15868
15931
|
var AccountMutations = {
|
|
15869
|
-
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),
|
|
15870
|
-
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),
|
|
15871
|
-
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)
|
|
15932
|
+
save: core.gql(templateObject_5$2 || (templateObject_5$2 = __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$1.account, Fragments$1.settings),
|
|
15933
|
+
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$1.account, Fragments$1.settings),
|
|
15934
|
+
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$1.settings)
|
|
15872
15935
|
};
|
|
15873
15936
|
// Sent confirmation email
|
|
15874
15937
|
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"])));
|
|
@@ -16236,7 +16299,7 @@
|
|
|
16236
16299
|
error_3 = _b.sent();
|
|
16237
16300
|
console.error(error_3);
|
|
16238
16301
|
this.resetData();
|
|
16239
|
-
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
16302
|
+
throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
16240
16303
|
case 4:
|
|
16241
16304
|
// Store pubkey+keypair
|
|
16242
16305
|
this._cache.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -16272,7 +16335,7 @@
|
|
|
16272
16335
|
return [3 /*break*/, 18];
|
|
16273
16336
|
case 11:
|
|
16274
16337
|
err_1 = _b.sent();
|
|
16275
|
-
if (!(err_1 && +(err_1.code) === ErrorCodes.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
|
|
16338
|
+
if (!(err_1 && +(err_1.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
|
|
16276
16339
|
if (!(data.username.indexOf('@') !== -1)) return [3 /*break*/, 16];
|
|
16277
16340
|
isEmailExists = void 0;
|
|
16278
16341
|
_b.label = 12;
|
|
@@ -16288,12 +16351,12 @@
|
|
|
16288
16351
|
case 15:
|
|
16289
16352
|
// Email not exists (no account)
|
|
16290
16353
|
if (!isEmailExists) {
|
|
16291
|
-
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
16354
|
+
throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
16292
16355
|
}
|
|
16293
16356
|
_b.label = 16;
|
|
16294
16357
|
case 16:
|
|
16295
16358
|
// Email exists, so error = 'bad password'
|
|
16296
|
-
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
16359
|
+
throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
16297
16360
|
case 17: throw err_1; // resend the first error
|
|
16298
16361
|
case 18:
|
|
16299
16362
|
_b.trys.push([18, 20, , 21]);
|
|
@@ -16489,8 +16552,8 @@
|
|
|
16489
16552
|
_b.label = 3;
|
|
16490
16553
|
case 3: return [3 /*break*/, 6];
|
|
16491
16554
|
case 4: return [4 /*yield*/, this.graphql.query({
|
|
16492
|
-
query: LoadQuery,
|
|
16493
|
-
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
16555
|
+
query: LoadQuery$1,
|
|
16556
|
+
error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
16494
16557
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
16495
16558
|
})];
|
|
16496
16559
|
case 5:
|
|
@@ -16528,7 +16591,7 @@
|
|
|
16528
16591
|
case 1:
|
|
16529
16592
|
isEmailExists = _b.sent();
|
|
16530
16593
|
if (isEmailExists) {
|
|
16531
|
-
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
16594
|
+
throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
16532
16595
|
}
|
|
16533
16596
|
return [2 /*return*/];
|
|
16534
16597
|
}
|
|
@@ -16578,7 +16641,7 @@
|
|
|
16578
16641
|
locale: locale
|
|
16579
16642
|
},
|
|
16580
16643
|
error: {
|
|
16581
|
-
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
16644
|
+
code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
16582
16645
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
16583
16646
|
}
|
|
16584
16647
|
})];
|
|
@@ -16601,7 +16664,7 @@
|
|
|
16601
16664
|
code: code
|
|
16602
16665
|
},
|
|
16603
16666
|
error: {
|
|
16604
|
-
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
16667
|
+
code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
|
|
16605
16668
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
16606
16669
|
}
|
|
16607
16670
|
})];
|
|
@@ -16701,7 +16764,7 @@
|
|
|
16701
16764
|
throw error_7;
|
|
16702
16765
|
console.error(error_7);
|
|
16703
16766
|
throw {
|
|
16704
|
-
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
16767
|
+
code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
|
|
16705
16768
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
16706
16769
|
};
|
|
16707
16770
|
case 6: return [2 /*return*/];
|
|
@@ -16912,7 +16975,7 @@
|
|
|
16912
16975
|
case 1:
|
|
16913
16976
|
existingAccount = _b.sent();
|
|
16914
16977
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
16915
|
-
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
16978
|
+
throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
16916
16979
|
}
|
|
16917
16980
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
16918
16981
|
_b.label = 2;
|
|
@@ -16924,7 +16987,7 @@
|
|
|
16924
16987
|
mutation: isNew ? AccountMutations.create : AccountMutations.save,
|
|
16925
16988
|
variables: { data: json },
|
|
16926
16989
|
error: {
|
|
16927
|
-
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
16990
|
+
code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
|
|
16928
16991
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
16929
16992
|
}
|
|
16930
16993
|
})];
|
|
@@ -16958,7 +17021,7 @@
|
|
|
16958
17021
|
mutation: AccountMutations.saveSettings,
|
|
16959
17022
|
variables: { data: json },
|
|
16960
17023
|
error: {
|
|
16961
|
-
code: ErrorCodes.SAVE_SETTINGS_ERROR,
|
|
17024
|
+
code: ErrorCodes$2.SAVE_SETTINGS_ERROR,
|
|
16962
17025
|
message: 'ERROR.SAVE_SETTINGS_ERROR'
|
|
16963
17026
|
}
|
|
16964
17027
|
})];
|
|
@@ -16989,7 +17052,7 @@
|
|
|
16989
17052
|
if (counter > 4) {
|
|
16990
17053
|
if (this._debug)
|
|
16991
17054
|
console.debug("[account] Failed to authentication on pod (after " + counter + " attempts)");
|
|
16992
|
-
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
17055
|
+
throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
16993
17056
|
}
|
|
16994
17057
|
if (!token) return [3 /*break*/, 2];
|
|
16995
17058
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -16998,7 +17061,7 @@
|
|
|
16998
17061
|
token: token
|
|
16999
17062
|
},
|
|
17000
17063
|
error: {
|
|
17001
|
-
code: ErrorCodes.UNAUTHORIZED,
|
|
17064
|
+
code: ErrorCodes$2.UNAUTHORIZED,
|
|
17002
17065
|
message: 'ERROR.UNAUTHORIZED'
|
|
17003
17066
|
},
|
|
17004
17067
|
fetchPolicy: 'no-cache'
|
|
@@ -17015,7 +17078,7 @@
|
|
|
17015
17078
|
_b.label = 2;
|
|
17016
17079
|
case 2:
|
|
17017
17080
|
challengeError = {
|
|
17018
|
-
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
17081
|
+
code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
|
|
17019
17082
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
17020
17083
|
};
|
|
17021
17084
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -17102,7 +17165,7 @@
|
|
|
17102
17165
|
query: AccountSubscriptions.listenChanges,
|
|
17103
17166
|
variables: variables,
|
|
17104
17167
|
error: {
|
|
17105
|
-
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
17168
|
+
code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
|
|
17106
17169
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
|
|
17107
17170
|
}
|
|
17108
17171
|
}).pipe(operators.map(function (_b) {
|
|
@@ -17135,7 +17198,7 @@
|
|
|
17135
17198
|
};
|
|
17136
17199
|
return AccountService;
|
|
17137
17200
|
}(BaseGraphqlService));
|
|
17138
|
-
AccountService.ɵprov =
|
|
17201
|
+
AccountService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0__namespace.ɵɵinject(CryptoService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(LocalSettingsService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(FileService), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService, 8), i0__namespace.ɵɵinject(i1__namespace$4.ToastController, 8), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
17139
17202
|
AccountService.decorators = [
|
|
17140
17203
|
{ type: i0.Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
|
|
17141
17204
|
];
|
|
@@ -17150,7 +17213,7 @@
|
|
|
17150
17213
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] },
|
|
17151
17214
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
17152
17215
|
]; };
|
|
17153
|
-
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;
|
|
17216
|
+
var templateObject_1$4, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$2, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
|
|
17154
17217
|
|
|
17155
17218
|
var Software_1, Configuration_1;
|
|
17156
17219
|
// @dynamic
|
|
@@ -17408,13 +17471,13 @@
|
|
|
17408
17471
|
/* ------------------------------------
|
|
17409
17472
|
* GraphQL queries
|
|
17410
17473
|
* ------------------------------------*/
|
|
17411
|
-
var Fragments
|
|
17412
|
-
config: core.gql(templateObject_1$
|
|
17474
|
+
var Fragments = {
|
|
17475
|
+
config: core.gql(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "], ["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "])))
|
|
17413
17476
|
};
|
|
17414
|
-
var LoadQuery
|
|
17477
|
+
var LoadQuery = core.gql(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"], ["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"])), Fragments.config);
|
|
17415
17478
|
// Save (create or update) account mutation
|
|
17416
|
-
var SaveMutation = core.gql(templateObject_3$
|
|
17417
|
-
var ClearCache = core.gql(templateObject_4$
|
|
17479
|
+
var SaveMutation = core.gql(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"], ["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"])), Fragments.config);
|
|
17480
|
+
var ClearCache = core.gql(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"], ["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"])));
|
|
17418
17481
|
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"])));
|
|
17419
17482
|
var APP_CONFIG_OPTIONS = new i0.InjectionToken('defaultOptions');
|
|
17420
17483
|
var ConfigService = /** @class */ (function (_super) {
|
|
@@ -17474,12 +17537,12 @@
|
|
|
17474
17537
|
case 0:
|
|
17475
17538
|
now = Date.now();
|
|
17476
17539
|
console.debug('[config] Loading Pod configuration...');
|
|
17477
|
-
query = opts && opts.query || LoadQuery
|
|
17540
|
+
query = opts && opts.query || LoadQuery;
|
|
17478
17541
|
variables = opts && opts.variables || undefined;
|
|
17479
17542
|
return [4 /*yield*/, this.graphql.query({
|
|
17480
17543
|
query: query,
|
|
17481
17544
|
variables: variables,
|
|
17482
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17545
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17483
17546
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
17484
17547
|
})];
|
|
17485
17548
|
case 1:
|
|
@@ -17521,7 +17584,7 @@
|
|
|
17521
17584
|
data: json
|
|
17522
17585
|
},
|
|
17523
17586
|
error: {
|
|
17524
|
-
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
17587
|
+
code: ErrorCodes$2.SAVE_CONFIG_ERROR,
|
|
17525
17588
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
17526
17589
|
}
|
|
17527
17590
|
})];
|
|
@@ -17556,7 +17619,7 @@
|
|
|
17556
17619
|
return [4 /*yield*/, this.graphql.query({
|
|
17557
17620
|
query: CacheStatistics,
|
|
17558
17621
|
variables: null,
|
|
17559
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17622
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17560
17623
|
fetchPolicy: 'network-only'
|
|
17561
17624
|
})];
|
|
17562
17625
|
case 1:
|
|
@@ -17580,7 +17643,7 @@
|
|
|
17580
17643
|
return [4 /*yield*/, this.graphql.query({
|
|
17581
17644
|
query: ClearCache,
|
|
17582
17645
|
variables: variables,
|
|
17583
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17646
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17584
17647
|
fetchPolicy: 'no-cache'
|
|
17585
17648
|
})];
|
|
17586
17649
|
case 1:
|
|
@@ -17780,7 +17843,7 @@
|
|
|
17780
17843
|
};
|
|
17781
17844
|
return ConfigService;
|
|
17782
17845
|
}(BaseGraphqlService));
|
|
17783
|
-
ConfigService.ɵprov =
|
|
17846
|
+
ConfigService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(FileService), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
17784
17847
|
ConfigService.decorators = [
|
|
17785
17848
|
{ type: i0.Injectable, args: [{
|
|
17786
17849
|
providedIn: 'root',
|
|
@@ -17799,9 +17862,9 @@
|
|
|
17799
17862
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
|
|
17800
17863
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
17801
17864
|
]; };
|
|
17802
|
-
var templateObject_1$
|
|
17865
|
+
var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2, templateObject_5$1;
|
|
17803
17866
|
|
|
17804
|
-
var moment$
|
|
17867
|
+
var moment$3 = momentImported__namespace;
|
|
17805
17868
|
var AndroidOsEnvironment = Object.freeze({
|
|
17806
17869
|
DIRECTORY_DOWNLOADS: 'Download',
|
|
17807
17870
|
DIRECTORY_DOWNLOADS_OLD: 'Downloads',
|
|
@@ -18071,16 +18134,16 @@
|
|
|
18071
18134
|
}
|
|
18072
18135
|
// config moment lib
|
|
18073
18136
|
try {
|
|
18074
|
-
moment$
|
|
18137
|
+
moment$3.locale(event.lang);
|
|
18075
18138
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
18076
18139
|
}
|
|
18077
18140
|
// If error, fallback to en
|
|
18078
18141
|
catch (err) {
|
|
18079
|
-
moment$
|
|
18142
|
+
moment$3.locale('en');
|
|
18080
18143
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
18081
18144
|
}
|
|
18082
18145
|
// Config date adapter
|
|
18083
|
-
_this.dateAdapter.setLocale(moment$
|
|
18146
|
+
_this.dateAdapter.setLocale(moment$3.locale());
|
|
18084
18147
|
}
|
|
18085
18148
|
});
|
|
18086
18149
|
this.settings.onChange.subscribe(function (data) {
|
|
@@ -18333,7 +18396,7 @@
|
|
|
18333
18396
|
};
|
|
18334
18397
|
return PlatformService;
|
|
18335
18398
|
}(StartableService));
|
|
18336
|
-
PlatformService.ɵprov =
|
|
18399
|
+
PlatformService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0__namespace.ɵɵinject(i1__namespace$4.Platform), i0__namespace.ɵɵinject(i2__namespace$4.Platform), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter), i0__namespace.ɵɵinject(EntitiesStorage), i0__namespace.ɵɵinject(LocalSettingsService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(ConfigService), i0__namespace.ɵɵinject(i6__namespace.CacheService), i0__namespace.ɵɵinject(i3__namespace$1.Storage), i0__namespace.ɵɵinject(AudioProvider), i0__namespace.ɵɵinject(ENVIRONMENT), i0__namespace.ɵɵinject(i14__namespace.StatusBar, 8), i0__namespace.ɵɵinject(i15__namespace.Keyboard, 8), i0__namespace.ɵɵinject(i10__namespace.SplashScreen, 8), i0__namespace.ɵɵinject(i17__namespace.InAppBrowser, 8), i0__namespace.ɵɵinject(i18__namespace.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
|
|
18337
18400
|
PlatformService.decorators = [
|
|
18338
18401
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
18339
18402
|
];
|
|
@@ -18431,7 +18494,7 @@
|
|
|
18431
18494
|
};
|
|
18432
18495
|
return MatStepperI18n;
|
|
18433
18496
|
}(stepper.MatStepperIntl));
|
|
18434
|
-
MatStepperI18n.ɵprov =
|
|
18497
|
+
MatStepperI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
18435
18498
|
MatStepperI18n.decorators = [
|
|
18436
18499
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
18437
18500
|
];
|
|
@@ -20644,7 +20707,7 @@
|
|
|
20644
20707
|
return 1;
|
|
20645
20708
|
}
|
|
20646
20709
|
}
|
|
20647
|
-
var ɵ0$
|
|
20710
|
+
var ɵ0$1 = function (defaultStateSize) { return [
|
|
20648
20711
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
20649
20712
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
20650
20713
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -20652,7 +20715,7 @@
|
|
|
20652
20715
|
var SCALE_OPTIONS_DEFAULT = {
|
|
20653
20716
|
startColor: rgbArrayMap.red,
|
|
20654
20717
|
startStates: [0, 2, 3],
|
|
20655
|
-
startStepsFn: ɵ0$
|
|
20718
|
+
startStepsFn: ɵ0$1
|
|
20656
20719
|
};
|
|
20657
20720
|
/**
|
|
20658
20721
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -21583,7 +21646,7 @@
|
|
|
21583
21646
|
};
|
|
21584
21647
|
return UserSettingsValidatorService;
|
|
21585
21648
|
}(AppValidatorService));
|
|
21586
|
-
UserSettingsValidatorService.ɵprov =
|
|
21649
|
+
UserSettingsValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
21587
21650
|
UserSettingsValidatorService.decorators = [
|
|
21588
21651
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
21589
21652
|
];
|
|
@@ -21631,7 +21694,7 @@
|
|
|
21631
21694
|
};
|
|
21632
21695
|
return AccountValidatorService;
|
|
21633
21696
|
}(AppValidatorService));
|
|
21634
|
-
AccountValidatorService.ɵprov =
|
|
21697
|
+
AccountValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder), i0__namespace.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
21635
21698
|
AccountValidatorService.decorators = [
|
|
21636
21699
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
21637
21700
|
];
|
|
@@ -22262,7 +22325,7 @@
|
|
|
22262
22325
|
};
|
|
22263
22326
|
return LocalSettingsValidatorService;
|
|
22264
22327
|
}(AppValidatorService));
|
|
22265
|
-
LocalSettingsValidatorService.ɵprov =
|
|
22328
|
+
LocalSettingsValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder), i0__namespace.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
22266
22329
|
LocalSettingsValidatorService.decorators = [
|
|
22267
22330
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
22268
22331
|
];
|
|
@@ -23042,7 +23105,7 @@
|
|
|
23042
23105
|
};
|
|
23043
23106
|
return IsOnFieldModePipe;
|
|
23044
23107
|
}());
|
|
23045
|
-
IsOnFieldModePipe.ɵprov =
|
|
23108
|
+
IsOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
23046
23109
|
IsOnFieldModePipe.decorators = [
|
|
23047
23110
|
{ type: i0.Pipe, args: [{
|
|
23048
23111
|
name: 'isOnField'
|
|
@@ -23057,7 +23120,7 @@
|
|
|
23057
23120
|
};
|
|
23058
23121
|
return IsNotOnFieldModePipe;
|
|
23059
23122
|
}());
|
|
23060
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
23123
|
+
IsNotOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
23061
23124
|
IsNotOnFieldModePipe.decorators = [
|
|
23062
23125
|
{ type: i0.Pipe, args: [{
|
|
23063
23126
|
name: 'isNotOnField'
|
|
@@ -23075,7 +23138,7 @@
|
|
|
23075
23138
|
};
|
|
23076
23139
|
return PersonToStringPipe;
|
|
23077
23140
|
}());
|
|
23078
|
-
PersonToStringPipe.ɵprov =
|
|
23141
|
+
PersonToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
23079
23142
|
PersonToStringPipe.decorators = [
|
|
23080
23143
|
{ type: i0.Pipe, args: [{
|
|
23081
23144
|
name: 'personToString'
|
|
@@ -23539,7 +23602,7 @@
|
|
|
23539
23602
|
};
|
|
23540
23603
|
return IsLoginAccountPipe;
|
|
23541
23604
|
}());
|
|
23542
|
-
IsLoginAccountPipe.ɵprov =
|
|
23605
|
+
IsLoginAccountPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
23543
23606
|
IsLoginAccountPipe.decorators = [
|
|
23544
23607
|
{ type: i0.Pipe, args: [{
|
|
23545
23608
|
name: 'isLogin'
|
|
@@ -23554,7 +23617,7 @@
|
|
|
23554
23617
|
};
|
|
23555
23618
|
return AccountToStringPipe;
|
|
23556
23619
|
}());
|
|
23557
|
-
AccountToStringPipe.ɵprov =
|
|
23620
|
+
AccountToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
23558
23621
|
AccountToStringPipe.decorators = [
|
|
23559
23622
|
{ type: i0.Pipe, args: [{
|
|
23560
23623
|
name: 'accountToString'
|
|
@@ -23572,7 +23635,7 @@
|
|
|
23572
23635
|
};
|
|
23573
23636
|
return DepartmentToStringPipe;
|
|
23574
23637
|
}());
|
|
23575
|
-
DepartmentToStringPipe.ɵprov =
|
|
23638
|
+
DepartmentToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
23576
23639
|
DepartmentToStringPipe.decorators = [
|
|
23577
23640
|
{ type: i0.Pipe, args: [{
|
|
23578
23641
|
name: 'departmentToString'
|
|
@@ -23678,7 +23741,7 @@
|
|
|
23678
23741
|
};
|
|
23679
23742
|
return MenuService;
|
|
23680
23743
|
}());
|
|
23681
|
-
MenuService.ɵprov =
|
|
23744
|
+
MenuService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
23682
23745
|
MenuService.decorators = [
|
|
23683
23746
|
{ type: i0.Injectable, args: [{
|
|
23684
23747
|
providedIn: 'root'
|
|
@@ -24223,7 +24286,7 @@
|
|
|
24223
24286
|
};
|
|
24224
24287
|
return AuthGuardService;
|
|
24225
24288
|
}());
|
|
24226
|
-
AuthGuardService.ɵprov =
|
|
24289
|
+
AuthGuardService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(i1__namespace$4.ModalController), i0__namespace.ɵɵinject(i3__namespace$3.Router), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
24227
24290
|
AuthGuardService.decorators = [
|
|
24228
24291
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
24229
24292
|
];
|
|
@@ -24268,7 +24331,7 @@
|
|
|
24268
24331
|
query: query,
|
|
24269
24332
|
variables: { id: id },
|
|
24270
24333
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
24271
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24334
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24272
24335
|
})
|
|
24273
24336
|
.pipe(operators.map(function (_b) {
|
|
24274
24337
|
var data = _b.data;
|
|
@@ -24290,7 +24353,7 @@
|
|
|
24290
24353
|
query: query,
|
|
24291
24354
|
variables: { id: id },
|
|
24292
24355
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
24293
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24356
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24294
24357
|
})];
|
|
24295
24358
|
case 1:
|
|
24296
24359
|
data = (_b.sent()).data;
|
|
@@ -24326,7 +24389,7 @@
|
|
|
24326
24389
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
24327
24390
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
24328
24391
|
variables: variables,
|
|
24329
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
24392
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
24330
24393
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
24331
24394
|
})
|
|
24332
24395
|
.pipe(operators.map(function (_b) {
|
|
@@ -24368,7 +24431,7 @@
|
|
|
24368
24431
|
return [4 /*yield*/, this.graphql.query({
|
|
24369
24432
|
query: query,
|
|
24370
24433
|
variables: variables,
|
|
24371
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
24434
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
24372
24435
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
24373
24436
|
})];
|
|
24374
24437
|
case 1:
|
|
@@ -24416,7 +24479,7 @@
|
|
|
24416
24479
|
variables: {
|
|
24417
24480
|
filter: filter && filter.asPodObject()
|
|
24418
24481
|
},
|
|
24419
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
24482
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
24420
24483
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
24421
24484
|
})];
|
|
24422
24485
|
case 3:
|
|
@@ -24461,7 +24524,7 @@
|
|
|
24461
24524
|
variables: {
|
|
24462
24525
|
data: json
|
|
24463
24526
|
},
|
|
24464
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24527
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24465
24528
|
update: function (proxy, _b) {
|
|
24466
24529
|
var data = _b.data;
|
|
24467
24530
|
var savedEntities = data && data.data;
|
|
@@ -24528,7 +24591,7 @@
|
|
|
24528
24591
|
variables: {
|
|
24529
24592
|
data: json
|
|
24530
24593
|
},
|
|
24531
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24594
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24532
24595
|
update: function (cache, _b) {
|
|
24533
24596
|
var data = _b.data;
|
|
24534
24597
|
// Update entity
|
|
@@ -24586,7 +24649,7 @@
|
|
|
24586
24649
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
24587
24650
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
24588
24651
|
variables: { ids: ids },
|
|
24589
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24652
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24590
24653
|
update: function (cache, res) {
|
|
24591
24654
|
// Remove from cache
|
|
24592
24655
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -24639,7 +24702,7 @@
|
|
|
24639
24702
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
24640
24703
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
24641
24704
|
variables: { id: id },
|
|
24642
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24705
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24643
24706
|
update: function (proxy, res) {
|
|
24644
24707
|
// Remove from cache
|
|
24645
24708
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -24681,7 +24744,7 @@
|
|
|
24681
24744
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache',
|
|
24682
24745
|
variables: variables,
|
|
24683
24746
|
error: {
|
|
24684
|
-
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
24747
|
+
code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
|
|
24685
24748
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
24686
24749
|
}
|
|
24687
24750
|
})
|
|
@@ -24904,7 +24967,7 @@
|
|
|
24904
24967
|
if (this._debug)
|
|
24905
24968
|
invalidRows.forEach(function (row) { return AppTableUtils.logRowErrors(row, "[table-datasource] " + _this._logTypeName + " row #" + row.id); });
|
|
24906
24969
|
// Stop with an error
|
|
24907
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
24970
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
24908
24971
|
}
|
|
24909
24972
|
this._editingRowCount = 0;
|
|
24910
24973
|
data = void 0;
|
|
@@ -25924,14 +25987,14 @@
|
|
|
25924
25987
|
case 0:
|
|
25925
25988
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
25926
25989
|
if (this.readOnly) {
|
|
25927
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
25990
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
25928
25991
|
}
|
|
25929
25992
|
this.resetError();
|
|
25930
25993
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
25931
25994
|
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;
|
|
25932
25995
|
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;
|
|
25933
25996
|
if (!this.confirmEditCreate()) {
|
|
25934
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
25997
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
25935
25998
|
}
|
|
25936
25999
|
// Mark as saving
|
|
25937
26000
|
this.markAsSaving();
|
|
@@ -26088,7 +26151,7 @@
|
|
|
26088
26151
|
switch (_e.label) {
|
|
26089
26152
|
case 0:
|
|
26090
26153
|
if (this.readOnly) {
|
|
26091
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
26154
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
26092
26155
|
}
|
|
26093
26156
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
26094
26157
|
return [2 /*return*/, 0]; // SKip
|
|
@@ -27988,7 +28051,7 @@
|
|
|
27988
28051
|
case 8:
|
|
27989
28052
|
data = _c.sent();
|
|
27990
28053
|
if (!data)
|
|
27991
|
-
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
28054
|
+
throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
27992
28055
|
this._usageMode = this.computeUsageMode(data);
|
|
27993
28056
|
return [4 /*yield*/, this.onEntityLoaded(data, opts)];
|
|
27994
28057
|
case 9:
|
|
@@ -28780,10 +28843,10 @@
|
|
|
28780
28843
|
exports.UserEventFilter = __decorate([
|
|
28781
28844
|
EntityClass({ typename: 'UserEventVO' })
|
|
28782
28845
|
], exports.UserEventFilter);
|
|
28783
|
-
var SaveQuery = core.gql(templateObject_1$
|
|
28784
|
-
var LoadAllQuery = core.gql(templateObject_2$
|
|
28785
|
-
var DeleteByIdsMutation = core.gql(templateObject_3$
|
|
28786
|
-
var LoadAllWithContentQuery = core.gql(templateObject_4$
|
|
28846
|
+
var SaveQuery = core.gql(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n"], ["\n mutation SaveUserEvent($data: UserEventVOInput){\n data: saveUserEvent(userEvent: $data){\n ...UserEventFragment\n }\n }\n ", "\n"])), SocialFragments.userEvent);
|
|
28847
|
+
var LoadAllQuery = core.gql(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n"], ["\n query UserEvents($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...LightUserEventFragment\n }\n }\n ", "\n"])), SocialFragments.lightUserEvent);
|
|
28848
|
+
var DeleteByIdsMutation = core.gql(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"], ["\n mutation DeleteUserEvents($ids:[Int]){\n deleteUserEvents(ids: $ids)\n }\n"])));
|
|
28849
|
+
var LoadAllWithContentQuery = core.gql(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n"], ["\n query UserEventsWithContent($filter: UserEventFilterVOInput, $page: PageInput){\n data: userEvents(filter: $filter, page: $page){\n ...UserEventFragment\n }\n }\n ", "\n"])), SocialFragments.userEvent);
|
|
28787
28850
|
var UserEventService = /** @class */ (function (_super) {
|
|
28788
28851
|
__extends(UserEventService, _super);
|
|
28789
28852
|
function UserEventService(graphql, accountService, network, translate, toastController, environment) {
|
|
@@ -29104,7 +29167,7 @@
|
|
|
29104
29167
|
};
|
|
29105
29168
|
return UserEventService;
|
|
29106
29169
|
}(BaseGraphqlService));
|
|
29107
|
-
UserEventService.ɵprov =
|
|
29170
|
+
UserEventService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(AccountService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(i1__namespace$1.TranslateService), i0__namespace.ɵɵinject(i1__namespace$4.ToastController), i0__namespace.ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
|
|
29108
29171
|
UserEventService.decorators = [
|
|
29109
29172
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29110
29173
|
];
|
|
@@ -29116,7 +29179,7 @@
|
|
|
29116
29179
|
{ type: i1$5.ToastController },
|
|
29117
29180
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
29118
29181
|
]; };
|
|
29119
|
-
var templateObject_1$
|
|
29182
|
+
var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1;
|
|
29120
29183
|
|
|
29121
29184
|
var ICONS_MAP = {
|
|
29122
29185
|
DEBUG_DATA: { matIcon: 'bug_report' },
|
|
@@ -29378,16 +29441,16 @@
|
|
|
29378
29441
|
], exports.PersonFilter);
|
|
29379
29442
|
|
|
29380
29443
|
var PersonFragments = {
|
|
29381
|
-
person: core.gql(templateObject_1
|
|
29444
|
+
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 }"])))
|
|
29382
29445
|
};
|
|
29383
29446
|
// Load persons query
|
|
29384
29447
|
var PersonQueries = {
|
|
29385
|
-
loadAll: core.gql(templateObject_2
|
|
29386
|
-
loadAllWithTotal: core.gql(templateObject_3
|
|
29448
|
+
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),
|
|
29449
|
+
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)
|
|
29387
29450
|
};
|
|
29388
29451
|
var PersonMutations = {
|
|
29389
|
-
saveAll: core.gql(templateObject_4
|
|
29390
|
-
deleteAll: core.gql(templateObject_5
|
|
29452
|
+
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),
|
|
29453
|
+
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 }"])))
|
|
29391
29454
|
};
|
|
29392
29455
|
var PersonService = /** @class */ (function (_super_1) {
|
|
29393
29456
|
__extends(PersonService, _super_1);
|
|
@@ -29508,7 +29571,7 @@
|
|
|
29508
29571
|
};
|
|
29509
29572
|
return PersonService;
|
|
29510
29573
|
}(BaseEntityService));
|
|
29511
|
-
PersonService.ɵprov =
|
|
29574
|
+
PersonService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(i0__namespace.ɵɵinject(GraphqlService), i0__namespace.ɵɵinject(PlatformService), i0__namespace.ɵɵinject(NetworkService), i0__namespace.ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
29512
29575
|
PersonService.decorators = [
|
|
29513
29576
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29514
29577
|
];
|
|
@@ -29518,7 +29581,7 @@
|
|
|
29518
29581
|
{ type: NetworkService },
|
|
29519
29582
|
{ type: EntitiesStorage }
|
|
29520
29583
|
]; };
|
|
29521
|
-
var templateObject_1
|
|
29584
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
29522
29585
|
|
|
29523
29586
|
var PersonValidatorService = /** @class */ (function () {
|
|
29524
29587
|
function PersonValidatorService(formBuilder, accountValidatorService) {
|
|
@@ -29541,7 +29604,7 @@
|
|
|
29541
29604
|
};
|
|
29542
29605
|
return PersonValidatorService;
|
|
29543
29606
|
}());
|
|
29544
|
-
PersonValidatorService.ɵprov =
|
|
29607
|
+
PersonValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder), i0__namespace.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
29545
29608
|
PersonValidatorService.decorators = [
|
|
29546
29609
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29547
29610
|
];
|
|
@@ -29752,16 +29815,16 @@
|
|
|
29752
29815
|
];
|
|
29753
29816
|
AdminModule.ctorParameters = function () { return []; };
|
|
29754
29817
|
|
|
29755
|
-
var ɵ0
|
|
29818
|
+
var ɵ0 = {
|
|
29756
29819
|
profile: 'ADMIN'
|
|
29757
29820
|
};
|
|
29758
|
-
var routes = [
|
|
29821
|
+
var routes$5 = [
|
|
29759
29822
|
{
|
|
29760
29823
|
path: 'users',
|
|
29761
29824
|
pathMatch: 'full',
|
|
29762
29825
|
component: UsersPage,
|
|
29763
29826
|
canActivate: [AuthGuardService],
|
|
29764
|
-
data: ɵ0
|
|
29827
|
+
data: ɵ0
|
|
29765
29828
|
}
|
|
29766
29829
|
];
|
|
29767
29830
|
var AdminRoutingModule = /** @class */ (function () {
|
|
@@ -29774,36 +29837,36 @@
|
|
|
29774
29837
|
imports: [
|
|
29775
29838
|
SharedRoutingModule,
|
|
29776
29839
|
AdminModule,
|
|
29777
|
-
i3.RouterModule.forChild(routes)
|
|
29840
|
+
i3.RouterModule.forChild(routes$5)
|
|
29778
29841
|
],
|
|
29779
29842
|
exports: [i3.RouterModule]
|
|
29780
29843
|
},] }
|
|
29781
29844
|
];
|
|
29782
29845
|
|
|
29783
|
-
var ErrorCodes
|
|
29846
|
+
var ErrorCodes = {
|
|
29784
29847
|
LOAD_PERSONS_ERROR: 100,
|
|
29785
29848
|
SAVE_PERSONS_ERROR: 101,
|
|
29786
29849
|
DELETE_PERSONS_ERROR: 102,
|
|
29787
29850
|
};
|
|
29788
29851
|
|
|
29789
|
-
var EntityTestClass = /** @class */ (function () {
|
|
29852
|
+
var EntityTestClass$1 = /** @class */ (function () {
|
|
29790
29853
|
function EntityTestClass() {
|
|
29791
29854
|
}
|
|
29792
29855
|
return EntityTestClass;
|
|
29793
29856
|
}());
|
|
29794
|
-
var FAKE_ENTITIES = [
|
|
29857
|
+
var FAKE_ENTITIES$1 = [
|
|
29795
29858
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
29796
29859
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
29797
29860
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
29798
29861
|
];
|
|
29799
|
-
function deepCopy(values, size) {
|
|
29862
|
+
function deepCopy$1(values, size) {
|
|
29800
29863
|
if (isNil(size)) {
|
|
29801
|
-
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
29864
|
+
return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
|
|
29802
29865
|
}
|
|
29803
29866
|
var result = [];
|
|
29804
29867
|
var i = 1;
|
|
29805
29868
|
while (result.length < size) {
|
|
29806
|
-
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
29869
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
|
|
29807
29870
|
var name = entity.name + ' #' + i;
|
|
29808
29871
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
29809
29872
|
}));
|
|
@@ -29813,7 +29876,7 @@
|
|
|
29813
29876
|
var AutocompleteTestPage = /** @class */ (function () {
|
|
29814
29877
|
function AutocompleteTestPage(formBuilder) {
|
|
29815
29878
|
this.formBuilder = formBuilder;
|
|
29816
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
29879
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
29817
29880
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
29818
29881
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
29819
29882
|
this.memoryHide = false;
|
|
@@ -29824,6 +29887,7 @@
|
|
|
29824
29887
|
entity: [null, SharedValidators.entity],
|
|
29825
29888
|
missingEntity: [null, SharedValidators.entity],
|
|
29826
29889
|
disableEntity: [null, SharedValidators.entity],
|
|
29890
|
+
entities: [null, SharedFormArrayValidators.requiredArrayMinLength(1)],
|
|
29827
29891
|
});
|
|
29828
29892
|
this.form.get('disableEntity').disable();
|
|
29829
29893
|
}
|
|
@@ -29858,10 +29922,19 @@
|
|
|
29858
29922
|
});
|
|
29859
29923
|
// From items
|
|
29860
29924
|
this.autocompleteFields.add('entity-items-large', {
|
|
29861
|
-
items: FAKE_ENTITIES.slice(),
|
|
29925
|
+
items: FAKE_ENTITIES$1.slice(),
|
|
29862
29926
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
29863
29927
|
displayWith: this.entityToString
|
|
29864
29928
|
});
|
|
29929
|
+
// For mutliple value
|
|
29930
|
+
this.autocompleteFields.add('entities-items-filter', {
|
|
29931
|
+
service: {
|
|
29932
|
+
suggest: function (value, filter) { return _this.suggest(value, filter); }
|
|
29933
|
+
},
|
|
29934
|
+
attributes: ['label', 'name'],
|
|
29935
|
+
multiple: true
|
|
29936
|
+
//displayWith: this.entitiesToString
|
|
29937
|
+
});
|
|
29865
29938
|
this.loadData();
|
|
29866
29939
|
};
|
|
29867
29940
|
// Load the form with data
|
|
@@ -29871,12 +29944,13 @@
|
|
|
29871
29944
|
var _this = this;
|
|
29872
29945
|
return __generator(this, function (_a) {
|
|
29873
29946
|
data = {
|
|
29874
|
-
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
29947
|
+
entity: deepCopy$1(FAKE_ENTITIES$1)[0],
|
|
29875
29948
|
// This item is NOT in the items list => i should be displayed anyway
|
|
29876
29949
|
missingEntity: {
|
|
29877
29950
|
id: -1, label: '??', name: 'Missing item'
|
|
29878
29951
|
},
|
|
29879
|
-
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
29952
|
+
disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2],
|
|
29953
|
+
entities: deepCopy$1(FAKE_ENTITIES$1)
|
|
29880
29954
|
};
|
|
29881
29955
|
this.form.setValue(data);
|
|
29882
29956
|
// Load observables
|
|
@@ -29896,6 +29970,9 @@
|
|
|
29896
29970
|
AutocompleteTestPage.prototype.entityToString = function (item) {
|
|
29897
29971
|
return [item && item.label || undefined, item && item.name || undefined].filter(isNotNil).join(' - ');
|
|
29898
29972
|
};
|
|
29973
|
+
AutocompleteTestPage.prototype.entitiesToString = function (items) {
|
|
29974
|
+
return (items || []).map(this.entityToString).join(', ');
|
|
29975
|
+
};
|
|
29899
29976
|
AutocompleteTestPage.prototype.suggest = function (value, filter) {
|
|
29900
29977
|
return __awaiter(this, void 0, void 0, function () {
|
|
29901
29978
|
var res, total, nextOffset;
|
|
@@ -29949,9 +30026,10 @@
|
|
|
29949
30026
|
this.memoryTimer = null;
|
|
29950
30027
|
this.memoryHide = false;
|
|
29951
30028
|
};
|
|
29952
|
-
AutocompleteTestPage.prototype.updateFilter = function (fieldName) {
|
|
30029
|
+
AutocompleteTestPage.prototype.updateFilter = function (autocompleteField, fieldName) {
|
|
29953
30030
|
var filter = this.autocompleteFields.get(fieldName).filter || {};
|
|
29954
30031
|
filter.searchAttribute = (!filter || filter.searchAttribute !== 'name') ? 'name' : 'label';
|
|
30032
|
+
autocompleteField.reloadItems();
|
|
29955
30033
|
};
|
|
29956
30034
|
/* -- protected methods -- */
|
|
29957
30035
|
AutocompleteTestPage.prototype.stringify = function (value) {
|
|
@@ -29962,7 +30040,7 @@
|
|
|
29962
30040
|
AutocompleteTestPage.decorators = [
|
|
29963
30041
|
{ type: i0.Component, args: [{
|
|
29964
30042
|
selector: 'app-autocomplete-test',
|
|
29965
|
-
template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Autocomplete field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <!-- Tab nav - mobile/desktop mode -->\n <nav mat-tab-nav-bar>\n <a mat-tab-link\n [active]=\"mode==='mobile'\"\n (click)=\"toggleMode('mobile')\">\n <mat-label>Mobile</mat-label>\n </a>\n <a mat-tab-link [active]=\"mode==='desktop'\"\n (click)=\"toggleMode('desktop')\">\n <mat-label>Desktop</mat-label>\n </a>\n <a mat-tab-link [active]=\"mode==='memory'\"\n (click)=\"toggleMode('memory')\">\n <mat-label>Memory leak debug</mat-label>\n </a>\n <a mat-tab-link\n [active]=\"mode==='temp'\"\n (click)=\"toggleMode('temp')\">\n <mat-label>Temporary</mat-label>\n </a>\n </nav>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <!--<ion-grid *ngIf=\"mode === 'temp'\">\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an Observable\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [logPrefix]=\"'[combo-desktop-2]'\"\n [compareWith]=\"compareWithFn\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n\n </ion-card>\n </ion-col>\n </ion-row>\n\n\n </ion-grid>-->\n\n\n <ion-grid *ngIf=\"mode === 'memory'\">\n\n <!-- debugging memory leak -->\n <ion-row>\n <ion-col>\n <ion-text><h4>Debug memory leak</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"2\">\n <mat-form-field floatLabel=\"always\">\n <input matInput type=\"text\" hidden placeholder=\"Items type\">\n <mat-select (selectionChange)=\"memoryAutocompleteFieldName=$event.value\" [value]=\"memoryAutocompleteFieldName\">\n <mat-option value=\"entity-$items\">Observable</mat-option>\n <mat-option value=\"entity-suggestFn\">Suggest function</mat-option>\n </mat-select>\n </mat-form-field>\n </ion-col>\n <ion-col size=\"1\" class=\"ion-no-padding\">\n <mat-form-field floatLabel=\"always\">\n <input matInput type=\"text\" hidden placeholder=\"Mobile ?\">\n <mat-checkbox (change)=\"memoryMobile=$event.checked\" [checked]=\"memoryMobile\">\n </mat-checkbox>\n </mat-form-field>\n </ion-col>\n\n <ion-col size=\"2\">\n <ion-button *ngIf=\"!memoryTimer\" (click)=\"startMemoryTimer()\" color=\"tertiary\">Start</ion-button>\n <ion-button *ngIf=\"memoryTimer\" (click)=\"stopMemoryTimer()\" color=\"tertiary\">Stop</ion-button>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <mat-autocomplete-field formControlName=\"entity\"\n *ngIf=\"!memoryHide && memoryAutocompleteFieldName\"\n [config]=\"autocompleteFields.get(memoryAutocompleteFieldName)\"\n [mobile]=\"memoryMobile\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-memory-leak]'\">\n </mat-autocomplete-field>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n <!-- Mobile mode -->\n <ion-grid *ngIf=\"mode === 'mobile'\">\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Suggest() function\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>mobile: true, suggestFn: (searchText, filter) => any[]</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-1]'\"\n [required]=\"true\"\n placeholder=\"Suggest field\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Items is an Observable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>mobile: true, items: Observable<any[]></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-observable]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Control value if missing in items\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>mobile: true, items: Observable<any[]></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"missingEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-2]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-2]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n\n <ion-row>\n <ion-col size=\"9\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Change filter\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <ion-button (click)=\"updateFilter('entity-items-filter')\">Filter on: {{autocompleteFields.get('entity-items-filter').filter?.searchAttribute }}</ion-button>\n </ion-col>\n <ion-col>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-filter]'\"\n ></mat-autocomplete-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"3\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Large combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>class=\"min-width-large\"</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"true\"\n class=\"min-width-large\"\n panelWidth=\"400px\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-large]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Readonly toggle\n </ion-text>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <ion-grid>\n <ion-row>\n <ion-col size=\"3\">\n <mat-checkbox (change)=\"readonlyField.readonly=$event.checked\" [checked]=\"readonlyField.readonly\">\n Readonly ?\n </mat-checkbox>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <mat-autocomplete-field #readonlyField formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-readonly]'\"\n [readonly]=\"true\"\n [clearable]=\"!readonlyField.readonly\">\n </mat-autocomplete-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <!-- Desktop mode -->\n <ion-grid *ngIf=\"mode === 'desktop'\">\n <ion-row>\n <ion-col>\n <ion-text><h4>Desktop mode</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n items from suggest function\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>suggest: (value, filter) => LoadResult<any></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-suggest]'\">\n </mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n search with a suggestLengthThreshold\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>suggest: (value, filter) => LoadResult<any>\nsuggestLengthThreshold: '3'</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n suggestLengthThreshold=\"3\"\n [logPrefix]=\"'[combo-desktop-suggest]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an array\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>items: [], value: {{stringify(form.controls.entity.value)}}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items')\"\n [logPrefix]=\"'[combo-desktop-array-1]'\"\n [equals]=\"equals\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an Observable\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>items: Observable<any[]></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [logPrefix]=\"'[combo-desktop-2]'\"\n [equals]=\"equals\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Control value if missing in items\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>items: Observable<any[]></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"missingEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-missing]'\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Full size panel\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>class: 'mat-autocomplete-panel-full-size'</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [class]=\"'mat-autocomplete-panel-full-size'\"\n [matAutocompletePosition]=\"'above'\"\n [logPrefix]=\"'[combo-desktop-full-size]'\"\n [debug]=\"true\"\n [showAllOnFocus]=\"true\"\n [showPanelOnFocus]=\"true\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-disable]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-readonly]'\"\n [readonly]=\"true\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col size=\"9\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Full size combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>class=\"mat-autocomplete-panel-full-size\"</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"false\"\n class=\"mat-autocomplete-panel-full-size\"\n panelWidth=\"100vw\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-full-size]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"3\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Large combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>panelWidth: string</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"false\"\n panelWidth=\"400px\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-large]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Readonly toggle\n </ion-text>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <ion-grid>\n <ion-row>\n <ion-col size=\"3\">\n <mat-checkbox (change)=\"readonlyField.readonly=$event.checked\" [checked]=\"readonlyField.readonly\">\n Readonly ?\n </mat-checkbox>\n </ion-col>\n <ion-col size=\"3\">\n <mat-checkbox #showIcons [checked]=\"false\">\n Icons ?\n </mat-checkbox>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <mat-autocomplete-field #readonlyField formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-readonly]'\"\n [readonly]=\"true\"\n [clearable]=\"!readonlyField.readonly\">\n <mat-icon matPrefix *ngIf=\"showIcons.checked\">keyboard_arrow_right</mat-icon>\n <mat-icon matSuffix *ngIf=\"showIcons.checked\">keyboard_arrow_left</mat-icon>\n </mat-autocomplete-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </form>\n\n</ion-content>\n"
|
|
30043
|
+
template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Autocomplete field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <!-- Tab nav - mobile/desktop mode -->\n <nav mat-tab-nav-bar>\n <a mat-tab-link\n [active]=\"mode==='mobile'\"\n (click)=\"toggleMode('mobile')\">\n <mat-label>Mobile</mat-label>\n </a>\n <a mat-tab-link [active]=\"mode==='desktop'\"\n (click)=\"toggleMode('desktop')\">\n <mat-label>Desktop</mat-label>\n </a>\n <a mat-tab-link [active]=\"mode==='memory'\"\n (click)=\"toggleMode('memory')\">\n <mat-label>Memory leak debug</mat-label>\n </a>\n <a mat-tab-link\n [active]=\"mode==='temp'\"\n (click)=\"toggleMode('temp')\">\n <mat-label>Temporary</mat-label>\n </a>\n </nav>\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <!--<ion-grid *ngIf=\"mode === 'temp'\">\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an Observable\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>items: Observable<any[]></pre></small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [logPrefix]=\"'[combo-desktop-2]'\"\n [compareWith]=\"compareWithFn\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n\n </ion-card>\n </ion-col>\n </ion-row>\n\n\n </ion-grid>-->\n\n\n <ion-grid *ngIf=\"mode === 'memory'\">\n\n <!-- debugging memory leak -->\n <ion-row>\n <ion-col>\n <ion-text><h4>Debug memory leak</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"2\">\n <mat-form-field floatLabel=\"always\">\n <input matInput type=\"text\" hidden placeholder=\"Items type\">\n <mat-select (selectionChange)=\"memoryAutocompleteFieldName=$event.value\" [value]=\"memoryAutocompleteFieldName\">\n <mat-option value=\"entity-$items\">Observable</mat-option>\n <mat-option value=\"entity-suggestFn\">Suggest function</mat-option>\n </mat-select>\n </mat-form-field>\n </ion-col>\n <ion-col size=\"1\" class=\"ion-no-padding\">\n <mat-form-field floatLabel=\"always\">\n <input matInput type=\"text\" hidden placeholder=\"Mobile ?\">\n <mat-checkbox (change)=\"memoryMobile=$event.checked\" [checked]=\"memoryMobile\">\n </mat-checkbox>\n </mat-form-field>\n </ion-col>\n\n <ion-col size=\"2\">\n <ion-button *ngIf=\"!memoryTimer\" (click)=\"startMemoryTimer()\" color=\"tertiary\">Start</ion-button>\n <ion-button *ngIf=\"memoryTimer\" (click)=\"stopMemoryTimer()\" color=\"tertiary\">Stop</ion-button>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <mat-autocomplete-field formControlName=\"entity\"\n *ngIf=\"!memoryHide && memoryAutocompleteFieldName\"\n [config]=\"autocompleteFields.get(memoryAutocompleteFieldName)\"\n [mobile]=\"memoryMobile\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-memory-leak]'\">\n </mat-autocomplete-field>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n <!-- Mobile mode -->\n <ion-grid *ngIf=\"mode === 'mobile'\">\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Suggest() function\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>mobile: true, suggestFn: (searchText, filter) => any[]</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-1]'\"\n [required]=\"true\"\n placeholder=\"Suggest field\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Items is an Observable\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>mobile: true, items: Observable<any[]></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-observable]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Control value if missing in items\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>mobile: true, items: Observable<any[]></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"missingEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-2]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n search with a suggestLengthThreshold\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>suggest: (value, filter) => LoadResult<any>\nsuggestLengthThreshold: '3'</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n suggestLengthThreshold=\"3\"\n [logPrefix]=\"'[combo-mobile-suggestLengthThreshold]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Multiple value\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>multiple: true</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entities\"\n [config]=\"autocompleteFields.get('entities-items-filter')\"\n [placeholder]=\"'Multiple'\"\n mobile=\"true\"\n multiple=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-multiple]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-2]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n </ion-row>\n\n <ion-row>\n <ion-col size=\"9\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Change filter\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <ion-button (click)=\"updateFilter(filterChangeField, 'entity-items-filter')\">Filter on: {{autocompleteFields.get('entity-items-filter').filter?.searchAttribute }}</ion-button>\n </ion-col>\n <ion-col>\n <mat-autocomplete-field formControlName=\"entity\" #filterChangeField\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-filter]'\"\n ></mat-autocomplete-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"3\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Large combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>class=\"min-width-large\"</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"true\"\n class=\"min-width-large\"\n panelWidth=\"400px\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-large]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Readonly toggle\n </ion-text>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <ion-grid>\n <ion-row>\n <ion-col size=\"3\">\n <mat-checkbox (change)=\"readonlyField.readonly=$event.checked\" [checked]=\"readonlyField.readonly\">\n Readonly ?\n </mat-checkbox>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <mat-autocomplete-field #readonlyField formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-mobile-readonly]'\"\n [readonly]=\"true\"\n [clearable]=\"!readonlyField.readonly\">\n </mat-autocomplete-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Fullscreen\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>class: 'mat-autocomplete-panel-full-size'</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"true\"\n [class]=\"'mat-autocomplete-panel-full-size'\"\n [matAutocompletePosition]=\"'above'\"\n [logPrefix]=\"'[combo-mobile-full-size]'\"\n [debug]=\"true\"\n [showAllOnFocus]=\"true\"\n [showPanelOnFocus]=\"true\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <!-- Desktop mode -->\n <ion-grid *ngIf=\"mode === 'desktop'\">\n <ion-row>\n <ion-col>\n <ion-text><h4>Desktop mode</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n items from suggest function\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>suggest: (value, filter) => LoadResult<any></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-suggest]'\">\n </mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n search with a suggestLengthThreshold\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>suggest: (value, filter) => LoadResult<any>\nsuggestLengthThreshold: '3'</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n suggestLengthThreshold=\"3\"\n [logPrefix]=\"'[combo-desktop-suggestLengthThreshold]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an array\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>items: [], value: {{stringify(form.controls.entity.value)}}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items')\"\n [logPrefix]=\"'[combo-desktop-array-1]'\"\n [equals]=\"equals\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Items is an Observable\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>items: Observable<any[]></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [logPrefix]=\"'[combo-desktop-2]'\"\n [equals]=\"equals\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Multiple value\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small><pre>multiple: true</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entities\"\n [config]=\"autocompleteFields.get('entities-items-filter')\"\n [placeholder]=\"'Multiple'\"\n mobile=\"false\"\n multiple=\"true\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-multiple]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Control value if missing in items\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>items: Observable<any[]></pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"missingEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-missing]'\"\n [mobile]=\"false\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Full size panel\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>class: 'mat-autocomplete-panel-full-size'</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [class]=\"'mat-autocomplete-panel-full-size'\"\n [matAutocompletePosition]=\"'above'\"\n [logPrefix]=\"'[combo-desktop-full-size]'\"\n [debug]=\"true\"\n [showAllOnFocus]=\"true\"\n [showPanelOnFocus]=\"true\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-disable]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-$items')\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-readonly]'\"\n [readonly]=\"true\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col size=\"9\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Full size combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>class=\"mat-autocomplete-panel-full-size\"</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"false\"\n class=\"mat-autocomplete-panel-full-size\"\n panelWidth=\"100vw\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-full-size]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"3\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Large combo\n </ion-label>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>panelWidth: string</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-autocomplete-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-large')\"\n [mobile]=\"false\"\n panelWidth=\"400px\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-large]'\"\n ></mat-autocomplete-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col size=\"6\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Readonly toggle\n </ion-text>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <ion-grid>\n <ion-row>\n <ion-col size=\"3\">\n <mat-checkbox (change)=\"readonlyField.readonly=$event.checked\" [checked]=\"readonlyField.readonly\">\n Readonly ?\n </mat-checkbox>\n </ion-col>\n <ion-col size=\"3\">\n <mat-checkbox #showIcons [checked]=\"false\">\n Icons ?\n </mat-checkbox>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <mat-autocomplete-field #readonlyField formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-items-filter')\"\n [placeholder]=\"'Entity'\"\n [mobile]=\"false\"\n [equals]=\"equals\"\n [logPrefix]=\"'[combo-desktop-readonly]'\"\n [readonly]=\"true\"\n [clearable]=\"!readonlyField.readonly\">\n <mat-icon matPrefix *ngIf=\"showIcons.checked\">keyboard_arrow_right</mat-icon>\n <mat-icon matSuffix *ngIf=\"showIcons.checked\">keyboard_arrow_left</mat-icon>\n </mat-autocomplete-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n </form>\n\n</ion-content>\n"
|
|
29966
30044
|
},] }
|
|
29967
30045
|
];
|
|
29968
30046
|
AutocompleteTestPage.ctorParameters = function () { return [
|
|
@@ -30041,13 +30119,13 @@
|
|
|
30041
30119
|
{ type: i1.FormBuilder }
|
|
30042
30120
|
]; };
|
|
30043
30121
|
|
|
30044
|
-
var moment$
|
|
30122
|
+
var moment$2 = momentImported__namespace;
|
|
30045
30123
|
var SwipeTestPage = /** @class */ (function () {
|
|
30046
30124
|
function SwipeTestPage(formBuilder, dateFormatPipe) {
|
|
30047
30125
|
this.formBuilder = formBuilder;
|
|
30048
30126
|
this.dateFormatPipe = dateFormatPipe;
|
|
30049
30127
|
this.$dates = new rxjs.BehaviorSubject(undefined);
|
|
30050
|
-
this._today = moment$
|
|
30128
|
+
this._today = moment$2().startOf('day');
|
|
30051
30129
|
this.form = formBuilder.group({
|
|
30052
30130
|
empty: [null, i1.Validators.required],
|
|
30053
30131
|
date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
|
|
@@ -30061,7 +30139,7 @@
|
|
|
30061
30139
|
var _this = this;
|
|
30062
30140
|
var dates = [];
|
|
30063
30141
|
for (var d = 0; d < 7; d++) {
|
|
30064
|
-
dates[d] = moment$
|
|
30142
|
+
dates[d] = moment$2(this._today).add(d - 3, 'day');
|
|
30065
30143
|
}
|
|
30066
30144
|
this.$dates.next(dates);
|
|
30067
30145
|
this.loadData();
|
|
@@ -30108,7 +30186,7 @@
|
|
|
30108
30186
|
{ type: DateFormatPipe }
|
|
30109
30187
|
]; };
|
|
30110
30188
|
|
|
30111
|
-
var moment$
|
|
30189
|
+
var moment$1 = momentImported__namespace;
|
|
30112
30190
|
var DateTimeTestPage = /** @class */ (function () {
|
|
30113
30191
|
function DateTimeTestPage(platform, formBuilder, cd) {
|
|
30114
30192
|
this.platform = platform;
|
|
@@ -30144,7 +30222,7 @@
|
|
|
30144
30222
|
var now, data;
|
|
30145
30223
|
var _this = this;
|
|
30146
30224
|
return __generator(this, function (_a) {
|
|
30147
|
-
now = moment$
|
|
30225
|
+
now = moment$1();
|
|
30148
30226
|
data = {
|
|
30149
30227
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
30150
30228
|
enable: toDateISOString(now),
|
|
@@ -30209,12 +30287,12 @@
|
|
|
30209
30287
|
{ type: i0.ChangeDetectorRef }
|
|
30210
30288
|
]; };
|
|
30211
30289
|
|
|
30212
|
-
var EntityTestClass
|
|
30290
|
+
var EntityTestClass = /** @class */ (function () {
|
|
30213
30291
|
function EntityTestClass() {
|
|
30214
30292
|
}
|
|
30215
30293
|
return EntityTestClass;
|
|
30216
30294
|
}());
|
|
30217
|
-
var FAKE_ENTITIES
|
|
30295
|
+
var FAKE_ENTITIES = [
|
|
30218
30296
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
30219
30297
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
30220
30298
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -30223,14 +30301,14 @@
|
|
|
30223
30301
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
30224
30302
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
30225
30303
|
];
|
|
30226
|
-
function deepCopy
|
|
30304
|
+
function deepCopy(values, size) {
|
|
30227
30305
|
if (isNil(size)) {
|
|
30228
|
-
return (values || FAKE_ENTITIES
|
|
30306
|
+
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
30229
30307
|
}
|
|
30230
30308
|
var result = [];
|
|
30231
30309
|
var i = 1;
|
|
30232
30310
|
while (result.length < size) {
|
|
30233
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
30311
|
+
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
30234
30312
|
var name = entity.name + ' #' + i;
|
|
30235
30313
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
30236
30314
|
}));
|
|
@@ -30240,7 +30318,7 @@
|
|
|
30240
30318
|
var ChipsTestPage = /** @class */ (function () {
|
|
30241
30319
|
function ChipsTestPage(formBuilder) {
|
|
30242
30320
|
this.formBuilder = formBuilder;
|
|
30243
|
-
this._items = deepCopy
|
|
30321
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
30244
30322
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
30245
30323
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
30246
30324
|
this.form = formBuilder.group({
|
|
@@ -30283,7 +30361,7 @@
|
|
|
30283
30361
|
var items, data;
|
|
30284
30362
|
var _this = this;
|
|
30285
30363
|
return __generator(this, function (_a) {
|
|
30286
|
-
items = deepCopy
|
|
30364
|
+
items = deepCopy(FAKE_ENTITIES);
|
|
30287
30365
|
data = {
|
|
30288
30366
|
entity: items.slice(0, 1),
|
|
30289
30367
|
entityInitial: items.slice(1, 2),
|
|
@@ -30420,7 +30498,7 @@
|
|
|
30420
30498
|
{ type: i1.FormBuilder }
|
|
30421
30499
|
]; };
|
|
30422
30500
|
|
|
30423
|
-
var moment
|
|
30501
|
+
var moment = momentImported__namespace;
|
|
30424
30502
|
var DateTestPage = /** @class */ (function () {
|
|
30425
30503
|
function DateTestPage(platform, formBuilder, cd) {
|
|
30426
30504
|
this.platform = platform;
|
|
@@ -30458,7 +30536,7 @@
|
|
|
30458
30536
|
var now, nowAtMahe, data;
|
|
30459
30537
|
var _this = this;
|
|
30460
30538
|
return __generator(this, function (_a) {
|
|
30461
|
-
now = moment
|
|
30539
|
+
now = moment();
|
|
30462
30540
|
nowAtMahe = now.clone().tz(this.timezone).startOf('day');
|
|
30463
30541
|
data = {
|
|
30464
30542
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
@@ -30540,7 +30618,7 @@
|
|
|
30540
30618
|
{ label: 'Shared directives', divider: true },
|
|
30541
30619
|
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
|
|
30542
30620
|
];
|
|
30543
|
-
var routes$
|
|
30621
|
+
var routes$4 = [
|
|
30544
30622
|
{
|
|
30545
30623
|
path: '',
|
|
30546
30624
|
pathMatch: 'full',
|
|
@@ -30600,7 +30678,7 @@
|
|
|
30600
30678
|
i1.ReactiveFormsModule,
|
|
30601
30679
|
SharedMaterialModule,
|
|
30602
30680
|
i1$2.TranslateModule.forChild(),
|
|
30603
|
-
i3.RouterModule.forChild(routes$
|
|
30681
|
+
i3.RouterModule.forChild(routes$4)
|
|
30604
30682
|
],
|
|
30605
30683
|
declarations: [
|
|
30606
30684
|
DateTimeTestPage,
|
|
@@ -30662,7 +30740,7 @@
|
|
|
30662
30740
|
{ type: i1$2.TranslateService }
|
|
30663
30741
|
]; };
|
|
30664
30742
|
|
|
30665
|
-
var routes$
|
|
30743
|
+
var routes$3 = [
|
|
30666
30744
|
{
|
|
30667
30745
|
path: 'toast',
|
|
30668
30746
|
pathMatch: 'full',
|
|
@@ -30680,7 +30758,7 @@
|
|
|
30680
30758
|
i1$4.CommonModule,
|
|
30681
30759
|
i1$5.IonicModule,
|
|
30682
30760
|
i1$2.TranslateModule.forChild(),
|
|
30683
|
-
i3.RouterModule.forChild(routes$
|
|
30761
|
+
i3.RouterModule.forChild(routes$3)
|
|
30684
30762
|
],
|
|
30685
30763
|
declarations: [
|
|
30686
30764
|
ToastTestingPage
|
|
@@ -30760,7 +30838,7 @@
|
|
|
30760
30838
|
{ type: i1$5.PopoverController }
|
|
30761
30839
|
]; };
|
|
30762
30840
|
|
|
30763
|
-
var routes$
|
|
30841
|
+
var routes$2 = [
|
|
30764
30842
|
{
|
|
30765
30843
|
path: 'upload-file',
|
|
30766
30844
|
pathMatch: 'full',
|
|
@@ -30778,7 +30856,7 @@
|
|
|
30778
30856
|
i1$4.CommonModule,
|
|
30779
30857
|
i1$5.IonicModule,
|
|
30780
30858
|
i1$2.TranslateModule.forChild(),
|
|
30781
|
-
i3.RouterModule.forChild(routes$
|
|
30859
|
+
i3.RouterModule.forChild(routes$2)
|
|
30782
30860
|
],
|
|
30783
30861
|
declarations: [
|
|
30784
30862
|
UploadFileTestingPage
|
|
@@ -31202,7 +31280,7 @@
|
|
|
31202
31280
|
{ type: i1$5.PopoverController }
|
|
31203
31281
|
]; };
|
|
31204
31282
|
|
|
31205
|
-
var routes$
|
|
31283
|
+
var routes$1 = [
|
|
31206
31284
|
{
|
|
31207
31285
|
path: 'text-popover',
|
|
31208
31286
|
pathMatch: 'full',
|
|
@@ -31220,7 +31298,7 @@
|
|
|
31220
31298
|
i1$4.CommonModule,
|
|
31221
31299
|
i1$5.IonicModule,
|
|
31222
31300
|
i1$2.TranslateModule.forChild(),
|
|
31223
|
-
i3.RouterModule.forChild(routes$
|
|
31301
|
+
i3.RouterModule.forChild(routes$1)
|
|
31224
31302
|
],
|
|
31225
31303
|
declarations: [
|
|
31226
31304
|
TextPopoverTestingPage
|
|
@@ -31237,7 +31315,7 @@
|
|
|
31237
31315
|
{ label: 'Table', page: '/testing/core/table' },
|
|
31238
31316
|
{ label: 'Text popover', page: '/testing/core/text-popover' }
|
|
31239
31317
|
];
|
|
31240
|
-
var routes
|
|
31318
|
+
var routes = [
|
|
31241
31319
|
{
|
|
31242
31320
|
path: '',
|
|
31243
31321
|
pathMatch: 'full',
|
|
@@ -31264,7 +31342,7 @@
|
|
|
31264
31342
|
imports: [
|
|
31265
31343
|
i1$4.CommonModule,
|
|
31266
31344
|
i1$2.TranslateModule.forChild(),
|
|
31267
|
-
i3.RouterModule.forChild(routes
|
|
31345
|
+
i3.RouterModule.forChild(routes),
|
|
31268
31346
|
// Sub modules
|
|
31269
31347
|
TableTestingModule,
|
|
31270
31348
|
TextPopoverTestingModule
|
|
@@ -31387,7 +31465,7 @@
|
|
|
31387
31465
|
exports.EntityStore = EntityStore;
|
|
31388
31466
|
exports.EntityUtils = EntityUtils;
|
|
31389
31467
|
exports.Environment = Environment;
|
|
31390
|
-
exports.ErrorCodes = ErrorCodes
|
|
31468
|
+
exports.ErrorCodes = ErrorCodes;
|
|
31391
31469
|
exports.EvenPipe = EvenPipe;
|
|
31392
31470
|
exports.FileResponse = FileResponse;
|
|
31393
31471
|
exports.FileService = FileService;
|
|
@@ -31403,7 +31481,7 @@
|
|
|
31403
31481
|
exports.FormGetControlPipe = FormGetControlPipe;
|
|
31404
31482
|
exports.FormGetGroupPipe = FormGetGroupPipe;
|
|
31405
31483
|
exports.FormGetPipe = FormGetPipe;
|
|
31406
|
-
exports.Fragments = Fragments
|
|
31484
|
+
exports.Fragments = Fragments;
|
|
31407
31485
|
exports.GraphqlService = GraphqlService;
|
|
31408
31486
|
exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
|
|
31409
31487
|
exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;
|
|
@@ -31684,23 +31762,23 @@
|
|
|
31684
31762
|
exports.waitForTrue = waitForTrue;
|
|
31685
31763
|
exports.waitIdle = waitIdle;
|
|
31686
31764
|
exports.waitWhilePending = waitWhilePending;
|
|
31687
|
-
exports
|
|
31688
|
-
exports
|
|
31689
|
-
exports
|
|
31690
|
-
exports
|
|
31691
|
-
exports
|
|
31692
|
-
exports
|
|
31693
|
-
exports
|
|
31694
|
-
exports
|
|
31695
|
-
exports
|
|
31696
|
-
exports
|
|
31697
|
-
exports
|
|
31698
|
-
exports
|
|
31699
|
-
exports
|
|
31700
|
-
exports
|
|
31701
|
-
exports
|
|
31765
|
+
exports["ɵ0"] = ɵ0$b;
|
|
31766
|
+
exports["ɵa"] = CustomReuseStrategy;
|
|
31767
|
+
exports["ɵb"] = MatNumpadDomService;
|
|
31768
|
+
exports["ɵc"] = isFocusableElement;
|
|
31769
|
+
exports["ɵd"] = RegisterForm;
|
|
31770
|
+
exports["ɵe"] = AccountValidatorService;
|
|
31771
|
+
exports["ɵf"] = RegisterModal;
|
|
31772
|
+
exports["ɵg"] = UserSettingsValidatorService;
|
|
31773
|
+
exports["ɵh"] = LocalSettingsValidatorService;
|
|
31774
|
+
exports["ɵi"] = AppIconComponent;
|
|
31775
|
+
exports["ɵj"] = DateTestPage;
|
|
31776
|
+
exports["ɵk"] = NumpadTestPage;
|
|
31777
|
+
exports["ɵl"] = MatBadgeIconTestPage;
|
|
31778
|
+
exports["ɵm"] = ToastTestingModule;
|
|
31779
|
+
exports["ɵn"] = ToastTestingPage;
|
|
31702
31780
|
|
|
31703
31781
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
31704
31782
|
|
|
31705
|
-
}))
|
|
31783
|
+
}));
|
|
31706
31784
|
//# sourceMappingURL=sumaris-net.ngx-components.umd.js.map
|