@sumaris-net/ngx-components 1.17.1 → 1.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sumaris-net.ngx-components.umd.js +623 -540
- 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 +9 -0
- package/esm2015/src/app/core/graphql/graphql.service.js +3 -2
- package/esm2015/src/app/core/services/config.service.js +3 -2
- package/esm2015/src/app/core/services/local-settings.service.js +2 -2
- package/esm2015/src/app/core/services/platform.service.js +12 -11
- package/esm2015/src/app/shared/directives/autofocus.directive.js +4 -2
- package/esm2015/src/app/shared/hotkeys/hotkeys.service.js +1 -1
- package/esm2015/src/app/shared/inputs.js +1 -1
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +103 -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/datetime/material.date.js +8 -9
- package/esm2015/src/app/shared/material/datetime/material.dateshort.js +8 -8
- package/esm2015/src/app/shared/material/datetime/material.datetime.js +7 -8
- package/esm2015/src/app/shared/material/datetime/testing/mat-date-time.test.js +3 -3
- package/esm2015/src/app/shared/material/datetime/testing/mat-date.test.js +4 -7
- package/esm2015/src/app/shared/material/latlong/material.latlong.js +4 -6
- package/esm2015/src/app/shared/material/material.module.js +1 -1
- package/esm2015/src/app/shared/platforms.js +2 -2
- package/esm2015/src/app/shared/services/entity-service.class.js +1 -1
- package/fesm2015/sumaris-net.ngx-components.js +596 -529
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/services/platform.service.d.ts +1 -1
- package/src/app/shared/directives/autofocus.directive.d.ts +2 -1
- 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/app/shared/material/datetime/material.date.d.ts +2 -4
- package/src/app/shared/material/datetime/material.dateshort.d.ts +2 -3
- package/src/app/shared/material/datetime/material.datetime.d.ts +1 -3
- package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +1 -3
- package/src/app/shared/material/latlong/material.latlong.d.ts +1 -3
- package/src/app/shared/services/entity-service.class.d.ts +4 -1
- 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,136 @@
|
|
|
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
|
+
|
|
1348
|
+
/* ---
|
|
1349
|
+
* Source: https://github.com/ionic-team/ionic-framework/blob/b0d53ca73619585671d8cf4dc24e47f826495a0a/core/src/utils/platform.ts
|
|
1350
|
+
* --- */
|
|
1351
|
+
var matchMedia = function (win, query) { return win.matchMedia(query).matches; };
|
|
1352
|
+
var testUserAgent = function (win, expr) {
|
|
1353
|
+
var userAgent = win.navigator.userAgent || win.navigator.vendor || window.opera;
|
|
1354
|
+
return expr.test(userAgent);
|
|
1355
|
+
};
|
|
1356
|
+
var isWindows = function (win) { return testUserAgent(win, /windows/i); };
|
|
1357
|
+
var isTouchUi = function (win) { return matchMedia(win, '(any-pointer:coarse)'); };
|
|
1358
|
+
var isMobile = function (win) { return isCordova(window) || isAndroid(win) || isIOS(window) || (isTouchUi(win) && !isWindows(win)); };
|
|
1359
|
+
var isIpad = function (win) {
|
|
1360
|
+
// iOS 12 and below
|
|
1361
|
+
if (testUserAgent(win, /iPad/i)) {
|
|
1362
|
+
return true;
|
|
1363
|
+
}
|
|
1364
|
+
// iOS 13+
|
|
1365
|
+
if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {
|
|
1366
|
+
return true;
|
|
1367
|
+
}
|
|
1368
|
+
return false;
|
|
1369
|
+
};
|
|
1370
|
+
var ɵ0$c = isIpad;
|
|
1371
|
+
var isIOS = function (win) { return testUserAgent(win, /iPhone|iPod/i) || isIpad(win); };
|
|
1372
|
+
var isAndroid = function (win) { return testUserAgent(win, /android|sink/i); };
|
|
1373
|
+
var isCordova = function (win) { return !!(win['cordova'] || win['phonegap'] || win['PhoneGap']); };
|
|
1374
|
+
|
|
1222
1375
|
var MatAutocompleteConfigHolder = /** @class */ (function () {
|
|
1223
1376
|
function MatAutocompleteConfigHolder(options) {
|
|
1224
1377
|
this.options = options;
|
|
@@ -1240,8 +1393,8 @@
|
|
|
1240
1393
|
// Keep original the function from options, when exists
|
|
1241
1394
|
var attributesOrFn = attributes.map(function (a, index) { return typeof a === 'function' && options.attributes[index] || a; });
|
|
1242
1395
|
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 ||
|
|
1396
|
+
var displayWith = options.displayWith || MatAutocompleteFieldUtils.createDisplayFn(attributes, options.multiple);
|
|
1397
|
+
var equals = options.equals || MatAutocompleteFieldUtils.defaultEquals;
|
|
1245
1398
|
var config = Object.assign(Object.assign({}, options), { attributes: attributesOrFn, suggestFn: suggestFn,
|
|
1246
1399
|
filter: filter,
|
|
1247
1400
|
displayWith: displayWith,
|
|
@@ -1257,14 +1410,34 @@
|
|
|
1257
1410
|
};
|
|
1258
1411
|
return MatAutocompleteConfigHolder;
|
|
1259
1412
|
}());
|
|
1260
|
-
var
|
|
1261
|
-
|
|
1413
|
+
var MatAutocompleteFieldUtils = /** @class */ (function () {
|
|
1414
|
+
function MatAutocompleteFieldUtils() {
|
|
1415
|
+
}
|
|
1416
|
+
MatAutocompleteFieldUtils.createDisplayFn = function (displayAttributes, multiple) {
|
|
1417
|
+
// if multiple (manage array)
|
|
1418
|
+
if (multiple) {
|
|
1419
|
+
return function (value) {
|
|
1420
|
+
return Array.isArray(value)
|
|
1421
|
+
? (value || []).map(function (obj) { return obj && joinPropertiesPath(obj, displayAttributes); }).join(', ')
|
|
1422
|
+
: value && joinPropertiesPath(value, displayAttributes);
|
|
1423
|
+
};
|
|
1424
|
+
}
|
|
1425
|
+
// Join properties
|
|
1426
|
+
return function (obj) { return obj && joinPropertiesPath(obj, displayAttributes); };
|
|
1427
|
+
};
|
|
1428
|
+
MatAutocompleteFieldUtils.defaultEquals = function (o1, o2) {
|
|
1429
|
+
return isNotNil(o1 === null || o1 === void 0 ? void 0 : o1.id) && o1.id === (o2 === null || o2 === void 0 ? void 0 : o2.id);
|
|
1430
|
+
};
|
|
1431
|
+
return MatAutocompleteFieldUtils;
|
|
1432
|
+
}());
|
|
1433
|
+
var noop$8 = function (_) { };
|
|
1434
|
+
var ɵ0$b = noop$8;
|
|
1262
1435
|
var MatAutocompleteField = /** @class */ (function () {
|
|
1263
1436
|
function MatAutocompleteField(cd, formGroupDir) {
|
|
1264
1437
|
this.cd = cd;
|
|
1265
1438
|
this.formGroupDir = formGroupDir;
|
|
1266
|
-
this._onChangeCallback = noop;
|
|
1267
|
-
this._onTouchedCallback = noop;
|
|
1439
|
+
this._onChangeCallback = noop$8;
|
|
1440
|
+
this._onTouchedCallback = noop$8;
|
|
1268
1441
|
this.logPrefix = '[mat-autocomplete] ';
|
|
1269
1442
|
this.formControlName = null;
|
|
1270
1443
|
this.required = false;
|
|
@@ -1272,12 +1445,13 @@
|
|
|
1272
1445
|
this.debounceTime = null;
|
|
1273
1446
|
this.i18nPrefix = 'REFERENTIAL.';
|
|
1274
1447
|
this.noResultMessage = 'COMMON.NO_RESULT';
|
|
1275
|
-
this.multiple = false;
|
|
1276
1448
|
this.itemSize = '48px';
|
|
1277
1449
|
this.fetchMoreThreshold = '15%';
|
|
1278
1450
|
this.suggestLengthThreshold = null;
|
|
1279
1451
|
this.showLoadingSpinner = true;
|
|
1280
1452
|
this.debug = false;
|
|
1453
|
+
this.showSearchBar = true;
|
|
1454
|
+
this.stickySearchBar = false;
|
|
1281
1455
|
this.clicked = new i0.EventEmitter();
|
|
1282
1456
|
this.blurred = new i0.EventEmitter();
|
|
1283
1457
|
this.focused = new i0.EventEmitter();
|
|
@@ -1398,6 +1572,13 @@
|
|
|
1398
1572
|
enumerable: false,
|
|
1399
1573
|
configurable: true
|
|
1400
1574
|
});
|
|
1575
|
+
Object.defineProperty(MatAutocompleteField.prototype, "desktop", {
|
|
1576
|
+
get: function () {
|
|
1577
|
+
return !this.mobile;
|
|
1578
|
+
},
|
|
1579
|
+
enumerable: false,
|
|
1580
|
+
configurable: true
|
|
1581
|
+
});
|
|
1401
1582
|
MatAutocompleteField.prototype.ngOnInit = function () {
|
|
1402
1583
|
var _this = this;
|
|
1403
1584
|
var _a, _b;
|
|
@@ -1416,6 +1597,7 @@
|
|
|
1416
1597
|
this.displayColumnNames = this.displayColumnNames || this.config.columnNames;
|
|
1417
1598
|
this.displayWith = this.displayWith || this.config.displayWith;
|
|
1418
1599
|
this.equals = this.equals || this.config.equals;
|
|
1600
|
+
this.multiple = toBoolean(this.multiple, this.config.multiple);
|
|
1419
1601
|
this.mobile = toBoolean(this.mobile, this.config.mobile);
|
|
1420
1602
|
this.suggestLengthThreshold = toNumber(this.suggestLengthThreshold, this.config.suggestLengthThreshold || 0);
|
|
1421
1603
|
this.showAllOnFocus = toBoolean(this.showAllOnFocus, toBoolean(this.config.showAllOnFocus, this.suggestLengthThreshold <= 0));
|
|
@@ -1425,8 +1607,11 @@
|
|
|
1425
1607
|
this.highlightAccent = toBoolean(this.highlightAccent, toBoolean(this.config.highlightAccent));
|
|
1426
1608
|
}
|
|
1427
1609
|
// Default values
|
|
1610
|
+
this.multiple = toBoolean(this.multiple, false);
|
|
1611
|
+
this.mobile = toBoolean(this.mobile, this.multiple || isMobile(window));
|
|
1428
1612
|
this.displayAttributes = this.displayAttributes || ((_a = this.filter) === null || _a === void 0 ? void 0 : _a.attributes) || ['label', 'name'];
|
|
1429
|
-
this.displayWith = this.displayWith || (
|
|
1613
|
+
this.displayWith = this.displayWith || MatAutocompleteFieldUtils.createDisplayFn(this.displayAttributes, this.multiple);
|
|
1614
|
+
this.equals = this.equals || MatAutocompleteFieldUtils.defaultEquals;
|
|
1430
1615
|
this.displayColumnSizes = this.displayColumnSizes
|
|
1431
1616
|
// if only column: auto size
|
|
1432
1617
|
|| (this.displayAttributes.length === 1 && [undefined])
|
|
@@ -1434,24 +1619,21 @@
|
|
|
1434
1619
|
// - if label then col size = 2
|
|
1435
1620
|
// - if rankOrder then col size = 1
|
|
1436
1621
|
// - ese => auto size
|
|
1437
|
-
|| this.displayAttributes.map(function (attr) { return
|
|
1438
|
-
: (
|
|
1439
|
-
: undefined); });
|
|
1622
|
+
|| this.displayAttributes.map(function (attr) { return attr && (attr.endsWith('label') ? 3
|
|
1623
|
+
: (attr.endsWith('rankOrder') ? 2
|
|
1624
|
+
: undefined)); });
|
|
1440
1625
|
this.displayColumnNames = this.displayAttributes.map(function (attr, index) { return _this.displayColumnNames && _this.displayColumnNames[index] ||
|
|
1441
1626
|
(_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
1627
|
var classList = (_b = this.classList) === null || _b === void 0 ? void 0 : _b.split(' ');
|
|
1446
1628
|
this.panelWidth = this.panelWidth || (classList && ((classList.includes('min-width-medium') && '300px')
|
|
1447
1629
|
|| (classList.includes('min-width-large') && '400px')
|
|
1448
1630
|
|| (classList.includes('min-width-xlarge') && '450px')
|
|
1449
1631
|
|| (classList.includes('mat-autocomplete-panel-full-size') && '100vw')));
|
|
1450
1632
|
this.showPanelOnFocus = toBoolean(this.showPanelOnFocus, true);
|
|
1451
|
-
this.debounceTime = toNumber(this.debounceTime, 250);
|
|
1633
|
+
this.debounceTime = toNumber(this.debounceTime, this.mobile ? 650 : 250);
|
|
1452
1634
|
this.highlightAccent = toBoolean(this.highlightAccent, false);
|
|
1453
1635
|
this.suggestLengthThreshold = this.suggestLengthThreshold || 0;
|
|
1454
|
-
this.matAutocompletePosition = this.matAutocompletePosition ||
|
|
1636
|
+
this.matAutocompletePosition = this.matAutocompletePosition || 'auto';
|
|
1455
1637
|
// No suggestFn: filter on the given items
|
|
1456
1638
|
if (!this.suggestFn) {
|
|
1457
1639
|
var suggestFromArrayFn_1 = function (value, filter) { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -1482,10 +1664,10 @@
|
|
|
1482
1664
|
});
|
|
1483
1665
|
}); };
|
|
1484
1666
|
}
|
|
1485
|
-
else if (
|
|
1667
|
+
else if (this.mobile) {
|
|
1486
1668
|
// 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); }))
|
|
1669
|
+
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)
|
|
1670
|
+
operators.filter(function (_) { return _this.suggestLengthThreshold <= 0; }), operators.switchMap(function (filter) { return _this.suggest('*', filter); }))
|
|
1489
1671
|
.subscribe(function (items) { return _this.$inputItems.next(items); }));
|
|
1490
1672
|
}
|
|
1491
1673
|
// Send value to suggest when :
|
|
@@ -1501,11 +1683,17 @@
|
|
|
1501
1683
|
this._reload$,
|
|
1502
1684
|
// Search text (no distinctUntilChanged() because of the debounceTime() pipe)
|
|
1503
1685
|
this.formControl.valueChanges
|
|
1504
|
-
.pipe(operators.filter(function (value) { return _this.enabled &&
|
|
1686
|
+
.pipe(operators.filter(function (value) { return _this.enabled && isNotNilString(value); }),
|
|
1505
1687
|
// Mark as loading (to show loading spinner) - earlier as possible, so before the debounce time
|
|
1506
1688
|
operators.tap(function (_) { return _this.showLoadingSpinner && _this.markAsLoading(); }),
|
|
1507
1689
|
// Filter if not enough character
|
|
1508
|
-
operators.filter(function (value) {
|
|
1690
|
+
operators.filter(function (value) {
|
|
1691
|
+
if (value.length >= _this.suggestLengthThreshold)
|
|
1692
|
+
return true;
|
|
1693
|
+
// Update display value, to enable the message "not enough characters"
|
|
1694
|
+
_this.displayValue = value;
|
|
1695
|
+
return false;
|
|
1696
|
+
}),
|
|
1509
1697
|
// Wait a debounce time
|
|
1510
1698
|
operators.debounceTime(this.debounceTime)
|
|
1511
1699
|
// DEBUG
|
|
@@ -1513,37 +1701,34 @@
|
|
|
1513
1701
|
),
|
|
1514
1702
|
// Object set: use it (no distinctUntilChanged() pipe need)
|
|
1515
1703
|
this.formControl.valueChanges
|
|
1516
|
-
.pipe(operators.startWith(this.formControl.value), operators.filter(function (value) { return (_this.
|
|
1704
|
+
.pipe(operators.startWith(this.formControl.value), operators.filter(function (value) { return (!_this.mobile && isNotNil(value) && typeof value === 'object'); }), operators.tap(function (value) {
|
|
1517
1705
|
// DEBUG
|
|
1518
|
-
if (
|
|
1519
|
-
|
|
1706
|
+
//if (this.debug) console.debug(this.logPrefix + ' object changes:', value)
|
|
1707
|
+
var _a;
|
|
1520
1708
|
// Update the display value (if need)
|
|
1521
1709
|
var displayValue = _this.displayWith(value) || '';
|
|
1522
1710
|
if (_this.displayValue !== displayValue) {
|
|
1523
1711
|
_this.displayValue = displayValue;
|
|
1524
1712
|
// Apply to the input[type=text] field
|
|
1525
|
-
if (_this.matInputText
|
|
1713
|
+
if ((_a = _this.matInputText) === null || _a === void 0 ? void 0 : _a.nativeElement) {
|
|
1526
1714
|
_this.matInputText.nativeElement.value = _this.displayValue;
|
|
1527
1715
|
}
|
|
1528
1716
|
}
|
|
1529
|
-
})
|
|
1530
|
-
// DEBUG
|
|
1531
|
-
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received an object value: ', value))
|
|
1532
|
-
),
|
|
1717
|
+
})),
|
|
1533
1718
|
// On dropdown button click (no distinctUntilChanged(), nor debounceTime)
|
|
1534
1719
|
this.dropButtonClick
|
|
1535
|
-
.pipe(operators.filter(function (event) { return _this.
|
|
1720
|
+
.pipe(operators.filter(function (event) { return !_this.mobile && _this.enabled && (!event || !event.defaultPrevented); }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.formControl.value; }),
|
|
1536
1721
|
// Make sure there is enough characters
|
|
1537
1722
|
operators.filter(thresholdFilterFn)),
|
|
1538
1723
|
// Merge some observables, with a common distinctUntilChanged() pipe, and NO debounceTime
|
|
1539
1724
|
rxjs.merge(
|
|
1540
1725
|
// Focus or click => Load all
|
|
1541
1726
|
rxjs.merge(this.focused, this.clicked)
|
|
1542
|
-
.pipe(operators.filter(function (_) { return _this.enabled && _this.
|
|
1727
|
+
.pipe(operators.filter(function (_) { return _this.enabled && !_this.mobile; }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.formControl.value; })
|
|
1543
1728
|
// DEBUG
|
|
1544
1729
|
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received focused or clicked event: ', value))
|
|
1545
1730
|
), rxjs.merge(this.$inputItems, this._$filter)
|
|
1546
|
-
.pipe(operators.filter(function (_) { return _this.
|
|
1731
|
+
.pipe(operators.filter(function (_) { return _this.enabled; }), operators.map(function (_) { return _this.formControl.value; })))
|
|
1547
1732
|
.pipe(
|
|
1548
1733
|
// Make sure there is enough characters
|
|
1549
1734
|
operators.filter(thresholdFilterFn),
|
|
@@ -1576,7 +1761,7 @@
|
|
|
1576
1761
|
fetchMoreItemsChanges)
|
|
1577
1762
|
.subscribe(function (items) {
|
|
1578
1763
|
// Make sure control value is inside (mat-select)
|
|
1579
|
-
if (items &&
|
|
1764
|
+
if (items && _this.mobile) {
|
|
1580
1765
|
var value_1 = _this.formControl.value;
|
|
1581
1766
|
if (isNotNil(value_1) && typeof value_1 === 'object' && items.findIndex(function (item) { return _this.equals(item, value_1); }) === -1) {
|
|
1582
1767
|
// If form value is missing: add it to the list
|
|
@@ -1590,7 +1775,7 @@
|
|
|
1590
1775
|
this._subscription.add(this.blurred
|
|
1591
1776
|
.pipe(
|
|
1592
1777
|
// Skip if not searchable
|
|
1593
|
-
operators.filter(function (_) { return _this.
|
|
1778
|
+
operators.filter(function (_) { return !_this.mobile; }), operators.map(function (_) { return _this.formControl.value; })
|
|
1594
1779
|
// DEBUG
|
|
1595
1780
|
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received blurred event: ', value)),
|
|
1596
1781
|
)
|
|
@@ -1614,6 +1799,7 @@
|
|
|
1614
1799
|
_this.$filteredItems.next(undefined);
|
|
1615
1800
|
}
|
|
1616
1801
|
_this._implicitValue = null; // reset the implicit value
|
|
1802
|
+
_this.closePanel(); // Clone panel
|
|
1617
1803
|
}));
|
|
1618
1804
|
// Listen form control status change
|
|
1619
1805
|
this._subscription.add(this.formControl.statusChanges
|
|
@@ -1624,6 +1810,7 @@
|
|
|
1624
1810
|
.subscribe(function () { return _this.checkIfTouched(); }));
|
|
1625
1811
|
this._subscription.add(this.keydownEscape.subscribe(function (event) {
|
|
1626
1812
|
if (_this.isOpen) {
|
|
1813
|
+
// Avoid form or page to manage escape event
|
|
1627
1814
|
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
1628
1815
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
|
1629
1816
|
// DEBUG
|
|
@@ -1659,7 +1846,6 @@
|
|
|
1659
1846
|
this.equals = null;
|
|
1660
1847
|
this.suggestFn = null;
|
|
1661
1848
|
this.$filteredItems = null;
|
|
1662
|
-
this.matSelectItems$ = null;
|
|
1663
1849
|
this.config = null;
|
|
1664
1850
|
this.classList = null;
|
|
1665
1851
|
this._onChangeCallback = null;
|
|
@@ -1674,8 +1860,13 @@
|
|
|
1674
1860
|
* Allow to reload content. Useful when filter has been changed but not detected
|
|
1675
1861
|
*/
|
|
1676
1862
|
MatAutocompleteField.prototype.reloadItems = function (value) {
|
|
1863
|
+
var _a;
|
|
1677
1864
|
// Force a refresh
|
|
1678
1865
|
this._reload$.next(value || '*');
|
|
1866
|
+
// Clear the search bar, because options will not correspond
|
|
1867
|
+
if (!this.isOpen && isNotNilOrBlank((_a = this.ionSearchbar) === null || _a === void 0 ? void 0 : _a.value)) {
|
|
1868
|
+
this.ionSearchbar.value = null;
|
|
1869
|
+
}
|
|
1679
1870
|
};
|
|
1680
1871
|
MatAutocompleteField.prototype.writeValue = function (value) {
|
|
1681
1872
|
// DEBUG
|
|
@@ -1699,15 +1890,15 @@
|
|
|
1699
1890
|
this.cd.markForCheck();
|
|
1700
1891
|
};
|
|
1701
1892
|
MatAutocompleteField.prototype.focus = function () {
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
focusInput(this.matInputText);
|
|
1893
|
+
if (this.mobile) {
|
|
1894
|
+
this.matSelect.focus();
|
|
1705
1895
|
}
|
|
1706
1896
|
else {
|
|
1707
|
-
(
|
|
1897
|
+
focusInput(this.matInputText);
|
|
1708
1898
|
}
|
|
1709
1899
|
};
|
|
1710
1900
|
MatAutocompleteField.prototype.filterInputTextFocusEvent = function (event) {
|
|
1901
|
+
var _a;
|
|
1711
1902
|
if (!event || event.defaultPrevented)
|
|
1712
1903
|
return;
|
|
1713
1904
|
// Ignore event from mat-option
|
|
@@ -1722,7 +1913,7 @@
|
|
|
1722
1913
|
}
|
|
1723
1914
|
// DEBUG
|
|
1724
1915
|
//if (this.debug) console.debug(this.logPrefix + ' Select input content');
|
|
1725
|
-
var hasContent =
|
|
1916
|
+
var hasContent = isNotNilOrBlank((_a = event.target) === null || _a === void 0 ? void 0 : _a.value);
|
|
1726
1917
|
// If combo is empty, or if has content but should force to show panel on focus
|
|
1727
1918
|
if (!hasContent || this.showPanelOnFocus || this.showAllOnFocus) {
|
|
1728
1919
|
// DEBUG
|
|
@@ -1742,18 +1933,38 @@
|
|
|
1742
1933
|
event.stopPropagation();
|
|
1743
1934
|
event.returnValue = false;
|
|
1744
1935
|
// DEBUG
|
|
1745
|
-
if (this.debug)
|
|
1746
|
-
console.debug(this.logPrefix + " Cancelling blur event");
|
|
1936
|
+
//if (this.debug) console.debug(this.logPrefix + " Cancelling blur event");
|
|
1747
1937
|
return false;
|
|
1748
1938
|
}
|
|
1749
|
-
//DEBUG
|
|
1750
|
-
if (this.debug)
|
|
1751
|
-
console.debug(this.logPrefix + ' Blur: move caret to the beginning');
|
|
1939
|
+
// DEBUG
|
|
1940
|
+
//if (this.debug) console.debug(this.logPrefix + ' Blur: move caret to the beginning');
|
|
1752
1941
|
// Move caret to the beginning (fix issue IMAGINE-469)
|
|
1753
1942
|
selectInputRange(event.target, 0, 0);
|
|
1754
1943
|
this.blurred.emit(event);
|
|
1755
1944
|
return true;
|
|
1756
1945
|
};
|
|
1946
|
+
MatAutocompleteField.prototype.ionSearchBarChanged = function (event) {
|
|
1947
|
+
if (!event || event.defaultPrevented || !this.matSelect.panelOpen)
|
|
1948
|
+
return;
|
|
1949
|
+
// DEBUG
|
|
1950
|
+
//console.debug(this.logPrefix + " Received <ion-searchbar> changes", event.detail.data);
|
|
1951
|
+
event.preventDefault();
|
|
1952
|
+
event.detail.preventDefault();
|
|
1953
|
+
event.stopPropagation();
|
|
1954
|
+
event.detail.stopPropagation();
|
|
1955
|
+
this.markAsLoading();
|
|
1956
|
+
this.reloadItems(event.detail.data);
|
|
1957
|
+
// TODO avoid mat-select to focus the option
|
|
1958
|
+
/*if (this.multiple) {
|
|
1959
|
+
this.matSelect._elementRef;
|
|
1960
|
+
}*/
|
|
1961
|
+
};
|
|
1962
|
+
MatAutocompleteField.prototype.ionSearchBarClear = function (event) {
|
|
1963
|
+
if (!event || event.defaultPrevented || !this.matSelect.panelOpen)
|
|
1964
|
+
return;
|
|
1965
|
+
this.markAsLoading();
|
|
1966
|
+
this.reloadItems();
|
|
1967
|
+
};
|
|
1757
1968
|
MatAutocompleteField.prototype.filterMatSelectFocusEvent = function (event) {
|
|
1758
1969
|
if (!event || event.defaultPrevented)
|
|
1759
1970
|
return;
|
|
@@ -1779,20 +1990,6 @@
|
|
|
1779
1990
|
this.blurred.emit(event);
|
|
1780
1991
|
return true;
|
|
1781
1992
|
};
|
|
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
1993
|
MatAutocompleteField.prototype.clearValue = function (event) {
|
|
1797
1994
|
this.writeValue(null);
|
|
1798
1995
|
event.stopPropagation();
|
|
@@ -1845,7 +2042,7 @@
|
|
|
1845
2042
|
Object.defineProperty(MatAutocompleteField.prototype, "isOpen", {
|
|
1846
2043
|
get: function () {
|
|
1847
2044
|
var _a, _b;
|
|
1848
|
-
return (this.
|
|
2045
|
+
return (!this.mobile && ((_a = this.autocomplete) === null || _a === void 0 ? void 0 : _a.isOpen))
|
|
1849
2046
|
|| ((_b = this.matSelect) === null || _b === void 0 ? void 0 : _b.panelOpen)
|
|
1850
2047
|
|| false;
|
|
1851
2048
|
},
|
|
@@ -1891,8 +2088,7 @@
|
|
|
1891
2088
|
res = data;
|
|
1892
2089
|
}
|
|
1893
2090
|
// DEBUG
|
|
1894
|
-
if (this.debug)
|
|
1895
|
-
console.debug(this.logPrefix + ' Filtered items by suggestFn:', value, res);
|
|
2091
|
+
//if (this.debug) console.debug(this.logPrefix + ' Filtered items by suggestFn:', value, res);
|
|
1896
2092
|
return [2 /*return*/, res];
|
|
1897
2093
|
}
|
|
1898
2094
|
});
|
|
@@ -1920,7 +2116,7 @@
|
|
|
1920
2116
|
});
|
|
1921
2117
|
};
|
|
1922
2118
|
MatAutocompleteField.prototype.updateImplicitValue = function (items) {
|
|
1923
|
-
if (this.
|
|
2119
|
+
if (!this.mobile) {
|
|
1924
2120
|
// Store implicit value (will use it onBlur if not other value selected)
|
|
1925
2121
|
if (items && items.length === 1) {
|
|
1926
2122
|
this._implicitValue = items[0];
|
|
@@ -1974,12 +2170,13 @@
|
|
|
1974
2170
|
{ type: i0.Component, args: [{
|
|
1975
2171
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
1976
2172
|
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",
|
|
2173
|
+
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 && !clearable\" 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 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 <!-- 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 [innerHTML]=\"item | propertyGet: path | highlight: { search: ionSearchbar.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
2174
|
providers: [{
|
|
1979
2175
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
1980
2176
|
multi: true,
|
|
1981
2177
|
useExisting: i0.forwardRef(function () { return MatAutocompleteField; })
|
|
1982
2178
|
}],
|
|
2179
|
+
animations: [slideInOutAnimation],
|
|
1983
2180
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1984
2181
|
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
2182
|
},] }
|
|
@@ -2020,6 +2217,8 @@
|
|
|
2020
2217
|
suggestLengthThreshold: [{ type: i0.Input }],
|
|
2021
2218
|
showLoadingSpinner: [{ type: i0.Input }],
|
|
2022
2219
|
debug: [{ type: i0.Input }],
|
|
2220
|
+
showSearchBar: [{ type: i0.Input }],
|
|
2221
|
+
stickySearchBar: [{ type: i0.Input }],
|
|
2023
2222
|
clicked: [{ type: i0.Output, args: ['click',] }],
|
|
2024
2223
|
blurred: [{ type: i0.Output, args: ['blur',] }],
|
|
2025
2224
|
focused: [{ type: i0.Output, args: ['focus',] }],
|
|
@@ -2027,6 +2226,7 @@
|
|
|
2027
2226
|
keydownEscape: [{ type: i0.Output, args: ['keydown.escape',] }],
|
|
2028
2227
|
keyupEnter: [{ type: i0.Output, args: ['keyup.enter',] }],
|
|
2029
2228
|
matSelect: [{ type: i0.ViewChild, args: ['matSelect',] }],
|
|
2229
|
+
ionSearchbar: [{ type: i0.ViewChild, args: ['ionSearchbar',] }],
|
|
2030
2230
|
matInputText: [{ type: i0.ViewChild, args: ['matInputText',] }],
|
|
2031
2231
|
autocomplete: [{ type: i0.ViewChild, args: [autocomplete.MatAutocomplete,] }],
|
|
2032
2232
|
autocompleteTrigger: [{ type: i0.ViewChild, args: [autocomplete.MatAutocompleteTrigger,] }],
|
|
@@ -2057,7 +2257,7 @@
|
|
|
2057
2257
|
};
|
|
2058
2258
|
return DateFormatPipe;
|
|
2059
2259
|
}());
|
|
2060
|
-
DateFormatPipe.ɵprov =
|
|
2260
|
+
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
2261
|
DateFormatPipe.decorators = [
|
|
2062
2262
|
{ type: i0.Pipe, args: [{
|
|
2063
2263
|
name: 'dateFormat'
|
|
@@ -2069,7 +2269,7 @@
|
|
|
2069
2269
|
{ type: i1$2.TranslateService }
|
|
2070
2270
|
]; };
|
|
2071
2271
|
|
|
2072
|
-
var moment = momentImported__namespace;
|
|
2272
|
+
var moment$7 = momentImported__namespace;
|
|
2073
2273
|
var DateDiffDurationPipe = /** @class */ (function () {
|
|
2074
2274
|
function DateDiffDurationPipe(dateAdapter, translate) {
|
|
2075
2275
|
var _this = this;
|
|
@@ -2086,10 +2286,10 @@
|
|
|
2086
2286
|
return this.format(startDate, endDate);
|
|
2087
2287
|
};
|
|
2088
2288
|
DateDiffDurationPipe.prototype.format = function (startDate, endDate) {
|
|
2089
|
-
var duration = moment.duration(endDate.diff(startDate));
|
|
2289
|
+
var duration = moment$7.duration(endDate.diff(startDate));
|
|
2090
2290
|
if (duration.asMinutes() < 0)
|
|
2091
2291
|
return '';
|
|
2092
|
-
var timeDuration = moment(0)
|
|
2292
|
+
var timeDuration = moment$7(0)
|
|
2093
2293
|
.hour(duration.hours())
|
|
2094
2294
|
.minute(duration.minutes());
|
|
2095
2295
|
var days = Math.floor(duration.asDays());
|
|
@@ -2097,7 +2297,7 @@
|
|
|
2097
2297
|
};
|
|
2098
2298
|
return DateDiffDurationPipe;
|
|
2099
2299
|
}());
|
|
2100
|
-
DateDiffDurationPipe.ɵprov =
|
|
2300
|
+
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
2301
|
DateDiffDurationPipe.decorators = [
|
|
2102
2302
|
{ type: i0.Pipe, args: [{
|
|
2103
2303
|
name: 'dateDiffDuration'
|
|
@@ -2119,7 +2319,7 @@
|
|
|
2119
2319
|
};
|
|
2120
2320
|
return DateFromNowPipe;
|
|
2121
2321
|
}());
|
|
2122
|
-
DateFromNowPipe.ɵprov =
|
|
2322
|
+
DateFromNowPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0__namespace.ɵɵinject(i1__namespace.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
2123
2323
|
DateFromNowPipe.decorators = [
|
|
2124
2324
|
{ type: i0.Pipe, args: [{
|
|
2125
2325
|
name: 'dateFromNow'
|
|
@@ -2188,7 +2388,7 @@
|
|
|
2188
2388
|
value *= -1;
|
|
2189
2389
|
}
|
|
2190
2390
|
}
|
|
2191
|
-
var degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
2391
|
+
var degrees = roundFloat$1(value, opts.maxDecimals).toString();
|
|
2192
2392
|
// Add sign
|
|
2193
2393
|
var sign = negative ? '-' : '+';
|
|
2194
2394
|
if (opts.placeholderChar) {
|
|
@@ -2239,7 +2439,7 @@
|
|
|
2239
2439
|
}
|
|
2240
2440
|
var degrees = Math.trunc(value);
|
|
2241
2441
|
var minutes = Math.trunc((value - degrees) * 60);
|
|
2242
|
-
var seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
2442
|
+
var seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
2243
2443
|
while (seconds >= 60) {
|
|
2244
2444
|
seconds -= 60;
|
|
2245
2445
|
minutes += 1;
|
|
@@ -2307,7 +2507,7 @@
|
|
|
2307
2507
|
}
|
|
2308
2508
|
}
|
|
2309
2509
|
var degrees = Math.trunc(value);
|
|
2310
|
-
var minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
2510
|
+
var minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
|
|
2311
2511
|
while (minutes >= 60) {
|
|
2312
2512
|
minutes -= 60;
|
|
2313
2513
|
degrees += 1;
|
|
@@ -2358,15 +2558,15 @@
|
|
|
2358
2558
|
return NaN;
|
|
2359
2559
|
}
|
|
2360
2560
|
if (pattern === 'DD')
|
|
2361
|
-
return roundFloat(degrees, maxDecimals);
|
|
2561
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
2362
2562
|
var minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
2363
2563
|
var seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
2364
2564
|
var direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
2365
2565
|
var sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
2366
2566
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
2367
|
-
return roundFloat(degrees, maxDecimals);
|
|
2567
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
2368
2568
|
}
|
|
2369
|
-
function roundFloat(input, maxDecimals) {
|
|
2569
|
+
function roundFloat$1(input, maxDecimals) {
|
|
2370
2570
|
if (maxDecimals > 0) {
|
|
2371
2571
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
2372
2572
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -2389,7 +2589,7 @@
|
|
|
2389
2589
|
};
|
|
2390
2590
|
return LatLongFormatPipe;
|
|
2391
2591
|
}());
|
|
2392
|
-
LatLongFormatPipe.ɵprov =
|
|
2592
|
+
LatLongFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
2393
2593
|
LatLongFormatPipe.decorators = [
|
|
2394
2594
|
{ type: i0.Pipe, args: [{
|
|
2395
2595
|
name: 'latLongFormat'
|
|
@@ -2402,7 +2602,7 @@
|
|
|
2402
2602
|
}
|
|
2403
2603
|
return LatitudeFormatPipe;
|
|
2404
2604
|
}());
|
|
2405
|
-
LatitudeFormatPipe.ɵprov =
|
|
2605
|
+
LatitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
2406
2606
|
LatitudeFormatPipe.decorators = [
|
|
2407
2607
|
{ type: i0.Pipe, args: [{
|
|
2408
2608
|
name: 'latitudeFormat'
|
|
@@ -2415,7 +2615,7 @@
|
|
|
2415
2615
|
}
|
|
2416
2616
|
return LongitudeFormatPipe;
|
|
2417
2617
|
}());
|
|
2418
|
-
LongitudeFormatPipe.ɵprov =
|
|
2618
|
+
LongitudeFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
2419
2619
|
LongitudeFormatPipe.decorators = [
|
|
2420
2620
|
{ type: i0.Pipe, args: [{
|
|
2421
2621
|
name: 'longitudeFormat'
|
|
@@ -2438,7 +2638,7 @@
|
|
|
2438
2638
|
};
|
|
2439
2639
|
return NumberFormatPipe;
|
|
2440
2640
|
}());
|
|
2441
|
-
NumberFormatPipe.ɵprov =
|
|
2641
|
+
NumberFormatPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
2442
2642
|
NumberFormatPipe.decorators = [
|
|
2443
2643
|
{ type: i0.Pipe, args: [{
|
|
2444
2644
|
name: 'numberFormat'
|
|
@@ -2481,7 +2681,7 @@
|
|
|
2481
2681
|
};
|
|
2482
2682
|
return HighlightPipe;
|
|
2483
2683
|
}());
|
|
2484
|
-
HighlightPipe.ɵprov =
|
|
2684
|
+
HighlightPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
2485
2685
|
HighlightPipe.decorators = [
|
|
2486
2686
|
{ type: i0.Pipe, args: [{
|
|
2487
2687
|
name: 'highlight'
|
|
@@ -2549,7 +2749,7 @@
|
|
|
2549
2749
|
{ type: i0.Pipe, args: [{ name: 'fileSize' },] }
|
|
2550
2750
|
];
|
|
2551
2751
|
|
|
2552
|
-
var moment$
|
|
2752
|
+
var moment$6 = momentImported__namespace;
|
|
2553
2753
|
var tz = momentTZImported__namespace;
|
|
2554
2754
|
var DATE_UNIX_TIMESTAMP = 'X';
|
|
2555
2755
|
var DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
@@ -2627,32 +2827,32 @@
|
|
|
2627
2827
|
if (!value || momentImported.isMoment(value))
|
|
2628
2828
|
return value;
|
|
2629
2829
|
// Parse the input value, as a ISO date time
|
|
2630
|
-
var date = moment$
|
|
2830
|
+
var date = moment$6(value, DATE_ISO_PATTERN);
|
|
2631
2831
|
if (date.isValid())
|
|
2632
2832
|
return date;
|
|
2633
2833
|
// Not valid: trying to convert from unix timestamp
|
|
2634
2834
|
if (typeof value === 'string') {
|
|
2635
2835
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2636
2836
|
if (value.length === 10) {
|
|
2637
|
-
return moment$
|
|
2837
|
+
return moment$6(value, DATE_UNIX_TIMESTAMP);
|
|
2638
2838
|
}
|
|
2639
2839
|
else if (value.length === 13) {
|
|
2640
|
-
return moment$
|
|
2840
|
+
return moment$6(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2641
2841
|
}
|
|
2642
2842
|
}
|
|
2643
2843
|
console.warn('Unable to parse date: ' + value);
|
|
2644
2844
|
return undefined;
|
|
2645
2845
|
}
|
|
2646
2846
|
function fromUnixTimestamp(timeInSec) {
|
|
2647
|
-
return moment$
|
|
2847
|
+
return moment$6(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2648
2848
|
}
|
|
2649
2849
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2650
|
-
return moment$
|
|
2850
|
+
return moment$6(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2651
2851
|
}
|
|
2652
2852
|
function toDuration(value, unit) {
|
|
2653
2853
|
if (!value)
|
|
2654
2854
|
return undefined;
|
|
2655
|
-
var duration = moment$
|
|
2855
|
+
var duration = moment$6.duration(value, unit);
|
|
2656
2856
|
// fix 990+ ms
|
|
2657
2857
|
if (duration.milliseconds() >= 990) {
|
|
2658
2858
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2682,7 +2882,7 @@
|
|
|
2682
2882
|
};
|
|
2683
2883
|
return DurationPipe;
|
|
2684
2884
|
}());
|
|
2685
|
-
DurationPipe.ɵprov =
|
|
2885
|
+
DurationPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2686
2886
|
DurationPipe.decorators = [
|
|
2687
2887
|
{ type: i0.Pipe, args: [{
|
|
2688
2888
|
name: 'duration'
|
|
@@ -2706,7 +2906,7 @@
|
|
|
2706
2906
|
};
|
|
2707
2907
|
return MathAbsPipe;
|
|
2708
2908
|
}());
|
|
2709
|
-
MathAbsPipe.ɵprov =
|
|
2909
|
+
MathAbsPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2710
2910
|
MathAbsPipe.decorators = [
|
|
2711
2911
|
{ type: i0.Pipe, args: [{
|
|
2712
2912
|
name: 'mathAbs'
|
|
@@ -2721,7 +2921,7 @@
|
|
|
2721
2921
|
};
|
|
2722
2922
|
return EvenPipe;
|
|
2723
2923
|
}());
|
|
2724
|
-
EvenPipe.ɵprov =
|
|
2924
|
+
EvenPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2725
2925
|
EvenPipe.decorators = [
|
|
2726
2926
|
{ type: i0.Pipe, args: [{
|
|
2727
2927
|
name: 'even'
|
|
@@ -2736,7 +2936,7 @@
|
|
|
2736
2936
|
};
|
|
2737
2937
|
return OddPipe;
|
|
2738
2938
|
}());
|
|
2739
|
-
OddPipe.ɵprov =
|
|
2939
|
+
OddPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2740
2940
|
OddPipe.decorators = [
|
|
2741
2941
|
{ type: i0.Pipe, args: [{
|
|
2742
2942
|
name: 'odd'
|
|
@@ -2868,7 +3068,7 @@
|
|
|
2868
3068
|
};
|
|
2869
3069
|
return MapGetPipe;
|
|
2870
3070
|
}());
|
|
2871
|
-
MapGetPipe.ɵprov =
|
|
3071
|
+
MapGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
2872
3072
|
MapGetPipe.decorators = [
|
|
2873
3073
|
{ type: i0.Pipe, args: [{
|
|
2874
3074
|
name: 'mapGet'
|
|
@@ -2885,7 +3085,7 @@
|
|
|
2885
3085
|
};
|
|
2886
3086
|
return MapKeysPipe;
|
|
2887
3087
|
}());
|
|
2888
|
-
MapKeysPipe.ɵprov =
|
|
3088
|
+
MapKeysPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
2889
3089
|
MapKeysPipe.decorators = [
|
|
2890
3090
|
{ type: i0.Pipe, args: [{
|
|
2891
3091
|
name: 'mapKeys'
|
|
@@ -2902,7 +3102,7 @@
|
|
|
2902
3102
|
};
|
|
2903
3103
|
return MapValuesPipe;
|
|
2904
3104
|
}());
|
|
2905
|
-
MapValuesPipe.ɵprov =
|
|
3105
|
+
MapValuesPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
2906
3106
|
MapValuesPipe.decorators = [
|
|
2907
3107
|
{ type: i0.Pipe, args: [{
|
|
2908
3108
|
name: 'mapValues'
|
|
@@ -2918,7 +3118,7 @@
|
|
|
2918
3118
|
};
|
|
2919
3119
|
return IsNotNilOrBlankPipe;
|
|
2920
3120
|
}());
|
|
2921
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
3121
|
+
IsNotNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2922
3122
|
IsNotNilOrBlankPipe.decorators = [
|
|
2923
3123
|
{ type: i0.Pipe, args: [{
|
|
2924
3124
|
name: 'isNotNilOrBlank'
|
|
@@ -2933,7 +3133,7 @@
|
|
|
2933
3133
|
};
|
|
2934
3134
|
return IsNilOrBlankPipe;
|
|
2935
3135
|
}());
|
|
2936
|
-
IsNilOrBlankPipe.ɵprov =
|
|
3136
|
+
IsNilOrBlankPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2937
3137
|
IsNilOrBlankPipe.decorators = [
|
|
2938
3138
|
{ type: i0.Pipe, args: [{
|
|
2939
3139
|
name: 'isNilOrBlank'
|
|
@@ -2948,7 +3148,7 @@
|
|
|
2948
3148
|
};
|
|
2949
3149
|
return ToStringPipe;
|
|
2950
3150
|
}());
|
|
2951
|
-
ToStringPipe.ɵprov =
|
|
3151
|
+
ToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2952
3152
|
ToStringPipe.decorators = [
|
|
2953
3153
|
{ type: i0.Pipe, args: [{
|
|
2954
3154
|
name: 'toString'
|
|
@@ -2963,7 +3163,7 @@
|
|
|
2963
3163
|
};
|
|
2964
3164
|
return StrLengthPipe;
|
|
2965
3165
|
}());
|
|
2966
|
-
StrLengthPipe.ɵprov =
|
|
3166
|
+
StrLengthPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2967
3167
|
StrLengthPipe.decorators = [
|
|
2968
3168
|
{ type: i0.Pipe, args: [{
|
|
2969
3169
|
name: 'strLength'
|
|
@@ -2978,7 +3178,7 @@
|
|
|
2978
3178
|
};
|
|
2979
3179
|
return StrIncludesPipe;
|
|
2980
3180
|
}());
|
|
2981
|
-
StrIncludesPipe.ɵprov =
|
|
3181
|
+
StrIncludesPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function StrIncludesPipe_Factory() { return new StrIncludesPipe(); }, token: StrIncludesPipe, providedIn: "root" });
|
|
2982
3182
|
StrIncludesPipe.decorators = [
|
|
2983
3183
|
{ type: i0.Pipe, args: [{
|
|
2984
3184
|
name: 'strIncludes'
|
|
@@ -3069,7 +3269,7 @@
|
|
|
3069
3269
|
};
|
|
3070
3270
|
return TranslateContextService;
|
|
3071
3271
|
}());
|
|
3072
|
-
TranslateContextService.ɵprov =
|
|
3272
|
+
TranslateContextService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
3073
3273
|
TranslateContextService.decorators = [
|
|
3074
3274
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
3075
3275
|
];
|
|
@@ -3126,7 +3326,7 @@
|
|
|
3126
3326
|
};
|
|
3127
3327
|
return PropertyGetPipe;
|
|
3128
3328
|
}());
|
|
3129
|
-
PropertyGetPipe.ɵprov =
|
|
3329
|
+
PropertyGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
3130
3330
|
PropertyGetPipe.decorators = [
|
|
3131
3331
|
{ type: i0.Pipe, args: [{
|
|
3132
3332
|
name: 'propertyGet'
|
|
@@ -3152,7 +3352,7 @@
|
|
|
3152
3352
|
ngInit: [{ type: i0.Output }]
|
|
3153
3353
|
};
|
|
3154
3354
|
|
|
3155
|
-
var moment$
|
|
3355
|
+
var moment$5 = momentImported__namespace;
|
|
3156
3356
|
// @dynamic
|
|
3157
3357
|
var SharedValidators = /** @class */ (function () {
|
|
3158
3358
|
function SharedValidators() {
|
|
@@ -3235,7 +3435,7 @@
|
|
|
3235
3435
|
};
|
|
3236
3436
|
SharedValidators.validDate = function (control) {
|
|
3237
3437
|
var value = control.value;
|
|
3238
|
-
var date = !value || moment$
|
|
3438
|
+
var date = !value || moment$5.isMoment(value) ? value : moment$5(control.value, DATE_ISO_PATTERN);
|
|
3239
3439
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
3240
3440
|
return { validDate: true };
|
|
3241
3441
|
}
|
|
@@ -4442,7 +4642,7 @@
|
|
|
4442
4642
|
};
|
|
4443
4643
|
return FormErrorTranslator;
|
|
4444
4644
|
}());
|
|
4445
|
-
FormErrorTranslator.ɵprov =
|
|
4645
|
+
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
4646
|
FormErrorTranslator.decorators = [
|
|
4447
4647
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
4448
4648
|
];
|
|
@@ -4527,7 +4727,7 @@
|
|
|
4527
4727
|
};
|
|
4528
4728
|
return FormGetPipe;
|
|
4529
4729
|
}());
|
|
4530
|
-
FormGetPipe.ɵprov =
|
|
4730
|
+
FormGetPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormGetPipe_Factory() { return new FormGetPipe(); }, token: FormGetPipe, providedIn: "root" });
|
|
4531
4731
|
FormGetPipe.decorators = [
|
|
4532
4732
|
{ type: i0.Pipe, args: [{
|
|
4533
4733
|
name: 'formGet'
|
|
@@ -4542,7 +4742,7 @@
|
|
|
4542
4742
|
};
|
|
4543
4743
|
return FormGetControlPipe;
|
|
4544
4744
|
}());
|
|
4545
|
-
FormGetControlPipe.ɵprov =
|
|
4745
|
+
FormGetControlPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormGetControlPipe_Factory() { return new FormGetControlPipe(); }, token: FormGetControlPipe, providedIn: "root" });
|
|
4546
4746
|
FormGetControlPipe.decorators = [
|
|
4547
4747
|
{ type: i0.Pipe, args: [{
|
|
4548
4748
|
name: 'formGetControl'
|
|
@@ -4557,7 +4757,7 @@
|
|
|
4557
4757
|
};
|
|
4558
4758
|
return FormGetArrayPipe;
|
|
4559
4759
|
}());
|
|
4560
|
-
FormGetArrayPipe.ɵprov =
|
|
4760
|
+
FormGetArrayPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormGetArrayPipe_Factory() { return new FormGetArrayPipe(); }, token: FormGetArrayPipe, providedIn: "root" });
|
|
4561
4761
|
FormGetArrayPipe.decorators = [
|
|
4562
4762
|
{ type: i0.Pipe, args: [{
|
|
4563
4763
|
name: 'formGetArray'
|
|
@@ -4572,7 +4772,7 @@
|
|
|
4572
4772
|
};
|
|
4573
4773
|
return FormGetGroupPipe;
|
|
4574
4774
|
}());
|
|
4575
|
-
FormGetGroupPipe.ɵprov =
|
|
4775
|
+
FormGetGroupPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function FormGetGroupPipe_Factory() { return new FormGetGroupPipe(); }, token: FormGetGroupPipe, providedIn: "root" });
|
|
4576
4776
|
FormGetGroupPipe.decorators = [
|
|
4577
4777
|
{ type: i0.Pipe, args: [{
|
|
4578
4778
|
name: 'formGetGroup'
|
|
@@ -4673,40 +4873,13 @@
|
|
|
4673
4873
|
},] }
|
|
4674
4874
|
];
|
|
4675
4875
|
|
|
4676
|
-
/* ---
|
|
4677
|
-
* Source: https://github.com/ionic-team/ionic-framework/blob/b0d53ca73619585671d8cf4dc24e47f826495a0a/core/src/utils/platform.ts
|
|
4678
|
-
* --- */
|
|
4679
|
-
var matchMedia = function (win, query) { return win.matchMedia(query).matches; };
|
|
4680
|
-
var testUserAgent = function (win, expr) {
|
|
4681
|
-
var userAgent = win.navigator.userAgent || win.navigator.vendor || window.opera;
|
|
4682
|
-
return expr.test(userAgent);
|
|
4683
|
-
};
|
|
4684
|
-
var isWindows = function (win) { return testUserAgent(win, /windows/i); };
|
|
4685
|
-
var isTouchUi = function (win) { return matchMedia(win, '(any-pointer:coarse)'); };
|
|
4686
|
-
var isMobile = function (win) { return isTouchUi(win) && !isWindows(win); };
|
|
4687
|
-
var isIpad = function (win) {
|
|
4688
|
-
// iOS 12 and below
|
|
4689
|
-
if (testUserAgent(win, /iPad/i)) {
|
|
4690
|
-
return true;
|
|
4691
|
-
}
|
|
4692
|
-
// iOS 13+
|
|
4693
|
-
if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {
|
|
4694
|
-
return true;
|
|
4695
|
-
}
|
|
4696
|
-
return false;
|
|
4697
|
-
};
|
|
4698
|
-
var ɵ0$1 = isIpad;
|
|
4699
|
-
var isIOS = function (win) { return testUserAgent(win, /iPhone|iPod/i) || isIpad(win); };
|
|
4700
|
-
var isAndroid = function (win) { return testUserAgent(win, /android|sink/i); };
|
|
4701
|
-
var isCordova = function (win) { return !!(win['cordova'] || win['phonegap'] || win['PhoneGap']); };
|
|
4702
|
-
|
|
4703
4876
|
// Import the core angular services.
|
|
4704
4877
|
// ----------------------------------------------------------------------------------- //
|
|
4705
4878
|
// ----------------------------------------------------------------------------------- //
|
|
4706
4879
|
var BASE_TIMER_DELAY = 100;
|
|
4707
4880
|
var AutofocusDirective = /** @class */ (function () {
|
|
4708
4881
|
// I initialize the autofocus directive.
|
|
4709
|
-
function AutofocusDirective(elementRef, keyboard) {
|
|
4882
|
+
function AutofocusDirective(platform, elementRef, keyboard) {
|
|
4710
4883
|
this.keyboard = keyboard;
|
|
4711
4884
|
this._timer = null;
|
|
4712
4885
|
this._elementRef = elementRef;
|
|
@@ -4783,6 +4956,7 @@
|
|
|
4783
4956
|
},] }
|
|
4784
4957
|
];
|
|
4785
4958
|
AutofocusDirective.ctorParameters = function () { return [
|
|
4959
|
+
{ type: i1$5.Platform },
|
|
4786
4960
|
{ type: i0.ElementRef },
|
|
4787
4961
|
{ type: ngx.Keyboard, decorators: [{ type: i0.Optional }] }
|
|
4788
4962
|
]; };
|
|
@@ -4944,9 +5118,9 @@
|
|
|
4944
5118
|
var hour = parseInt(durationParts[0] || '0');
|
|
4945
5119
|
var minute = parseInt(durationParts[1] || '0');
|
|
4946
5120
|
var value = hour + (minute + 0.5) / 60;
|
|
4947
|
-
return roundFloat
|
|
5121
|
+
return roundFloat(value, maxDecimals);
|
|
4948
5122
|
}
|
|
4949
|
-
function roundFloat
|
|
5123
|
+
function roundFloat(input, maxDecimals) {
|
|
4950
5124
|
if (maxDecimals > 0) {
|
|
4951
5125
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
4952
5126
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -4970,18 +5144,17 @@
|
|
|
4970
5144
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
4971
5145
|
}
|
|
4972
5146
|
};
|
|
4973
|
-
var noop$
|
|
5147
|
+
var noop$7 = function () {
|
|
4974
5148
|
};
|
|
4975
|
-
var ɵ0$
|
|
5149
|
+
var ɵ0$a = noop$7;
|
|
4976
5150
|
var MatLatLongField = /** @class */ (function () {
|
|
4977
|
-
function MatLatLongField(
|
|
4978
|
-
this.platform = platform;
|
|
5151
|
+
function MatLatLongField(translate, formBuilder, cd, formGroupDir) {
|
|
4979
5152
|
this.translate = translate;
|
|
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;
|
|
@@ -4992,7 +5165,6 @@
|
|
|
4992
5165
|
this.required = false;
|
|
4993
5166
|
this.onBlur = new i0.EventEmitter();
|
|
4994
5167
|
this.onFocus = new i0.EventEmitter();
|
|
4995
|
-
this.mobile = this.platform.is('mobile');
|
|
4996
5168
|
}
|
|
4997
5169
|
Object.defineProperty(MatLatLongField.prototype, "disabled", {
|
|
4998
5170
|
get: function () {
|
|
@@ -5014,6 +5186,7 @@
|
|
|
5014
5186
|
});
|
|
5015
5187
|
MatLatLongField.prototype.ngOnInit = function () {
|
|
5016
5188
|
var _this = this;
|
|
5189
|
+
this.mobile = isNotNil(this.mobile) ? this.mobile : isMobile(window);
|
|
5017
5190
|
this.type = this.type || 'latitude';
|
|
5018
5191
|
this.pattern = this.pattern || 'DDMM';
|
|
5019
5192
|
this.mask = MASKS[this.type] && MASKS[this.type][this.pattern];
|
|
@@ -5278,7 +5451,6 @@
|
|
|
5278
5451
|
},] }
|
|
5279
5452
|
];
|
|
5280
5453
|
MatLatLongField.ctorParameters = function () { return [
|
|
5281
|
-
{ type: i1$5.Platform },
|
|
5282
5454
|
{ type: i1$2.TranslateService },
|
|
5283
5455
|
{ type: i1.FormBuilder },
|
|
5284
5456
|
{ type: i0.ChangeDetectorRef },
|
|
@@ -5333,30 +5505,29 @@
|
|
|
5333
5505
|
},] }
|
|
5334
5506
|
];
|
|
5335
5507
|
|
|
5336
|
-
var DEFAULT_VALUE_ACCESSOR = {
|
|
5508
|
+
var DEFAULT_VALUE_ACCESSOR$5 = {
|
|
5337
5509
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5338
5510
|
useExisting: i0.forwardRef(function () { return MatDate; }),
|
|
5339
5511
|
multi: true
|
|
5340
5512
|
};
|
|
5341
|
-
var DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5342
|
-
var noop$
|
|
5343
|
-
var ɵ0$
|
|
5513
|
+
var DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5514
|
+
var noop$6 = function () { };
|
|
5515
|
+
var ɵ0$9 = noop$6;
|
|
5344
5516
|
var MatDate = /** @class */ (function () {
|
|
5345
|
-
function MatDate(
|
|
5346
|
-
this.platform = platform;
|
|
5517
|
+
function MatDate(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5347
5518
|
this.dateAdapter = dateAdapter;
|
|
5348
5519
|
this.translate = translate;
|
|
5349
5520
|
this.formBuilder = formBuilder;
|
|
5350
5521
|
this.cd = cd;
|
|
5351
5522
|
this.keyboard = keyboard;
|
|
5352
5523
|
this.formGroupDir = formGroupDir;
|
|
5353
|
-
this._onChangeCallback = noop$
|
|
5354
|
-
this._onTouchedCallback = noop$
|
|
5524
|
+
this._onChangeCallback = noop$6;
|
|
5525
|
+
this._onTouchedCallback = noop$6;
|
|
5355
5526
|
this._subscription = new rxjs.Subscription();
|
|
5356
5527
|
this._writing = true;
|
|
5357
5528
|
this._disabling = false;
|
|
5358
5529
|
this._readonly = false;
|
|
5359
|
-
this.dayMask = DAY_MASK;
|
|
5530
|
+
this.dayMask = DAY_MASK$2;
|
|
5360
5531
|
this.floatLabel = 'auto';
|
|
5361
5532
|
this.compact = false;
|
|
5362
5533
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -5400,11 +5571,12 @@
|
|
|
5400
5571
|
});
|
|
5401
5572
|
MatDate.prototype.ngOnInit = function () {
|
|
5402
5573
|
var _this = this;
|
|
5403
|
-
this.mobile = isNil(this.mobile) ? this.platform.is('mobile') : this.mobile;
|
|
5404
|
-
this._keyboardHideDelay = this.mobile && KEYBOARD_HIDE_DELAY_MS || 0;
|
|
5405
5574
|
this.formControl = this.formControl || this.formControlName && this.formGroupDir && this.formGroupDir.form.get(this.formControlName);
|
|
5406
5575
|
if (!this.formControl)
|
|
5407
5576
|
throw new Error('Missing mandatory attribute \'formControl\' or \'formControlName\' in <mat-date-field>.');
|
|
5577
|
+
this.mobile = isNotNil(this.mobile) ? this.mobile : isMobile(window);
|
|
5578
|
+
// Workaround because ion-datetime has issue (do not returned a ISO date)
|
|
5579
|
+
this._keyboardHideDelay = this.mobile && KEYBOARD_HIDE_DELAY_MS || 0;
|
|
5408
5580
|
this.required = toBoolean(this.required, this.formControl.validator === i1.Validators.required);
|
|
5409
5581
|
// Add 'validDate' validator (when existing validator are null or required, to be sure to keep it)
|
|
5410
5582
|
if (!this.formControl.validator || this.formControl.validator === i1.Validators.required) {
|
|
@@ -5679,14 +5851,13 @@
|
|
|
5679
5851
|
selector: 'mat-date-field',
|
|
5680
5852
|
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
5853
|
providers: [
|
|
5682
|
-
DEFAULT_VALUE_ACCESSOR,
|
|
5854
|
+
DEFAULT_VALUE_ACCESSOR$5,
|
|
5683
5855
|
],
|
|
5684
5856
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
5685
5857
|
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%}"]
|
|
5686
5858
|
},] }
|
|
5687
5859
|
];
|
|
5688
5860
|
MatDate.ctorParameters = function () { return [
|
|
5689
|
-
{ type: i1$5.Platform },
|
|
5690
5861
|
{ type: i1$3.DateAdapter },
|
|
5691
5862
|
{ type: i1$2.TranslateService },
|
|
5692
5863
|
{ type: i1.FormBuilder },
|
|
@@ -5695,12 +5866,12 @@
|
|
|
5695
5866
|
{ type: i1.FormGroupDirective, decorators: [{ type: i0.Optional }] }
|
|
5696
5867
|
]; };
|
|
5697
5868
|
MatDate.propDecorators = {
|
|
5869
|
+
mobile: [{ type: i0.Input }],
|
|
5698
5870
|
formControl: [{ type: i0.Input }],
|
|
5699
5871
|
formControlName: [{ type: i0.Input }],
|
|
5700
5872
|
placeholder: [{ type: i0.Input }],
|
|
5701
5873
|
floatLabel: [{ type: i0.Input }],
|
|
5702
5874
|
required: [{ type: i0.Input }],
|
|
5703
|
-
mobile: [{ type: i0.Input }],
|
|
5704
5875
|
compact: [{ type: i0.Input }],
|
|
5705
5876
|
placeholderChar: [{ type: i0.Input }],
|
|
5706
5877
|
autofocus: [{ type: i0.Input }],
|
|
@@ -5714,33 +5885,32 @@
|
|
|
5714
5885
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
5715
5886
|
};
|
|
5716
5887
|
|
|
5717
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
5888
|
+
var DEFAULT_VALUE_ACCESSOR$4 = {
|
|
5718
5889
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5719
5890
|
useExisting: i0.forwardRef(function () { return MatDateTime; }),
|
|
5720
5891
|
multi: true
|
|
5721
5892
|
};
|
|
5722
5893
|
var DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5723
5894
|
var HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
5724
|
-
var HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
5725
|
-
var noop$
|
|
5726
|
-
var ɵ0$
|
|
5895
|
+
var HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
5896
|
+
var noop$5 = function () { };
|
|
5897
|
+
var ɵ0$8 = noop$5;
|
|
5727
5898
|
var MatDateTime = /** @class */ (function () {
|
|
5728
|
-
function MatDateTime(
|
|
5729
|
-
this.platform = platform;
|
|
5899
|
+
function MatDateTime(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5730
5900
|
this.dateAdapter = dateAdapter;
|
|
5731
5901
|
this.translate = translate;
|
|
5732
5902
|
this.formBuilder = formBuilder;
|
|
5733
5903
|
this.cd = cd;
|
|
5734
5904
|
this.keyboard = keyboard;
|
|
5735
5905
|
this.formGroupDir = formGroupDir;
|
|
5736
|
-
this._onChangeCallback = noop$
|
|
5737
|
-
this._onTouchedCallback = noop$
|
|
5906
|
+
this._onChangeCallback = noop$5;
|
|
5907
|
+
this._onTouchedCallback = noop$5;
|
|
5738
5908
|
this._subscription = new rxjs.Subscription();
|
|
5739
5909
|
this._writing = true;
|
|
5740
5910
|
this._disabling = false;
|
|
5741
5911
|
this._readonly = false;
|
|
5742
5912
|
this.dayMask = DAY_MASK$1;
|
|
5743
|
-
this.hourMask = HOUR_MASK;
|
|
5913
|
+
this.hourMask = HOUR_MASK$1;
|
|
5744
5914
|
this.floatLabel = 'auto';
|
|
5745
5915
|
this.compact = false;
|
|
5746
5916
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -5783,11 +5953,12 @@
|
|
|
5783
5953
|
});
|
|
5784
5954
|
MatDateTime.prototype.ngOnInit = function () {
|
|
5785
5955
|
var _this = this;
|
|
5786
|
-
this.mobile = isNil(this.mobile) ? this.platform.is('mobile') : this.mobile;
|
|
5787
|
-
this._keyboardHideDelay = this.mobile && KEYBOARD_HIDE_DELAY_MS || 0;
|
|
5788
5956
|
this.formControl = this.formControl || this.formControlName && this.formGroupDir && this.formGroupDir.form.get(this.formControlName);
|
|
5789
5957
|
if (!this.formControl)
|
|
5790
5958
|
throw new Error('Missing mandatory attribute \'formControl\' or \'formControlName\' in <mat-date-time-field>.');
|
|
5959
|
+
this.mobile = isNotNil(this.mobile) ? this.mobile : isMobile(window);
|
|
5960
|
+
// Workaround because ion-datetime has issue (do not returned a ISO date)
|
|
5961
|
+
this._keyboardHideDelay = this.mobile && KEYBOARD_HIDE_DELAY_MS || 0;
|
|
5791
5962
|
this.required = toBoolean(this.required, this.formControl.validator === i1.Validators.required);
|
|
5792
5963
|
// Add 'validDate' validator (when existing validator are null or required, to be sure to keep it)
|
|
5793
5964
|
if (!this.formControl.validator || this.formControl.validator === i1.Validators.required) {
|
|
@@ -6098,14 +6269,13 @@
|
|
|
6098
6269
|
selector: 'mat-date-time-field',
|
|
6099
6270
|
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
6271
|
providers: [
|
|
6101
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6272
|
+
DEFAULT_VALUE_ACCESSOR$4,
|
|
6102
6273
|
],
|
|
6103
6274
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6104
6275
|
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%}"]
|
|
6105
6276
|
},] }
|
|
6106
6277
|
];
|
|
6107
6278
|
MatDateTime.ctorParameters = function () { return [
|
|
6108
|
-
{ type: i1$5.Platform },
|
|
6109
6279
|
{ type: i1$3.DateAdapter },
|
|
6110
6280
|
{ type: i1$2.TranslateService },
|
|
6111
6281
|
{ type: i1.FormBuilder },
|
|
@@ -6133,17 +6303,17 @@
|
|
|
6133
6303
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
6134
6304
|
};
|
|
6135
6305
|
|
|
6136
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6306
|
+
var DEFAULT_VALUE_ACCESSOR$3 = {
|
|
6137
6307
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6138
6308
|
useExisting: i0.forwardRef(function () { return MatDateShort; }),
|
|
6139
6309
|
multi: true
|
|
6140
6310
|
};
|
|
6141
|
-
var DAY_MASK
|
|
6311
|
+
var DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
6142
6312
|
var noop$4 = function () {
|
|
6143
6313
|
};
|
|
6144
|
-
var ɵ0$
|
|
6314
|
+
var ɵ0$7 = noop$4;
|
|
6145
6315
|
var MatDateShort = /** @class */ (function () {
|
|
6146
|
-
function MatDateShort(
|
|
6316
|
+
function MatDateShort(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
6147
6317
|
this.dateAdapter = dateAdapter;
|
|
6148
6318
|
this.translate = translate;
|
|
6149
6319
|
this.formBuilder = formBuilder;
|
|
@@ -6154,16 +6324,13 @@
|
|
|
6154
6324
|
this._onTouchedCallback = noop$4;
|
|
6155
6325
|
this.writing = true;
|
|
6156
6326
|
this.disabling = false;
|
|
6157
|
-
this.dayMask = DAY_MASK
|
|
6327
|
+
this.dayMask = DAY_MASK;
|
|
6158
6328
|
this.disabled = false;
|
|
6159
6329
|
this.floatLabel = 'auto';
|
|
6160
6330
|
this.readonly = false;
|
|
6161
6331
|
this.compact = false;
|
|
6162
6332
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
6163
6333
|
this.clearable = false;
|
|
6164
|
-
// Workaround because ion-datetime has issue (do not returned a ISO date)
|
|
6165
|
-
this.mobile = platform.is('mobile');
|
|
6166
|
-
this.keyboardHideDelay = this.mobile && KEYBOARD_HIDE_DELAY_MS || 0;
|
|
6167
6334
|
this.locale = (translate.currentLang || translate.defaultLang).substr(0, 2);
|
|
6168
6335
|
}
|
|
6169
6336
|
Object.defineProperty(MatDateShort.prototype, "tabindex", {
|
|
@@ -6192,6 +6359,9 @@
|
|
|
6192
6359
|
this.formControl = this.formControl || this.formControlName && this.formGroupDir && this.formGroupDir.form.get(this.formControlName);
|
|
6193
6360
|
if (!this.formControl)
|
|
6194
6361
|
throw new Error('Missing mandatory attribute \'formControl\' or \'formControlName\' in <mat-date-short-field>.');
|
|
6362
|
+
this.mobile = isNotNil(this.mobile) ? this.mobile : isMobile(window);
|
|
6363
|
+
// Workaround because ion-datetime has issue (do not returned a ISO date)
|
|
6364
|
+
this.keyboardHideDelay = this.mobile && KEYBOARD_HIDE_DELAY_MS || 0;
|
|
6195
6365
|
// Redirect errors from main control, into day sub control
|
|
6196
6366
|
var $error = new rxjs.BehaviorSubject(null);
|
|
6197
6367
|
this.required = toBoolean(this.required, this.formControl.validator === i1.Validators.required);
|
|
@@ -6431,14 +6601,13 @@
|
|
|
6431
6601
|
selector: 'mat-date-short-field',
|
|
6432
6602
|
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
6603
|
providers: [
|
|
6434
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6604
|
+
DEFAULT_VALUE_ACCESSOR$3,
|
|
6435
6605
|
],
|
|
6436
6606
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6437
6607
|
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%}"]
|
|
6438
6608
|
},] }
|
|
6439
6609
|
];
|
|
6440
6610
|
MatDateShort.ctorParameters = function () { return [
|
|
6441
|
-
{ type: i1$5.Platform },
|
|
6442
6611
|
{ type: i1$3.DateAdapter },
|
|
6443
6612
|
{ type: i1$2.TranslateService },
|
|
6444
6613
|
{ type: i1.FormBuilder },
|
|
@@ -6447,6 +6616,7 @@
|
|
|
6447
6616
|
{ type: i1.FormGroupDirective, decorators: [{ type: i0.Optional }] }
|
|
6448
6617
|
]; };
|
|
6449
6618
|
MatDateShort.propDecorators = {
|
|
6619
|
+
mobile: [{ type: i0.Input }],
|
|
6450
6620
|
disabled: [{ type: i0.Input }],
|
|
6451
6621
|
formControl: [{ type: i0.Input }],
|
|
6452
6622
|
formControlName: [{ type: i0.Input }],
|
|
@@ -6502,16 +6672,16 @@
|
|
|
6502
6672
|
},] }
|
|
6503
6673
|
];
|
|
6504
6674
|
|
|
6505
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6675
|
+
var DEFAULT_VALUE_ACCESSOR$2 = {
|
|
6506
6676
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6507
6677
|
useExisting: i0.forwardRef(function () { return MatDuration; }),
|
|
6508
6678
|
multi: true
|
|
6509
6679
|
};
|
|
6510
6680
|
var HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
6511
|
-
var HOUR_MASK
|
|
6512
|
-
var noop$
|
|
6681
|
+
var HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
6682
|
+
var noop$3 = function () {
|
|
6513
6683
|
};
|
|
6514
|
-
var ɵ0$6 = noop$
|
|
6684
|
+
var ɵ0$6 = noop$3;
|
|
6515
6685
|
var MatDuration = /** @class */ (function () {
|
|
6516
6686
|
function MatDuration(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
6517
6687
|
this.dateAdapter = dateAdapter;
|
|
@@ -6520,11 +6690,11 @@
|
|
|
6520
6690
|
this.cd = cd;
|
|
6521
6691
|
this.formGroupDir = formGroupDir;
|
|
6522
6692
|
this._subscription = new rxjs.Subscription();
|
|
6523
|
-
this._onChangeCallback = noop$
|
|
6524
|
-
this._onTouchedCallback = noop$
|
|
6693
|
+
this._onChangeCallback = noop$3;
|
|
6694
|
+
this._onTouchedCallback = noop$3;
|
|
6525
6695
|
this.writing = true;
|
|
6526
6696
|
this.disabling = false;
|
|
6527
|
-
this.hourMask = HOUR_MASK
|
|
6697
|
+
this.hourMask = HOUR_MASK;
|
|
6528
6698
|
this.disabled = false;
|
|
6529
6699
|
this.floatLabel = 'auto';
|
|
6530
6700
|
this.readonly = false;
|
|
@@ -6717,7 +6887,7 @@
|
|
|
6717
6887
|
selector: 'mat-duration-field',
|
|
6718
6888
|
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
6889
|
providers: [
|
|
6720
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6890
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
6721
6891
|
],
|
|
6722
6892
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6723
6893
|
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 +6947,22 @@
|
|
|
6777
6947
|
},] }
|
|
6778
6948
|
];
|
|
6779
6949
|
|
|
6780
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6950
|
+
var DEFAULT_VALUE_ACCESSOR$1 = {
|
|
6781
6951
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6782
6952
|
useExisting: i0.forwardRef(function () { return MatBooleanField; }),
|
|
6783
6953
|
multi: true
|
|
6784
6954
|
};
|
|
6785
|
-
var noop$
|
|
6955
|
+
var noop$2 = function () {
|
|
6786
6956
|
};
|
|
6787
|
-
var ɵ0$
|
|
6957
|
+
var ɵ0$5 = noop$2;
|
|
6788
6958
|
var MatBooleanField = /** @class */ (function () {
|
|
6789
6959
|
function MatBooleanField(translate, formBuilder, cd, formGroupDir) {
|
|
6790
6960
|
this.translate = translate;
|
|
6791
6961
|
this.formBuilder = formBuilder;
|
|
6792
6962
|
this.cd = cd;
|
|
6793
6963
|
this.formGroupDir = formGroupDir;
|
|
6794
|
-
this._onChangeCallback = noop$
|
|
6795
|
-
this._onTouchedCallback = noop$
|
|
6964
|
+
this._onChangeCallback = noop$2;
|
|
6965
|
+
this._onTouchedCallback = noop$2;
|
|
6796
6966
|
this._writing = false;
|
|
6797
6967
|
this.showRadio = false;
|
|
6798
6968
|
this.disabled = false;
|
|
@@ -6967,7 +7137,7 @@
|
|
|
6967
7137
|
selector: 'mat-boolean-field',
|
|
6968
7138
|
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
7139
|
providers: [
|
|
6970
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
7140
|
+
DEFAULT_VALUE_ACCESSOR$1
|
|
6971
7141
|
],
|
|
6972
7142
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6973
7143
|
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 +7224,7 @@
|
|
|
7054
7224
|
return MatNumpadEvent;
|
|
7055
7225
|
}(KeyboardEvent));
|
|
7056
7226
|
|
|
7227
|
+
exports.AnimationState = void 0;
|
|
7057
7228
|
(function (AnimationState) {
|
|
7058
7229
|
AnimationState["ENTER"] = "enter";
|
|
7059
7230
|
AnimationState["ENTER_INPUT"] = "enter-input";
|
|
@@ -7221,7 +7392,7 @@
|
|
|
7221
7392
|
};
|
|
7222
7393
|
return MatNumpadDomService;
|
|
7223
7394
|
}());
|
|
7224
|
-
MatNumpadDomService.ɵprov =
|
|
7395
|
+
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
7396
|
MatNumpadDomService.decorators = [
|
|
7226
7397
|
{ type: i0.Injectable, args: [{
|
|
7227
7398
|
providedIn: 'root'
|
|
@@ -7627,7 +7798,7 @@
|
|
|
7627
7798
|
},] }
|
|
7628
7799
|
];
|
|
7629
7800
|
|
|
7630
|
-
var DEFAULT_VALUE_ACCESSOR
|
|
7801
|
+
var DEFAULT_VALUE_ACCESSOR = {
|
|
7631
7802
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
7632
7803
|
useExisting: i0.forwardRef(function () { return MatSwipeField; }),
|
|
7633
7804
|
multi: true
|
|
@@ -7947,7 +8118,7 @@
|
|
|
7947
8118
|
{ type: i0.Component, args: [{
|
|
7948
8119
|
selector: 'mat-swipe-field',
|
|
7949
8120
|
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
|
|
8121
|
+
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
7951
8122
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7952
8123
|
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
8124
|
},] }
|
|
@@ -8008,14 +8179,14 @@
|
|
|
8008
8179
|
},] }
|
|
8009
8180
|
];
|
|
8010
8181
|
|
|
8011
|
-
var noop$
|
|
8012
|
-
var ɵ0$
|
|
8182
|
+
var noop$1 = function () { };
|
|
8183
|
+
var ɵ0$4 = noop$1;
|
|
8013
8184
|
var MatChipsField = /** @class */ (function () {
|
|
8014
8185
|
function MatChipsField(cd, formGroupDir) {
|
|
8015
8186
|
this.cd = cd;
|
|
8016
8187
|
this.formGroupDir = formGroupDir;
|
|
8017
|
-
this._onChangeCallback = noop$
|
|
8018
|
-
this._onTouchedCallback = noop$
|
|
8188
|
+
this._onChangeCallback = noop$1;
|
|
8189
|
+
this._onTouchedCallback = noop$1;
|
|
8019
8190
|
this.logPrefix = '[mat-chips] ';
|
|
8020
8191
|
this.formControlName = null;
|
|
8021
8192
|
this.required = false;
|
|
@@ -8174,9 +8345,9 @@
|
|
|
8174
8345
|
// - if label then col size = 2
|
|
8175
8346
|
// - if rankOrder then col size = 1
|
|
8176
8347
|
// - ese => auto size
|
|
8177
|
-
|| this.displayAttributes.map(function (attr) { return
|
|
8178
|
-
: (
|
|
8179
|
-
: undefined); });
|
|
8348
|
+
|| this.displayAttributes.map(function (attr) { return attr && (attr.endsWith('label') ? 3
|
|
8349
|
+
: (attr.endsWith('rankOrder') ? 2
|
|
8350
|
+
: undefined)); });
|
|
8180
8351
|
this.displayColumnNames = this.displayAttributes.map(function (attr, index) { return _this.displayColumnNames && _this.displayColumnNames[index] ||
|
|
8181
8352
|
(_this.i18nPrefix + changeCaseToUnderscore(attr).toUpperCase()); });
|
|
8182
8353
|
this.mobile = toBoolean(this.mobile, false);
|
|
@@ -8195,8 +8366,8 @@
|
|
|
8195
8366
|
if (!this.suggestFn) {
|
|
8196
8367
|
var suggestFromArrayFn_1 = function (value, filter) { return __awaiter(_this, void 0, void 0, function () {
|
|
8197
8368
|
return __generator(this, function (_c) {
|
|
8198
|
-
|
|
8199
|
-
|
|
8369
|
+
// DEBUG
|
|
8370
|
+
//if (this.debug) console.debug(this.logPrefix + ' Calling suggestFromArray with value=', value);
|
|
8200
8371
|
return [2 /*return*/, suggestFromArray(this.$inputItems.value, value, Object.assign({ searchAttributes: this.displayAttributes }, filter))];
|
|
8201
8372
|
});
|
|
8202
8373
|
}); };
|
|
@@ -8206,13 +8377,13 @@
|
|
|
8206
8377
|
switch (_c.label) {
|
|
8207
8378
|
case 0:
|
|
8208
8379
|
if (!isNil(this.$inputItems.value)) return [3 /*break*/, 2];
|
|
8209
|
-
|
|
8210
|
-
|
|
8380
|
+
// DEBUG
|
|
8381
|
+
//if (this.debug) console.debug('[mat-chips] Waiting items to be set...');
|
|
8211
8382
|
return [4 /*yield*/, firstNotNilPromise(this.$inputItems)];
|
|
8212
8383
|
case 1:
|
|
8384
|
+
// DEBUG
|
|
8385
|
+
//if (this.debug) console.debug('[mat-chips] Waiting items to be set...');
|
|
8213
8386
|
_c.sent();
|
|
8214
|
-
if (this.debug)
|
|
8215
|
-
console.debug('[mat-chips] Received items:', this.$inputItems.value);
|
|
8216
8387
|
_c.label = 2;
|
|
8217
8388
|
case 2:
|
|
8218
8389
|
this.suggestFn = suggestFromArrayFn_1;
|
|
@@ -8244,9 +8415,7 @@
|
|
|
8244
8415
|
),
|
|
8245
8416
|
// Object set: use it (no distinctUntilChanged() pipe need)
|
|
8246
8417
|
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); })),
|
|
8418
|
+
.pipe(operators.startWith(this.inputControl.value), operators.filter(function (value) { return isNotNil(value) && typeof value === 'object'; })),
|
|
8250
8419
|
// On dropdown button click (no distinctUntilChanged(), nor debounceTime)
|
|
8251
8420
|
this.dropButtonClick
|
|
8252
8421
|
.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 +8488,7 @@
|
|
|
8319
8488
|
_this.$filteredItems.next(undefined);
|
|
8320
8489
|
}
|
|
8321
8490
|
_this._implicitValue = null; // reset the implicit value
|
|
8491
|
+
_this.closePanel(); // Clone panel
|
|
8322
8492
|
}));
|
|
8323
8493
|
// Listen form control status change
|
|
8324
8494
|
this._subscription.add(this.formControl.statusChanges
|
|
@@ -8329,6 +8499,7 @@
|
|
|
8329
8499
|
.subscribe(function () { return _this.checkIfTouched(); }));
|
|
8330
8500
|
this._subscription.add(this.keydownEscape.subscribe(function (event) {
|
|
8331
8501
|
if (_this.isOpen) {
|
|
8502
|
+
// Avoid form or page to manage escape event
|
|
8332
8503
|
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
8333
8504
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
|
8334
8505
|
// DEBUG
|
|
@@ -8416,8 +8587,8 @@
|
|
|
8416
8587
|
value = [value];
|
|
8417
8588
|
}
|
|
8418
8589
|
if (value !== this.formControl.value) {
|
|
8419
|
-
|
|
8420
|
-
|
|
8590
|
+
// DEBUG
|
|
8591
|
+
//if (this.debug) console.debug(this.logPrefix + ' Writing value: ', value);
|
|
8421
8592
|
this.formControl.patchValue(value, { emitEvent: false });
|
|
8422
8593
|
this._onChangeCallback(value);
|
|
8423
8594
|
}
|
|
@@ -8450,15 +8621,17 @@
|
|
|
8450
8621
|
if (event.stopPropagation)
|
|
8451
8622
|
event.stopPropagation();
|
|
8452
8623
|
event.returnValue = false;
|
|
8453
|
-
|
|
8454
|
-
|
|
8624
|
+
// DEBUG
|
|
8625
|
+
//if (this.debug) console.debug(this.logPrefix + ' Cancelling focus event');
|
|
8455
8626
|
return false;
|
|
8456
8627
|
}
|
|
8628
|
+
// DEBUG
|
|
8629
|
+
//if (this.debug) console.debug(this.logPrefix + ' Select input content');
|
|
8457
8630
|
var hasContent = selectInputContent(event);
|
|
8458
8631
|
// If combo is empty, or if has content but should force to show panel on focus
|
|
8459
8632
|
if (!hasContent || (this.showPanelOnFocus && this.showAllOnFocus)) {
|
|
8460
|
-
|
|
8461
|
-
|
|
8633
|
+
// DEBUG
|
|
8634
|
+
//if (this.debug) console.debug(this.logPrefix + ' Emit focus event');
|
|
8462
8635
|
this.focused.emit(event);
|
|
8463
8636
|
return true;
|
|
8464
8637
|
}
|
|
@@ -8473,11 +8646,12 @@
|
|
|
8473
8646
|
if (event.stopPropagation)
|
|
8474
8647
|
event.stopPropagation();
|
|
8475
8648
|
event.returnValue = false;
|
|
8476
|
-
//DEBUG
|
|
8649
|
+
//DEBUG
|
|
8650
|
+
//if (this.debug) console.debug(this.logPrefix + " Cancelling blur event");
|
|
8477
8651
|
return false;
|
|
8478
8652
|
}
|
|
8479
|
-
//DEBUG
|
|
8480
|
-
//console.debug(this.logPrefix + ' Blur: move caret to the beginning');
|
|
8653
|
+
// DEBUG
|
|
8654
|
+
//if (this.debug) console.debug(this.logPrefix + ' Blur: move caret to the beginning');
|
|
8481
8655
|
// Move caret to the beginning (fix issue IMAGINE-469)
|
|
8482
8656
|
selectInputRange(event.target, 0, 0);
|
|
8483
8657
|
this.blurred.emit(event);
|
|
@@ -8634,7 +8808,7 @@
|
|
|
8634
8808
|
{ type: i0.Component, args: [{
|
|
8635
8809
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
8636
8810
|
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
|
|
8811
|
+
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
8812
|
providers: [{
|
|
8639
8813
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
8640
8814
|
multi: true,
|
|
@@ -8983,7 +9157,7 @@
|
|
|
8983
9157
|
};
|
|
8984
9158
|
return ProgressBarService;
|
|
8985
9159
|
}());
|
|
8986
|
-
ProgressBarService.ɵprov =
|
|
9160
|
+
ProgressBarService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
8987
9161
|
ProgressBarService.decorators = [
|
|
8988
9162
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
8989
9163
|
];
|
|
@@ -9030,7 +9204,7 @@
|
|
|
9030
9204
|
};
|
|
9031
9205
|
return AppGestureConfig;
|
|
9032
9206
|
}(i1$6.HammerGestureConfig));
|
|
9033
|
-
AppGestureConfig.ɵprov =
|
|
9207
|
+
AppGestureConfig.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
9034
9208
|
AppGestureConfig.decorators = [
|
|
9035
9209
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9036
9210
|
];
|
|
@@ -9297,7 +9471,7 @@
|
|
|
9297
9471
|
};
|
|
9298
9472
|
return MatPaginatorI18n;
|
|
9299
9473
|
}(paginator.MatPaginatorIntl));
|
|
9300
|
-
MatPaginatorI18n.ɵprov =
|
|
9474
|
+
MatPaginatorI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
9301
9475
|
MatPaginatorI18n.decorators = [
|
|
9302
9476
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9303
9477
|
];
|
|
@@ -9389,17 +9563,17 @@
|
|
|
9389
9563
|
return rgbArrayToHex(rgb.map(function (v) { return 255 - v; }));
|
|
9390
9564
|
}
|
|
9391
9565
|
|
|
9392
|
-
var noop
|
|
9566
|
+
var noop = function () {
|
|
9393
9567
|
};
|
|
9394
|
-
var ɵ0$
|
|
9568
|
+
var ɵ0$3 = noop;
|
|
9395
9569
|
var AppFormField = /** @class */ (function () {
|
|
9396
9570
|
function AppFormField(translate, cd, injector, formGroupDir) {
|
|
9397
9571
|
this.translate = translate;
|
|
9398
9572
|
this.cd = cd;
|
|
9399
9573
|
this.injector = injector;
|
|
9400
9574
|
this.formGroupDir = formGroupDir;
|
|
9401
|
-
this._onChangeCallback = noop
|
|
9402
|
-
this._onTouchedCallback = noop
|
|
9575
|
+
this._onChangeCallback = noop;
|
|
9576
|
+
this._onTouchedCallback = noop;
|
|
9403
9577
|
this.readonly = false;
|
|
9404
9578
|
this.compact = false;
|
|
9405
9579
|
this.floatLabel = 'auto';
|
|
@@ -9957,7 +10131,7 @@
|
|
|
9957
10131
|
};
|
|
9958
10132
|
return AudioProvider;
|
|
9959
10133
|
}(StartableService));
|
|
9960
|
-
AudioProvider.ɵprov =
|
|
10134
|
+
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
10135
|
AudioProvider.decorators = [
|
|
9962
10136
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9963
10137
|
];
|
|
@@ -10067,7 +10241,7 @@
|
|
|
10067
10241
|
};
|
|
10068
10242
|
return Hotkeys;
|
|
10069
10243
|
}());
|
|
10070
|
-
Hotkeys.ɵprov =
|
|
10244
|
+
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), i0__namespace.ɵɵinject(i1__namespace$4.PopoverController)); }, token: Hotkeys, providedIn: "root" });
|
|
10071
10245
|
Hotkeys.decorators = [
|
|
10072
10246
|
{ type: i0.Injectable, args: [{
|
|
10073
10247
|
providedIn: 'root'
|
|
@@ -10272,7 +10446,7 @@
|
|
|
10272
10446
|
return Base64ImageReader;
|
|
10273
10447
|
}());
|
|
10274
10448
|
|
|
10275
|
-
var uuidv4 = uuidv4Imported__namespace;
|
|
10449
|
+
var uuidv4$1 = uuidv4Imported__namespace;
|
|
10276
10450
|
var FileService = /** @class */ (function () {
|
|
10277
10451
|
function FileService(platform,
|
|
10278
10452
|
//private transfer: FileTransfer,
|
|
@@ -10318,7 +10492,7 @@
|
|
|
10318
10492
|
lastSlashIndex = source.lastIndexOf('/');
|
|
10319
10493
|
if (lastSlashIndex === -1)
|
|
10320
10494
|
throw new Error('Invalid URL: ' + source);
|
|
10321
|
-
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
10495
|
+
fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
|
|
10322
10496
|
if (!(responseType === 'file' && this.canUseFileSystem)) return [3 /*break*/, 4];
|
|
10323
10497
|
console.warn("WARN: [file] Fetching image {" + source + "} in local file...");
|
|
10324
10498
|
targetFilePath = this._imageDirectory + fileName;
|
|
@@ -10381,7 +10555,7 @@
|
|
|
10381
10555
|
};
|
|
10382
10556
|
return FileService;
|
|
10383
10557
|
}());
|
|
10384
|
-
FileService.ɵprov =
|
|
10558
|
+
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
10559
|
FileService.decorators = [
|
|
10386
10560
|
{ type: i0.Injectable, args: [{
|
|
10387
10561
|
providedIn: 'root',
|
|
@@ -10548,7 +10722,7 @@
|
|
|
10548
10722
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
10549
10723
|
|
|
10550
10724
|
var scrypt = require('scrypt-async');
|
|
10551
|
-
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
10725
|
+
var sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
10552
10726
|
var sha512 = require('hash.js/lib/hash/sha/512');
|
|
10553
10727
|
var nacl = {
|
|
10554
10728
|
sign: tweetnacl.sign,
|
|
@@ -10654,7 +10828,7 @@
|
|
|
10654
10828
|
* Hash (using SHA256) a message
|
|
10655
10829
|
*/
|
|
10656
10830
|
CryptoService.prototype.sha256 = function (message) {
|
|
10657
|
-
return sha256().update(message).digest('hex');
|
|
10831
|
+
return sha256$1().update(message).digest('hex');
|
|
10658
10832
|
};
|
|
10659
10833
|
/**
|
|
10660
10834
|
* Hash (using SHA512) a message
|
|
@@ -10668,7 +10842,7 @@
|
|
|
10668
10842
|
};
|
|
10669
10843
|
return CryptoService;
|
|
10670
10844
|
}());
|
|
10671
|
-
CryptoService.ɵprov =
|
|
10845
|
+
CryptoService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
10672
10846
|
CryptoService.decorators = [
|
|
10673
10847
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
10674
10848
|
];
|
|
@@ -11198,109 +11372,6 @@
|
|
|
11198
11372
|
EntityClass({ typename: 'PeerVO' })
|
|
11199
11373
|
], exports.Peer);
|
|
11200
11374
|
|
|
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
11375
|
var HttpUtils = /** @class */ (function () {
|
|
11305
11376
|
function HttpUtils() {
|
|
11306
11377
|
}
|
|
@@ -11641,7 +11712,7 @@
|
|
|
11641
11712
|
onRefresh: [{ type: i0.Input }]
|
|
11642
11713
|
};
|
|
11643
11714
|
|
|
11644
|
-
var moment$
|
|
11715
|
+
var moment$4 = momentImported__namespace;
|
|
11645
11716
|
var SETTINGS_STORAGE_KEY = 'settings';
|
|
11646
11717
|
var SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
|
|
11647
11718
|
// fixme: this constant points to static environment
|
|
@@ -11729,7 +11800,7 @@
|
|
|
11729
11800
|
LocalSettingsService.prototype.ngOnStart = function () {
|
|
11730
11801
|
console.info('[settings] Starting service...');
|
|
11731
11802
|
// Restoring local settings
|
|
11732
|
-
this._data.mobile = isNotNil(this._data.mobile) ? this._data.mobile : isMobile(window);
|
|
11803
|
+
this._data.mobile = isNotNil(this._data.mobile) ? this._data.mobile : (isCordova(window) || isMobile(window));
|
|
11733
11804
|
this._data.usageMode = (isAndroid(window) || isIOS(window)) ? 'FIELD' : 'DESK'; // FIELD by default if Android or iOS
|
|
11734
11805
|
// Restoring local settings
|
|
11735
11806
|
return this.restoreLocally();
|
|
@@ -11943,11 +12014,11 @@
|
|
|
11943
12014
|
if (!feature) {
|
|
11944
12015
|
feature = {
|
|
11945
12016
|
name: featureName.toLowerCase(),
|
|
11946
|
-
lastSyncDate: moment$
|
|
12017
|
+
lastSyncDate: moment$4().toISOString()
|
|
11947
12018
|
};
|
|
11948
12019
|
}
|
|
11949
12020
|
else {
|
|
11950
|
-
feature.lastSyncDate = moment$
|
|
12021
|
+
feature.lastSyncDate = moment$4().toISOString();
|
|
11951
12022
|
}
|
|
11952
12023
|
this.saveOfflineFeature(feature);
|
|
11953
12024
|
};
|
|
@@ -12141,7 +12212,7 @@
|
|
|
12141
12212
|
if (!page || !page.title || !page.path)
|
|
12142
12213
|
throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
|
|
12143
12214
|
// Set time
|
|
12144
|
-
page.time = page.time || moment$
|
|
12215
|
+
page.time = page.time || moment$4();
|
|
12145
12216
|
// Clean the title (remove <small> tags)
|
|
12146
12217
|
if (!opts || opts.removeTitleSmallTag !== false) {
|
|
12147
12218
|
var tagIndex = page.title.indexOf('</small>');
|
|
@@ -12158,7 +12229,7 @@
|
|
|
12158
12229
|
};
|
|
12159
12230
|
return LocalSettingsService;
|
|
12160
12231
|
}(StartableService));
|
|
12161
|
-
LocalSettingsService.ɵprov =
|
|
12232
|
+
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
12233
|
LocalSettingsService.decorators = [
|
|
12163
12234
|
{ type: i0.Injectable, args: [{
|
|
12164
12235
|
providedIn: 'root',
|
|
@@ -13039,7 +13110,7 @@
|
|
|
13039
13110
|
};
|
|
13040
13111
|
return NetworkService;
|
|
13041
13112
|
}(StartableService));
|
|
13042
|
-
NetworkService.ɵprov =
|
|
13113
|
+
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
13114
|
NetworkService.decorators = [
|
|
13044
13115
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
13045
13116
|
];
|
|
@@ -13059,7 +13130,7 @@
|
|
|
13059
13130
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] }
|
|
13060
13131
|
]; };
|
|
13061
13132
|
|
|
13062
|
-
var ErrorCodes = {
|
|
13133
|
+
var ErrorCodes$2 = {
|
|
13063
13134
|
UNKNOWN_ERROR: 0,
|
|
13064
13135
|
LOAD_ACCOUNT_ERROR: 1,
|
|
13065
13136
|
BAD_PASSWORD: 2,
|
|
@@ -13476,7 +13547,7 @@
|
|
|
13476
13547
|
case 13:
|
|
13477
13548
|
err_1 = _b.sent();
|
|
13478
13549
|
console.error(err_1);
|
|
13479
|
-
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
|
|
13550
|
+
throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err_1 };
|
|
13480
13551
|
case 14:
|
|
13481
13552
|
// Emit update event
|
|
13482
13553
|
if (!opts || opts.emitEvent !== false) {
|
|
@@ -14253,7 +14324,7 @@
|
|
|
14253
14324
|
}(StartableService));
|
|
14254
14325
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
14255
14326
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
14256
|
-
EntitiesStorage.ɵprov =
|
|
14327
|
+
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
14328
|
EntitiesStorage.decorators = [
|
|
14258
14329
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
14259
14330
|
];
|
|
@@ -14409,10 +14480,10 @@
|
|
|
14409
14480
|
function referentialsToString(values, properties, separator) {
|
|
14410
14481
|
return (values || []).map(function (v) { return referentialToString(v, properties); }).join(separator || ', ');
|
|
14411
14482
|
}
|
|
14412
|
-
var ɵ0$
|
|
14483
|
+
var ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
14413
14484
|
var StatusList = Object.freeze([
|
|
14414
14485
|
{
|
|
14415
|
-
id: ɵ0$
|
|
14486
|
+
id: ɵ0$2,
|
|
14416
14487
|
icon: 'checkmark',
|
|
14417
14488
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
14418
14489
|
},
|
|
@@ -14715,7 +14786,7 @@
|
|
|
14715
14786
|
(data.lastName || '')) || '';
|
|
14716
14787
|
}
|
|
14717
14788
|
|
|
14718
|
-
var uuidv4
|
|
14789
|
+
var uuidv4 = uuidv4Imported__namespace;
|
|
14719
14790
|
var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
14720
14791
|
var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
14721
14792
|
/**
|
|
@@ -14759,7 +14830,7 @@
|
|
|
14759
14830
|
// Skip if not tracked
|
|
14760
14831
|
if (!context || !context.tracked)
|
|
14761
14832
|
return forward(operation);
|
|
14762
|
-
var id = context.serializationKey || uuidv4
|
|
14833
|
+
var id = context.serializationKey || uuidv4();
|
|
14763
14834
|
console.debug("[apollo-tracker-link] Watching tracked query {" + operation.operationName + "#" + id + "}");
|
|
14764
14835
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
14765
14836
|
var cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -15333,7 +15404,7 @@
|
|
|
15333
15404
|
case 1:
|
|
15334
15405
|
_a.sent();
|
|
15335
15406
|
console.info('[graphql] Starting graphql...');
|
|
15336
|
-
mobile =
|
|
15407
|
+
mobile = isMobile(window);
|
|
15337
15408
|
enableTrackMutationQueries = !mobile;
|
|
15338
15409
|
peer = this.network.peer;
|
|
15339
15410
|
if (!peer)
|
|
@@ -15390,14 +15461,14 @@
|
|
|
15390
15461
|
mutationLinks = void 0;
|
|
15391
15462
|
// Add queue to store tracked queries, when offline
|
|
15392
15463
|
if (enableTrackMutationQueries) {
|
|
15393
|
-
serializingLink = new SerializingLink__default[
|
|
15464
|
+
serializingLink = new SerializingLink__default["default"]();
|
|
15394
15465
|
trackerLink = createTrackerLink({
|
|
15395
15466
|
storage: storage,
|
|
15396
15467
|
onNetworkStatusChange: this._networkStatusChanged$,
|
|
15397
15468
|
debounce: 1000,
|
|
15398
15469
|
debug: true
|
|
15399
15470
|
});
|
|
15400
|
-
queueLink_1 = new QueueLink__default[
|
|
15471
|
+
queueLink_1 = new QueueLink__default["default"]();
|
|
15401
15472
|
this.registerSubscription(this._networkStatusChanged$
|
|
15402
15473
|
.subscribe(function (type) {
|
|
15403
15474
|
// Network is offline: start buffering into queue
|
|
@@ -15412,7 +15483,7 @@
|
|
|
15412
15483
|
}
|
|
15413
15484
|
}));
|
|
15414
15485
|
mutationLinks = [
|
|
15415
|
-
loggerLink__default[
|
|
15486
|
+
loggerLink__default["default"],
|
|
15416
15487
|
queueLink_1,
|
|
15417
15488
|
trackerLink,
|
|
15418
15489
|
queueLink_1,
|
|
@@ -15519,7 +15590,7 @@
|
|
|
15519
15590
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
15520
15591
|
|| this.toAppError(err.networkError)
|
|
15521
15592
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
15522
|
-
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
15593
|
+
|| this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
|
|
15523
15594
|
// If graphQL: try to convert the first error found
|
|
15524
15595
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
15525
15596
|
|| this.toAppError(err)
|
|
@@ -15527,7 +15598,7 @@
|
|
|
15527
15598
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
15528
15599
|
|| err;
|
|
15529
15600
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
15530
|
-
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
15601
|
+
if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
15531
15602
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
15532
15603
|
this.onNetworkError.next(error);
|
|
15533
15604
|
}
|
|
@@ -15563,7 +15634,7 @@
|
|
|
15563
15634
|
return 'ERROR.UNAUTHORIZED';
|
|
15564
15635
|
case ServerErrorCodes.FORBIDDEN:
|
|
15565
15636
|
return 'ERROR.FORBIDDEN';
|
|
15566
|
-
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
15637
|
+
case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
|
|
15567
15638
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
15568
15639
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
15569
15640
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -15595,7 +15666,7 @@
|
|
|
15595
15666
|
};
|
|
15596
15667
|
return GraphqlService;
|
|
15597
15668
|
}(StartableService));
|
|
15598
|
-
GraphqlService.ɵprov =
|
|
15669
|
+
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
15670
|
GraphqlService.decorators = [
|
|
15600
15671
|
{ type: i0.Injectable, args: [{
|
|
15601
15672
|
providedIn: 'root'
|
|
@@ -15612,7 +15683,7 @@
|
|
|
15612
15683
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
15613
15684
|
]; };
|
|
15614
15685
|
|
|
15615
|
-
var sha256
|
|
15686
|
+
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
15616
15687
|
var BaseGraphqlServiceOptions = /** @class */ (function () {
|
|
15617
15688
|
function BaseGraphqlServiceOptions() {
|
|
15618
15689
|
}
|
|
@@ -15782,8 +15853,8 @@
|
|
|
15782
15853
|
};
|
|
15783
15854
|
/* -- protected methods -- */
|
|
15784
15855
|
BaseGraphqlService.prototype.computeMutableWatchQueryId = function (opts) {
|
|
15785
|
-
var queryName = opts.queryName || sha256
|
|
15786
|
-
var variablesKey = opts.variables && sha256
|
|
15856
|
+
var queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
15857
|
+
var variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
15787
15858
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
15788
15859
|
};
|
|
15789
15860
|
BaseGraphqlService.prototype.findMutableWatchQueries = function (opts) {
|
|
@@ -15856,19 +15927,19 @@
|
|
|
15856
15927
|
/* ------------------------------------
|
|
15857
15928
|
* GraphQL queries
|
|
15858
15929
|
* ------------------------------------*/
|
|
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 }"])))
|
|
15930
|
+
var Fragments$1 = {
|
|
15931
|
+
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 }"]))),
|
|
15932
|
+
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
15933
|
};
|
|
15863
15934
|
// 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);
|
|
15935
|
+
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
15936
|
// 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"])));
|
|
15937
|
+
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
15938
|
// Save (create or update) account mutation
|
|
15868
15939
|
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)
|
|
15940
|
+
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),
|
|
15941
|
+
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),
|
|
15942
|
+
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
15943
|
};
|
|
15873
15944
|
// Sent confirmation email
|
|
15874
15945
|
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 +16307,7 @@
|
|
|
16236
16307
|
error_3 = _b.sent();
|
|
16237
16308
|
console.error(error_3);
|
|
16238
16309
|
this.resetData();
|
|
16239
|
-
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
16310
|
+
throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
16240
16311
|
case 4:
|
|
16241
16312
|
// Store pubkey+keypair
|
|
16242
16313
|
this._cache.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -16272,7 +16343,7 @@
|
|
|
16272
16343
|
return [3 /*break*/, 18];
|
|
16273
16344
|
case 11:
|
|
16274
16345
|
err_1 = _b.sent();
|
|
16275
|
-
if (!(err_1 && +(err_1.code) === ErrorCodes.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
|
|
16346
|
+
if (!(err_1 && +(err_1.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR)) return [3 /*break*/, 17];
|
|
16276
16347
|
if (!(data.username.indexOf('@') !== -1)) return [3 /*break*/, 16];
|
|
16277
16348
|
isEmailExists = void 0;
|
|
16278
16349
|
_b.label = 12;
|
|
@@ -16288,12 +16359,12 @@
|
|
|
16288
16359
|
case 15:
|
|
16289
16360
|
// Email not exists (no account)
|
|
16290
16361
|
if (!isEmailExists) {
|
|
16291
|
-
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
16362
|
+
throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
16292
16363
|
}
|
|
16293
16364
|
_b.label = 16;
|
|
16294
16365
|
case 16:
|
|
16295
16366
|
// Email exists, so error = 'bad password'
|
|
16296
|
-
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
16367
|
+
throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
16297
16368
|
case 17: throw err_1; // resend the first error
|
|
16298
16369
|
case 18:
|
|
16299
16370
|
_b.trys.push([18, 20, , 21]);
|
|
@@ -16489,8 +16560,8 @@
|
|
|
16489
16560
|
_b.label = 3;
|
|
16490
16561
|
case 3: return [3 /*break*/, 6];
|
|
16491
16562
|
case 4: return [4 /*yield*/, this.graphql.query({
|
|
16492
|
-
query: LoadQuery,
|
|
16493
|
-
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
16563
|
+
query: LoadQuery$1,
|
|
16564
|
+
error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
16494
16565
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
16495
16566
|
})];
|
|
16496
16567
|
case 5:
|
|
@@ -16528,7 +16599,7 @@
|
|
|
16528
16599
|
case 1:
|
|
16529
16600
|
isEmailExists = _b.sent();
|
|
16530
16601
|
if (isEmailExists) {
|
|
16531
|
-
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
16602
|
+
throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
16532
16603
|
}
|
|
16533
16604
|
return [2 /*return*/];
|
|
16534
16605
|
}
|
|
@@ -16578,7 +16649,7 @@
|
|
|
16578
16649
|
locale: locale
|
|
16579
16650
|
},
|
|
16580
16651
|
error: {
|
|
16581
|
-
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
16652
|
+
code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
16582
16653
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
16583
16654
|
}
|
|
16584
16655
|
})];
|
|
@@ -16601,7 +16672,7 @@
|
|
|
16601
16672
|
code: code
|
|
16602
16673
|
},
|
|
16603
16674
|
error: {
|
|
16604
|
-
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
16675
|
+
code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
|
|
16605
16676
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
16606
16677
|
}
|
|
16607
16678
|
})];
|
|
@@ -16701,7 +16772,7 @@
|
|
|
16701
16772
|
throw error_7;
|
|
16702
16773
|
console.error(error_7);
|
|
16703
16774
|
throw {
|
|
16704
|
-
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
16775
|
+
code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
|
|
16705
16776
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
16706
16777
|
};
|
|
16707
16778
|
case 6: return [2 /*return*/];
|
|
@@ -16912,7 +16983,7 @@
|
|
|
16912
16983
|
case 1:
|
|
16913
16984
|
existingAccount = _b.sent();
|
|
16914
16985
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
16915
|
-
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
16986
|
+
throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
16916
16987
|
}
|
|
16917
16988
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
16918
16989
|
_b.label = 2;
|
|
@@ -16924,7 +16995,7 @@
|
|
|
16924
16995
|
mutation: isNew ? AccountMutations.create : AccountMutations.save,
|
|
16925
16996
|
variables: { data: json },
|
|
16926
16997
|
error: {
|
|
16927
|
-
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
16998
|
+
code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
|
|
16928
16999
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
16929
17000
|
}
|
|
16930
17001
|
})];
|
|
@@ -16958,7 +17029,7 @@
|
|
|
16958
17029
|
mutation: AccountMutations.saveSettings,
|
|
16959
17030
|
variables: { data: json },
|
|
16960
17031
|
error: {
|
|
16961
|
-
code: ErrorCodes.SAVE_SETTINGS_ERROR,
|
|
17032
|
+
code: ErrorCodes$2.SAVE_SETTINGS_ERROR,
|
|
16962
17033
|
message: 'ERROR.SAVE_SETTINGS_ERROR'
|
|
16963
17034
|
}
|
|
16964
17035
|
})];
|
|
@@ -16989,7 +17060,7 @@
|
|
|
16989
17060
|
if (counter > 4) {
|
|
16990
17061
|
if (this._debug)
|
|
16991
17062
|
console.debug("[account] Failed to authentication on pod (after " + counter + " attempts)");
|
|
16992
|
-
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
17063
|
+
throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
16993
17064
|
}
|
|
16994
17065
|
if (!token) return [3 /*break*/, 2];
|
|
16995
17066
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -16998,7 +17069,7 @@
|
|
|
16998
17069
|
token: token
|
|
16999
17070
|
},
|
|
17000
17071
|
error: {
|
|
17001
|
-
code: ErrorCodes.UNAUTHORIZED,
|
|
17072
|
+
code: ErrorCodes$2.UNAUTHORIZED,
|
|
17002
17073
|
message: 'ERROR.UNAUTHORIZED'
|
|
17003
17074
|
},
|
|
17004
17075
|
fetchPolicy: 'no-cache'
|
|
@@ -17015,7 +17086,7 @@
|
|
|
17015
17086
|
_b.label = 2;
|
|
17016
17087
|
case 2:
|
|
17017
17088
|
challengeError = {
|
|
17018
|
-
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
17089
|
+
code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
|
|
17019
17090
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
17020
17091
|
};
|
|
17021
17092
|
return [4 /*yield*/, this.graphql.query({
|
|
@@ -17102,7 +17173,7 @@
|
|
|
17102
17173
|
query: AccountSubscriptions.listenChanges,
|
|
17103
17174
|
variables: variables,
|
|
17104
17175
|
error: {
|
|
17105
|
-
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
17176
|
+
code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
|
|
17106
17177
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
|
|
17107
17178
|
}
|
|
17108
17179
|
}).pipe(operators.map(function (_b) {
|
|
@@ -17135,7 +17206,7 @@
|
|
|
17135
17206
|
};
|
|
17136
17207
|
return AccountService;
|
|
17137
17208
|
}(BaseGraphqlService));
|
|
17138
|
-
AccountService.ɵprov =
|
|
17209
|
+
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
17210
|
AccountService.decorators = [
|
|
17140
17211
|
{ type: i0.Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
|
|
17141
17212
|
];
|
|
@@ -17150,7 +17221,7 @@
|
|
|
17150
17221
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] },
|
|
17151
17222
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
17152
17223
|
]; };
|
|
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;
|
|
17224
|
+
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
17225
|
|
|
17155
17226
|
var Software_1, Configuration_1;
|
|
17156
17227
|
// @dynamic
|
|
@@ -17408,13 +17479,13 @@
|
|
|
17408
17479
|
/* ------------------------------------
|
|
17409
17480
|
* GraphQL queries
|
|
17410
17481
|
* ------------------------------------*/
|
|
17411
|
-
var Fragments
|
|
17412
|
-
config: core.gql(templateObject_1$
|
|
17482
|
+
var Fragments = {
|
|
17483
|
+
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
17484
|
};
|
|
17414
|
-
var LoadQuery
|
|
17485
|
+
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
17486
|
// Save (create or update) account mutation
|
|
17416
|
-
var SaveMutation = core.gql(templateObject_3$
|
|
17417
|
-
var ClearCache = core.gql(templateObject_4$
|
|
17487
|
+
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);
|
|
17488
|
+
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
17489
|
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
17490
|
var APP_CONFIG_OPTIONS = new i0.InjectionToken('defaultOptions');
|
|
17420
17491
|
var ConfigService = /** @class */ (function (_super) {
|
|
@@ -17474,12 +17545,12 @@
|
|
|
17474
17545
|
case 0:
|
|
17475
17546
|
now = Date.now();
|
|
17476
17547
|
console.debug('[config] Loading Pod configuration...');
|
|
17477
|
-
query = opts && opts.query || LoadQuery
|
|
17548
|
+
query = opts && opts.query || LoadQuery;
|
|
17478
17549
|
variables = opts && opts.variables || undefined;
|
|
17479
17550
|
return [4 /*yield*/, this.graphql.query({
|
|
17480
17551
|
query: query,
|
|
17481
17552
|
variables: variables,
|
|
17482
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17553
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17483
17554
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
17484
17555
|
})];
|
|
17485
17556
|
case 1:
|
|
@@ -17521,7 +17592,7 @@
|
|
|
17521
17592
|
data: json
|
|
17522
17593
|
},
|
|
17523
17594
|
error: {
|
|
17524
|
-
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
17595
|
+
code: ErrorCodes$2.SAVE_CONFIG_ERROR,
|
|
17525
17596
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
17526
17597
|
}
|
|
17527
17598
|
})];
|
|
@@ -17556,7 +17627,7 @@
|
|
|
17556
17627
|
return [4 /*yield*/, this.graphql.query({
|
|
17557
17628
|
query: CacheStatistics,
|
|
17558
17629
|
variables: null,
|
|
17559
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17630
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17560
17631
|
fetchPolicy: 'network-only'
|
|
17561
17632
|
})];
|
|
17562
17633
|
case 1:
|
|
@@ -17580,7 +17651,7 @@
|
|
|
17580
17651
|
return [4 /*yield*/, this.graphql.query({
|
|
17581
17652
|
query: ClearCache,
|
|
17582
17653
|
variables: variables,
|
|
17583
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17654
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
17584
17655
|
fetchPolicy: 'no-cache'
|
|
17585
17656
|
})];
|
|
17586
17657
|
case 1:
|
|
@@ -17696,7 +17767,7 @@
|
|
|
17696
17767
|
return [3 /*break*/, 8];
|
|
17697
17768
|
case 2:
|
|
17698
17769
|
now = this._debug && Date.now();
|
|
17699
|
-
if (!(this.network.online &&
|
|
17770
|
+
if (!(this.network.online && isMobile(window))) return [3 /*break*/, 6];
|
|
17700
17771
|
jobs_1 = [];
|
|
17701
17772
|
// Download logos
|
|
17702
17773
|
if (data.largeLogo && data.largeLogo.startsWith('http')) {
|
|
@@ -17780,7 +17851,7 @@
|
|
|
17780
17851
|
};
|
|
17781
17852
|
return ConfigService;
|
|
17782
17853
|
}(BaseGraphqlService));
|
|
17783
|
-
ConfigService.ɵprov =
|
|
17854
|
+
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
17855
|
ConfigService.decorators = [
|
|
17785
17856
|
{ type: i0.Injectable, args: [{
|
|
17786
17857
|
providedIn: 'root',
|
|
@@ -17799,9 +17870,9 @@
|
|
|
17799
17870
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
|
|
17800
17871
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
17801
17872
|
]; };
|
|
17802
|
-
var templateObject_1$
|
|
17873
|
+
var templateObject_1$3, templateObject_2$3, templateObject_3$2, templateObject_4$2, templateObject_5$1;
|
|
17803
17874
|
|
|
17804
|
-
var moment$
|
|
17875
|
+
var moment$3 = momentImported__namespace;
|
|
17805
17876
|
var AndroidOsEnvironment = Object.freeze({
|
|
17806
17877
|
DIRECTORY_DOWNLOADS: 'Download',
|
|
17807
17878
|
DIRECTORY_DOWNLOADS_OLD: 'Downloads',
|
|
@@ -17838,15 +17909,16 @@
|
|
|
17838
17909
|
PlatformService.prototype.is = function (platformName) {
|
|
17839
17910
|
switch (platformName) {
|
|
17840
17911
|
case 'mobile':
|
|
17841
|
-
|
|
17842
|
-
|
|
17912
|
+
case 'mobileweb':
|
|
17913
|
+
// Exclude Windows touch screens - see SUMARIS issue #323
|
|
17914
|
+
return this.platform.is(platformName) && !isWindows(window);
|
|
17843
17915
|
default:
|
|
17844
17916
|
return this.platform.is(platformName);
|
|
17845
17917
|
}
|
|
17846
17918
|
};
|
|
17847
17919
|
Object.defineProperty(PlatformService.prototype, "mobile", {
|
|
17848
17920
|
get: function () {
|
|
17849
|
-
return isNotNil(this._mobile) ? this._mobile :
|
|
17921
|
+
return isNotNil(this._mobile) ? this._mobile : this.is('mobile');
|
|
17850
17922
|
},
|
|
17851
17923
|
enumerable: false,
|
|
17852
17924
|
configurable: true
|
|
@@ -17864,18 +17936,18 @@
|
|
|
17864
17936
|
PlatformService.prototype.isIOSCordova = function () {
|
|
17865
17937
|
return this._ios && this._cordova || false;
|
|
17866
17938
|
};
|
|
17867
|
-
PlatformService.prototype.isWeb = function () {
|
|
17868
|
-
return !this._cordova || (!this._android && !this._ios);
|
|
17869
|
-
};
|
|
17870
17939
|
PlatformService.prototype.isApp = function () {
|
|
17871
|
-
return this.
|
|
17940
|
+
return this.isAndroidCordova() || this.isIOSCordova();
|
|
17941
|
+
};
|
|
17942
|
+
PlatformService.prototype.isWeb = function () {
|
|
17943
|
+
return !this.isApp();
|
|
17872
17944
|
};
|
|
17873
17945
|
PlatformService.prototype.isMobileWeb = function () {
|
|
17874
|
-
return
|
|
17946
|
+
return this.mobile && this.isWeb();
|
|
17875
17947
|
};
|
|
17876
17948
|
Object.defineProperty(PlatformService.prototype, "canDownload", {
|
|
17877
17949
|
get: function () {
|
|
17878
|
-
return
|
|
17950
|
+
return this.downloader && this.isAndroidCordova();
|
|
17879
17951
|
},
|
|
17880
17952
|
enumerable: false,
|
|
17881
17953
|
configurable: true
|
|
@@ -18071,16 +18143,16 @@
|
|
|
18071
18143
|
}
|
|
18072
18144
|
// config moment lib
|
|
18073
18145
|
try {
|
|
18074
|
-
moment$
|
|
18146
|
+
moment$3.locale(event.lang);
|
|
18075
18147
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
18076
18148
|
}
|
|
18077
18149
|
// If error, fallback to en
|
|
18078
18150
|
catch (err) {
|
|
18079
|
-
moment$
|
|
18151
|
+
moment$3.locale('en');
|
|
18080
18152
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
18081
18153
|
}
|
|
18082
18154
|
// Config date adapter
|
|
18083
|
-
_this.dateAdapter.setLocale(moment$
|
|
18155
|
+
_this.dateAdapter.setLocale(moment$3.locale());
|
|
18084
18156
|
}
|
|
18085
18157
|
});
|
|
18086
18158
|
this.settings.onChange.subscribe(function (data) {
|
|
@@ -18333,7 +18405,7 @@
|
|
|
18333
18405
|
};
|
|
18334
18406
|
return PlatformService;
|
|
18335
18407
|
}(StartableService));
|
|
18336
|
-
PlatformService.ɵprov =
|
|
18408
|
+
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
18409
|
PlatformService.decorators = [
|
|
18338
18410
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
18339
18411
|
];
|
|
@@ -18431,7 +18503,7 @@
|
|
|
18431
18503
|
};
|
|
18432
18504
|
return MatStepperI18n;
|
|
18433
18505
|
}(stepper.MatStepperIntl));
|
|
18434
|
-
MatStepperI18n.ɵprov =
|
|
18506
|
+
MatStepperI18n.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0__namespace.ɵɵinject(i1__namespace$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
18435
18507
|
MatStepperI18n.decorators = [
|
|
18436
18508
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
18437
18509
|
];
|
|
@@ -20644,7 +20716,7 @@
|
|
|
20644
20716
|
return 1;
|
|
20645
20717
|
}
|
|
20646
20718
|
}
|
|
20647
|
-
var ɵ0$
|
|
20719
|
+
var ɵ0$1 = function (defaultStateSize) { return [
|
|
20648
20720
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
20649
20721
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
20650
20722
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -20652,7 +20724,7 @@
|
|
|
20652
20724
|
var SCALE_OPTIONS_DEFAULT = {
|
|
20653
20725
|
startColor: rgbArrayMap.red,
|
|
20654
20726
|
startStates: [0, 2, 3],
|
|
20655
|
-
startStepsFn: ɵ0$
|
|
20727
|
+
startStepsFn: ɵ0$1
|
|
20656
20728
|
};
|
|
20657
20729
|
/**
|
|
20658
20730
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -21583,7 +21655,7 @@
|
|
|
21583
21655
|
};
|
|
21584
21656
|
return UserSettingsValidatorService;
|
|
21585
21657
|
}(AppValidatorService));
|
|
21586
|
-
UserSettingsValidatorService.ɵprov =
|
|
21658
|
+
UserSettingsValidatorService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0__namespace.ɵɵinject(i1__namespace$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
21587
21659
|
UserSettingsValidatorService.decorators = [
|
|
21588
21660
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
21589
21661
|
];
|
|
@@ -21631,7 +21703,7 @@
|
|
|
21631
21703
|
};
|
|
21632
21704
|
return AccountValidatorService;
|
|
21633
21705
|
}(AppValidatorService));
|
|
21634
|
-
AccountValidatorService.ɵprov =
|
|
21706
|
+
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
21707
|
AccountValidatorService.decorators = [
|
|
21636
21708
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
21637
21709
|
];
|
|
@@ -22262,7 +22334,7 @@
|
|
|
22262
22334
|
};
|
|
22263
22335
|
return LocalSettingsValidatorService;
|
|
22264
22336
|
}(AppValidatorService));
|
|
22265
|
-
LocalSettingsValidatorService.ɵprov =
|
|
22337
|
+
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
22338
|
LocalSettingsValidatorService.decorators = [
|
|
22267
22339
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
22268
22340
|
];
|
|
@@ -23042,7 +23114,7 @@
|
|
|
23042
23114
|
};
|
|
23043
23115
|
return IsOnFieldModePipe;
|
|
23044
23116
|
}());
|
|
23045
|
-
IsOnFieldModePipe.ɵprov =
|
|
23117
|
+
IsOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
23046
23118
|
IsOnFieldModePipe.decorators = [
|
|
23047
23119
|
{ type: i0.Pipe, args: [{
|
|
23048
23120
|
name: 'isOnField'
|
|
@@ -23057,7 +23129,7 @@
|
|
|
23057
23129
|
};
|
|
23058
23130
|
return IsNotOnFieldModePipe;
|
|
23059
23131
|
}());
|
|
23060
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
23132
|
+
IsNotOnFieldModePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
23061
23133
|
IsNotOnFieldModePipe.decorators = [
|
|
23062
23134
|
{ type: i0.Pipe, args: [{
|
|
23063
23135
|
name: 'isNotOnField'
|
|
@@ -23075,7 +23147,7 @@
|
|
|
23075
23147
|
};
|
|
23076
23148
|
return PersonToStringPipe;
|
|
23077
23149
|
}());
|
|
23078
|
-
PersonToStringPipe.ɵprov =
|
|
23150
|
+
PersonToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
23079
23151
|
PersonToStringPipe.decorators = [
|
|
23080
23152
|
{ type: i0.Pipe, args: [{
|
|
23081
23153
|
name: 'personToString'
|
|
@@ -23539,7 +23611,7 @@
|
|
|
23539
23611
|
};
|
|
23540
23612
|
return IsLoginAccountPipe;
|
|
23541
23613
|
}());
|
|
23542
|
-
IsLoginAccountPipe.ɵprov =
|
|
23614
|
+
IsLoginAccountPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
23543
23615
|
IsLoginAccountPipe.decorators = [
|
|
23544
23616
|
{ type: i0.Pipe, args: [{
|
|
23545
23617
|
name: 'isLogin'
|
|
@@ -23554,7 +23626,7 @@
|
|
|
23554
23626
|
};
|
|
23555
23627
|
return AccountToStringPipe;
|
|
23556
23628
|
}());
|
|
23557
|
-
AccountToStringPipe.ɵprov =
|
|
23629
|
+
AccountToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
23558
23630
|
AccountToStringPipe.decorators = [
|
|
23559
23631
|
{ type: i0.Pipe, args: [{
|
|
23560
23632
|
name: 'accountToString'
|
|
@@ -23572,7 +23644,7 @@
|
|
|
23572
23644
|
};
|
|
23573
23645
|
return DepartmentToStringPipe;
|
|
23574
23646
|
}());
|
|
23575
|
-
DepartmentToStringPipe.ɵprov =
|
|
23647
|
+
DepartmentToStringPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
23576
23648
|
DepartmentToStringPipe.decorators = [
|
|
23577
23649
|
{ type: i0.Pipe, args: [{
|
|
23578
23650
|
name: 'departmentToString'
|
|
@@ -23678,7 +23750,7 @@
|
|
|
23678
23750
|
};
|
|
23679
23751
|
return MenuService;
|
|
23680
23752
|
}());
|
|
23681
|
-
MenuService.ɵprov =
|
|
23753
|
+
MenuService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
23682
23754
|
MenuService.decorators = [
|
|
23683
23755
|
{ type: i0.Injectable, args: [{
|
|
23684
23756
|
providedIn: 'root'
|
|
@@ -24223,7 +24295,7 @@
|
|
|
24223
24295
|
};
|
|
24224
24296
|
return AuthGuardService;
|
|
24225
24297
|
}());
|
|
24226
|
-
AuthGuardService.ɵprov =
|
|
24298
|
+
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
24299
|
AuthGuardService.decorators = [
|
|
24228
24300
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
24229
24301
|
];
|
|
@@ -24268,7 +24340,7 @@
|
|
|
24268
24340
|
query: query,
|
|
24269
24341
|
variables: { id: id },
|
|
24270
24342
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
24271
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24343
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24272
24344
|
})
|
|
24273
24345
|
.pipe(operators.map(function (_b) {
|
|
24274
24346
|
var data = _b.data;
|
|
@@ -24290,7 +24362,7 @@
|
|
|
24290
24362
|
query: query,
|
|
24291
24363
|
variables: { id: id },
|
|
24292
24364
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
24293
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24365
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
24294
24366
|
})];
|
|
24295
24367
|
case 1:
|
|
24296
24368
|
data = (_b.sent()).data;
|
|
@@ -24326,7 +24398,7 @@
|
|
|
24326
24398
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
24327
24399
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
24328
24400
|
variables: variables,
|
|
24329
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
24401
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
24330
24402
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
24331
24403
|
})
|
|
24332
24404
|
.pipe(operators.map(function (_b) {
|
|
@@ -24368,7 +24440,7 @@
|
|
|
24368
24440
|
return [4 /*yield*/, this.graphql.query({
|
|
24369
24441
|
query: query,
|
|
24370
24442
|
variables: variables,
|
|
24371
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
24443
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
24372
24444
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
24373
24445
|
})];
|
|
24374
24446
|
case 1:
|
|
@@ -24416,7 +24488,7 @@
|
|
|
24416
24488
|
variables: {
|
|
24417
24489
|
filter: filter && filter.asPodObject()
|
|
24418
24490
|
},
|
|
24419
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
24491
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
24420
24492
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
24421
24493
|
})];
|
|
24422
24494
|
case 3:
|
|
@@ -24461,7 +24533,7 @@
|
|
|
24461
24533
|
variables: {
|
|
24462
24534
|
data: json
|
|
24463
24535
|
},
|
|
24464
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24536
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24465
24537
|
update: function (proxy, _b) {
|
|
24466
24538
|
var data = _b.data;
|
|
24467
24539
|
var savedEntities = data && data.data;
|
|
@@ -24528,7 +24600,7 @@
|
|
|
24528
24600
|
variables: {
|
|
24529
24601
|
data: json
|
|
24530
24602
|
},
|
|
24531
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24603
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
24532
24604
|
update: function (cache, _b) {
|
|
24533
24605
|
var data = _b.data;
|
|
24534
24606
|
// Update entity
|
|
@@ -24586,7 +24658,7 @@
|
|
|
24586
24658
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
24587
24659
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
24588
24660
|
variables: { ids: ids },
|
|
24589
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24661
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24590
24662
|
update: function (cache, res) {
|
|
24591
24663
|
// Remove from cache
|
|
24592
24664
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -24639,7 +24711,7 @@
|
|
|
24639
24711
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
24640
24712
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
24641
24713
|
variables: { id: id },
|
|
24642
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24714
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
24643
24715
|
update: function (proxy, res) {
|
|
24644
24716
|
// Remove from cache
|
|
24645
24717
|
if (_this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -24681,7 +24753,7 @@
|
|
|
24681
24753
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache',
|
|
24682
24754
|
variables: variables,
|
|
24683
24755
|
error: {
|
|
24684
|
-
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
24756
|
+
code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
|
|
24685
24757
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
24686
24758
|
}
|
|
24687
24759
|
})
|
|
@@ -24904,7 +24976,7 @@
|
|
|
24904
24976
|
if (this._debug)
|
|
24905
24977
|
invalidRows.forEach(function (row) { return AppTableUtils.logRowErrors(row, "[table-datasource] " + _this._logTypeName + " row #" + row.id); });
|
|
24906
24978
|
// Stop with an error
|
|
24907
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
24979
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
24908
24980
|
}
|
|
24909
24981
|
this._editingRowCount = 0;
|
|
24910
24982
|
data = void 0;
|
|
@@ -25924,14 +25996,14 @@
|
|
|
25924
25996
|
case 0:
|
|
25925
25997
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
25926
25998
|
if (this.readOnly) {
|
|
25927
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
25999
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
25928
26000
|
}
|
|
25929
26001
|
this.resetError();
|
|
25930
26002
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
25931
26003
|
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
26004
|
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
26005
|
if (!this.confirmEditCreate()) {
|
|
25934
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
26006
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
25935
26007
|
}
|
|
25936
26008
|
// Mark as saving
|
|
25937
26009
|
this.markAsSaving();
|
|
@@ -26088,7 +26160,7 @@
|
|
|
26088
26160
|
switch (_e.label) {
|
|
26089
26161
|
case 0:
|
|
26090
26162
|
if (this.readOnly) {
|
|
26091
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
26163
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
26092
26164
|
}
|
|
26093
26165
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
26094
26166
|
return [2 /*return*/, 0]; // SKip
|
|
@@ -27988,7 +28060,7 @@
|
|
|
27988
28060
|
case 8:
|
|
27989
28061
|
data = _c.sent();
|
|
27990
28062
|
if (!data)
|
|
27991
|
-
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
28063
|
+
throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
27992
28064
|
this._usageMode = this.computeUsageMode(data);
|
|
27993
28065
|
return [4 /*yield*/, this.onEntityLoaded(data, opts)];
|
|
27994
28066
|
case 9:
|
|
@@ -28780,10 +28852,10 @@
|
|
|
28780
28852
|
exports.UserEventFilter = __decorate([
|
|
28781
28853
|
EntityClass({ typename: 'UserEventVO' })
|
|
28782
28854
|
], 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$
|
|
28855
|
+
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);
|
|
28856
|
+
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);
|
|
28857
|
+
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"])));
|
|
28858
|
+
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
28859
|
var UserEventService = /** @class */ (function (_super) {
|
|
28788
28860
|
__extends(UserEventService, _super);
|
|
28789
28861
|
function UserEventService(graphql, accountService, network, translate, toastController, environment) {
|
|
@@ -29104,7 +29176,7 @@
|
|
|
29104
29176
|
};
|
|
29105
29177
|
return UserEventService;
|
|
29106
29178
|
}(BaseGraphqlService));
|
|
29107
|
-
UserEventService.ɵprov =
|
|
29179
|
+
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
29180
|
UserEventService.decorators = [
|
|
29109
29181
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29110
29182
|
];
|
|
@@ -29116,7 +29188,7 @@
|
|
|
29116
29188
|
{ type: i1$5.ToastController },
|
|
29117
29189
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
29118
29190
|
]; };
|
|
29119
|
-
var templateObject_1$
|
|
29191
|
+
var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1;
|
|
29120
29192
|
|
|
29121
29193
|
var ICONS_MAP = {
|
|
29122
29194
|
DEBUG_DATA: { matIcon: 'bug_report' },
|
|
@@ -29378,16 +29450,16 @@
|
|
|
29378
29450
|
], exports.PersonFilter);
|
|
29379
29451
|
|
|
29380
29452
|
var PersonFragments = {
|
|
29381
|
-
person: core.gql(templateObject_1
|
|
29453
|
+
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
29454
|
};
|
|
29383
29455
|
// Load persons query
|
|
29384
29456
|
var PersonQueries = {
|
|
29385
|
-
loadAll: core.gql(templateObject_2
|
|
29386
|
-
loadAllWithTotal: core.gql(templateObject_3
|
|
29457
|
+
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),
|
|
29458
|
+
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
29459
|
};
|
|
29388
29460
|
var PersonMutations = {
|
|
29389
|
-
saveAll: core.gql(templateObject_4
|
|
29390
|
-
deleteAll: core.gql(templateObject_5
|
|
29461
|
+
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),
|
|
29462
|
+
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
29463
|
};
|
|
29392
29464
|
var PersonService = /** @class */ (function (_super_1) {
|
|
29393
29465
|
__extends(PersonService, _super_1);
|
|
@@ -29508,7 +29580,7 @@
|
|
|
29508
29580
|
};
|
|
29509
29581
|
return PersonService;
|
|
29510
29582
|
}(BaseEntityService));
|
|
29511
|
-
PersonService.ɵprov =
|
|
29583
|
+
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
29584
|
PersonService.decorators = [
|
|
29513
29585
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29514
29586
|
];
|
|
@@ -29518,7 +29590,7 @@
|
|
|
29518
29590
|
{ type: NetworkService },
|
|
29519
29591
|
{ type: EntitiesStorage }
|
|
29520
29592
|
]; };
|
|
29521
|
-
var templateObject_1
|
|
29593
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
29522
29594
|
|
|
29523
29595
|
var PersonValidatorService = /** @class */ (function () {
|
|
29524
29596
|
function PersonValidatorService(formBuilder, accountValidatorService) {
|
|
@@ -29541,7 +29613,7 @@
|
|
|
29541
29613
|
};
|
|
29542
29614
|
return PersonValidatorService;
|
|
29543
29615
|
}());
|
|
29544
|
-
PersonValidatorService.ɵprov =
|
|
29616
|
+
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
29617
|
PersonValidatorService.decorators = [
|
|
29546
29618
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
29547
29619
|
];
|
|
@@ -29752,16 +29824,16 @@
|
|
|
29752
29824
|
];
|
|
29753
29825
|
AdminModule.ctorParameters = function () { return []; };
|
|
29754
29826
|
|
|
29755
|
-
var ɵ0
|
|
29827
|
+
var ɵ0 = {
|
|
29756
29828
|
profile: 'ADMIN'
|
|
29757
29829
|
};
|
|
29758
|
-
var routes = [
|
|
29830
|
+
var routes$5 = [
|
|
29759
29831
|
{
|
|
29760
29832
|
path: 'users',
|
|
29761
29833
|
pathMatch: 'full',
|
|
29762
29834
|
component: UsersPage,
|
|
29763
29835
|
canActivate: [AuthGuardService],
|
|
29764
|
-
data: ɵ0
|
|
29836
|
+
data: ɵ0
|
|
29765
29837
|
}
|
|
29766
29838
|
];
|
|
29767
29839
|
var AdminRoutingModule = /** @class */ (function () {
|
|
@@ -29774,36 +29846,36 @@
|
|
|
29774
29846
|
imports: [
|
|
29775
29847
|
SharedRoutingModule,
|
|
29776
29848
|
AdminModule,
|
|
29777
|
-
i3.RouterModule.forChild(routes)
|
|
29849
|
+
i3.RouterModule.forChild(routes$5)
|
|
29778
29850
|
],
|
|
29779
29851
|
exports: [i3.RouterModule]
|
|
29780
29852
|
},] }
|
|
29781
29853
|
];
|
|
29782
29854
|
|
|
29783
|
-
var ErrorCodes
|
|
29855
|
+
var ErrorCodes = {
|
|
29784
29856
|
LOAD_PERSONS_ERROR: 100,
|
|
29785
29857
|
SAVE_PERSONS_ERROR: 101,
|
|
29786
29858
|
DELETE_PERSONS_ERROR: 102,
|
|
29787
29859
|
};
|
|
29788
29860
|
|
|
29789
|
-
var EntityTestClass = /** @class */ (function () {
|
|
29861
|
+
var EntityTestClass$1 = /** @class */ (function () {
|
|
29790
29862
|
function EntityTestClass() {
|
|
29791
29863
|
}
|
|
29792
29864
|
return EntityTestClass;
|
|
29793
29865
|
}());
|
|
29794
|
-
var FAKE_ENTITIES = [
|
|
29866
|
+
var FAKE_ENTITIES$1 = [
|
|
29795
29867
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
29796
29868
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
29797
29869
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
29798
29870
|
];
|
|
29799
|
-
function deepCopy(values, size) {
|
|
29871
|
+
function deepCopy$1(values, size) {
|
|
29800
29872
|
if (isNil(size)) {
|
|
29801
|
-
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
29873
|
+
return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
|
|
29802
29874
|
}
|
|
29803
29875
|
var result = [];
|
|
29804
29876
|
var i = 1;
|
|
29805
29877
|
while (result.length < size) {
|
|
29806
|
-
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
29878
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
|
|
29807
29879
|
var name = entity.name + ' #' + i;
|
|
29808
29880
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
29809
29881
|
}));
|
|
@@ -29813,7 +29885,7 @@
|
|
|
29813
29885
|
var AutocompleteTestPage = /** @class */ (function () {
|
|
29814
29886
|
function AutocompleteTestPage(formBuilder) {
|
|
29815
29887
|
this.formBuilder = formBuilder;
|
|
29816
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
29888
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
29817
29889
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
29818
29890
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
29819
29891
|
this.memoryHide = false;
|
|
@@ -29824,6 +29896,7 @@
|
|
|
29824
29896
|
entity: [null, SharedValidators.entity],
|
|
29825
29897
|
missingEntity: [null, SharedValidators.entity],
|
|
29826
29898
|
disableEntity: [null, SharedValidators.entity],
|
|
29899
|
+
entities: [null, SharedFormArrayValidators.requiredArrayMinLength(1)],
|
|
29827
29900
|
});
|
|
29828
29901
|
this.form.get('disableEntity').disable();
|
|
29829
29902
|
}
|
|
@@ -29858,10 +29931,19 @@
|
|
|
29858
29931
|
});
|
|
29859
29932
|
// From items
|
|
29860
29933
|
this.autocompleteFields.add('entity-items-large', {
|
|
29861
|
-
items: FAKE_ENTITIES.slice(),
|
|
29934
|
+
items: FAKE_ENTITIES$1.slice(),
|
|
29862
29935
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
29863
29936
|
displayWith: this.entityToString
|
|
29864
29937
|
});
|
|
29938
|
+
// For mutliple value
|
|
29939
|
+
this.autocompleteFields.add('entities-items-filter', {
|
|
29940
|
+
service: {
|
|
29941
|
+
suggest: function (value, filter) { return _this.suggest(value, filter); }
|
|
29942
|
+
},
|
|
29943
|
+
attributes: ['label', 'name'],
|
|
29944
|
+
multiple: true
|
|
29945
|
+
//displayWith: this.entitiesToString
|
|
29946
|
+
});
|
|
29865
29947
|
this.loadData();
|
|
29866
29948
|
};
|
|
29867
29949
|
// Load the form with data
|
|
@@ -29871,12 +29953,13 @@
|
|
|
29871
29953
|
var _this = this;
|
|
29872
29954
|
return __generator(this, function (_a) {
|
|
29873
29955
|
data = {
|
|
29874
|
-
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
29956
|
+
entity: deepCopy$1(FAKE_ENTITIES$1)[0],
|
|
29875
29957
|
// This item is NOT in the items list => i should be displayed anyway
|
|
29876
29958
|
missingEntity: {
|
|
29877
29959
|
id: -1, label: '??', name: 'Missing item'
|
|
29878
29960
|
},
|
|
29879
|
-
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
29961
|
+
disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2],
|
|
29962
|
+
entities: deepCopy$1(FAKE_ENTITIES$1)
|
|
29880
29963
|
};
|
|
29881
29964
|
this.form.setValue(data);
|
|
29882
29965
|
// Load observables
|
|
@@ -29896,6 +29979,9 @@
|
|
|
29896
29979
|
AutocompleteTestPage.prototype.entityToString = function (item) {
|
|
29897
29980
|
return [item && item.label || undefined, item && item.name || undefined].filter(isNotNil).join(' - ');
|
|
29898
29981
|
};
|
|
29982
|
+
AutocompleteTestPage.prototype.entitiesToString = function (items) {
|
|
29983
|
+
return (items || []).map(this.entityToString).join(', ');
|
|
29984
|
+
};
|
|
29899
29985
|
AutocompleteTestPage.prototype.suggest = function (value, filter) {
|
|
29900
29986
|
return __awaiter(this, void 0, void 0, function () {
|
|
29901
29987
|
var res, total, nextOffset;
|
|
@@ -29949,9 +30035,10 @@
|
|
|
29949
30035
|
this.memoryTimer = null;
|
|
29950
30036
|
this.memoryHide = false;
|
|
29951
30037
|
};
|
|
29952
|
-
AutocompleteTestPage.prototype.updateFilter = function (fieldName) {
|
|
30038
|
+
AutocompleteTestPage.prototype.updateFilter = function (autocompleteField, fieldName) {
|
|
29953
30039
|
var filter = this.autocompleteFields.get(fieldName).filter || {};
|
|
29954
30040
|
filter.searchAttribute = (!filter || filter.searchAttribute !== 'name') ? 'name' : 'label';
|
|
30041
|
+
autocompleteField.reloadItems();
|
|
29955
30042
|
};
|
|
29956
30043
|
/* -- protected methods -- */
|
|
29957
30044
|
AutocompleteTestPage.prototype.stringify = function (value) {
|
|
@@ -29962,7 +30049,7 @@
|
|
|
29962
30049
|
AutocompleteTestPage.decorators = [
|
|
29963
30050
|
{ type: i0.Component, args: [{
|
|
29964
30051
|
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"
|
|
30052
|
+
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
30053
|
},] }
|
|
29967
30054
|
];
|
|
29968
30055
|
AutocompleteTestPage.ctorParameters = function () { return [
|
|
@@ -30041,13 +30128,13 @@
|
|
|
30041
30128
|
{ type: i1.FormBuilder }
|
|
30042
30129
|
]; };
|
|
30043
30130
|
|
|
30044
|
-
var moment$
|
|
30131
|
+
var moment$2 = momentImported__namespace;
|
|
30045
30132
|
var SwipeTestPage = /** @class */ (function () {
|
|
30046
30133
|
function SwipeTestPage(formBuilder, dateFormatPipe) {
|
|
30047
30134
|
this.formBuilder = formBuilder;
|
|
30048
30135
|
this.dateFormatPipe = dateFormatPipe;
|
|
30049
30136
|
this.$dates = new rxjs.BehaviorSubject(undefined);
|
|
30050
|
-
this._today = moment$
|
|
30137
|
+
this._today = moment$2().startOf('day');
|
|
30051
30138
|
this.form = formBuilder.group({
|
|
30052
30139
|
empty: [null, i1.Validators.required],
|
|
30053
30140
|
date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
|
|
@@ -30061,7 +30148,7 @@
|
|
|
30061
30148
|
var _this = this;
|
|
30062
30149
|
var dates = [];
|
|
30063
30150
|
for (var d = 0; d < 7; d++) {
|
|
30064
|
-
dates[d] = moment$
|
|
30151
|
+
dates[d] = moment$2(this._today).add(d - 3, 'day');
|
|
30065
30152
|
}
|
|
30066
30153
|
this.$dates.next(dates);
|
|
30067
30154
|
this.loadData();
|
|
@@ -30108,7 +30195,7 @@
|
|
|
30108
30195
|
{ type: DateFormatPipe }
|
|
30109
30196
|
]; };
|
|
30110
30197
|
|
|
30111
|
-
var moment$
|
|
30198
|
+
var moment$1 = momentImported__namespace;
|
|
30112
30199
|
var DateTimeTestPage = /** @class */ (function () {
|
|
30113
30200
|
function DateTimeTestPage(platform, formBuilder, cd) {
|
|
30114
30201
|
this.platform = platform;
|
|
@@ -30131,8 +30218,7 @@
|
|
|
30131
30218
|
disableControl.disable();
|
|
30132
30219
|
// Copy the 'enable' value, into the disable control
|
|
30133
30220
|
this.form.get('enable').valueChanges.subscribe(function (value) { return disableControl.setValue(value); });
|
|
30134
|
-
|
|
30135
|
-
this.showLogPanel = this.showLogPanel || mobile;
|
|
30221
|
+
this.showLogPanel = this.showLogPanel || isMobile(window);
|
|
30136
30222
|
}
|
|
30137
30223
|
DateTimeTestPage.prototype.ngOnInit = function () {
|
|
30138
30224
|
var _this = this;
|
|
@@ -30144,7 +30230,7 @@
|
|
|
30144
30230
|
var now, data;
|
|
30145
30231
|
var _this = this;
|
|
30146
30232
|
return __generator(this, function (_a) {
|
|
30147
|
-
now = moment$
|
|
30233
|
+
now = moment$1();
|
|
30148
30234
|
data = {
|
|
30149
30235
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
30150
30236
|
enable: toDateISOString(now),
|
|
@@ -30209,12 +30295,12 @@
|
|
|
30209
30295
|
{ type: i0.ChangeDetectorRef }
|
|
30210
30296
|
]; };
|
|
30211
30297
|
|
|
30212
|
-
var EntityTestClass
|
|
30298
|
+
var EntityTestClass = /** @class */ (function () {
|
|
30213
30299
|
function EntityTestClass() {
|
|
30214
30300
|
}
|
|
30215
30301
|
return EntityTestClass;
|
|
30216
30302
|
}());
|
|
30217
|
-
var FAKE_ENTITIES
|
|
30303
|
+
var FAKE_ENTITIES = [
|
|
30218
30304
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
30219
30305
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
30220
30306
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -30223,14 +30309,14 @@
|
|
|
30223
30309
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
30224
30310
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
30225
30311
|
];
|
|
30226
|
-
function deepCopy
|
|
30312
|
+
function deepCopy(values, size) {
|
|
30227
30313
|
if (isNil(size)) {
|
|
30228
|
-
return (values || FAKE_ENTITIES
|
|
30314
|
+
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
30229
30315
|
}
|
|
30230
30316
|
var result = [];
|
|
30231
30317
|
var i = 1;
|
|
30232
30318
|
while (result.length < size) {
|
|
30233
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
30319
|
+
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
30234
30320
|
var name = entity.name + ' #' + i;
|
|
30235
30321
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
30236
30322
|
}));
|
|
@@ -30240,7 +30326,7 @@
|
|
|
30240
30326
|
var ChipsTestPage = /** @class */ (function () {
|
|
30241
30327
|
function ChipsTestPage(formBuilder) {
|
|
30242
30328
|
this.formBuilder = formBuilder;
|
|
30243
|
-
this._items = deepCopy
|
|
30329
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
30244
30330
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
30245
30331
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
30246
30332
|
this.form = formBuilder.group({
|
|
@@ -30283,7 +30369,7 @@
|
|
|
30283
30369
|
var items, data;
|
|
30284
30370
|
var _this = this;
|
|
30285
30371
|
return __generator(this, function (_a) {
|
|
30286
|
-
items = deepCopy
|
|
30372
|
+
items = deepCopy(FAKE_ENTITIES);
|
|
30287
30373
|
data = {
|
|
30288
30374
|
entity: items.slice(0, 1),
|
|
30289
30375
|
entityInitial: items.slice(1, 2),
|
|
@@ -30420,10 +30506,9 @@
|
|
|
30420
30506
|
{ type: i1.FormBuilder }
|
|
30421
30507
|
]; };
|
|
30422
30508
|
|
|
30423
|
-
var moment
|
|
30509
|
+
var moment = momentImported__namespace;
|
|
30424
30510
|
var DateTestPage = /** @class */ (function () {
|
|
30425
|
-
function DateTestPage(
|
|
30426
|
-
this.platform = platform;
|
|
30511
|
+
function DateTestPage(formBuilder, cd) {
|
|
30427
30512
|
this.formBuilder = formBuilder;
|
|
30428
30513
|
this.cd = cd;
|
|
30429
30514
|
this.showLogPanel = true;
|
|
@@ -30445,8 +30530,7 @@
|
|
|
30445
30530
|
disableControl.disable();
|
|
30446
30531
|
// Copy the 'enable' value, into the disable control
|
|
30447
30532
|
this.form.get('enable').valueChanges.subscribe(function (value) { return disableControl.setValue(value); });
|
|
30448
|
-
|
|
30449
|
-
this.showLogPanel = this.showLogPanel || mobile;
|
|
30533
|
+
this.showLogPanel = this.showLogPanel || isMobile(window);
|
|
30450
30534
|
}
|
|
30451
30535
|
DateTestPage.prototype.ngOnInit = function () {
|
|
30452
30536
|
var _this = this;
|
|
@@ -30458,7 +30542,7 @@
|
|
|
30458
30542
|
var now, nowAtMahe, data;
|
|
30459
30543
|
var _this = this;
|
|
30460
30544
|
return __generator(this, function (_a) {
|
|
30461
|
-
now = moment
|
|
30545
|
+
now = moment();
|
|
30462
30546
|
nowAtMahe = now.clone().tz(this.timezone).startOf('day');
|
|
30463
30547
|
data = {
|
|
30464
30548
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
@@ -30523,7 +30607,6 @@
|
|
|
30523
30607
|
},] }
|
|
30524
30608
|
];
|
|
30525
30609
|
DateTestPage.ctorParameters = function () { return [
|
|
30526
|
-
{ type: i1$5.Platform },
|
|
30527
30610
|
{ type: i1.FormBuilder },
|
|
30528
30611
|
{ type: i0.ChangeDetectorRef }
|
|
30529
30612
|
]; };
|
|
@@ -30540,7 +30623,7 @@
|
|
|
30540
30623
|
{ label: 'Shared directives', divider: true },
|
|
30541
30624
|
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
|
|
30542
30625
|
];
|
|
30543
|
-
var routes$
|
|
30626
|
+
var routes$4 = [
|
|
30544
30627
|
{
|
|
30545
30628
|
path: '',
|
|
30546
30629
|
pathMatch: 'full',
|
|
@@ -30600,7 +30683,7 @@
|
|
|
30600
30683
|
i1.ReactiveFormsModule,
|
|
30601
30684
|
SharedMaterialModule,
|
|
30602
30685
|
i1$2.TranslateModule.forChild(),
|
|
30603
|
-
i3.RouterModule.forChild(routes$
|
|
30686
|
+
i3.RouterModule.forChild(routes$4)
|
|
30604
30687
|
],
|
|
30605
30688
|
declarations: [
|
|
30606
30689
|
DateTimeTestPage,
|
|
@@ -30662,7 +30745,7 @@
|
|
|
30662
30745
|
{ type: i1$2.TranslateService }
|
|
30663
30746
|
]; };
|
|
30664
30747
|
|
|
30665
|
-
var routes$
|
|
30748
|
+
var routes$3 = [
|
|
30666
30749
|
{
|
|
30667
30750
|
path: 'toast',
|
|
30668
30751
|
pathMatch: 'full',
|
|
@@ -30680,7 +30763,7 @@
|
|
|
30680
30763
|
i1$4.CommonModule,
|
|
30681
30764
|
i1$5.IonicModule,
|
|
30682
30765
|
i1$2.TranslateModule.forChild(),
|
|
30683
|
-
i3.RouterModule.forChild(routes$
|
|
30766
|
+
i3.RouterModule.forChild(routes$3)
|
|
30684
30767
|
],
|
|
30685
30768
|
declarations: [
|
|
30686
30769
|
ToastTestingPage
|
|
@@ -30760,7 +30843,7 @@
|
|
|
30760
30843
|
{ type: i1$5.PopoverController }
|
|
30761
30844
|
]; };
|
|
30762
30845
|
|
|
30763
|
-
var routes$
|
|
30846
|
+
var routes$2 = [
|
|
30764
30847
|
{
|
|
30765
30848
|
path: 'upload-file',
|
|
30766
30849
|
pathMatch: 'full',
|
|
@@ -30778,7 +30861,7 @@
|
|
|
30778
30861
|
i1$4.CommonModule,
|
|
30779
30862
|
i1$5.IonicModule,
|
|
30780
30863
|
i1$2.TranslateModule.forChild(),
|
|
30781
|
-
i3.RouterModule.forChild(routes$
|
|
30864
|
+
i3.RouterModule.forChild(routes$2)
|
|
30782
30865
|
],
|
|
30783
30866
|
declarations: [
|
|
30784
30867
|
UploadFileTestingPage
|
|
@@ -31202,7 +31285,7 @@
|
|
|
31202
31285
|
{ type: i1$5.PopoverController }
|
|
31203
31286
|
]; };
|
|
31204
31287
|
|
|
31205
|
-
var routes$
|
|
31288
|
+
var routes$1 = [
|
|
31206
31289
|
{
|
|
31207
31290
|
path: 'text-popover',
|
|
31208
31291
|
pathMatch: 'full',
|
|
@@ -31220,7 +31303,7 @@
|
|
|
31220
31303
|
i1$4.CommonModule,
|
|
31221
31304
|
i1$5.IonicModule,
|
|
31222
31305
|
i1$2.TranslateModule.forChild(),
|
|
31223
|
-
i3.RouterModule.forChild(routes$
|
|
31306
|
+
i3.RouterModule.forChild(routes$1)
|
|
31224
31307
|
],
|
|
31225
31308
|
declarations: [
|
|
31226
31309
|
TextPopoverTestingPage
|
|
@@ -31237,7 +31320,7 @@
|
|
|
31237
31320
|
{ label: 'Table', page: '/testing/core/table' },
|
|
31238
31321
|
{ label: 'Text popover', page: '/testing/core/text-popover' }
|
|
31239
31322
|
];
|
|
31240
|
-
var routes
|
|
31323
|
+
var routes = [
|
|
31241
31324
|
{
|
|
31242
31325
|
path: '',
|
|
31243
31326
|
pathMatch: 'full',
|
|
@@ -31264,7 +31347,7 @@
|
|
|
31264
31347
|
imports: [
|
|
31265
31348
|
i1$4.CommonModule,
|
|
31266
31349
|
i1$2.TranslateModule.forChild(),
|
|
31267
|
-
i3.RouterModule.forChild(routes
|
|
31350
|
+
i3.RouterModule.forChild(routes),
|
|
31268
31351
|
// Sub modules
|
|
31269
31352
|
TableTestingModule,
|
|
31270
31353
|
TextPopoverTestingModule
|
|
@@ -31387,7 +31470,7 @@
|
|
|
31387
31470
|
exports.EntityStore = EntityStore;
|
|
31388
31471
|
exports.EntityUtils = EntityUtils;
|
|
31389
31472
|
exports.Environment = Environment;
|
|
31390
|
-
exports.ErrorCodes = ErrorCodes
|
|
31473
|
+
exports.ErrorCodes = ErrorCodes;
|
|
31391
31474
|
exports.EvenPipe = EvenPipe;
|
|
31392
31475
|
exports.FileResponse = FileResponse;
|
|
31393
31476
|
exports.FileService = FileService;
|
|
@@ -31403,7 +31486,7 @@
|
|
|
31403
31486
|
exports.FormGetControlPipe = FormGetControlPipe;
|
|
31404
31487
|
exports.FormGetGroupPipe = FormGetGroupPipe;
|
|
31405
31488
|
exports.FormGetPipe = FormGetPipe;
|
|
31406
|
-
exports.Fragments = Fragments
|
|
31489
|
+
exports.Fragments = Fragments;
|
|
31407
31490
|
exports.GraphqlService = GraphqlService;
|
|
31408
31491
|
exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
|
|
31409
31492
|
exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;
|
|
@@ -31684,23 +31767,23 @@
|
|
|
31684
31767
|
exports.waitForTrue = waitForTrue;
|
|
31685
31768
|
exports.waitIdle = waitIdle;
|
|
31686
31769
|
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
|
|
31770
|
+
exports["ɵ0"] = ɵ0$c;
|
|
31771
|
+
exports["ɵa"] = CustomReuseStrategy;
|
|
31772
|
+
exports["ɵb"] = MatNumpadDomService;
|
|
31773
|
+
exports["ɵc"] = isFocusableElement;
|
|
31774
|
+
exports["ɵd"] = RegisterForm;
|
|
31775
|
+
exports["ɵe"] = AccountValidatorService;
|
|
31776
|
+
exports["ɵf"] = RegisterModal;
|
|
31777
|
+
exports["ɵg"] = UserSettingsValidatorService;
|
|
31778
|
+
exports["ɵh"] = LocalSettingsValidatorService;
|
|
31779
|
+
exports["ɵi"] = AppIconComponent;
|
|
31780
|
+
exports["ɵj"] = DateTestPage;
|
|
31781
|
+
exports["ɵk"] = NumpadTestPage;
|
|
31782
|
+
exports["ɵl"] = MatBadgeIconTestPage;
|
|
31783
|
+
exports["ɵm"] = ToastTestingModule;
|
|
31784
|
+
exports["ɵn"] = ToastTestingPage;
|
|
31702
31785
|
|
|
31703
31786
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
31704
31787
|
|
|
31705
|
-
}))
|
|
31788
|
+
}));
|
|
31706
31789
|
//# sourceMappingURL=sumaris-net.ngx-components.umd.js.map
|