@sumaris-net/ngx-components 1.23.8 → 1.23.11
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 +530 -492
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +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 +63 -54
- package/esm2015/src/app/core/table/testing/table.testing.js +3 -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 +76 -33
- package/esm2015/src/app/shared/services/startable-service.class.js +21 -13
- package/fesm2015/sumaris-net.ngx-components.js +438 -397
- 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/core/table/table.class.d.ts +2 -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 -7
- package/src/app/shared/services/startable-service.class.d.ts +4 -2
- package/src/theme/_ngx-components.scss +5 -0
- 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
|
];
|
|
@@ -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,50 @@
|
|
|
20851
20824
|
enumerable: false,
|
|
20852
20825
|
configurable: true
|
|
20853
20826
|
});
|
|
20854
|
-
InMemoryEntitiesService.prototype
|
|
20855
|
-
|
|
20856
|
-
|
|
20857
|
-
|
|
20858
|
-
|
|
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
|
+
});
|
|
20859
20862
|
};
|
|
20860
20863
|
InMemoryEntitiesService.prototype.setValue = function (data) {
|
|
20861
20864
|
if (this.dataSubject.value !== data) {
|
|
20865
|
+
if (!this.started)
|
|
20866
|
+
this.start();
|
|
20862
20867
|
this._hiddenData = [];
|
|
20863
20868
|
this.dataSubject.next(data);
|
|
20864
20869
|
}
|
|
20865
|
-
this.
|
|
20870
|
+
this.markAsPristine();
|
|
20866
20871
|
};
|
|
20867
20872
|
InMemoryEntitiesService.prototype.loadAll = function (offset, size, sortBy, sortDirection, filter, opts) {
|
|
20868
20873
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -20877,26 +20882,25 @@
|
|
|
20877
20882
|
if (isNil(originalData)) {
|
|
20878
20883
|
console.warn('[memory-data-service] Cannot load all: no value set. Will return empty result');
|
|
20879
20884
|
}
|
|
20880
|
-
|
|
20881
|
-
return [4 /*yield*/,
|
|
20885
|
+
// Wait while idle
|
|
20886
|
+
return [4 /*yield*/, this.waitWhileSaving()];
|
|
20882
20887
|
case 1:
|
|
20888
|
+
// Wait while idle
|
|
20883
20889
|
_b.sent();
|
|
20890
|
+
excludedDataByFilter = [];
|
|
20884
20891
|
_b.label = 2;
|
|
20885
20892
|
case 2:
|
|
20886
|
-
|
|
20887
|
-
_b.label = 3;
|
|
20888
|
-
case 3:
|
|
20889
|
-
_b.trys.push([3, , 6, 7]);
|
|
20893
|
+
_b.trys.push([2, , 5, 6]);
|
|
20890
20894
|
if (isEmptyArray(originalData)) {
|
|
20891
20895
|
return [2 /*return*/, { data: [], total: 0 }];
|
|
20892
20896
|
}
|
|
20893
20897
|
data = this._sortFn(originalData, sortBy, sortDirection);
|
|
20894
|
-
if (!this._onLoad) return [3 /*break*/,
|
|
20898
|
+
if (!this._onLoad) return [3 /*break*/, 4];
|
|
20895
20899
|
return [4 /*yield*/, this._onLoad(data)];
|
|
20896
|
-
case
|
|
20900
|
+
case 3:
|
|
20897
20901
|
data = _b.sent();
|
|
20898
|
-
_b.label =
|
|
20899
|
-
case
|
|
20902
|
+
_b.label = 4;
|
|
20903
|
+
case 4:
|
|
20900
20904
|
// Apply filter (will update hiddenData)
|
|
20901
20905
|
data = this.filter(data, filter, excludedDataByFilter);
|
|
20902
20906
|
total = data.length;
|
|
@@ -20953,13 +20957,13 @@
|
|
|
20953
20957
|
}); };
|
|
20954
20958
|
}
|
|
20955
20959
|
return [2 /*return*/, res];
|
|
20956
|
-
case
|
|
20960
|
+
case 5:
|
|
20957
20961
|
// Remember hidden data
|
|
20958
20962
|
if (offset === 0) {
|
|
20959
20963
|
this._hiddenData = !excludedDataByPagination ? excludedDataByFilter : excludedDataByFilter.concat.apply(excludedDataByFilter, __spread(excludedDataByPagination));
|
|
20960
20964
|
}
|
|
20961
20965
|
return [7 /*endfinally*/];
|
|
20962
|
-
case
|
|
20966
|
+
case 6: return [2 /*return*/];
|
|
20963
20967
|
}
|
|
20964
20968
|
});
|
|
20965
20969
|
});
|
|
@@ -20969,9 +20973,9 @@
|
|
|
20969
20973
|
offset = offset >= 0 ? offset : 0;
|
|
20970
20974
|
size = size >= 0 ? size : -1;
|
|
20971
20975
|
return this.dataSubject
|
|
20972
|
-
.pipe(
|
|
20976
|
+
.pipe(operators.takeUntil(this.stopSubject),
|
|
20973
20977
|
// Warn if waiting value to be set
|
|
20974
|
-
operators.tap(function (data) { return !data && console.
|
|
20978
|
+
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
20979
|
};
|
|
20976
20980
|
InMemoryEntitiesService.prototype.saveAll = function (data, options) {
|
|
20977
20981
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -21003,7 +21007,7 @@
|
|
|
21003
21007
|
_c.label = 5;
|
|
21004
21008
|
case 5:
|
|
21005
21009
|
this.dataSubject.next(data);
|
|
21006
|
-
this.
|
|
21010
|
+
this.markAsDirty();
|
|
21007
21011
|
return [2 /*return*/, data];
|
|
21008
21012
|
case 6:
|
|
21009
21013
|
this.markAsSaved();
|
|
@@ -21021,15 +21025,21 @@
|
|
|
21021
21025
|
data = this.dataSubject.value;
|
|
21022
21026
|
if (!data)
|
|
21023
21027
|
throw new Error('[memory-service] Could not delete, because value not set');
|
|
21024
|
-
|
|
21025
|
-
|
|
21026
|
-
|
|
21027
|
-
|
|
21028
|
-
|
|
21029
|
-
|
|
21030
|
-
|
|
21031
|
-
|
|
21032
|
-
|
|
21028
|
+
this.markAsSaving();
|
|
21029
|
+
try {
|
|
21030
|
+
updatedData = data.filter(function (entity) {
|
|
21031
|
+
var removed = dataToRemove.findIndex(function (entityToRemove) { return _this.equals(entityToRemove, entity); }) !== -1;
|
|
21032
|
+
return !removed;
|
|
21033
|
+
});
|
|
21034
|
+
deleteCount = data.length - updatedData.length;
|
|
21035
|
+
if (deleteCount > 0) {
|
|
21036
|
+
data = updatedData;
|
|
21037
|
+
this.dataSubject.next(data);
|
|
21038
|
+
this.markAsDirty();
|
|
21039
|
+
}
|
|
21040
|
+
}
|
|
21041
|
+
finally {
|
|
21042
|
+
this.markAsSaved();
|
|
21033
21043
|
}
|
|
21034
21044
|
return [2 /*return*/];
|
|
21035
21045
|
});
|
|
@@ -21096,14 +21106,33 @@
|
|
|
21096
21106
|
return { data: data, total: total };
|
|
21097
21107
|
}));
|
|
21098
21108
|
};
|
|
21109
|
+
InMemoryEntitiesService.prototype.waitWhileSaving = function (opts) {
|
|
21110
|
+
if (!this.saving)
|
|
21111
|
+
return;
|
|
21112
|
+
return firstFalsePromise(this.savingSubject, Object.assign({ stop: (opts === null || opts === void 0 ? void 0 : opts.stop) || rxjs.merge(this.stopSubject, this.dataSubject) }, opts));
|
|
21113
|
+
};
|
|
21099
21114
|
InMemoryEntitiesService.prototype.markAsSaving = function () {
|
|
21100
|
-
this.
|
|
21115
|
+
if (!this.savingSubject.value) {
|
|
21116
|
+
this.savingSubject.next(true);
|
|
21117
|
+
}
|
|
21101
21118
|
};
|
|
21102
21119
|
InMemoryEntitiesService.prototype.markAsSaved = function () {
|
|
21103
|
-
this.
|
|
21120
|
+
if (this.savingSubject.value) {
|
|
21121
|
+
this.savingSubject.next(false);
|
|
21122
|
+
}
|
|
21123
|
+
};
|
|
21124
|
+
InMemoryEntitiesService.prototype.markAsDirty = function () {
|
|
21125
|
+
if (!this.dirtySubject.value) {
|
|
21126
|
+
this.dirtySubject.next(true);
|
|
21127
|
+
}
|
|
21128
|
+
};
|
|
21129
|
+
InMemoryEntitiesService.prototype.markAsPristine = function () {
|
|
21130
|
+
if (this.dirtySubject.value) {
|
|
21131
|
+
this.dirtySubject.next(false);
|
|
21132
|
+
}
|
|
21104
21133
|
};
|
|
21105
21134
|
return InMemoryEntitiesService;
|
|
21106
|
-
}(
|
|
21135
|
+
}(StartableService));
|
|
21107
21136
|
InMemoryEntitiesService.decorators = [
|
|
21108
21137
|
{ type: i0.Directive }
|
|
21109
21138
|
];
|
|
@@ -21479,7 +21508,7 @@
|
|
|
21479
21508
|
return 1;
|
|
21480
21509
|
}
|
|
21481
21510
|
}
|
|
21482
|
-
var ɵ0$
|
|
21511
|
+
var ɵ0$b = function (defaultStateSize) { return [
|
|
21483
21512
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
21484
21513
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
21485
21514
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -21487,7 +21516,7 @@
|
|
|
21487
21516
|
var SCALE_OPTIONS_DEFAULT = {
|
|
21488
21517
|
startColor: rgbArrayMap.red,
|
|
21489
21518
|
startStates: [0, 2, 3],
|
|
21490
|
-
startStepsFn: ɵ0$
|
|
21519
|
+
startStepsFn: ɵ0$b
|
|
21491
21520
|
};
|
|
21492
21521
|
/**
|
|
21493
21522
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -22444,7 +22473,7 @@
|
|
|
22444
22473
|
};
|
|
22445
22474
|
return UserSettingsValidatorService;
|
|
22446
22475
|
}(AppValidatorService));
|
|
22447
|
-
UserSettingsValidatorService.ɵprov =
|
|
22476
|
+
UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
22448
22477
|
UserSettingsValidatorService.decorators = [
|
|
22449
22478
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
22450
22479
|
];
|
|
@@ -22492,7 +22521,7 @@
|
|
|
22492
22521
|
};
|
|
22493
22522
|
return AccountValidatorService;
|
|
22494
22523
|
}(AppValidatorService));
|
|
22495
|
-
AccountValidatorService.ɵprov =
|
|
22524
|
+
AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
22496
22525
|
AccountValidatorService.decorators = [
|
|
22497
22526
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
22498
22527
|
];
|
|
@@ -22839,7 +22868,7 @@
|
|
|
22839
22868
|
};
|
|
22840
22869
|
return MenuService;
|
|
22841
22870
|
}());
|
|
22842
|
-
MenuService.ɵprov =
|
|
22871
|
+
MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
22843
22872
|
MenuService.decorators = [
|
|
22844
22873
|
{ type: i0.Injectable, args: [{
|
|
22845
22874
|
providedIn: 'root'
|
|
@@ -23205,7 +23234,7 @@
|
|
|
23205
23234
|
};
|
|
23206
23235
|
return LocalSettingsValidatorService;
|
|
23207
23236
|
}(AppValidatorService));
|
|
23208
|
-
LocalSettingsValidatorService.ɵprov =
|
|
23237
|
+
LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
23209
23238
|
LocalSettingsValidatorService.decorators = [
|
|
23210
23239
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
23211
23240
|
];
|
|
@@ -23985,7 +24014,7 @@
|
|
|
23985
24014
|
};
|
|
23986
24015
|
return IsOnFieldModePipe;
|
|
23987
24016
|
}());
|
|
23988
|
-
IsOnFieldModePipe.ɵprov =
|
|
24017
|
+
IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
23989
24018
|
IsOnFieldModePipe.decorators = [
|
|
23990
24019
|
{ type: i0.Pipe, args: [{
|
|
23991
24020
|
name: 'isOnField'
|
|
@@ -24000,7 +24029,7 @@
|
|
|
24000
24029
|
};
|
|
24001
24030
|
return IsNotOnFieldModePipe;
|
|
24002
24031
|
}());
|
|
24003
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
24032
|
+
IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
24004
24033
|
IsNotOnFieldModePipe.decorators = [
|
|
24005
24034
|
{ type: i0.Pipe, args: [{
|
|
24006
24035
|
name: 'isNotOnField'
|
|
@@ -24018,7 +24047,7 @@
|
|
|
24018
24047
|
};
|
|
24019
24048
|
return PersonToStringPipe;
|
|
24020
24049
|
}());
|
|
24021
|
-
PersonToStringPipe.ɵprov =
|
|
24050
|
+
PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
24022
24051
|
PersonToStringPipe.decorators = [
|
|
24023
24052
|
{ type: i0.Pipe, args: [{
|
|
24024
24053
|
name: 'personToString'
|
|
@@ -24446,7 +24475,7 @@
|
|
|
24446
24475
|
};
|
|
24447
24476
|
return IsLoginAccountPipe;
|
|
24448
24477
|
}());
|
|
24449
|
-
IsLoginAccountPipe.ɵprov =
|
|
24478
|
+
IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
24450
24479
|
IsLoginAccountPipe.decorators = [
|
|
24451
24480
|
{ type: i0.Pipe, args: [{
|
|
24452
24481
|
name: 'isLogin'
|
|
@@ -24461,7 +24490,7 @@
|
|
|
24461
24490
|
};
|
|
24462
24491
|
return AccountToStringPipe;
|
|
24463
24492
|
}());
|
|
24464
|
-
AccountToStringPipe.ɵprov =
|
|
24493
|
+
AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
24465
24494
|
AccountToStringPipe.decorators = [
|
|
24466
24495
|
{ type: i0.Pipe, args: [{
|
|
24467
24496
|
name: 'accountToString'
|
|
@@ -24479,7 +24508,7 @@
|
|
|
24479
24508
|
};
|
|
24480
24509
|
return DepartmentToStringPipe;
|
|
24481
24510
|
}());
|
|
24482
|
-
DepartmentToStringPipe.ɵprov =
|
|
24511
|
+
DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
24483
24512
|
DepartmentToStringPipe.decorators = [
|
|
24484
24513
|
{ type: i0.Pipe, args: [{
|
|
24485
24514
|
name: 'departmentToString'
|
|
@@ -25245,7 +25274,7 @@
|
|
|
25245
25274
|
};
|
|
25246
25275
|
return AuthGuardService;
|
|
25247
25276
|
}());
|
|
25248
|
-
AuthGuardService.ɵprov =
|
|
25277
|
+
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
25278
|
AuthGuardService.decorators = [
|
|
25250
25279
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
25251
25280
|
];
|
|
@@ -26120,7 +26149,7 @@
|
|
|
26120
26149
|
this.handleServiceError(err_1);
|
|
26121
26150
|
return [3 /*break*/, 5];
|
|
26122
26151
|
case 4:
|
|
26123
|
-
this.
|
|
26152
|
+
this.markAsLoaded();
|
|
26124
26153
|
return [7 /*endfinally*/];
|
|
26125
26154
|
case 5: return [2 /*return*/];
|
|
26126
26155
|
}
|
|
@@ -26688,47 +26717,11 @@
|
|
|
26688
26717
|
this.listenDatasourceLoading(this._dataSource);
|
|
26689
26718
|
};
|
|
26690
26719
|
AppTable.prototype.ngAfterViewInit = function () {
|
|
26691
|
-
|
|
26692
|
-
if (this.debug)
|
|
26693
|
-
|
|
26694
|
-
|
|
26695
|
-
|
|
26696
|
-
if (!_this.table) {
|
|
26697
|
-
console.warn("[table] Missing <mat-table> in the HTML template (after waiting 500ms)! Component: " + _this.constructor.name);
|
|
26698
|
-
}
|
|
26699
|
-
}, 500);
|
|
26700
|
-
}
|
|
26701
|
-
if (!this.displayedColumns)
|
|
26702
|
-
console.warn("[table] Missing 'displayedColumns'. Did you call super.ngOnInit() in component " + this.constructor.name + " ?");
|
|
26703
|
-
}
|
|
26704
|
-
rxjs.merge(
|
|
26705
|
-
// Listen sort events
|
|
26706
|
-
this.sort && this.sort.sortChange
|
|
26707
|
-
.pipe(operators.filter(function () { return !_this.sort.disabled; }), operators.mergeMap(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_e) {
|
|
26708
|
-
return [2 /*return*/, this.saveBeforeAction('sort')];
|
|
26709
|
-
}); }); }), operators.filter(function (res) { return res === true; }),
|
|
26710
|
-
// Save sort in settings
|
|
26711
|
-
operators.tap(function () {
|
|
26712
|
-
var value = [_this.sort.active, _this.sort.direction || 'asc'].join(':');
|
|
26713
|
-
_this.settings.savePageSetting(_this.settingsId, value, SETTINGS_SORTED_COLUMN);
|
|
26714
|
-
}))
|
|
26715
|
-
|| rxjs.EMPTY,
|
|
26716
|
-
// Listen paginator events
|
|
26717
|
-
this.paginator && this.paginator.page
|
|
26718
|
-
.pipe(operators.mergeMap(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_e) {
|
|
26719
|
-
return [2 /*return*/, this.saveBeforeAction('sort')];
|
|
26720
|
-
}); }); }), operators.filter(function (res) { return res === true; }),
|
|
26721
|
-
// Save page size
|
|
26722
|
-
operators.tap(function () { return _this.settings.savePageSetting(_this.settingsId, _this.paginator.pageSize, SETTINGS_PAGE_SIZE); })) || rxjs.EMPTY).subscribe(function (value) {
|
|
26723
|
-
_this.onSort.emit();
|
|
26724
|
-
_this.onRefresh.emit(value);
|
|
26725
|
-
});
|
|
26726
|
-
// If the user changes the sort order, reset back to the first page.
|
|
26727
|
-
if (this.sort && this.paginator) {
|
|
26728
|
-
this.registerSubscription(this.sort.sortChange
|
|
26729
|
-
.pipe(operators.filter(function () { return !_this.sort.disabled; }))
|
|
26730
|
-
.subscribe(function () { return _this.paginator.pageIndex = 0; }));
|
|
26731
|
-
}
|
|
26720
|
+
// Detect when super.ngOnInit() not call
|
|
26721
|
+
if (this.debug && !this.displayedColumns)
|
|
26722
|
+
console.warn("[table] Missing 'displayedColumns'. Did you call super.ngOnInit() in component " + this.constructor.name + " ?");
|
|
26723
|
+
// Start listening sort and paginator events
|
|
26724
|
+
this.listenSortAndPaginationEvents();
|
|
26732
26725
|
};
|
|
26733
26726
|
AppTable.prototype.ngOnDestroy = function () {
|
|
26734
26727
|
var _this = this;
|
|
@@ -26871,27 +26864,6 @@
|
|
|
26871
26864
|
this.editRowById(event, row.id + 1, { focusColumn: this.firstUserColumn });
|
|
26872
26865
|
return true;
|
|
26873
26866
|
};
|
|
26874
|
-
AppTable.prototype.editRowById = function (event, id, opts) {
|
|
26875
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
26876
|
-
var row;
|
|
26877
|
-
return __generator(this, function (_e) {
|
|
26878
|
-
switch (_e.label) {
|
|
26879
|
-
case 0:
|
|
26880
|
-
if (id < 0)
|
|
26881
|
-
return [2 /*return*/];
|
|
26882
|
-
if (!(id >= this.visibleRowCount)) return [3 /*break*/, 1];
|
|
26883
|
-
this.addRow(event, undefined, Object.assign(Object.assign({}, opts), { editing: true }));
|
|
26884
|
-
return [3 /*break*/, 3];
|
|
26885
|
-
case 1: return [4 /*yield*/, this.dataSource.getRow(id)];
|
|
26886
|
-
case 2:
|
|
26887
|
-
row = _e.sent();
|
|
26888
|
-
this.editRow(event, row, opts);
|
|
26889
|
-
_e.label = 3;
|
|
26890
|
-
case 3: return [2 /*return*/];
|
|
26891
|
-
}
|
|
26892
|
-
});
|
|
26893
|
-
});
|
|
26894
|
-
};
|
|
26895
26867
|
/**
|
|
26896
26868
|
* Confirm the creation of the given row, or if not specified the currently edited row
|
|
26897
26869
|
*
|
|
@@ -26907,6 +26879,7 @@
|
|
|
26907
26879
|
// Stop event
|
|
26908
26880
|
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
26909
26881
|
// Confirmation edition or creation
|
|
26882
|
+
// TODO: add await ?
|
|
26910
26883
|
var confirmed = row.confirmEditCreate();
|
|
26911
26884
|
if (confirmed) {
|
|
26912
26885
|
// If edit finished, forget edited row
|
|
@@ -26925,6 +26898,7 @@
|
|
|
26925
26898
|
}
|
|
26926
26899
|
if (row.validator) {
|
|
26927
26900
|
// If pending: Wait end of validation, then loop
|
|
26901
|
+
// TODO: remove when using async isValid() function
|
|
26928
26902
|
if (row.validator.pending) {
|
|
26929
26903
|
AppFormUtils.waitWhilePending(row.validator).then(function () { return _this.confirmEditCreate(event, row); });
|
|
26930
26904
|
return false;
|
|
@@ -27093,20 +27067,16 @@
|
|
|
27093
27067
|
var rows;
|
|
27094
27068
|
var _this = this;
|
|
27095
27069
|
return __generator(this, function (_e) {
|
|
27096
|
-
|
|
27097
|
-
|
|
27098
|
-
|
|
27099
|
-
|
|
27100
|
-
if (!this.isAllSelected()) return [3 /*break*/, 1];
|
|
27101
|
-
this.selection.clear();
|
|
27102
|
-
return [3 /*break*/, 3];
|
|
27103
|
-
case 1: return [4 /*yield*/, this._dataSource.getRows()];
|
|
27104
|
-
case 2:
|
|
27105
|
-
rows = _e.sent();
|
|
27106
|
-
rows.forEach(function (row) { return _this.selection.select(row); });
|
|
27107
|
-
_e.label = 3;
|
|
27108
|
-
case 3: return [2 /*return*/];
|
|
27070
|
+
if (this.loading)
|
|
27071
|
+
return [2 /*return*/];
|
|
27072
|
+
if (this.isAllSelected()) {
|
|
27073
|
+
this.selection.clear();
|
|
27109
27074
|
}
|
|
27075
|
+
else {
|
|
27076
|
+
rows = this._dataSource.getRows();
|
|
27077
|
+
rows.forEach(function (row) { return _this.selection.select(row); });
|
|
27078
|
+
}
|
|
27079
|
+
return [2 /*return*/];
|
|
27110
27080
|
});
|
|
27111
27081
|
});
|
|
27112
27082
|
};
|
|
@@ -27270,9 +27240,7 @@
|
|
|
27270
27240
|
return [4 /*yield*/, this.waitIdle()];
|
|
27271
27241
|
case 1:
|
|
27272
27242
|
_e.sent();
|
|
27273
|
-
|
|
27274
|
-
case 2:
|
|
27275
|
-
row = ((_e.sent()) || [])
|
|
27243
|
+
row = this.dataSource.getRows()
|
|
27276
27244
|
.find(function (row) { return _this.equals(row.currentData, data); });
|
|
27277
27245
|
if (!row)
|
|
27278
27246
|
return [2 /*return*/, false];
|
|
@@ -27551,40 +27519,33 @@
|
|
|
27551
27519
|
};
|
|
27552
27520
|
AppTable.prototype.canCancelRows = function (rows, opts) {
|
|
27553
27521
|
return __awaiter(this, void 0, void 0, function () {
|
|
27554
|
-
var
|
|
27555
|
-
return __generator(this, function (
|
|
27556
|
-
switch (
|
|
27522
|
+
var isCancel, err_5;
|
|
27523
|
+
return __generator(this, function (_e) {
|
|
27524
|
+
switch (_e.label) {
|
|
27557
27525
|
case 0:
|
|
27558
|
-
_e = rows;
|
|
27559
|
-
if (_e) return [3 /*break*/, 2];
|
|
27560
|
-
return [4 /*yield*/, this.dataSource.getRows()];
|
|
27561
|
-
case 1:
|
|
27562
|
-
_e = (_f.sent()).filter(function (row) { var _a; return (_a = row.validator) === null || _a === void 0 ? void 0 : _a.dirty; });
|
|
27563
|
-
_f.label = 2;
|
|
27564
|
-
case 2:
|
|
27565
27526
|
// Get dirty rows
|
|
27566
|
-
rows =
|
|
27527
|
+
rows = rows || this.dataSource.getRows().filter(function (row) { var _a; return (_a = row.validator) === null || _a === void 0 ? void 0 : _a.dirty; });
|
|
27567
27528
|
if (isEmptyArray(rows))
|
|
27568
27529
|
return [2 /*return*/, true]; // No dirty: OK
|
|
27569
|
-
if (!(this.onBeforeCancelRows.observers.length > 0)) return [3 /*break*/,
|
|
27570
|
-
|
|
27571
|
-
case
|
|
27572
|
-
|
|
27530
|
+
if (!(this.onBeforeCancelRows.observers.length > 0)) return [3 /*break*/, 4];
|
|
27531
|
+
_e.label = 1;
|
|
27532
|
+
case 1:
|
|
27533
|
+
_e.trys.push([1, 3, , 4]);
|
|
27573
27534
|
return [4 /*yield*/, emitPromiseEvent(this.onBeforeCancelRows, 'canCancel', {
|
|
27574
27535
|
detail: { rows: rows }
|
|
27575
27536
|
})];
|
|
27576
|
-
case
|
|
27577
|
-
isCancel =
|
|
27537
|
+
case 2:
|
|
27538
|
+
isCancel = _e.sent();
|
|
27578
27539
|
if (!isCancel)
|
|
27579
27540
|
return [2 /*return*/, false];
|
|
27580
|
-
return [3 /*break*/,
|
|
27581
|
-
case
|
|
27582
|
-
err_5 =
|
|
27541
|
+
return [3 /*break*/, 4];
|
|
27542
|
+
case 3:
|
|
27543
|
+
err_5 = _e.sent();
|
|
27583
27544
|
if (err_5 === 'CANCELLED')
|
|
27584
27545
|
return [2 /*return*/, false]; // User cancel
|
|
27585
27546
|
console.error('Error while checking if can cancel rows', err_5);
|
|
27586
27547
|
throw err_5;
|
|
27587
|
-
case
|
|
27548
|
+
case 4:
|
|
27588
27549
|
// Ask user confirmation
|
|
27589
27550
|
if (this.confirmBeforeCancel && (!opts || opts.interactive !== false)) {
|
|
27590
27551
|
return [2 /*return*/, this.askCancelConfirmation(null, rows)];
|
|
@@ -27925,6 +27886,80 @@
|
|
|
27925
27886
|
this.markAsDirty(opts);
|
|
27926
27887
|
};
|
|
27927
27888
|
/* -- private method -- */
|
|
27889
|
+
AppTable.prototype.listenSortAndPaginationEvents = function () {
|
|
27890
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
27891
|
+
var _this = this;
|
|
27892
|
+
return __generator(this, function (_e) {
|
|
27893
|
+
switch (_e.label) {
|
|
27894
|
+
case 0:
|
|
27895
|
+
if (!!this.table) return [3 /*break*/, 2];
|
|
27896
|
+
// DEBUG only -- alert user that table not found in template
|
|
27897
|
+
if (this.debug) {
|
|
27898
|
+
setTimeout(function () { return !_this.table && console.warn("[table] Missing <mat-table> in the HTML template (after waiting 500ms)! Component: " + _this.constructor.name); }, 500);
|
|
27899
|
+
}
|
|
27900
|
+
// Make sure to wait the table
|
|
27901
|
+
return [4 /*yield*/, waitFor(function () { return !!_this.table; }, { stop: this.destroySubject })];
|
|
27902
|
+
case 1:
|
|
27903
|
+
// Make sure to wait the table
|
|
27904
|
+
_e.sent();
|
|
27905
|
+
_e.label = 2;
|
|
27906
|
+
case 2:
|
|
27907
|
+
this.registerSubscription(rxjs.merge(
|
|
27908
|
+
// Listen sort events
|
|
27909
|
+
this.sort && this.sort.sortChange
|
|
27910
|
+
.pipe(operators.filter(function () { return !_this.sort.disabled; }), operators.mergeMap(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_e) {
|
|
27911
|
+
return [2 /*return*/, this.saveBeforeAction('sort')];
|
|
27912
|
+
}); }); }), operators.filter(function (res) { return res === true; }),
|
|
27913
|
+
// Save sort in settings
|
|
27914
|
+
operators.tap(function () {
|
|
27915
|
+
var value = [_this.sort.active, _this.sort.direction || 'asc'].join(':');
|
|
27916
|
+
_this.settings.savePageSetting(_this.settingsId, value, SETTINGS_SORTED_COLUMN);
|
|
27917
|
+
}))
|
|
27918
|
+
|| rxjs.EMPTY,
|
|
27919
|
+
// Listen paginator events
|
|
27920
|
+
this.paginator && this.paginator.page
|
|
27921
|
+
.pipe(operators.mergeMap(function (event) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_e) {
|
|
27922
|
+
return [2 /*return*/, this.saveBeforeAction('sort')];
|
|
27923
|
+
}); }); }), operators.filter(function (res) { return res === true; }),
|
|
27924
|
+
// Save page size in settings
|
|
27925
|
+
operators.tap(function () { return _this.settings.savePageSetting(_this.settingsId, _this.paginator.pageSize, SETTINGS_PAGE_SIZE); })) || rxjs.EMPTY)
|
|
27926
|
+
// Refresh on any sort or paginator events
|
|
27927
|
+
.subscribe(function (value) {
|
|
27928
|
+
_this.onSort.emit(value);
|
|
27929
|
+
_this.onRefresh.emit(value);
|
|
27930
|
+
}));
|
|
27931
|
+
// If the user changes the sort order, reset back to the first page.
|
|
27932
|
+
if (this.sort && this.paginator) {
|
|
27933
|
+
this.registerSubscription(this.sort.sortChange
|
|
27934
|
+
.pipe(operators.filter(function () { return !_this.sort.disabled; }))
|
|
27935
|
+
.subscribe(function () { return _this.paginator.pageIndex = 0; }));
|
|
27936
|
+
}
|
|
27937
|
+
return [2 /*return*/];
|
|
27938
|
+
}
|
|
27939
|
+
});
|
|
27940
|
+
});
|
|
27941
|
+
};
|
|
27942
|
+
AppTable.prototype.editRowById = function (event, id, opts) {
|
|
27943
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
27944
|
+
var row;
|
|
27945
|
+
return __generator(this, function (_e) {
|
|
27946
|
+
switch (_e.label) {
|
|
27947
|
+
case 0:
|
|
27948
|
+
if (id < 0)
|
|
27949
|
+
return [2 /*return*/];
|
|
27950
|
+
if (!(id >= this.visibleRowCount)) return [3 /*break*/, 1];
|
|
27951
|
+
this.addRow(event, undefined, Object.assign(Object.assign({}, opts), { editing: true }));
|
|
27952
|
+
return [3 /*break*/, 3];
|
|
27953
|
+
case 1: return [4 /*yield*/, this.dataSource.getRow(id)];
|
|
27954
|
+
case 2:
|
|
27955
|
+
row = _e.sent();
|
|
27956
|
+
this.editRow(event, row, opts);
|
|
27957
|
+
_e.label = 3;
|
|
27958
|
+
case 3: return [2 /*return*/];
|
|
27959
|
+
}
|
|
27960
|
+
});
|
|
27961
|
+
});
|
|
27962
|
+
};
|
|
27928
27963
|
AppTable.prototype.setLoading = function (value, opts) {
|
|
27929
27964
|
if (this.loadingSubject.value !== value) {
|
|
27930
27965
|
this.loadingSubject.next(value);
|
|
@@ -28409,13 +28444,14 @@
|
|
|
28409
28444
|
}
|
|
28410
28445
|
};
|
|
28411
28446
|
AppEditor.prototype.markAsLoaded = function (opts) {
|
|
28412
|
-
var _a;
|
|
28447
|
+
var _a, _b;
|
|
28413
28448
|
if (this.loadingSubject.value) {
|
|
28414
28449
|
this.loadingSubject.next(false);
|
|
28415
28450
|
if (!opts || opts.onlySelf !== true) {
|
|
28416
|
-
// Emit to children forms
|
|
28417
|
-
//
|
|
28418
|
-
(_a = this.forms) === null || _a === void 0 ? void 0 : _a.forEach(function (
|
|
28451
|
+
// Emit to children forms and editors
|
|
28452
|
+
// note: tables should be changed by parent
|
|
28453
|
+
(_a = this.forms) === null || _a === void 0 ? void 0 : _a.forEach(function (f) { return f.markAsLoaded(opts); });
|
|
28454
|
+
(_b = this.editors) === null || _b === void 0 ? void 0 : _b.forEach(function (e) { return e.markAsLoaded(opts); });
|
|
28419
28455
|
}
|
|
28420
28456
|
if (!opts || opts.emitEvent !== false) {
|
|
28421
28457
|
this.markForCheck();
|
|
@@ -28439,20 +28475,20 @@
|
|
|
28439
28475
|
};
|
|
28440
28476
|
AppEditor.prototype.cancel = function (event) {
|
|
28441
28477
|
return __awaiter(this, void 0, void 0, function () {
|
|
28442
|
-
return __generator(this, function (
|
|
28443
|
-
switch (
|
|
28478
|
+
return __generator(this, function (_c) {
|
|
28479
|
+
switch (_c.label) {
|
|
28444
28480
|
case 0:
|
|
28445
28481
|
if (!this.isNewData) return [3 /*break*/, 2];
|
|
28446
28482
|
return [4 /*yield*/, this.unload()];
|
|
28447
28483
|
case 1:
|
|
28448
|
-
|
|
28484
|
+
_c.sent(); // async reset
|
|
28449
28485
|
return [3 /*break*/, 4];
|
|
28450
28486
|
case 2:
|
|
28451
28487
|
if (!this.dirty) return [3 /*break*/, 4];
|
|
28452
28488
|
return [4 /*yield*/, this.reload()];
|
|
28453
28489
|
case 3:
|
|
28454
|
-
|
|
28455
|
-
|
|
28490
|
+
_c.sent(); // async reload
|
|
28491
|
+
_c.label = 4;
|
|
28456
28492
|
case 4: return [2 /*return*/];
|
|
28457
28493
|
}
|
|
28458
28494
|
});
|
|
@@ -28466,7 +28502,7 @@
|
|
|
28466
28502
|
AppEditor.prototype.unload = function (opts) {
|
|
28467
28503
|
var _a;
|
|
28468
28504
|
return __awaiter(this, void 0, void 0, function () {
|
|
28469
|
-
return __generator(this, function (
|
|
28505
|
+
return __generator(this, function (_c) {
|
|
28470
28506
|
console.debug('[tab-page] Unloading data...');
|
|
28471
28507
|
this.markAsLoading();
|
|
28472
28508
|
(_a = this._children) === null || _a === void 0 ? void 0 : _a.forEach(function (f) {
|
|
@@ -28484,8 +28520,8 @@
|
|
|
28484
28520
|
AppEditor.prototype.reloadWithConfirmation = function (confirm) {
|
|
28485
28521
|
return __awaiter(this, void 0, void 0, function () {
|
|
28486
28522
|
var needConfirm, translations, alert;
|
|
28487
|
-
return __generator(this, function (
|
|
28488
|
-
switch (
|
|
28523
|
+
return __generator(this, function (_c) {
|
|
28524
|
+
switch (_c.label) {
|
|
28489
28525
|
case 0:
|
|
28490
28526
|
needConfirm = this.dirty;
|
|
28491
28527
|
if (!(!confirm && needConfirm)) return [3 /*break*/, 4];
|
|
@@ -28510,20 +28546,20 @@
|
|
|
28510
28546
|
]
|
|
28511
28547
|
})];
|
|
28512
28548
|
case 1:
|
|
28513
|
-
alert =
|
|
28549
|
+
alert = _c.sent();
|
|
28514
28550
|
return [4 /*yield*/, alert.present()];
|
|
28515
28551
|
case 2:
|
|
28516
|
-
|
|
28552
|
+
_c.sent();
|
|
28517
28553
|
return [4 /*yield*/, alert.onDidDismiss()];
|
|
28518
28554
|
case 3:
|
|
28519
|
-
|
|
28520
|
-
|
|
28555
|
+
_c.sent();
|
|
28556
|
+
_c.label = 4;
|
|
28521
28557
|
case 4:
|
|
28522
28558
|
if (!(confirm || !needConfirm)) return [3 /*break*/, 6];
|
|
28523
28559
|
this.scrollToTop();
|
|
28524
28560
|
this.disable();
|
|
28525
28561
|
return [4 /*yield*/, this.reload()];
|
|
28526
|
-
case 5: return [2 /*return*/,
|
|
28562
|
+
case 5: return [2 /*return*/, _c.sent()];
|
|
28527
28563
|
case 6: return [2 /*return*/];
|
|
28528
28564
|
}
|
|
28529
28565
|
});
|
|
@@ -28532,7 +28568,7 @@
|
|
|
28532
28568
|
AppEditor.prototype.goBack = function (event) {
|
|
28533
28569
|
var _a;
|
|
28534
28570
|
return __awaiter(this, void 0, void 0, function () {
|
|
28535
|
-
return __generator(this, function (
|
|
28571
|
+
return __generator(this, function (_c) {
|
|
28536
28572
|
// Go back
|
|
28537
28573
|
if ((_a = this.toolbar) === null || _a === void 0 ? void 0 : _a.canGoBack) {
|
|
28538
28574
|
return [2 /*return*/, this.toolbar.goBack()];
|
|
@@ -28556,7 +28592,7 @@
|
|
|
28556
28592
|
AppEditor.prototype.scrollToTop = function (duration) {
|
|
28557
28593
|
return __awaiter(this, void 0, void 0, function () {
|
|
28558
28594
|
var scrollToTop_1;
|
|
28559
|
-
return __generator(this, function (
|
|
28595
|
+
return __generator(this, function (_c) {
|
|
28560
28596
|
duration = toNumber(duration, 500);
|
|
28561
28597
|
if (!this.content) {
|
|
28562
28598
|
console.warn("[tab-editor] Cannot scroll to top. (no 'ion-content' tag found " + this.constructor.name);
|
|
@@ -28583,14 +28619,15 @@
|
|
|
28583
28619
|
};
|
|
28584
28620
|
AppEditor.prototype.saveIfDirtyAndConfirm = function (event, opts) {
|
|
28585
28621
|
return __awaiter(this, void 0, void 0, function () {
|
|
28586
|
-
var
|
|
28587
|
-
return __generator(this, function (
|
|
28588
|
-
switch (
|
|
28622
|
+
var confirmed, cancel_1, translations, alert;
|
|
28623
|
+
return __generator(this, function (_c) {
|
|
28624
|
+
switch (_c.label) {
|
|
28589
28625
|
case 0:
|
|
28590
28626
|
if (!this.dirty)
|
|
28591
28627
|
return [2 /*return*/, true];
|
|
28592
|
-
|
|
28593
|
-
|
|
28628
|
+
confirmed = (opts === null || opts === void 0 ? void 0 : opts.confirmed) || false;
|
|
28629
|
+
if (!!confirmed) return [3 /*break*/, 4];
|
|
28630
|
+
cancel_1 = false;
|
|
28594
28631
|
translations = this.translate.instant(['COMMON.BTN_SAVE', 'COMMON.BTN_CANCEL', 'COMMON.BTN_ABORT_CHANGES', 'CONFIRM.SAVE', 'CONFIRM.ALERT_HEADER']);
|
|
28595
28632
|
return [4 /*yield*/, this.alertCtrl.create({
|
|
28596
28633
|
header: translations['CONFIRM.ALERT_HEADER'],
|
|
@@ -28601,7 +28638,7 @@
|
|
|
28601
28638
|
role: 'cancel',
|
|
28602
28639
|
cssClass: 'secondary',
|
|
28603
28640
|
handler: function () {
|
|
28604
|
-
|
|
28641
|
+
cancel_1 = true;
|
|
28605
28642
|
}
|
|
28606
28643
|
},
|
|
28607
28644
|
{
|
|
@@ -28613,38 +28650,39 @@
|
|
|
28613
28650
|
{
|
|
28614
28651
|
text: translations['COMMON.BTN_SAVE'],
|
|
28615
28652
|
handler: function () {
|
|
28616
|
-
|
|
28653
|
+
confirmed = true; // update upper value
|
|
28617
28654
|
}
|
|
28618
28655
|
}
|
|
28619
28656
|
]
|
|
28620
28657
|
})];
|
|
28621
28658
|
case 1:
|
|
28622
|
-
alert =
|
|
28659
|
+
alert = _c.sent();
|
|
28623
28660
|
return [4 /*yield*/, alert.present()];
|
|
28624
28661
|
case 2:
|
|
28625
|
-
|
|
28662
|
+
_c.sent();
|
|
28626
28663
|
return [4 /*yield*/, alert.onDidDismiss()];
|
|
28627
28664
|
case 3:
|
|
28628
|
-
|
|
28629
|
-
if (!
|
|
28630
|
-
return [2 /*return*/, !
|
|
28665
|
+
_c.sent();
|
|
28666
|
+
if (!confirmed) {
|
|
28667
|
+
return [2 /*return*/, !cancel_1];
|
|
28631
28668
|
}
|
|
28632
|
-
|
|
28633
|
-
case 4: return [
|
|
28669
|
+
_c.label = 4;
|
|
28670
|
+
case 4: return [4 /*yield*/, this.save(event, opts)];
|
|
28671
|
+
case 5: return [2 /*return*/, _c.sent()];
|
|
28634
28672
|
}
|
|
28635
28673
|
});
|
|
28636
28674
|
});
|
|
28637
28675
|
};
|
|
28638
28676
|
AppEditor.prototype.showToast = function (opts) {
|
|
28639
28677
|
return __awaiter(this, void 0, void 0, function () {
|
|
28640
|
-
return __generator(this, function (
|
|
28641
|
-
switch (
|
|
28678
|
+
return __generator(this, function (_c) {
|
|
28679
|
+
switch (_c.label) {
|
|
28642
28680
|
case 0:
|
|
28643
28681
|
if (!this.toastController)
|
|
28644
28682
|
throw new Error('Missing toastController in component\'s constructor');
|
|
28645
28683
|
return [4 /*yield*/, Toasts.show(this.toastController, this.translate, opts)];
|
|
28646
28684
|
case 1:
|
|
28647
|
-
|
|
28685
|
+
_c.sent();
|
|
28648
28686
|
return [2 /*return*/];
|
|
28649
28687
|
}
|
|
28650
28688
|
});
|
|
@@ -28869,13 +28907,13 @@
|
|
|
28869
28907
|
unload: { get: function () { return _super_1.prototype.unload; } }
|
|
28870
28908
|
});
|
|
28871
28909
|
return __awaiter(this, void 0, void 0, function () {
|
|
28872
|
-
return __generator(this, function (
|
|
28873
|
-
switch (
|
|
28910
|
+
return __generator(this, function (_c) {
|
|
28911
|
+
switch (_c.label) {
|
|
28874
28912
|
case 0:
|
|
28875
28913
|
this.selectedTabIndex = 0;
|
|
28876
28914
|
return [4 /*yield*/, _super.unload.call(this, opts)];
|
|
28877
28915
|
case 1:
|
|
28878
|
-
|
|
28916
|
+
_c.sent();
|
|
28879
28917
|
return [2 /*return*/];
|
|
28880
28918
|
}
|
|
28881
28919
|
});
|
|
@@ -28884,13 +28922,13 @@
|
|
|
28884
28922
|
AppTabEditor.prototype.saveDirtyTables = function () {
|
|
28885
28923
|
return __awaiter(this, void 0, void 0, function () {
|
|
28886
28924
|
var results, saved;
|
|
28887
|
-
return __generator(this, function (
|
|
28888
|
-
switch (
|
|
28925
|
+
return __generator(this, function (_c) {
|
|
28926
|
+
switch (_c.label) {
|
|
28889
28927
|
case 0: return [4 /*yield*/, Promise.all((this.tables || [])
|
|
28890
28928
|
.filter(function (c) { return c.dirty; })
|
|
28891
28929
|
.map(function (c) { return c.save(); }))];
|
|
28892
28930
|
case 1:
|
|
28893
|
-
results =
|
|
28931
|
+
results = _c.sent();
|
|
28894
28932
|
saved = results.findIndex(function (result) { return result !== true; }) === -1;
|
|
28895
28933
|
return [2 /*return*/, saved];
|
|
28896
28934
|
}
|
|
@@ -30381,7 +30419,7 @@
|
|
|
30381
30419
|
SUBSCRIBE_JOB_PROGRESSION_ERROR: 50010
|
|
30382
30420
|
};
|
|
30383
30421
|
|
|
30384
|
-
var moment$
|
|
30422
|
+
var moment$6 = momentImported__namespace;
|
|
30385
30423
|
var USER_EVENT_SERVICE = new i0.InjectionToken('UserEventService');
|
|
30386
30424
|
var AbstractUserEventService = /** @class */ (function (_super) {
|
|
30387
30425
|
__extends(AbstractUserEventService, _super);
|
|
@@ -30903,7 +30941,7 @@
|
|
|
30903
30941
|
};
|
|
30904
30942
|
AbstractUserEventService.prototype.resetCount = function () {
|
|
30905
30943
|
this._countSubject.next(undefined);
|
|
30906
|
-
this.resetCountDate = moment$
|
|
30944
|
+
this.resetCountDate = moment$6();
|
|
30907
30945
|
// restart listening count changes
|
|
30908
30946
|
this.startListenCountChanges();
|
|
30909
30947
|
};
|
|
@@ -31007,7 +31045,7 @@
|
|
|
31007
31045
|
if (!userEvents.length)
|
|
31008
31046
|
return [2 /*return*/];
|
|
31009
31047
|
// set read date
|
|
31010
|
-
userEvents.forEach(function (userEvent) { return userEvent.readDate = moment$
|
|
31048
|
+
userEvents.forEach(function (userEvent) { return userEvent.readDate = moment$6(); });
|
|
31011
31049
|
localEntities = userEvents.filter(function (userEvent) { return !userEvent.id || userEvent.id < 0; });
|
|
31012
31050
|
remoteEntities = userEvents.filter(function (userEvent) { return userEvent.id > 0; });
|
|
31013
31051
|
// save local entities
|
|
@@ -32053,7 +32091,7 @@
|
|
|
32053
32091
|
];
|
|
32054
32092
|
|
|
32055
32093
|
var Mutations = {
|
|
32056
|
-
send: core.gql(templateObject_1$
|
|
32094
|
+
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 }"])))
|
|
32057
32095
|
};
|
|
32058
32096
|
var MessageService = /** @class */ (function (_super) {
|
|
32059
32097
|
__extends(MessageService, _super);
|
|
@@ -32127,7 +32165,7 @@
|
|
|
32127
32165
|
};
|
|
32128
32166
|
return MessageService;
|
|
32129
32167
|
}(BaseGraphqlService));
|
|
32130
|
-
MessageService.ɵprov =
|
|
32168
|
+
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" });
|
|
32131
32169
|
MessageService.decorators = [
|
|
32132
32170
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
32133
32171
|
];
|
|
@@ -32137,7 +32175,7 @@
|
|
|
32137
32175
|
{ type: i1$5.ToastController },
|
|
32138
32176
|
{ type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
32139
32177
|
]; };
|
|
32140
|
-
var templateObject_1$
|
|
32178
|
+
var templateObject_1$3;
|
|
32141
32179
|
|
|
32142
32180
|
var PersonFilter_1;
|
|
32143
32181
|
// @dynamic
|
|
@@ -32196,16 +32234,16 @@
|
|
|
32196
32234
|
], exports.PersonFilter);
|
|
32197
32235
|
|
|
32198
32236
|
var PersonFragments = {
|
|
32199
|
-
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 }"])))
|
|
32237
|
+
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 }"])))
|
|
32200
32238
|
};
|
|
32201
32239
|
// Load persons query
|
|
32202
32240
|
var PersonQueries = {
|
|
32203
|
-
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),
|
|
32204
|
-
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)
|
|
32241
|
+
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),
|
|
32242
|
+
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)
|
|
32205
32243
|
};
|
|
32206
32244
|
var PersonMutations = {
|
|
32207
|
-
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),
|
|
32208
|
-
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 }"])))
|
|
32245
|
+
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),
|
|
32246
|
+
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 }"])))
|
|
32209
32247
|
};
|
|
32210
32248
|
var PersonService = /** @class */ (function (_super_1) {
|
|
32211
32249
|
__extends(PersonService, _super_1);
|
|
@@ -32326,7 +32364,7 @@
|
|
|
32326
32364
|
};
|
|
32327
32365
|
return PersonService;
|
|
32328
32366
|
}(BaseEntityService));
|
|
32329
|
-
PersonService.ɵprov =
|
|
32367
|
+
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" });
|
|
32330
32368
|
PersonService.decorators = [
|
|
32331
32369
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
32332
32370
|
];
|
|
@@ -32336,7 +32374,7 @@
|
|
|
32336
32374
|
{ type: NetworkService },
|
|
32337
32375
|
{ type: EntitiesStorage }
|
|
32338
32376
|
]; };
|
|
32339
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
32377
|
+
var templateObject_1$4, templateObject_2$2, templateObject_3$2, templateObject_4$2, templateObject_5$2;
|
|
32340
32378
|
|
|
32341
32379
|
var PersonValidatorService = /** @class */ (function () {
|
|
32342
32380
|
function PersonValidatorService(formBuilder, accountValidatorService) {
|
|
@@ -32359,7 +32397,7 @@
|
|
|
32359
32397
|
};
|
|
32360
32398
|
return PersonValidatorService;
|
|
32361
32399
|
}());
|
|
32362
|
-
PersonValidatorService.ɵprov =
|
|
32400
|
+
PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
32363
32401
|
PersonValidatorService.decorators = [
|
|
32364
32402
|
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
32365
32403
|
];
|
|
@@ -32570,7 +32608,7 @@
|
|
|
32570
32608
|
UsersPage.decorators = [
|
|
32571
32609
|
{ type: i0.Component, args: [{
|
|
32572
32610
|
selector: 'app-users-table',
|
|
32573
|
-
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",
|
|
32611
|
+
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",
|
|
32574
32612
|
providers: [
|
|
32575
32613
|
{ provide: ngxMaterialTable.ValidatorService, useExisting: PersonValidatorService }
|
|
32576
32614
|
],
|
|
@@ -32622,17 +32660,17 @@
|
|
|
32622
32660
|
];
|
|
32623
32661
|
AdminModule.ctorParameters = function () { return []; };
|
|
32624
32662
|
|
|
32625
|
-
var ɵ0 = {
|
|
32663
|
+
var ɵ0$c = {
|
|
32626
32664
|
profile: 'ADMIN'
|
|
32627
32665
|
};
|
|
32628
|
-
var routes
|
|
32666
|
+
var routes = [
|
|
32629
32667
|
{
|
|
32630
32668
|
path: 'users',
|
|
32631
32669
|
pathMatch: 'full',
|
|
32632
32670
|
component: UsersPage,
|
|
32633
32671
|
canActivate: [AuthGuardService],
|
|
32634
32672
|
canDeactivate: [ComponentDirtyGuard],
|
|
32635
|
-
data: ɵ0
|
|
32673
|
+
data: ɵ0$c
|
|
32636
32674
|
}
|
|
32637
32675
|
];
|
|
32638
32676
|
var AdminRoutingModule = /** @class */ (function () {
|
|
@@ -32645,30 +32683,30 @@
|
|
|
32645
32683
|
imports: [
|
|
32646
32684
|
SharedRoutingModule,
|
|
32647
32685
|
AdminModule,
|
|
32648
|
-
i3.RouterModule.forChild(routes
|
|
32686
|
+
i3.RouterModule.forChild(routes)
|
|
32649
32687
|
],
|
|
32650
32688
|
exports: [i3.RouterModule]
|
|
32651
32689
|
},] }
|
|
32652
32690
|
];
|
|
32653
32691
|
|
|
32654
|
-
var EntityTestClass
|
|
32692
|
+
var EntityTestClass = /** @class */ (function () {
|
|
32655
32693
|
function EntityTestClass() {
|
|
32656
32694
|
}
|
|
32657
32695
|
return EntityTestClass;
|
|
32658
32696
|
}());
|
|
32659
|
-
var FAKE_ENTITIES
|
|
32697
|
+
var FAKE_ENTITIES = [
|
|
32660
32698
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
32661
32699
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
32662
32700
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
32663
32701
|
];
|
|
32664
|
-
function deepCopy
|
|
32702
|
+
function deepCopy(values, size) {
|
|
32665
32703
|
if (isNil(size)) {
|
|
32666
|
-
return (values || FAKE_ENTITIES
|
|
32704
|
+
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
32667
32705
|
}
|
|
32668
32706
|
var result = [];
|
|
32669
32707
|
var i = 1;
|
|
32670
32708
|
while (result.length < size) {
|
|
32671
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
32709
|
+
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
32672
32710
|
var name = entity.name + ' #' + i;
|
|
32673
32711
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
32674
32712
|
}));
|
|
@@ -32678,7 +32716,7 @@
|
|
|
32678
32716
|
var AutocompleteTestPage = /** @class */ (function () {
|
|
32679
32717
|
function AutocompleteTestPage(formBuilder) {
|
|
32680
32718
|
this.formBuilder = formBuilder;
|
|
32681
|
-
this._items = deepCopy
|
|
32719
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
32682
32720
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
32683
32721
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
32684
32722
|
this.memoryHide = false;
|
|
@@ -32724,7 +32762,7 @@
|
|
|
32724
32762
|
});
|
|
32725
32763
|
// From items
|
|
32726
32764
|
this.autocompleteFields.add('entity-items-large', {
|
|
32727
|
-
items: FAKE_ENTITIES
|
|
32765
|
+
items: FAKE_ENTITIES.slice(),
|
|
32728
32766
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
32729
32767
|
displayWith: this.entityToString
|
|
32730
32768
|
});
|
|
@@ -32760,14 +32798,14 @@
|
|
|
32760
32798
|
var _this = this;
|
|
32761
32799
|
return __generator(this, function (_a) {
|
|
32762
32800
|
data = {
|
|
32763
|
-
entity: deepCopy
|
|
32764
|
-
farEntity: deepCopy
|
|
32801
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
32802
|
+
farEntity: deepCopy(FAKE_ENTITIES)[2],
|
|
32765
32803
|
// This item is NOT in the items list => i should be displayed anyway
|
|
32766
32804
|
missingEntity: {
|
|
32767
32805
|
id: -1, label: '??', name: 'Missing item'
|
|
32768
32806
|
},
|
|
32769
|
-
disableEntity: deepCopy
|
|
32770
|
-
entities: deepCopy
|
|
32807
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2],
|
|
32808
|
+
entities: deepCopy(FAKE_ENTITIES)
|
|
32771
32809
|
};
|
|
32772
32810
|
this.form.setValue(data);
|
|
32773
32811
|
// Load observables
|
|
@@ -32939,13 +32977,13 @@
|
|
|
32939
32977
|
{ type: i1.FormBuilder }
|
|
32940
32978
|
]; };
|
|
32941
32979
|
|
|
32942
|
-
var moment$
|
|
32980
|
+
var moment$7 = momentImported__namespace;
|
|
32943
32981
|
var SwipeTestPage = /** @class */ (function () {
|
|
32944
32982
|
function SwipeTestPage(formBuilder, dateFormatPipe) {
|
|
32945
32983
|
this.formBuilder = formBuilder;
|
|
32946
32984
|
this.dateFormatPipe = dateFormatPipe;
|
|
32947
32985
|
this.$dates = new rxjs.BehaviorSubject(undefined);
|
|
32948
|
-
this._today = moment$
|
|
32986
|
+
this._today = moment$7().startOf('day');
|
|
32949
32987
|
this.form = formBuilder.group({
|
|
32950
32988
|
empty: [null, i1.Validators.required],
|
|
32951
32989
|
date: [null, i1.Validators.compose([i1.Validators.required, SharedValidators.validDate])],
|
|
@@ -32959,7 +32997,7 @@
|
|
|
32959
32997
|
var _this = this;
|
|
32960
32998
|
var dates = [];
|
|
32961
32999
|
for (var d = 0; d < 7; d++) {
|
|
32962
|
-
dates[d] = moment$
|
|
33000
|
+
dates[d] = moment$7(this._today).add(d - 3, 'day');
|
|
32963
33001
|
}
|
|
32964
33002
|
this.$dates.next(dates);
|
|
32965
33003
|
this.loadData();
|
|
@@ -33006,7 +33044,7 @@
|
|
|
33006
33044
|
{ type: DateFormatPipe }
|
|
33007
33045
|
]; };
|
|
33008
33046
|
|
|
33009
|
-
var moment$
|
|
33047
|
+
var moment$8 = momentImported__namespace;
|
|
33010
33048
|
var DateTimeTestPage = /** @class */ (function () {
|
|
33011
33049
|
function DateTimeTestPage(platform, formBuilder, cd) {
|
|
33012
33050
|
this.platform = platform;
|
|
@@ -33044,7 +33082,7 @@
|
|
|
33044
33082
|
var now, data;
|
|
33045
33083
|
var _this = this;
|
|
33046
33084
|
return __generator(this, function (_a) {
|
|
33047
|
-
now = moment$
|
|
33085
|
+
now = moment$8();
|
|
33048
33086
|
data = {
|
|
33049
33087
|
empty: null,
|
|
33050
33088
|
emptyRequired: null,
|
|
@@ -33114,12 +33152,12 @@
|
|
|
33114
33152
|
{ type: i0.ChangeDetectorRef }
|
|
33115
33153
|
]; };
|
|
33116
33154
|
|
|
33117
|
-
var EntityTestClass = /** @class */ (function () {
|
|
33155
|
+
var EntityTestClass$1 = /** @class */ (function () {
|
|
33118
33156
|
function EntityTestClass() {
|
|
33119
33157
|
}
|
|
33120
33158
|
return EntityTestClass;
|
|
33121
33159
|
}());
|
|
33122
|
-
var FAKE_ENTITIES = [
|
|
33160
|
+
var FAKE_ENTITIES$1 = [
|
|
33123
33161
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
33124
33162
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
33125
33163
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -33128,14 +33166,14 @@
|
|
|
33128
33166
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
33129
33167
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
33130
33168
|
];
|
|
33131
|
-
function deepCopy(values, size) {
|
|
33169
|
+
function deepCopy$1(values, size) {
|
|
33132
33170
|
if (isNil(size)) {
|
|
33133
|
-
return (values || FAKE_ENTITIES).map(function (entity) { return Object.assign({}, entity); });
|
|
33171
|
+
return (values || FAKE_ENTITIES$1).map(function (entity) { return Object.assign({}, entity); });
|
|
33134
33172
|
}
|
|
33135
33173
|
var result = [];
|
|
33136
33174
|
var i = 1;
|
|
33137
33175
|
while (result.length < size) {
|
|
33138
|
-
result = result.concat((values || FAKE_ENTITIES).map(function (entity) {
|
|
33176
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(function (entity) {
|
|
33139
33177
|
var name = entity.name + ' #' + i;
|
|
33140
33178
|
return Object.assign(Object.assign({}, entity), { id: i++, name: name });
|
|
33141
33179
|
}));
|
|
@@ -33145,7 +33183,7 @@
|
|
|
33145
33183
|
var ChipsTestPage = /** @class */ (function () {
|
|
33146
33184
|
function ChipsTestPage(formBuilder) {
|
|
33147
33185
|
this.formBuilder = formBuilder;
|
|
33148
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
33186
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
33149
33187
|
this._$items = new rxjs.BehaviorSubject(undefined);
|
|
33150
33188
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
33151
33189
|
this.appearance = 'legacy';
|
|
@@ -33189,7 +33227,7 @@
|
|
|
33189
33227
|
var items, data;
|
|
33190
33228
|
var _this = this;
|
|
33191
33229
|
return __generator(this, function (_a) {
|
|
33192
|
-
items = deepCopy(FAKE_ENTITIES);
|
|
33230
|
+
items = deepCopy$1(FAKE_ENTITIES$1);
|
|
33193
33231
|
data = {
|
|
33194
33232
|
entity: items.slice(0, 1),
|
|
33195
33233
|
entityInitial: items.slice(1, 2),
|
|
@@ -33326,7 +33364,7 @@
|
|
|
33326
33364
|
{ type: i1.FormBuilder }
|
|
33327
33365
|
]; };
|
|
33328
33366
|
|
|
33329
|
-
var moment$
|
|
33367
|
+
var moment$9 = momentImported__namespace;
|
|
33330
33368
|
var DateTestPage = /** @class */ (function () {
|
|
33331
33369
|
function DateTestPage(formBuilder, cd) {
|
|
33332
33370
|
this.formBuilder = formBuilder;
|
|
@@ -33363,7 +33401,7 @@
|
|
|
33363
33401
|
var now, nowAtMahe, data;
|
|
33364
33402
|
var _this = this;
|
|
33365
33403
|
return __generator(this, function (_a) {
|
|
33366
|
-
now = moment$
|
|
33404
|
+
now = moment$9();
|
|
33367
33405
|
nowAtMahe = now.clone().tz(this.timezone).startOf('day');
|
|
33368
33406
|
data = {
|
|
33369
33407
|
empty: null,
|
|
@@ -33445,7 +33483,7 @@
|
|
|
33445
33483
|
{ label: 'Shared directives', divider: true },
|
|
33446
33484
|
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
|
|
33447
33485
|
];
|
|
33448
|
-
var routes$
|
|
33486
|
+
var routes$1 = [
|
|
33449
33487
|
{
|
|
33450
33488
|
path: '',
|
|
33451
33489
|
pathMatch: 'full',
|
|
@@ -33505,7 +33543,7 @@
|
|
|
33505
33543
|
i1.ReactiveFormsModule,
|
|
33506
33544
|
SharedMaterialModule,
|
|
33507
33545
|
i1$2.TranslateModule.forChild(),
|
|
33508
|
-
i3.RouterModule.forChild(routes$
|
|
33546
|
+
i3.RouterModule.forChild(routes$1)
|
|
33509
33547
|
],
|
|
33510
33548
|
declarations: [
|
|
33511
33549
|
DateTimeTestPage,
|
|
@@ -33567,7 +33605,7 @@
|
|
|
33567
33605
|
{ type: i1$2.TranslateService }
|
|
33568
33606
|
]; };
|
|
33569
33607
|
|
|
33570
|
-
var routes$
|
|
33608
|
+
var routes$2 = [
|
|
33571
33609
|
{
|
|
33572
33610
|
path: 'toast',
|
|
33573
33611
|
pathMatch: 'full',
|
|
@@ -33585,7 +33623,7 @@
|
|
|
33585
33623
|
i1$4.CommonModule,
|
|
33586
33624
|
i1$5.IonicModule,
|
|
33587
33625
|
i1$2.TranslateModule.forChild(),
|
|
33588
|
-
i3.RouterModule.forChild(routes$
|
|
33626
|
+
i3.RouterModule.forChild(routes$2)
|
|
33589
33627
|
],
|
|
33590
33628
|
declarations: [
|
|
33591
33629
|
ToastTestingPage
|
|
@@ -33888,7 +33926,7 @@
|
|
|
33888
33926
|
console.debug('[test-table] Destroying table...');
|
|
33889
33927
|
_super_1.prototype.ngOnDestroy.call(this);
|
|
33890
33928
|
this.stopTimer();
|
|
33891
|
-
this.dataService.
|
|
33929
|
+
this.dataService.stop();
|
|
33892
33930
|
};
|
|
33893
33931
|
TableTestPage.prototype.restoreFilter = function () {
|
|
33894
33932
|
var json = this.settings.getPageSettings(this.settingsId, 'filter');
|
|
@@ -33914,6 +33952,7 @@
|
|
|
33914
33952
|
this.data = this.generateData(0, TableTestPage.maxRowCount);
|
|
33915
33953
|
}
|
|
33916
33954
|
this.dataService.value = this.data;
|
|
33955
|
+
this.onRefresh.emit();
|
|
33917
33956
|
};
|
|
33918
33957
|
TableTestPage.prototype.fetchMore = function (event) {
|
|
33919
33958
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -34116,7 +34155,7 @@
|
|
|
34116
34155
|
{ type: i1$5.PopoverController }
|
|
34117
34156
|
]; };
|
|
34118
34157
|
|
|
34119
|
-
var routes$
|
|
34158
|
+
var routes$4 = [
|
|
34120
34159
|
{
|
|
34121
34160
|
path: 'text-popover',
|
|
34122
34161
|
pathMatch: 'full',
|
|
@@ -34134,7 +34173,7 @@
|
|
|
34134
34173
|
i1$4.CommonModule,
|
|
34135
34174
|
i1$5.IonicModule,
|
|
34136
34175
|
i1$2.TranslateModule.forChild(),
|
|
34137
|
-
i3.RouterModule.forChild(routes$
|
|
34176
|
+
i3.RouterModule.forChild(routes$4)
|
|
34138
34177
|
],
|
|
34139
34178
|
declarations: [
|
|
34140
34179
|
TextPopoverTestingPage
|
|
@@ -34151,7 +34190,7 @@
|
|
|
34151
34190
|
{ label: 'Table', page: '/testing/core/table' },
|
|
34152
34191
|
{ label: 'Text popover', page: '/testing/core/text-popover' }
|
|
34153
34192
|
];
|
|
34154
|
-
var routes$
|
|
34193
|
+
var routes$5 = [
|
|
34155
34194
|
{
|
|
34156
34195
|
path: '',
|
|
34157
34196
|
pathMatch: 'full',
|
|
@@ -34178,7 +34217,7 @@
|
|
|
34178
34217
|
imports: [
|
|
34179
34218
|
i1$4.CommonModule,
|
|
34180
34219
|
i1$2.TranslateModule.forChild(),
|
|
34181
|
-
i3.RouterModule.forChild(routes$
|
|
34220
|
+
i3.RouterModule.forChild(routes$5),
|
|
34182
34221
|
// Sub modules
|
|
34183
34222
|
TableTestingModule,
|
|
34184
34223
|
TextPopoverTestingModule
|
|
@@ -34533,7 +34572,7 @@
|
|
|
34533
34572
|
{ type: Environment, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [ENVIRONMENT,] }] }
|
|
34534
34573
|
]; };
|
|
34535
34574
|
|
|
34536
|
-
var moment = momentImported__namespace;
|
|
34575
|
+
var moment$a = momentImported__namespace;
|
|
34537
34576
|
var UserEventTestingPage = /** @class */ (function () {
|
|
34538
34577
|
function UserEventTestingPage(userEventService, router, alertController, translateService) {
|
|
34539
34578
|
var _this = this;
|
|
@@ -34599,7 +34638,7 @@
|
|
|
34599
34638
|
type: 'message',
|
|
34600
34639
|
level: 'INFO',
|
|
34601
34640
|
message: 'message test message test message test message test message test message test message test message test',
|
|
34602
|
-
creationDate: moment(),
|
|
34641
|
+
creationDate: moment$a(),
|
|
34603
34642
|
}));
|
|
34604
34643
|
};
|
|
34605
34644
|
UserEventTestingPage.prototype.addError = function () {
|
|
@@ -34609,7 +34648,7 @@
|
|
|
34609
34648
|
type: 'upload',
|
|
34610
34649
|
level: 'ERROR',
|
|
34611
34650
|
message: 'message error',
|
|
34612
|
-
creationDate: moment(),
|
|
34651
|
+
creationDate: moment$a(),
|
|
34613
34652
|
}));
|
|
34614
34653
|
};
|
|
34615
34654
|
UserEventTestingPage.prototype.addWarning = function () {
|
|
@@ -34619,7 +34658,7 @@
|
|
|
34619
34658
|
type: 'download',
|
|
34620
34659
|
level: 'WARNING',
|
|
34621
34660
|
message: 'message warning',
|
|
34622
|
-
creationDate: moment(),
|
|
34661
|
+
creationDate: moment$a(),
|
|
34623
34662
|
}));
|
|
34624
34663
|
};
|
|
34625
34664
|
UserEventTestingPage.prototype.addDebug = function () {
|
|
@@ -34629,7 +34668,7 @@
|
|
|
34629
34668
|
type: 'debug',
|
|
34630
34669
|
level: 'DEBUG',
|
|
34631
34670
|
message: 'message DEBUG',
|
|
34632
|
-
creationDate: moment(),
|
|
34671
|
+
creationDate: moment$a(),
|
|
34633
34672
|
}));
|
|
34634
34673
|
};
|
|
34635
34674
|
UserEventTestingPage.prototype.addNotificationWithLink = function () {
|
|
@@ -34640,7 +34679,7 @@
|
|
|
34640
34679
|
type: 'message',
|
|
34641
34680
|
level: 'INFO',
|
|
34642
34681
|
message: 'message with link',
|
|
34643
|
-
creationDate: moment(),
|
|
34682
|
+
creationDate: moment$a(),
|
|
34644
34683
|
actions: [{
|
|
34645
34684
|
name: 'click here',
|
|
34646
34685
|
iconRef: {
|
|
@@ -34658,7 +34697,7 @@
|
|
|
34658
34697
|
type: 'message',
|
|
34659
34698
|
level: 'INFO',
|
|
34660
34699
|
message: 'message with action',
|
|
34661
|
-
creationDate: moment(),
|
|
34700
|
+
creationDate: moment$a(),
|
|
34662
34701
|
actions: [
|
|
34663
34702
|
{
|
|
34664
34703
|
name: 'click here',
|
|
@@ -34732,7 +34771,7 @@
|
|
|
34732
34771
|
type: 'message',
|
|
34733
34772
|
level: 'INFO',
|
|
34734
34773
|
message: 'message with action',
|
|
34735
|
-
creationDate: moment(),
|
|
34774
|
+
creationDate: moment$a(),
|
|
34736
34775
|
actions: [
|
|
34737
34776
|
{
|
|
34738
34777
|
default: true,
|
|
@@ -34790,7 +34829,7 @@
|
|
|
34790
34829
|
{ label: 'User event', page: '/testing/social/user-event' },
|
|
34791
34830
|
{ label: 'Job progression', page: '/testing/social/job-progression' }
|
|
34792
34831
|
];
|
|
34793
|
-
var routes = [
|
|
34832
|
+
var routes$6 = [
|
|
34794
34833
|
{
|
|
34795
34834
|
path: 'job-progression',
|
|
34796
34835
|
pathMatch: 'full',
|
|
@@ -34812,7 +34851,7 @@
|
|
|
34812
34851
|
imports: [
|
|
34813
34852
|
i1$4.CommonModule,
|
|
34814
34853
|
i1$2.TranslateModule.forChild(),
|
|
34815
|
-
i3.RouterModule.forChild(routes),
|
|
34854
|
+
i3.RouterModule.forChild(routes$6),
|
|
34816
34855
|
JobTestingModule,
|
|
34817
34856
|
UserEventTestingModule
|
|
34818
34857
|
],
|
|
@@ -34926,7 +34965,6 @@
|
|
|
34926
34965
|
exports.ENTITIES_STORAGE_KEY_PREFIX = ENTITIES_STORAGE_KEY_PREFIX;
|
|
34927
34966
|
exports.ENVIRONMENT = ENVIRONMENT;
|
|
34928
34967
|
exports.EmptyArrayPipe = EmptyArrayPipe;
|
|
34929
|
-
exports.EntitiesService = EntitiesService;
|
|
34930
34968
|
exports.EntitiesStorage = EntitiesStorage;
|
|
34931
34969
|
exports.EntitiesTableDataSource = EntitiesTableDataSource;
|
|
34932
34970
|
exports.Entity = Entity;
|
|
@@ -34955,7 +34993,7 @@
|
|
|
34955
34993
|
exports.FormGetGroupPipe = FormGetGroupPipe;
|
|
34956
34994
|
exports.FormGetPipe = FormGetPipe;
|
|
34957
34995
|
exports.FormGetValuePipe = FormGetValuePipe;
|
|
34958
|
-
exports.Fragments = Fragments;
|
|
34996
|
+
exports.Fragments = Fragments$1;
|
|
34959
34997
|
exports.GraphqlService = GraphqlService;
|
|
34960
34998
|
exports.HAMMER_PRESS_TIME = HAMMER_PRESS_TIME;
|
|
34961
34999
|
exports.HAMMER_TAP_TIME = HAMMER_TAP_TIME;
|
|
@@ -35273,25 +35311,25 @@
|
|
|
35273
35311
|
exports.waitForTrue = waitForTrue;
|
|
35274
35312
|
exports.waitIdle = waitIdle;
|
|
35275
35313
|
exports.waitWhilePending = waitWhilePending;
|
|
35276
|
-
exports
|
|
35277
|
-
exports
|
|
35278
|
-
exports
|
|
35279
|
-
exports
|
|
35280
|
-
exports
|
|
35281
|
-
exports
|
|
35282
|
-
exports
|
|
35283
|
-
exports
|
|
35284
|
-
exports
|
|
35285
|
-
exports
|
|
35286
|
-
exports
|
|
35287
|
-
exports
|
|
35288
|
-
exports
|
|
35289
|
-
exports
|
|
35290
|
-
exports
|
|
35291
|
-
exports
|
|
35292
|
-
exports
|
|
35314
|
+
exports.ɵ0 = ɵ0;
|
|
35315
|
+
exports.ɵa = CustomReuseStrategy;
|
|
35316
|
+
exports.ɵb = MatNumpadDomService;
|
|
35317
|
+
exports.ɵc = isFocusableElement;
|
|
35318
|
+
exports.ɵd = RegisterForm;
|
|
35319
|
+
exports.ɵe = AccountValidatorService;
|
|
35320
|
+
exports.ɵf = RegisterModal;
|
|
35321
|
+
exports.ɵg = UserSettingsValidatorService;
|
|
35322
|
+
exports.ɵh = LocalSettingsValidatorService;
|
|
35323
|
+
exports.ɵi = AppUpdateOfflineModeCard;
|
|
35324
|
+
exports.ɵj = UserEventNotificationList;
|
|
35325
|
+
exports.ɵk = JobProgressionList;
|
|
35326
|
+
exports.ɵl = DateTestPage;
|
|
35327
|
+
exports.ɵm = NumpadTestPage;
|
|
35328
|
+
exports.ɵn = MatBadgeIconTestPage;
|
|
35329
|
+
exports.ɵo = ToastTestingModule;
|
|
35330
|
+
exports.ɵp = ToastTestingPage;
|
|
35293
35331
|
|
|
35294
35332
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
35295
35333
|
|
|
35296
|
-
}));
|
|
35334
|
+
})));
|
|
35297
35335
|
//# sourceMappingURL=sumaris-net.ngx-components.umd.js.map
|