@sumaris-net/ngx-components 1.23.9 → 1.23.12
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 +453 -430
- 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 +8 -0
- package/esm2015/src/app/admin/users/list/users.js +2 -2
- package/esm2015/src/app/core/form/editor.class.js +40 -37
- package/esm2015/src/app/core/services/account.service.js +2 -2
- package/esm2015/src/app/core/services/config.service.js +2 -2
- package/esm2015/src/app/core/services/network.service.js +6 -6
- package/esm2015/src/app/core/table/entities-table-datasource.class.js +2 -2
- package/esm2015/src/app/core/table/table.class.js +6 -4
- package/esm2015/src/app/core/table/testing/table.testing.js +2 -2
- package/esm2015/src/app/shared/directives/autofocus.directive.js +1 -1
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +2 -2
- package/esm2015/src/app/shared/services/entity-service.class.js +1 -10
- package/esm2015/src/app/shared/services/memory-entity-service.class.js +78 -32
- package/esm2015/src/app/shared/services/startable-service.class.js +21 -13
- package/esm2015/src/app/shared/upload-file/upload-file.component.js +1 -1
- package/fesm2015/sumaris-net.ngx-components.js +384 -348
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +3 -3
- package/src/app/core/form/editor.class.d.ts +2 -1
- package/src/app/core/services/network.service.d.ts +1 -1
- package/src/app/shared/services/entity-service.class.d.ts +0 -8
- package/src/app/shared/services/memory-entity-service.class.d.ts +14 -5
- package/src/app/shared/services/startable-service.class.d.ts +4 -2
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
2
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/cdk/table'), require('@angular/cdk/a11y'), require('@angular/cdk/overlay'), require('@angular/cdk/scrolling'), require('@angular/material/core'), require('@angular/material/table'), require('@angular/material/sort'), require('@angular/material/paginator'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/checkbox'), require('@angular/material/expansion'), require('@angular/material/toolbar'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/menu'), require('@angular/material/select'), require('@angular/material/card'), require('@angular/material/tabs'), require('@angular/material/stepper'), require('@angular/material/list'), require('@angular/material/button-toggle'), require('@angular/material/progress-spinner'), require('@angular/material/progress-bar'), require('@angular/material/radio'), require('@angular/material/badge'), require('@angular/material/slide-toggle'), require('@angular/material/dialog'), require('@angular/material/autocomplete'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@angular/animations'), require('@ngx-translate/core'), require('@ionic/angular'), require('moment'), require('@angular/material-moment-adapter'), require('@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'), require('moment-timezone')) :
|
|
3
3
|
typeof define === 'function' && define.amd ? define('@sumaris-net/ngx-components', ['exports', '@angular/core', '@angular/common', '@angular/cdk/table', '@angular/cdk/a11y', '@angular/cdk/overlay', '@angular/cdk/scrolling', '@angular/material/core', '@angular/material/table', '@angular/material/sort', '@angular/material/paginator', '@angular/material/form-field', '@angular/material/input', '@angular/material/checkbox', '@angular/material/expansion', '@angular/material/toolbar', '@angular/material/icon', '@angular/material/button', '@angular/material/menu', '@angular/material/select', '@angular/material/card', '@angular/material/tabs', '@angular/material/stepper', '@angular/material/list', '@angular/material/button-toggle', '@angular/material/progress-spinner', '@angular/material/progress-bar', '@angular/material/radio', '@angular/material/badge', '@angular/material/slide-toggle', '@angular/material/dialog', '@angular/material/autocomplete', '@angular/forms', 'rxjs', 'rxjs/operators', '@angular/animations', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', '@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', 'moment-timezone'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global[
|
|
5
|
-
}
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['sumaris-net'] = global['sumaris-net'] || {}, global['sumaris-net']['ngx-components'] = {}), global.ng.core, global.ng.common, global.ng.cdk.table, global.ng.cdk.a11y, global.ng.cdk.overlay, global.ng.cdk.scrolling, global.ng.material.core, global.ng.material.table, global.ng.material.sort, global.ng.material.paginator, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.expansion, global.ng.material.toolbar, global.ng.material.icon, global.ng.material.button, global.ng.material.menu, global.ng.material.select, global.ng.material.card, global.ng.material.tabs, global.ng.material.stepper, global.ng.material.list, global.ng.material.buttonToggle, global.ng.material.progressSpinner, global.ng.material.progressBar, global.ng.material.radio, global.ng.material.badge, global.ng.material.slideToggle, global.ng.material.dialog, global.ng.material.autocomplete, global.ng.forms, global.rxjs, global.rxjs.operators, global.ng.animations, global['ngx-translate'].core, global.ionic.angular, global.moment, global.ng.materialMomentAdapter, global['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'], null, null, null, global['moment-timezone']));
|
|
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, 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, tweetnaclUtil, scryptAsync, hammerjs, momentTZImported) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -15,45 +15,22 @@
|
|
|
15
15
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
16
|
Object.defineProperty(n, k, d.get ? d : {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () {
|
|
18
|
+
get: function () {
|
|
19
|
+
return e[k];
|
|
20
|
+
}
|
|
19
21
|
});
|
|
20
22
|
}
|
|
21
23
|
});
|
|
22
24
|
}
|
|
23
|
-
n[
|
|
25
|
+
n['default'] = e;
|
|
24
26
|
return Object.freeze(n);
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
|
|
28
|
-
var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$4);
|
|
29
|
-
var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$3);
|
|
30
|
-
var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2);
|
|
31
|
-
var i1__namespace$6 = /*#__PURE__*/_interopNamespace(i1);
|
|
32
|
-
var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$2);
|
|
33
|
-
var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$5);
|
|
34
29
|
var momentImported__namespace = /*#__PURE__*/_interopNamespace(momentImported);
|
|
35
|
-
var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
|
|
36
|
-
var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3);
|
|
37
|
-
var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$6);
|
|
38
|
-
var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$1);
|
|
39
|
-
var i2__namespace = /*#__PURE__*/_interopNamespace(i2$2);
|
|
40
|
-
var i3__namespace = /*#__PURE__*/_interopNamespace(i3$1);
|
|
41
|
-
var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
|
|
42
30
|
var uuidv4Imported__namespace = /*#__PURE__*/_interopNamespace(uuidv4Imported);
|
|
43
|
-
var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$2);
|
|
44
|
-
var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
|
|
45
|
-
var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
|
|
46
|
-
var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
|
|
47
|
-
var i2__namespace$4 = /*#__PURE__*/_interopNamespace(i2$4);
|
|
48
|
-
var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
|
|
49
31
|
var QueueLink__default = /*#__PURE__*/_interopDefaultLegacy(QueueLink);
|
|
50
32
|
var SerializingLink__default = /*#__PURE__*/_interopDefaultLegacy(SerializingLink);
|
|
51
33
|
var loggerLink__default = /*#__PURE__*/_interopDefaultLegacy(loggerLink);
|
|
52
|
-
var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$3);
|
|
53
|
-
var i14__namespace = /*#__PURE__*/_interopNamespace(i14);
|
|
54
|
-
var i15__namespace = /*#__PURE__*/_interopNamespace(i15);
|
|
55
|
-
var i17__namespace = /*#__PURE__*/_interopNamespace(i17);
|
|
56
|
-
var i18__namespace = /*#__PURE__*/_interopNamespace(i18);
|
|
57
34
|
var momentTZImported__namespace = /*#__PURE__*/_interopNamespace(momentTZImported);
|
|
58
35
|
|
|
59
36
|
var ENVIRONMENT = new i0.InjectionToken('ENV');
|
|
@@ -1343,7 +1320,7 @@
|
|
|
1343
1320
|
}
|
|
1344
1321
|
return false;
|
|
1345
1322
|
};
|
|
1346
|
-
var ɵ0
|
|
1323
|
+
var ɵ0 = isIpad;
|
|
1347
1324
|
var isIOS = function (win) { return testUserAgent(win, /iPhone|iPod/i) || isIpad(win); };
|
|
1348
1325
|
var isAndroid = function (win) { return testUserAgent(win, /android|sink/i); };
|
|
1349
1326
|
var isCordova = function (win) {
|
|
@@ -1482,14 +1459,14 @@
|
|
|
1482
1459
|
};
|
|
1483
1460
|
return MatAutocompleteFieldUtils;
|
|
1484
1461
|
}());
|
|
1485
|
-
var noop
|
|
1486
|
-
var ɵ0$
|
|
1462
|
+
var noop = function (_) { };
|
|
1463
|
+
var ɵ0$1 = noop;
|
|
1487
1464
|
var MatAutocompleteField = /** @class */ (function () {
|
|
1488
1465
|
function MatAutocompleteField(cd, formGroupDir) {
|
|
1489
1466
|
this.cd = cd;
|
|
1490
1467
|
this.formGroupDir = formGroupDir;
|
|
1491
|
-
this._onChangeCallback = noop
|
|
1492
|
-
this._onTouchedCallback = noop
|
|
1468
|
+
this._onChangeCallback = noop;
|
|
1469
|
+
this._onTouchedCallback = noop;
|
|
1493
1470
|
this.logPrefix = '[mat-autocomplete] ';
|
|
1494
1471
|
this.formControlName = null;
|
|
1495
1472
|
this.required = false;
|
|
@@ -2249,7 +2226,7 @@
|
|
|
2249
2226
|
{ type: i0.Component, args: [{
|
|
2250
2227
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
2251
2228
|
selector: 'mat-autocomplete-field',
|
|
2252
|
-
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 [appearance]=\"appearance\"\n [title]=\"displayValue\"\n class=\"mat-form-field-disabled\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\" >\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 [appearance]=\"appearance\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- Mobile or Multiple (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 <mat-option class=\"mat-select-searchbar\" *ngIf=\"showSearchBar\"\n [class.mat-select-searchbar-sticky]=\"stickySearchBar\"\n disabled>\n <ion-searchbar #ionSearchbar\n inputmode=\"search\"\n autocomplete=\"off\"\n animated=\"true\"\n showClearButton=\"true\"\n [debounce]=\"debounceTime\"\n (ionClear)=\"markAsLoading()\"\n (ionInput)=\"markAsLoading()\"\n (ionChange)=\"ionSearchBarChanged($event, $event.detail.value)\"\n [placeholder]=\"'COMMON.BTN_SEARCH'|translate\"\n ></ion-searchbar>\n </mat-option>\n\n <!-- Headers -->\n <ion-row class=\"mat-select-header column ion-no-padding\"\n [class.multiple]=\"multiple\"\n [class.mat-select-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\"></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 <mat-option *ngIf=\"itemCount as count\" class=\"mat-option-footer mat-autocomplete-footer ion-no-padding\" disabled>\n <ion-text class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </mat-option>\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=\"!mobile && !multiple\"\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",
|
|
2229
|
+
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 [appearance]=\"appearance\"\n [title]=\"displayValue\"\n class=\"mat-form-field-disabled\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\" >\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 [appearance]=\"appearance\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- Mobile or Multiple (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 <mat-option class=\"mat-select-searchbar\" *ngIf=\"showSearchBar\"\n [class.mat-select-searchbar-sticky]=\"stickySearchBar\"\n disabled>\n <ion-searchbar #ionSearchbar\n inputmode=\"search\"\n autocomplete=\"off\"\n animated=\"true\"\n showClearButton=\"true\"\n [debounce]=\"debounceTime\"\n (ionClear)=\"markAsLoading()\"\n (ionInput)=\"markAsLoading()\"\n (ionChange)=\"ionSearchBarChanged($event, $event.detail.value)\"\n [placeholder]=\"'COMMON.BTN_SEARCH'|translate\"\n ></ion-searchbar>\n </mat-option>\n\n <!-- Headers -->\n <ion-row class=\"mat-select-header column ion-no-padding\"\n [class.multiple]=\"multiple\"\n [class.mat-select-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\"></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 <mat-option *ngIf=\"itemCount as count\" class=\"mat-option-footer mat-autocomplete-footer ion-no-padding\" disabled>\n <ion-text class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </mat-option>\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 [title]=\"text.innerText\">\n <ion-text><span #text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></span></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=\"!mobile && !multiple\"\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",
|
|
2253
2230
|
providers: [{
|
|
2254
2231
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
2255
2232
|
multi: true,
|
|
@@ -2340,7 +2317,7 @@
|
|
|
2340
2317
|
};
|
|
2341
2318
|
return DateFormatPipe;
|
|
2342
2319
|
}());
|
|
2343
|
-
DateFormatPipe.ɵprov =
|
|
2320
|
+
DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1$1.MomentDateAdapter), i0.ɵɵinject(i1$2.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
2344
2321
|
DateFormatPipe.decorators = [
|
|
2345
2322
|
{ type: i0.Pipe, args: [{
|
|
2346
2323
|
name: 'dateFormat'
|
|
@@ -2352,7 +2329,7 @@
|
|
|
2352
2329
|
{ type: i1$2.TranslateService }
|
|
2353
2330
|
]; };
|
|
2354
2331
|
|
|
2355
|
-
var moment
|
|
2332
|
+
var moment = momentImported__namespace;
|
|
2356
2333
|
var DateDiffDurationPipe = /** @class */ (function () {
|
|
2357
2334
|
function DateDiffDurationPipe(dateAdapter, translate) {
|
|
2358
2335
|
var _this = this;
|
|
@@ -2369,11 +2346,11 @@
|
|
|
2369
2346
|
return this.format(startDate, endDate, args);
|
|
2370
2347
|
};
|
|
2371
2348
|
DateDiffDurationPipe.prototype.format = function (startDate, endDate, args) {
|
|
2372
|
-
var duration = moment
|
|
2349
|
+
var duration = moment.duration(endDate.diff(startDate));
|
|
2373
2350
|
if (duration.asMinutes() < 0)
|
|
2374
2351
|
return '';
|
|
2375
2352
|
var withSeconds = args === null || args === void 0 ? void 0 : args.seconds;
|
|
2376
|
-
var timeDuration = moment
|
|
2353
|
+
var timeDuration = moment(0)
|
|
2377
2354
|
.hour(duration.hours())
|
|
2378
2355
|
.minute(duration.minutes());
|
|
2379
2356
|
if (withSeconds) {
|
|
@@ -2384,7 +2361,7 @@
|
|
|
2384
2361
|
};
|
|
2385
2362
|
return DateDiffDurationPipe;
|
|
2386
2363
|
}());
|
|
2387
|
-
DateDiffDurationPipe.ɵprov =
|
|
2364
|
+
DateDiffDurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0.ɵɵinject(i1$3.DateAdapter), i0.ɵɵinject(i1$2.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
2388
2365
|
DateDiffDurationPipe.decorators = [
|
|
2389
2366
|
{ type: i0.Pipe, args: [{
|
|
2390
2367
|
name: 'dateDiffDuration'
|
|
@@ -2406,7 +2383,7 @@
|
|
|
2406
2383
|
};
|
|
2407
2384
|
return DateFromNowPipe;
|
|
2408
2385
|
}());
|
|
2409
|
-
DateFromNowPipe.ɵprov =
|
|
2386
|
+
DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1$1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
2410
2387
|
DateFromNowPipe.decorators = [
|
|
2411
2388
|
{ type: i0.Pipe, args: [{
|
|
2412
2389
|
name: 'dateFromNow'
|
|
@@ -2475,7 +2452,7 @@
|
|
|
2475
2452
|
value *= -1;
|
|
2476
2453
|
}
|
|
2477
2454
|
}
|
|
2478
|
-
var degrees = roundFloat
|
|
2455
|
+
var degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
2479
2456
|
// Add sign
|
|
2480
2457
|
var sign = negative ? '-' : '+';
|
|
2481
2458
|
if (opts.placeholderChar) {
|
|
@@ -2526,7 +2503,7 @@
|
|
|
2526
2503
|
}
|
|
2527
2504
|
var degrees = Math.trunc(value);
|
|
2528
2505
|
var minutes = Math.trunc((value - degrees) * 60);
|
|
2529
|
-
var seconds = roundFloat
|
|
2506
|
+
var seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
2530
2507
|
while (seconds >= 60) {
|
|
2531
2508
|
seconds -= 60;
|
|
2532
2509
|
minutes += 1;
|
|
@@ -2594,7 +2571,7 @@
|
|
|
2594
2571
|
}
|
|
2595
2572
|
}
|
|
2596
2573
|
var degrees = Math.trunc(value);
|
|
2597
|
-
var minutes = roundFloat
|
|
2574
|
+
var minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
2598
2575
|
while (minutes >= 60) {
|
|
2599
2576
|
minutes -= 60;
|
|
2600
2577
|
degrees += 1;
|
|
@@ -2645,15 +2622,15 @@
|
|
|
2645
2622
|
return NaN;
|
|
2646
2623
|
}
|
|
2647
2624
|
if (pattern === 'DD')
|
|
2648
|
-
return roundFloat
|
|
2625
|
+
return roundFloat(degrees, maxDecimals);
|
|
2649
2626
|
var minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
2650
2627
|
var seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
2651
2628
|
var direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
2652
2629
|
var sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
2653
2630
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
2654
|
-
return roundFloat
|
|
2631
|
+
return roundFloat(degrees, maxDecimals);
|
|
2655
2632
|
}
|
|
2656
|
-
function roundFloat
|
|
2633
|
+
function roundFloat(input, maxDecimals) {
|
|
2657
2634
|
if (maxDecimals > 0) {
|
|
2658
2635
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
2659
2636
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -2722,7 +2699,7 @@
|
|
|
2722
2699
|
};
|
|
2723
2700
|
return NumberFormatPipe;
|
|
2724
2701
|
}());
|
|
2725
|
-
NumberFormatPipe.ɵprov =
|
|
2702
|
+
NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
2726
2703
|
NumberFormatPipe.decorators = [
|
|
2727
2704
|
{ type: i0.Pipe, args: [{
|
|
2728
2705
|
name: 'numberFormat'
|
|
@@ -2765,7 +2742,7 @@
|
|
|
2765
2742
|
};
|
|
2766
2743
|
return HighlightPipe;
|
|
2767
2744
|
}());
|
|
2768
|
-
HighlightPipe.ɵprov =
|
|
2745
|
+
HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
2769
2746
|
HighlightPipe.decorators = [
|
|
2770
2747
|
{ type: i0.Pipe, args: [{
|
|
2771
2748
|
name: 'highlight'
|
|
@@ -2833,7 +2810,7 @@
|
|
|
2833
2810
|
{ type: i0.Pipe, args: [{ name: 'fileSize' },] }
|
|
2834
2811
|
];
|
|
2835
2812
|
|
|
2836
|
-
var moment$
|
|
2813
|
+
var moment$1 = momentImported__namespace;
|
|
2837
2814
|
var DATE_UNIX_TIMESTAMP = 'X';
|
|
2838
2815
|
var DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2839
2816
|
var MOMENT_NO_TIME_PROPERTY = '_hasNoTime';
|
|
@@ -2925,37 +2902,37 @@
|
|
|
2925
2902
|
return value;
|
|
2926
2903
|
if (typeof value === 'string' && value.length === 10) {
|
|
2927
2904
|
// Parse the input value, as a date only
|
|
2928
|
-
var dateOnly = moment$
|
|
2905
|
+
var dateOnly = moment$1(value, DATE_PATTERN);
|
|
2929
2906
|
if (dateOnly.isValid())
|
|
2930
2907
|
return DateUtils.markNoTime(dateOnly);
|
|
2931
2908
|
}
|
|
2932
2909
|
// Parse the input value, as a ISO date time
|
|
2933
|
-
var date = moment$
|
|
2910
|
+
var date = moment$1(value, DATE_ISO_PATTERN);
|
|
2934
2911
|
if (date.isValid())
|
|
2935
2912
|
return date;
|
|
2936
2913
|
// Not valid: trying to convert from unix timestamp
|
|
2937
2914
|
if (typeof value === 'string') {
|
|
2938
2915
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2939
2916
|
if (value.length === 10) {
|
|
2940
|
-
return moment$
|
|
2917
|
+
return moment$1(value, DATE_UNIX_TIMESTAMP);
|
|
2941
2918
|
}
|
|
2942
2919
|
else if (value.length === 13) {
|
|
2943
|
-
return moment$
|
|
2920
|
+
return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2944
2921
|
}
|
|
2945
2922
|
}
|
|
2946
2923
|
console.warn('Unable to parse date: ' + value);
|
|
2947
2924
|
return undefined;
|
|
2948
2925
|
}
|
|
2949
2926
|
function fromUnixTimestamp(timeInSec) {
|
|
2950
|
-
return moment$
|
|
2927
|
+
return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2951
2928
|
}
|
|
2952
2929
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2953
|
-
return moment$
|
|
2930
|
+
return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2954
2931
|
}
|
|
2955
2932
|
function toDuration(value, unit) {
|
|
2956
2933
|
if (!value)
|
|
2957
2934
|
return undefined;
|
|
2958
|
-
var duration = moment$
|
|
2935
|
+
var duration = moment$1.duration(value, unit);
|
|
2959
2936
|
// fix 990+ ms
|
|
2960
2937
|
if (duration.milliseconds() >= 990) {
|
|
2961
2938
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2985,7 +2962,7 @@
|
|
|
2985
2962
|
};
|
|
2986
2963
|
return DurationPipe;
|
|
2987
2964
|
}());
|
|
2988
|
-
DurationPipe.ɵprov =
|
|
2965
|
+
DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$2.TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2989
2966
|
DurationPipe.decorators = [
|
|
2990
2967
|
{ type: i0.Pipe, args: [{
|
|
2991
2968
|
name: 'duration'
|
|
@@ -3009,7 +2986,7 @@
|
|
|
3009
2986
|
};
|
|
3010
2987
|
return MathAbsPipe;
|
|
3011
2988
|
}());
|
|
3012
|
-
MathAbsPipe.ɵprov =
|
|
2989
|
+
MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
3013
2990
|
MathAbsPipe.decorators = [
|
|
3014
2991
|
{ type: i0.Pipe, args: [{
|
|
3015
2992
|
name: 'mathAbs'
|
|
@@ -3024,7 +3001,7 @@
|
|
|
3024
3001
|
};
|
|
3025
3002
|
return EvenPipe;
|
|
3026
3003
|
}());
|
|
3027
|
-
EvenPipe.ɵprov =
|
|
3004
|
+
EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
3028
3005
|
EvenPipe.decorators = [
|
|
3029
3006
|
{ type: i0.Pipe, args: [{
|
|
3030
3007
|
name: 'even'
|
|
@@ -3039,7 +3016,7 @@
|
|
|
3039
3016
|
};
|
|
3040
3017
|
return OddPipe;
|
|
3041
3018
|
}());
|
|
3042
|
-
OddPipe.ɵprov =
|
|
3019
|
+
OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
3043
3020
|
OddPipe.decorators = [
|
|
3044
3021
|
{ type: i0.Pipe, args: [{
|
|
3045
3022
|
name: 'odd'
|
|
@@ -3171,7 +3148,7 @@
|
|
|
3171
3148
|
};
|
|
3172
3149
|
return MapGetPipe;
|
|
3173
3150
|
}());
|
|
3174
|
-
MapGetPipe.ɵprov =
|
|
3151
|
+
MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
3175
3152
|
MapGetPipe.decorators = [
|
|
3176
3153
|
{ type: i0.Pipe, args: [{
|
|
3177
3154
|
name: 'mapGet'
|
|
@@ -3188,7 +3165,7 @@
|
|
|
3188
3165
|
};
|
|
3189
3166
|
return MapKeysPipe;
|
|
3190
3167
|
}());
|
|
3191
|
-
MapKeysPipe.ɵprov =
|
|
3168
|
+
MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
3192
3169
|
MapKeysPipe.decorators = [
|
|
3193
3170
|
{ type: i0.Pipe, args: [{
|
|
3194
3171
|
name: 'mapKeys'
|
|
@@ -3205,7 +3182,7 @@
|
|
|
3205
3182
|
};
|
|
3206
3183
|
return MapValuesPipe;
|
|
3207
3184
|
}());
|
|
3208
|
-
MapValuesPipe.ɵprov =
|
|
3185
|
+
MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
3209
3186
|
MapValuesPipe.decorators = [
|
|
3210
3187
|
{ type: i0.Pipe, args: [{
|
|
3211
3188
|
name: 'mapValues'
|
|
@@ -3362,7 +3339,7 @@
|
|
|
3362
3339
|
};
|
|
3363
3340
|
return TranslateContextService;
|
|
3364
3341
|
}());
|
|
3365
|
-
TranslateContextService.ɵprov =
|
|
3342
|
+
TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$2.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
3366
3343
|
TranslateContextService.decorators = [
|
|
3367
3344
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
3368
3345
|
];
|
|
@@ -3425,7 +3402,7 @@
|
|
|
3425
3402
|
ngInit: [{ type: i0.Output }]
|
|
3426
3403
|
};
|
|
3427
3404
|
|
|
3428
|
-
var moment$
|
|
3405
|
+
var moment$2 = momentImported__namespace;
|
|
3429
3406
|
// @dynamic
|
|
3430
3407
|
var SharedValidators = /** @class */ (function () {
|
|
3431
3408
|
function SharedValidators() {
|
|
@@ -3508,7 +3485,7 @@
|
|
|
3508
3485
|
};
|
|
3509
3486
|
SharedValidators.validDate = function (control) {
|
|
3510
3487
|
var value = control.value;
|
|
3511
|
-
var date = !value || moment$
|
|
3488
|
+
var date = !value || moment$2.isMoment(value) ? value : moment$2(value, DATE_ISO_PATTERN);
|
|
3512
3489
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
3513
3490
|
return { validDate: true };
|
|
3514
3491
|
}
|
|
@@ -4728,7 +4705,7 @@
|
|
|
4728
4705
|
};
|
|
4729
4706
|
return FormErrorTranslator;
|
|
4730
4707
|
}());
|
|
4731
|
-
FormErrorTranslator.ɵprov =
|
|
4708
|
+
FormErrorTranslator.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
|
|
4732
4709
|
FormErrorTranslator.decorators = [
|
|
4733
4710
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
4734
4711
|
];
|
|
@@ -5019,7 +4996,7 @@
|
|
|
5019
4996
|
});
|
|
5020
4997
|
return PropertyFormatPipe;
|
|
5021
4998
|
}());
|
|
5022
|
-
PropertyFormatPipe.ɵprov =
|
|
4999
|
+
PropertyFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyFormatPipe_Factory() { return new PropertyFormatPipe(i0.ɵɵinject(DateFormatPipe), i0.ɵɵinject(i1$2.TranslateService)); }, token: PropertyFormatPipe, providedIn: "root" });
|
|
5023
5000
|
PropertyFormatPipe.decorators = [
|
|
5024
5001
|
{ type: i0.Pipe, args: [{
|
|
5025
5002
|
name: 'propertyFormat'
|
|
@@ -5403,9 +5380,9 @@
|
|
|
5403
5380
|
var hour = parseInt(durationParts[0] || '0');
|
|
5404
5381
|
var minute = parseInt(durationParts[1] || '0');
|
|
5405
5382
|
var value = hour + (minute + 0.5) / 60;
|
|
5406
|
-
return roundFloat(value, maxDecimals);
|
|
5383
|
+
return roundFloat$1(value, maxDecimals);
|
|
5407
5384
|
}
|
|
5408
|
-
function roundFloat(input, maxDecimals) {
|
|
5385
|
+
function roundFloat$1(input, maxDecimals) {
|
|
5409
5386
|
if (maxDecimals > 0) {
|
|
5410
5387
|
var powDecimal = Math.pow(10, maxDecimals);
|
|
5411
5388
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -5429,16 +5406,16 @@
|
|
|
5429
5406
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
5430
5407
|
}
|
|
5431
5408
|
};
|
|
5432
|
-
var noop$
|
|
5409
|
+
var noop$1 = function () {
|
|
5433
5410
|
};
|
|
5434
|
-
var ɵ0$
|
|
5411
|
+
var ɵ0$2 = noop$1;
|
|
5435
5412
|
var MatLatLongField = /** @class */ (function () {
|
|
5436
5413
|
function MatLatLongField(formBuilder, cd, formGroupDir) {
|
|
5437
5414
|
this.formBuilder = formBuilder;
|
|
5438
5415
|
this.cd = cd;
|
|
5439
5416
|
this.formGroupDir = formGroupDir;
|
|
5440
|
-
this._onChangeCallback = noop$
|
|
5441
|
-
this._onTouchedCallback = noop$
|
|
5417
|
+
this._onChangeCallback = noop$1;
|
|
5418
|
+
this._onTouchedCallback = noop$1;
|
|
5442
5419
|
this._subscription = new rxjs.Subscription();
|
|
5443
5420
|
this._disabling = false;
|
|
5444
5421
|
this._writing = false;
|
|
@@ -5798,14 +5775,14 @@
|
|
|
5798
5775
|
},] }
|
|
5799
5776
|
];
|
|
5800
5777
|
|
|
5801
|
-
var DEFAULT_VALUE_ACCESSOR
|
|
5778
|
+
var DEFAULT_VALUE_ACCESSOR = {
|
|
5802
5779
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
5803
5780
|
useExisting: i0.forwardRef(function () { return MatDate; }),
|
|
5804
5781
|
multi: true
|
|
5805
5782
|
};
|
|
5806
5783
|
var TEXT_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5807
|
-
var noop$
|
|
5808
|
-
var ɵ0$
|
|
5784
|
+
var noop$2 = function () { };
|
|
5785
|
+
var ɵ0$3 = noop$2;
|
|
5809
5786
|
var MatDate = /** @class */ (function () {
|
|
5810
5787
|
function MatDate(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5811
5788
|
this.dateAdapter = dateAdapter;
|
|
@@ -5814,8 +5791,8 @@
|
|
|
5814
5791
|
this.cd = cd;
|
|
5815
5792
|
this.keyboard = keyboard;
|
|
5816
5793
|
this.formGroupDir = formGroupDir;
|
|
5817
|
-
this._onChangeCallback = noop$
|
|
5818
|
-
this._onTouchedCallback = noop$
|
|
5794
|
+
this._onChangeCallback = noop$2;
|
|
5795
|
+
this._onTouchedCallback = noop$2;
|
|
5819
5796
|
this._subscription = new rxjs.Subscription();
|
|
5820
5797
|
this._writing = true;
|
|
5821
5798
|
this._disabling = false;
|
|
@@ -6156,7 +6133,7 @@
|
|
|
6156
6133
|
selector: 'mat-date-field',
|
|
6157
6134
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: datePattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable -->\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"textControl\"\n [textMask]=\"{mask: mask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"textControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final input -->\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"datePickerFilter\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix\n (click)=\"openDatePicker($event, datePicker)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <!-- errors -->\n <mat-error *ngIf=\"formControl.touched && formControl.errors|mapKeys|arrayFirst; let errorKey\" [ngSwitch]=\"errorKey\">\n <span *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</span>\n <span *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE</span>\n <span *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</span>\n <span *ngSwitchCase=\"'dateIsBefore'\">{{'ERROR.FIELD_NOT_VALID_DATE_BEFORE' | translate: formControl.errors.dateIsBefore }}</span>\n <span *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</span>\n <span *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</span>\n <span *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</span>\n <span *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</span>\n </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",
|
|
6158
6135
|
providers: [
|
|
6159
|
-
DEFAULT_VALUE_ACCESSOR
|
|
6136
|
+
DEFAULT_VALUE_ACCESSOR,
|
|
6160
6137
|
],
|
|
6161
6138
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6162
6139
|
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%}"]
|
|
@@ -6191,16 +6168,16 @@
|
|
|
6191
6168
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
6192
6169
|
};
|
|
6193
6170
|
|
|
6194
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6171
|
+
var DEFAULT_VALUE_ACCESSOR$1 = {
|
|
6195
6172
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6196
6173
|
useExisting: i0.forwardRef(function () { return MatDateTime; }),
|
|
6197
6174
|
multi: true
|
|
6198
6175
|
};
|
|
6199
|
-
var DAY_MASK
|
|
6176
|
+
var DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
6200
6177
|
var HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
6201
|
-
var HOUR_MASK
|
|
6202
|
-
var noop$
|
|
6203
|
-
var ɵ0$
|
|
6178
|
+
var HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
6179
|
+
var noop$3 = function () { };
|
|
6180
|
+
var ɵ0$4 = noop$3;
|
|
6204
6181
|
var MatDateTime = /** @class */ (function () {
|
|
6205
6182
|
function MatDateTime(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
6206
6183
|
this.dateAdapter = dateAdapter;
|
|
@@ -6209,14 +6186,14 @@
|
|
|
6209
6186
|
this.cd = cd;
|
|
6210
6187
|
this.keyboard = keyboard;
|
|
6211
6188
|
this.formGroupDir = formGroupDir;
|
|
6212
|
-
this._onChangeCallback = noop$
|
|
6213
|
-
this._onTouchedCallback = noop$
|
|
6189
|
+
this._onChangeCallback = noop$3;
|
|
6190
|
+
this._onTouchedCallback = noop$3;
|
|
6214
6191
|
this._subscription = new rxjs.Subscription();
|
|
6215
6192
|
this._writing = true;
|
|
6216
6193
|
this._disabling = false;
|
|
6217
6194
|
this._readonly = false;
|
|
6218
|
-
this.dayMask = DAY_MASK
|
|
6219
|
-
this.hourMask = HOUR_MASK
|
|
6195
|
+
this.dayMask = DAY_MASK;
|
|
6196
|
+
this.hourMask = HOUR_MASK;
|
|
6220
6197
|
this.floatLabel = 'auto';
|
|
6221
6198
|
this.compact = false;
|
|
6222
6199
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -6581,7 +6558,7 @@
|
|
|
6581
6558
|
selector: 'mat-date-time-field',
|
|
6582
6559
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\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 mat-form-field-{{appearance}}\">\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 [appearance]=\"appearance\"\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 [appearance]=\"appearance\"\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",
|
|
6583
6560
|
providers: [
|
|
6584
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6561
|
+
DEFAULT_VALUE_ACCESSOR$1,
|
|
6585
6562
|
],
|
|
6586
6563
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6587
6564
|
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}.mat-form-field-outline ion-col.day{min-width:153px}.mat-form-field-outline ion-col.hour{min-width:100px;max-width:110px}.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%}"]
|
|
@@ -6616,15 +6593,15 @@
|
|
|
6616
6593
|
matInputs: [{ type: i0.ViewChildren, args: ['matInput',] }]
|
|
6617
6594
|
};
|
|
6618
6595
|
|
|
6619
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6596
|
+
var DEFAULT_VALUE_ACCESSOR$2 = {
|
|
6620
6597
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6621
6598
|
useExisting: i0.forwardRef(function () { return MatDateShort; }),
|
|
6622
6599
|
multi: true
|
|
6623
6600
|
};
|
|
6624
|
-
var DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
6601
|
+
var DAY_MASK$1 = [/\d/, /\d/, /\d/, /\d/];
|
|
6625
6602
|
var noop$4 = function () {
|
|
6626
6603
|
};
|
|
6627
|
-
var ɵ0$
|
|
6604
|
+
var ɵ0$5 = noop$4;
|
|
6628
6605
|
var MatDateShort = /** @class */ (function () {
|
|
6629
6606
|
function MatDateShort(dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
6630
6607
|
this.dateAdapter = dateAdapter;
|
|
@@ -6637,7 +6614,7 @@
|
|
|
6637
6614
|
this._onTouchedCallback = noop$4;
|
|
6638
6615
|
this.writing = true;
|
|
6639
6616
|
this.disabling = false;
|
|
6640
|
-
this.dayMask = DAY_MASK;
|
|
6617
|
+
this.dayMask = DAY_MASK$1;
|
|
6641
6618
|
this.disabled = false;
|
|
6642
6619
|
this.floatLabel = 'auto';
|
|
6643
6620
|
this.readonly = false;
|
|
@@ -6914,7 +6891,7 @@
|
|
|
6914
6891
|
selector: 'mat-date-short-field',
|
|
6915
6892
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-form-field-disabled\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\">\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.touched && formControl.errors|mapKeys|arrayFirst; let errorKey\" [ngSwitch]=\"errorKey\">\n <span *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</span>\n <span *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE</span>\n <span *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</span>\n <span *ngSwitchCase=\"'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 </mat-error>\n <ng-content select=\"mat-error\"></ng-content>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\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\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
|
|
6916
6893
|
providers: [
|
|
6917
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6894
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
6918
6895
|
],
|
|
6919
6896
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
6920
6897
|
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%}"]
|
|
@@ -6986,16 +6963,16 @@
|
|
|
6986
6963
|
},] }
|
|
6987
6964
|
];
|
|
6988
6965
|
|
|
6989
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
6966
|
+
var DEFAULT_VALUE_ACCESSOR$3 = {
|
|
6990
6967
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
6991
6968
|
useExisting: i0.forwardRef(function () { return MatDuration; }),
|
|
6992
6969
|
multi: true
|
|
6993
6970
|
};
|
|
6994
6971
|
var HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
6995
|
-
var HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
6996
|
-
var noop$
|
|
6972
|
+
var HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
6973
|
+
var noop$5 = function () {
|
|
6997
6974
|
};
|
|
6998
|
-
var ɵ0$6 = noop$
|
|
6975
|
+
var ɵ0$6 = noop$5;
|
|
6999
6976
|
var MatDuration = /** @class */ (function () {
|
|
7000
6977
|
function MatDuration(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
7001
6978
|
this.dateAdapter = dateAdapter;
|
|
@@ -7004,11 +6981,11 @@
|
|
|
7004
6981
|
this.cd = cd;
|
|
7005
6982
|
this.formGroupDir = formGroupDir;
|
|
7006
6983
|
this._subscription = new rxjs.Subscription();
|
|
7007
|
-
this._onChangeCallback = noop$
|
|
7008
|
-
this._onTouchedCallback = noop$
|
|
6984
|
+
this._onChangeCallback = noop$5;
|
|
6985
|
+
this._onTouchedCallback = noop$5;
|
|
7009
6986
|
this.writing = true;
|
|
7010
6987
|
this.disabling = false;
|
|
7011
|
-
this.hourMask = HOUR_MASK;
|
|
6988
|
+
this.hourMask = HOUR_MASK$1;
|
|
7012
6989
|
this.disabled = false;
|
|
7013
6990
|
this.floatLabel = 'auto';
|
|
7014
6991
|
this.readonly = false;
|
|
@@ -7201,7 +7178,7 @@
|
|
|
7201
7178
|
selector: 'mat-duration-field',
|
|
7202
7179
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\"\n [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"mat-form-field-disabled\">\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 [appearance]=\"appearance\"\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",
|
|
7203
7180
|
providers: [
|
|
7204
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
7181
|
+
DEFAULT_VALUE_ACCESSOR$3,
|
|
7205
7182
|
],
|
|
7206
7183
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7207
7184
|
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%}"]
|
|
@@ -7262,22 +7239,22 @@
|
|
|
7262
7239
|
},] }
|
|
7263
7240
|
];
|
|
7264
7241
|
|
|
7265
|
-
var DEFAULT_VALUE_ACCESSOR$
|
|
7242
|
+
var DEFAULT_VALUE_ACCESSOR$4 = {
|
|
7266
7243
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
7267
7244
|
useExisting: i0.forwardRef(function () { return MatBooleanField; }),
|
|
7268
7245
|
multi: true
|
|
7269
7246
|
};
|
|
7270
|
-
var noop$
|
|
7247
|
+
var noop$6 = function () {
|
|
7271
7248
|
};
|
|
7272
|
-
var ɵ0$
|
|
7249
|
+
var ɵ0$7 = noop$6;
|
|
7273
7250
|
var MatBooleanField = /** @class */ (function () {
|
|
7274
7251
|
function MatBooleanField(translate, formBuilder, cd, formGroupDir) {
|
|
7275
7252
|
this.translate = translate;
|
|
7276
7253
|
this.formBuilder = formBuilder;
|
|
7277
7254
|
this.cd = cd;
|
|
7278
7255
|
this.formGroupDir = formGroupDir;
|
|
7279
|
-
this._onChangeCallback = noop$
|
|
7280
|
-
this._onTouchedCallback = noop$
|
|
7256
|
+
this._onChangeCallback = noop$6;
|
|
7257
|
+
this._onTouchedCallback = noop$6;
|
|
7281
7258
|
this._writing = false;
|
|
7282
7259
|
this.showRadio = false;
|
|
7283
7260
|
this.disabled = false;
|
|
@@ -7452,7 +7429,7 @@
|
|
|
7452
7429
|
selector: 'mat-boolean-field',
|
|
7453
7430
|
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>{{(value == null ? 'COMMON.EMPTY_OPTION' : (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 [appearance]=\"appearance\"\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 [appearance]=\"appearance\"\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===null\"\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 [appearance]=\"appearance\"\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",
|
|
7454
7431
|
providers: [
|
|
7455
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
7432
|
+
DEFAULT_VALUE_ACCESSOR$4
|
|
7456
7433
|
],
|
|
7457
7434
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
7458
7435
|
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}"]
|
|
@@ -7540,7 +7517,6 @@
|
|
|
7540
7517
|
return MatNumpadEvent;
|
|
7541
7518
|
}(KeyboardEvent));
|
|
7542
7519
|
|
|
7543
|
-
exports.AnimationState = void 0;
|
|
7544
7520
|
(function (AnimationState) {
|
|
7545
7521
|
AnimationState["ENTER"] = "enter";
|
|
7546
7522
|
AnimationState["ENTER_INPUT"] = "enter-input";
|
|
@@ -7708,7 +7684,7 @@
|
|
|
7708
7684
|
};
|
|
7709
7685
|
return MatNumpadDomService;
|
|
7710
7686
|
}());
|
|
7711
|
-
MatNumpadDomService.ɵprov =
|
|
7687
|
+
MatNumpadDomService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1$4.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
7712
7688
|
MatNumpadDomService.decorators = [
|
|
7713
7689
|
{ type: i0.Injectable, args: [{
|
|
7714
7690
|
providedIn: 'root'
|
|
@@ -8114,7 +8090,7 @@
|
|
|
8114
8090
|
},] }
|
|
8115
8091
|
];
|
|
8116
8092
|
|
|
8117
|
-
var DEFAULT_VALUE_ACCESSOR = {
|
|
8093
|
+
var DEFAULT_VALUE_ACCESSOR$5 = {
|
|
8118
8094
|
provide: i1.NG_VALUE_ACCESSOR,
|
|
8119
8095
|
useExisting: i0.forwardRef(function () { return MatSwipeField; }),
|
|
8120
8096
|
multi: true
|
|
@@ -8434,7 +8410,7 @@
|
|
|
8434
8410
|
{ type: i0.Component, args: [{
|
|
8435
8411
|
selector: 'mat-swipe-field',
|
|
8436
8412
|
template: "<mat-form-field [floatLabel]=\"showSlides && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [appearance]=\"appearance\"\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",
|
|
8437
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
8413
|
+
providers: [DEFAULT_VALUE_ACCESSOR$5],
|
|
8438
8414
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
8439
8415
|
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}"]
|
|
8440
8416
|
},] }
|
|
@@ -8496,14 +8472,14 @@
|
|
|
8496
8472
|
},] }
|
|
8497
8473
|
];
|
|
8498
8474
|
|
|
8499
|
-
var noop$
|
|
8500
|
-
var ɵ0$
|
|
8475
|
+
var noop$7 = function () { };
|
|
8476
|
+
var ɵ0$8 = noop$7;
|
|
8501
8477
|
var MatChipsField = /** @class */ (function () {
|
|
8502
8478
|
function MatChipsField(cd, formGroupDir) {
|
|
8503
8479
|
this.cd = cd;
|
|
8504
8480
|
this.formGroupDir = formGroupDir;
|
|
8505
|
-
this._onChangeCallback = noop$
|
|
8506
|
-
this._onTouchedCallback = noop$
|
|
8481
|
+
this._onChangeCallback = noop$7;
|
|
8482
|
+
this._onTouchedCallback = noop$7;
|
|
8507
8483
|
this.logPrefix = '[mat-chips] ';
|
|
8508
8484
|
this.formControlName = null;
|
|
8509
8485
|
this.required = false;
|
|
@@ -9474,7 +9450,7 @@
|
|
|
9474
9450
|
};
|
|
9475
9451
|
return ProgressBarService;
|
|
9476
9452
|
}());
|
|
9477
|
-
ProgressBarService.ɵprov =
|
|
9453
|
+
ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
9478
9454
|
ProgressBarService.decorators = [
|
|
9479
9455
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9480
9456
|
];
|
|
@@ -9521,7 +9497,7 @@
|
|
|
9521
9497
|
};
|
|
9522
9498
|
return AppGestureConfig;
|
|
9523
9499
|
}(i1$6.HammerGestureConfig));
|
|
9524
|
-
AppGestureConfig.ɵprov =
|
|
9500
|
+
AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
9525
9501
|
AppGestureConfig.decorators = [
|
|
9526
9502
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9527
9503
|
];
|
|
@@ -9805,7 +9781,7 @@
|
|
|
9805
9781
|
};
|
|
9806
9782
|
return MatPaginatorI18n;
|
|
9807
9783
|
}(paginator.MatPaginatorIntl));
|
|
9808
|
-
MatPaginatorI18n.ɵprov =
|
|
9784
|
+
MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
9809
9785
|
MatPaginatorI18n.decorators = [
|
|
9810
9786
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
9811
9787
|
];
|
|
@@ -9897,17 +9873,17 @@
|
|
|
9897
9873
|
return rgbArrayToHex(rgb.map(function (v) { return 255 - v; }));
|
|
9898
9874
|
}
|
|
9899
9875
|
|
|
9900
|
-
var noop = function () {
|
|
9876
|
+
var noop$8 = function () {
|
|
9901
9877
|
};
|
|
9902
|
-
var ɵ0$
|
|
9878
|
+
var ɵ0$9 = noop$8;
|
|
9903
9879
|
var AppFormField = /** @class */ (function () {
|
|
9904
9880
|
function AppFormField(translate, cd, injector, formGroupDir) {
|
|
9905
9881
|
this.translate = translate;
|
|
9906
9882
|
this.cd = cd;
|
|
9907
9883
|
this.injector = injector;
|
|
9908
9884
|
this.formGroupDir = formGroupDir;
|
|
9909
|
-
this._onChangeCallback = noop;
|
|
9910
|
-
this._onTouchedCallback = noop;
|
|
9885
|
+
this._onChangeCallback = noop$8;
|
|
9886
|
+
this._onTouchedCallback = noop$8;
|
|
9911
9887
|
this.readonly = false;
|
|
9912
9888
|
this.compact = false;
|
|
9913
9889
|
this.floatLabel = 'auto';
|
|
@@ -10108,7 +10084,8 @@
|
|
|
10108
10084
|
|
|
10109
10085
|
var StartableService = /** @class */ (function () {
|
|
10110
10086
|
function StartableService(prerequisiteService) {
|
|
10111
|
-
this.
|
|
10087
|
+
this.startSubject = new rxjs.Subject();
|
|
10088
|
+
this.stopSubject = new rxjs.Subject();
|
|
10112
10089
|
this._debug = false;
|
|
10113
10090
|
this._startByReadyFunction = true; // should start when calling ready() ?
|
|
10114
10091
|
this._data = null;
|
|
@@ -10132,7 +10109,7 @@
|
|
|
10132
10109
|
_this._data = data;
|
|
10133
10110
|
_this._started = true;
|
|
10134
10111
|
_this._startPromise = undefined;
|
|
10135
|
-
_this.
|
|
10112
|
+
_this.startSubject.next(_this._data);
|
|
10136
10113
|
return _this._data;
|
|
10137
10114
|
})
|
|
10138
10115
|
.catch(function (err) {
|
|
@@ -10146,45 +10123,46 @@
|
|
|
10146
10123
|
StartableService.prototype.stop = function () {
|
|
10147
10124
|
return __awaiter(this, void 0, void 0, function () {
|
|
10148
10125
|
var err_1;
|
|
10149
|
-
return __generator(this, function (
|
|
10150
|
-
switch (
|
|
10126
|
+
return __generator(this, function (_b) {
|
|
10127
|
+
switch (_b.label) {
|
|
10151
10128
|
case 0:
|
|
10152
|
-
|
|
10153
|
-
|
|
10154
|
-
this._subscription.unsubscribe();
|
|
10155
|
-
this._subscription = null;
|
|
10156
|
-
}
|
|
10129
|
+
_b.trys.push([0, 2, 3, 4]);
|
|
10130
|
+
this.unsubscribe();
|
|
10157
10131
|
return [4 /*yield*/, this.ngOnStop()];
|
|
10158
10132
|
case 1:
|
|
10159
|
-
|
|
10160
|
-
|
|
10161
|
-
this._startPromise = undefined;
|
|
10162
|
-
return [3 /*break*/, 3];
|
|
10133
|
+
_b.sent();
|
|
10134
|
+
return [3 /*break*/, 4];
|
|
10163
10135
|
case 2:
|
|
10164
|
-
err_1 =
|
|
10136
|
+
err_1 = _b.sent();
|
|
10165
10137
|
console.error('Failed to stop a service: ' + (err_1 && err_1.message || err_1), err_1);
|
|
10166
|
-
return [3 /*break*/,
|
|
10167
|
-
case 3:
|
|
10138
|
+
return [3 /*break*/, 4];
|
|
10139
|
+
case 3:
|
|
10140
|
+
this.stopSubject.next();
|
|
10141
|
+
this._data = null;
|
|
10142
|
+
this._started = false;
|
|
10143
|
+
this._startPromise = undefined;
|
|
10144
|
+
return [7 /*endfinally*/];
|
|
10145
|
+
case 4: return [2 /*return*/];
|
|
10168
10146
|
}
|
|
10169
10147
|
});
|
|
10170
10148
|
});
|
|
10171
10149
|
};
|
|
10172
10150
|
StartableService.prototype.restart = function () {
|
|
10173
10151
|
return __awaiter(this, void 0, void 0, function () {
|
|
10174
|
-
return __generator(this, function (
|
|
10175
|
-
switch (
|
|
10152
|
+
return __generator(this, function (_b) {
|
|
10153
|
+
switch (_b.label) {
|
|
10176
10154
|
case 0:
|
|
10177
10155
|
if (!this._startPromise) return [3 /*break*/, 2];
|
|
10178
10156
|
return [4 /*yield*/, this._startPromise];
|
|
10179
10157
|
case 1:
|
|
10180
|
-
|
|
10181
|
-
|
|
10158
|
+
_b.sent(); // Wait end of previous loading
|
|
10159
|
+
_b.label = 2;
|
|
10182
10160
|
case 2:
|
|
10183
10161
|
if (!this._started) return [3 /*break*/, 4];
|
|
10184
10162
|
return [4 /*yield*/, this.stop()];
|
|
10185
10163
|
case 3:
|
|
10186
|
-
|
|
10187
|
-
|
|
10164
|
+
_b.sent(); // Then stop if started
|
|
10165
|
+
_b.label = 4;
|
|
10188
10166
|
case 4: // Then stop if started
|
|
10189
10167
|
return [2 /*return*/, this.start()]; // Then start again
|
|
10190
10168
|
}
|
|
@@ -10206,15 +10184,15 @@
|
|
|
10206
10184
|
configurable: true
|
|
10207
10185
|
});
|
|
10208
10186
|
StartableService.prototype.ready = function () {
|
|
10209
|
-
var _this = this;
|
|
10210
10187
|
if (this._started)
|
|
10211
10188
|
return Promise.resolve(this._data);
|
|
10212
10189
|
if (this._startPromise)
|
|
10213
10190
|
return this._startPromise;
|
|
10214
10191
|
if (this._startByReadyFunction)
|
|
10215
10192
|
return this.start();
|
|
10216
|
-
return
|
|
10217
|
-
.
|
|
10193
|
+
return this.startSubject
|
|
10194
|
+
.pipe(operators.takeUntil(this.stopSubject))
|
|
10195
|
+
.toPromise();
|
|
10218
10196
|
};
|
|
10219
10197
|
StartableService.prototype.registerSubscription = function (sub) {
|
|
10220
10198
|
this._subscription = this._subscription || new rxjs.Subscription();
|
|
@@ -10223,9 +10201,14 @@
|
|
|
10223
10201
|
StartableService.prototype.unregisterSubscription = function (sub) {
|
|
10224
10202
|
this._subscription.remove(sub);
|
|
10225
10203
|
};
|
|
10204
|
+
StartableService.prototype.unsubscribe = function () {
|
|
10205
|
+
var _a;
|
|
10206
|
+
(_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
10207
|
+
this._subscription = null;
|
|
10208
|
+
};
|
|
10226
10209
|
StartableService.prototype.ngOnStop = function () {
|
|
10227
10210
|
return __awaiter(this, void 0, void 0, function () {
|
|
10228
|
-
return __generator(this, function (
|
|
10211
|
+
return __generator(this, function (_b) {
|
|
10229
10212
|
return [2 /*return*/];
|
|
10230
10213
|
});
|
|
10231
10214
|
});
|
|
@@ -10465,7 +10448,7 @@
|
|
|
10465
10448
|
};
|
|
10466
10449
|
return AudioProvider;
|
|
10467
10450
|
}(StartableService));
|
|
10468
|
-
AudioProvider.ɵprov =
|
|
10451
|
+
AudioProvider.ɵprov = i0.ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$2.NativeAudio, 8), i0.ɵɵinject(i3$1.Vibration, 8), i0.ɵɵinject(i4.AudioManagement, 8)); }, token: AudioProvider, providedIn: "root" });
|
|
10469
10452
|
AudioProvider.decorators = [
|
|
10470
10453
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
10471
10454
|
];
|
|
@@ -10575,7 +10558,7 @@
|
|
|
10575
10558
|
};
|
|
10576
10559
|
return Hotkeys;
|
|
10577
10560
|
}());
|
|
10578
|
-
Hotkeys.ɵprov =
|
|
10561
|
+
Hotkeys.ɵprov = i0.ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(i0.ɵɵinject(i1$6.EventManager), i0.ɵɵinject(i2.MatDialog), i0.ɵɵinject(i1$4.DOCUMENT), i0.ɵɵinject(i1$5.ModalController), i0.ɵɵinject(i1$5.PopoverController)); }, token: Hotkeys, providedIn: "root" });
|
|
10579
10562
|
Hotkeys.decorators = [
|
|
10580
10563
|
{ type: i0.Injectable, args: [{
|
|
10581
10564
|
providedIn: 'root'
|
|
@@ -10825,7 +10808,7 @@
|
|
|
10825
10808
|
return ImagesUtils;
|
|
10826
10809
|
}());
|
|
10827
10810
|
|
|
10828
|
-
var uuidv4
|
|
10811
|
+
var uuidv4 = uuidv4Imported__namespace;
|
|
10829
10812
|
var FileService = /** @class */ (function () {
|
|
10830
10813
|
function FileService(platform,
|
|
10831
10814
|
//private transfer: FileTransfer,
|
|
@@ -10871,7 +10854,7 @@
|
|
|
10871
10854
|
lastSlashIndex = fileUrl.lastIndexOf('/');
|
|
10872
10855
|
if (lastSlashIndex === -1)
|
|
10873
10856
|
throw new Error('Invalid URL: ' + fileUrl);
|
|
10874
|
-
fileName = lastSlashIndex < (fileUrl.length - 1) && fileUrl.substring(lastSlashIndex + 1) || uuidv4
|
|
10857
|
+
fileName = lastSlashIndex < (fileUrl.length - 1) && fileUrl.substring(lastSlashIndex + 1) || uuidv4();
|
|
10875
10858
|
if (!(outputType === 'fileUrl' && this.canUseFileSystem)) return [3 /*break*/, 4];
|
|
10876
10859
|
console.warn("WARN: [file] Downloading image {" + fileUrl + "} in local filesystem...");
|
|
10877
10860
|
targetFilePath = this._imageDirectory + fileName;
|
|
@@ -10934,7 +10917,7 @@
|
|
|
10934
10917
|
};
|
|
10935
10918
|
return FileService;
|
|
10936
10919
|
}());
|
|
10937
|
-
FileService.ɵprov =
|
|
10920
|
+
FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$1.HttpClient), i0.ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
10938
10921
|
FileService.decorators = [
|
|
10939
10922
|
{ type: i0.Injectable, args: [{
|
|
10940
10923
|
providedIn: 'root',
|
|
@@ -11101,7 +11084,7 @@
|
|
|
11101
11084
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
11102
11085
|
|
|
11103
11086
|
var scrypt = require('scrypt-async');
|
|
11104
|
-
var sha256
|
|
11087
|
+
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
11105
11088
|
var sha512 = require('hash.js/lib/hash/sha/512');
|
|
11106
11089
|
var nacl = {
|
|
11107
11090
|
sign: tweetnacl.sign,
|
|
@@ -11207,7 +11190,7 @@
|
|
|
11207
11190
|
* Hash (using SHA256) a message
|
|
11208
11191
|
*/
|
|
11209
11192
|
CryptoService.prototype.sha256 = function (message) {
|
|
11210
|
-
return sha256
|
|
11193
|
+
return sha256().update(message).digest('hex');
|
|
11211
11194
|
};
|
|
11212
11195
|
/**
|
|
11213
11196
|
* Hash (using SHA512) a message
|
|
@@ -11221,7 +11204,7 @@
|
|
|
11221
11204
|
};
|
|
11222
11205
|
return CryptoService;
|
|
11223
11206
|
}());
|
|
11224
|
-
CryptoService.ɵprov =
|
|
11207
|
+
CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
11225
11208
|
CryptoService.decorators = [
|
|
11226
11209
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
11227
11210
|
];
|
|
@@ -12093,7 +12076,7 @@
|
|
|
12093
12076
|
onRefresh: [{ type: i0.Input }]
|
|
12094
12077
|
};
|
|
12095
12078
|
|
|
12096
|
-
var moment$
|
|
12079
|
+
var moment$3 = momentImported__namespace;
|
|
12097
12080
|
var SETTINGS_STORAGE_KEY = 'settings';
|
|
12098
12081
|
var SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
|
|
12099
12082
|
// fixme: this constant points to static environment
|
|
@@ -12395,11 +12378,11 @@
|
|
|
12395
12378
|
if (!feature) {
|
|
12396
12379
|
feature = {
|
|
12397
12380
|
name: featureName.toLowerCase(),
|
|
12398
|
-
lastSyncDate: moment$
|
|
12381
|
+
lastSyncDate: moment$3().toISOString()
|
|
12399
12382
|
};
|
|
12400
12383
|
}
|
|
12401
12384
|
else {
|
|
12402
|
-
feature.lastSyncDate = moment$
|
|
12385
|
+
feature.lastSyncDate = moment$3().toISOString();
|
|
12403
12386
|
}
|
|
12404
12387
|
this.saveOfflineFeature(feature);
|
|
12405
12388
|
};
|
|
@@ -12593,7 +12576,7 @@
|
|
|
12593
12576
|
if (!page || !page.title || !page.path)
|
|
12594
12577
|
throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
|
|
12595
12578
|
// Set time
|
|
12596
|
-
page.time = page.time || moment$
|
|
12579
|
+
page.time = page.time || moment$3();
|
|
12597
12580
|
// Clean the title (remove <small> tags)
|
|
12598
12581
|
if (!opts || opts.removeTitleSmallTag !== false) {
|
|
12599
12582
|
var tagIndex = page.title.indexOf('</small>');
|
|
@@ -12610,7 +12593,7 @@
|
|
|
12610
12593
|
};
|
|
12611
12594
|
return LocalSettingsService;
|
|
12612
12595
|
}(StartableService));
|
|
12613
|
-
LocalSettingsService.ɵprov =
|
|
12596
|
+
LocalSettingsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_SETTINGS, 8), i0.ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
|
|
12614
12597
|
LocalSettingsService.decorators = [
|
|
12615
12598
|
{ type: i0.Injectable, args: [{
|
|
12616
12599
|
providedIn: 'root'
|
|
@@ -12797,7 +12780,7 @@
|
|
|
12797
12780
|
_this.splashScreen = splashScreen;
|
|
12798
12781
|
_this.translate = translate;
|
|
12799
12782
|
_this.toastController = toastController;
|
|
12800
|
-
_this.onPeerChanges = _this.
|
|
12783
|
+
_this.onPeerChanges = _this.startSubject.pipe(operators.map(function (peer) { return peer && peer.url; }), operators.filter(isNotNilOrBlank), operators.distinctUntilChanged());
|
|
12801
12784
|
_this.onNetworkStatusChanges = new rxjs.BehaviorSubject(null);
|
|
12802
12785
|
_this.onResetNetworkCache = new i0.EventEmitter(true);
|
|
12803
12786
|
_this._listeners = {};
|
|
@@ -12811,7 +12794,7 @@
|
|
|
12811
12794
|
_this._timerRefreshCondition = function () { return true; }; // Always check
|
|
12812
12795
|
}
|
|
12813
12796
|
_this.resetData();
|
|
12814
|
-
_this.
|
|
12797
|
+
_this.startSubject.subscribe(function () { return _this.ngOnAfterStart(); });
|
|
12815
12798
|
// For DEV only
|
|
12816
12799
|
_this._debug = !environment.production;
|
|
12817
12800
|
return _this;
|
|
@@ -12860,7 +12843,7 @@
|
|
|
12860
12843
|
NetworkService.prototype.on = function (eventType, callback) {
|
|
12861
12844
|
switch (eventType) {
|
|
12862
12845
|
case 'start':
|
|
12863
|
-
return this.
|
|
12846
|
+
return this.startSubject.subscribe(function () { return callback(); });
|
|
12864
12847
|
case 'peerChanged':
|
|
12865
12848
|
return this.onPeerChanges.subscribe(function () { return callback(); });
|
|
12866
12849
|
case 'statusChanged':
|
|
@@ -13099,6 +13082,7 @@
|
|
|
13099
13082
|
});
|
|
13100
13083
|
};
|
|
13101
13084
|
NetworkService.prototype.getAppVersion = function (peer, opts) {
|
|
13085
|
+
if (opts === void 0) { opts = { nocache: true }; }
|
|
13102
13086
|
return __awaiter(this, void 0, void 0, function () {
|
|
13103
13087
|
var path, appVersion, err_4, manifest;
|
|
13104
13088
|
return __generator(this, function (_b) {
|
|
@@ -13106,7 +13090,7 @@
|
|
|
13106
13090
|
case 0:
|
|
13107
13091
|
_b.trys.push([0, 2, , 3]);
|
|
13108
13092
|
path = this.computePeerPath(peer, 'version.appup');
|
|
13109
|
-
if (opts
|
|
13093
|
+
if (opts.nocache) {
|
|
13110
13094
|
path += '?t=' + Date.now();
|
|
13111
13095
|
}
|
|
13112
13096
|
return [4 /*yield*/, this.getText(path, opts)];
|
|
@@ -13491,7 +13475,7 @@
|
|
|
13491
13475
|
};
|
|
13492
13476
|
return NetworkService;
|
|
13493
13477
|
}(StartableService));
|
|
13494
|
-
NetworkService.ɵprov =
|
|
13478
|
+
NetworkService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(i0.ɵɵinject(i1$4.DOCUMENT), i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i1$5.ModalController), i0.ɵɵinject(CryptoService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i2$1.HttpClient), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i9.Network, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i1$2.TranslateService, 8), i0.ɵɵinject(i1$5.ToastController, 8)); }, token: NetworkService, providedIn: "root" });
|
|
13495
13479
|
NetworkService.decorators = [
|
|
13496
13480
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
13497
13481
|
];
|
|
@@ -14715,7 +14699,7 @@
|
|
|
14715
14699
|
}(StartableService));
|
|
14716
14700
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
14717
14701
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
14718
|
-
EntitiesStorage.ɵprov =
|
|
14702
|
+
EntitiesStorage.ɵprov = i0.ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(ProgressBarService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
|
|
14719
14703
|
EntitiesStorage.decorators = [
|
|
14720
14704
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
14721
14705
|
];
|
|
@@ -14871,10 +14855,10 @@
|
|
|
14871
14855
|
function referentialsToString(values, properties, separator) {
|
|
14872
14856
|
return (values || []).map(function (v) { return referentialToString(v, properties); }).join(separator || ', ');
|
|
14873
14857
|
}
|
|
14874
|
-
var ɵ0$
|
|
14858
|
+
var ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
14875
14859
|
var StatusList = Object.freeze([
|
|
14876
14860
|
{
|
|
14877
|
-
id: ɵ0$
|
|
14861
|
+
id: ɵ0$a,
|
|
14878
14862
|
icon: 'checkmark',
|
|
14879
14863
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
14880
14864
|
},
|
|
@@ -15177,7 +15161,7 @@
|
|
|
15177
15161
|
(data.lastName || '')) || '';
|
|
15178
15162
|
}
|
|
15179
15163
|
|
|
15180
|
-
var uuidv4 = uuidv4Imported__namespace;
|
|
15164
|
+
var uuidv4$1 = uuidv4Imported__namespace;
|
|
15181
15165
|
var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
15182
15166
|
var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
15183
15167
|
/**
|
|
@@ -15221,7 +15205,7 @@
|
|
|
15221
15205
|
// Skip if not tracked
|
|
15222
15206
|
if (!context || !context.tracked)
|
|
15223
15207
|
return forward(operation);
|
|
15224
|
-
var id = context.serializationKey || uuidv4();
|
|
15208
|
+
var id = context.serializationKey || uuidv4$1();
|
|
15225
15209
|
console.debug("[apollo-tracker-link] Watching tracked query {" + operation.operationName + "#" + id + "}");
|
|
15226
15210
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
15227
15211
|
var cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -15854,14 +15838,14 @@
|
|
|
15854
15838
|
mutationLinks = void 0;
|
|
15855
15839
|
// Add queue to store tracked queries, when offline
|
|
15856
15840
|
if (enableTrackMutationQueries) {
|
|
15857
|
-
serializingLink = new SerializingLink__default[
|
|
15841
|
+
serializingLink = new SerializingLink__default['default']();
|
|
15858
15842
|
trackerLink = createTrackerLink({
|
|
15859
15843
|
storage: storage,
|
|
15860
15844
|
onNetworkStatusChange: this._networkStatusChanged$,
|
|
15861
15845
|
debounce: 1000,
|
|
15862
15846
|
debug: true
|
|
15863
15847
|
});
|
|
15864
|
-
queueLink_1 = new QueueLink__default[
|
|
15848
|
+
queueLink_1 = new QueueLink__default['default']();
|
|
15865
15849
|
this.registerSubscription(this._networkStatusChanged$
|
|
15866
15850
|
.subscribe(function (type) {
|
|
15867
15851
|
// Network is offline: start buffering into queue
|
|
@@ -15876,7 +15860,7 @@
|
|
|
15876
15860
|
}
|
|
15877
15861
|
}));
|
|
15878
15862
|
mutationLinks = [
|
|
15879
|
-
loggerLink__default[
|
|
15863
|
+
loggerLink__default['default'],
|
|
15880
15864
|
queueLink_1,
|
|
15881
15865
|
trackerLink,
|
|
15882
15866
|
queueLink_1,
|
|
@@ -16059,7 +16043,7 @@
|
|
|
16059
16043
|
};
|
|
16060
16044
|
return GraphqlService;
|
|
16061
16045
|
}(StartableService));
|
|
16062
|
-
GraphqlService.ɵprov =
|
|
16046
|
+
GraphqlService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$3.Apollo), i0.ɵɵinject(i3$3.HttpLink), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(CryptoService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
|
|
16063
16047
|
GraphqlService.decorators = [
|
|
16064
16048
|
{ type: i0.Injectable, args: [{
|
|
16065
16049
|
providedIn: 'root'
|
|
@@ -16076,7 +16060,7 @@
|
|
|
16076
16060
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
16077
16061
|
]; };
|
|
16078
16062
|
|
|
16079
|
-
var sha256 = require('hash.js/lib/hash/sha/256');
|
|
16063
|
+
var sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
16080
16064
|
var BaseGraphqlServiceOptions = /** @class */ (function () {
|
|
16081
16065
|
function BaseGraphqlServiceOptions() {
|
|
16082
16066
|
}
|
|
@@ -16246,8 +16230,8 @@
|
|
|
16246
16230
|
};
|
|
16247
16231
|
/* -- protected methods -- */
|
|
16248
16232
|
BaseGraphqlService.prototype.computeMutableWatchQueryId = function (opts) {
|
|
16249
|
-
var queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
16250
|
-
var variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
16233
|
+
var queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
16234
|
+
var variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
16251
16235
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
16252
16236
|
};
|
|
16253
16237
|
BaseGraphqlService.prototype.findMutableWatchQueries = function (opts) {
|
|
@@ -16320,19 +16304,19 @@
|
|
|
16320
16304
|
/* ------------------------------------
|
|
16321
16305
|
* GraphQL queries
|
|
16322
16306
|
* ------------------------------------*/
|
|
16323
|
-
var Fragments
|
|
16324
|
-
account: core.gql(templateObject_1
|
|
16325
|
-
settings: core.gql(templateObject_2
|
|
16307
|
+
var Fragments = {
|
|
16308
|
+
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 }"]))),
|
|
16309
|
+
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 }"])))
|
|
16326
16310
|
};
|
|
16327
16311
|
// Load account query
|
|
16328
|
-
var LoadQuery
|
|
16312
|
+
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);
|
|
16329
16313
|
// Check email query
|
|
16330
|
-
var IsEmailExistsQuery = core.gql(templateObject_4
|
|
16314
|
+
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"])));
|
|
16331
16315
|
// Save (create or update) account mutation
|
|
16332
16316
|
var AccountMutations = {
|
|
16333
|
-
save: core.gql(templateObject_5
|
|
16334
|
-
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
|
|
16335
|
-
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
|
|
16317
|
+
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),
|
|
16318
|
+
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),
|
|
16319
|
+
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)
|
|
16336
16320
|
};
|
|
16337
16321
|
// Sent confirmation email
|
|
16338
16322
|
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"])));
|
|
@@ -16464,7 +16448,7 @@
|
|
|
16464
16448
|
case 1:
|
|
16465
16449
|
_b.sent();
|
|
16466
16450
|
// Listen graphql start (or restart)
|
|
16467
|
-
this.registerSubscription(this.graphql.
|
|
16451
|
+
this.registerSubscription(this.graphql.stopSubject.subscribe(function () {
|
|
16468
16452
|
if (_this.started && _this.isLogin()) {
|
|
16469
16453
|
console.debug('[account] Restarting, to retry to authenticate...');
|
|
16470
16454
|
_this.restart();
|
|
@@ -16953,7 +16937,7 @@
|
|
|
16953
16937
|
_b.label = 3;
|
|
16954
16938
|
case 3: return [3 /*break*/, 6];
|
|
16955
16939
|
case 4: return [4 /*yield*/, this.graphql.query({
|
|
16956
|
-
query: LoadQuery
|
|
16940
|
+
query: LoadQuery,
|
|
16957
16941
|
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
16958
16942
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
16959
16943
|
})];
|
|
@@ -17599,7 +17583,7 @@
|
|
|
17599
17583
|
};
|
|
17600
17584
|
return AccountService;
|
|
17601
17585
|
}(BaseGraphqlService));
|
|
17602
|
-
AccountService.ɵprov =
|
|
17586
|
+
AccountService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0.ɵɵinject(CryptoService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$2.TranslateService, 8), i0.ɵɵinject(i1$5.ToastController, 8), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
17603
17587
|
AccountService.decorators = [
|
|
17604
17588
|
{ type: i0.Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
|
|
17605
17589
|
];
|
|
@@ -17614,7 +17598,7 @@
|
|
|
17614
17598
|
{ type: i1$5.ToastController, decorators: [{ type: i0.Optional }] },
|
|
17615
17599
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
17616
17600
|
]; };
|
|
17617
|
-
var templateObject_1
|
|
17601
|
+
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;
|
|
17618
17602
|
|
|
17619
17603
|
var Software_1, Configuration_1;
|
|
17620
17604
|
// @dynamic
|
|
@@ -17872,12 +17856,12 @@
|
|
|
17872
17856
|
/* ------------------------------------
|
|
17873
17857
|
* GraphQL queries
|
|
17874
17858
|
* ------------------------------------*/
|
|
17875
|
-
var Fragments = {
|
|
17876
|
-
config: core.gql(templateObject_1$
|
|
17859
|
+
var Fragments$1 = {
|
|
17860
|
+
config: core.gql(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "], ["\n fragment ConfigFragment on ConfigurationVO {\n id\n label\n name\n description\n comments\n properties\n smallLogo\n largeLogo\n backgroundImages\n partners {\n id\n label\n name\n logo\n siteUrl\n __typename\n }\n updateDate\n creationDate\n statusId\n __typename\n }\n "])))
|
|
17877
17861
|
};
|
|
17878
|
-
var LoadQuery = core.gql(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"], ["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"])), Fragments.config);
|
|
17862
|
+
var LoadQuery$1 = core.gql(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"], ["\nquery Configuration{\n data: configuration{\n ...ConfigFragment\n }\n}\n ", "\n"])), Fragments$1.config);
|
|
17879
17863
|
// Save (create or update) account mutation
|
|
17880
|
-
var SaveMutation = core.gql(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"], ["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"])), Fragments.config);
|
|
17864
|
+
var SaveMutation = core.gql(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"], ["\n mutation SaveConfiguration($data: ConfigurationVOInput){\n data: saveConfiguration(config: $data){\n ...ConfigFragment\n }\n }\n ", "\n"])), Fragments$1.config);
|
|
17881
17865
|
var ClearCache = core.gql(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"], ["\n query ClearCache($name: String) {\n clearCache(name: $name)\n }\n"])));
|
|
17882
17866
|
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"])));
|
|
17883
17867
|
var APP_CONFIG_OPTIONS = new i0.InjectionToken('defaultOptions');
|
|
@@ -17924,7 +17908,7 @@
|
|
|
17924
17908
|
data = _a.sent();
|
|
17925
17909
|
this.$data.next(data);
|
|
17926
17910
|
// Restart if graphql service restart
|
|
17927
|
-
this.registerSubscription(this.graphql.
|
|
17911
|
+
this.registerSubscription(this.graphql.stopSubject.subscribe(function () { return _this.restart(); }));
|
|
17928
17912
|
return [2 /*return*/, data];
|
|
17929
17913
|
}
|
|
17930
17914
|
});
|
|
@@ -17938,7 +17922,7 @@
|
|
|
17938
17922
|
case 0:
|
|
17939
17923
|
now = Date.now();
|
|
17940
17924
|
console.debug('[config] Loading Pod configuration...');
|
|
17941
|
-
query = opts && opts.query || LoadQuery;
|
|
17925
|
+
query = opts && opts.query || LoadQuery$1;
|
|
17942
17926
|
variables = opts && opts.variables || undefined;
|
|
17943
17927
|
return [4 /*yield*/, this.graphql.query({
|
|
17944
17928
|
query: query,
|
|
@@ -18244,7 +18228,7 @@
|
|
|
18244
18228
|
};
|
|
18245
18229
|
return ConfigService;
|
|
18246
18230
|
}(BaseGraphqlService));
|
|
18247
|
-
ConfigService.ɵprov =
|
|
18231
|
+
ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(NetworkService), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
18248
18232
|
ConfigService.decorators = [
|
|
18249
18233
|
{ type: i0.Injectable, args: [{
|
|
18250
18234
|
providedIn: 'root',
|
|
@@ -18263,7 +18247,7 @@
|
|
|
18263
18247
|
{ type: undefined, decorators: [{ type: i0.Inject, args: [ENVIRONMENT,] }] },
|
|
18264
18248
|
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
18265
18249
|
]; };
|
|
18266
|
-
var templateObject_1$
|
|
18250
|
+
var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1, templateObject_5$1;
|
|
18267
18251
|
|
|
18268
18252
|
var UploadFilePopover = /** @class */ (function () {
|
|
18269
18253
|
function UploadFilePopover(popoverController, translate, cd) {
|
|
@@ -18541,7 +18525,7 @@
|
|
|
18541
18525
|
return UriUtils;
|
|
18542
18526
|
}());
|
|
18543
18527
|
|
|
18544
|
-
var moment$
|
|
18528
|
+
var moment$4 = momentImported__namespace;
|
|
18545
18529
|
var AndroidOsEnvironment = Object.freeze({
|
|
18546
18530
|
DIRECTORY_DOWNLOADS: 'Download',
|
|
18547
18531
|
DIRECTORY_DOWNLOADS_OLD: 'Downloads',
|
|
@@ -18841,16 +18825,16 @@
|
|
|
18841
18825
|
}
|
|
18842
18826
|
// config moment lib
|
|
18843
18827
|
try {
|
|
18844
|
-
moment$
|
|
18828
|
+
moment$4.locale(event.lang);
|
|
18845
18829
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
18846
18830
|
}
|
|
18847
18831
|
// If error, fallback to en
|
|
18848
18832
|
catch (err) {
|
|
18849
|
-
moment$
|
|
18833
|
+
moment$4.locale('en');
|
|
18850
18834
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
18851
18835
|
}
|
|
18852
18836
|
// Config date adapter
|
|
18853
|
-
_this.dateAdapter.setLocale(moment$
|
|
18837
|
+
_this.dateAdapter.setLocale(moment$4.locale());
|
|
18854
18838
|
}
|
|
18855
18839
|
});
|
|
18856
18840
|
this.settings.onChange.subscribe(function (data) {
|
|
@@ -19102,7 +19086,7 @@
|
|
|
19102
19086
|
};
|
|
19103
19087
|
return PlatformService;
|
|
19104
19088
|
}(StartableService));
|
|
19105
|
-
PlatformService.ɵprov =
|
|
19089
|
+
PlatformService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0.ɵɵinject(i1$5.Platform), i0.ɵɵinject(i2$4.Platform), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$1.MomentDateAdapter), i0.ɵɵinject(EntitiesStorage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ConfigService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i3$2.Storage), i0.ɵɵinject(AudioProvider), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i14.StatusBar, 8), i0.ɵɵinject(i15.Keyboard, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i17.InAppBrowser, 8), i0.ɵɵinject(i18.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
|
|
19106
19090
|
PlatformService.decorators = [
|
|
19107
19091
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
19108
19092
|
];
|
|
@@ -19194,7 +19178,7 @@
|
|
|
19194
19178
|
};
|
|
19195
19179
|
return MatStepperI18n;
|
|
19196
19180
|
}(stepper.MatStepperIntl));
|
|
19197
|
-
MatStepperI18n.ɵprov =
|
|
19181
|
+
MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$2.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
19198
19182
|
MatStepperI18n.decorators = [
|
|
19199
19183
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
19200
19184
|
];
|
|
@@ -19413,7 +19397,7 @@
|
|
|
19413
19397
|
{ type: i0.Component, args: [{
|
|
19414
19398
|
selector: 'app-upload-file',
|
|
19415
19399
|
template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large\" color=\"accent\">file_upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"(file.deleting || file.progress === -1) ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n",
|
|
19416
|
-
styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:1px dashed #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{
|
|
19400
|
+
styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:1px dashed #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{max-height:300px;overflow:auto}.files-list .single-file{display:flex;flex-grow:1;padding:.5rem;justify-content:space-between;align-items:center;border:1px dashed #979797;margin-bottom:1rem}.files-list .single-file.deleting .name{color:grey!important;font-style:italic!important}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 .25rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0deg)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0deg)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0deg)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0deg)}to{transform:translate(1px,-2px) rotate(-1deg)}}"]
|
|
19417
19401
|
},] }
|
|
19418
19402
|
];
|
|
19419
19403
|
UploadFileComponent.ctorParameters = function () { return [
|
|
@@ -20727,17 +20711,6 @@
|
|
|
20727
20711
|
total: ((res1.total || ((_a = res1.data) === null || _a === void 0 ? void 0 : _a.length) || 0) + (res2.total || ((_b = res2.data) === null || _b === void 0 ? void 0 : _b.length) || 0))
|
|
20728
20712
|
};
|
|
20729
20713
|
}
|
|
20730
|
-
var EntitiesService = /** @class */ (function () {
|
|
20731
|
-
function EntitiesService() {
|
|
20732
|
-
}
|
|
20733
|
-
EntitiesService.prototype.ngOnDestroy = function () {
|
|
20734
|
-
// Can be override by subclasses
|
|
20735
|
-
};
|
|
20736
|
-
return EntitiesService;
|
|
20737
|
-
}());
|
|
20738
|
-
EntitiesService.decorators = [
|
|
20739
|
-
{ type: i0.Directive }
|
|
20740
|
-
];
|
|
20741
20714
|
|
|
20742
20715
|
var EntityFilter = /** @class */ (function (_super) {
|
|
20743
20716
|
__extends(EntityFilter, _super);
|
|
@@ -20816,13 +20789,13 @@
|
|
|
20816
20789
|
var InMemoryEntitiesService = /** @class */ (function (_super) {
|
|
20817
20790
|
__extends(InMemoryEntitiesService, _super);
|
|
20818
20791
|
function InMemoryEntitiesService(dataType, filterType, options) {
|
|
20819
|
-
var _this = _super.call(this) || this;
|
|
20792
|
+
var _this = _super.call(this, null) || this;
|
|
20820
20793
|
_this.dataType = dataType;
|
|
20821
20794
|
_this.filterType = filterType;
|
|
20822
20795
|
_this.debug = false;
|
|
20823
|
-
_this.dirty = false;
|
|
20824
|
-
_this._saving = false;
|
|
20825
20796
|
_this.dataSubject = new rxjs.BehaviorSubject(null);
|
|
20797
|
+
_this.dirtySubject = new rxjs.BehaviorSubject(false);
|
|
20798
|
+
_this.savingSubject = new rxjs.BehaviorSubject(false);
|
|
20826
20799
|
options = Object.assign({ onSort: _this.sort }, options);
|
|
20827
20800
|
_this._sortFn = options.onSort;
|
|
20828
20801
|
_this._onLoad = options.onLoad;
|
|
@@ -20851,18 +20824,53 @@
|
|
|
20851
20824
|
enumerable: false,
|
|
20852
20825
|
configurable: true
|
|
20853
20826
|
});
|
|
20827
|
+
Object.defineProperty(InMemoryEntitiesService.prototype, "saving", {
|
|
20828
|
+
get: function () {
|
|
20829
|
+
return this.savingSubject.value;
|
|
20830
|
+
},
|
|
20831
|
+
enumerable: false,
|
|
20832
|
+
configurable: true
|
|
20833
|
+
});
|
|
20834
|
+
Object.defineProperty(InMemoryEntitiesService.prototype, "dirty", {
|
|
20835
|
+
get: function () {
|
|
20836
|
+
return this.dirtySubject.value;
|
|
20837
|
+
},
|
|
20838
|
+
enumerable: false,
|
|
20839
|
+
configurable: true
|
|
20840
|
+
});
|
|
20841
|
+
InMemoryEntitiesService.prototype.ngOnStart = function () {
|
|
20842
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
20843
|
+
return __generator(this, function (_b) {
|
|
20844
|
+
if (this.debug)
|
|
20845
|
+
console.debug('[memory-data-service] Starting...');
|
|
20846
|
+
return [2 /*return*/, firstNotNilPromise(this.dataSubject, { stop: this.stopSubject })];
|
|
20847
|
+
});
|
|
20848
|
+
});
|
|
20849
|
+
};
|
|
20850
|
+
InMemoryEntitiesService.prototype.ngOnStop = function () {
|
|
20851
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
20852
|
+
return __generator(this, function (_b) {
|
|
20853
|
+
if (this.debug)
|
|
20854
|
+
console.debug('[memory-data-service] Stopping...');
|
|
20855
|
+
this.savingSubject.next(false);
|
|
20856
|
+
this.dirtySubject.next(false);
|
|
20857
|
+
this.dataSubject.complete();
|
|
20858
|
+
this.dataSubject = new rxjs.BehaviorSubject(null);
|
|
20859
|
+
return [2 /*return*/];
|
|
20860
|
+
});
|
|
20861
|
+
});
|
|
20862
|
+
};
|
|
20854
20863
|
InMemoryEntitiesService.prototype.ngOnDestroy = function () {
|
|
20855
|
-
|
|
20856
|
-
console.debug('[memory-data-service] Destroying...');
|
|
20857
|
-
this.dataSubject.complete();
|
|
20858
|
-
this.dataSubject.unsubscribe();
|
|
20864
|
+
this.stop();
|
|
20859
20865
|
};
|
|
20860
20866
|
InMemoryEntitiesService.prototype.setValue = function (data) {
|
|
20861
20867
|
if (this.dataSubject.value !== data) {
|
|
20868
|
+
if (!this.started)
|
|
20869
|
+
this.start();
|
|
20862
20870
|
this._hiddenData = [];
|
|
20863
20871
|
this.dataSubject.next(data);
|
|
20864
20872
|
}
|
|
20865
|
-
this.
|
|
20873
|
+
this.markAsPristine();
|
|
20866
20874
|
};
|
|
20867
20875
|
InMemoryEntitiesService.prototype.loadAll = function (offset, size, sortBy, sortDirection, filter, opts) {
|
|
20868
20876
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -20877,26 +20885,25 @@
|
|
|
20877
20885
|
if (isNil(originalData)) {
|
|
20878
20886
|
console.warn('[memory-data-service] Cannot load all: no value set. Will return empty result');
|
|
20879
20887
|
}
|
|
20880
|
-
|
|
20881
|
-
return [4 /*yield*/,
|
|
20888
|
+
// Wait while idle
|
|
20889
|
+
return [4 /*yield*/, this.waitWhileSaving()];
|
|
20882
20890
|
case 1:
|
|
20891
|
+
// Wait while idle
|
|
20883
20892
|
_b.sent();
|
|
20893
|
+
excludedDataByFilter = [];
|
|
20884
20894
|
_b.label = 2;
|
|
20885
20895
|
case 2:
|
|
20886
|
-
|
|
20887
|
-
_b.label = 3;
|
|
20888
|
-
case 3:
|
|
20889
|
-
_b.trys.push([3, , 6, 7]);
|
|
20896
|
+
_b.trys.push([2, , 5, 6]);
|
|
20890
20897
|
if (isEmptyArray(originalData)) {
|
|
20891
20898
|
return [2 /*return*/, { data: [], total: 0 }];
|
|
20892
20899
|
}
|
|
20893
20900
|
data = this._sortFn(originalData, sortBy, sortDirection);
|
|
20894
|
-
if (!this._onLoad) return [3 /*break*/,
|
|
20901
|
+
if (!this._onLoad) return [3 /*break*/, 4];
|
|
20895
20902
|
return [4 /*yield*/, this._onLoad(data)];
|
|
20896
|
-
case
|
|
20903
|
+
case 3:
|
|
20897
20904
|
data = _b.sent();
|
|
20898
|
-
_b.label =
|
|
20899
|
-
case
|
|
20905
|
+
_b.label = 4;
|
|
20906
|
+
case 4:
|
|
20900
20907
|
// Apply filter (will update hiddenData)
|
|
20901
20908
|
data = this.filter(data, filter, excludedDataByFilter);
|
|
20902
20909
|
total = data.length;
|
|
@@ -20953,13 +20960,13 @@
|
|
|
20953
20960
|
}); };
|
|
20954
20961
|
}
|
|
20955
20962
|
return [2 /*return*/, res];
|
|
20956
|
-
case
|
|
20963
|
+
case 5:
|
|
20957
20964
|
// Remember hidden data
|
|
20958
20965
|
if (offset === 0) {
|
|
20959
20966
|
this._hiddenData = !excludedDataByPagination ? excludedDataByFilter : excludedDataByFilter.concat.apply(excludedDataByFilter, __spread(excludedDataByPagination));
|
|
20960
20967
|
}
|
|
20961
20968
|
return [7 /*endfinally*/];
|
|
20962
|
-
case
|
|
20969
|
+
case 6: return [2 /*return*/];
|
|
20963
20970
|
}
|
|
20964
20971
|
});
|
|
20965
20972
|
});
|
|
@@ -20969,9 +20976,9 @@
|
|
|
20969
20976
|
offset = offset >= 0 ? offset : 0;
|
|
20970
20977
|
size = size >= 0 ? size : -1;
|
|
20971
20978
|
return this.dataSubject
|
|
20972
|
-
.pipe(
|
|
20979
|
+
.pipe(operators.takeUntil(this.stopSubject),
|
|
20973
20980
|
// Warn if waiting value to be set
|
|
20974
|
-
operators.tap(function (data) { return !data && console.
|
|
20981
|
+
operators.tap(function (data) { return !data && console.debug('[memory-data-service] Waiting value to be set...'); }), operators.filter(isNotNil), operators.mergeMap(function (_) { return _this.loadAll(offset, size, sortBy, sortDirection, filterData, options); }));
|
|
20975
20982
|
};
|
|
20976
20983
|
InMemoryEntitiesService.prototype.saveAll = function (data, options) {
|
|
20977
20984
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -21003,7 +21010,7 @@
|
|
|
21003
21010
|
_c.label = 5;
|
|
21004
21011
|
case 5:
|
|
21005
21012
|
this.dataSubject.next(data);
|
|
21006
|
-
this.
|
|
21013
|
+
this.markAsDirty();
|
|
21007
21014
|
return [2 /*return*/, data];
|
|
21008
21015
|
case 6:
|
|
21009
21016
|
this.markAsSaved();
|
|
@@ -21021,15 +21028,21 @@
|
|
|
21021
21028
|
data = this.dataSubject.value;
|
|
21022
21029
|
if (!data)
|
|
21023
21030
|
throw new Error('[memory-service] Could not delete, because value not set');
|
|
21024
|
-
|
|
21025
|
-
|
|
21026
|
-
|
|
21027
|
-
|
|
21028
|
-
|
|
21029
|
-
|
|
21030
|
-
|
|
21031
|
-
|
|
21032
|
-
|
|
21031
|
+
this.markAsSaving();
|
|
21032
|
+
try {
|
|
21033
|
+
updatedData = data.filter(function (entity) {
|
|
21034
|
+
var removed = dataToRemove.findIndex(function (entityToRemove) { return _this.equals(entityToRemove, entity); }) !== -1;
|
|
21035
|
+
return !removed;
|
|
21036
|
+
});
|
|
21037
|
+
deleteCount = data.length - updatedData.length;
|
|
21038
|
+
if (deleteCount > 0) {
|
|
21039
|
+
data = updatedData;
|
|
21040
|
+
this.dataSubject.next(data);
|
|
21041
|
+
this.markAsDirty();
|
|
21042
|
+
}
|
|
21043
|
+
}
|
|
21044
|
+
finally {
|
|
21045
|
+
this.markAsSaved();
|
|
21033
21046
|
}
|
|
21034
21047
|
return [2 /*return*/];
|
|
21035
21048
|
});
|
|
@@ -21096,14 +21109,33 @@
|
|
|
21096
21109
|
return { data: data, total: total };
|
|
21097
21110
|
}));
|
|
21098
21111
|
};
|
|
21112
|
+
InMemoryEntitiesService.prototype.waitWhileSaving = function (opts) {
|
|
21113
|
+
if (!this.saving)
|
|
21114
|
+
return;
|
|
21115
|
+
return firstFalsePromise(this.savingSubject, Object.assign({ stop: (opts === null || opts === void 0 ? void 0 : opts.stop) || rxjs.merge(this.stopSubject, this.dataSubject) }, opts));
|
|
21116
|
+
};
|
|
21099
21117
|
InMemoryEntitiesService.prototype.markAsSaving = function () {
|
|
21100
|
-
this.
|
|
21118
|
+
if (!this.savingSubject.value) {
|
|
21119
|
+
this.savingSubject.next(true);
|
|
21120
|
+
}
|
|
21101
21121
|
};
|
|
21102
21122
|
InMemoryEntitiesService.prototype.markAsSaved = function () {
|
|
21103
|
-
this.
|
|
21123
|
+
if (this.savingSubject.value) {
|
|
21124
|
+
this.savingSubject.next(false);
|
|
21125
|
+
}
|
|
21126
|
+
};
|
|
21127
|
+
InMemoryEntitiesService.prototype.markAsDirty = function () {
|
|
21128
|
+
if (!this.dirtySubject.value) {
|
|
21129
|
+
this.dirtySubject.next(true);
|
|
21130
|
+
}
|
|
21131
|
+
};
|
|
21132
|
+
InMemoryEntitiesService.prototype.markAsPristine = function () {
|
|
21133
|
+
if (this.dirtySubject.value) {
|
|
21134
|
+
this.dirtySubject.next(false);
|
|
21135
|
+
}
|
|
21104
21136
|
};
|
|
21105
21137
|
return InMemoryEntitiesService;
|
|
21106
|
-
}(
|
|
21138
|
+
}(StartableService));
|
|
21107
21139
|
InMemoryEntitiesService.decorators = [
|
|
21108
21140
|
{ type: i0.Directive }
|
|
21109
21141
|
];
|
|
@@ -21479,7 +21511,7 @@
|
|
|
21479
21511
|
return 1;
|
|
21480
21512
|
}
|
|
21481
21513
|
}
|
|
21482
|
-
var ɵ0$
|
|
21514
|
+
var ɵ0$b = function (defaultStateSize) { return [
|
|
21483
21515
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
21484
21516
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
21485
21517
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -21487,7 +21519,7 @@
|
|
|
21487
21519
|
var SCALE_OPTIONS_DEFAULT = {
|
|
21488
21520
|
startColor: rgbArrayMap.red,
|
|
21489
21521
|
startStates: [0, 2, 3],
|
|
21490
|
-
startStepsFn: ɵ0$
|
|
21522
|
+
startStepsFn: ɵ0$b
|
|
21491
21523
|
};
|
|
21492
21524
|
/**
|
|
21493
21525
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -22444,7 +22476,7 @@
|
|
|
22444
22476
|
};
|
|
22445
22477
|
return UserSettingsValidatorService;
|
|
22446
22478
|
}(AppValidatorService));
|
|
22447
|
-
UserSettingsValidatorService.ɵprov =
|
|
22479
|
+
UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
22448
22480
|
UserSettingsValidatorService.decorators = [
|
|
22449
22481
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
22450
22482
|
];
|
|
@@ -22492,7 +22524,7 @@
|
|
|
22492
22524
|
};
|
|
22493
22525
|
return AccountValidatorService;
|
|
22494
22526
|
}(AppValidatorService));
|
|
22495
|
-
AccountValidatorService.ɵprov =
|
|
22527
|
+
AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
22496
22528
|
AccountValidatorService.decorators = [
|
|
22497
22529
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
22498
22530
|
];
|
|
@@ -22839,7 +22871,7 @@
|
|
|
22839
22871
|
};
|
|
22840
22872
|
return MenuService;
|
|
22841
22873
|
}());
|
|
22842
|
-
MenuService.ɵprov =
|
|
22874
|
+
MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
22843
22875
|
MenuService.decorators = [
|
|
22844
22876
|
{ type: i0.Injectable, args: [{
|
|
22845
22877
|
providedIn: 'root'
|
|
@@ -23205,7 +23237,7 @@
|
|
|
23205
23237
|
};
|
|
23206
23238
|
return LocalSettingsValidatorService;
|
|
23207
23239
|
}(AppValidatorService));
|
|
23208
|
-
LocalSettingsValidatorService.ɵprov =
|
|
23240
|
+
LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
23209
23241
|
LocalSettingsValidatorService.decorators = [
|
|
23210
23242
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
23211
23243
|
];
|
|
@@ -23985,7 +24017,7 @@
|
|
|
23985
24017
|
};
|
|
23986
24018
|
return IsOnFieldModePipe;
|
|
23987
24019
|
}());
|
|
23988
|
-
IsOnFieldModePipe.ɵprov =
|
|
24020
|
+
IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
23989
24021
|
IsOnFieldModePipe.decorators = [
|
|
23990
24022
|
{ type: i0.Pipe, args: [{
|
|
23991
24023
|
name: 'isOnField'
|
|
@@ -24000,7 +24032,7 @@
|
|
|
24000
24032
|
};
|
|
24001
24033
|
return IsNotOnFieldModePipe;
|
|
24002
24034
|
}());
|
|
24003
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
24035
|
+
IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
24004
24036
|
IsNotOnFieldModePipe.decorators = [
|
|
24005
24037
|
{ type: i0.Pipe, args: [{
|
|
24006
24038
|
name: 'isNotOnField'
|
|
@@ -24018,7 +24050,7 @@
|
|
|
24018
24050
|
};
|
|
24019
24051
|
return PersonToStringPipe;
|
|
24020
24052
|
}());
|
|
24021
|
-
PersonToStringPipe.ɵprov =
|
|
24053
|
+
PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
24022
24054
|
PersonToStringPipe.decorators = [
|
|
24023
24055
|
{ type: i0.Pipe, args: [{
|
|
24024
24056
|
name: 'personToString'
|
|
@@ -24446,7 +24478,7 @@
|
|
|
24446
24478
|
};
|
|
24447
24479
|
return IsLoginAccountPipe;
|
|
24448
24480
|
}());
|
|
24449
|
-
IsLoginAccountPipe.ɵprov =
|
|
24481
|
+
IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
24450
24482
|
IsLoginAccountPipe.decorators = [
|
|
24451
24483
|
{ type: i0.Pipe, args: [{
|
|
24452
24484
|
name: 'isLogin'
|
|
@@ -24461,7 +24493,7 @@
|
|
|
24461
24493
|
};
|
|
24462
24494
|
return AccountToStringPipe;
|
|
24463
24495
|
}());
|
|
24464
|
-
AccountToStringPipe.ɵprov =
|
|
24496
|
+
AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
24465
24497
|
AccountToStringPipe.decorators = [
|
|
24466
24498
|
{ type: i0.Pipe, args: [{
|
|
24467
24499
|
name: 'accountToString'
|
|
@@ -24479,7 +24511,7 @@
|
|
|
24479
24511
|
};
|
|
24480
24512
|
return DepartmentToStringPipe;
|
|
24481
24513
|
}());
|
|
24482
|
-
DepartmentToStringPipe.ɵprov =
|
|
24514
|
+
DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
24483
24515
|
DepartmentToStringPipe.decorators = [
|
|
24484
24516
|
{ type: i0.Pipe, args: [{
|
|
24485
24517
|
name: 'departmentToString'
|
|
@@ -25245,7 +25277,7 @@
|
|
|
25245
25277
|
};
|
|
25246
25278
|
return AuthGuardService;
|
|
25247
25279
|
}());
|
|
25248
|
-
AuthGuardService.ɵprov =
|
|
25280
|
+
AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0.ɵɵinject(AccountService), i0.ɵɵinject(i1$5.ModalController), i0.ɵɵinject(i3.Router), i0.ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
25249
25281
|
AuthGuardService.decorators = [
|
|
25250
25282
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
25251
25283
|
];
|
|
@@ -26120,7 +26152,7 @@
|
|
|
26120
26152
|
this.handleServiceError(err_1);
|
|
26121
26153
|
return [3 /*break*/, 5];
|
|
26122
26154
|
case 4:
|
|
26123
|
-
this.
|
|
26155
|
+
this.markAsLoaded();
|
|
26124
26156
|
return [7 /*endfinally*/];
|
|
26125
26157
|
case 5: return [2 /*return*/];
|
|
26126
26158
|
}
|
|
@@ -26850,6 +26882,7 @@
|
|
|
26850
26882
|
// Stop event
|
|
26851
26883
|
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
26852
26884
|
// Confirmation edition or creation
|
|
26885
|
+
// TODO: add await ?
|
|
26853
26886
|
var confirmed = row.confirmEditCreate();
|
|
26854
26887
|
if (confirmed) {
|
|
26855
26888
|
// If edit finished, forget edited row
|
|
@@ -26868,6 +26901,7 @@
|
|
|
26868
26901
|
}
|
|
26869
26902
|
if (row.validator) {
|
|
26870
26903
|
// If pending: Wait end of validation, then loop
|
|
26904
|
+
// TODO: remove when using async isValid() function
|
|
26871
26905
|
if (row.validator.pending) {
|
|
26872
26906
|
AppFormUtils.waitWhilePending(row.validator).then(function () { return _this.confirmEditCreate(event, row); });
|
|
26873
26907
|
return false;
|
|
@@ -27036,20 +27070,16 @@
|
|
|
27036
27070
|
var rows;
|
|
27037
27071
|
var _this = this;
|
|
27038
27072
|
return __generator(this, function (_e) {
|
|
27039
|
-
|
|
27040
|
-
|
|
27041
|
-
|
|
27042
|
-
|
|
27043
|
-
if (!this.isAllSelected()) return [3 /*break*/, 1];
|
|
27044
|
-
this.selection.clear();
|
|
27045
|
-
return [3 /*break*/, 3];
|
|
27046
|
-
case 1: return [4 /*yield*/, this._dataSource.getRows()];
|
|
27047
|
-
case 2:
|
|
27048
|
-
rows = _e.sent();
|
|
27049
|
-
rows.forEach(function (row) { return _this.selection.select(row); });
|
|
27050
|
-
_e.label = 3;
|
|
27051
|
-
case 3: return [2 /*return*/];
|
|
27073
|
+
if (this.loading)
|
|
27074
|
+
return [2 /*return*/];
|
|
27075
|
+
if (this.isAllSelected()) {
|
|
27076
|
+
this.selection.clear();
|
|
27052
27077
|
}
|
|
27078
|
+
else {
|
|
27079
|
+
rows = this._dataSource.getRows();
|
|
27080
|
+
rows.forEach(function (row) { return _this.selection.select(row); });
|
|
27081
|
+
}
|
|
27082
|
+
return [2 /*return*/];
|
|
27053
27083
|
});
|
|
27054
27084
|
});
|
|
27055
27085
|
};
|
|
@@ -27213,9 +27243,7 @@
|
|
|
27213
27243
|
return [4 /*yield*/, this.waitIdle()];
|
|
27214
27244
|
case 1:
|
|
27215
27245
|
_e.sent();
|
|
27216
|
-
|
|
27217
|
-
case 2:
|
|
27218
|
-
row = ((_e.sent()) || [])
|
|
27246
|
+
row = this.dataSource.getRows()
|
|
27219
27247
|
.find(function (row) { return _this.equals(row.currentData, data); });
|
|
27220
27248
|
if (!row)
|
|
27221
27249
|
return [2 /*return*/, false];
|
|
@@ -27494,40 +27522,33 @@
|
|
|
27494
27522
|
};
|
|
27495
27523
|
AppTable.prototype.canCancelRows = function (rows, opts) {
|
|
27496
27524
|
return __awaiter(this, void 0, void 0, function () {
|
|
27497
|
-
var
|
|
27498
|
-
return __generator(this, function (
|
|
27499
|
-
switch (
|
|
27525
|
+
var isCancel, err_5;
|
|
27526
|
+
return __generator(this, function (_e) {
|
|
27527
|
+
switch (_e.label) {
|
|
27500
27528
|
case 0:
|
|
27501
|
-
_e = rows;
|
|
27502
|
-
if (_e) return [3 /*break*/, 2];
|
|
27503
|
-
return [4 /*yield*/, this.dataSource.getRows()];
|
|
27504
|
-
case 1:
|
|
27505
|
-
_e = (_f.sent()).filter(function (row) { var _a; return (_a = row.validator) === null || _a === void 0 ? void 0 : _a.dirty; });
|
|
27506
|
-
_f.label = 2;
|
|
27507
|
-
case 2:
|
|
27508
27529
|
// Get dirty rows
|
|
27509
|
-
rows =
|
|
27530
|
+
rows = rows || this.dataSource.getRows().filter(function (row) { var _a; return (_a = row.validator) === null || _a === void 0 ? void 0 : _a.dirty; });
|
|
27510
27531
|
if (isEmptyArray(rows))
|
|
27511
27532
|
return [2 /*return*/, true]; // No dirty: OK
|
|
27512
|
-
if (!(this.onBeforeCancelRows.observers.length > 0)) return [3 /*break*/,
|
|
27513
|
-
|
|
27514
|
-
case
|
|
27515
|
-
|
|
27533
|
+
if (!(this.onBeforeCancelRows.observers.length > 0)) return [3 /*break*/, 4];
|
|
27534
|
+
_e.label = 1;
|
|
27535
|
+
case 1:
|
|
27536
|
+
_e.trys.push([1, 3, , 4]);
|
|
27516
27537
|
return [4 /*yield*/, emitPromiseEvent(this.onBeforeCancelRows, 'canCancel', {
|
|
27517
27538
|
detail: { rows: rows }
|
|
27518
27539
|
})];
|
|
27519
|
-
case
|
|
27520
|
-
isCancel =
|
|
27540
|
+
case 2:
|
|
27541
|
+
isCancel = _e.sent();
|
|
27521
27542
|
if (!isCancel)
|
|
27522
27543
|
return [2 /*return*/, false];
|
|
27523
|
-
return [3 /*break*/,
|
|
27524
|
-
case
|
|
27525
|
-
err_5 =
|
|
27544
|
+
return [3 /*break*/, 4];
|
|
27545
|
+
case 3:
|
|
27546
|
+
err_5 = _e.sent();
|
|
27526
27547
|
if (err_5 === 'CANCELLED')
|
|
27527
27548
|
return [2 /*return*/, false]; // User cancel
|
|
27528
27549
|
console.error('Error while checking if can cancel rows', err_5);
|
|
27529
27550
|
throw err_5;
|
|
27530
|
-
case
|
|
27551
|
+
case 4:
|
|
27531
27552
|
// Ask user confirmation
|
|
27532
27553
|
if (this.confirmBeforeCancel && (!opts || opts.interactive !== false)) {
|
|
27533
27554
|
return [2 /*return*/, this.askCancelConfirmation(null, rows)];
|
|
@@ -28426,13 +28447,14 @@
|
|
|
28426
28447
|
}
|
|
28427
28448
|
};
|
|
28428
28449
|
AppEditor.prototype.markAsLoaded = function (opts) {
|
|
28429
|
-
var _a;
|
|
28450
|
+
var _a, _b;
|
|
28430
28451
|
if (this.loadingSubject.value) {
|
|
28431
28452
|
this.loadingSubject.next(false);
|
|
28432
28453
|
if (!opts || opts.onlySelf !== true) {
|
|
28433
|
-
// Emit to children forms
|
|
28434
|
-
//
|
|
28435
|
-
(_a = this.forms) === null || _a === void 0 ? void 0 : _a.forEach(function (
|
|
28454
|
+
// Emit to children forms and editors
|
|
28455
|
+
// note: tables should be changed by parent
|
|
28456
|
+
(_a = this.forms) === null || _a === void 0 ? void 0 : _a.forEach(function (f) { return f.markAsLoaded(opts); });
|
|
28457
|
+
(_b = this.editors) === null || _b === void 0 ? void 0 : _b.forEach(function (e) { return e.markAsLoaded(opts); });
|
|
28436
28458
|
}
|
|
28437
28459
|
if (!opts || opts.emitEvent !== false) {
|
|
28438
28460
|
this.markForCheck();
|
|
@@ -28456,20 +28478,20 @@
|
|
|
28456
28478
|
};
|
|
28457
28479
|
AppEditor.prototype.cancel = function (event) {
|
|
28458
28480
|
return __awaiter(this, void 0, void 0, function () {
|
|
28459
|
-
return __generator(this, function (
|
|
28460
|
-
switch (
|
|
28481
|
+
return __generator(this, function (_c) {
|
|
28482
|
+
switch (_c.label) {
|
|
28461
28483
|
case 0:
|
|
28462
28484
|
if (!this.isNewData) return [3 /*break*/, 2];
|
|
28463
28485
|
return [4 /*yield*/, this.unload()];
|
|
28464
28486
|
case 1:
|
|
28465
|
-
|
|
28487
|
+
_c.sent(); // async reset
|
|
28466
28488
|
return [3 /*break*/, 4];
|
|
28467
28489
|
case 2:
|
|
28468
28490
|
if (!this.dirty) return [3 /*break*/, 4];
|
|
28469
28491
|
return [4 /*yield*/, this.reload()];
|
|
28470
28492
|
case 3:
|
|
28471
|
-
|
|
28472
|
-
|
|
28493
|
+
_c.sent(); // async reload
|
|
28494
|
+
_c.label = 4;
|
|
28473
28495
|
case 4: return [2 /*return*/];
|
|
28474
28496
|
}
|
|
28475
28497
|
});
|
|
@@ -28483,7 +28505,7 @@
|
|
|
28483
28505
|
AppEditor.prototype.unload = function (opts) {
|
|
28484
28506
|
var _a;
|
|
28485
28507
|
return __awaiter(this, void 0, void 0, function () {
|
|
28486
|
-
return __generator(this, function (
|
|
28508
|
+
return __generator(this, function (_c) {
|
|
28487
28509
|
console.debug('[tab-page] Unloading data...');
|
|
28488
28510
|
this.markAsLoading();
|
|
28489
28511
|
(_a = this._children) === null || _a === void 0 ? void 0 : _a.forEach(function (f) {
|
|
@@ -28501,8 +28523,8 @@
|
|
|
28501
28523
|
AppEditor.prototype.reloadWithConfirmation = function (confirm) {
|
|
28502
28524
|
return __awaiter(this, void 0, void 0, function () {
|
|
28503
28525
|
var needConfirm, translations, alert;
|
|
28504
|
-
return __generator(this, function (
|
|
28505
|
-
switch (
|
|
28526
|
+
return __generator(this, function (_c) {
|
|
28527
|
+
switch (_c.label) {
|
|
28506
28528
|
case 0:
|
|
28507
28529
|
needConfirm = this.dirty;
|
|
28508
28530
|
if (!(!confirm && needConfirm)) return [3 /*break*/, 4];
|
|
@@ -28527,20 +28549,20 @@
|
|
|
28527
28549
|
]
|
|
28528
28550
|
})];
|
|
28529
28551
|
case 1:
|
|
28530
|
-
alert =
|
|
28552
|
+
alert = _c.sent();
|
|
28531
28553
|
return [4 /*yield*/, alert.present()];
|
|
28532
28554
|
case 2:
|
|
28533
|
-
|
|
28555
|
+
_c.sent();
|
|
28534
28556
|
return [4 /*yield*/, alert.onDidDismiss()];
|
|
28535
28557
|
case 3:
|
|
28536
|
-
|
|
28537
|
-
|
|
28558
|
+
_c.sent();
|
|
28559
|
+
_c.label = 4;
|
|
28538
28560
|
case 4:
|
|
28539
28561
|
if (!(confirm || !needConfirm)) return [3 /*break*/, 6];
|
|
28540
28562
|
this.scrollToTop();
|
|
28541
28563
|
this.disable();
|
|
28542
28564
|
return [4 /*yield*/, this.reload()];
|
|
28543
|
-
case 5: return [2 /*return*/,
|
|
28565
|
+
case 5: return [2 /*return*/, _c.sent()];
|
|
28544
28566
|
case 6: return [2 /*return*/];
|
|
28545
28567
|
}
|
|
28546
28568
|
});
|
|
@@ -28549,7 +28571,7 @@
|
|
|
28549
28571
|
AppEditor.prototype.goBack = function (event) {
|
|
28550
28572
|
var _a;
|
|
28551
28573
|
return __awaiter(this, void 0, void 0, function () {
|
|
28552
|
-
return __generator(this, function (
|
|
28574
|
+
return __generator(this, function (_c) {
|
|
28553
28575
|
// Go back
|
|
28554
28576
|
if ((_a = this.toolbar) === null || _a === void 0 ? void 0 : _a.canGoBack) {
|
|
28555
28577
|
return [2 /*return*/, this.toolbar.goBack()];
|
|
@@ -28573,7 +28595,7 @@
|
|
|
28573
28595
|
AppEditor.prototype.scrollToTop = function (duration) {
|
|
28574
28596
|
return __awaiter(this, void 0, void 0, function () {
|
|
28575
28597
|
var scrollToTop_1;
|
|
28576
|
-
return __generator(this, function (
|
|
28598
|
+
return __generator(this, function (_c) {
|
|
28577
28599
|
duration = toNumber(duration, 500);
|
|
28578
28600
|
if (!this.content) {
|
|
28579
28601
|
console.warn("[tab-editor] Cannot scroll to top. (no 'ion-content' tag found " + this.constructor.name);
|
|
@@ -28600,14 +28622,15 @@
|
|
|
28600
28622
|
};
|
|
28601
28623
|
AppEditor.prototype.saveIfDirtyAndConfirm = function (event, opts) {
|
|
28602
28624
|
return __awaiter(this, void 0, void 0, function () {
|
|
28603
|
-
var
|
|
28604
|
-
return __generator(this, function (
|
|
28605
|
-
switch (
|
|
28625
|
+
var confirmed, cancel_1, translations, alert;
|
|
28626
|
+
return __generator(this, function (_c) {
|
|
28627
|
+
switch (_c.label) {
|
|
28606
28628
|
case 0:
|
|
28607
28629
|
if (!this.dirty)
|
|
28608
28630
|
return [2 /*return*/, true];
|
|
28609
|
-
|
|
28610
|
-
|
|
28631
|
+
confirmed = (opts === null || opts === void 0 ? void 0 : opts.confirmed) || false;
|
|
28632
|
+
if (!!confirmed) return [3 /*break*/, 4];
|
|
28633
|
+
cancel_1 = false;
|
|
28611
28634
|
translations = this.translate.instant(['COMMON.BTN_SAVE', 'COMMON.BTN_CANCEL', 'COMMON.BTN_ABORT_CHANGES', 'CONFIRM.SAVE', 'CONFIRM.ALERT_HEADER']);
|
|
28612
28635
|
return [4 /*yield*/, this.alertCtrl.create({
|
|
28613
28636
|
header: translations['CONFIRM.ALERT_HEADER'],
|
|
@@ -28618,7 +28641,7 @@
|
|
|
28618
28641
|
role: 'cancel',
|
|
28619
28642
|
cssClass: 'secondary',
|
|
28620
28643
|
handler: function () {
|
|
28621
|
-
|
|
28644
|
+
cancel_1 = true;
|
|
28622
28645
|
}
|
|
28623
28646
|
},
|
|
28624
28647
|
{
|
|
@@ -28630,38 +28653,39 @@
|
|
|
28630
28653
|
{
|
|
28631
28654
|
text: translations['COMMON.BTN_SAVE'],
|
|
28632
28655
|
handler: function () {
|
|
28633
|
-
|
|
28656
|
+
confirmed = true; // update upper value
|
|
28634
28657
|
}
|
|
28635
28658
|
}
|
|
28636
28659
|
]
|
|
28637
28660
|
})];
|
|
28638
28661
|
case 1:
|
|
28639
|
-
alert =
|
|
28662
|
+
alert = _c.sent();
|
|
28640
28663
|
return [4 /*yield*/, alert.present()];
|
|
28641
28664
|
case 2:
|
|
28642
|
-
|
|
28665
|
+
_c.sent();
|
|
28643
28666
|
return [4 /*yield*/, alert.onDidDismiss()];
|
|
28644
28667
|
case 3:
|
|
28645
|
-
|
|
28646
|
-
if (!
|
|
28647
|
-
return [2 /*return*/, !
|
|
28668
|
+
_c.sent();
|
|
28669
|
+
if (!confirmed) {
|
|
28670
|
+
return [2 /*return*/, !cancel_1];
|
|
28648
28671
|
}
|
|
28649
|
-
|
|
28650
|
-
case 4: return [
|
|
28672
|
+
_c.label = 4;
|
|
28673
|
+
case 4: return [4 /*yield*/, this.save(event, opts)];
|
|
28674
|
+
case 5: return [2 /*return*/, _c.sent()];
|
|
28651
28675
|
}
|
|
28652
28676
|
});
|
|
28653
28677
|
});
|
|
28654
28678
|
};
|
|
28655
28679
|
AppEditor.prototype.showToast = function (opts) {
|
|
28656
28680
|
return __awaiter(this, void 0, void 0, function () {
|
|
28657
|
-
return __generator(this, function (
|
|
28658
|
-
switch (
|
|
28681
|
+
return __generator(this, function (_c) {
|
|
28682
|
+
switch (_c.label) {
|
|
28659
28683
|
case 0:
|
|
28660
28684
|
if (!this.toastController)
|
|
28661
28685
|
throw new Error('Missing toastController in component\'s constructor');
|
|
28662
28686
|
return [4 /*yield*/, Toasts.show(this.toastController, this.translate, opts)];
|
|
28663
28687
|
case 1:
|
|
28664
|
-
|
|
28688
|
+
_c.sent();
|
|
28665
28689
|
return [2 /*return*/];
|
|
28666
28690
|
}
|
|
28667
28691
|
});
|
|
@@ -28886,13 +28910,13 @@
|
|
|
28886
28910
|
unload: { get: function () { return _super_1.prototype.unload; } }
|
|
28887
28911
|
});
|
|
28888
28912
|
return __awaiter(this, void 0, void 0, function () {
|
|
28889
|
-
return __generator(this, function (
|
|
28890
|
-
switch (
|
|
28913
|
+
return __generator(this, function (_c) {
|
|
28914
|
+
switch (_c.label) {
|
|
28891
28915
|
case 0:
|
|
28892
28916
|
this.selectedTabIndex = 0;
|
|
28893
28917
|
return [4 /*yield*/, _super.unload.call(this, opts)];
|
|
28894
28918
|
case 1:
|
|
28895
|
-
|
|
28919
|
+
_c.sent();
|
|
28896
28920
|
return [2 /*return*/];
|
|
28897
28921
|
}
|
|
28898
28922
|
});
|
|
@@ -28901,13 +28925,13 @@
|
|
|
28901
28925
|
AppTabEditor.prototype.saveDirtyTables = function () {
|
|
28902
28926
|
return __awaiter(this, void 0, void 0, function () {
|
|
28903
28927
|
var results, saved;
|
|
28904
|
-
return __generator(this, function (
|
|
28905
|
-
switch (
|
|
28928
|
+
return __generator(this, function (_c) {
|
|
28929
|
+
switch (_c.label) {
|
|
28906
28930
|
case 0: return [4 /*yield*/, Promise.all((this.tables || [])
|
|
28907
28931
|
.filter(function (c) { return c.dirty; })
|
|
28908
28932
|
.map(function (c) { return c.save(); }))];
|
|
28909
28933
|
case 1:
|
|
28910
|
-
results =
|
|
28934
|
+
results = _c.sent();
|
|
28911
28935
|
saved = results.findIndex(function (result) { return result !== true; }) === -1;
|
|
28912
28936
|
return [2 /*return*/, saved];
|
|
28913
28937
|
}
|
|
@@ -30398,7 +30422,7 @@
|
|
|
30398
30422
|
SUBSCRIBE_JOB_PROGRESSION_ERROR: 50010
|
|
30399
30423
|
};
|
|
30400
30424
|
|
|
30401
|
-
var moment$
|
|
30425
|
+
var moment$6 = momentImported__namespace;
|
|
30402
30426
|
var USER_EVENT_SERVICE = new i0.InjectionToken('UserEventService');
|
|
30403
30427
|
var AbstractUserEventService = /** @class */ (function (_super) {
|
|
30404
30428
|
__extends(AbstractUserEventService, _super);
|
|
@@ -30920,7 +30944,7 @@
|
|
|
30920
30944
|
};
|
|
30921
30945
|
AbstractUserEventService.prototype.resetCount = function () {
|
|
30922
30946
|
this._countSubject.next(undefined);
|
|
30923
|
-
this.resetCountDate = moment$
|
|
30947
|
+
this.resetCountDate = moment$6();
|
|
30924
30948
|
// restart listening count changes
|
|
30925
30949
|
this.startListenCountChanges();
|
|
30926
30950
|
};
|
|
@@ -31024,7 +31048,7 @@
|
|
|
31024
31048
|
if (!userEvents.length)
|
|
31025
31049
|
return [2 /*return*/];
|
|
31026
31050
|
// set read date
|
|
31027
|
-
userEvents.forEach(function (userEvent) { return userEvent.readDate = moment$
|
|
31051
|
+
userEvents.forEach(function (userEvent) { return userEvent.readDate = moment$6(); });
|
|
31028
31052
|
localEntities = userEvents.filter(function (userEvent) { return !userEvent.id || userEvent.id < 0; });
|
|
31029
31053
|
remoteEntities = userEvents.filter(function (userEvent) { return userEvent.id > 0; });
|
|
31030
31054
|
// save local entities
|
|
@@ -32070,7 +32094,7 @@
|
|
|
32070
32094
|
];
|
|
32071
32095
|
|
|
32072
32096
|
var Mutations = {
|
|
32073
|
-
send: core.gql(templateObject_1$
|
|
32097
|
+
send: core.gql(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"], ["mutation SendMessage($data: MessageVOInput){\n done: sendMessage(message: $data)\n }"])))
|
|
32074
32098
|
};
|
|
32075
32099
|
var MessageService = /** @class */ (function (_super) {
|
|
32076
32100
|
__extends(MessageService, _super);
|
|
@@ -32144,7 +32168,7 @@
|
|
|
32144
32168
|
};
|
|
32145
32169
|
return MessageService;
|
|
32146
32170
|
}(BaseGraphqlService));
|
|
32147
|
-
MessageService.ɵprov =
|
|
32171
|
+
MessageService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MessageService_Factory() { return new MessageService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i1$2.TranslateService), i0.ɵɵinject(i1$5.ToastController), i0.ɵɵinject(ENVIRONMENT, 8)); }, token: MessageService, providedIn: "root" });
|
|
32148
32172
|
MessageService.decorators = [
|
|
32149
32173
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
32150
32174
|
];
|
|
@@ -32154,7 +32178,7 @@
|
|
|
32154
32178
|
{ type: i1$5.ToastController },
|
|
32155
32179
|
{ type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
32156
32180
|
]; };
|
|
32157
|
-
var templateObject_1$
|
|
32181
|
+
var templateObject_1$3;
|
|
32158
32182
|
|
|
32159
32183
|
var PersonFilter_1;
|
|
32160
32184
|
// @dynamic
|
|
@@ -32213,16 +32237,16 @@
|
|
|
32213
32237
|
], exports.PersonFilter);
|
|
32214
32238
|
|
|
32215
32239
|
var PersonFragments = {
|
|
32216
|
-
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 }"])))
|
|
32240
|
+
person: core.gql(templateObject_1$4 || (templateObject_1$4 = __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 }"])))
|
|
32217
32241
|
};
|
|
32218
32242
|
// Load persons query
|
|
32219
32243
|
var PersonQueries = {
|
|
32220
|
-
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),
|
|
32221
|
-
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)
|
|
32244
|
+
loadAll: core.gql(templateObject_2$2 || (templateObject_2$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),
|
|
32245
|
+
loadAllWithTotal: core.gql(templateObject_3$2 || (templateObject_3$2 = __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)
|
|
32222
32246
|
};
|
|
32223
32247
|
var PersonMutations = {
|
|
32224
|
-
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),
|
|
32225
|
-
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 }"])))
|
|
32248
|
+
saveAll: core.gql(templateObject_4$2 || (templateObject_4$2 = __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),
|
|
32249
|
+
deleteAll: core.gql(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"], ["\n mutation deletePersons($ids:[Int]){\n deletePersons(ids: $ids)\n }"])))
|
|
32226
32250
|
};
|
|
32227
32251
|
var PersonService = /** @class */ (function (_super_1) {
|
|
32228
32252
|
__extends(PersonService, _super_1);
|
|
@@ -32343,7 +32367,7 @@
|
|
|
32343
32367
|
};
|
|
32344
32368
|
return PersonService;
|
|
32345
32369
|
}(BaseEntityService));
|
|
32346
|
-
PersonService.ɵprov =
|
|
32370
|
+
PersonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(PlatformService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
32347
32371
|
PersonService.decorators = [
|
|
32348
32372
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
32349
32373
|
];
|
|
@@ -32353,7 +32377,7 @@
|
|
|
32353
32377
|
{ type: NetworkService },
|
|
32354
32378
|
{ type: EntitiesStorage }
|
|
32355
32379
|
]; };
|
|
32356
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
32380
|
+
var templateObject_1$4, templateObject_2$2, templateObject_3$2, templateObject_4$2, templateObject_5$2;
|
|
32357
32381
|
|
|
32358
32382
|
var PersonValidatorService = /** @class */ (function () {
|
|
32359
32383
|
function PersonValidatorService(formBuilder, accountValidatorService) {
|
|
@@ -32376,7 +32400,7 @@
|
|
|
32376
32400
|
};
|
|
32377
32401
|
return PersonValidatorService;
|
|
32378
32402
|
}());
|
|
32379
|
-
PersonValidatorService.ɵprov =
|
|
32403
|
+
PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
32380
32404
|
PersonValidatorService.decorators = [
|
|
32381
32405
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
32382
32406
|
];
|
|
@@ -32587,7 +32611,7 @@
|
|
|
32587
32611
|
UsersPage.decorators = [
|
|
32588
32612
|
{ type: i0.Component, args: [{
|
|
32589
32613
|
selector: 'app-users-table',
|
|
32590
|
-
template: "<app-toolbar [title]=\"'USER.LIST.TITLE'|translate\"\n color=\"primary\"\n [canGoBack]=\"false\"\n [hasValidate]=\"!(loadingSubject|async) && dirty\"\n (onValidate)=\"save()\">\n <ion-buttons slot=\"end\">\n\n <!-- Compose message -->\n <button mat-icon-button *ngIf=\"canSendMessage\"\n [title]=\"'USER.LIST.BTN_SEND_MESSAGE'|translate\"\n (click)=\"openComposeMessageModal($event)\">\n <ion-icon name=\"mail\" slot=\"icon-only\"></ion-icon>\n </button>\n\n <ng-container *ngIf=\"!selection.hasValue(); else hasSelection\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"canEdit && !mobile\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"addRow()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Refresh -->\n <button mat-icon-button *ngIf=\"!mobile\"\n [title]=\"'COMMON.BTN_REFRESH'|translate\"\n (click)=\"onRefresh.emit()\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n <!-- reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\"\n *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold;\">close</mat-icon>\n </button>\n\n <!-- show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon *ngIf=\"filterCriteriaCount; else emptyFilter\"\n [matBadge]=\"filterCriteriaCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\">filter_list_alt\n </mat-icon>\n <ng-template #emptyFilter>\n <mat-icon>filter_list_alt</mat-icon>\n </ng-template>\n </button>\n </ng-container>\n\n <ng-template #hasSelection>\n\n <!-- delete -->\n <button mat-icon-button\n class=\"hidden-xs hidden-sm\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n (click)=\"deleteSelection($event)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ng-template>\n </ion-buttons>\n</app-toolbar>\n\n<ion-content class=\"ion-no-padding\">\n\n <!-- error -->\n <ion-item *ngIf=\"errorSubject|async ; let error\" lines=\"none\" @slideUpDownAnimation>\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <!-- search -->\n <mat-expansion-panel #filterExpansionPanel class=\"ion-no-padding filter-panel filter-panel-floating\">\n <form class=\"form-container ion-padding\" [formGroup]=\"filterForm\" (ngSubmit)=\"onRefresh.emit()\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search -->\n <mat-form-field>\n <input matInput [placeholder]=\"'USER.LIST.FILTER.SEARCH'|translate\" formControlName=\"searchText\">\n\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n\n <ion-col>\n <!-- status -->\n <mat-form-field>\n <mat-select formControlName=\"statusId\" [placeholder]=\"'USER.STATUS'|translate\">\n <mat-option [value]=\"null\"><i><span translate>COMMON.EMPTY_OPTION</span></i></mat-option>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.statusId)\"\n [hidden]=\"filterForm.controls.statusId.disabled || !filterForm.controls.statusId.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label [hidden]=\"(loadingSubject|async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\">\n {{ (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT') | translate: {\n count: (totalRowCount |\n numberFormat)\n } }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\"\n (click)=\"filterExpansionPanel.close()\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n\n </mat-action-row>\n </mat-expansion-panel>\n\n <!-- error -->\n <ion-item *ngIf=\"error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <div class=\"table-container\">\n <table #table mat-table matSort\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\" [matSortDirection]=\"defaultSortDirection\"\n matSortDisableClear [trackBy]=\"trackByFn\">\n\n <ng-container matColumnDef=\"select\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!inlineEdition\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!inlineEdition\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Id Column -->\n <ng-container matColumnDef=\"id\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label>#</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">{{ row.currentData.id }}</td>\n </ng-container>\n\n <!-- avatar Column -->\n <ng-container matColumnDef=\"avatar\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <div class=\"avatar\" *ngIf=\"row.currentData.avatar; else generateIcon\"\n [ngStyle]=\"{'background-image':'url('+row.currentData.avatar+')'}\"></div>\n <ng-template #generateIcon>\n <div class=\"avatar\">\n <svg width=\"38\" width=\"38\" [data-jdenticon-value]=\"row.currentData.id\"></svg>\n </div>\n </ng-template>\n </td>\n </ng-container>\n\n <!-- lastName -->\n <ng-container matColumnDef=\"lastName\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.LAST_NAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"focusColumn='lastName'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput\n [formControl]=\"row.validator.controls['lastName']\"\n [placeholder]=\"'USER.LAST_NAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='lastName'\">\n <mat-error *ngIf=\"row.validator.controls['lastName'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['lastName'].hasError('minlength')\">\n <span>{{'ERROR.FIELD_MIN_LENGTH' | translate: {minLength: 2} }}</span>\n </mat-error>\n </mat-form-field>\n\n </td>\n\n </ng-container>\n\n <!-- firstname -->\n <ng-container matColumnDef=\"firstName\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.FIRST_NAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n\n (click)=\"focusColumn='firstName'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['firstName']\"\n [placeholder]=\"'USER.FIRST_NAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='firstName'\">\n <mat-error *ngIf=\"row.validator.controls['firstName'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['firstName'].hasError('minlength')\">\n <span>{{'ERROR.FIELD_MIN_LENGTH' | translate: {minLength: 2} }}</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- email -->\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.EMAIL</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"focusColumn='email'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['email']\"\n [placeholder]=\"'USER.EMAIL'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='email'\">\n <mat-error *ngIf=\"row.validator.controls['email'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['email'].hasError('email')\">\n <span translate>ERROR.FIELD_NOT_VALID_EMAIL</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- additional fields -->\n <ng-container *ngFor=\"let definition of additionalFields\" [matColumnDef]=\"definition.key\">\n <th mat-header-cell *matHeaderCellDef>\n <span>{{definition.label|translate}}</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn=definition.key\">\n <app-form-field floatLabel=\"never\"\n [definition]=\"definition\"\n [formControl]=\"row.validator.controls[definition.key]\"\n [required]=\"definition.extra?.account?.required\"\n [autofocus]=\"row.editing && focusColumn===definition.ke\">\n </app-form-field>\n </td>\n </ng-container>\n\n <!-- profile column -->\n <ng-container matColumnDef=\"profile\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.PROFILE</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='profile'\">\n <mat-form-field floatLabel=\"never\">\n <mat-select [formControl]=\"row.validator.controls['mainProfile']\"\n [placeholder]=\"'USER.PROFILE'|translate\">\n <mat-option *ngFor=\"let item of profiles\" [value]=\"item\">\n {{ ('USER.PROFILE_ENUM.' + item) | uppercase |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['mainProfile'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Status column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.STATUS</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='status'\">\n <mat-form-field floatLabel=\"never\">\n <ion-icon matPrefix *ngIf=\"row.validator.controls['statusId'].value >=0\" [name]=\"statusById[row.validator.controls['statusId'].value]?.icon\"></ion-icon>\n\n <mat-select [formControl]=\"row.validator.controls['statusId']\"\n [placeholder]=\"'REFERENTIAL.STATUS'|translate\">\n <mat-select-trigger>\n <span *ngIf=\"row.validator.controls['statusId'].value >=0\">\n {{ statusById[row.validator.controls['statusId'].value]?.label | translate}}</span>\n </mat-select-trigger>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['statusId'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- username -->\n <ng-container matColumnDef=\"username\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.USERNAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='username'\">\n <mat-form-field floatLabel=\"never\" >\n <input matInput [formControl]=\"row.validator.controls.username\"\n [placeholder]=\"'USER.USERNAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='username'\">\n <mat-error *ngIf=\"row.validator.controls.username.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- username extranet -->\n <ng-container matColumnDef=\"usernameExtranet\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.USERNAME_EXTRANET</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='usernameExtranet'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls.usernameExtranet\"\n [placeholder]=\"'USER.USERNAME_EXTRANET'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='usernameExtranet'\">\n <mat-error *ngIf=\"row.validator.controls.usernameExtranet.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- pubkey -->\n <ng-container matColumnDef=\"pubkey\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.PUBKEY</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n [title]=\"row.validator.controls.pubkey.valueChanges|async\"\n (click)=\"focusColumn='pubkey'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['pubkey']\" [placeholder]=\"'USER.PUBKEY'|translate\"\n [readonly]=\"!row.editing\" autocomplete=\"off\">\n <mat-error *ngIf=\"row.validator.controls.pubkey.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls.pubkey.hasError('pubkey')\">\n <span translate>ERROR.FIELD_NOT_VALID_PUBKEY</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Actions buttons column -->\n <app-actions-column [stickyEnd]=\"useSticky\"\n (optionsClick)=\"openSelectColumnsModal($event)\"\n (cancelOrDeleteClick)=\"cancelOrDelete($event.event, $event.row)\"\n (confirmAndAddClick)=\"confirmAndAdd($event.event, $event.row)\"\n (backward)=\"confirmAndBackward($event.event, $event.row)\"\n (forward)=\"confirmAndForward($event.event, $event.row)\"\n [canCancel]=\"false\">\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [class.mat-row-error]=\"row.validator.invalid\"\n [class.mat-row-dirty]=\"row.currentData.dirty\"\n [class.mat-row-disabled]=\"!row.editing\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator.invalid\"></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n </div>\n</ion-content>\n\n<ion-footer>\n <mat-paginator class=\"mat-paginator-footer\"\n [length]=\"totalRowCount\" [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"defaultPageSizeOptions\" showFirstLastButtons>\n </mat-paginator>\n\n <app-form-buttons-bar *ngIf=\"!mobile && inlineEdition\"\n (onCancel)=\"onRefresh.emit()\" (onSave)=\"save()\" [disabled]=\"(loadingSubject|async) || !dirty\"></app-form-buttons-bar>\n</ion-footer>\n\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\" *ngIf=\"mobile\">\n <ion-fab-button color=\"tertiary\" (click)=\"addRow()\">\n <ion-icon name=\"add\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n",
|
|
32614
|
+
template: "<app-toolbar [title]=\"'USER.LIST.TITLE'|translate\"\n color=\"primary\"\n [canGoBack]=\"false\"\n [hasValidate]=\"!(loadingSubject|async) && dirty\"\n (onValidate)=\"save()\">\n <ion-buttons slot=\"end\">\n\n <!-- Compose message -->\n <button mat-icon-button *ngIf=\"canSendMessage\"\n [title]=\"'USER.LIST.BTN_SEND_MESSAGE'|translate\"\n (click)=\"openComposeMessageModal($event)\">\n <ion-icon name=\"mail\" slot=\"icon-only\"></ion-icon>\n </button>\n\n <ng-container *ngIf=\"!selection.hasValue(); else hasSelection\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"canEdit && !mobile\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"addRow()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Refresh -->\n <button mat-icon-button *ngIf=\"!mobile\"\n [title]=\"'COMMON.BTN_REFRESH'|translate\"\n (click)=\"onRefresh.emit()\">\n <mat-icon>refresh</mat-icon>\n </button>\n\n <!-- reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\"\n *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold;\">close</mat-icon>\n </button>\n\n <!-- show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon *ngIf=\"filterCriteriaCount; else emptyFilter\"\n [matBadge]=\"filterCriteriaCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\">filter_list_alt\n </mat-icon>\n <ng-template #emptyFilter>\n <mat-icon>filter_list_alt</mat-icon>\n </ng-template>\n </button>\n </ng-container>\n\n <ng-template #hasSelection>\n\n <!-- delete -->\n <button mat-icon-button\n class=\"hidden-xs hidden-sm\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n (click)=\"deleteSelection($event)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ng-template>\n </ion-buttons>\n</app-toolbar>\n\n<ion-content class=\"ion-no-padding\">\n\n <!-- error -->\n <ion-item *ngIf=\"errorSubject|async ; let error\" lines=\"none\" @slideUpDownAnimation>\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <!-- search -->\n <mat-expansion-panel #filterExpansionPanel class=\"ion-no-padding filter-panel filter-panel-floating\">\n <form class=\"form-container ion-padding\" [formGroup]=\"filterForm\" (ngSubmit)=\"onRefresh.emit()\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search -->\n <mat-form-field>\n <input matInput [placeholder]=\"'USER.LIST.FILTER.SEARCH'|translate\" formControlName=\"searchText\">\n\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n\n <ion-col>\n <!-- status -->\n <mat-form-field>\n <mat-select formControlName=\"statusId\" [placeholder]=\"'USER.STATUS'|translate\">\n <mat-option [value]=\"null\"><i><span translate>COMMON.EMPTY_OPTION</span></i></mat-option>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n\n <button mat-icon-button matSuffix tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.statusId)\"\n [hidden]=\"filterForm.controls.statusId.disabled || !filterForm.controls.statusId.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label [hidden]=\"(loadingSubject|async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\">\n {{ (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT') | translate: {\n count: (totalRowCount |\n numberFormat)\n } }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\"\n (click)=\"filterExpansionPanel.close()\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\"\n [disabled]=\"loadingSubject|async\">\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n\n </mat-action-row>\n </mat-expansion-panel>\n\n <!-- error -->\n <ion-item *ngIf=\"error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <div class=\"table-container\">\n <table #table mat-table matSort\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\" [matSortDirection]=\"defaultSortDirection\"\n matSortDisableClear [trackBy]=\"trackByFn\">\n\n <ng-container matColumnDef=\"select\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!inlineEdition\">\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!inlineEdition\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Id Column -->\n <ng-container matColumnDef=\"id\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ion-label>#</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\">{{ row.currentData.id }}</td>\n </ng-container>\n\n <!-- avatar Column -->\n <ng-container matColumnDef=\"avatar\" [sticky]=\"useSticky\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <div class=\"avatar\" *ngIf=\"row.currentData.avatar; else generateIcon\"\n [ngStyle]=\"{'background-image':'url('+row.currentData.avatar+')'}\"></div>\n <ng-template #generateIcon>\n <div class=\"avatar\">\n <svg width=\"38\" width=\"38\" [data-jdenticon-value]=\"row.currentData.id\"></svg>\n </div>\n </ng-template>\n </td>\n </ng-container>\n\n <!-- lastName -->\n <ng-container matColumnDef=\"lastName\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.LAST_NAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"focusColumn='lastName'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput\n [formControl]=\"row.validator.controls['lastName']\"\n [placeholder]=\"'USER.LAST_NAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='lastName'\">\n <mat-error *ngIf=\"row.validator.controls['lastName'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['lastName'].hasError('minlength')\">\n <span>{{'ERROR.FIELD_MIN_LENGTH' | translate: {minLength: 2} }}</span>\n </mat-error>\n </mat-form-field>\n </td>\n\n </ng-container>\n\n <!-- firstname -->\n <ng-container matColumnDef=\"firstName\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.FIRST_NAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='firstName'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['firstName']\"\n [placeholder]=\"'USER.FIRST_NAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='firstName'\">\n <mat-error *ngIf=\"row.validator.controls['firstName'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['firstName'].hasError('minlength')\">\n <span>{{'ERROR.FIELD_MIN_LENGTH' | translate: {minLength: 2} }}</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- email -->\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.EMAIL</span>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"focusColumn='email'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['email']\"\n [placeholder]=\"'USER.EMAIL'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='email'\">\n <mat-error *ngIf=\"row.validator.controls['email'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls['email'].hasError('email')\">\n <span translate>ERROR.FIELD_NOT_VALID_EMAIL</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- additional fields -->\n <ng-container *ngFor=\"let definition of additionalFields\" [matColumnDef]=\"definition.key\">\n <th mat-header-cell *matHeaderCellDef>\n <span>{{definition.label|translate}}</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn=definition.key\">\n <app-form-field floatLabel=\"never\"\n [definition]=\"definition\"\n [formControl]=\"row.validator.controls[definition.key]\"\n [required]=\"definition.extra?.account?.required\"\n [autofocus]=\"row.editing && focusColumn===definition.key\">\n </app-form-field>\n </td>\n </ng-container>\n\n <!-- profile column -->\n <ng-container matColumnDef=\"profile\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.PROFILE</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='profile'\">\n <mat-form-field floatLabel=\"never\">\n <mat-select [formControl]=\"row.validator.controls['mainProfile']\"\n [placeholder]=\"'USER.PROFILE'|translate\">\n <mat-option *ngFor=\"let item of profiles\" [value]=\"item\">\n {{ ('USER.PROFILE_ENUM.' + item) | uppercase |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['mainProfile'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Status column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>\n <span translate>USER.STATUS</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='status'\">\n <mat-form-field floatLabel=\"never\">\n <ion-icon matPrefix *ngIf=\"row.validator.controls['statusId'].value >=0\" [name]=\"statusById[row.validator.controls['statusId'].value]?.icon\"></ion-icon>\n\n <mat-select [formControl]=\"row.validator.controls['statusId']\"\n [placeholder]=\"'REFERENTIAL.STATUS'|translate\">\n <mat-select-trigger>\n <span *ngIf=\"row.validator.controls['statusId'].value >=0\">\n {{ statusById[row.validator.controls['statusId'].value]?.label | translate}}</span>\n </mat-select-trigger>\n <mat-option *ngFor=\"let item of statusList\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"row.validator.controls['statusId'].hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- username -->\n <ng-container matColumnDef=\"username\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.USERNAME</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='username'\">\n <mat-form-field floatLabel=\"never\" >\n <input matInput [formControl]=\"row.validator.controls.username\"\n [placeholder]=\"'USER.USERNAME'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='username'\">\n <mat-error *ngIf=\"row.validator.controls.username.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- username extranet -->\n <ng-container matColumnDef=\"usernameExtranet\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.USERNAME_EXTRANET</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n (click)=\"focusColumn='usernameExtranet'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls.usernameExtranet\"\n [placeholder]=\"'USER.USERNAME_EXTRANET'|translate\"\n [readonly]=\"!row.editing\"\n [appAutofocus]=\"row.editing && focusColumn==='usernameExtranet'\">\n <mat-error *ngIf=\"row.validator.controls.usernameExtranet.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- pubkey -->\n <ng-container matColumnDef=\"pubkey\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <span translate>USER.PUBKEY</span>\n </th>\n <td mat-cell *matCellDef=\"let row\"\n [title]=\"row.validator.controls.pubkey.valueChanges|async\"\n (click)=\"focusColumn='pubkey'\">\n <mat-form-field floatLabel=\"never\">\n <input matInput [formControl]=\"row.validator.controls['pubkey']\" [placeholder]=\"'USER.PUBKEY'|translate\"\n [readonly]=\"!row.editing\" autocomplete=\"off\">\n <mat-error *ngIf=\"row.validator.controls.pubkey.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"row.validator.controls.pubkey.hasError('pubkey')\">\n <span translate>ERROR.FIELD_NOT_VALID_PUBKEY</span>\n </mat-error>\n </mat-form-field>\n </td>\n </ng-container>\n\n <!-- Actions buttons column -->\n <app-actions-column [stickyEnd]=\"useSticky\"\n (optionsClick)=\"openSelectColumnsModal($event)\"\n (cancelOrDeleteClick)=\"cancelOrDelete($event.event, $event.row)\"\n (confirmAndAddClick)=\"confirmAndAdd($event.event, $event.row)\"\n (backward)=\"confirmAndBackward($event.event, $event.row)\"\n (forward)=\"confirmAndForward($event.event, $event.row)\"\n [canCancel]=\"false\">\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [class.mat-row-error]=\"row.validator.invalid\"\n [class.mat-row-dirty]=\"row.currentData.dirty\"\n [class.mat-row-disabled]=\"!row.editing\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator.invalid\"></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n </div>\n</ion-content>\n\n<ion-footer>\n <mat-paginator class=\"mat-paginator-footer\"\n [length]=\"totalRowCount\" [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"defaultPageSizeOptions\" showFirstLastButtons>\n </mat-paginator>\n\n <app-form-buttons-bar *ngIf=\"!mobile && inlineEdition\"\n (onCancel)=\"onRefresh.emit()\" (onSave)=\"save()\" [disabled]=\"(loadingSubject|async) || !dirty\"></app-form-buttons-bar>\n</ion-footer>\n\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\" *ngIf=\"mobile\">\n <ion-fab-button color=\"tertiary\" (click)=\"addRow()\">\n <ion-icon name=\"add\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n",
|
|
32591
32615
|
providers: [
|
|
32592
32616
|
{ provide: ngxMaterialTable.ValidatorService, useExisting: PersonValidatorService }
|
|
32593
32617
|
],
|
|
@@ -32639,17 +32663,17 @@
|
|
|
32639
32663
|
];
|
|
32640
32664
|
AdminModule.ctorParameters = function () { return []; };
|
|
32641
32665
|
|
|
32642
|
-
var ɵ0 = {
|
|
32666
|
+
var ɵ0$c = {
|
|
32643
32667
|
profile: 'ADMIN'
|
|
32644
32668
|
};
|
|
32645
|
-
var routes
|
|
32669
|
+
var routes = [
|
|
32646
32670
|
{
|
|
32647
32671
|
path: 'users',
|
|
32648
32672
|
pathMatch: 'full',
|
|
32649
32673
|
component: UsersPage,
|
|
32650
32674
|
canActivate: [AuthGuardService],
|
|
32651
32675
|
canDeactivate: [ComponentDirtyGuard],
|
|
32652
|
-
data: ɵ0
|
|
32676
|
+
data: ɵ0$c
|
|
32653
32677
|
}
|
|
32654
32678
|
];
|
|
32655
32679
|
var AdminRoutingModule = /** @class */ (function () {
|
|
@@ -32662,30 +32686,30 @@
|
|
|
32662
32686
|
imports: [
|
|
32663
32687
|
SharedRoutingModule,
|
|
32664
32688
|
AdminModule,
|
|
32665
|
-
i3.RouterModule.forChild(routes
|
|
32689
|
+
i3.RouterModule.forChild(routes)
|
|
32666
32690
|
],
|
|
32667
32691
|
exports: [i3.RouterModule]
|
|
32668
32692
|
},] }
|
|
32669
32693
|
];
|
|
32670
32694
|
|
|
32671
|
-
var EntityTestClass
|
|
32695
|
+
var EntityTestClass = /** @class */ (function () {
|
|
32672
32696
|
function EntityTestClass() {
|
|
32673
32697
|
}
|
|
32674
32698
|
return EntityTestClass;
|
|
32675
32699
|
}());
|
|
32676
|
-
var FAKE_ENTITIES
|
|
32700
|
+
var FAKE_ENTITIES = [
|
|
32677
32701
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
32678
32702
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
32679
32703
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
32680
32704
|
];
|
|
32681
|
-
function deepCopy
|
|
32705
|
+
function deepCopy(values, size) {
|
|
32682
32706
|
if (isNil(size)) {
|
|
32683
|
-
return (values || FAKE_ENTITIES
|
|
32707
|
+
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
32684
32708
|
}
|
|
32685
32709
|
var result = [];
|
|
32686
32710
|
var i = 1;
|
|
32687
32711
|
while (result.length < size) {
|
|
32688
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
32712
|
+
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
32689
32713
|
var name = entity.name + ' #' + i;
|
|
32690
32714
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
32691
32715
|
}));
|
|
@@ -32695,7 +32719,7 @@
|
|
|
32695
32719
|
var AutocompleteTestPage = /** @class */ (function () {
|
|
32696
32720
|
function AutocompleteTestPage(formBuilder) {
|
|
32697
32721
|
this.formBuilder = formBuilder;
|
|
32698
|
-
this._items = deepCopy
|
|
32722
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
32699
32723
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
32700
32724
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
32701
32725
|
this.memoryHide = false;
|
|
@@ -32741,7 +32765,7 @@
|
|
|
32741
32765
|
});
|
|
32742
32766
|
// From items
|
|
32743
32767
|
this.autocompleteFields.add('entity-items-large', {
|
|
32744
|
-
items: FAKE_ENTITIES
|
|
32768
|
+
items: FAKE_ENTITIES.slice(),
|
|
32745
32769
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
32746
32770
|
displayWith: this.entityToString
|
|
32747
32771
|
});
|
|
@@ -32777,14 +32801,14 @@
|
|
|
32777
32801
|
var _this = this;
|
|
32778
32802
|
return __generator(this, function (_a) {
|
|
32779
32803
|
data = {
|
|
32780
|
-
entity: deepCopy
|
|
32781
|
-
farEntity: deepCopy
|
|
32804
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
32805
|
+
farEntity: deepCopy(FAKE_ENTITIES)[2],
|
|
32782
32806
|
// This item is NOT in the items list => i should be displayed anyway
|
|
32783
32807
|
missingEntity: {
|
|
32784
32808
|
id: -1, label: '??', name: 'Missing item'
|
|
32785
32809
|
},
|
|
32786
|
-
disableEntity: deepCopy
|
|
32787
|
-
entities: deepCopy
|
|
32810
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2],
|
|
32811
|
+
entities: deepCopy(FAKE_ENTITIES)
|
|
32788
32812
|
};
|
|
32789
32813
|
this.form.setValue(data);
|
|
32790
32814
|
// Load observables
|
|
@@ -32956,13 +32980,13 @@
|
|
|
32956
32980
|
{ type: i1.FormBuilder }
|
|
32957
32981
|
]; };
|
|
32958
32982
|
|
|
32959
|
-
var moment$
|
|
32983
|
+
var moment$7 = momentImported__namespace;
|
|
32960
32984
|
var SwipeTestPage = /** @class */ (function () {
|
|
32961
32985
|
function SwipeTestPage(formBuilder, dateFormatPipe) {
|
|
32962
32986
|
this.formBuilder = formBuilder;
|
|
32963
32987
|
this.dateFormatPipe = dateFormatPipe;
|
|
32964
32988
|
this.$dates = new rxjs.BehaviorSubject(undefined);
|
|
32965
|
-
this._today = moment$
|
|
32989
|
+
this._today = moment$7().startOf('day');
|
|
32966
32990
|
this.form = formBuilder.group({
|
|
32967
32991
|
empty: [null, i1.Validators.required],
|
|
32968
32992
|
date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
|
|
@@ -32976,7 +33000,7 @@
|
|
|
32976
33000
|
var _this = this;
|
|
32977
33001
|
var dates = [];
|
|
32978
33002
|
for (var d = 0; d < 7; d++) {
|
|
32979
|
-
dates[d] = moment$
|
|
33003
|
+
dates[d] = moment$7(this._today).add(d - 3, 'day');
|
|
32980
33004
|
}
|
|
32981
33005
|
this.$dates.next(dates);
|
|
32982
33006
|
this.loadData();
|
|
@@ -33023,7 +33047,7 @@
|
|
|
33023
33047
|
{ type: DateFormatPipe }
|
|
33024
33048
|
]; };
|
|
33025
33049
|
|
|
33026
|
-
var moment$
|
|
33050
|
+
var moment$8 = momentImported__namespace;
|
|
33027
33051
|
var DateTimeTestPage = /** @class */ (function () {
|
|
33028
33052
|
function DateTimeTestPage(platform, formBuilder, cd) {
|
|
33029
33053
|
this.platform = platform;
|
|
@@ -33061,7 +33085,7 @@
|
|
|
33061
33085
|
var now, data;
|
|
33062
33086
|
var _this = this;
|
|
33063
33087
|
return __generator(this, function (_a) {
|
|
33064
|
-
now = moment$
|
|
33088
|
+
now = moment$8();
|
|
33065
33089
|
data = {
|
|
33066
33090
|
empty: null,
|
|
33067
33091
|
emptyRequired: null,
|
|
@@ -33131,12 +33155,12 @@
|
|
|
33131
33155
|
{ type: i0.ChangeDetectorRef }
|
|
33132
33156
|
]; };
|
|
33133
33157
|
|
|
33134
|
-
var EntityTestClass = /** @class */ (function () {
|
|
33158
|
+
var EntityTestClass$1 = /** @class */ (function () {
|
|
33135
33159
|
function EntityTestClass() {
|
|
33136
33160
|
}
|
|
33137
33161
|
return EntityTestClass;
|
|
33138
33162
|
}());
|
|
33139
|
-
var FAKE_ENTITIES = [
|
|
33163
|
+
var FAKE_ENTITIES$1 = [
|
|
33140
33164
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
33141
33165
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
33142
33166
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -33145,14 +33169,14 @@
|
|
|
33145
33169
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
33146
33170
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
33147
33171
|
];
|
|
33148
|
-
function deepCopy(values, size) {
|
|
33172
|
+
function deepCopy$1(values, size) {
|
|
33149
33173
|
if (isNil(size)) {
|
|
33150
|
-
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
33174
|
+
return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
|
|
33151
33175
|
}
|
|
33152
33176
|
var result = [];
|
|
33153
33177
|
var i = 1;
|
|
33154
33178
|
while (result.length < size) {
|
|
33155
|
-
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
33179
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
|
|
33156
33180
|
var name = entity.name + ' #' + i;
|
|
33157
33181
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
33158
33182
|
}));
|
|
@@ -33162,7 +33186,7 @@
|
|
|
33162
33186
|
var ChipsTestPage = /** @class */ (function () {
|
|
33163
33187
|
function ChipsTestPage(formBuilder) {
|
|
33164
33188
|
this.formBuilder = formBuilder;
|
|
33165
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
33189
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
33166
33190
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
33167
33191
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
33168
33192
|
this.appearance = 'legacy';
|
|
@@ -33206,7 +33230,7 @@
|
|
|
33206
33230
|
var items, data;
|
|
33207
33231
|
var _this = this;
|
|
33208
33232
|
return __generator(this, function (_a) {
|
|
33209
|
-
items = deepCopy(FAKE_ENTITIES);
|
|
33233
|
+
items = deepCopy$1(FAKE_ENTITIES$1);
|
|
33210
33234
|
data = {
|
|
33211
33235
|
entity: items.slice(0, 1),
|
|
33212
33236
|
entityInitial: items.slice(1, 2),
|
|
@@ -33343,7 +33367,7 @@
|
|
|
33343
33367
|
{ type: i1.FormBuilder }
|
|
33344
33368
|
]; };
|
|
33345
33369
|
|
|
33346
|
-
var moment$
|
|
33370
|
+
var moment$9 = momentImported__namespace;
|
|
33347
33371
|
var DateTestPage = /** @class */ (function () {
|
|
33348
33372
|
function DateTestPage(formBuilder, cd) {
|
|
33349
33373
|
this.formBuilder = formBuilder;
|
|
@@ -33380,7 +33404,7 @@
|
|
|
33380
33404
|
var now, nowAtMahe, data;
|
|
33381
33405
|
var _this = this;
|
|
33382
33406
|
return __generator(this, function (_a) {
|
|
33383
|
-
now = moment$
|
|
33407
|
+
now = moment$9();
|
|
33384
33408
|
nowAtMahe = now.clone().tz(this.timezone).startOf('day');
|
|
33385
33409
|
data = {
|
|
33386
33410
|
empty: null,
|
|
@@ -33462,7 +33486,7 @@
|
|
|
33462
33486
|
{ label: 'Shared directives', divider: true },
|
|
33463
33487
|
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
|
|
33464
33488
|
];
|
|
33465
|
-
var routes$
|
|
33489
|
+
var routes$1 = [
|
|
33466
33490
|
{
|
|
33467
33491
|
path: '',
|
|
33468
33492
|
pathMatch: 'full',
|
|
@@ -33522,7 +33546,7 @@
|
|
|
33522
33546
|
i1.ReactiveFormsModule,
|
|
33523
33547
|
SharedMaterialModule,
|
|
33524
33548
|
i1$2.TranslateModule.forChild(),
|
|
33525
|
-
i3.RouterModule.forChild(routes$
|
|
33549
|
+
i3.RouterModule.forChild(routes$1)
|
|
33526
33550
|
],
|
|
33527
33551
|
declarations: [
|
|
33528
33552
|
DateTimeTestPage,
|
|
@@ -33584,7 +33608,7 @@
|
|
|
33584
33608
|
{ type: i1$2.TranslateService }
|
|
33585
33609
|
]; };
|
|
33586
33610
|
|
|
33587
|
-
var routes$
|
|
33611
|
+
var routes$2 = [
|
|
33588
33612
|
{
|
|
33589
33613
|
path: 'toast',
|
|
33590
33614
|
pathMatch: 'full',
|
|
@@ -33602,7 +33626,7 @@
|
|
|
33602
33626
|
i1$4.CommonModule,
|
|
33603
33627
|
i1$5.IonicModule,
|
|
33604
33628
|
i1$2.TranslateModule.forChild(),
|
|
33605
|
-
i3.RouterModule.forChild(routes$
|
|
33629
|
+
i3.RouterModule.forChild(routes$2)
|
|
33606
33630
|
],
|
|
33607
33631
|
declarations: [
|
|
33608
33632
|
ToastTestingPage
|
|
@@ -33905,7 +33929,7 @@
|
|
|
33905
33929
|
console.debug('[test-table] Destroying table...');
|
|
33906
33930
|
_super_1.prototype.ngOnDestroy.call(this);
|
|
33907
33931
|
this.stopTimer();
|
|
33908
|
-
this.dataService.
|
|
33932
|
+
this.dataService.stop();
|
|
33909
33933
|
};
|
|
33910
33934
|
TableTestPage.prototype.restoreFilter = function () {
|
|
33911
33935
|
var json = this.settings.getPageSettings(this.settingsId, 'filter');
|
|
@@ -34134,7 +34158,7 @@
|
|
|
34134
34158
|
{ type: i1$5.PopoverController }
|
|
34135
34159
|
]; };
|
|
34136
34160
|
|
|
34137
|
-
var routes$
|
|
34161
|
+
var routes$4 = [
|
|
34138
34162
|
{
|
|
34139
34163
|
path: 'text-popover',
|
|
34140
34164
|
pathMatch: 'full',
|
|
@@ -34152,7 +34176,7 @@
|
|
|
34152
34176
|
i1$4.CommonModule,
|
|
34153
34177
|
i1$5.IonicModule,
|
|
34154
34178
|
i1$2.TranslateModule.forChild(),
|
|
34155
|
-
i3.RouterModule.forChild(routes$
|
|
34179
|
+
i3.RouterModule.forChild(routes$4)
|
|
34156
34180
|
],
|
|
34157
34181
|
declarations: [
|
|
34158
34182
|
TextPopoverTestingPage
|
|
@@ -34169,7 +34193,7 @@
|
|
|
34169
34193
|
{ label: 'Table', page: '/testing/core/table' },
|
|
34170
34194
|
{ label: 'Text popover', page: '/testing/core/text-popover' }
|
|
34171
34195
|
];
|
|
34172
|
-
var routes$
|
|
34196
|
+
var routes$5 = [
|
|
34173
34197
|
{
|
|
34174
34198
|
path: '',
|
|
34175
34199
|
pathMatch: 'full',
|
|
@@ -34196,7 +34220,7 @@
|
|
|
34196
34220
|
imports: [
|
|
34197
34221
|
i1$4.CommonModule,
|
|
34198
34222
|
i1$2.TranslateModule.forChild(),
|
|
34199
|
-
i3.RouterModule.forChild(routes$
|
|
34223
|
+
i3.RouterModule.forChild(routes$5),
|
|
34200
34224
|
// Sub modules
|
|
34201
34225
|
TableTestingModule,
|
|
34202
34226
|
TextPopoverTestingModule
|
|
@@ -34551,7 +34575,7 @@
|
|
|
34551
34575
|
{ type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
34552
34576
|
]; };
|
|
34553
34577
|
|
|
34554
|
-
var moment = momentImported__namespace;
|
|
34578
|
+
var moment$a = momentImported__namespace;
|
|
34555
34579
|
var UserEventTestingPage = /** @class */ (function () {
|
|
34556
34580
|
function UserEventTestingPage(userEventService, router, alertController, translateService) {
|
|
34557
34581
|
var _this = this;
|
|
@@ -34617,7 +34641,7 @@
|
|
|
34617
34641
|
type: 'message',
|
|
34618
34642
|
level: 'INFO',
|
|
34619
34643
|
message: 'message test message test message test message test message test message test message test message test',
|
|
34620
|
-
creationDate: moment(),
|
|
34644
|
+
creationDate: moment$a(),
|
|
34621
34645
|
}));
|
|
34622
34646
|
};
|
|
34623
34647
|
UserEventTestingPage.prototype.addError = function () {
|
|
@@ -34627,7 +34651,7 @@
|
|
|
34627
34651
|
type: 'upload',
|
|
34628
34652
|
level: 'ERROR',
|
|
34629
34653
|
message: 'message error',
|
|
34630
|
-
creationDate: moment(),
|
|
34654
|
+
creationDate: moment$a(),
|
|
34631
34655
|
}));
|
|
34632
34656
|
};
|
|
34633
34657
|
UserEventTestingPage.prototype.addWarning = function () {
|
|
@@ -34637,7 +34661,7 @@
|
|
|
34637
34661
|
type: 'download',
|
|
34638
34662
|
level: 'WARNING',
|
|
34639
34663
|
message: 'message warning',
|
|
34640
|
-
creationDate: moment(),
|
|
34664
|
+
creationDate: moment$a(),
|
|
34641
34665
|
}));
|
|
34642
34666
|
};
|
|
34643
34667
|
UserEventTestingPage.prototype.addDebug = function () {
|
|
@@ -34647,7 +34671,7 @@
|
|
|
34647
34671
|
type: 'debug',
|
|
34648
34672
|
level: 'DEBUG',
|
|
34649
34673
|
message: 'message DEBUG',
|
|
34650
|
-
creationDate: moment(),
|
|
34674
|
+
creationDate: moment$a(),
|
|
34651
34675
|
}));
|
|
34652
34676
|
};
|
|
34653
34677
|
UserEventTestingPage.prototype.addNotificationWithLink = function () {
|
|
@@ -34658,7 +34682,7 @@
|
|
|
34658
34682
|
type: 'message',
|
|
34659
34683
|
level: 'INFO',
|
|
34660
34684
|
message: 'message with link',
|
|
34661
|
-
creationDate: moment(),
|
|
34685
|
+
creationDate: moment$a(),
|
|
34662
34686
|
actions: [{
|
|
34663
34687
|
name: 'click here',
|
|
34664
34688
|
iconRef: {
|
|
@@ -34676,7 +34700,7 @@
|
|
|
34676
34700
|
type: 'message',
|
|
34677
34701
|
level: 'INFO',
|
|
34678
34702
|
message: 'message with action',
|
|
34679
|
-
creationDate: moment(),
|
|
34703
|
+
creationDate: moment$a(),
|
|
34680
34704
|
actions: [
|
|
34681
34705
|
{
|
|
34682
34706
|
name: 'click here',
|
|
@@ -34750,7 +34774,7 @@
|
|
|
34750
34774
|
type: 'message',
|
|
34751
34775
|
level: 'INFO',
|
|
34752
34776
|
message: 'message with action',
|
|
34753
|
-
creationDate: moment(),
|
|
34777
|
+
creationDate: moment$a(),
|
|
34754
34778
|
actions: [
|
|
34755
34779
|
{
|
|
34756
34780
|
default: true,
|
|
@@ -34808,7 +34832,7 @@
|
|
|
34808
34832
|
{ label: 'User event', page: '/testing/social/user-event' },
|
|
34809
34833
|
{ label: 'Job progression', page: '/testing/social/job-progression' }
|
|
34810
34834
|
];
|
|
34811
|
-
var routes = [
|
|
34835
|
+
var routes$6 = [
|
|
34812
34836
|
{
|
|
34813
34837
|
path: 'job-progression',
|
|
34814
34838
|
pathMatch: 'full',
|
|
@@ -34830,7 +34854,7 @@
|
|
|
34830
34854
|
imports: [
|
|
34831
34855
|
i1$4.CommonModule,
|
|
34832
34856
|
i1$2.TranslateModule.forChild(),
|
|
34833
|
-
i3.RouterModule.forChild(routes),
|
|
34857
|
+
i3.RouterModule.forChild(routes$6),
|
|
34834
34858
|
JobTestingModule,
|
|
34835
34859
|
UserEventTestingModule
|
|
34836
34860
|
],
|
|
@@ -34944,7 +34968,6 @@
|
|
|
34944
34968
|
exports.ENTITIES_STORAGE_KEY_PREFIX = ENTITIES_STORAGE_KEY_PREFIX;
|
|
34945
34969
|
exports.ENVIRONMENT = ENVIRONMENT;
|
|
34946
34970
|
exports.EmptyArrayPipe = EmptyArrayPipe;
|
|
34947
|
-
exports.EntitiesService = EntitiesService;
|
|
34948
34971
|
exports.EntitiesStorage = EntitiesStorage;
|
|
34949
34972
|
exports.EntitiesTableDataSource = EntitiesTableDataSource;
|
|
34950
34973
|
exports.Entity = Entity;
|
|
@@ -34973,7 +34996,7 @@
|
|
|
34973
34996
|
exports.FormGetGroupPipe = FormGetGroupPipe;
|
|
34974
34997
|
exports.FormGetPipe = FormGetPipe;
|
|
34975
34998
|
exports.FormGetValuePipe = FormGetValuePipe;
|
|
34976
|
-
exports.Fragments = Fragments;
|
|
34999
|
+
exports.Fragments = Fragments$1;
|
|
34977
35000
|
exports.GraphqlService = GraphqlService;
|
|
34978
35001
|
exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
|
|
34979
35002
|
exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;
|
|
@@ -35291,25 +35314,25 @@
|
|
|
35291
35314
|
exports.waitForTrue = waitForTrue;
|
|
35292
35315
|
exports.waitIdle = waitIdle;
|
|
35293
35316
|
exports.waitWhilePending = waitWhilePending;
|
|
35294
|
-
exports
|
|
35295
|
-
exports
|
|
35296
|
-
exports
|
|
35297
|
-
exports
|
|
35298
|
-
exports
|
|
35299
|
-
exports
|
|
35300
|
-
exports
|
|
35301
|
-
exports
|
|
35302
|
-
exports
|
|
35303
|
-
exports
|
|
35304
|
-
exports
|
|
35305
|
-
exports
|
|
35306
|
-
exports
|
|
35307
|
-
exports
|
|
35308
|
-
exports
|
|
35309
|
-
exports
|
|
35310
|
-
exports
|
|
35317
|
+
exports.ɵ0 = ɵ0;
|
|
35318
|
+
exports.ɵa = CustomReuseStrategy;
|
|
35319
|
+
exports.ɵb = MatNumpadDomService;
|
|
35320
|
+
exports.ɵc = isFocusableElement;
|
|
35321
|
+
exports.ɵd = RegisterForm;
|
|
35322
|
+
exports.ɵe = AccountValidatorService;
|
|
35323
|
+
exports.ɵf = RegisterModal;
|
|
35324
|
+
exports.ɵg = UserSettingsValidatorService;
|
|
35325
|
+
exports.ɵh = LocalSettingsValidatorService;
|
|
35326
|
+
exports.ɵi = AppUpdateOfflineModeCard;
|
|
35327
|
+
exports.ɵj = UserEventNotificationList;
|
|
35328
|
+
exports.ɵk = JobProgressionList;
|
|
35329
|
+
exports.ɵl = DateTestPage;
|
|
35330
|
+
exports.ɵm = NumpadTestPage;
|
|
35331
|
+
exports.ɵn = MatBadgeIconTestPage;
|
|
35332
|
+
exports.ɵo = ToastTestingModule;
|
|
35333
|
+
exports.ɵp = ToastTestingPage;
|
|
35311
35334
|
|
|
35312
35335
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
35313
35336
|
|
|
35314
|
-
}));
|
|
35337
|
+
})));
|
|
35315
35338
|
//# sourceMappingURL=sumaris-net.ngx-components.umd.js.map
|