ontimize-web-ngx 15.0.4 → 15.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +3 -3
- package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +15 -13
- package/esm2020/lib/components/bar-menu/menu-nested/o-bar-menu-nested.component.mjs +3 -3
- package/esm2020/lib/components/bar-menu/o-bar-menu.component.mjs +10 -1
- package/esm2020/lib/components/button/o-button.component.mjs +27 -11
- package/esm2020/lib/components/form/index.mjs +2 -1
- package/esm2020/lib/components/form/o-form-tokens.mjs +3 -0
- package/esm2020/lib/components/form/o-form.component.mjs +42 -15
- package/esm2020/lib/components/grid/o-grid.component.mjs +7 -3
- package/esm2020/lib/components/input/combo/combo-search/o-combo-search.component.mjs +4 -1
- package/esm2020/lib/components/input/combo/o-combo.component.mjs +10 -3
- package/esm2020/lib/components/input/date-input/o-date-input.component.mjs +5 -1
- package/esm2020/lib/components/input/radio/o-radio.component.mjs +7 -5
- package/esm2020/lib/components/list/o-list.component.mjs +8 -4
- package/esm2020/lib/components/list/renderers/o-list-item-text-renderer.class.mjs +13 -4
- package/esm2020/lib/components/o-service-base-component.class.mjs +11 -5
- package/esm2020/lib/components/o-service-component.class.mjs +64 -1
- package/esm2020/lib/components/table/column/cell-editor/real/o-table-cell-editor-real.component.mjs +2 -2
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +2 -4
- package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +8 -7
- package/esm2020/lib/components/table/extensions/sort/o-mat-sort.mjs +2 -4
- package/esm2020/lib/components/table/o-table.component.mjs +30 -13
- package/esm2020/lib/components/tree/o-tree.component.mjs +7 -3
- package/esm2020/lib/interfaces/app-menu.interface.mjs +1 -1
- package/esm2020/lib/interfaces/service-data-component.interface.mjs +1 -1
- package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +1 -1
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +17 -1
- package/esm2020/lib/services/app-menu.service.mjs +36 -2
- package/esm2020/lib/services/o-auth.service.mjs +7 -1
- package/esm2020/lib/services/permissions/permissions.service.mjs +40 -6
- package/esm2020/lib/types/form/index.mjs +2 -0
- package/esm2020/lib/types/form/o-form-global-config.type.mjs +2 -0
- package/esm2020/lib/types/index.mjs +3 -1
- package/esm2020/lib/types/o-component-permissions-by-route.type.mjs +2 -0
- package/esm2020/lib/types/o-form-permissions.type.mjs +1 -1
- package/esm2020/lib/types/o-global-config.type.mjs +3 -0
- package/esm2020/lib/types/o-grid-permissions.type.mjs +2 -0
- package/esm2020/lib/types/o-list-permissions.type.mjs +2 -0
- package/esm2020/lib/types/o-service-base-permissions.type.mjs +2 -0
- package/esm2020/lib/types/o-tree-permissions.type.mjs +2 -0
- package/esm2020/lib/types/table/o-table-global-config.type.mjs +1 -1
- package/esm2020/lib/types/table/o-table-permissions.type.mjs +1 -1
- package/esm2020/lib/util/codes.mjs +9 -1
- package/esm2020/lib/util/util.mjs +16 -1
- package/fesm2015/ontimize-web-ngx.mjs +1297 -1018
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +1296 -1018
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +4 -4
- package/lib/components/bar-menu/o-bar-menu.component.d.ts +4 -0
- package/lib/components/button/o-button.component.d.ts +11 -2
- package/lib/components/form/index.d.ts +1 -0
- package/lib/components/form/o-form-tokens.d.ts +3 -0
- package/lib/components/form/o-form.component.d.ts +11 -4
- package/lib/components/grid/o-grid.component.d.ts +4 -0
- package/lib/components/input/combo/combo-search/o-combo-search.component.d.ts +1 -0
- package/lib/components/input/combo/o-combo.component.d.ts +2 -0
- package/lib/components/input/date-input/o-date-input.component.d.ts +1 -0
- package/lib/components/input/radio/o-radio.component.d.ts +2 -1
- package/lib/components/list/o-list.component.d.ts +4 -0
- package/lib/components/list/renderers/o-list-item-text-renderer.class.d.ts +4 -1
- package/lib/components/o-service-base-component.class.d.ts +2 -0
- package/lib/components/o-service-component.class.d.ts +11 -0
- package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -1
- package/lib/components/table/o-table.component.d.ts +3 -3
- package/lib/components/tree/o-tree.component.d.ts +4 -0
- package/lib/interfaces/app-menu.interface.d.ts +1 -0
- package/lib/interfaces/service-data-component.interface.d.ts +1 -0
- package/lib/layouts/form-layout/o-form-layout-manager.component.d.ts +1 -0
- package/lib/services/app-menu.service.d.ts +7 -1
- package/lib/services/o-auth.service.d.ts +1 -0
- package/lib/services/permissions/permissions.service.d.ts +14 -3
- package/lib/types/form/index.d.ts +1 -0
- package/lib/types/form/o-form-global-config.type.d.ts +3 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/types/o-component-permissions-by-route.type.d.ts +5 -0
- package/lib/types/o-form-permissions.type.d.ts +2 -7
- package/lib/types/o-global-config.type.d.ts +5 -0
- package/lib/types/o-grid-permissions.type.d.ts +2 -0
- package/lib/types/o-list-permissions.type.d.ts +2 -0
- package/lib/types/o-service-base-permissions.type.d.ts +7 -0
- package/lib/types/o-tree-permissions.type.d.ts +2 -0
- package/lib/types/table/o-table-global-config.type.d.ts +5 -0
- package/lib/types/table/o-table-permissions.type.d.ts +2 -4
- package/lib/util/codes.d.ts +8 -1
- package/lib/util/util.d.ts +2 -0
- package/package.json +1 -1
- package/theme.scss +72 -71
- package/theming/ontimize-style.scss +1 -30
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, EventEmitter, Directive, Host, Self, Optional, Input, HostListener, Output, Injectable, Injector, Component, forwardRef, ContentChildren, ChangeDetectorRef, Pipe, NgModule, ViewChild, ElementRef, ViewEncapsulation, ViewContainerRef, Inject, NgZone, HostBinding, ViewChildren, ChangeDetectionStrategy, CUSTOM_ELEMENTS_SCHEMA, TemplateRef, SkipSelf, isDevMode,
|
|
2
|
+
import { InjectionToken, EventEmitter, Directive, Host, Self, Optional, Input, HostListener, Output, Injectable, Injector, Component, forwardRef, ContentChildren, ChangeDetectorRef, Pipe, NgModule, ViewChild, ElementRef, ViewEncapsulation, ViewContainerRef, Inject, NgZone, HostBinding, ViewChildren, ChangeDetectionStrategy, inject, CUSTOM_ELEMENTS_SCHEMA, TemplateRef, SkipSelf, isDevMode, ContentChild, Renderer2, APP_INITIALIZER } from '@angular/core';
|
|
3
3
|
import moment from 'moment';
|
|
4
4
|
import { isObservable, from, of, Subscription, Subject, Observable, timer, combineLatest, BehaviorSubject, ReplaySubject, merge, fromEvent, map as map$1 } from 'rxjs';
|
|
5
5
|
export { Observable, Subject } from 'rxjs';
|
|
@@ -23,7 +23,7 @@ import { __decorate, __metadata } from 'tslib';
|
|
|
23
23
|
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
24
24
|
import * as i1$1 from '@angular/material/dialog';
|
|
25
25
|
import { MatDialog, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
26
|
-
import { map, share, filter, debounceTime, distinctUntilChanged, takeUntil, take
|
|
26
|
+
import { map, share, filter, catchError, debounceTime, distinctUntilChanged, takeUntil, take } from 'rxjs/operators';
|
|
27
27
|
import { MatSnackBar, MatSnackBarRef, MatSnackBarModule } from '@angular/material/snack-bar';
|
|
28
28
|
import * as i2 from '@angular/flex-layout/flex';
|
|
29
29
|
import * as i4 from '@angular/material/button';
|
|
@@ -91,6 +91,7 @@ import * as i6 from '@angular/material/tabs';
|
|
|
91
91
|
import { MatTabsModule, MatTabGroup, MatTab } from '@angular/material/tabs';
|
|
92
92
|
import { MatMomentDateModule, MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
93
93
|
import * as i4$2 from '@angular/flex-layout/extended';
|
|
94
|
+
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
94
95
|
import * as i7$2 from '@angular/cdk/drag-drop';
|
|
95
96
|
import { moveItemInArray, transferArrayItem, DragDropModule } from '@angular/cdk/drag-drop';
|
|
96
97
|
import * as i4$3 from 'angular-resizable-element';
|
|
@@ -108,7 +109,6 @@ import * as i5$4 from '@angular/cdk/table';
|
|
|
108
109
|
import { CdkTableModule } from '@angular/cdk/table';
|
|
109
110
|
import * as i3$5 from '@angular/cdk/a11y';
|
|
110
111
|
import { FlatTreeControl, CdkTreeModule } from '@angular/cdk/tree';
|
|
111
|
-
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
112
112
|
import * as i10$2 from '@angular/material/tree';
|
|
113
113
|
import { MatTreeModule } from '@angular/material/tree';
|
|
114
114
|
|
|
@@ -205,6 +205,12 @@ class Codes {
|
|
|
205
205
|
}
|
|
206
206
|
return !((e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105));
|
|
207
207
|
}
|
|
208
|
+
static isValidEditionMode(editionMode) {
|
|
209
|
+
return Codes.AVAILABLE_MODES.indexOf(editionMode) !== -1;
|
|
210
|
+
}
|
|
211
|
+
static isValidDetailMode(detailMode) {
|
|
212
|
+
return Codes.AVAILABLE_DETAIL_MODES.indexOf(detailMode) !== -1;
|
|
213
|
+
}
|
|
208
214
|
}
|
|
209
215
|
Codes.PAGINATED_QUERY_METHOD = 'advancedQuery';
|
|
210
216
|
Codes.DELETE_METHOD = 'delete';
|
|
@@ -220,9 +226,11 @@ Codes.AVAILABLE_ROW_HEIGHTS_VALUES = ['small', 'medium', 'large'];
|
|
|
220
226
|
Codes.DETAIL_MODE_NONE = 'none';
|
|
221
227
|
Codes.DETAIL_MODE_CLICK = 'click';
|
|
222
228
|
Codes.DETAIL_MODE_DBLCLICK_VALUES = ['dblclick', 'doubleclick'];
|
|
229
|
+
Codes.AVAILABLE_DETAIL_MODES = [Codes.DETAIL_MODE_NONE, Codes.DETAIL_MODE_CLICK, ...Codes.DETAIL_MODE_DBLCLICK_VALUES];
|
|
223
230
|
Codes.EDITION_MODE_NONE = 'none';
|
|
224
231
|
Codes.EDITION_MODE_CLICK = 'click';
|
|
225
232
|
Codes.EDITION_MODE_DBLCLICK_VALUES = ['dblclick', 'doubleclick'];
|
|
233
|
+
Codes.AVAILABLE_MODES = [Codes.EDITION_MODE_NONE, Codes.EDITION_MODE_CLICK, ...Codes.EDITION_MODE_DBLCLICK_VALUES];
|
|
226
234
|
Codes.SELECTION_MODE_NONE = 'none';
|
|
227
235
|
Codes.SELECTION_MODE_SINGLE = 'single';
|
|
228
236
|
Codes.SELECTION_MODE_MULTIPLE = 'multiple';
|
|
@@ -708,6 +716,21 @@ class Util {
|
|
|
708
716
|
cache = null;
|
|
709
717
|
return str;
|
|
710
718
|
}
|
|
719
|
+
static sortFunction(propertyA, propertyB, activeSortDirection) {
|
|
720
|
+
let valueA = '';
|
|
721
|
+
let valueB = '';
|
|
722
|
+
if (Util.isDefined(propertyA)) {
|
|
723
|
+
valueA = isNaN(+propertyA) ? propertyA.toString().trim().toLowerCase() : +propertyA;
|
|
724
|
+
}
|
|
725
|
+
if (Util.isDefined(propertyB)) {
|
|
726
|
+
valueB = isNaN(+propertyB) ? propertyB.toString().trim().toLowerCase() : +propertyB;
|
|
727
|
+
}
|
|
728
|
+
return (valueA <= valueB ? -1 : 1) * (activeSortDirection === 'asc' ? 1 : -1);
|
|
729
|
+
}
|
|
730
|
+
static cloneArray(arr) {
|
|
731
|
+
const clonedArray = arr.map((x) => Object.assign({}, x));
|
|
732
|
+
return clonedArray;
|
|
733
|
+
}
|
|
711
734
|
}
|
|
712
735
|
Util.columnAggregates = ['sum', 'count', 'avg', 'min', 'max'];
|
|
713
736
|
|
|
@@ -2639,6 +2662,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2639
2662
|
class PermissionsService {
|
|
2640
2663
|
constructor(injector) {
|
|
2641
2664
|
this.injector = injector;
|
|
2665
|
+
this.onChangePermissions = new Subject();
|
|
2642
2666
|
const appConfig = this.injector.get(AppConfig).getConfiguration();
|
|
2643
2667
|
if (Util.isDefined(appConfig.permissionsConfiguration)) {
|
|
2644
2668
|
this.ontimizePermissionsConfig = appConfig.permissionsConfiguration;
|
|
@@ -2663,6 +2687,7 @@ class PermissionsService {
|
|
|
2663
2687
|
}
|
|
2664
2688
|
restart() {
|
|
2665
2689
|
this.permissions = undefined;
|
|
2690
|
+
this.onChangePermissions.next(this.permissions);
|
|
2666
2691
|
}
|
|
2667
2692
|
hasPermissions() {
|
|
2668
2693
|
return this.permissions !== undefined;
|
|
@@ -2696,6 +2721,7 @@ class PermissionsService {
|
|
|
2696
2721
|
const dataObservable = new Observable(innerObserver => {
|
|
2697
2722
|
self.permissionsService.loadPermissions().subscribe((res) => {
|
|
2698
2723
|
self.permissions = res;
|
|
2724
|
+
self.onChangePermissions.next(self.permissions);
|
|
2699
2725
|
innerObserver.next(res);
|
|
2700
2726
|
}, (err) => {
|
|
2701
2727
|
console.error('[Permissions.queryPermissions]: error', err);
|
|
@@ -2707,6 +2733,9 @@ class PermissionsService {
|
|
|
2707
2733
|
return dataObservable.pipe(share());
|
|
2708
2734
|
}
|
|
2709
2735
|
getPermissionIdFromActRoute(actRoute) {
|
|
2736
|
+
if (!Util.isDefined(actRoute)) {
|
|
2737
|
+
return undefined;
|
|
2738
|
+
}
|
|
2710
2739
|
let result;
|
|
2711
2740
|
let snapshot = actRoute.snapshot;
|
|
2712
2741
|
result = ((snapshot.data || {})['oPermission'] || {})['permissionId'];
|
|
@@ -2741,10 +2770,11 @@ class PermissionsService {
|
|
|
2741
2770
|
if (attrPermissions && attrPermissions.selector === selector) {
|
|
2742
2771
|
compPermissions = attrPermissions;
|
|
2743
2772
|
}
|
|
2744
|
-
|
|
2773
|
+
const permissions = {
|
|
2745
2774
|
route: routePermissions,
|
|
2746
2775
|
component: compPermissions
|
|
2747
2776
|
};
|
|
2777
|
+
return permissions;
|
|
2748
2778
|
}
|
|
2749
2779
|
getTablePermissions(attr, actRoute) {
|
|
2750
2780
|
if (!Util.isDefined(this.permissions)) {
|
|
@@ -2766,24 +2796,36 @@ class PermissionsService {
|
|
|
2766
2796
|
};
|
|
2767
2797
|
return permissions;
|
|
2768
2798
|
}
|
|
2769
|
-
|
|
2799
|
+
getServiceBasePermissions(attr, actRoute, selector) {
|
|
2770
2800
|
if (!Util.isDefined(this.permissions)) {
|
|
2771
2801
|
return undefined;
|
|
2772
2802
|
}
|
|
2773
|
-
const perm = this.getOComponentPermissions(attr, actRoute,
|
|
2803
|
+
const perm = this.getOComponentPermissions(attr, actRoute, selector);
|
|
2774
2804
|
const routePerm = perm.route;
|
|
2775
2805
|
const compPerm = perm.component;
|
|
2776
2806
|
if (!Util.isDefined(routePerm) || !Util.isDefined(compPerm)) {
|
|
2777
2807
|
return compPerm || routePerm;
|
|
2778
2808
|
}
|
|
2779
2809
|
const permissions = {
|
|
2780
|
-
selector:
|
|
2810
|
+
selector: selector,
|
|
2781
2811
|
attr: routePerm.attr,
|
|
2782
2812
|
components: this.mergeOPermissionsArrays(compPerm.components, routePerm.components),
|
|
2783
2813
|
actions: this.mergeOPermissionsArrays(compPerm.actions, routePerm.actions)
|
|
2784
2814
|
};
|
|
2785
2815
|
return permissions;
|
|
2786
2816
|
}
|
|
2817
|
+
getFormPermissions(attr, actRoute) {
|
|
2818
|
+
return this.getServiceBasePermissions(attr, actRoute, 'o-form');
|
|
2819
|
+
}
|
|
2820
|
+
getListPermissions(attr, actRoute) {
|
|
2821
|
+
return this.getServiceBasePermissions(attr, actRoute, 'o-list');
|
|
2822
|
+
}
|
|
2823
|
+
getGridPermissions(attr, actRoute) {
|
|
2824
|
+
return this.getServiceBasePermissions(attr, actRoute, 'o-grid');
|
|
2825
|
+
}
|
|
2826
|
+
getTreePermissions(attr, actRoute) {
|
|
2827
|
+
return this.getServiceBasePermissions(attr, actRoute, 'o-tree');
|
|
2828
|
+
}
|
|
2787
2829
|
getMenuPermissions(attr) {
|
|
2788
2830
|
let permissions;
|
|
2789
2831
|
if (!Util.isDefined(this.permissions)) {
|
|
@@ -2793,6 +2835,21 @@ class PermissionsService {
|
|
|
2793
2835
|
permissions = allMenu.find(comp => comp.attr === attr);
|
|
2794
2836
|
return permissions;
|
|
2795
2837
|
}
|
|
2838
|
+
getAllMenuPermissions() {
|
|
2839
|
+
if (!Util.isDefined(this.permissions)) {
|
|
2840
|
+
return undefined;
|
|
2841
|
+
}
|
|
2842
|
+
const permissions = this.permissions.menu || [];
|
|
2843
|
+
return permissions;
|
|
2844
|
+
}
|
|
2845
|
+
getOButtonPermissions(attr, actRoute) {
|
|
2846
|
+
let permissions;
|
|
2847
|
+
if (!Util.isDefined(this.permissions)) {
|
|
2848
|
+
return undefined;
|
|
2849
|
+
}
|
|
2850
|
+
permissions = this.getOComponentPermissions(attr, actRoute, 'o-button');
|
|
2851
|
+
return permissions.component;
|
|
2852
|
+
}
|
|
2796
2853
|
mergeOPermissionsArrays(permissionsA, permissionsB) {
|
|
2797
2854
|
if (!Util.isDefined(permissionsA) || !Util.isDefined(permissionsB)) {
|
|
2798
2855
|
return permissionsA || permissionsB;
|
|
@@ -3265,12 +3322,14 @@ class OntimizeAuthService extends AuthService {
|
|
|
3265
3322
|
onLogoutSuccess(sessionId) {
|
|
3266
3323
|
if (sessionId === 0) {
|
|
3267
3324
|
this.clearSessionData();
|
|
3325
|
+
this.restartPermission();
|
|
3268
3326
|
this.redirectLogin(false);
|
|
3269
3327
|
}
|
|
3270
3328
|
}
|
|
3271
3329
|
onLogoutError(error) {
|
|
3272
3330
|
console.error('Error on logout');
|
|
3273
3331
|
this.clearSessionData();
|
|
3332
|
+
this.restartPermission();
|
|
3274
3333
|
this.redirectLogin(false);
|
|
3275
3334
|
}
|
|
3276
3335
|
clearSessionData() {
|
|
@@ -3292,6 +3351,10 @@ class OntimizeAuthService extends AuthService {
|
|
|
3292
3351
|
extras[Codes.QUERY_PARAMS] = arg;
|
|
3293
3352
|
this.router.navigate([Codes.LOGIN_ROUTE], extras);
|
|
3294
3353
|
}
|
|
3354
|
+
restartPermission() {
|
|
3355
|
+
const permissionsService = this.injector.get(PermissionsService);
|
|
3356
|
+
permissionsService.restart();
|
|
3357
|
+
}
|
|
3295
3358
|
}
|
|
3296
3359
|
OntimizeAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizeAuthService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3297
3360
|
OntimizeAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizeAuthService });
|
|
@@ -6476,12 +6539,6 @@ class OFormCacheClass {
|
|
|
6476
6539
|
}
|
|
6477
6540
|
}
|
|
6478
6541
|
|
|
6479
|
-
class OFormBase {
|
|
6480
|
-
constructor() {
|
|
6481
|
-
this._pKeysEquiv = {};
|
|
6482
|
-
}
|
|
6483
|
-
}
|
|
6484
|
-
|
|
6485
6542
|
class OFormConfirmExitService {
|
|
6486
6543
|
constructor(dialogService) {
|
|
6487
6544
|
this.dialogService = dialogService;
|
|
@@ -7097,6 +7154,14 @@ class OFormNavigationClass {
|
|
|
7097
7154
|
}
|
|
7098
7155
|
}
|
|
7099
7156
|
|
|
7157
|
+
class OFormBase {
|
|
7158
|
+
constructor() {
|
|
7159
|
+
this._pKeysEquiv = {};
|
|
7160
|
+
}
|
|
7161
|
+
}
|
|
7162
|
+
|
|
7163
|
+
const O_FORM_GLOBAL_CONFIG = new InjectionToken('o-form-config');
|
|
7164
|
+
|
|
7100
7165
|
class OFormMessageService {
|
|
7101
7166
|
getQueryErrorMessage() {
|
|
7102
7167
|
return 'MESSAGES.ERROR_QUERY';
|
|
@@ -7804,6 +7869,7 @@ const DEFAULT_INPUTS_O_FORM = [
|
|
|
7804
7869
|
'queryFallbackFunction: query-fallback-function',
|
|
7805
7870
|
'ignoreDefaultNavigation: ignore-default-navigation',
|
|
7806
7871
|
'messageServiceType : message-service-type',
|
|
7872
|
+
'setValueOrder: set-value-order'
|
|
7807
7873
|
];
|
|
7808
7874
|
const DEFAULT_OUTPUTS_O_FORM = [
|
|
7809
7875
|
'onDataLoaded',
|
|
@@ -7860,6 +7926,7 @@ class OFormComponent {
|
|
|
7860
7926
|
this.showHeaderActionsText = 'yes';
|
|
7861
7927
|
this.keys = '';
|
|
7862
7928
|
this.columns = '';
|
|
7929
|
+
this.setValueOrder = '';
|
|
7863
7930
|
this.stayInRecordAfterEdit = false;
|
|
7864
7931
|
this.afterInsertMode = 'close';
|
|
7865
7932
|
this.queryOnInit = true;
|
|
@@ -7937,6 +8004,18 @@ class OFormComponent {
|
|
|
7937
8004
|
}
|
|
7938
8005
|
catch (e) {
|
|
7939
8006
|
}
|
|
8007
|
+
this.getGlobalConfig();
|
|
8008
|
+
}
|
|
8009
|
+
getGlobalConfig() {
|
|
8010
|
+
try {
|
|
8011
|
+
const oFormGlobalConfig = this.injector.get(O_FORM_GLOBAL_CONFIG);
|
|
8012
|
+
if (Util.isDefined(oFormGlobalConfig.headerActions)) {
|
|
8013
|
+
this.headeractions = oFormGlobalConfig.headerActions;
|
|
8014
|
+
}
|
|
8015
|
+
;
|
|
8016
|
+
}
|
|
8017
|
+
catch (error) {
|
|
8018
|
+
}
|
|
7940
8019
|
}
|
|
7941
8020
|
registerFormComponent(comp) {
|
|
7942
8021
|
if (comp) {
|
|
@@ -8206,6 +8285,7 @@ class OFormComponent {
|
|
|
8206
8285
|
const pkArray = Util.parseArray(this.parentKeys);
|
|
8207
8286
|
this._pKeysEquiv = Util.parseParentKeysEquivalences(pkArray);
|
|
8208
8287
|
this.keysSqlTypesArray = Util.parseArray(this.keysSqlTypes);
|
|
8288
|
+
this.setValueOrderArray = Util.parseArray(this.setValueOrder);
|
|
8209
8289
|
this.configureService();
|
|
8210
8290
|
this.formNavigation.subscribeToQueryParams();
|
|
8211
8291
|
this.formNavigation.subscribeToUrlParams();
|
|
@@ -8929,24 +9009,35 @@ class OFormComponent {
|
|
|
8929
9009
|
this.zone.run(() => {
|
|
8930
9010
|
this.formData = newFormData;
|
|
8931
9011
|
const components = this.getComponents();
|
|
8932
|
-
|
|
8933
|
-
|
|
9012
|
+
const keyComponents = [...Object.keys(components)];
|
|
9013
|
+
if (!Util.isArrayEmpty(this.setValueOrderArray)) {
|
|
9014
|
+
keyComponents.sort((a, b) => {
|
|
9015
|
+
const indexA = this.setValueOrderArray.indexOf(a) === -1 ? 1 : 0;
|
|
9016
|
+
const indexB = this.setValueOrderArray.indexOf(b) === -1 ? 1 : 0;
|
|
9017
|
+
return indexA - indexB;
|
|
9018
|
+
});
|
|
9019
|
+
}
|
|
9020
|
+
if (!Util.isArrayEmpty(keyComponents)) {
|
|
9021
|
+
keyComponents.forEach(key => {
|
|
8934
9022
|
const comp = components[key];
|
|
8935
|
-
|
|
8936
|
-
try {
|
|
8937
|
-
if (comp.isAutomaticBinding()) {
|
|
8938
|
-
comp.data = self.getDataValue(key);
|
|
8939
|
-
}
|
|
8940
|
-
}
|
|
8941
|
-
catch (error) {
|
|
8942
|
-
console.error(error);
|
|
8943
|
-
}
|
|
8944
|
-
}
|
|
9023
|
+
this.setDataInFormDataComponent(comp, key);
|
|
8945
9024
|
});
|
|
8946
9025
|
self.initializeFields();
|
|
8947
9026
|
}
|
|
8948
9027
|
});
|
|
8949
9028
|
}
|
|
9029
|
+
setDataInFormDataComponent(comp, attr) {
|
|
9030
|
+
if (Util.isFormDataComponent(comp)) {
|
|
9031
|
+
try {
|
|
9032
|
+
if (comp.isAutomaticBinding()) {
|
|
9033
|
+
comp.data = this.getDataValue(attr);
|
|
9034
|
+
}
|
|
9035
|
+
}
|
|
9036
|
+
catch (error) {
|
|
9037
|
+
console.error(error);
|
|
9038
|
+
}
|
|
9039
|
+
}
|
|
9040
|
+
}
|
|
8950
9041
|
initializeFields() {
|
|
8951
9042
|
Object.keys(this.formGroup.controls).forEach(control => {
|
|
8952
9043
|
this.formGroup.controls[control].markAsPristine();
|
|
@@ -9046,7 +9137,7 @@ class OFormComponent {
|
|
|
9046
9137
|
OFormComponent.DEFAULT_LAYOUT_DIRECTION = 'column';
|
|
9047
9138
|
OFormComponent.guardClassName = 'CanDeactivateFormGuard';
|
|
9048
9139
|
OFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
9049
|
-
OFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OFormComponent, selector: "o-form", inputs: { showHeader: ["show-header", "showHeader"], headerMode: ["header-mode", "headerMode"], headerPosition: ["header-position", "headerPosition"], labelheader: ["label-header", "labelheader"], labelHeaderAlign: ["label-header-align", "labelHeaderAlign"], headeractions: ["header-actions", "headeractions"], showHeaderActionsText: ["show-header-actions-text", "showHeaderActionsText"], entity: "entity", keys: "keys", columns: "columns", service: "service", stayInRecordAfterEdit: ["stay-in-record-after-edit", "stayInRecordAfterEdit"], afterInsertMode: ["after-insert-mode", "afterInsertMode"], serviceType: ["service-type", "serviceType"], queryOnInit: ["query-on-init", "queryOnInit"], parentKeys: ["parent-keys", "parentKeys"], queryMethod: ["query-method", "queryMethod"], insertMethod: ["insert-method", "insertMethod"], updateMethod: ["update-method", "updateMethod"], deleteMethod: ["delete-method", "deleteMethod"], layoutDirection: ["layout-direction", "layoutDirection"], layoutAlign: ["layout-align", "layoutAlign"], editableDetail: ["editable-detail", "editableDetail"], keysSqlTypes: ["keys-sql-types", "keysSqlTypes"], undoButton: ["undo-button", "undoButton"], showHeaderNavigation: ["show-header-navigation", "showHeaderNavigation"], oattr: ["attr", "oattr"], includeBreadcrumb: ["include-breadcrumb", "includeBreadcrumb"], detectChangesOnBlur: ["detect-changes-on-blur", "detectChangesOnBlur"], confirmExit: ["confirm-exit", "confirmExit"], ignoreOnExit: ["ignore-on-exit", "ignoreOnExit"], queryFallbackFunction: ["query-fallback-function", "queryFallbackFunction"], ignoreDefaultNavigation: ["ignore-default-navigation", "ignoreDefaultNavigation"], messageServiceType: ["message-service-type", "messageServiceType"] }, outputs: { onDataLoaded: "onDataLoaded", beforeCloseDetail: "beforeCloseDetail", beforeGoEditMode: "beforeGoEditMode", onFormModeChange: "onFormModeChange", onBeforeInsert: "onBeforeInsert", onBeforeUpdate: "onBeforeUpdate", onBeforeDelete: "onBeforeDelete", onInsert: "onInsert", onUpdate: "onUpdate", onDelete: "onDelete", beforeInsertMode: "beforeInsertMode", beforeUpdateMode: "beforeUpdateMode", beforeInitialMode: "beforeInitialMode", onInsertMode: "onInsertMode", onUpdateMode: "onUpdateMode", onInitialMode: "onInitialMode", onCancel: "onCancel" }, host: { properties: { "class.o-form": "true" } }, providers: [
|
|
9140
|
+
OFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OFormComponent, selector: "o-form", inputs: { showHeader: ["show-header", "showHeader"], headerMode: ["header-mode", "headerMode"], headerPosition: ["header-position", "headerPosition"], labelheader: ["label-header", "labelheader"], labelHeaderAlign: ["label-header-align", "labelHeaderAlign"], headeractions: ["header-actions", "headeractions"], showHeaderActionsText: ["show-header-actions-text", "showHeaderActionsText"], entity: "entity", keys: "keys", columns: "columns", service: "service", stayInRecordAfterEdit: ["stay-in-record-after-edit", "stayInRecordAfterEdit"], afterInsertMode: ["after-insert-mode", "afterInsertMode"], serviceType: ["service-type", "serviceType"], queryOnInit: ["query-on-init", "queryOnInit"], parentKeys: ["parent-keys", "parentKeys"], queryMethod: ["query-method", "queryMethod"], insertMethod: ["insert-method", "insertMethod"], updateMethod: ["update-method", "updateMethod"], deleteMethod: ["delete-method", "deleteMethod"], layoutDirection: ["layout-direction", "layoutDirection"], layoutAlign: ["layout-align", "layoutAlign"], editableDetail: ["editable-detail", "editableDetail"], keysSqlTypes: ["keys-sql-types", "keysSqlTypes"], undoButton: ["undo-button", "undoButton"], showHeaderNavigation: ["show-header-navigation", "showHeaderNavigation"], oattr: ["attr", "oattr"], includeBreadcrumb: ["include-breadcrumb", "includeBreadcrumb"], detectChangesOnBlur: ["detect-changes-on-blur", "detectChangesOnBlur"], confirmExit: ["confirm-exit", "confirmExit"], ignoreOnExit: ["ignore-on-exit", "ignoreOnExit"], queryFallbackFunction: ["query-fallback-function", "queryFallbackFunction"], ignoreDefaultNavigation: ["ignore-default-navigation", "ignoreDefaultNavigation"], messageServiceType: ["message-service-type", "messageServiceType"], setValueOrder: ["set-value-order", "setValueOrder"] }, outputs: { onDataLoaded: "onDataLoaded", beforeCloseDetail: "beforeCloseDetail", beforeGoEditMode: "beforeGoEditMode", onFormModeChange: "onFormModeChange", onBeforeInsert: "onBeforeInsert", onBeforeUpdate: "onBeforeUpdate", onBeforeDelete: "onBeforeDelete", onInsert: "onInsert", onUpdate: "onUpdate", onDelete: "onDelete", beforeInsertMode: "beforeInsertMode", beforeUpdateMode: "beforeUpdateMode", beforeInitialMode: "beforeInitialMode", onInsertMode: "onInsertMode", onUpdateMode: "onUpdateMode", onInitialMode: "onInitialMode", onCancel: "onCancel" }, host: { properties: { "class.o-form": "true" } }, providers: [
|
|
9050
9141
|
{ provide: OFormBase, useExisting: forwardRef(() => OFormComponent) },
|
|
9051
9142
|
OntimizeServiceProvider,
|
|
9052
9143
|
OFormMessageService
|
|
@@ -11680,20 +11771,50 @@ class AppMenuService {
|
|
|
11680
11771
|
constructor(injector) {
|
|
11681
11772
|
this.injector = injector;
|
|
11682
11773
|
this.onClick = new Subject;
|
|
11774
|
+
this.onPermissionMenuChanged = new Subject();
|
|
11683
11775
|
this._config = this.injector.get(AppConfig);
|
|
11684
|
-
this.MENU_ROOTS = this._config.getMenuConfiguration();
|
|
11685
11776
|
this.router = this.injector.get(Router);
|
|
11686
11777
|
this.router.events.subscribe((event) => {
|
|
11687
11778
|
if (event instanceof NavigationEnd) {
|
|
11688
11779
|
this.setActiveItem();
|
|
11689
11780
|
}
|
|
11690
11781
|
});
|
|
11782
|
+
this.setMenuItemsByMenuConfiguration();
|
|
11783
|
+
this.permissionsService = this.injector.get(PermissionsService);
|
|
11784
|
+
this.permissionsService.onChangePermissions.subscribe(x => {
|
|
11785
|
+
this.mergeMenuItemsWithPermissions();
|
|
11786
|
+
this.onPermissionMenuChanged.next();
|
|
11787
|
+
});
|
|
11788
|
+
}
|
|
11789
|
+
setMenuItemsByMenuConfiguration() {
|
|
11790
|
+
const defaultMenuConfiguration = Util.cloneArray(this._config.getMenuConfiguration());
|
|
11791
|
+
this.MENU_ROOTS = defaultMenuConfiguration;
|
|
11691
11792
|
this.ALL_MENU_ITEMS = [];
|
|
11692
11793
|
for (let i = 0, len = this.MENU_ROOTS.length; i < len; i++) {
|
|
11693
11794
|
const item = this.MENU_ROOTS[i];
|
|
11694
11795
|
this.ALL_MENU_ITEMS = this.ALL_MENU_ITEMS.concat(this.getMenuItems(item));
|
|
11695
11796
|
}
|
|
11696
11797
|
}
|
|
11798
|
+
mergeMenuItemsWithPermissions() {
|
|
11799
|
+
this.setMenuItemsByMenuConfiguration();
|
|
11800
|
+
const permissionsMenu = this.permissionsService.getAllMenuPermissions();
|
|
11801
|
+
if (Util.isDefined(permissionsMenu)) {
|
|
11802
|
+
this.MENU_ROOTS = [...this.MENU_ROOTS.map(menu => {
|
|
11803
|
+
const indexPermission = permissionsMenu.findIndex(permission => permission.attr === menu.id);
|
|
11804
|
+
if (indexPermission > -1) {
|
|
11805
|
+
menu.visible = permissionsMenu[indexPermission].visible;
|
|
11806
|
+
}
|
|
11807
|
+
return menu;
|
|
11808
|
+
})];
|
|
11809
|
+
this.ALL_MENU_ITEMS = [...this.ALL_MENU_ITEMS.map(menu => {
|
|
11810
|
+
const indexPermission = permissionsMenu.findIndex(permission => permission.attr === menu.id);
|
|
11811
|
+
if (indexPermission > -1) {
|
|
11812
|
+
menu.visible = permissionsMenu[indexPermission].visible;
|
|
11813
|
+
}
|
|
11814
|
+
return menu;
|
|
11815
|
+
})];
|
|
11816
|
+
}
|
|
11817
|
+
}
|
|
11697
11818
|
getMenuRoots() {
|
|
11698
11819
|
return this.MENU_ROOTS;
|
|
11699
11820
|
}
|
|
@@ -11742,6 +11863,9 @@ class AppMenuService {
|
|
|
11742
11863
|
isRouteItem(item) {
|
|
11743
11864
|
return Util.isDefined(item.route);
|
|
11744
11865
|
}
|
|
11866
|
+
isVisible(item) {
|
|
11867
|
+
return !Util.isDefined(item.visible) || (Util.isDefined(item.visible) && item.visible);
|
|
11868
|
+
}
|
|
11745
11869
|
getMenuItems(item) {
|
|
11746
11870
|
const menuGroup = item;
|
|
11747
11871
|
const items = menuGroup.items;
|
|
@@ -11785,10 +11909,10 @@ class OBarMenuNestedComponent {
|
|
|
11785
11909
|
}
|
|
11786
11910
|
}
|
|
11787
11911
|
OBarMenuNestedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OBarMenuNestedComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
11788
|
-
OBarMenuNestedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OBarMenuNestedComponent, selector: "o-bar-menu-nested", inputs: { items: "items" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of items\">\n <ng-container [ngSwitch]=\"appMenuService.getMenuItemType(item)\">\n\n <o-bar-menu-group *ngSwitchCase=\"'group'\" [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [ngClass]=\"item.class\">\n <o-bar-menu-nested [items]=\"item.items\"> </o-bar-menu-nested>\n </o-bar-menu-group>\n\n <o-locale-bar-menu-item *ngSwitchCase=\"'locale'\" [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\"\n [locale]=\"item.locale\" [ngClass]=\"item.class\">\n </o-locale-bar-menu-item>\n\n <o-bar-menu-item *ngSwitchDefault [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [route]=\"item.route\"\n [ngClass]=\"item.class\"></o-bar-menu-item>\n\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: OBarMenuItemComponent, selector: "o-bar-menu-item", inputs: ["route", "action"] }, { kind: "component", type: OBarMenuGroupComponent, selector: "o-bar-menu-group" }, { kind: "component", type: OLocaleBarMenuItemComponent, selector: "o-locale-bar-menu-item", inputs: ["locale"] }, { kind: "component", type: OBarMenuNestedComponent, selector: "o-bar-menu-nested", inputs: ["items"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11912
|
+
OBarMenuNestedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OBarMenuNestedComponent, selector: "o-bar-menu-nested", inputs: { items: "items" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of items\">\n <ng-container [ngSwitch]=\"appMenuService.getMenuItemType(item)\" *ngIf=\"appMenuService.isVisible(item)\">\n\n <o-bar-menu-group *ngSwitchCase=\"'group'\" [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [ngClass]=\"item.class\">\n <o-bar-menu-nested [items]=\"item.items\"> </o-bar-menu-nested>\n </o-bar-menu-group>\n\n <o-locale-bar-menu-item *ngSwitchCase=\"'locale'\" [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\"\n [locale]=\"item.locale\" [ngClass]=\"item.class\">\n </o-locale-bar-menu-item>\n\n <o-bar-menu-item *ngSwitchDefault [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [route]=\"item.route\"\n [ngClass]=\"item.class\"></o-bar-menu-item>\n\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: OBarMenuItemComponent, selector: "o-bar-menu-item", inputs: ["route", "action"] }, { kind: "component", type: OBarMenuGroupComponent, selector: "o-bar-menu-group" }, { kind: "component", type: OLocaleBarMenuItemComponent, selector: "o-locale-bar-menu-item", inputs: ["locale"] }, { kind: "component", type: OBarMenuNestedComponent, selector: "o-bar-menu-nested", inputs: ["items"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11789
11913
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OBarMenuNestedComponent, decorators: [{
|
|
11790
11914
|
type: Component,
|
|
11791
|
-
args: [{ selector: 'o-bar-menu-nested', inputs: DEFAULT_INPUTS_O_BAR_MENU_NESTED, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let item of items\">\n <ng-container [ngSwitch]=\"appMenuService.getMenuItemType(item)\">\n\n <o-bar-menu-group *ngSwitchCase=\"'group'\" [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [ngClass]=\"item.class\">\n <o-bar-menu-nested [items]=\"item.items\"> </o-bar-menu-nested>\n </o-bar-menu-group>\n\n <o-locale-bar-menu-item *ngSwitchCase=\"'locale'\" [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\"\n [locale]=\"item.locale\" [ngClass]=\"item.class\">\n </o-locale-bar-menu-item>\n\n <o-bar-menu-item *ngSwitchDefault [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [route]=\"item.route\"\n [ngClass]=\"item.class\"></o-bar-menu-item>\n\n </ng-container>\n</ng-container>\n" }]
|
|
11915
|
+
args: [{ selector: 'o-bar-menu-nested', inputs: DEFAULT_INPUTS_O_BAR_MENU_NESTED, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let item of items\">\n <ng-container [ngSwitch]=\"appMenuService.getMenuItemType(item)\" *ngIf=\"appMenuService.isVisible(item)\">\n\n <o-bar-menu-group *ngSwitchCase=\"'group'\" [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [ngClass]=\"item.class\">\n <o-bar-menu-nested [items]=\"item.items\"> </o-bar-menu-nested>\n </o-bar-menu-group>\n\n <o-locale-bar-menu-item *ngSwitchCase=\"'locale'\" [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\"\n [locale]=\"item.locale\" [ngClass]=\"item.class\">\n </o-locale-bar-menu-item>\n\n <o-bar-menu-item *ngSwitchDefault [title]=\"item.name\" [attr]=\"item.id\" [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [route]=\"item.route\"\n [ngClass]=\"item.class\"></o-bar-menu-item>\n\n </ng-container>\n</ng-container>\n" }]
|
|
11792
11916
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
11793
11917
|
|
|
11794
11918
|
class OBarMenuSeparatorComponent {
|
|
@@ -11810,10 +11934,12 @@ class OBarMenuComponent {
|
|
|
11810
11934
|
constructor(elRef, injector) {
|
|
11811
11935
|
this.elRef = elRef;
|
|
11812
11936
|
this.injector = injector;
|
|
11937
|
+
this.subscription = new Subscription();
|
|
11813
11938
|
this.id = 'm_' + String((new Date()).getTime() + Util.randomNumber().toString());
|
|
11814
11939
|
this.permissionsService = this.injector.get(PermissionsService);
|
|
11815
11940
|
this.translateService = this.injector.get(OTranslateService);
|
|
11816
11941
|
this.appMenuService = this.injector.get(AppMenuService);
|
|
11942
|
+
this.subscription.add(this.appMenuService.onPermissionMenuChanged.subscribe(() => this.refreshMenuRoots()));
|
|
11817
11943
|
this.menuRoots = this.appMenuService.getMenuRoots();
|
|
11818
11944
|
}
|
|
11819
11945
|
ngOnInit() {
|
|
@@ -11869,6 +11995,12 @@ class OBarMenuComponent {
|
|
|
11869
11995
|
get menuItems() {
|
|
11870
11996
|
return this.menuRoots;
|
|
11871
11997
|
}
|
|
11998
|
+
refreshMenuRoots() {
|
|
11999
|
+
this.menuRoots = [...this.appMenuService.getMenuRoots()];
|
|
12000
|
+
}
|
|
12001
|
+
ngOnDestroy() {
|
|
12002
|
+
this.subscription.unsubscribe();
|
|
12003
|
+
}
|
|
11872
12004
|
}
|
|
11873
12005
|
OBarMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OBarMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
11874
12006
|
OBarMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OBarMenuComponent, selector: "o-bar-menu", inputs: { menuTitle: ["title", "menuTitle"], tooltip: "tooltip" }, host: { properties: { "class.o-bar-menu": "true" } }, providers: [{ provide: OBarMenuBase, useExisting: forwardRef(() => OBarMenuComponent) }], ngImport: i0, template: "<mat-toolbar color=\"primary\">\n <nav>\n <mat-icon class=\"mat-24 menu-icon toggle\" (click)=\"input.checked = !input.checked\" svgIcon=\"ontimize:menu\"></mat-icon>\n <label [attr.for]=\"id\" class=\"toggle title-label\">{{ menuTitle | oTranslate }}</label>\n <input #input [attr.id]=\"id\" type=\"checkbox\" />\n <div class=\"fake-ul mat-primary menu\">\n <ng-container>\n <o-bar-menu-nested [items]=\"menuItems\"></o-bar-menu-nested>\n </ng-container>\n <ng-content></ng-content>\n </div>\n </nav>\n</mat-toolbar>", styles: [".o-bar-menu .toggle,.o-bar-menu input{display:none}.o-bar-menu nav{margin:0;padding:0}.o-bar-menu nav:after{content:\"\";display:table;clear:both}.o-bar-menu nav .fake-li a{cursor:pointer}.o-bar-menu nav .fake-ul{float:right;padding:0;margin:0;list-style:none;position:relative}.o-bar-menu nav .fake-ul.menu>.o-bar-menu-item .o-bar-menu-item-title{top:0;padding-left:0}.o-bar-menu nav .fake-ul .fake-li{margin:0;display:inline-block}.o-bar-menu nav .fake-ul .fake-ul{display:none;position:absolute;top:60px}.o-bar-menu nav .fake-ul .fake-ul .fake-li{min-width:250px;width:250px;float:none;display:list-item;position:relative;white-space:nowrap}.o-bar-menu nav .fake-ul .fake-ul .fake-ul{top:0}.o-bar-menu nav .fake-ul .fake-ul .fake-ul .fake-li{position:relative;top:0;left:0}.o-bar-menu nav a{display:flex;align-items:center;padding:0 20px;font-size:20px;line-height:60px;text-decoration:none}.o-bar-menu .fake-li>a:only-child:after{content:\"\"}@media all and (min-width: 768px){.o-bar-menu nav .fake-ul .fake-li-hover>.fake-ul{display:inline-block;z-index:1000}.o-bar-menu nav .fake-ul .fake-ul .fake-li-hover>.fake-ul{display:inline-block;z-index:1000;left:250px}}@media all and (max-width: 767px){.o-bar-menu .mat-toolbar{height:auto!important}.o-bar-menu nav{margin:10px 0;width:100%}.o-bar-menu nav .o-bar-menu-group,.o-bar-menu nav .o-bar-menu-item,.o-bar-menu nav .o-bar-menu-separator,.o-bar-menu nav .o-locale-bar-menu-item{display:flex}.o-bar-menu nav .o-bar-menu-group .mat-mdc-list-item,.o-bar-menu nav .o-bar-menu-item .mat-mdc-list-item,.o-bar-menu nav .o-bar-menu-separator .mat-mdc-list-item,.o-bar-menu nav .o-locale-bar-menu-item .mat-mdc-list-item{display:flex;justify-content:flex-start;align-items:center}.o-bar-menu nav .fake-ul{width:100%}.o-bar-menu nav .fake-ul .fake-li{width:100%}.o-bar-menu nav .fake-ul .fake-ul{float:none;position:static;width:100%}.o-bar-menu nav .fake-ul .fake-ul .fake-li{padding-left:20px;width:100%}.o-bar-menu nav .fake-ul .fake-ul .mat-elevation-z4{box-shadow:none}.o-bar-menu .toggle{display:inline-block;padding:0 20px;font-size:20px;line-height:60px;text-decoration:none;border:none;cursor:pointer}.o-bar-menu .toggle+a{display:none!important}.o-bar-menu .menu{display:none;float:left!important}.o-bar-menu label.title-label{display:inline-block}.o-bar-menu .mat-icon.menu-icon{vertical-align:middle;display:inline-block;line-height:1;padding:0 4px}.o-bar-menu input:checked+.fake-ul{display:block}}@media all and (max-width: 330px){.o-bar-menu nav .fake-ul .fake-li{width:94%}}\n"], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: OBarMenuNestedComponent, selector: "o-bar-menu-nested", inputs: ["items"] }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
@@ -12109,6 +12241,936 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
12109
12241
|
}]
|
|
12110
12242
|
}] });
|
|
12111
12243
|
|
|
12244
|
+
class AppConfigFactory {
|
|
12245
|
+
constructor(injector) {
|
|
12246
|
+
this.injector = injector;
|
|
12247
|
+
this.config = this.injector.get(APP_CONFIG);
|
|
12248
|
+
}
|
|
12249
|
+
factory() {
|
|
12250
|
+
return new AppConfig(this.config);
|
|
12251
|
+
}
|
|
12252
|
+
}
|
|
12253
|
+
function appConfigFactory(injector) {
|
|
12254
|
+
return new AppConfigFactory(injector).factory();
|
|
12255
|
+
}
|
|
12256
|
+
|
|
12257
|
+
class OUserInfoService {
|
|
12258
|
+
constructor(injector) {
|
|
12259
|
+
this.injector = injector;
|
|
12260
|
+
this.subject = new Subject();
|
|
12261
|
+
}
|
|
12262
|
+
setUserInfo(info) {
|
|
12263
|
+
this.storedInfo = info;
|
|
12264
|
+
this.subject.next(info);
|
|
12265
|
+
}
|
|
12266
|
+
getUserInfo() {
|
|
12267
|
+
return this.storedInfo;
|
|
12268
|
+
}
|
|
12269
|
+
getUserInfoObservable() {
|
|
12270
|
+
return this.subject.asObservable();
|
|
12271
|
+
}
|
|
12272
|
+
}
|
|
12273
|
+
OUserInfoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OUserInfoService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12274
|
+
OUserInfoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OUserInfoService, providedIn: 'root' });
|
|
12275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OUserInfoService, decorators: [{
|
|
12276
|
+
type: Injectable,
|
|
12277
|
+
args: [{
|
|
12278
|
+
providedIn: 'root'
|
|
12279
|
+
}]
|
|
12280
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
12281
|
+
|
|
12282
|
+
class AuthGuardService {
|
|
12283
|
+
constructor(injector) {
|
|
12284
|
+
this.injector = injector;
|
|
12285
|
+
this.router = this.injector.get(Router);
|
|
12286
|
+
this.authService = this.injector.get(AuthService);
|
|
12287
|
+
this.oUserInfoService = this.injector.get(OUserInfoService);
|
|
12288
|
+
this.permissionsService = this.injector.get(PermissionsService);
|
|
12289
|
+
}
|
|
12290
|
+
canActivate(next, state) {
|
|
12291
|
+
const isLoggedIn = this.authService.isLoggedIn();
|
|
12292
|
+
let result = isLoggedIn;
|
|
12293
|
+
if (!isLoggedIn) {
|
|
12294
|
+
this.permissionsService.restart();
|
|
12295
|
+
this.router.navigate([Codes.LOGIN_ROUTE]);
|
|
12296
|
+
}
|
|
12297
|
+
if (isLoggedIn) {
|
|
12298
|
+
this.setUserInformation();
|
|
12299
|
+
if (!this.permissionsService.hasPermissions()) {
|
|
12300
|
+
result = this.permissionsService.getUserPermissionsAsPromise();
|
|
12301
|
+
}
|
|
12302
|
+
}
|
|
12303
|
+
return result;
|
|
12304
|
+
}
|
|
12305
|
+
setUserInformation() {
|
|
12306
|
+
const sessionInfo = this.authService.getSessionInfo();
|
|
12307
|
+
this.oUserInfoService.setUserInfo({
|
|
12308
|
+
username: sessionInfo.user,
|
|
12309
|
+
avatar: './assets/images/user_profile.png'
|
|
12310
|
+
});
|
|
12311
|
+
}
|
|
12312
|
+
}
|
|
12313
|
+
AuthGuardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthGuardService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12314
|
+
AuthGuardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthGuardService, providedIn: 'root' });
|
|
12315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthGuardService, decorators: [{
|
|
12316
|
+
type: Injectable,
|
|
12317
|
+
args: [{
|
|
12318
|
+
providedIn: 'root'
|
|
12319
|
+
}]
|
|
12320
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
12321
|
+
|
|
12322
|
+
class OFormLayoutManagerService {
|
|
12323
|
+
constructor(injector) {
|
|
12324
|
+
this.injector = injector;
|
|
12325
|
+
this.registeredFormLayoutManagers = {};
|
|
12326
|
+
}
|
|
12327
|
+
registerFormLayoutManager(comp) {
|
|
12328
|
+
this.registeredFormLayoutManagers[comp.getAttribute()] = comp;
|
|
12329
|
+
}
|
|
12330
|
+
removeFormLayoutManager(comp) {
|
|
12331
|
+
delete this.registeredFormLayoutManagers[comp.getAttribute()];
|
|
12332
|
+
}
|
|
12333
|
+
get activeFormLayoutManager() {
|
|
12334
|
+
return this._activeFormLayoutManager;
|
|
12335
|
+
}
|
|
12336
|
+
set activeFormLayoutManager(arg) {
|
|
12337
|
+
this._activeFormLayoutManager = arg;
|
|
12338
|
+
}
|
|
12339
|
+
}
|
|
12340
|
+
OFormLayoutManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12341
|
+
OFormLayoutManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerService, providedIn: 'root' });
|
|
12342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerService, decorators: [{
|
|
12343
|
+
type: Injectable,
|
|
12344
|
+
args: [{
|
|
12345
|
+
providedIn: 'root'
|
|
12346
|
+
}]
|
|
12347
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
12348
|
+
|
|
12349
|
+
class OModulesInfoService {
|
|
12350
|
+
constructor(injector, router) {
|
|
12351
|
+
this.injector = injector;
|
|
12352
|
+
this.router = router;
|
|
12353
|
+
this.subject = new ReplaySubject();
|
|
12354
|
+
this.router = this.injector.get(Router);
|
|
12355
|
+
}
|
|
12356
|
+
getModuleChangeObservable() {
|
|
12357
|
+
this.router.events
|
|
12358
|
+
.pipe(filter(e => e instanceof NavigationEnd), map(() => {
|
|
12359
|
+
let route = this.router.routerState.root;
|
|
12360
|
+
let routeTitle = '';
|
|
12361
|
+
while (route.firstChild) {
|
|
12362
|
+
route = route.firstChild;
|
|
12363
|
+
}
|
|
12364
|
+
if (route.snapshot.data['oAppHeaderTitle']) {
|
|
12365
|
+
routeTitle = route.snapshot.data['oAppHeaderTitle'];
|
|
12366
|
+
}
|
|
12367
|
+
return routeTitle;
|
|
12368
|
+
}))
|
|
12369
|
+
.subscribe((title) => {
|
|
12370
|
+
if (title) {
|
|
12371
|
+
this.subject.next(title);
|
|
12372
|
+
}
|
|
12373
|
+
else {
|
|
12374
|
+
this.subject.next("");
|
|
12375
|
+
}
|
|
12376
|
+
});
|
|
12377
|
+
return this.subject.asObservable();
|
|
12378
|
+
}
|
|
12379
|
+
}
|
|
12380
|
+
OModulesInfoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OModulesInfoService, deps: [{ token: i0.Injector }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12381
|
+
OModulesInfoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OModulesInfoService, providedIn: 'root' });
|
|
12382
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OModulesInfoService, decorators: [{
|
|
12383
|
+
type: Injectable,
|
|
12384
|
+
args: [{
|
|
12385
|
+
providedIn: 'root'
|
|
12386
|
+
}]
|
|
12387
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }]; } });
|
|
12388
|
+
|
|
12389
|
+
class ShareCanActivateChildService {
|
|
12390
|
+
constructor(injector) {
|
|
12391
|
+
this.injector = injector;
|
|
12392
|
+
this.router = this.injector.get(Router);
|
|
12393
|
+
this.permissionsService = this.injector.get(PermissionsService);
|
|
12394
|
+
}
|
|
12395
|
+
setPermissionsGuard(guard) {
|
|
12396
|
+
this.permissionsGuard = guard;
|
|
12397
|
+
}
|
|
12398
|
+
canActivateChildUsingPermissions(childRoute, state) {
|
|
12399
|
+
if (this.permissionsGuard) {
|
|
12400
|
+
return this.permissionsGuard.canActivateChild(childRoute, state);
|
|
12401
|
+
}
|
|
12402
|
+
return true;
|
|
12403
|
+
}
|
|
12404
|
+
}
|
|
12405
|
+
ShareCanActivateChildService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareCanActivateChildService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12406
|
+
ShareCanActivateChildService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareCanActivateChildService, providedIn: 'root' });
|
|
12407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareCanActivateChildService, decorators: [{
|
|
12408
|
+
type: Injectable,
|
|
12409
|
+
args: [{
|
|
12410
|
+
providedIn: 'root'
|
|
12411
|
+
}]
|
|
12412
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
12413
|
+
|
|
12414
|
+
class PermissionsGuardService {
|
|
12415
|
+
constructor(injector) {
|
|
12416
|
+
this.injector = injector;
|
|
12417
|
+
this.router = this.injector.get(Router);
|
|
12418
|
+
this.permissionsService = this.injector.get(PermissionsService);
|
|
12419
|
+
this.snackBarService = this.injector.get(SnackBarService);
|
|
12420
|
+
this.shareCanActivateChildService = this.injector.get(ShareCanActivateChildService);
|
|
12421
|
+
this.shareCanActivateChildService.setPermissionsGuard(this);
|
|
12422
|
+
}
|
|
12423
|
+
canActivateChild(childRoute, state) {
|
|
12424
|
+
let restricted = false;
|
|
12425
|
+
const oPermission = childRoute.data ? childRoute.data['oPermission'] : undefined;
|
|
12426
|
+
const permissionId = (oPermission || {})['permissionId'];
|
|
12427
|
+
if (Util.isDefined(permissionId)) {
|
|
12428
|
+
restricted = this.permissionsService.isPermissionIdRouteRestricted(permissionId);
|
|
12429
|
+
if (restricted) {
|
|
12430
|
+
let msg = 'MESSAGES.NAVIGATION_NOT_ALLOWED_PERMISSION';
|
|
12431
|
+
const route = oPermission['restrictedPermissionsRedirect'];
|
|
12432
|
+
if (Util.isDefined(route)) {
|
|
12433
|
+
msg = 'MESSAGES.NAVIGATION_REDIRECTED_PERMISSION';
|
|
12434
|
+
this.router.navigate([route]);
|
|
12435
|
+
}
|
|
12436
|
+
this.snackBarService.open(msg);
|
|
12437
|
+
}
|
|
12438
|
+
}
|
|
12439
|
+
return !restricted;
|
|
12440
|
+
}
|
|
12441
|
+
}
|
|
12442
|
+
PermissionsGuardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PermissionsGuardService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12443
|
+
PermissionsGuardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PermissionsGuardService });
|
|
12444
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PermissionsGuardService, decorators: [{
|
|
12445
|
+
type: Injectable
|
|
12446
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
12447
|
+
|
|
12448
|
+
function getPermissionsServiceProvider(injector) {
|
|
12449
|
+
return new PermissionsService(injector);
|
|
12450
|
+
}
|
|
12451
|
+
class OPermissionsModule {
|
|
12452
|
+
}
|
|
12453
|
+
OPermissionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OPermissionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12454
|
+
OPermissionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: OPermissionsModule, imports: [CommonModule] });
|
|
12455
|
+
OPermissionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OPermissionsModule, providers: [
|
|
12456
|
+
{ provide: PermissionsGuardService, useClass: PermissionsGuardService },
|
|
12457
|
+
{ provide: OntimizePermissionsService, useFactory: permissionsServiceFactory, deps: [Injector] }
|
|
12458
|
+
], imports: [CommonModule] });
|
|
12459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OPermissionsModule, decorators: [{
|
|
12460
|
+
type: NgModule,
|
|
12461
|
+
args: [{
|
|
12462
|
+
imports: [CommonModule],
|
|
12463
|
+
providers: [
|
|
12464
|
+
{ provide: PermissionsGuardService, useClass: PermissionsGuardService },
|
|
12465
|
+
{ provide: OntimizePermissionsService, useFactory: permissionsServiceFactory, deps: [Injector] }
|
|
12466
|
+
]
|
|
12467
|
+
}]
|
|
12468
|
+
}] });
|
|
12469
|
+
|
|
12470
|
+
class OFormLayoutManagerComponentStateClass extends DefaultComponentStateClass {
|
|
12471
|
+
}
|
|
12472
|
+
|
|
12473
|
+
class OFormLayoutManagerComponentStateService extends AbstractComponentStateService {
|
|
12474
|
+
initialize(component) {
|
|
12475
|
+
this.state = new OFormLayoutManagerComponentStateClass();
|
|
12476
|
+
super.initialize(component);
|
|
12477
|
+
}
|
|
12478
|
+
initializeState(state) {
|
|
12479
|
+
super.initializeState(state);
|
|
12480
|
+
}
|
|
12481
|
+
}
|
|
12482
|
+
OFormLayoutManagerComponentStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerComponentStateService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
12483
|
+
OFormLayoutManagerComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerComponentStateService });
|
|
12484
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerComponentStateService, decorators: [{
|
|
12485
|
+
type: Injectable
|
|
12486
|
+
}] });
|
|
12487
|
+
|
|
12488
|
+
class OGridComponentStateClass extends DefaultServiceComponentStateClass {
|
|
12489
|
+
get sortColumn() {
|
|
12490
|
+
return this['sort-column'];
|
|
12491
|
+
}
|
|
12492
|
+
set sortColumn(value) {
|
|
12493
|
+
this['sort-column'] = value;
|
|
12494
|
+
}
|
|
12495
|
+
}
|
|
12496
|
+
|
|
12497
|
+
class OGridComponentStateService extends AbstractComponentStateService {
|
|
12498
|
+
initialize(component) {
|
|
12499
|
+
this.state = new OGridComponentStateClass();
|
|
12500
|
+
super.initialize(component);
|
|
12501
|
+
}
|
|
12502
|
+
initializeState(state) {
|
|
12503
|
+
super.initializeState(state);
|
|
12504
|
+
}
|
|
12505
|
+
getDataToStore() {
|
|
12506
|
+
const dataToStore = Object.assign({}, this.state);
|
|
12507
|
+
dataToStore['query-rows'] = this.component.queryRows;
|
|
12508
|
+
dataToStore['currentPage'] = this.component.currentPage;
|
|
12509
|
+
if (this.component.storePaginationState) {
|
|
12510
|
+
dataToStore['queryRecordOffset'] = Math.max((this.state.queryRecordOffset - this.component.dataArray.length), (this.state.queryRecordOffset - this.component.queryRows));
|
|
12511
|
+
}
|
|
12512
|
+
else {
|
|
12513
|
+
delete dataToStore['queryRecordOffset'];
|
|
12514
|
+
}
|
|
12515
|
+
if (Util.isDefined(this.component.sortColumnOrder)) {
|
|
12516
|
+
dataToStore['sort-column'] = this.component.sortColumnOrder.columnName + Codes.COLUMNS_ALIAS_SEPARATOR +
|
|
12517
|
+
(this.component.sortColumnOrder.ascendent ? Codes.ASC_SORT : Codes.DESC_SORT);
|
|
12518
|
+
}
|
|
12519
|
+
dataToStore['filter-case-sensitive'] = this.component.isFilterCaseSensitive();
|
|
12520
|
+
if (this.component.quickFilter && Util.isDefined(this.component.quickFilterComponent)) {
|
|
12521
|
+
dataToStore['quickFilterActiveColumns'] = this.component.quickFilterComponent.getActiveColumns().join(Codes.ARRAY_INPUT_SEPARATOR);
|
|
12522
|
+
}
|
|
12523
|
+
return dataToStore;
|
|
12524
|
+
}
|
|
12525
|
+
}
|
|
12526
|
+
OGridComponentStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridComponentStateService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
12527
|
+
OGridComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridComponentStateService });
|
|
12528
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridComponentStateService, decorators: [{
|
|
12529
|
+
type: Injectable
|
|
12530
|
+
}] });
|
|
12531
|
+
|
|
12532
|
+
class OListComponentStateClass extends DefaultServiceComponentStateClass {
|
|
12533
|
+
get sortColumns() {
|
|
12534
|
+
return this['sort-columns'];
|
|
12535
|
+
}
|
|
12536
|
+
set sortColumns(value) {
|
|
12537
|
+
this['sort-columns'] = value;
|
|
12538
|
+
}
|
|
12539
|
+
}
|
|
12540
|
+
|
|
12541
|
+
class OListComponentStateService extends AbstractComponentStateService {
|
|
12542
|
+
initialize(component) {
|
|
12543
|
+
this.state = new OListComponentStateClass();
|
|
12544
|
+
super.initialize(component);
|
|
12545
|
+
}
|
|
12546
|
+
initializeState(state) {
|
|
12547
|
+
super.initializeState(state);
|
|
12548
|
+
}
|
|
12549
|
+
getDataToStore() {
|
|
12550
|
+
let dataToStore = Object.assign({}, this.state);
|
|
12551
|
+
dataToStore['query-rows'] = this.component.queryRows;
|
|
12552
|
+
if (!this.component.storePaginationState) {
|
|
12553
|
+
delete dataToStore['queryRecordOffset'];
|
|
12554
|
+
}
|
|
12555
|
+
if (this.component.quickFilter && Util.isDefined(this.component.quickFilterComponent)) {
|
|
12556
|
+
dataToStore['quickFilterActiveColumns'] = this.component.quickFilterComponent.getActiveColumns().join(Codes.ARRAY_INPUT_SEPARATOR);
|
|
12557
|
+
}
|
|
12558
|
+
dataToStore['filter-case-sensitive'] = this.component.isFilterCaseSensitive();
|
|
12559
|
+
dataToStore.selection = this.state.selection;
|
|
12560
|
+
return dataToStore;
|
|
12561
|
+
}
|
|
12562
|
+
refreshSelection() {
|
|
12563
|
+
this.state.selection = this.getSelectionState();
|
|
12564
|
+
}
|
|
12565
|
+
getSelectionState() {
|
|
12566
|
+
const selection = [];
|
|
12567
|
+
if (this.component) {
|
|
12568
|
+
const keys = this.component.getKeys();
|
|
12569
|
+
this.component.getSelectedItems().forEach(item => {
|
|
12570
|
+
const data = {};
|
|
12571
|
+
keys.forEach(key => {
|
|
12572
|
+
data[key] = item[key];
|
|
12573
|
+
});
|
|
12574
|
+
selection.push(data);
|
|
12575
|
+
});
|
|
12576
|
+
}
|
|
12577
|
+
return selection;
|
|
12578
|
+
}
|
|
12579
|
+
}
|
|
12580
|
+
OListComponentStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListComponentStateService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
12581
|
+
OListComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListComponentStateService });
|
|
12582
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListComponentStateService, decorators: [{
|
|
12583
|
+
type: Injectable
|
|
12584
|
+
}] });
|
|
12585
|
+
|
|
12586
|
+
class OTableComponentStateClass extends DefaultServiceComponentStateClass {
|
|
12587
|
+
constructor() {
|
|
12588
|
+
super(...arguments);
|
|
12589
|
+
this['grouped-column-types'] = [];
|
|
12590
|
+
}
|
|
12591
|
+
get filterBuilderValues() {
|
|
12592
|
+
return this['filter-builder-values'];
|
|
12593
|
+
}
|
|
12594
|
+
set filterBuilderValues(value) {
|
|
12595
|
+
this['filter-builder-values'] = value;
|
|
12596
|
+
}
|
|
12597
|
+
get selectColumnVisible() {
|
|
12598
|
+
return this['select-column-visible'];
|
|
12599
|
+
}
|
|
12600
|
+
set selectColumnVisible(value) {
|
|
12601
|
+
this['select-column-visible'] = value;
|
|
12602
|
+
}
|
|
12603
|
+
get quickFilterValue() {
|
|
12604
|
+
return this['filter'];
|
|
12605
|
+
}
|
|
12606
|
+
set quickFilterValue(value) {
|
|
12607
|
+
this['filter'] = value;
|
|
12608
|
+
}
|
|
12609
|
+
get columnsDisplay() {
|
|
12610
|
+
return this['oColumns-display'];
|
|
12611
|
+
}
|
|
12612
|
+
set columnsDisplay(value) {
|
|
12613
|
+
this['oColumns-display'] = value;
|
|
12614
|
+
}
|
|
12615
|
+
getColumnDisplay(oCol) {
|
|
12616
|
+
return (this.columnsDisplay || []).find(col => col.attr === oCol.attr);
|
|
12617
|
+
}
|
|
12618
|
+
get initialConfiguration() {
|
|
12619
|
+
return this['initial-configuration'];
|
|
12620
|
+
}
|
|
12621
|
+
set initialConfiguration(value) {
|
|
12622
|
+
this['initial-configuration'] = value;
|
|
12623
|
+
}
|
|
12624
|
+
get sortColumns() {
|
|
12625
|
+
return this['sort-columns'];
|
|
12626
|
+
}
|
|
12627
|
+
set sortColumns(value) {
|
|
12628
|
+
this['sort-columns'] = value;
|
|
12629
|
+
}
|
|
12630
|
+
get groupedColumnTypes() {
|
|
12631
|
+
return this['grouped-column-types'];
|
|
12632
|
+
}
|
|
12633
|
+
set groupedColumnTypes(value) {
|
|
12634
|
+
this['grouped-column-types'] = value;
|
|
12635
|
+
}
|
|
12636
|
+
get filterColumns() {
|
|
12637
|
+
return this['filter-columns'];
|
|
12638
|
+
}
|
|
12639
|
+
set filterColumns(value) {
|
|
12640
|
+
this['filter-columns'] = value;
|
|
12641
|
+
}
|
|
12642
|
+
get filterColumnActiveByDefault() {
|
|
12643
|
+
return this['filter-column-active-by-default'];
|
|
12644
|
+
}
|
|
12645
|
+
get groupedColumns() {
|
|
12646
|
+
return this['grouped-columns'];
|
|
12647
|
+
}
|
|
12648
|
+
set groupedColumns(value) {
|
|
12649
|
+
this['grouped-columns'] = value;
|
|
12650
|
+
}
|
|
12651
|
+
get columnValueFilters() {
|
|
12652
|
+
return this['column-value-filters'] || [];
|
|
12653
|
+
}
|
|
12654
|
+
set columnValueFilters(value) {
|
|
12655
|
+
this['column-value-filters'] = value;
|
|
12656
|
+
}
|
|
12657
|
+
get storedFilters() {
|
|
12658
|
+
return this['user-stored-filters'] || [];
|
|
12659
|
+
}
|
|
12660
|
+
addStoredFilter(filter) {
|
|
12661
|
+
if (!Util.isDefined(this['user-stored-filters'])) {
|
|
12662
|
+
this['user-stored-filters'] = [];
|
|
12663
|
+
}
|
|
12664
|
+
this.storedFilters.push(filter);
|
|
12665
|
+
}
|
|
12666
|
+
deleteStoredFilter(filterName) {
|
|
12667
|
+
const index = this.storedFilters.findIndex((item) => item.name === filterName);
|
|
12668
|
+
if (index >= 0) {
|
|
12669
|
+
this.storedFilters.splice(index, 1);
|
|
12670
|
+
}
|
|
12671
|
+
}
|
|
12672
|
+
getStoredFilter(filterName) {
|
|
12673
|
+
let result;
|
|
12674
|
+
const filter = this.storedFilters.find((item) => item.name === filterName);
|
|
12675
|
+
if (filter) {
|
|
12676
|
+
result = filter['stored-filter'];
|
|
12677
|
+
}
|
|
12678
|
+
return result;
|
|
12679
|
+
}
|
|
12680
|
+
applyFilter(filterName) {
|
|
12681
|
+
const filter = this.getStoredFilter(filterName);
|
|
12682
|
+
if (filter) {
|
|
12683
|
+
this.columnValueFilters = filter['column-value-filters'];
|
|
12684
|
+
this.quickFilterValue = filter['filter'];
|
|
12685
|
+
this.filterCaseSensitive = filter['filter-case-sensitive'];
|
|
12686
|
+
this.filterBuilderValues = filter['filter-builder-values'];
|
|
12687
|
+
this.oColumns = filter['oColumns'];
|
|
12688
|
+
}
|
|
12689
|
+
}
|
|
12690
|
+
get storedConfigurations() {
|
|
12691
|
+
return this['user-stored-configurations'] || [];
|
|
12692
|
+
}
|
|
12693
|
+
addStoredConfiguration(configuration) {
|
|
12694
|
+
if (!Util.isDefined(this['user-stored-configurations'])) {
|
|
12695
|
+
this['user-stored-configurations'] = [];
|
|
12696
|
+
}
|
|
12697
|
+
this.storedConfigurations.push(configuration);
|
|
12698
|
+
}
|
|
12699
|
+
deleteStoredConfiguration(configurationName) {
|
|
12700
|
+
const index = this.storedConfigurations.findIndex((item) => item.name === configurationName);
|
|
12701
|
+
if (index >= 0) {
|
|
12702
|
+
this.storedConfigurations.splice(index, 1);
|
|
12703
|
+
}
|
|
12704
|
+
}
|
|
12705
|
+
getStoredConfiguration(configurationName) {
|
|
12706
|
+
return this.storedConfigurations.find((item) => item.name === configurationName);
|
|
12707
|
+
}
|
|
12708
|
+
applyConfiguration(configurationName) {
|
|
12709
|
+
const configuration = this.getStoredConfiguration(configurationName);
|
|
12710
|
+
if (configuration) {
|
|
12711
|
+
const properties = configuration['stored-properties'] || [];
|
|
12712
|
+
const conf = configuration['stored-configuration'];
|
|
12713
|
+
this.copyPropertiesFromConfiguration(properties, conf);
|
|
12714
|
+
}
|
|
12715
|
+
}
|
|
12716
|
+
reset(pageable) {
|
|
12717
|
+
const result = {
|
|
12718
|
+
'user-stored-filters': this.storedFilters,
|
|
12719
|
+
'user-stored-configurations': this.storedConfigurations
|
|
12720
|
+
};
|
|
12721
|
+
if (pageable) {
|
|
12722
|
+
result['totalQueryRecordsNumber'] = this.totalQueryRecordsNumber;
|
|
12723
|
+
}
|
|
12724
|
+
result['currentPage'] = 0;
|
|
12725
|
+
Object.assign(this, {});
|
|
12726
|
+
Object.assign(this, result);
|
|
12727
|
+
}
|
|
12728
|
+
copyPropertiesFromConfiguration(properties, configuration) {
|
|
12729
|
+
properties.forEach(property => {
|
|
12730
|
+
switch (property) {
|
|
12731
|
+
case 'sort-columns':
|
|
12732
|
+
this.sortColumns = configuration['sort-columns'];
|
|
12733
|
+
break;
|
|
12734
|
+
case 'oColumns-display':
|
|
12735
|
+
this.columnsDisplay = configuration['oColumns-display'];
|
|
12736
|
+
this.selectColumnVisible = configuration['select-column-visible'];
|
|
12737
|
+
break;
|
|
12738
|
+
case 'quick-filter':
|
|
12739
|
+
case 'columns-filter':
|
|
12740
|
+
this.columnValueFilters = configuration['column-value-filters'];
|
|
12741
|
+
break;
|
|
12742
|
+
case 'grouped-columns':
|
|
12743
|
+
this.groupedColumns = configuration['grouped-columns'];
|
|
12744
|
+
break;
|
|
12745
|
+
case 'page':
|
|
12746
|
+
this.currentPage = configuration['currentPage'];
|
|
12747
|
+
this.totalQueryRecordsNumber = configuration['totalQueryRecordsNumber'];
|
|
12748
|
+
this.queryRecordOffset = configuration['queryRecordOffset'];
|
|
12749
|
+
this.queryRows = configuration['query-rows'];
|
|
12750
|
+
break;
|
|
12751
|
+
case 'filter-builder':
|
|
12752
|
+
this.filterBuilderValues = configuration['filter-builder'];
|
|
12753
|
+
break;
|
|
12754
|
+
}
|
|
12755
|
+
});
|
|
12756
|
+
}
|
|
12757
|
+
}
|
|
12758
|
+
|
|
12759
|
+
class OTableComponentStateService extends AbstractComponentStateService {
|
|
12760
|
+
initialize(component) {
|
|
12761
|
+
this.state = new OTableComponentStateClass();
|
|
12762
|
+
super.initialize(component);
|
|
12763
|
+
}
|
|
12764
|
+
initializeState(state) {
|
|
12765
|
+
super.initializeState(state);
|
|
12766
|
+
const initialConfigurationRawObj = state.initialConfiguration || {};
|
|
12767
|
+
state.initialConfiguration = new OTableComponentStateClass();
|
|
12768
|
+
state.initialConfiguration.setData(initialConfigurationRawObj);
|
|
12769
|
+
}
|
|
12770
|
+
refreshSelection() {
|
|
12771
|
+
this.state.selection = this.getSelectionState();
|
|
12772
|
+
}
|
|
12773
|
+
getDataToStore() {
|
|
12774
|
+
const dataToStore = {};
|
|
12775
|
+
const propertiesKeys = [
|
|
12776
|
+
'sort-columns',
|
|
12777
|
+
'oColumns-display',
|
|
12778
|
+
'columns-filter',
|
|
12779
|
+
'quick-filter',
|
|
12780
|
+
'page',
|
|
12781
|
+
'selection',
|
|
12782
|
+
'initial-configuration',
|
|
12783
|
+
'filter-columns',
|
|
12784
|
+
'filter-column-active',
|
|
12785
|
+
'grouped-columns',
|
|
12786
|
+
'grouped-column-types',
|
|
12787
|
+
'user-stored-filters',
|
|
12788
|
+
'user-stored-configurations'
|
|
12789
|
+
];
|
|
12790
|
+
Object.assign(dataToStore, this.getTablePropertiesToStore(propertiesKeys));
|
|
12791
|
+
return dataToStore;
|
|
12792
|
+
}
|
|
12793
|
+
storeFilter(filter) {
|
|
12794
|
+
let newFilter = { name: filter.name, description: filter.description };
|
|
12795
|
+
const storedFilter = {};
|
|
12796
|
+
Object.assign(storedFilter, this.getColumnFiltersState());
|
|
12797
|
+
Object.assign(storedFilter, this.getColumnsQuickFilterState());
|
|
12798
|
+
Object.assign(storedFilter, this.getFilterBuilderState());
|
|
12799
|
+
newFilter['stored-filter'] = storedFilter;
|
|
12800
|
+
this.state.addStoredFilter(newFilter);
|
|
12801
|
+
}
|
|
12802
|
+
storeConfiguration(configurationAgs, tableProperties) {
|
|
12803
|
+
const newConfiguration = {};
|
|
12804
|
+
this.component.storePaginationState = true;
|
|
12805
|
+
const storedConfiguration = this.getTablePropertiesToStore(tableProperties);
|
|
12806
|
+
this.component.storePaginationState = false;
|
|
12807
|
+
newConfiguration['stored-configuration'] = storedConfiguration;
|
|
12808
|
+
Object.assign(newConfiguration, configurationAgs);
|
|
12809
|
+
newConfiguration['stored-properties'] = tableProperties;
|
|
12810
|
+
this.state.addStoredConfiguration(newConfiguration);
|
|
12811
|
+
}
|
|
12812
|
+
getTablePropertiesToStore(properties) {
|
|
12813
|
+
const result = {};
|
|
12814
|
+
properties.forEach(prop => {
|
|
12815
|
+
Object.assign(result, this.getTablePropertyToStore(prop));
|
|
12816
|
+
});
|
|
12817
|
+
return result;
|
|
12818
|
+
}
|
|
12819
|
+
getTablePropertyToStore(property) {
|
|
12820
|
+
let result = {};
|
|
12821
|
+
switch (property) {
|
|
12822
|
+
case 'sort-columns':
|
|
12823
|
+
result = this.getSortState();
|
|
12824
|
+
break;
|
|
12825
|
+
case 'oColumns-display':
|
|
12826
|
+
result = this.getColumnsDisplayState();
|
|
12827
|
+
break;
|
|
12828
|
+
case 'quick-filter':
|
|
12829
|
+
result = this.getColumnsQuickFilterState();
|
|
12830
|
+
break;
|
|
12831
|
+
case 'columns-filter':
|
|
12832
|
+
result = this.getColumnFiltersState();
|
|
12833
|
+
break;
|
|
12834
|
+
case 'page':
|
|
12835
|
+
result = this.getPageState();
|
|
12836
|
+
break;
|
|
12837
|
+
case 'selection':
|
|
12838
|
+
result['selection'] = this.getSelectionState();
|
|
12839
|
+
break;
|
|
12840
|
+
case 'initial-configuration':
|
|
12841
|
+
result = this.getInitialConfigurationState();
|
|
12842
|
+
break;
|
|
12843
|
+
case 'filter-column-active':
|
|
12844
|
+
result['filter-column-active'] = this.component.isColumnFiltersActive;
|
|
12845
|
+
break;
|
|
12846
|
+
case 'filter-columns':
|
|
12847
|
+
result['filter-columns'] = this.component.filterColumns;
|
|
12848
|
+
break;
|
|
12849
|
+
case 'grouped-columns':
|
|
12850
|
+
result['grouped-columns'] = this.component.groupedColumnsArray;
|
|
12851
|
+
break;
|
|
12852
|
+
case 'grouped-column-types':
|
|
12853
|
+
result['grouped-column-types'] = this.component.groupedColumnTypes;
|
|
12854
|
+
break;
|
|
12855
|
+
case 'user-stored-filters':
|
|
12856
|
+
result['user-stored-filters'] = this.state.storedFilters;
|
|
12857
|
+
break;
|
|
12858
|
+
case 'user-stored-configurations':
|
|
12859
|
+
result['user-stored-configurations'] = this.state.storedConfigurations;
|
|
12860
|
+
break;
|
|
12861
|
+
case 'filter-builder':
|
|
12862
|
+
if (this.component.filterBuilder) {
|
|
12863
|
+
result['filter-builder'] = this.component.filterBuilder.getFilterValues();
|
|
12864
|
+
}
|
|
12865
|
+
break;
|
|
12866
|
+
}
|
|
12867
|
+
return result;
|
|
12868
|
+
}
|
|
12869
|
+
getColumnsDisplayState() {
|
|
12870
|
+
const oColumnsData = [];
|
|
12871
|
+
this.component.oTableOptions.columns.forEach((oCol) => {
|
|
12872
|
+
oColumnsData.push({
|
|
12873
|
+
attr: oCol.attr,
|
|
12874
|
+
visible: oCol.visible,
|
|
12875
|
+
width: oCol.getWidthToStore()
|
|
12876
|
+
});
|
|
12877
|
+
});
|
|
12878
|
+
return {
|
|
12879
|
+
'oColumns-display': oColumnsData,
|
|
12880
|
+
'select-column-visible': this.component.oTableOptions.selectColumn.visible
|
|
12881
|
+
};
|
|
12882
|
+
}
|
|
12883
|
+
getColumnsQuickFilterState() {
|
|
12884
|
+
const tableOptions = this.component.oTableOptions;
|
|
12885
|
+
const oColumnsData = [];
|
|
12886
|
+
tableOptions.columns.forEach((oCol) => {
|
|
12887
|
+
oColumnsData.push({
|
|
12888
|
+
attr: oCol.attr,
|
|
12889
|
+
searchable: oCol.searchable,
|
|
12890
|
+
searching: oCol.searching
|
|
12891
|
+
});
|
|
12892
|
+
});
|
|
12893
|
+
return {
|
|
12894
|
+
'oColumns': oColumnsData,
|
|
12895
|
+
'filter-case-sensitive': tableOptions.filterCaseSensitive,
|
|
12896
|
+
'filter': this.component.oTableQuickFilterComponent ? this.component.oTableQuickFilterComponent.value : ''
|
|
12897
|
+
};
|
|
12898
|
+
}
|
|
12899
|
+
getFilterBuilderState() {
|
|
12900
|
+
const result = {};
|
|
12901
|
+
if (this.component.filterBuilder) {
|
|
12902
|
+
let filterBuilder = this.component.filterBuilder.getFilterValues();
|
|
12903
|
+
if (!Util.isObjectEmpty(filterBuilder)) {
|
|
12904
|
+
result['filter-builder-values'] = filterBuilder;
|
|
12905
|
+
}
|
|
12906
|
+
}
|
|
12907
|
+
return result;
|
|
12908
|
+
}
|
|
12909
|
+
getColumnFiltersState() {
|
|
12910
|
+
const result = {};
|
|
12911
|
+
if (this.component.dataSource) {
|
|
12912
|
+
const columnValueFilters = this.component.dataSource.getColumnValueFilters();
|
|
12913
|
+
if (columnValueFilters.length > 0) {
|
|
12914
|
+
result['column-value-filters'] = columnValueFilters;
|
|
12915
|
+
}
|
|
12916
|
+
}
|
|
12917
|
+
return result;
|
|
12918
|
+
}
|
|
12919
|
+
getPageState() {
|
|
12920
|
+
const result = {
|
|
12921
|
+
'query-rows': this.component.matpaginator ? this.component.matpaginator.pageSize : ''
|
|
12922
|
+
};
|
|
12923
|
+
if (this.component.currentPage > 0 && this.component.storePaginationState) {
|
|
12924
|
+
result.currentPage = this.component.currentPage;
|
|
12925
|
+
}
|
|
12926
|
+
if (this.component.pageable && this.component.storePaginationState) {
|
|
12927
|
+
result.totalQueryRecordsNumber = this.component.state.totalQueryRecordsNumber;
|
|
12928
|
+
result.queryRecordOffset = Math.max((this.component.state.queryRecordOffset - this.component.dataSource.renderedData.length), (this.component.state.queryRecordOffset - this.component.queryRows));
|
|
12929
|
+
}
|
|
12930
|
+
return result;
|
|
12931
|
+
}
|
|
12932
|
+
getSelectionState() {
|
|
12933
|
+
const selection = [];
|
|
12934
|
+
if (this.component && this.component.keepSelectedItems) {
|
|
12935
|
+
const tableKeys = this.component.getKeys();
|
|
12936
|
+
this.component.getSelectedItems().forEach(item => {
|
|
12937
|
+
const data = {};
|
|
12938
|
+
tableKeys.forEach(key => {
|
|
12939
|
+
data[key] = item[key];
|
|
12940
|
+
});
|
|
12941
|
+
selection.push(data);
|
|
12942
|
+
});
|
|
12943
|
+
}
|
|
12944
|
+
return selection;
|
|
12945
|
+
}
|
|
12946
|
+
getInitialConfigurationState() {
|
|
12947
|
+
const oColumnsData = [];
|
|
12948
|
+
Util.parseArray(this.component.visibleColumns, true).forEach((columnAttr) => {
|
|
12949
|
+
let oCol = this.component.getOColumn(columnAttr);
|
|
12950
|
+
oColumnsData.push({
|
|
12951
|
+
attr: oCol.attr,
|
|
12952
|
+
visible: true,
|
|
12953
|
+
width: oCol.definition ? oCol.definition.originalWidth : undefined
|
|
12954
|
+
});
|
|
12955
|
+
});
|
|
12956
|
+
return {
|
|
12957
|
+
'initial-configuration': {
|
|
12958
|
+
'oColumns-display': oColumnsData,
|
|
12959
|
+
'sort-columns': this.component.sortColumns,
|
|
12960
|
+
'select-column-visible': this.component.oTableOptions.selectColumn.visible,
|
|
12961
|
+
'filter-case-sensitive': this.component.filterCaseSensitive,
|
|
12962
|
+
'query-rows': this.component.originalQueryRows,
|
|
12963
|
+
'filter-column-active-by-default': this.component.filterColumnActiveByDefault,
|
|
12964
|
+
'filter-columns': this.component.originalFilterColumns,
|
|
12965
|
+
'grouped-columns': this.component.originalGroupedColumnsArray
|
|
12966
|
+
}
|
|
12967
|
+
};
|
|
12968
|
+
}
|
|
12969
|
+
getSortState() {
|
|
12970
|
+
const sortColumns = [];
|
|
12971
|
+
this.component.sort.getSortColumns().forEach(sortData => {
|
|
12972
|
+
sortColumns.push(sortData.id + Codes.COLUMNS_ALIAS_SEPARATOR + sortData.direction);
|
|
12973
|
+
});
|
|
12974
|
+
return {
|
|
12975
|
+
'sort-columns': sortColumns.join(Codes.ARRAY_INPUT_SEPARATOR)
|
|
12976
|
+
};
|
|
12977
|
+
}
|
|
12978
|
+
}
|
|
12979
|
+
OTableComponentStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableComponentStateService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
12980
|
+
OTableComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableComponentStateService });
|
|
12981
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableComponentStateService, decorators: [{
|
|
12982
|
+
type: Injectable
|
|
12983
|
+
}] });
|
|
12984
|
+
|
|
12985
|
+
class OTranslateHttpLoader extends TranslateHttpLoader {
|
|
12986
|
+
constructor(httpClient, prefix = OTranslateService.ASSETS_PATH, suffix = OTranslateService.ASSETS_EXTENSION, injector) {
|
|
12987
|
+
super(httpClient, prefix, suffix);
|
|
12988
|
+
this.injector = injector;
|
|
12989
|
+
this.appConfig = this.injector.get(AppConfig);
|
|
12990
|
+
this.httpClient = httpClient;
|
|
12991
|
+
}
|
|
12992
|
+
getAssetsPath() {
|
|
12993
|
+
return this.prefix;
|
|
12994
|
+
}
|
|
12995
|
+
getAssetsExtension() {
|
|
12996
|
+
return this.suffix;
|
|
12997
|
+
}
|
|
12998
|
+
getLocalTranslation(lang) {
|
|
12999
|
+
let innerObserver;
|
|
13000
|
+
const dataObservable = new Observable(observer => innerObserver = observer).pipe(share());
|
|
13001
|
+
super.getTranslation(lang)
|
|
13002
|
+
.subscribe((res) => {
|
|
13003
|
+
innerObserver.next(res);
|
|
13004
|
+
innerObserver.complete();
|
|
13005
|
+
}, error => {
|
|
13006
|
+
innerObserver.next(undefined);
|
|
13007
|
+
}, () => innerObserver.complete());
|
|
13008
|
+
return dataObservable;
|
|
13009
|
+
}
|
|
13010
|
+
getTranslation(lang) {
|
|
13011
|
+
const translationOrigins = [];
|
|
13012
|
+
translationOrigins.push(this.getLocalTranslation(lang));
|
|
13013
|
+
if (this.appConfig.useRemoteBundle()) {
|
|
13014
|
+
translationOrigins.push(this.getRemoteBundle(lang));
|
|
13015
|
+
}
|
|
13016
|
+
let innerObserver;
|
|
13017
|
+
const dataObservable = new Observable(observer => innerObserver = observer).pipe(share());
|
|
13018
|
+
combineLatest(translationOrigins).subscribe((res) => {
|
|
13019
|
+
const staticBundle = res[0] || {};
|
|
13020
|
+
const remoteBundle = res[1] || {};
|
|
13021
|
+
const allBundles = Object.assign(staticBundle, remoteBundle);
|
|
13022
|
+
innerObserver.next(allBundles);
|
|
13023
|
+
});
|
|
13024
|
+
return dataObservable;
|
|
13025
|
+
}
|
|
13026
|
+
getRemoteBundle(lang) {
|
|
13027
|
+
const bundleEndpoint = this.appConfig.getBundleEndpoint();
|
|
13028
|
+
if (!bundleEndpoint) {
|
|
13029
|
+
return of([]);
|
|
13030
|
+
}
|
|
13031
|
+
const url = bundleEndpoint + '?lang=' + lang;
|
|
13032
|
+
return this.httpClient.get(url).pipe(map((resp) => {
|
|
13033
|
+
if (resp.code === Codes.ONTIMIZE_SUCCESSFUL_CODE) {
|
|
13034
|
+
return this.parseBundleResponse(resp.data);
|
|
13035
|
+
}
|
|
13036
|
+
return resp;
|
|
13037
|
+
}), catchError(err => {
|
|
13038
|
+
console.log('Remote Bundle service is not available', err);
|
|
13039
|
+
return of([]);
|
|
13040
|
+
}));
|
|
13041
|
+
}
|
|
13042
|
+
parseBundleResponse(data) {
|
|
13043
|
+
const result = {};
|
|
13044
|
+
if (data) {
|
|
13045
|
+
data.forEach((item) => {
|
|
13046
|
+
result[item[OTranslateHttpLoader.BUNDLE_KEY]] = item[OTranslateHttpLoader.BUNDLE_VALUE];
|
|
13047
|
+
});
|
|
13048
|
+
}
|
|
13049
|
+
return result;
|
|
13050
|
+
}
|
|
13051
|
+
}
|
|
13052
|
+
OTranslateHttpLoader.BUNDLE_KEY = 'key';
|
|
13053
|
+
OTranslateHttpLoader.BUNDLE_VALUE = 'value';
|
|
13054
|
+
|
|
13055
|
+
class OTranslateParser extends TranslateDefaultParser {
|
|
13056
|
+
constructor() {
|
|
13057
|
+
super(...arguments);
|
|
13058
|
+
this.templateMatcher = /{\s?([0-9][^{}\s]*)\s?}/g;
|
|
13059
|
+
}
|
|
13060
|
+
interpolate(expr, params) {
|
|
13061
|
+
if (typeof expr !== 'string' || !params) {
|
|
13062
|
+
return expr;
|
|
13063
|
+
}
|
|
13064
|
+
return expr.replace(this.templateMatcher, (substring, index) => {
|
|
13065
|
+
const argValue = Util.isDefined(params[index]) ? params[index] : '';
|
|
13066
|
+
return !isNaN(parseInt(index, 10)) ? argValue : substring;
|
|
13067
|
+
});
|
|
13068
|
+
}
|
|
13069
|
+
}
|
|
13070
|
+
OTranslateParser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTranslateParser, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
13071
|
+
OTranslateParser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTranslateParser });
|
|
13072
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTranslateParser, decorators: [{
|
|
13073
|
+
type: Injectable
|
|
13074
|
+
}] });
|
|
13075
|
+
|
|
13076
|
+
class AppearanceService {
|
|
13077
|
+
constructor(injector) {
|
|
13078
|
+
this.injector = injector;
|
|
13079
|
+
this.darkThemeClass = 'o-dark';
|
|
13080
|
+
this.isDarkModeSubject = new BehaviorSubject(false);
|
|
13081
|
+
this.isDarkMode$ = this.isDarkModeSubject.asObservable();
|
|
13082
|
+
this.localStorageService = this.injector.get(LocalStorageService);
|
|
13083
|
+
this._document = inject(DOCUMENT);
|
|
13084
|
+
const config = this.localStorageService.getStoredData();
|
|
13085
|
+
this.isDarkMode$.subscribe(x => this.updateThemeClass(x));
|
|
13086
|
+
if (config && config["theme"] && typeof config["theme"].isDark === 'boolean') {
|
|
13087
|
+
const isDark = config["theme"].isDark;
|
|
13088
|
+
this.isDarkModeSubject.next(isDark);
|
|
13089
|
+
}
|
|
13090
|
+
}
|
|
13091
|
+
setDarkMode(isDarkMode) {
|
|
13092
|
+
const config = this.localStorageService.getStoredData();
|
|
13093
|
+
if (config) {
|
|
13094
|
+
config["theme"] = config["theme"] || {};
|
|
13095
|
+
config["theme"].isDark = isDarkMode;
|
|
13096
|
+
}
|
|
13097
|
+
this.localStorageService.setLocalStorage(config);
|
|
13098
|
+
this.isDarkModeSubject.next(isDarkMode);
|
|
13099
|
+
}
|
|
13100
|
+
isDarkMode() {
|
|
13101
|
+
return this.isDarkModeSubject.value;
|
|
13102
|
+
}
|
|
13103
|
+
updateThemeClass(isDark) {
|
|
13104
|
+
if (isDark) {
|
|
13105
|
+
this._document.body.classList.add(this.darkThemeClass);
|
|
13106
|
+
}
|
|
13107
|
+
else {
|
|
13108
|
+
this._document.body.classList.remove(this.darkThemeClass);
|
|
13109
|
+
}
|
|
13110
|
+
}
|
|
13111
|
+
}
|
|
13112
|
+
AppearanceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppearanceService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13113
|
+
AppearanceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppearanceService, providedIn: 'root' });
|
|
13114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppearanceService, decorators: [{
|
|
13115
|
+
type: Injectable,
|
|
13116
|
+
args: [{
|
|
13117
|
+
providedIn: 'root',
|
|
13118
|
+
}]
|
|
13119
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
13120
|
+
|
|
13121
|
+
class CurrencyUtil {
|
|
13122
|
+
static getCurrencyCode(language) {
|
|
13123
|
+
const code = this.languageToCurrencyCode[language];
|
|
13124
|
+
if (code) {
|
|
13125
|
+
return code;
|
|
13126
|
+
}
|
|
13127
|
+
else {
|
|
13128
|
+
return 'EUR';
|
|
13129
|
+
}
|
|
13130
|
+
}
|
|
13131
|
+
static getCurrencyCodeFromSymbol(symbol) {
|
|
13132
|
+
const currencyCode = Object.keys(this.currencyCodeToSymbol).find(code => this.currencyCodeToSymbol[code] === symbol);
|
|
13133
|
+
return currencyCode;
|
|
13134
|
+
}
|
|
13135
|
+
}
|
|
13136
|
+
CurrencyUtil.languageToCurrencyCode = {
|
|
13137
|
+
'es': 'EUR',
|
|
13138
|
+
'en': 'USD',
|
|
13139
|
+
'pt': 'BRL',
|
|
13140
|
+
'fr': 'EUR',
|
|
13141
|
+
'de': 'EUR',
|
|
13142
|
+
'it': 'EUR',
|
|
13143
|
+
'ja': 'JPY',
|
|
13144
|
+
'zh': 'CNY',
|
|
13145
|
+
'ru': 'RUB',
|
|
13146
|
+
'ar': 'AED',
|
|
13147
|
+
'cr': 'CRC',
|
|
13148
|
+
'ng': 'NGN',
|
|
13149
|
+
'ph': 'PHP',
|
|
13150
|
+
'pl': 'PLN',
|
|
13151
|
+
'py': 'PYG',
|
|
13152
|
+
'th': 'THB',
|
|
13153
|
+
'ua': 'UAH',
|
|
13154
|
+
'vn': 'VND',
|
|
13155
|
+
};
|
|
13156
|
+
CurrencyUtil.currencyCodeToSymbol = {
|
|
13157
|
+
EUR: '€',
|
|
13158
|
+
USD: '$',
|
|
13159
|
+
BRL: 'R$',
|
|
13160
|
+
JPY: '¥',
|
|
13161
|
+
CNY: '¥',
|
|
13162
|
+
RUB: '₽',
|
|
13163
|
+
AED: 'د.إ',
|
|
13164
|
+
CRC: '₡',
|
|
13165
|
+
NGN: '₦',
|
|
13166
|
+
PHP: '₱',
|
|
13167
|
+
PLN: 'zł',
|
|
13168
|
+
PYG: '₲',
|
|
13169
|
+
THB: '฿',
|
|
13170
|
+
UAH: '₴',
|
|
13171
|
+
VND: '₫',
|
|
13172
|
+
};
|
|
13173
|
+
|
|
12112
13174
|
const DEFAULT_INPUTS_O_BUTTON = [
|
|
12113
13175
|
'oattr: attr',
|
|
12114
13176
|
'olabel: label',
|
|
@@ -12125,17 +13187,26 @@ const DEFAULT_OUTPUTS_O_BUTTON = [
|
|
|
12125
13187
|
'click'
|
|
12126
13188
|
];
|
|
12127
13189
|
class OButtonComponent {
|
|
12128
|
-
constructor() {
|
|
13190
|
+
constructor(injector, actRoute) {
|
|
13191
|
+
this.injector = injector;
|
|
13192
|
+
this.actRoute = actRoute;
|
|
12129
13193
|
this.iconPosition = Codes.ICON_POSITION_LEFT;
|
|
12130
13194
|
this.enabled = true;
|
|
13195
|
+
this.visible = true;
|
|
12131
13196
|
this.onClick = new EventEmitter();
|
|
12132
13197
|
this.click = new EventEmitter();
|
|
12133
13198
|
this.otype = OButtonComponent.DEFAULT_TYPE;
|
|
13199
|
+
this.permissionsService = this.injector.get(PermissionsService);
|
|
12134
13200
|
}
|
|
12135
13201
|
ngOnInit() {
|
|
12136
13202
|
if (this.otype) {
|
|
12137
13203
|
this.otype = this.otype.toUpperCase();
|
|
12138
13204
|
}
|
|
13205
|
+
this.permissions = this.permissionsService.getOButtonPermissions(this.oattr, this.actRoute);
|
|
13206
|
+
if (Util.isDefined(this.permissions)) {
|
|
13207
|
+
this.enabled = this.permissions.enabled;
|
|
13208
|
+
this.visible = this.permissions.visible;
|
|
13209
|
+
}
|
|
12139
13210
|
}
|
|
12140
13211
|
onButtonClick(event) {
|
|
12141
13212
|
event.stopPropagation();
|
|
@@ -12168,10 +13239,13 @@ class OButtonComponent {
|
|
|
12168
13239
|
isIconButton() {
|
|
12169
13240
|
return this.otype === 'ICON';
|
|
12170
13241
|
}
|
|
13242
|
+
isVisible() {
|
|
13243
|
+
return this.visible;
|
|
13244
|
+
}
|
|
12171
13245
|
}
|
|
12172
13246
|
OButtonComponent.DEFAULT_TYPE = 'STROKED';
|
|
12173
|
-
OButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12174
|
-
OButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OButtonComponent, selector: "o-button", inputs: { oattr: ["attr", "oattr"], olabel: ["label", "olabel"], otype: ["type", "otype"], icon: "icon", svgIcon: ["svg-icon", "svgIcon"], iconPosition: ["icon-position", "iconPosition"], image: "image", enabled: "enabled", color: "color" }, outputs: { onClick: "onClick", click: "click" }, host: { properties: { "class.o-button": "true", "class.o-button-icon-position-top": "iconPosition===\"top\"", "class.o-button-icon-position-bottom": "iconPosition===\"bottom\"" } }, ngImport: i0, template: "<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isBasic()\" mat-button [class.mat-icon-button]=\"needsIconButtonClass\"\n [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isRaised()\" mat-raised-button class=\"mat-raised-button\"\n [class.mat-icon-button]=\"needsIconButtonClass\" [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isStroked()\" mat-stroked-button
|
|
13247
|
+
OButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OButtonComponent, deps: [{ token: i0.Injector }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
13248
|
+
OButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OButtonComponent, selector: "o-button", inputs: { oattr: ["attr", "oattr"], olabel: ["label", "olabel"], otype: ["type", "otype"], icon: "icon", svgIcon: ["svg-icon", "svgIcon"], iconPosition: ["icon-position", "iconPosition"], image: "image", enabled: "enabled", color: "color" }, outputs: { onClick: "onClick", click: "click" }, host: { properties: { "class.o-button": "true", "class.o-button-icon-position-top": "iconPosition===\"top\"", "class.o-button-icon-position-bottom": "iconPosition===\"bottom\"" } }, ngImport: i0, template: "<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isBasic() && isVisible()\" mat-button [class.mat-icon-button]=\"needsIconButtonClass\"\n [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isRaised() && isVisible()\" mat-raised-button class=\"mat-raised-button\"\n [class.mat-icon-button]=\"needsIconButtonClass\" [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isStroked() && isVisible()\" mat-stroked-button\n [class.mat-icon-button]=\"needsIconButtonClass\" [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isFlat() && isVisible()\" mat-flat-button [class.mat-icon-button]=\"needsIconButtonClass\"\n [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isIconButton() && isVisible()\" mat-icon-button\n [class.mat-icon-button]=\"needsIconButtonClass\" [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isFab() && isVisible()\" mat-fab [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isMiniFab() && isVisible()\" mat-mini-fab [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n\n<ng-template #iconTemplate>\n <img src=\"{{ image }}\" class=\"o-button-image\" *ngIf=\"image!=undefined\" alt=\"button image\" />\n <mat-icon class=\"material-icons o-button-icon\" *ngIf=\"icon!==undefined\" style=\"vertical-align:middle\">{{ icon }}\n </mat-icon>\n <mat-icon class=\"material-icons o-button-icon\" *ngIf=\"svgIcon!==undefined\" style=\"vertical-align:middle\" [svgIcon]=\"svgIcon\"></mat-icon>\n</ng-template>\n\n<ng-template #buttonTemplate>\n\n <ng-container *ngIf=\"iconPosition==='left' || iconPosition==='top' \">\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n </ng-container>\n\n <br *ngIf=\"iconPosition==='top'\" />\n\n {{ olabel | oTranslate }}\n\n <br *ngIf=\"iconPosition==='bottom'\" />\n\n <ng-container *ngIf=\"iconPosition==='right' || iconPosition==='bottom'\">\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n", styles: [".o-button{display:inline-block;pointer-events:none}.o-button.o-button-icon-position-bottom .mat-mdc-button,.o-button.o-button-icon-position-bottom .mat-mdc-unelevated-button,.o-button.o-button-icon-position-bottom .mat-mdc-raised-button,.o-button.o-button-icon-position-bottom .mat-mdc-outlined-button,.o-button.o-button-icon-position-top .mat-mdc-button,.o-button.o-button-icon-position-top .mat-mdc-unelevated-button,.o-button.o-button-icon-position-top .mat-mdc-raised-button,.o-button.o-button-icon-position-top .mat-mdc-outlined-button{height:auto;line-height:normal}.o-button button{pointer-events:auto}.o-button button.mat-mdc-button,.o-button button.mat-mdc-unelevated-button,.o-button button.mat-mdc-raised-button,.o-button button.mat-mdc-outlined-button{width:100%}.o-button button *{pointer-events:none}.o-button button .o-button-image{max-height:24px;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
12175
13249
|
__decorate([
|
|
12176
13250
|
BooleanInputConverter(),
|
|
12177
13251
|
__metadata("design:type", Boolean)
|
|
@@ -12182,8 +13256,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
12182
13256
|
'[class.o-button]': 'true',
|
|
12183
13257
|
'[class.o-button-icon-position-top]': 'iconPosition==="top"',
|
|
12184
13258
|
'[class.o-button-icon-position-bottom]': 'iconPosition==="bottom"'
|
|
12185
|
-
}, template: "<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isBasic()\" mat-button [class.mat-icon-button]=\"needsIconButtonClass\"\n [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isRaised()\" mat-raised-button class=\"mat-raised-button\"\n [class.mat-icon-button]=\"needsIconButtonClass\" [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isStroked()\" mat-stroked-button
|
|
12186
|
-
}], ctorParameters: function () { return []; }, propDecorators: { enabled: [] } });
|
|
13259
|
+
}, template: "<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isBasic() && isVisible()\" mat-button [class.mat-icon-button]=\"needsIconButtonClass\"\n [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isRaised() && isVisible()\" mat-raised-button class=\"mat-raised-button\"\n [class.mat-icon-button]=\"needsIconButtonClass\" [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isStroked() && isVisible()\" mat-stroked-button\n [class.mat-icon-button]=\"needsIconButtonClass\" [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isFlat() && isVisible()\" mat-flat-button [class.mat-icon-button]=\"needsIconButtonClass\"\n [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isIconButton() && isVisible()\" mat-icon-button\n [class.mat-icon-button]=\"needsIconButtonClass\" [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isFab() && isVisible()\" mat-fab [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n<button type=\"button\" (click)=\"onButtonClick($event)\" *ngIf=\"isMiniFab() && isVisible()\" mat-mini-fab [disabled]=\"!enabled\" [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n</button>\n\n\n<ng-template #iconTemplate>\n <img src=\"{{ image }}\" class=\"o-button-image\" *ngIf=\"image!=undefined\" alt=\"button image\" />\n <mat-icon class=\"material-icons o-button-icon\" *ngIf=\"icon!==undefined\" style=\"vertical-align:middle\">{{ icon }}\n </mat-icon>\n <mat-icon class=\"material-icons o-button-icon\" *ngIf=\"svgIcon!==undefined\" style=\"vertical-align:middle\" [svgIcon]=\"svgIcon\"></mat-icon>\n</ng-template>\n\n<ng-template #buttonTemplate>\n\n <ng-container *ngIf=\"iconPosition==='left' || iconPosition==='top' \">\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n </ng-container>\n\n <br *ngIf=\"iconPosition==='top'\" />\n\n {{ olabel | oTranslate }}\n\n <br *ngIf=\"iconPosition==='bottom'\" />\n\n <ng-container *ngIf=\"iconPosition==='right' || iconPosition==='bottom'\">\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n </ng-container>\n</ng-template>\n", styles: [".o-button{display:inline-block;pointer-events:none}.o-button.o-button-icon-position-bottom .mat-mdc-button,.o-button.o-button-icon-position-bottom .mat-mdc-unelevated-button,.o-button.o-button-icon-position-bottom .mat-mdc-raised-button,.o-button.o-button-icon-position-bottom .mat-mdc-outlined-button,.o-button.o-button-icon-position-top .mat-mdc-button,.o-button.o-button-icon-position-top .mat-mdc-unelevated-button,.o-button.o-button-icon-position-top .mat-mdc-raised-button,.o-button.o-button-icon-position-top .mat-mdc-outlined-button{height:auto;line-height:normal}.o-button button{pointer-events:auto}.o-button button.mat-mdc-button,.o-button button.mat-mdc-unelevated-button,.o-button button.mat-mdc-raised-button,.o-button button.mat-mdc-outlined-button{width:100%}.o-button button *{pointer-events:none}.o-button button .o-button-image{max-height:24px;vertical-align:middle}\n"] }]
|
|
13260
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.ActivatedRoute }]; }, propDecorators: { enabled: [] } });
|
|
12187
13261
|
|
|
12188
13262
|
class OButtonModule {
|
|
12189
13263
|
}
|
|
@@ -13893,119 +14967,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
13893
14967
|
args: ['mouseenter']
|
|
13894
14968
|
}] } });
|
|
13895
14969
|
|
|
13896
|
-
|
|
13897
|
-
get sortColumn() {
|
|
13898
|
-
return this['sort-column'];
|
|
13899
|
-
}
|
|
13900
|
-
set sortColumn(value) {
|
|
13901
|
-
this['sort-column'] = value;
|
|
13902
|
-
}
|
|
13903
|
-
}
|
|
13904
|
-
|
|
13905
|
-
class OGridComponentStateService extends AbstractComponentStateService {
|
|
13906
|
-
initialize(component) {
|
|
13907
|
-
this.state = new OGridComponentStateClass();
|
|
13908
|
-
super.initialize(component);
|
|
13909
|
-
}
|
|
13910
|
-
initializeState(state) {
|
|
13911
|
-
super.initializeState(state);
|
|
13912
|
-
}
|
|
13913
|
-
getDataToStore() {
|
|
13914
|
-
const dataToStore = Object.assign({}, this.state);
|
|
13915
|
-
dataToStore['query-rows'] = this.component.queryRows;
|
|
13916
|
-
dataToStore['currentPage'] = this.component.currentPage;
|
|
13917
|
-
if (this.component.storePaginationState) {
|
|
13918
|
-
dataToStore['queryRecordOffset'] = Math.max((this.state.queryRecordOffset - this.component.dataArray.length), (this.state.queryRecordOffset - this.component.queryRows));
|
|
13919
|
-
}
|
|
13920
|
-
else {
|
|
13921
|
-
delete dataToStore['queryRecordOffset'];
|
|
13922
|
-
}
|
|
13923
|
-
if (Util.isDefined(this.component.sortColumnOrder)) {
|
|
13924
|
-
dataToStore['sort-column'] = this.component.sortColumnOrder.columnName + Codes.COLUMNS_ALIAS_SEPARATOR +
|
|
13925
|
-
(this.component.sortColumnOrder.ascendent ? Codes.ASC_SORT : Codes.DESC_SORT);
|
|
13926
|
-
}
|
|
13927
|
-
dataToStore['filter-case-sensitive'] = this.component.isFilterCaseSensitive();
|
|
13928
|
-
if (this.component.quickFilter && Util.isDefined(this.component.quickFilterComponent)) {
|
|
13929
|
-
dataToStore['quickFilterActiveColumns'] = this.component.quickFilterComponent.getActiveColumns().join(Codes.ARRAY_INPUT_SEPARATOR);
|
|
13930
|
-
}
|
|
13931
|
-
return dataToStore;
|
|
13932
|
-
}
|
|
13933
|
-
}
|
|
13934
|
-
OGridComponentStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridComponentStateService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
13935
|
-
OGridComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridComponentStateService });
|
|
13936
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OGridComponentStateService, decorators: [{
|
|
13937
|
-
type: Injectable
|
|
13938
|
-
}] });
|
|
13939
|
-
|
|
13940
|
-
class OFormLayoutManagerService {
|
|
13941
|
-
constructor(injector) {
|
|
13942
|
-
this.injector = injector;
|
|
13943
|
-
this.registeredFormLayoutManagers = {};
|
|
13944
|
-
}
|
|
13945
|
-
registerFormLayoutManager(comp) {
|
|
13946
|
-
this.registeredFormLayoutManagers[comp.getAttribute()] = comp;
|
|
13947
|
-
}
|
|
13948
|
-
removeFormLayoutManager(comp) {
|
|
13949
|
-
delete this.registeredFormLayoutManagers[comp.getAttribute()];
|
|
13950
|
-
}
|
|
13951
|
-
get activeFormLayoutManager() {
|
|
13952
|
-
return this._activeFormLayoutManager;
|
|
13953
|
-
}
|
|
13954
|
-
set activeFormLayoutManager(arg) {
|
|
13955
|
-
this._activeFormLayoutManager = arg;
|
|
13956
|
-
}
|
|
13957
|
-
}
|
|
13958
|
-
OFormLayoutManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13959
|
-
OFormLayoutManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerService, providedIn: 'root' });
|
|
13960
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerService, decorators: [{
|
|
13961
|
-
type: Injectable,
|
|
13962
|
-
args: [{
|
|
13963
|
-
providedIn: 'root'
|
|
13964
|
-
}]
|
|
13965
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
13966
|
-
|
|
13967
|
-
class OFormLayoutManagerComponentStateClass extends DefaultComponentStateClass {
|
|
13968
|
-
}
|
|
13969
|
-
|
|
13970
|
-
class OFormLayoutManagerComponentStateService extends AbstractComponentStateService {
|
|
13971
|
-
initialize(component) {
|
|
13972
|
-
this.state = new OFormLayoutManagerComponentStateClass();
|
|
13973
|
-
super.initialize(component);
|
|
13974
|
-
}
|
|
13975
|
-
initializeState(state) {
|
|
13976
|
-
super.initializeState(state);
|
|
13977
|
-
}
|
|
13978
|
-
}
|
|
13979
|
-
OFormLayoutManagerComponentStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerComponentStateService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
13980
|
-
OFormLayoutManagerComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerComponentStateService });
|
|
13981
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OFormLayoutManagerComponentStateService, decorators: [{
|
|
13982
|
-
type: Injectable
|
|
13983
|
-
}] });
|
|
13984
|
-
|
|
13985
|
-
class ShareCanActivateChildService {
|
|
13986
|
-
constructor(injector) {
|
|
13987
|
-
this.injector = injector;
|
|
13988
|
-
this.router = this.injector.get(Router);
|
|
13989
|
-
this.permissionsService = this.injector.get(PermissionsService);
|
|
13990
|
-
}
|
|
13991
|
-
setPermissionsGuard(guard) {
|
|
13992
|
-
this.permissionsGuard = guard;
|
|
13993
|
-
}
|
|
13994
|
-
canActivateChildUsingPermissions(childRoute, state) {
|
|
13995
|
-
if (this.permissionsGuard) {
|
|
13996
|
-
return this.permissionsGuard.canActivateChild(childRoute, state);
|
|
13997
|
-
}
|
|
13998
|
-
return true;
|
|
13999
|
-
}
|
|
14000
|
-
}
|
|
14001
|
-
ShareCanActivateChildService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareCanActivateChildService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14002
|
-
ShareCanActivateChildService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareCanActivateChildService, providedIn: 'root' });
|
|
14003
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareCanActivateChildService, decorators: [{
|
|
14004
|
-
type: Injectable,
|
|
14005
|
-
args: [{
|
|
14006
|
-
providedIn: 'root'
|
|
14007
|
-
}]
|
|
14008
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
14970
|
+
const O_GLOBAL_CONFIG = new InjectionToken('o-global-config');
|
|
14009
14971
|
|
|
14010
14972
|
class CanActivateFormLayoutChildGuard {
|
|
14011
14973
|
constructor(injector) {
|
|
@@ -14686,6 +15648,21 @@ class OFormLayoutManagerComponent {
|
|
|
14686
15648
|
this.updateStateStorage();
|
|
14687
15649
|
}));
|
|
14688
15650
|
}
|
|
15651
|
+
this.getInjectionTokenConfig();
|
|
15652
|
+
}
|
|
15653
|
+
getInjectionTokenConfig() {
|
|
15654
|
+
try {
|
|
15655
|
+
const oGlobalConfig = this.injector.get(O_GLOBAL_CONFIG);
|
|
15656
|
+
if (Util.isDefined(oGlobalConfig.storeState)) {
|
|
15657
|
+
this.storeState = oGlobalConfig.storeState;
|
|
15658
|
+
if (!this.storeState) {
|
|
15659
|
+
this.subscription.unsubscribe();
|
|
15660
|
+
}
|
|
15661
|
+
}
|
|
15662
|
+
;
|
|
15663
|
+
}
|
|
15664
|
+
catch (error) {
|
|
15665
|
+
}
|
|
14689
15666
|
}
|
|
14690
15667
|
get state() {
|
|
14691
15668
|
return this.componentStateService.state;
|
|
@@ -15216,8 +16193,11 @@ class AbstractOServiceBaseComponent {
|
|
|
15216
16193
|
this.queryOnEventSubscription.unsubscribe();
|
|
15217
16194
|
}
|
|
15218
16195
|
}
|
|
16196
|
+
canSetStaticData(staticData) {
|
|
16197
|
+
return Util.isDefined(staticData);
|
|
16198
|
+
}
|
|
15219
16199
|
ngOnChanges(changes) {
|
|
15220
|
-
if (
|
|
16200
|
+
if (this.canSetStaticData(changes.staticData?.currentValue)) {
|
|
15221
16201
|
this.setData(changes.staticData.currentValue);
|
|
15222
16202
|
}
|
|
15223
16203
|
}
|
|
@@ -15283,6 +16263,11 @@ class AbstractOServiceBaseComponent {
|
|
|
15283
16263
|
}
|
|
15284
16264
|
return result;
|
|
15285
16265
|
}
|
|
16266
|
+
clearData() {
|
|
16267
|
+
this.state.queryRecordOffset = 0;
|
|
16268
|
+
this.state.totalQueryRecordsNumber = 0;
|
|
16269
|
+
this.setData([], []);
|
|
16270
|
+
}
|
|
15286
16271
|
queryData(filter, ovrrArgs) {
|
|
15287
16272
|
const queryMethodName = this.pageable ? this.paginatedQueryMethod : this.queryMethod;
|
|
15288
16273
|
if (!this.dataService || !(queryMethodName in this.dataService) || !this.entity) {
|
|
@@ -15300,9 +16285,7 @@ class AbstractOServiceBaseComponent {
|
|
|
15300
16285
|
this.abortQuery.next(false);
|
|
15301
16286
|
this.queryArguments = this.getQueryArguments(filter, ovrrArgs);
|
|
15302
16287
|
if (this.abortQuery.value) {
|
|
15303
|
-
this.
|
|
15304
|
-
this.state.totalQueryRecordsNumber = 0;
|
|
15305
|
-
this.setData([], []);
|
|
16288
|
+
this.clearData();
|
|
15306
16289
|
this.cd.detectChanges();
|
|
15307
16290
|
this.loadingSubject.next(false);
|
|
15308
16291
|
return;
|
|
@@ -15580,6 +16563,9 @@ class AbstractOServiceComponent extends AbstractOServiceBaseComponent {
|
|
|
15580
16563
|
this.clickDelay = 200;
|
|
15581
16564
|
this.clickPrevent = false;
|
|
15582
16565
|
this._quickFilterAppearance = 'outline';
|
|
16566
|
+
this.mutationObservers = [];
|
|
16567
|
+
this.enabledInsertButton = true;
|
|
16568
|
+
this.enabledRefreshButton = true;
|
|
15583
16569
|
this._currentPage = 0;
|
|
15584
16570
|
this.permissionsService = this.injector.get(PermissionsService);
|
|
15585
16571
|
this.translateService = this.injector.get(OTranslateService);
|
|
@@ -15595,6 +16581,18 @@ class AbstractOServiceComponent extends AbstractOServiceBaseComponent {
|
|
|
15595
16581
|
}
|
|
15596
16582
|
catch (e) {
|
|
15597
16583
|
}
|
|
16584
|
+
this.getGlobalInjectionTokenConfig();
|
|
16585
|
+
}
|
|
16586
|
+
getGlobalInjectionTokenConfig() {
|
|
16587
|
+
try {
|
|
16588
|
+
const oGlobalConfig = this.injector.get(O_GLOBAL_CONFIG);
|
|
16589
|
+
if (Util.isDefined(oGlobalConfig.storeState)) {
|
|
16590
|
+
this.storeState = oGlobalConfig.storeState;
|
|
16591
|
+
}
|
|
16592
|
+
;
|
|
16593
|
+
}
|
|
16594
|
+
catch (error) {
|
|
16595
|
+
}
|
|
15598
16596
|
}
|
|
15599
16597
|
initialize() {
|
|
15600
16598
|
super.initialize();
|
|
@@ -15709,6 +16707,52 @@ class AbstractOServiceComponent extends AbstractOServiceBaseComponent {
|
|
|
15709
16707
|
}
|
|
15710
16708
|
}
|
|
15711
16709
|
}
|
|
16710
|
+
setButtonPermissions(actionsPermissions) {
|
|
16711
|
+
if (Util.isDefined(actionsPermissions)) {
|
|
16712
|
+
this.setPermission('insert', 'insertButton', 'enabledInsertButton', actionsPermissions);
|
|
16713
|
+
this.setPermission('refresh', 'refreshButton', 'enabledRefreshButton', actionsPermissions);
|
|
16714
|
+
this.setPermission('delete', 'deleteButton', 'enabledDeleteButton', actionsPermissions);
|
|
16715
|
+
}
|
|
16716
|
+
}
|
|
16717
|
+
setPermission(attr, visibleProp, enabledProp, actionsPermissions) {
|
|
16718
|
+
const perm = this.getPermissionByAttr(attr, actionsPermissions);
|
|
16719
|
+
if (Util.isDefined(perm)) {
|
|
16720
|
+
this[visibleProp] = perm.visible;
|
|
16721
|
+
this[enabledProp] = perm.enabled;
|
|
16722
|
+
}
|
|
16723
|
+
}
|
|
16724
|
+
manageCustomPermissions(actionsPermissions, selector) {
|
|
16725
|
+
const customPermissions = actionsPermissions.filter(perm => !['insert', 'refresh', 'delete'].includes(perm.attr));
|
|
16726
|
+
customPermissions.forEach(permission => {
|
|
16727
|
+
this.managePermission(this.elRef, permission, this.mutationObservers, selector);
|
|
16728
|
+
});
|
|
16729
|
+
}
|
|
16730
|
+
getActionsPermissions(permissions) {
|
|
16731
|
+
return Util.isDefined(permissions) ? (permissions.actions || []) : [];
|
|
16732
|
+
}
|
|
16733
|
+
getPermissionByAttr(attr, actionsPermissions) {
|
|
16734
|
+
return actionsPermissions.find((perm) => perm.attr === attr);
|
|
16735
|
+
}
|
|
16736
|
+
managePermission(elementRef, permission, mutationObservers, selector, attr) {
|
|
16737
|
+
let elementByAction;
|
|
16738
|
+
const attrAction = Util.isDefined(attr) ? attr : permission.attr;
|
|
16739
|
+
const allElements = elementRef.nativeElement.querySelectorAll(selector);
|
|
16740
|
+
allElements.forEach(element => {
|
|
16741
|
+
if (element.getAttribute('attr') === attrAction) {
|
|
16742
|
+
elementByAction = element;
|
|
16743
|
+
}
|
|
16744
|
+
});
|
|
16745
|
+
if (Util.isDefined(elementByAction)) {
|
|
16746
|
+
if (!permission.visible) {
|
|
16747
|
+
elementByAction.remove();
|
|
16748
|
+
}
|
|
16749
|
+
else if (!permission.enabled) {
|
|
16750
|
+
elementByAction.disabled = true;
|
|
16751
|
+
const mutationObserver = PermissionsUtils.registerDisabledChangesInDom(elementByAction);
|
|
16752
|
+
mutationObservers.push(mutationObserver);
|
|
16753
|
+
}
|
|
16754
|
+
}
|
|
16755
|
+
}
|
|
15712
16756
|
getEncodedParentKeys() {
|
|
15713
16757
|
let encoded;
|
|
15714
16758
|
if (Object.keys(this._pKeysEquiv).length > 0) {
|
|
@@ -16382,9 +17426,7 @@ class OMatSort extends MatSort {
|
|
|
16382
17426
|
let propertyA = '';
|
|
16383
17427
|
let propertyB = '';
|
|
16384
17428
|
[propertyA, propertyB] = [a[this.activeSortColumn], b[this.activeSortColumn]];
|
|
16385
|
-
|
|
16386
|
-
const valueB = typeof propertyB === 'undefined' ? '' : propertyB === '' ? propertyB : isNaN(+propertyB) ? propertyB.toString().trim().toLowerCase() : +propertyB;
|
|
16387
|
-
return (valueA <= valueB ? -1 : 1) * (this.activeSortDirection === 'asc' ? 1 : -1);
|
|
17429
|
+
return Util.sortFunction(propertyA, propertyB, this.activeSortDirection);
|
|
16388
17430
|
}
|
|
16389
17431
|
}
|
|
16390
17432
|
OMatSort.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OMatSort, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -16401,51 +17443,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
16401
17443
|
args: ['matSortChange']
|
|
16402
17444
|
}] } });
|
|
16403
17445
|
|
|
16404
|
-
class AppearanceService {
|
|
16405
|
-
constructor(injector) {
|
|
16406
|
-
this.injector = injector;
|
|
16407
|
-
this.darkThemeClass = 'o-dark';
|
|
16408
|
-
this.isDarkModeSubject = new BehaviorSubject(false);
|
|
16409
|
-
this.isDarkMode$ = this.isDarkModeSubject.asObservable();
|
|
16410
|
-
this.localStorageService = this.injector.get(LocalStorageService);
|
|
16411
|
-
this._document = inject(DOCUMENT);
|
|
16412
|
-
const config = this.localStorageService.getStoredData();
|
|
16413
|
-
this.isDarkMode$.subscribe(x => this.updateThemeClass(x));
|
|
16414
|
-
if (config && config["theme"] && typeof config["theme"].isDark === 'boolean') {
|
|
16415
|
-
const isDark = config["theme"].isDark;
|
|
16416
|
-
this.isDarkModeSubject.next(isDark);
|
|
16417
|
-
}
|
|
16418
|
-
}
|
|
16419
|
-
setDarkMode(isDarkMode) {
|
|
16420
|
-
const config = this.localStorageService.getStoredData();
|
|
16421
|
-
if (config) {
|
|
16422
|
-
config["theme"] = config["theme"] || {};
|
|
16423
|
-
config["theme"].isDark = isDarkMode;
|
|
16424
|
-
}
|
|
16425
|
-
this.localStorageService.setLocalStorage(config);
|
|
16426
|
-
this.isDarkModeSubject.next(isDarkMode);
|
|
16427
|
-
}
|
|
16428
|
-
isDarkMode() {
|
|
16429
|
-
return this.isDarkModeSubject.value;
|
|
16430
|
-
}
|
|
16431
|
-
updateThemeClass(isDark) {
|
|
16432
|
-
if (isDark) {
|
|
16433
|
-
this._document.body.classList.add(this.darkThemeClass);
|
|
16434
|
-
}
|
|
16435
|
-
else {
|
|
16436
|
-
this._document.body.classList.remove(this.darkThemeClass);
|
|
16437
|
-
}
|
|
16438
|
-
}
|
|
16439
|
-
}
|
|
16440
|
-
AppearanceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppearanceService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16441
|
-
AppearanceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppearanceService, providedIn: 'root' });
|
|
16442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppearanceService, decorators: [{
|
|
16443
|
-
type: Injectable,
|
|
16444
|
-
args: [{
|
|
16445
|
-
providedIn: 'root',
|
|
16446
|
-
}]
|
|
16447
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
16448
|
-
|
|
16449
17446
|
class OSkeletonComponent {
|
|
16450
17447
|
constructor(injector) {
|
|
16451
17448
|
this.injector = injector;
|
|
@@ -16554,6 +17551,9 @@ class OGridComponent extends AbstractOServiceComponent {
|
|
|
16554
17551
|
}
|
|
16555
17552
|
ngOnInit() {
|
|
16556
17553
|
this.initialize();
|
|
17554
|
+
this.permissions = this.permissionsService.getGridPermissions(this.oattr, this.actRoute);
|
|
17555
|
+
this.actionsPermissions = this.getActionsPermissions(this.permissions);
|
|
17556
|
+
this.setButtonPermissions(this.actionsPermissions);
|
|
16557
17557
|
}
|
|
16558
17558
|
initialize() {
|
|
16559
17559
|
super.initialize();
|
|
@@ -16588,6 +17588,7 @@ class OGridComponent extends AbstractOServiceComponent {
|
|
|
16588
17588
|
if (this.queryOnInit) {
|
|
16589
17589
|
this.queryData();
|
|
16590
17590
|
}
|
|
17591
|
+
this.manageCustomPermissions(this.actionsPermissions, '[o-grid-toolbar]');
|
|
16591
17592
|
}
|
|
16592
17593
|
ngAfterContentInit() {
|
|
16593
17594
|
this.gridItems = this.inputGridItems.toArray();
|
|
@@ -16782,7 +17783,7 @@ OGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
16782
17783
|
OntimizeServiceProvider,
|
|
16783
17784
|
ComponentStateServiceProvider,
|
|
16784
17785
|
{ provide: O_COMPONENT_STATE_SERVICE, useClass: OGridComponentStateService },
|
|
16785
|
-
], queries: [{ propertyName: "inputGridItems", predicate: i0.forwardRef(function () { return OGridItemComponent; }) }], viewQueries: [{ propertyName: "matpaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "gridItemDirectives", predicate: OGridItemDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [style.display]=\"isVisible()? '' : 'none'\" class=\"o-grid-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n\n <!--TOOLBAR-->\n <o-data-toolbar *ngIf=\"hasControls()\" class=\"o-grid-toolbar\" [title]=\"title\" [show-title]=\"hasTitle()\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" class=\"o-grid-add-button o-grid-button text\" mat-stroked-button\n aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-stroked-button aria-label=\"Refresh\" (click)=\"reloadData()\" *ngIf=\"refreshButton\" class=\"o-grid-button text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" class=\"o-grid-button o-grid-add-button no-text\" mat-icon-button\n aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" (click)=\"reloadData()\" *ngIf=\"refreshButton\" class=\"o-grid-button no-text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n </ng-template>\n\n <!--O-GRID-PAGINATOR-->\n <div class=\"o-grid-paginator\" *ngIf=\"showPageSize\">\n <div class=\"o-grid-page-size-label\">{{ 'GRID.ITEMS_PER_PAGE' | oTranslate }}:</div>\n <mat-form-field class=\"o-grid-select-page\">\n <mat-select placeholder=\"\" #pageSizeSelect [(value)]=\"queryRows\" (selectionChange)=\"pageSizeChanged()\">\n <mat-option *ngFor=\"let page of pageSizeOptions\" [value]=\"page\">\n {{ page }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!--O-GRID-SORT-->\n <div class=\"o-grid-sort\" *ngIf=\"showSort && sortableColumns.length > 0\">\n <mat-form-field class=\"o-grid-select-sort\">\n <mat-icon matPrefix>sort</mat-icon>\n <mat-select #sortSelect [value]=\"currentOrderColumn\" (selectionChange)=\"sortColumnChanged($event)\"\n placeholder=\" {{ 'GRID.SORT_BY' | oTranslate }}\">\n <mat-option *ngFor=\"let column of sortableColumns; let i = index\" [value]=\"i\">\n {{ getSortOptionText(column) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </ng-container>\n <ng-content select=\"[o-grid-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [columns]=\"quickFilterColumns\" [filter-case-sensitive]=\"filterCaseSensitive\"\n [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\"\n float-label=\"never\"></o-search-input>\n </ng-container>\n </o-data-toolbar>\n\n <ng-container *ngIf=\"(loading | async)===false\">\n <!--no results-->\n <div class=\"o-grid-no-results fill-remaining\" *ngIf=\"gridItems.length === 0\" fxLayoutAlign=\"center start\" layout-padding>\n {{'GRID.EMPTY' | oTranslate}}\n <ng-container *ngIf=\"quickFilter && searchInputComponent && searchInputComponent.getValue() && searchInputComponent.getValue().length > 0\">\n {{ 'GRID.EMPTY_USING_FILTER' | oTranslate : { values: [ searchInputComponent.getValue()] } }}\n </ng-container>\n </div>\n\n\n <!--MAT-GRID-LIST-->\n <mat-grid-list [cols]=\"cols\" [gutterSize]=\"gutterSize\" [rowHeight]=\"gridItemHeight\" class=\"o-mat-grid-list fill-remaining\"\n *ngIf=\"gridItems.length > 0\">\n <mat-grid-tile o-grid-item *ngFor=\"let item of gridItems\" [colspan]=\"item.colspan\" [rowspan]=\"item.rowspan\">\n <ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n\n <button type=\"button\" aria-label=\"Insert\" *ngIf=\"insertButton && insertButtonFloatable\" mat-fab (click)=\"add()\"\n class=\"o-grid-add-floatable-button\" [class.o-grid-add-bottom-floatable-button]=\"insertButtonPosition ==='bottom'\"\n [class.o-grid-add-top-floatable-button]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!-- GRID FOOTER -->\n <div *ngIf=\"!paginationControls && showFooter && (loading | async)===false\" fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"o-grid-footer\">\n <button type=\"button\" mat-button *ngIf=\"getDataArray().length < totalRecords && getDataArray().length>0\" (click)=\"loadMore()\"\n class=\"mat-raised-button\">\n {{ 'GRID.BUTTON_NEXT' | oTranslate }}\n </button>\n <span fxFlex></span>\n <span class=\"o-grid-totals\">{{ 'GRID.TEXT_SHOWN_ITEMS' | oTranslate :{values: [getDataArray().length, totalRecords]}\n }}</span>\n </div>\n\n <mat-paginator class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls && showFooter\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"></mat-paginator>\n </ng-container>\n <div *ngIf=\"loading | async\" fxLayout=\"row\" fxLayoutAlign=\"center end\" class=\"o-loading-blocker\">\n <div fxLayoutAlign=\"center center\" [class.o-spinner-container-controls]=\"hasControls()\" class=\"o-spinner-container\">\n <o-grid-skeleton></o-grid-skeleton>\n </div>\n </div>\n\n\n</div>\n", styles: [".o-grid{height:100%}.o-grid .o-grid-container{position:relative;height:100%;display:flex}.o-grid .o-grid-container .o-grid-toolbar .mat-mdc-form-field-subscript-wrapper{display:none}.o-grid .o-grid-container .o-grid-no-results{padding:16px}.o-grid .o-grid-container .o-grid-paginator,.o-grid .o-grid-container .o-grid-sort{margin-right:1em}.o-grid .o-grid-container .o-grid-paginator{display:flex}.o-grid .o-grid-container .o-grid-paginator .o-grid-select-page{width:60px}.o-grid .o-grid-container .o-grid-paginator .o-grid-page-size-label{margin:0 4px 0 8px;align-self:center}.o-grid .o-grid-container .o-grid-footer .o-grid-totals{margin-right:8px;font-size:14px}.o-grid .o-grid-container .o-grid-footer,.o-grid .o-grid-container .o-mat-paginator{flex-shrink:0}.o-grid .o-grid-container .o-loading-blocker{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container{width:100%;height:100%}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container.o-spinner-container-controls{height:calc(100% - 64px)}.o-grid.o-grid-fixed,.o-grid.o-grid-fixed .o-grid-container{max-height:100%;height:100%}.o-grid.o-grid-fixed .o-mat-grid-list{overflow:auto;padding-bottom:0!important}.o-grid.o-grid-fixed .o-grid-footer,.o-grid.o-grid-fixed .o-mat-paginator{flex:0 0 auto}.o-grid .o-grid-add-floatable-button{right:12px;position:absolute}.o-grid .o-grid-add-floatable-button.o-grid-add-bottom-floatable-button{bottom:36px}.o-grid .o-grid-add-floatable-button.o-grid-add-top-floatable-button{top:66px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i1$4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i6$1.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i9$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: ODataToolbarComponent, selector: "o-data-toolbar", inputs: ["show-title", "title"] }, { kind: "directive", type: OGridItemDirective, selector: "mat-grid-tile[o-grid-item]" }, { kind: "component", type: OGridSkeletonComponent, selector: "o-grid-skeleton" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
17786
|
+
], queries: [{ propertyName: "inputGridItems", predicate: i0.forwardRef(function () { return OGridItemComponent; }) }], viewQueries: [{ propertyName: "matpaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "gridItemDirectives", predicate: OGridItemDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [style.display]=\"isVisible()? '' : 'none'\" class=\"o-grid-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n\n <!--TOOLBAR-->\n <o-data-toolbar *ngIf=\"hasControls()\" class=\"o-grid-toolbar\" [title]=\"title\" [show-title]=\"hasTitle()\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" [disabled]=\"!enabledInsertButton\"\n class=\"o-grid-add-button o-grid-button text\" mat-stroked-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-stroked-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" type=\"button\"\n class=\"o-grid-button o-grid-add-button no-text\" mat-icon-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button no-text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n </ng-template>\n\n <!--O-GRID-PAGINATOR-->\n <div class=\"o-grid-paginator\" *ngIf=\"showPageSize\">\n <div class=\"o-grid-page-size-label\">{{ 'GRID.ITEMS_PER_PAGE' | oTranslate }}:</div>\n <mat-form-field class=\"o-grid-select-page\">\n <mat-select placeholder=\"\" #pageSizeSelect [(value)]=\"queryRows\" (selectionChange)=\"pageSizeChanged()\">\n <mat-option *ngFor=\"let page of pageSizeOptions\" [value]=\"page\">\n {{ page }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!--O-GRID-SORT-->\n <div class=\"o-grid-sort\" *ngIf=\"showSort && sortableColumns.length > 0\">\n <mat-form-field class=\"o-grid-select-sort\">\n <mat-icon matPrefix>sort</mat-icon>\n <mat-select #sortSelect [value]=\"currentOrderColumn\" (selectionChange)=\"sortColumnChanged($event)\"\n placeholder=\" {{ 'GRID.SORT_BY' | oTranslate }}\">\n <mat-option *ngFor=\"let column of sortableColumns; let i = index\" [value]=\"i\">\n {{ getSortOptionText(column) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </ng-container>\n <ng-content select=\"[o-grid-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [columns]=\"quickFilterColumns\" [filter-case-sensitive]=\"filterCaseSensitive\"\n [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\"\n float-label=\"never\"></o-search-input>\n </ng-container>\n </o-data-toolbar>\n\n <ng-container *ngIf=\"(loading | async)===false\">\n <!--no results-->\n <div class=\"o-grid-no-results fill-remaining\" *ngIf=\"gridItems.length === 0\" fxLayoutAlign=\"center start\" layout-padding>\n {{'GRID.EMPTY' | oTranslate}}\n <ng-container *ngIf=\"quickFilter && searchInputComponent && searchInputComponent.getValue() && searchInputComponent.getValue().length > 0\">\n {{ 'GRID.EMPTY_USING_FILTER' | oTranslate : { values: [ searchInputComponent.getValue()] } }}\n </ng-container>\n </div>\n\n\n <!--MAT-GRID-LIST-->\n <mat-grid-list [cols]=\"cols\" [gutterSize]=\"gutterSize\" [rowHeight]=\"gridItemHeight\" class=\"o-mat-grid-list fill-remaining\"\n *ngIf=\"gridItems.length > 0\">\n <mat-grid-tile o-grid-item *ngFor=\"let item of gridItems\" [colspan]=\"item.colspan\" [rowspan]=\"item.rowspan\">\n <ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n <button type=\"button\" aria-label=\"Insert\" *ngIf=\"insertButton && insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" mat-fab (click)=\"add()\"\n class=\"o-grid-add-floatable-button\" [class.o-grid-add-bottom-floatable-button]=\"insertButtonPosition ==='bottom'\"\n [class.o-grid-add-top-floatable-button]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!-- GRID FOOTER -->\n <div *ngIf=\"!paginationControls && showFooter && (loading | async)===false\" fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"o-grid-footer\">\n <button type=\"button\" mat-button *ngIf=\"getDataArray().length < totalRecords && getDataArray().length>0\" (click)=\"loadMore()\"\n class=\"mat-raised-button\">\n {{ 'GRID.BUTTON_NEXT' | oTranslate }}\n </button>\n <span fxFlex></span>\n <span class=\"o-grid-totals\">{{ 'GRID.TEXT_SHOWN_ITEMS' | oTranslate :{values: [getDataArray().length, totalRecords]}\n }}</span>\n </div>\n\n <mat-paginator class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls && showFooter\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"></mat-paginator>\n </ng-container>\n <div *ngIf=\"loading | async\" fxLayout=\"row\" fxLayoutAlign=\"center end\" class=\"o-loading-blocker\">\n <div fxLayoutAlign=\"center center\" [class.o-spinner-container-controls]=\"hasControls()\" class=\"o-spinner-container\">\n <o-grid-skeleton></o-grid-skeleton>\n </div>\n </div>\n\n\n</div>\n", styles: [".o-grid{height:100%}.o-grid .o-grid-container{position:relative;height:100%;display:flex}.o-grid .o-grid-container .o-grid-toolbar .mat-mdc-form-field-subscript-wrapper{display:none}.o-grid .o-grid-container .o-grid-no-results{padding:16px}.o-grid .o-grid-container .o-grid-paginator,.o-grid .o-grid-container .o-grid-sort{margin-right:1em}.o-grid .o-grid-container .o-grid-paginator{display:flex}.o-grid .o-grid-container .o-grid-paginator .o-grid-select-page{width:60px}.o-grid .o-grid-container .o-grid-paginator .o-grid-page-size-label{margin:0 4px 0 8px;align-self:center}.o-grid .o-grid-container .o-grid-footer .o-grid-totals{margin-right:8px;font-size:14px}.o-grid .o-grid-container .o-grid-footer,.o-grid .o-grid-container .o-mat-paginator{flex-shrink:0}.o-grid .o-grid-container .o-loading-blocker{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container{width:100%;height:100%}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container.o-spinner-container-controls{height:calc(100% - 64px)}.o-grid.o-grid-fixed,.o-grid.o-grid-fixed .o-grid-container{max-height:100%;height:100%}.o-grid.o-grid-fixed .o-mat-grid-list{overflow:auto;padding-bottom:0!important}.o-grid.o-grid-fixed .o-grid-footer,.o-grid.o-grid-fixed .o-mat-paginator{flex:0 0 auto}.o-grid .o-grid-add-floatable-button{right:12px;position:absolute}.o-grid .o-grid-add-floatable-button.o-grid-add-bottom-floatable-button{bottom:36px}.o-grid .o-grid-add-floatable-button.o-grid-add-top-floatable-button{top:66px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i1$4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i6$1.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i9$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: ODataToolbarComponent, selector: "o-data-toolbar", inputs: ["show-title", "title"] }, { kind: "directive", type: OGridItemDirective, selector: "mat-grid-tile[o-grid-item]" }, { kind: "component", type: OGridSkeletonComponent, selector: "o-grid-skeleton" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
16786
17787
|
__decorate([
|
|
16787
17788
|
BooleanInputConverter(),
|
|
16788
17789
|
__metadata("design:type", Boolean)
|
|
@@ -16824,7 +17825,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
16824
17825
|
], inputs: DEFAULT_INPUTS_O_GRID, encapsulation: ViewEncapsulation.None, host: {
|
|
16825
17826
|
'[class.o-grid]': 'true',
|
|
16826
17827
|
'[class.o-grid-fixed]': 'fixedHeader'
|
|
16827
|
-
}, template: "<div [style.display]=\"isVisible()? '' : 'none'\" class=\"o-grid-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n\n <!--TOOLBAR-->\n <o-data-toolbar *ngIf=\"hasControls()\" class=\"o-grid-toolbar\" [title]=\"title\" [show-title]=\"hasTitle()\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" class=\"o-grid-add-button o-grid-button text\" mat-stroked-button
|
|
17828
|
+
}, template: "<div [style.display]=\"isVisible()? '' : 'none'\" class=\"o-grid-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n\n <!--TOOLBAR-->\n <o-data-toolbar *ngIf=\"hasControls()\" class=\"o-grid-toolbar\" [title]=\"title\" [show-title]=\"hasTitle()\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" [disabled]=\"!enabledInsertButton\"\n class=\"o-grid-add-button o-grid-button text\" mat-stroked-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-stroked-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" type=\"button\"\n class=\"o-grid-button o-grid-add-button no-text\" mat-icon-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button no-text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n </ng-template>\n\n <!--O-GRID-PAGINATOR-->\n <div class=\"o-grid-paginator\" *ngIf=\"showPageSize\">\n <div class=\"o-grid-page-size-label\">{{ 'GRID.ITEMS_PER_PAGE' | oTranslate }}:</div>\n <mat-form-field class=\"o-grid-select-page\">\n <mat-select placeholder=\"\" #pageSizeSelect [(value)]=\"queryRows\" (selectionChange)=\"pageSizeChanged()\">\n <mat-option *ngFor=\"let page of pageSizeOptions\" [value]=\"page\">\n {{ page }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!--O-GRID-SORT-->\n <div class=\"o-grid-sort\" *ngIf=\"showSort && sortableColumns.length > 0\">\n <mat-form-field class=\"o-grid-select-sort\">\n <mat-icon matPrefix>sort</mat-icon>\n <mat-select #sortSelect [value]=\"currentOrderColumn\" (selectionChange)=\"sortColumnChanged($event)\"\n placeholder=\" {{ 'GRID.SORT_BY' | oTranslate }}\">\n <mat-option *ngFor=\"let column of sortableColumns; let i = index\" [value]=\"i\">\n {{ getSortOptionText(column) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </ng-container>\n <ng-content select=\"[o-grid-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [columns]=\"quickFilterColumns\" [filter-case-sensitive]=\"filterCaseSensitive\"\n [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\"\n float-label=\"never\"></o-search-input>\n </ng-container>\n </o-data-toolbar>\n\n <ng-container *ngIf=\"(loading | async)===false\">\n <!--no results-->\n <div class=\"o-grid-no-results fill-remaining\" *ngIf=\"gridItems.length === 0\" fxLayoutAlign=\"center start\" layout-padding>\n {{'GRID.EMPTY' | oTranslate}}\n <ng-container *ngIf=\"quickFilter && searchInputComponent && searchInputComponent.getValue() && searchInputComponent.getValue().length > 0\">\n {{ 'GRID.EMPTY_USING_FILTER' | oTranslate : { values: [ searchInputComponent.getValue()] } }}\n </ng-container>\n </div>\n\n\n <!--MAT-GRID-LIST-->\n <mat-grid-list [cols]=\"cols\" [gutterSize]=\"gutterSize\" [rowHeight]=\"gridItemHeight\" class=\"o-mat-grid-list fill-remaining\"\n *ngIf=\"gridItems.length > 0\">\n <mat-grid-tile o-grid-item *ngFor=\"let item of gridItems\" [colspan]=\"item.colspan\" [rowspan]=\"item.rowspan\">\n <ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n <button type=\"button\" aria-label=\"Insert\" *ngIf=\"insertButton && insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" mat-fab (click)=\"add()\"\n class=\"o-grid-add-floatable-button\" [class.o-grid-add-bottom-floatable-button]=\"insertButtonPosition ==='bottom'\"\n [class.o-grid-add-top-floatable-button]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!-- GRID FOOTER -->\n <div *ngIf=\"!paginationControls && showFooter && (loading | async)===false\" fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"o-grid-footer\">\n <button type=\"button\" mat-button *ngIf=\"getDataArray().length < totalRecords && getDataArray().length>0\" (click)=\"loadMore()\"\n class=\"mat-raised-button\">\n {{ 'GRID.BUTTON_NEXT' | oTranslate }}\n </button>\n <span fxFlex></span>\n <span class=\"o-grid-totals\">{{ 'GRID.TEXT_SHOWN_ITEMS' | oTranslate :{values: [getDataArray().length, totalRecords]}\n }}</span>\n </div>\n\n <mat-paginator class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls && showFooter\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"></mat-paginator>\n </ng-container>\n <div *ngIf=\"loading | async\" fxLayout=\"row\" fxLayoutAlign=\"center end\" class=\"o-loading-blocker\">\n <div fxLayoutAlign=\"center center\" [class.o-spinner-container-controls]=\"hasControls()\" class=\"o-spinner-container\">\n <o-grid-skeleton></o-grid-skeleton>\n </div>\n </div>\n\n\n</div>\n", styles: [".o-grid{height:100%}.o-grid .o-grid-container{position:relative;height:100%;display:flex}.o-grid .o-grid-container .o-grid-toolbar .mat-mdc-form-field-subscript-wrapper{display:none}.o-grid .o-grid-container .o-grid-no-results{padding:16px}.o-grid .o-grid-container .o-grid-paginator,.o-grid .o-grid-container .o-grid-sort{margin-right:1em}.o-grid .o-grid-container .o-grid-paginator{display:flex}.o-grid .o-grid-container .o-grid-paginator .o-grid-select-page{width:60px}.o-grid .o-grid-container .o-grid-paginator .o-grid-page-size-label{margin:0 4px 0 8px;align-self:center}.o-grid .o-grid-container .o-grid-footer .o-grid-totals{margin-right:8px;font-size:14px}.o-grid .o-grid-container .o-grid-footer,.o-grid .o-grid-container .o-mat-paginator{flex-shrink:0}.o-grid .o-grid-container .o-loading-blocker{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container{width:100%;height:100%}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container.o-spinner-container-controls{height:calc(100% - 64px)}.o-grid.o-grid-fixed,.o-grid.o-grid-fixed .o-grid-container{max-height:100%;height:100%}.o-grid.o-grid-fixed .o-mat-grid-list{overflow:auto;padding-bottom:0!important}.o-grid.o-grid-fixed .o-grid-footer,.o-grid.o-grid-fixed .o-mat-paginator{flex:0 0 auto}.o-grid .o-grid-add-floatable-button{right:12px;position:absolute}.o-grid .o-grid-add-floatable-button.o-grid-add-bottom-floatable-button{bottom:36px}.o-grid .o-grid-add-floatable-button.o-grid-add-top-floatable-button{top:66px}\n"] }]
|
|
16828
17829
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: OFormComponent, decorators: [{
|
|
16829
17830
|
type: Optional
|
|
16830
17831
|
}, {
|
|
@@ -17445,6 +18446,9 @@ class OComboSearchComponent {
|
|
|
17445
18446
|
}
|
|
17446
18447
|
});
|
|
17447
18448
|
}
|
|
18449
|
+
resetSelectedValues() {
|
|
18450
|
+
this.previousSelectedValues = [];
|
|
18451
|
+
}
|
|
17448
18452
|
}
|
|
17449
18453
|
OComboSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OComboSearchComponent, deps: [{ token: MatSelect }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17450
18454
|
OComboSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OComboSearchComponent, selector: "o-combo-search", host: { properties: { "class.o-combo-search": "true" } }, providers: [
|
|
@@ -17597,6 +18601,9 @@ class OComboComponent extends OFormServiceComponent {
|
|
|
17597
18601
|
if (this.multiple) {
|
|
17598
18602
|
this.setValue(this.defaultValue, options, setDirty);
|
|
17599
18603
|
this.value.value = [];
|
|
18604
|
+
if (Util.isDefined(this.comboSearch)) {
|
|
18605
|
+
this.comboSearch.resetSelectedValues();
|
|
18606
|
+
}
|
|
17600
18607
|
}
|
|
17601
18608
|
else {
|
|
17602
18609
|
super.clearValue(options, setDirty);
|
|
@@ -17717,7 +18724,7 @@ OComboComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
17717
18724
|
OComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OComboComponent, selector: "o-combo", inputs: { multiple: "multiple", nullSelection: ["null-selection", "nullSelection"], multipleTriggerLabel: ["multiple-trigger-label", "multipleTriggerLabel"], searchable: "searchable", nullSelectionLabel: ["null-selection-label", "nullSelectionLabel"] }, host: { properties: { "class.o-combo": "true" } }, providers: [
|
|
17718
18725
|
OntimizeServiceProvider,
|
|
17719
18726
|
{ provide: OFormServiceComponent, useExisting: forwardRef(() => OComboComponent) }
|
|
17720
|
-
], viewQueries: [{ propertyName: "inputModel", first: true, predicate: ["inputModel"], descendants: true }, { propertyName: "selectModel", first: true, predicate: ["selectModel"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\" [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\" [matTooltipHideDelay]=\"tooltipHideDelay\" [oContextMenu]=\"oContextMenu\">\n\n <mat-form-field [appearance]=\"appearance\" [floatLabel]=\"floatLabel\" [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\"\n [hideRequiredMarker]=\"hideRequiredMarker\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <mat-select [value]=\"getValue()\" #selectModel [id]=\"getAttribute()\" fxFill [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [multiple]=\"getMultiple()\" [required]=\"isRequired\" [panelClass]=\"{ 'o-combo-panel': true, 'o-combo-panel-search': searchable }\"\n (selectionChange)=\"onSelectionChange($event)\" (closed)=\"innerOnBlur($event)\">\n <o-combo-search *ngIf=\"searchable\" [formControl]=\"searchControl\"></o-combo-search>\n\n <mat-select-trigger *ngIf=\"multiple && multipleTriggerLabel\">\n {{ selectModel.selected[0] ? getFirstSelectedValue(): '' }}\n <span *ngIf=\"!isEmpty()\">\n {{ 'INPUT.COMBO.MESSAGE_TRIGGER' | oTranslate: { values: [getFormControl().value.length -1] } }}\n </span>\n </mat-select-trigger>\n\n <mat-select-trigger *ngIf=\"!multiple && !multipleTriggerLabel\">\n <ng-container *ngFor=\"let item of filteredDataArray\">\n <ng-container *ngIf=\"renderer && item[valueColumn] == getValue()\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer && item[valueColumn] == getValue()\">\n {{ getOptionDescriptionValue(item) }}\n </ng-container>\n </ng-container>\n </mat-select-trigger>\n\n <div class=\"o-combo-options-container\">\n <mat-option *ngIf=\"hasNullSelection()\" [value]=\"null\">{{translate ?\n (nullSelectionLabel|oTranslate): nullSelectionLabel}}\n </mat-option>\n <mat-option *ngFor=\"let item of filteredDataArray\" [value]=\"getValueColumn(item)\">\n <ng-container *ngIf=\"renderer\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer\">\n {{ getOptionDescriptionValue(item) }}\n </ng-container>\n </mat-option>\n </div>\n </mat-select>\n\n <button type=\"button\" *ngIf=\"showClearButton\" matSuffix mat-icon-button (click)=\"onClickClearValue($event)\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-combo .read-only .mat-mdc-select-arrow-wrapper{visibility:hidden}.o-combo-panel.o-combo-panel-search{height:100%}.o-combo-panel.o-combo-panel-search .o-combo-options-container{height:calc(100% - 3em);overflow:auto}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "component", type: i1$4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i9$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: OContextMenuDirective, selector: "[oContextMenu]", inputs: ["oContextMenu", "oContextMenuData"] }, { kind: "component", type: OContextMenuComponent, selector: "o-context-menu", outputs: ["onShow", "onClose"] }, { kind: "component", type: OContextMenuItemComponent, selector: "o-context-menu-item", outputs: ["execute"] }, { kind: "component", type: OComboSearchComponent, selector: "o-combo-search" }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
18727
|
+
], viewQueries: [{ propertyName: "inputModel", first: true, predicate: ["inputModel"], descendants: true }, { propertyName: "selectModel", first: true, predicate: ["selectModel"], descendants: true }, { propertyName: "comboSearch", first: true, predicate: ["comboSearch"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\" [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\" [matTooltipHideDelay]=\"tooltipHideDelay\" [oContextMenu]=\"oContextMenu\">\n\n <mat-form-field [appearance]=\"appearance\" [floatLabel]=\"floatLabel\" [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\"\n [hideRequiredMarker]=\"hideRequiredMarker\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <mat-select [value]=\"getValue()\" #selectModel [id]=\"getAttribute()\" fxFill [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [multiple]=\"getMultiple()\" [required]=\"isRequired\" [panelClass]=\"{ 'o-combo-panel': true, 'o-combo-panel-search': searchable }\"\n (selectionChange)=\"onSelectionChange($event)\" (closed)=\"innerOnBlur($event)\">\n <o-combo-search #comboSearch *ngIf=\"searchable\" [formControl]=\"searchControl\"></o-combo-search>\n\n <mat-select-trigger *ngIf=\"multiple && multipleTriggerLabel\">\n {{ selectModel.selected[0] ? getFirstSelectedValue(): '' }}\n <span *ngIf=\"!isEmpty()\">\n {{ 'INPUT.COMBO.MESSAGE_TRIGGER' | oTranslate: { values: [getFormControl().value.length -1] } }}\n </span>\n </mat-select-trigger>\n\n <mat-select-trigger *ngIf=\"!multiple && !multipleTriggerLabel\">\n <ng-container *ngFor=\"let item of filteredDataArray\">\n <ng-container *ngIf=\"renderer && item[valueColumn] == getValue()\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer && item[valueColumn] == getValue()\">\n {{ getOptionDescriptionValue(item) }}\n </ng-container>\n </ng-container>\n </mat-select-trigger>\n\n <div class=\"o-combo-options-container\">\n <mat-option *ngIf=\"hasNullSelection()\" [value]=\"null\">{{translate ?\n (nullSelectionLabel|oTranslate): nullSelectionLabel}}\n </mat-option>\n <mat-option *ngFor=\"let item of filteredDataArray\" [value]=\"getValueColumn(item)\">\n <ng-container *ngIf=\"renderer\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer\">\n {{ getOptionDescriptionValue(item) }}\n </ng-container>\n </mat-option>\n </div>\n </mat-select>\n\n <button type=\"button\" *ngIf=\"showClearButton\" matSuffix mat-icon-button (click)=\"onClickClearValue($event)\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-combo .read-only .mat-mdc-select-arrow-wrapper{visibility:hidden}.o-combo-panel.o-combo-panel-search{height:100%}.o-combo-panel.o-combo-panel-search .o-combo-options-container{height:calc(100% - 3em);overflow:auto}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "component", type: i1$4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i9$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: OContextMenuDirective, selector: "[oContextMenu]", inputs: ["oContextMenu", "oContextMenuData"] }, { kind: "component", type: OContextMenuComponent, selector: "o-context-menu", outputs: ["onShow", "onClose"] }, { kind: "component", type: OContextMenuItemComponent, selector: "o-context-menu-item", outputs: ["execute"] }, { kind: "component", type: OComboSearchComponent, selector: "o-combo-search" }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
17721
18728
|
__decorate([
|
|
17722
18729
|
BooleanInputConverter(),
|
|
17723
18730
|
__metadata("design:type", Boolean)
|
|
@@ -17741,7 +18748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
17741
18748
|
{ provide: OFormServiceComponent, useExisting: forwardRef(() => OComboComponent) }
|
|
17742
18749
|
], inputs: DEFAULT_INPUTS_O_COMBO, encapsulation: ViewEncapsulation.None, host: {
|
|
17743
18750
|
'[class.o-combo]': 'true'
|
|
17744
|
-
}, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\" [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\" [matTooltipHideDelay]=\"tooltipHideDelay\" [oContextMenu]=\"oContextMenu\">\n\n <mat-form-field [appearance]=\"appearance\" [floatLabel]=\"floatLabel\" [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\"\n [hideRequiredMarker]=\"hideRequiredMarker\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <mat-select [value]=\"getValue()\" #selectModel [id]=\"getAttribute()\" fxFill [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [multiple]=\"getMultiple()\" [required]=\"isRequired\" [panelClass]=\"{ 'o-combo-panel': true, 'o-combo-panel-search': searchable }\"\n (selectionChange)=\"onSelectionChange($event)\" (closed)=\"innerOnBlur($event)\">\n <o-combo-search *ngIf=\"searchable\" [formControl]=\"searchControl\"></o-combo-search>\n\n <mat-select-trigger *ngIf=\"multiple && multipleTriggerLabel\">\n {{ selectModel.selected[0] ? getFirstSelectedValue(): '' }}\n <span *ngIf=\"!isEmpty()\">\n {{ 'INPUT.COMBO.MESSAGE_TRIGGER' | oTranslate: { values: [getFormControl().value.length -1] } }}\n </span>\n </mat-select-trigger>\n\n <mat-select-trigger *ngIf=\"!multiple && !multipleTriggerLabel\">\n <ng-container *ngFor=\"let item of filteredDataArray\">\n <ng-container *ngIf=\"renderer && item[valueColumn] == getValue()\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer && item[valueColumn] == getValue()\">\n {{ getOptionDescriptionValue(item) }}\n </ng-container>\n </ng-container>\n </mat-select-trigger>\n\n <div class=\"o-combo-options-container\">\n <mat-option *ngIf=\"hasNullSelection()\" [value]=\"null\">{{translate ?\n (nullSelectionLabel|oTranslate): nullSelectionLabel}}\n </mat-option>\n <mat-option *ngFor=\"let item of filteredDataArray\" [value]=\"getValueColumn(item)\">\n <ng-container *ngIf=\"renderer\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer\">\n {{ getOptionDescriptionValue(item) }}\n </ng-container>\n </mat-option>\n </div>\n </mat-select>\n\n <button type=\"button\" *ngIf=\"showClearButton\" matSuffix mat-icon-button (click)=\"onClickClearValue($event)\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-combo .read-only .mat-mdc-select-arrow-wrapper{visibility:hidden}.o-combo-panel.o-combo-panel-search{height:100%}.o-combo-panel.o-combo-panel-search .o-combo-options-container{height:calc(100% - 3em);overflow:auto}\n"] }]
|
|
18751
|
+
}, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\" [matTooltipPosition]=\"tooltipPosition\"\n [matTooltipShowDelay]=\"tooltipShowDelay\" [matTooltipHideDelay]=\"tooltipHideDelay\" [oContextMenu]=\"oContextMenu\">\n\n <mat-form-field [appearance]=\"appearance\" [floatLabel]=\"floatLabel\" [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\"\n [hideRequiredMarker]=\"hideRequiredMarker\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <mat-select [value]=\"getValue()\" #selectModel [id]=\"getAttribute()\" fxFill [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [multiple]=\"getMultiple()\" [required]=\"isRequired\" [panelClass]=\"{ 'o-combo-panel': true, 'o-combo-panel-search': searchable }\"\n (selectionChange)=\"onSelectionChange($event)\" (closed)=\"innerOnBlur($event)\">\n <o-combo-search #comboSearch *ngIf=\"searchable\" [formControl]=\"searchControl\"></o-combo-search>\n\n <mat-select-trigger *ngIf=\"multiple && multipleTriggerLabel\">\n {{ selectModel.selected[0] ? getFirstSelectedValue(): '' }}\n <span *ngIf=\"!isEmpty()\">\n {{ 'INPUT.COMBO.MESSAGE_TRIGGER' | oTranslate: { values: [getFormControl().value.length -1] } }}\n </span>\n </mat-select-trigger>\n\n <mat-select-trigger *ngIf=\"!multiple && !multipleTriggerLabel\">\n <ng-container *ngFor=\"let item of filteredDataArray\">\n <ng-container *ngIf=\"renderer && item[valueColumn] == getValue()\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer && item[valueColumn] == getValue()\">\n {{ getOptionDescriptionValue(item) }}\n </ng-container>\n </ng-container>\n </mat-select-trigger>\n\n <div class=\"o-combo-options-container\">\n <mat-option *ngIf=\"hasNullSelection()\" [value]=\"null\">{{translate ?\n (nullSelectionLabel|oTranslate): nullSelectionLabel}}\n </mat-option>\n <mat-option *ngFor=\"let item of filteredDataArray\" [value]=\"getValueColumn(item)\">\n <ng-container *ngIf=\"renderer\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer\">\n {{ getOptionDescriptionValue(item) }}\n </ng-container>\n </mat-option>\n </div>\n </mat-select>\n\n <button type=\"button\" *ngIf=\"showClearButton\" matSuffix mat-icon-button (click)=\"onClickClearValue($event)\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-combo .read-only .mat-mdc-select-arrow-wrapper{visibility:hidden}.o-combo-panel.o-combo-panel-search{height:100%}.o-combo-panel.o-combo-panel-search .o-combo-options-container{height:calc(100% - 3em);overflow:auto}\n"] }]
|
|
17745
18752
|
}], ctorParameters: function () { return [{ type: OFormComponent, decorators: [{
|
|
17746
18753
|
type: Optional
|
|
17747
18754
|
}, {
|
|
@@ -17753,6 +18760,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
17753
18760
|
}], selectModel: [{
|
|
17754
18761
|
type: ViewChild,
|
|
17755
18762
|
args: ['selectModel']
|
|
18763
|
+
}], comboSearch: [{
|
|
18764
|
+
type: ViewChild,
|
|
18765
|
+
args: ['comboSearch', { static: false }]
|
|
17756
18766
|
}] } });
|
|
17757
18767
|
|
|
17758
18768
|
const DEFAULT_INPUTS_O_COMBO_RENDERER = [];
|
|
@@ -18736,59 +19746,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
18736
19746
|
}]
|
|
18737
19747
|
}] });
|
|
18738
19748
|
|
|
18739
|
-
class CurrencyUtil {
|
|
18740
|
-
static getCurrencyCode(language) {
|
|
18741
|
-
const code = this.languageToCurrencyCode[language];
|
|
18742
|
-
if (code) {
|
|
18743
|
-
return code;
|
|
18744
|
-
}
|
|
18745
|
-
else {
|
|
18746
|
-
return 'EUR';
|
|
18747
|
-
}
|
|
18748
|
-
}
|
|
18749
|
-
static getCurrencyCodeFromSymbol(symbol) {
|
|
18750
|
-
const currencyCode = Object.keys(this.currencyCodeToSymbol).find(code => this.currencyCodeToSymbol[code] === symbol);
|
|
18751
|
-
return currencyCode;
|
|
18752
|
-
}
|
|
18753
|
-
}
|
|
18754
|
-
CurrencyUtil.languageToCurrencyCode = {
|
|
18755
|
-
'es': 'EUR',
|
|
18756
|
-
'en': 'USD',
|
|
18757
|
-
'pt': 'BRL',
|
|
18758
|
-
'fr': 'EUR',
|
|
18759
|
-
'de': 'EUR',
|
|
18760
|
-
'it': 'EUR',
|
|
18761
|
-
'ja': 'JPY',
|
|
18762
|
-
'zh': 'CNY',
|
|
18763
|
-
'ru': 'RUB',
|
|
18764
|
-
'ar': 'AED',
|
|
18765
|
-
'cr': 'CRC',
|
|
18766
|
-
'ng': 'NGN',
|
|
18767
|
-
'ph': 'PHP',
|
|
18768
|
-
'pl': 'PLN',
|
|
18769
|
-
'py': 'PYG',
|
|
18770
|
-
'th': 'THB',
|
|
18771
|
-
'ua': 'UAH',
|
|
18772
|
-
'vn': 'VND',
|
|
18773
|
-
};
|
|
18774
|
-
CurrencyUtil.currencyCodeToSymbol = {
|
|
18775
|
-
EUR: '€',
|
|
18776
|
-
USD: '$',
|
|
18777
|
-
BRL: 'R$',
|
|
18778
|
-
JPY: '¥',
|
|
18779
|
-
CNY: '¥',
|
|
18780
|
-
RUB: '₽',
|
|
18781
|
-
AED: 'د.إ',
|
|
18782
|
-
CRC: '₡',
|
|
18783
|
-
NGN: '₦',
|
|
18784
|
-
PHP: '₱',
|
|
18785
|
-
PLN: 'zł',
|
|
18786
|
-
PYG: '₲',
|
|
18787
|
-
THB: '฿',
|
|
18788
|
-
UAH: '₴',
|
|
18789
|
-
VND: '₫',
|
|
18790
|
-
};
|
|
18791
|
-
|
|
18792
19749
|
const DEFAULT_INPUTS_O_CURRENCY_INPUT = [
|
|
18793
19750
|
'currencySymbol: currency-symbol',
|
|
18794
19751
|
'currencySymbolPosition: currency-symbol-position'
|
|
@@ -18975,6 +19932,10 @@ class ODateInputComponent extends OTextInputComponent {
|
|
|
18975
19932
|
this.datepicker.open();
|
|
18976
19933
|
}
|
|
18977
19934
|
}
|
|
19935
|
+
clearValue(options, setDirty = false) {
|
|
19936
|
+
super.clearValue(options, setDirty);
|
|
19937
|
+
this.dateValue = void 0;
|
|
19938
|
+
}
|
|
18978
19939
|
onChangeEvent(event) {
|
|
18979
19940
|
const isValid = event.value && event.value.isValid && event.value.isValid();
|
|
18980
19941
|
let val = isValid ? event.value.valueOf() : event.value;
|
|
@@ -24760,13 +25721,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
24760
25721
|
|
|
24761
25722
|
const DEFAULT_INPUTS_O_RADIO = [
|
|
24762
25723
|
'layout',
|
|
24763
|
-
'labelPosition: label-position'
|
|
25724
|
+
'labelPosition: label-position',
|
|
25725
|
+
'labelGap: label-gap'
|
|
24764
25726
|
];
|
|
24765
25727
|
class ORadioComponent extends OFormServiceComponent {
|
|
24766
25728
|
constructor(form, elRef, injector) {
|
|
24767
25729
|
super(form, elRef, injector);
|
|
24768
25730
|
this.layout = 'column';
|
|
24769
25731
|
this.labelPosition = 'after';
|
|
25732
|
+
this.labelGap = '8px';
|
|
24770
25733
|
}
|
|
24771
25734
|
ngAfterViewInit() {
|
|
24772
25735
|
super.ngAfterViewInit();
|
|
@@ -24803,16 +25766,16 @@ class ORadioComponent extends OFormServiceComponent {
|
|
|
24803
25766
|
}
|
|
24804
25767
|
}
|
|
24805
25768
|
ORadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ORadioComponent, deps: [{ token: forwardRef(() => OFormComponent), optional: true }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
24806
|
-
ORadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ORadioComponent, selector: "o-radio", inputs: { layout: "layout", labelPosition: ["label-position", "labelPosition"] }, host: { properties: { "class.o-radio": "true" } }, providers: [
|
|
25769
|
+
ORadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ORadioComponent, selector: "o-radio", inputs: { layout: "layout", labelPosition: ["label-position", "labelPosition"], labelGap: ["label-gap", "labelGap"] }, host: { properties: { "class.o-radio": "true" } }, providers: [
|
|
24807
25770
|
OntimizeServiceProvider
|
|
24808
|
-
], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [floatLabel]=\"floatLabel\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" fxLayoutGap=\"
|
|
25771
|
+
], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [floatLabel]=\"floatLabel\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button *ngFor=\"let item of dataArray\" [value]=\"getValueColumn(item)\" [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "directive", type: i7$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7$5.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i7$5.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: OContextMenuDirective, selector: "[oContextMenu]", inputs: ["oContextMenu", "oContextMenuData"] }, { kind: "component", type: OContextMenuComponent, selector: "o-context-menu", outputs: ["onShow", "onClose"] }, { kind: "component", type: OContextMenuItemComponent, selector: "o-context-menu-item", outputs: ["execute"] }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
24809
25772
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ORadioComponent, decorators: [{
|
|
24810
25773
|
type: Component,
|
|
24811
25774
|
args: [{ selector: 'o-radio', inputs: DEFAULT_INPUTS_O_RADIO, providers: [
|
|
24812
25775
|
OntimizeServiceProvider
|
|
24813
25776
|
], encapsulation: ViewEncapsulation.None, host: {
|
|
24814
25777
|
'[class.o-radio]': 'true'
|
|
24815
|
-
}, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [floatLabel]=\"floatLabel\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" fxLayoutGap=\"
|
|
25778
|
+
}, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [floatLabel]=\"floatLabel\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button *ngFor=\"let item of dataArray\" [value]=\"getValueColumn(item)\" [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"] }]
|
|
24816
25779
|
}], ctorParameters: function () { return [{ type: OFormComponent, decorators: [{
|
|
24817
25780
|
type: Optional
|
|
24818
25781
|
}, {
|
|
@@ -25293,60 +26256,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
25293
26256
|
}]
|
|
25294
26257
|
}] });
|
|
25295
26258
|
|
|
25296
|
-
class OListComponentStateClass extends DefaultServiceComponentStateClass {
|
|
25297
|
-
get sortColumns() {
|
|
25298
|
-
return this['sort-columns'];
|
|
25299
|
-
}
|
|
25300
|
-
set sortColumns(value) {
|
|
25301
|
-
this['sort-columns'] = value;
|
|
25302
|
-
}
|
|
25303
|
-
}
|
|
25304
|
-
|
|
25305
|
-
class OListComponentStateService extends AbstractComponentStateService {
|
|
25306
|
-
initialize(component) {
|
|
25307
|
-
this.state = new OListComponentStateClass();
|
|
25308
|
-
super.initialize(component);
|
|
25309
|
-
}
|
|
25310
|
-
initializeState(state) {
|
|
25311
|
-
super.initializeState(state);
|
|
25312
|
-
}
|
|
25313
|
-
getDataToStore() {
|
|
25314
|
-
let dataToStore = Object.assign({}, this.state);
|
|
25315
|
-
dataToStore['query-rows'] = this.component.queryRows;
|
|
25316
|
-
if (!this.component.storePaginationState) {
|
|
25317
|
-
delete dataToStore['queryRecordOffset'];
|
|
25318
|
-
}
|
|
25319
|
-
if (this.component.quickFilter && Util.isDefined(this.component.quickFilterComponent)) {
|
|
25320
|
-
dataToStore['quickFilterActiveColumns'] = this.component.quickFilterComponent.getActiveColumns().join(Codes.ARRAY_INPUT_SEPARATOR);
|
|
25321
|
-
}
|
|
25322
|
-
dataToStore['filter-case-sensitive'] = this.component.isFilterCaseSensitive();
|
|
25323
|
-
dataToStore.selection = this.state.selection;
|
|
25324
|
-
return dataToStore;
|
|
25325
|
-
}
|
|
25326
|
-
refreshSelection() {
|
|
25327
|
-
this.state.selection = this.getSelectionState();
|
|
25328
|
-
}
|
|
25329
|
-
getSelectionState() {
|
|
25330
|
-
const selection = [];
|
|
25331
|
-
if (this.component) {
|
|
25332
|
-
const keys = this.component.getKeys();
|
|
25333
|
-
this.component.getSelectedItems().forEach(item => {
|
|
25334
|
-
const data = {};
|
|
25335
|
-
keys.forEach(key => {
|
|
25336
|
-
data[key] = item[key];
|
|
25337
|
-
});
|
|
25338
|
-
selection.push(data);
|
|
25339
|
-
});
|
|
25340
|
-
}
|
|
25341
|
-
return selection;
|
|
25342
|
-
}
|
|
25343
|
-
}
|
|
25344
|
-
OListComponentStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListComponentStateService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
25345
|
-
OListComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListComponentStateService });
|
|
25346
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListComponentStateService, decorators: [{
|
|
25347
|
-
type: Injectable
|
|
25348
|
-
}] });
|
|
25349
|
-
|
|
25350
26259
|
class OListSkeletonComponent extends OSkeletonComponent {
|
|
25351
26260
|
constructor(elRef, injector) {
|
|
25352
26261
|
super(injector);
|
|
@@ -25409,7 +26318,9 @@ class OListComponent extends AbstractOServiceComponent {
|
|
|
25409
26318
|
}
|
|
25410
26319
|
ngOnInit() {
|
|
25411
26320
|
this.initialize();
|
|
25412
|
-
this.
|
|
26321
|
+
this.permissions = this.permissionsService.getListPermissions(this.oattr, this.actRoute);
|
|
26322
|
+
this.actionsPermissions = this.getActionsPermissions(this.permissions);
|
|
26323
|
+
this.setButtonPermissions(this.actionsPermissions);
|
|
25413
26324
|
}
|
|
25414
26325
|
ngAfterViewInit() {
|
|
25415
26326
|
super.afterViewInit();
|
|
@@ -25421,6 +26332,7 @@ class OListComponent extends AbstractOServiceComponent {
|
|
|
25421
26332
|
if (this.queryOnInit) {
|
|
25422
26333
|
this.queryData();
|
|
25423
26334
|
}
|
|
26335
|
+
this.manageCustomPermissions(this.actionsPermissions, '[o-list-toolbar]');
|
|
25424
26336
|
}
|
|
25425
26337
|
ngAfterContentInit() {
|
|
25426
26338
|
this.setListItemDirectivesData();
|
|
@@ -25444,6 +26356,7 @@ class OListComponent extends AbstractOServiceComponent {
|
|
|
25444
26356
|
if (!Util.isDefined(this.state.totalQueryRecordsNumber)) {
|
|
25445
26357
|
this.state.totalQueryRecordsNumber = 0;
|
|
25446
26358
|
}
|
|
26359
|
+
this.permissions = this.permissionsService.getListPermissions(this.oattr, this.actRoute);
|
|
25447
26360
|
}
|
|
25448
26361
|
reinitialize(options) {
|
|
25449
26362
|
super.reinitialize(options);
|
|
@@ -25603,7 +26516,7 @@ OListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
25603
26516
|
OntimizeServiceProvider,
|
|
25604
26517
|
ComponentStateServiceProvider,
|
|
25605
26518
|
{ provide: O_COMPONENT_STATE_SERVICE, useClass: OListComponentStateService },
|
|
25606
|
-
], queries: [{ propertyName: "listItemDirectives", predicate: OListItemDirective }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-list-container\" [style.display]=\"isVisible()? '' : 'none'\" fxFill>\n <div *ngIf=\"loading | async\" fxLayoutAlign=\"center center\" [class.pageable-loading]=\"pageable && state.queryRecordOffset > 0\"\n class=\"spinner-container\">\n <o-list-skeleton></o-list-skeleton>\n </div>\n <o-data-toolbar *ngIf=\"hasControls()\" [title]=\"title\" [show-title]=\"hasTitle()\" class=\"o-list-toolbar\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <button *ngIf=\"insertButton && !insertButtonFloatable\" class=\"o-list-button text\" type=\"button\" mat-stroked-button aria-label=\"Insert\"\n (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <button type=\"button\" mat-stroked-button class=\"o-list-button text\" aria-label=\"Refresh\" (click)=\"reloadData()\" *ngIf=\"refreshButton\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" class=\"o-list-button text\" mat-stroked-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\" (click)=\"remove()\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n <span>{{ 'DELETE' | oTranslate }}</span>\n </button>\n </ng-container>\n <ng-template #showButtonsWithoutText>\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" class=\"o-list-button no-text\" mat-icon-button aria-label=\"Insert\"\n (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" class=\"o-list-button no-text\" (click)=\"reloadData()\" *ngIf=\"refreshButton\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" class=\"o-list-button no-text\" mat-icon-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\" (click)=\"remove()\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n </button>\n </ng-template>\n </ng-container>\n <ng-content select=\"[o-list-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-list-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-list-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [filter-case-sensitive]=\"filterCaseSensitive\" [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\"\n [columns]=\"quickFilterColumns\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\" float-label=\"never\">\n </o-search-input>\n </ng-container>\n </o-data-toolbar>\n <ng-container *ngIf=\"(loading | async) === false\">\n <div fxLayout=\"column\" class=\"o-list-content\" fxFlex=\"1 1 100%\" >\n <!--MAT-LIST-->\n <mat-list (scroll)=\"onScroll($event)\" [class.selectable]=\"selectable\"\n [class.o-list-item-has-buttons]=\"insertButton && (editButtonInRow || detailButtonInRow)\">\n\n <mat-list-item *ngIf=\"!getDataArray().length\" fxLayout=\"row\" fxLayoutAlign=\"center center\" style=\"cursor: default;\">\n <h3 matListItemTitle fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ 'TABLE.EMPTY' | oTranslate }}\n <ng-container *ngIf=\"getQuickFilterValue().length > 0\">\n {{ 'TABLE.EMPTY_USING_FILTER' | oTranslate : {values: [getQuickFilterValue()]} }}\n </ng-container>\n </h3>\n </mat-list-item>\n <ng-content></ng-content>\n </mat-list>\n </div>\n <mat-paginator fxFlex=\"0 1 auto\" class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"></mat-paginator>\n\n <!--INSERT BUTTON -->\n <button type=\"button\" *ngIf=\"insertButton && insertButtonFloatable\" mat-fab (click)=\"add($event)\" class=\"add-button add-button-bottom\"\n [class.add-button-bottom]=\"insertButtonPosition ==='bottom'\" [class.add-button-top]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n</ng-container>\n</div>\n", styles: ["::-webkit-input-placeholder{color:#8e0c39}:-moz-placeholder{color:#8e0c39;opacity:1}::-moz-placeholder{color:#8e0c39;opacity:1}:-ms-input-placeholder{color:#8e0c39}:placeholder-shown{color:#8e0c39}.o-list-container{position:relative;flex-direction:column}.o-list-container .spinner-container{position:absolute;top:0;bottom:0;left:0;right:0;z-index:500}.o-list-container .spinner-container:not(.pageable-loading){top:0}.o-list-container .spinner-container path{stroke-width:5px!important}.o-list-container .mat-mdc-list{overflow:auto}.o-list-container .mat-mdc-list .mdc-list-item--with-three-lines .o-custom-list-item{position:relative}.o-list-container .mat-mdc-list .o-custom-list-item{max-width:100%;width:100%}.o-list-container .mat-mdc-list .o-custom-list-item .o-list-item-icon{cursor:pointer;padding-right:6px}.o-list-container .mat-mdc-list.o-list-item-has-buttons .o-list-item .mat-mdc-list-item{padding-right:72px}.o-list-container .mat-mdc-list .o-list-item.mat-mdc-card{margin:6px 0;padding-bottom:16px}.o-list-container .mat-mdc-list .o-list-item .mat-mdc-list-item .mat-mdc-list-item-unscoped-content{display:flex;align-items:center}.o-list-container .add-button{right:12px;position:absolute}.o-list-container .add-button.add-button-bottom{bottom:12px}.o-list-container .add-button.add-button-top{top:88px}.o-list-container .o-mat-paginator~.add-button.add-button-bottom{bottom:68px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5$1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: ODataToolbarComponent, selector: "o-data-toolbar", inputs: ["show-title", "title"] }, { kind: "component", type: OListSkeletonComponent, selector: "o-list-skeleton" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
26519
|
+
], queries: [{ propertyName: "listItemDirectives", predicate: OListItemDirective }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-list-container\" [style.display]=\"isVisible()? '' : 'none'\" fxFill>\n <div *ngIf=\"loading | async\" fxLayoutAlign=\"center center\" [class.pageable-loading]=\"pageable && state.queryRecordOffset > 0\"\n class=\"spinner-container\">\n <o-list-skeleton></o-list-skeleton>\n </div>\n <o-data-toolbar *ngIf=\"hasControls()\" [title]=\"title\" [show-title]=\"hasTitle()\" class=\"o-list-toolbar\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <button *ngIf=\"insertButton && !insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" class=\"o-list-button text\" type=\"button\" mat-stroked-button aria-label=\"Insert\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <button type=\"button\" mat-stroked-button class=\"o-list-button text\" [disabled]=\"!enabledRefreshButton\" aria-label=\"Refresh\" (click)=\"reloadData()\" *ngIf=\"refreshButton\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" class=\"o-list-button text\" mat-stroked-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\" (click)=\"remove()\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n <span>{{ 'DELETE' | oTranslate }}</span>\n </button>\n </ng-container>\n <ng-template #showButtonsWithoutText>\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" [disabled]=\"!enabledInsertButton\" class=\"o-list-button no-text\" mat-icon-button aria-label=\"Insert\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" class=\"o-list-button no-text\" (click)=\"reloadData()\" *ngIf=\"refreshButton\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" class=\"o-list-button no-text\" mat-icon-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\" (click)=\"remove()\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n </button>\n </ng-template>\n </ng-container>\n <ng-content select=\"[o-list-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-list-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-list-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [filter-case-sensitive]=\"filterCaseSensitive\" [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\"\n [columns]=\"quickFilterColumns\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\" float-label=\"never\">\n </o-search-input>\n </ng-container>\n </o-data-toolbar>\n <ng-container *ngIf=\"(loading | async) === false\">\n <div fxLayout=\"column\" class=\"o-list-content\" fxFlex=\"1 1 100%\" >\n <!--MAT-LIST-->\n <mat-list (scroll)=\"onScroll($event)\" [class.selectable]=\"selectable\"\n [class.o-list-item-has-buttons]=\"insertButton && (editButtonInRow || detailButtonInRow)\">\n\n <mat-list-item *ngIf=\"!getDataArray().length\" fxLayout=\"row\" fxLayoutAlign=\"center center\" style=\"cursor: default;\">\n <h3 matListItemTitle fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ 'TABLE.EMPTY' | oTranslate }}\n <ng-container *ngIf=\"getQuickFilterValue().length > 0\">\n {{ 'TABLE.EMPTY_USING_FILTER' | oTranslate : {values: [getQuickFilterValue()]} }}\n </ng-container>\n </h3>\n </mat-list-item>\n <ng-content></ng-content>\n </mat-list>\n </div>\n <mat-paginator fxFlex=\"0 1 auto\" class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"></mat-paginator>\n\n <!--INSERT BUTTON -->\n <button type=\"button\" *ngIf=\"insertButton && insertButtonFloatable\" mat-fab (click)=\"add($event)\" class=\"add-button add-button-bottom\"\n [class.add-button-bottom]=\"insertButtonPosition ==='bottom'\" [class.add-button-top]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n</ng-container>\n</div>\n", styles: ["::-webkit-input-placeholder{color:#8e0c39}:-moz-placeholder{color:#8e0c39;opacity:1}::-moz-placeholder{color:#8e0c39;opacity:1}:-ms-input-placeholder{color:#8e0c39}:placeholder-shown{color:#8e0c39}.o-list-container{position:relative;flex-direction:column}.o-list-container .spinner-container{position:absolute;top:0;bottom:0;left:0;right:0;z-index:500}.o-list-container .spinner-container:not(.pageable-loading){top:0}.o-list-container .spinner-container path{stroke-width:5px!important}.o-list-container .mat-mdc-list{overflow:auto}.o-list-container .mat-mdc-list .mdc-list-item--with-three-lines .o-custom-list-item{position:relative}.o-list-container .mat-mdc-list .o-custom-list-item{max-width:100%;width:100%}.o-list-container .mat-mdc-list .o-custom-list-item .o-list-item-icon{cursor:pointer;padding-right:6px}.o-list-container .mat-mdc-list.o-list-item-has-buttons .o-list-item .mat-mdc-list-item{padding-right:72px}.o-list-container .mat-mdc-list .o-list-item.mat-mdc-card{margin:6px 0;padding-bottom:16px}.o-list-container .mat-mdc-list .o-list-item .mat-mdc-list-item .mat-mdc-list-item-unscoped-content{display:flex;align-items:center}.o-list-container .add-button{right:12px;position:absolute}.o-list-container .add-button.add-button-bottom{bottom:12px}.o-list-container .add-button.add-button-top{top:88px}.o-list-container .o-mat-paginator~.add-button.add-button-bottom{bottom:68px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5$1.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: ODataToolbarComponent, selector: "o-data-toolbar", inputs: ["show-title", "title"] }, { kind: "component", type: OListSkeletonComponent, selector: "o-list-skeleton" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
25607
26520
|
__decorate([
|
|
25608
26521
|
BooleanInputConverter(),
|
|
25609
26522
|
__metadata("design:type", Boolean)
|
|
@@ -25632,7 +26545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
25632
26545
|
{ provide: O_COMPONENT_STATE_SERVICE, useClass: OListComponentStateService },
|
|
25633
26546
|
], inputs: DEFAULT_INPUTS_O_LIST, outputs: DEFAULT_OUTPUTS_O_LIST, encapsulation: ViewEncapsulation.None, host: {
|
|
25634
26547
|
'[class.o-list]': 'true'
|
|
25635
|
-
}, template: "<div class=\"o-list-container\" [style.display]=\"isVisible()? '' : 'none'\" fxFill>\n <div *ngIf=\"loading | async\" fxLayoutAlign=\"center center\" [class.pageable-loading]=\"pageable && state.queryRecordOffset > 0\"\n class=\"spinner-container\">\n <o-list-skeleton></o-list-skeleton>\n </div>\n <o-data-toolbar *ngIf=\"hasControls()\" [title]=\"title\" [show-title]=\"hasTitle()\" class=\"o-list-toolbar\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <button *ngIf=\"insertButton && !insertButtonFloatable\" class=\"o-list-button text\" type=\"button\" mat-stroked-button aria-label=\"Insert\"
|
|
26548
|
+
}, template: "<div class=\"o-list-container\" [style.display]=\"isVisible()? '' : 'none'\" fxFill>\n <div *ngIf=\"loading | async\" fxLayoutAlign=\"center center\" [class.pageable-loading]=\"pageable && state.queryRecordOffset > 0\"\n class=\"spinner-container\">\n <o-list-skeleton></o-list-skeleton>\n </div>\n <o-data-toolbar *ngIf=\"hasControls()\" [title]=\"title\" [show-title]=\"hasTitle()\" class=\"o-list-toolbar\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <button *ngIf=\"insertButton && !insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" class=\"o-list-button text\" type=\"button\" mat-stroked-button aria-label=\"Insert\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <button type=\"button\" mat-stroked-button class=\"o-list-button text\" [disabled]=\"!enabledRefreshButton\" aria-label=\"Refresh\" (click)=\"reloadData()\" *ngIf=\"refreshButton\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" class=\"o-list-button text\" mat-stroked-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\" (click)=\"remove()\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n <span>{{ 'DELETE' | oTranslate }}</span>\n </button>\n </ng-container>\n <ng-template #showButtonsWithoutText>\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" [disabled]=\"!enabledInsertButton\" class=\"o-list-button no-text\" mat-icon-button aria-label=\"Insert\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" class=\"o-list-button no-text\" (click)=\"reloadData()\" *ngIf=\"refreshButton\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" class=\"o-list-button no-text\" mat-icon-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\" (click)=\"remove()\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n </button>\n </ng-template>\n </ng-container>\n <ng-content select=\"[o-list-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-list-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-list-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [filter-case-sensitive]=\"filterCaseSensitive\" [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\"\n [columns]=\"quickFilterColumns\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\" float-label=\"never\">\n </o-search-input>\n </ng-container>\n </o-data-toolbar>\n <ng-container *ngIf=\"(loading | async) === false\">\n <div fxLayout=\"column\" class=\"o-list-content\" fxFlex=\"1 1 100%\" >\n <!--MAT-LIST-->\n <mat-list (scroll)=\"onScroll($event)\" [class.selectable]=\"selectable\"\n [class.o-list-item-has-buttons]=\"insertButton && (editButtonInRow || detailButtonInRow)\">\n\n <mat-list-item *ngIf=\"!getDataArray().length\" fxLayout=\"row\" fxLayoutAlign=\"center center\" style=\"cursor: default;\">\n <h3 matListItemTitle fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ 'TABLE.EMPTY' | oTranslate }}\n <ng-container *ngIf=\"getQuickFilterValue().length > 0\">\n {{ 'TABLE.EMPTY_USING_FILTER' | oTranslate : {values: [getQuickFilterValue()]} }}\n </ng-container>\n </h3>\n </mat-list-item>\n <ng-content></ng-content>\n </mat-list>\n </div>\n <mat-paginator fxFlex=\"0 1 auto\" class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"></mat-paginator>\n\n <!--INSERT BUTTON -->\n <button type=\"button\" *ngIf=\"insertButton && insertButtonFloatable\" mat-fab (click)=\"add($event)\" class=\"add-button add-button-bottom\"\n [class.add-button-bottom]=\"insertButtonPosition ==='bottom'\" [class.add-button-top]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n</ng-container>\n</div>\n", styles: ["::-webkit-input-placeholder{color:#8e0c39}:-moz-placeholder{color:#8e0c39;opacity:1}::-moz-placeholder{color:#8e0c39;opacity:1}:-ms-input-placeholder{color:#8e0c39}:placeholder-shown{color:#8e0c39}.o-list-container{position:relative;flex-direction:column}.o-list-container .spinner-container{position:absolute;top:0;bottom:0;left:0;right:0;z-index:500}.o-list-container .spinner-container:not(.pageable-loading){top:0}.o-list-container .spinner-container path{stroke-width:5px!important}.o-list-container .mat-mdc-list{overflow:auto}.o-list-container .mat-mdc-list .mdc-list-item--with-three-lines .o-custom-list-item{position:relative}.o-list-container .mat-mdc-list .o-custom-list-item{max-width:100%;width:100%}.o-list-container .mat-mdc-list .o-custom-list-item .o-list-item-icon{cursor:pointer;padding-right:6px}.o-list-container .mat-mdc-list.o-list-item-has-buttons .o-list-item .mat-mdc-list-item{padding-right:72px}.o-list-container .mat-mdc-list .o-list-item.mat-mdc-card{margin:6px 0;padding-bottom:16px}.o-list-container .mat-mdc-list .o-list-item .mat-mdc-list-item .mat-mdc-list-item-unscoped-content{display:flex;align-items:center}.o-list-container .add-button{right:12px;position:absolute}.o-list-container .add-button.add-button-bottom{bottom:12px}.o-list-container .add-button.add-button-top{top:88px}.o-list-container .o-mat-paginator~.add-button.add-button-bottom{bottom:68px}\n"] }]
|
|
25636
26549
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: OFormComponent, decorators: [{
|
|
25637
26550
|
type: Optional
|
|
25638
26551
|
}, {
|
|
@@ -25750,6 +26663,8 @@ class OListItemTextRenderer {
|
|
|
25750
26663
|
if (this.secondaryText === undefined) {
|
|
25751
26664
|
linesNo--;
|
|
25752
26665
|
}
|
|
26666
|
+
this._listItem._innerListItem._lines = this.lines;
|
|
26667
|
+
this._listItem._innerListItem._titles = this.titles;
|
|
25753
26668
|
this._listItem._innerListItem.lines = linesNo;
|
|
25754
26669
|
listItem.querySelector('.mat-mdc-list-item').remove();
|
|
25755
26670
|
}
|
|
@@ -25786,14 +26701,20 @@ class OListItemTextRenderer {
|
|
|
25786
26701
|
}
|
|
25787
26702
|
}
|
|
25788
26703
|
OListItemTextRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListItemTextRenderer, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: OListItemComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
25789
|
-
OListItemTextRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: OListItemTextRenderer, inputs: { title: "title", primaryText: ["primary-text", "primaryText"], secondaryText: ["secondary-text", "secondaryText"], icon: "icon" }, outputs: { onIconClick: "icon-action" }, ngImport: i0 });
|
|
26704
|
+
OListItemTextRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: OListItemTextRenderer, inputs: { title: "title", primaryText: ["primary-text", "primaryText"], secondaryText: ["secondary-text", "secondaryText"], icon: "icon" }, outputs: { onIconClick: "icon-action" }, viewQueries: [{ propertyName: "titles", predicate: MatListItemTitle, descendants: true }, { propertyName: "lines", predicate: MatListItemLine, descendants: true }], ngImport: i0 });
|
|
25790
26705
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListItemTextRenderer, decorators: [{
|
|
25791
26706
|
type: Directive,
|
|
25792
26707
|
args: [{
|
|
25793
26708
|
inputs: DEFAULT_INPUTS_O_TEXT_RENDERER,
|
|
25794
26709
|
outputs: DEFAULT_OUTPUTS_O_TEXT_RENDERER
|
|
25795
26710
|
}]
|
|
25796
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: OListItemComponent }]; }
|
|
26711
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: OListItemComponent }]; }, propDecorators: { titles: [{
|
|
26712
|
+
type: ViewChildren,
|
|
26713
|
+
args: [MatListItemTitle]
|
|
26714
|
+
}], lines: [{
|
|
26715
|
+
type: ViewChildren,
|
|
26716
|
+
args: [MatListItemLine]
|
|
26717
|
+
}] } });
|
|
25797
26718
|
|
|
25798
26719
|
const DEFAULT_INPUTS_O_LIST_ITEM_AVATAR = [
|
|
25799
26720
|
'avatar',
|
|
@@ -26115,405 +27036,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
26115
27036
|
}]
|
|
26116
27037
|
}] });
|
|
26117
27038
|
|
|
26118
|
-
class OTableComponentStateClass extends DefaultServiceComponentStateClass {
|
|
26119
|
-
constructor() {
|
|
26120
|
-
super(...arguments);
|
|
26121
|
-
this['grouped-column-types'] = [];
|
|
26122
|
-
}
|
|
26123
|
-
get filterBuilderValues() {
|
|
26124
|
-
return this['filter-builder-values'];
|
|
26125
|
-
}
|
|
26126
|
-
set filterBuilderValues(value) {
|
|
26127
|
-
this['filter-builder-values'] = value;
|
|
26128
|
-
}
|
|
26129
|
-
get selectColumnVisible() {
|
|
26130
|
-
return this['select-column-visible'];
|
|
26131
|
-
}
|
|
26132
|
-
set selectColumnVisible(value) {
|
|
26133
|
-
this['select-column-visible'] = value;
|
|
26134
|
-
}
|
|
26135
|
-
get quickFilterValue() {
|
|
26136
|
-
return this['filter'];
|
|
26137
|
-
}
|
|
26138
|
-
set quickFilterValue(value) {
|
|
26139
|
-
this['filter'] = value;
|
|
26140
|
-
}
|
|
26141
|
-
get columnsDisplay() {
|
|
26142
|
-
return this['oColumns-display'];
|
|
26143
|
-
}
|
|
26144
|
-
set columnsDisplay(value) {
|
|
26145
|
-
this['oColumns-display'] = value;
|
|
26146
|
-
}
|
|
26147
|
-
getColumnDisplay(oCol) {
|
|
26148
|
-
return (this.columnsDisplay || []).find(col => col.attr === oCol.attr);
|
|
26149
|
-
}
|
|
26150
|
-
get initialConfiguration() {
|
|
26151
|
-
return this['initial-configuration'];
|
|
26152
|
-
}
|
|
26153
|
-
set initialConfiguration(value) {
|
|
26154
|
-
this['initial-configuration'] = value;
|
|
26155
|
-
}
|
|
26156
|
-
get sortColumns() {
|
|
26157
|
-
return this['sort-columns'];
|
|
26158
|
-
}
|
|
26159
|
-
set sortColumns(value) {
|
|
26160
|
-
this['sort-columns'] = value;
|
|
26161
|
-
}
|
|
26162
|
-
get groupedColumnTypes() {
|
|
26163
|
-
return this['grouped-column-types'];
|
|
26164
|
-
}
|
|
26165
|
-
set groupedColumnTypes(value) {
|
|
26166
|
-
this['grouped-column-types'] = value;
|
|
26167
|
-
}
|
|
26168
|
-
get filterColumns() {
|
|
26169
|
-
return this['filter-columns'];
|
|
26170
|
-
}
|
|
26171
|
-
set filterColumns(value) {
|
|
26172
|
-
this['filter-columns'] = value;
|
|
26173
|
-
}
|
|
26174
|
-
get filterColumnActiveByDefault() {
|
|
26175
|
-
return this['filter-column-active-by-default'];
|
|
26176
|
-
}
|
|
26177
|
-
get groupedColumns() {
|
|
26178
|
-
return this['grouped-columns'];
|
|
26179
|
-
}
|
|
26180
|
-
set groupedColumns(value) {
|
|
26181
|
-
this['grouped-columns'] = value;
|
|
26182
|
-
}
|
|
26183
|
-
get columnValueFilters() {
|
|
26184
|
-
return this['column-value-filters'] || [];
|
|
26185
|
-
}
|
|
26186
|
-
set columnValueFilters(value) {
|
|
26187
|
-
this['column-value-filters'] = value;
|
|
26188
|
-
}
|
|
26189
|
-
get storedFilters() {
|
|
26190
|
-
return this['user-stored-filters'] || [];
|
|
26191
|
-
}
|
|
26192
|
-
addStoredFilter(filter) {
|
|
26193
|
-
if (!Util.isDefined(this['user-stored-filters'])) {
|
|
26194
|
-
this['user-stored-filters'] = [];
|
|
26195
|
-
}
|
|
26196
|
-
this.storedFilters.push(filter);
|
|
26197
|
-
}
|
|
26198
|
-
deleteStoredFilter(filterName) {
|
|
26199
|
-
const index = this.storedFilters.findIndex((item) => item.name === filterName);
|
|
26200
|
-
if (index >= 0) {
|
|
26201
|
-
this.storedFilters.splice(index, 1);
|
|
26202
|
-
}
|
|
26203
|
-
}
|
|
26204
|
-
getStoredFilter(filterName) {
|
|
26205
|
-
let result;
|
|
26206
|
-
const filter = this.storedFilters.find((item) => item.name === filterName);
|
|
26207
|
-
if (filter) {
|
|
26208
|
-
result = filter['stored-filter'];
|
|
26209
|
-
}
|
|
26210
|
-
return result;
|
|
26211
|
-
}
|
|
26212
|
-
applyFilter(filterName) {
|
|
26213
|
-
const filter = this.getStoredFilter(filterName);
|
|
26214
|
-
if (filter) {
|
|
26215
|
-
this.columnValueFilters = filter['column-value-filters'];
|
|
26216
|
-
this.quickFilterValue = filter['filter'];
|
|
26217
|
-
this.filterCaseSensitive = filter['filter-case-sensitive'];
|
|
26218
|
-
this.filterBuilderValues = filter['filter-builder-values'];
|
|
26219
|
-
this.oColumns = filter['oColumns'];
|
|
26220
|
-
}
|
|
26221
|
-
}
|
|
26222
|
-
get storedConfigurations() {
|
|
26223
|
-
return this['user-stored-configurations'] || [];
|
|
26224
|
-
}
|
|
26225
|
-
addStoredConfiguration(configuration) {
|
|
26226
|
-
if (!Util.isDefined(this['user-stored-configurations'])) {
|
|
26227
|
-
this['user-stored-configurations'] = [];
|
|
26228
|
-
}
|
|
26229
|
-
this.storedConfigurations.push(configuration);
|
|
26230
|
-
}
|
|
26231
|
-
deleteStoredConfiguration(configurationName) {
|
|
26232
|
-
const index = this.storedConfigurations.findIndex((item) => item.name === configurationName);
|
|
26233
|
-
if (index >= 0) {
|
|
26234
|
-
this.storedConfigurations.splice(index, 1);
|
|
26235
|
-
}
|
|
26236
|
-
}
|
|
26237
|
-
getStoredConfiguration(configurationName) {
|
|
26238
|
-
return this.storedConfigurations.find((item) => item.name === configurationName);
|
|
26239
|
-
}
|
|
26240
|
-
applyConfiguration(configurationName) {
|
|
26241
|
-
const configuration = this.getStoredConfiguration(configurationName);
|
|
26242
|
-
if (configuration) {
|
|
26243
|
-
const properties = configuration['stored-properties'] || [];
|
|
26244
|
-
const conf = configuration['stored-configuration'];
|
|
26245
|
-
this.copyPropertiesFromConfiguration(properties, conf);
|
|
26246
|
-
}
|
|
26247
|
-
}
|
|
26248
|
-
reset(pageable) {
|
|
26249
|
-
const result = {
|
|
26250
|
-
'user-stored-filters': this.storedFilters,
|
|
26251
|
-
'user-stored-configurations': this.storedConfigurations
|
|
26252
|
-
};
|
|
26253
|
-
if (pageable) {
|
|
26254
|
-
result['totalQueryRecordsNumber'] = this.totalQueryRecordsNumber;
|
|
26255
|
-
}
|
|
26256
|
-
result['currentPage'] = 0;
|
|
26257
|
-
Object.assign(this, {});
|
|
26258
|
-
Object.assign(this, result);
|
|
26259
|
-
}
|
|
26260
|
-
copyPropertiesFromConfiguration(properties, configuration) {
|
|
26261
|
-
properties.forEach(property => {
|
|
26262
|
-
switch (property) {
|
|
26263
|
-
case 'sort-columns':
|
|
26264
|
-
this.sortColumns = configuration['sort-columns'];
|
|
26265
|
-
break;
|
|
26266
|
-
case 'oColumns-display':
|
|
26267
|
-
this.columnsDisplay = configuration['oColumns-display'];
|
|
26268
|
-
this.selectColumnVisible = configuration['select-column-visible'];
|
|
26269
|
-
break;
|
|
26270
|
-
case 'quick-filter':
|
|
26271
|
-
case 'columns-filter':
|
|
26272
|
-
this.columnValueFilters = configuration['column-value-filters'];
|
|
26273
|
-
break;
|
|
26274
|
-
case 'grouped-columns':
|
|
26275
|
-
this.groupedColumns = configuration['grouped-columns'];
|
|
26276
|
-
break;
|
|
26277
|
-
case 'page':
|
|
26278
|
-
this.currentPage = configuration['currentPage'];
|
|
26279
|
-
this.totalQueryRecordsNumber = configuration['totalQueryRecordsNumber'];
|
|
26280
|
-
this.queryRecordOffset = configuration['queryRecordOffset'];
|
|
26281
|
-
this.queryRows = configuration['query-rows'];
|
|
26282
|
-
break;
|
|
26283
|
-
case 'filter-builder':
|
|
26284
|
-
this.filterBuilderValues = configuration['filter-builder'];
|
|
26285
|
-
break;
|
|
26286
|
-
}
|
|
26287
|
-
});
|
|
26288
|
-
}
|
|
26289
|
-
}
|
|
26290
|
-
|
|
26291
|
-
class OTableComponentStateService extends AbstractComponentStateService {
|
|
26292
|
-
initialize(component) {
|
|
26293
|
-
this.state = new OTableComponentStateClass();
|
|
26294
|
-
super.initialize(component);
|
|
26295
|
-
}
|
|
26296
|
-
initializeState(state) {
|
|
26297
|
-
super.initializeState(state);
|
|
26298
|
-
const initialConfigurationRawObj = state.initialConfiguration || {};
|
|
26299
|
-
state.initialConfiguration = new OTableComponentStateClass();
|
|
26300
|
-
state.initialConfiguration.setData(initialConfigurationRawObj);
|
|
26301
|
-
}
|
|
26302
|
-
refreshSelection() {
|
|
26303
|
-
this.state.selection = this.getSelectionState();
|
|
26304
|
-
}
|
|
26305
|
-
getDataToStore() {
|
|
26306
|
-
const dataToStore = {};
|
|
26307
|
-
const propertiesKeys = [
|
|
26308
|
-
'sort-columns',
|
|
26309
|
-
'oColumns-display',
|
|
26310
|
-
'columns-filter',
|
|
26311
|
-
'quick-filter',
|
|
26312
|
-
'page',
|
|
26313
|
-
'selection',
|
|
26314
|
-
'initial-configuration',
|
|
26315
|
-
'filter-columns',
|
|
26316
|
-
'filter-column-active',
|
|
26317
|
-
'grouped-columns',
|
|
26318
|
-
'grouped-column-types',
|
|
26319
|
-
'user-stored-filters',
|
|
26320
|
-
'user-stored-configurations'
|
|
26321
|
-
];
|
|
26322
|
-
Object.assign(dataToStore, this.getTablePropertiesToStore(propertiesKeys));
|
|
26323
|
-
return dataToStore;
|
|
26324
|
-
}
|
|
26325
|
-
storeFilter(filter) {
|
|
26326
|
-
let newFilter = { name: filter.name, description: filter.description };
|
|
26327
|
-
const storedFilter = {};
|
|
26328
|
-
Object.assign(storedFilter, this.getColumnFiltersState());
|
|
26329
|
-
Object.assign(storedFilter, this.getColumnsQuickFilterState());
|
|
26330
|
-
Object.assign(storedFilter, this.getFilterBuilderState());
|
|
26331
|
-
newFilter['stored-filter'] = storedFilter;
|
|
26332
|
-
this.state.addStoredFilter(newFilter);
|
|
26333
|
-
}
|
|
26334
|
-
storeConfiguration(configurationAgs, tableProperties) {
|
|
26335
|
-
const newConfiguration = {};
|
|
26336
|
-
this.component.storePaginationState = true;
|
|
26337
|
-
const storedConfiguration = this.getTablePropertiesToStore(tableProperties);
|
|
26338
|
-
this.component.storePaginationState = false;
|
|
26339
|
-
newConfiguration['stored-configuration'] = storedConfiguration;
|
|
26340
|
-
Object.assign(newConfiguration, configurationAgs);
|
|
26341
|
-
newConfiguration['stored-properties'] = tableProperties;
|
|
26342
|
-
this.state.addStoredConfiguration(newConfiguration);
|
|
26343
|
-
}
|
|
26344
|
-
getTablePropertiesToStore(properties) {
|
|
26345
|
-
const result = {};
|
|
26346
|
-
properties.forEach(prop => {
|
|
26347
|
-
Object.assign(result, this.getTablePropertyToStore(prop));
|
|
26348
|
-
});
|
|
26349
|
-
return result;
|
|
26350
|
-
}
|
|
26351
|
-
getTablePropertyToStore(property) {
|
|
26352
|
-
let result = {};
|
|
26353
|
-
switch (property) {
|
|
26354
|
-
case 'sort-columns':
|
|
26355
|
-
result = this.getSortState();
|
|
26356
|
-
break;
|
|
26357
|
-
case 'oColumns-display':
|
|
26358
|
-
result = this.getColumnsDisplayState();
|
|
26359
|
-
break;
|
|
26360
|
-
case 'quick-filter':
|
|
26361
|
-
result = this.getColumnsQuickFilterState();
|
|
26362
|
-
break;
|
|
26363
|
-
case 'columns-filter':
|
|
26364
|
-
result = this.getColumnFiltersState();
|
|
26365
|
-
break;
|
|
26366
|
-
case 'page':
|
|
26367
|
-
result = this.getPageState();
|
|
26368
|
-
break;
|
|
26369
|
-
case 'selection':
|
|
26370
|
-
result['selection'] = this.getSelectionState();
|
|
26371
|
-
break;
|
|
26372
|
-
case 'initial-configuration':
|
|
26373
|
-
result = this.getInitialConfigurationState();
|
|
26374
|
-
break;
|
|
26375
|
-
case 'filter-column-active':
|
|
26376
|
-
result['filter-column-active'] = this.component.isColumnFiltersActive;
|
|
26377
|
-
break;
|
|
26378
|
-
case 'filter-columns':
|
|
26379
|
-
result['filter-columns'] = this.component.filterColumns;
|
|
26380
|
-
break;
|
|
26381
|
-
case 'grouped-columns':
|
|
26382
|
-
result['grouped-columns'] = this.component.groupedColumnsArray;
|
|
26383
|
-
break;
|
|
26384
|
-
case 'grouped-column-types':
|
|
26385
|
-
result['grouped-column-types'] = this.component.groupedColumnTypes;
|
|
26386
|
-
break;
|
|
26387
|
-
case 'user-stored-filters':
|
|
26388
|
-
result['user-stored-filters'] = this.state.storedFilters;
|
|
26389
|
-
break;
|
|
26390
|
-
case 'user-stored-configurations':
|
|
26391
|
-
result['user-stored-configurations'] = this.state.storedConfigurations;
|
|
26392
|
-
break;
|
|
26393
|
-
case 'filter-builder':
|
|
26394
|
-
if (this.component.filterBuilder) {
|
|
26395
|
-
result['filter-builder'] = this.component.filterBuilder.getFilterValues();
|
|
26396
|
-
}
|
|
26397
|
-
break;
|
|
26398
|
-
}
|
|
26399
|
-
return result;
|
|
26400
|
-
}
|
|
26401
|
-
getColumnsDisplayState() {
|
|
26402
|
-
const oColumnsData = [];
|
|
26403
|
-
this.component.oTableOptions.columns.forEach((oCol) => {
|
|
26404
|
-
oColumnsData.push({
|
|
26405
|
-
attr: oCol.attr,
|
|
26406
|
-
visible: oCol.visible,
|
|
26407
|
-
width: oCol.getWidthToStore()
|
|
26408
|
-
});
|
|
26409
|
-
});
|
|
26410
|
-
return {
|
|
26411
|
-
'oColumns-display': oColumnsData,
|
|
26412
|
-
'select-column-visible': this.component.oTableOptions.selectColumn.visible
|
|
26413
|
-
};
|
|
26414
|
-
}
|
|
26415
|
-
getColumnsQuickFilterState() {
|
|
26416
|
-
const tableOptions = this.component.oTableOptions;
|
|
26417
|
-
const oColumnsData = [];
|
|
26418
|
-
tableOptions.columns.forEach((oCol) => {
|
|
26419
|
-
oColumnsData.push({
|
|
26420
|
-
attr: oCol.attr,
|
|
26421
|
-
searchable: oCol.searchable,
|
|
26422
|
-
searching: oCol.searching
|
|
26423
|
-
});
|
|
26424
|
-
});
|
|
26425
|
-
return {
|
|
26426
|
-
'oColumns': oColumnsData,
|
|
26427
|
-
'filter-case-sensitive': tableOptions.filterCaseSensitive,
|
|
26428
|
-
'filter': this.component.oTableQuickFilterComponent ? this.component.oTableQuickFilterComponent.value : ''
|
|
26429
|
-
};
|
|
26430
|
-
}
|
|
26431
|
-
getFilterBuilderState() {
|
|
26432
|
-
const result = {};
|
|
26433
|
-
if (this.component.filterBuilder) {
|
|
26434
|
-
let filterBuilder = this.component.filterBuilder.getFilterValues();
|
|
26435
|
-
if (!Util.isObjectEmpty(filterBuilder)) {
|
|
26436
|
-
result['filter-builder-values'] = filterBuilder;
|
|
26437
|
-
}
|
|
26438
|
-
}
|
|
26439
|
-
return result;
|
|
26440
|
-
}
|
|
26441
|
-
getColumnFiltersState() {
|
|
26442
|
-
const result = {};
|
|
26443
|
-
if (this.component.dataSource) {
|
|
26444
|
-
const columnValueFilters = this.component.dataSource.getColumnValueFilters();
|
|
26445
|
-
if (columnValueFilters.length > 0) {
|
|
26446
|
-
result['column-value-filters'] = columnValueFilters;
|
|
26447
|
-
}
|
|
26448
|
-
}
|
|
26449
|
-
return result;
|
|
26450
|
-
}
|
|
26451
|
-
getPageState() {
|
|
26452
|
-
const result = {
|
|
26453
|
-
'query-rows': this.component.matpaginator ? this.component.matpaginator.pageSize : ''
|
|
26454
|
-
};
|
|
26455
|
-
if (this.component.currentPage > 0 && this.component.storePaginationState) {
|
|
26456
|
-
result.currentPage = this.component.currentPage;
|
|
26457
|
-
}
|
|
26458
|
-
if (this.component.pageable && this.component.storePaginationState) {
|
|
26459
|
-
result.totalQueryRecordsNumber = this.component.state.totalQueryRecordsNumber;
|
|
26460
|
-
result.queryRecordOffset = Math.max((this.component.state.queryRecordOffset - this.component.dataSource.renderedData.length), (this.component.state.queryRecordOffset - this.component.queryRows));
|
|
26461
|
-
}
|
|
26462
|
-
return result;
|
|
26463
|
-
}
|
|
26464
|
-
getSelectionState() {
|
|
26465
|
-
const selection = [];
|
|
26466
|
-
if (this.component && this.component.keepSelectedItems) {
|
|
26467
|
-
const tableKeys = this.component.getKeys();
|
|
26468
|
-
this.component.getSelectedItems().forEach(item => {
|
|
26469
|
-
const data = {};
|
|
26470
|
-
tableKeys.forEach(key => {
|
|
26471
|
-
data[key] = item[key];
|
|
26472
|
-
});
|
|
26473
|
-
selection.push(data);
|
|
26474
|
-
});
|
|
26475
|
-
}
|
|
26476
|
-
return selection;
|
|
26477
|
-
}
|
|
26478
|
-
getInitialConfigurationState() {
|
|
26479
|
-
const oColumnsData = [];
|
|
26480
|
-
Util.parseArray(this.component.visibleColumns, true).forEach((columnAttr) => {
|
|
26481
|
-
let oCol = this.component.getOColumn(columnAttr);
|
|
26482
|
-
oColumnsData.push({
|
|
26483
|
-
attr: oCol.attr,
|
|
26484
|
-
visible: true,
|
|
26485
|
-
width: oCol.definition ? oCol.definition.originalWidth : undefined
|
|
26486
|
-
});
|
|
26487
|
-
});
|
|
26488
|
-
return {
|
|
26489
|
-
'initial-configuration': {
|
|
26490
|
-
'oColumns-display': oColumnsData,
|
|
26491
|
-
'sort-columns': this.component.sortColumns,
|
|
26492
|
-
'select-column-visible': this.component.oTableOptions.selectColumn.visible,
|
|
26493
|
-
'filter-case-sensitive': this.component.filterCaseSensitive,
|
|
26494
|
-
'query-rows': this.component.originalQueryRows,
|
|
26495
|
-
'filter-column-active-by-default': this.component.filterColumnActiveByDefault,
|
|
26496
|
-
'filter-columns': this.component.originalFilterColumns,
|
|
26497
|
-
'grouped-columns': this.component.originalGroupedColumnsArray
|
|
26498
|
-
}
|
|
26499
|
-
};
|
|
26500
|
-
}
|
|
26501
|
-
getSortState() {
|
|
26502
|
-
const sortColumns = [];
|
|
26503
|
-
this.component.sort.getSortColumns().forEach(sortData => {
|
|
26504
|
-
sortColumns.push(sortData.id + Codes.COLUMNS_ALIAS_SEPARATOR + sortData.direction);
|
|
26505
|
-
});
|
|
26506
|
-
return {
|
|
26507
|
-
'sort-columns': sortColumns.join(Codes.ARRAY_INPUT_SEPARATOR)
|
|
26508
|
-
};
|
|
26509
|
-
}
|
|
26510
|
-
}
|
|
26511
|
-
OTableComponentStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableComponentStateService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
26512
|
-
OTableComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableComponentStateService });
|
|
26513
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableComponentStateService, decorators: [{
|
|
26514
|
-
type: Injectable
|
|
26515
|
-
}] });
|
|
26516
|
-
|
|
26517
27039
|
var ColumnValueFilterOperator;
|
|
26518
27040
|
(function (ColumnValueFilterOperator) {
|
|
26519
27041
|
ColumnValueFilterOperator[ColumnValueFilterOperator["IN"] = 0] = "IN";
|
|
@@ -27433,9 +27955,7 @@ class OTableFilterByColumnDataDialogComponent {
|
|
|
27433
27955
|
let propertyA = '';
|
|
27434
27956
|
let propertyB = '';
|
|
27435
27957
|
[propertyA, propertyB] = [a['value'], b['value']];
|
|
27436
|
-
|
|
27437
|
-
const valueB = typeof propertyB === 'undefined' ? '' : propertyB === '' ? propertyB : isNaN(+propertyB) ? propertyB.toString().trim().toLowerCase() : +propertyB;
|
|
27438
|
-
return (valueA <= valueB ? -1 : 1) * (this.activeSortDirection === 'asc' ? 1 : -1);
|
|
27958
|
+
return Util.sortFunction(propertyA, propertyB, this.activeSortDirection);
|
|
27439
27959
|
}
|
|
27440
27960
|
onSlideChange(e) {
|
|
27441
27961
|
this.isCustomFilterSubject.next(e.checked);
|
|
@@ -30633,17 +31153,17 @@ class OTableSkeletonComponent extends OSkeletonComponent {
|
|
|
30633
31153
|
}
|
|
30634
31154
|
get count() {
|
|
30635
31155
|
const parentElement = this.elRef.nativeElement.parentElement;
|
|
30636
|
-
const parentHeight = parentElement.offsetHeight -
|
|
30637
|
-
return Math.floor(parentHeight / 30);
|
|
31156
|
+
const parentHeight = parentElement.offsetHeight - 60;
|
|
31157
|
+
return Array.from(new Array(Math.floor(parentHeight / 30)), (x, i) => i + 1);
|
|
30638
31158
|
}
|
|
30639
31159
|
}
|
|
30640
31160
|
OTableSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableSkeletonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
30641
|
-
OTableSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableSkeletonComponent, selector: "o-table-skeleton", host: { properties: { "class.o-table-skeleton": "true" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-table-skeleton-header\" fxLayoutGap=\"10px\">\n</div>\n<div class=\"o-table-skeleton-item\" fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\">\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader fxFlex count=\"
|
|
31161
|
+
OTableSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableSkeletonComponent, selector: "o-table-skeleton", host: { properties: { "class.o-table-skeleton": "true" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-table-skeleton-header\" fxLayoutGap=\"10px\">\n</div>\n<div class=\"o-table-skeleton-item\" fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" *ngFor=\"let row of count\">\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader fxFlex count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n <div fxFlex=\"20\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n</div>\n", styles: [".o-table-skeleton{height:100%;width:100%;position:relative}.o-table-skeleton .o-table-skeleton-header{height:40px;margin:10px}.o-table-skeleton .o-table-skeleton-item{margin:5px 10px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i3$4.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
30642
31162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableSkeletonComponent, decorators: [{
|
|
30643
31163
|
type: Component,
|
|
30644
31164
|
args: [{ selector: 'o-table-skeleton', encapsulation: ViewEncapsulation.None, host: {
|
|
30645
31165
|
'[class.o-table-skeleton]': 'true'
|
|
30646
|
-
}, template: "<div class=\"o-table-skeleton-header\" fxLayoutGap=\"10px\">\n</div>\n<div class=\"o-table-skeleton-item\" fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\">\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader fxFlex count=\"
|
|
31166
|
+
}, template: "<div class=\"o-table-skeleton-header\" fxLayoutGap=\"10px\">\n</div>\n<div class=\"o-table-skeleton-item\" fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" *ngFor=\"let row of count\">\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader fxFlex count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n <div fxFlex=\"20\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n <div fxFlex=\"20%\">\n <ngx-skeleton-loader count=\"1\" animation=\"{{isDarkMode?'progress-dark':'progress'}}\"\n [theme]=\"{height:'20px','border-radius': '0', 'margin': '0'}\"></ngx-skeleton-loader>\n </div>\n</div>\n", styles: [".o-table-skeleton{height:100%;width:100%;position:relative}.o-table-skeleton .o-table-skeleton-header{height:40px;margin:10px}.o-table-skeleton .o-table-skeleton-item{margin:5px 10px}\n"] }]
|
|
30647
31167
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }]; } });
|
|
30648
31168
|
|
|
30649
31169
|
class OTableRowClassPipe {
|
|
@@ -30787,7 +31307,7 @@ class OTableComponent extends AbstractOServiceComponent {
|
|
|
30787
31307
|
return this._visibleColArray;
|
|
30788
31308
|
}
|
|
30789
31309
|
set visibleColArray(arg) {
|
|
30790
|
-
const permissionsBlocked = this.permissions ? this.permissions.columns.filter(col => col.visible === false).map(col => col.attr) : [];
|
|
31310
|
+
const permissionsBlocked = this.permissions && this.permissions.columns ? this.permissions.columns.filter(col => col.visible === false).map(col => col.attr) : [];
|
|
30791
31311
|
const permissionsChecked = arg.filter(value => permissionsBlocked.indexOf(value) === -1);
|
|
30792
31312
|
this._visibleColArray = permissionsChecked;
|
|
30793
31313
|
if (this._oTableOptions) {
|
|
@@ -30929,18 +31449,31 @@ class OTableComponent extends AbstractOServiceComponent {
|
|
|
30929
31449
|
catch (error) {
|
|
30930
31450
|
}
|
|
30931
31451
|
this.snackBarService = this.injector.get(SnackBarService);
|
|
30932
|
-
this.
|
|
31452
|
+
this.getInjectionTokenConfig();
|
|
30933
31453
|
}
|
|
30934
|
-
|
|
31454
|
+
getInjectionTokenConfig() {
|
|
30935
31455
|
try {
|
|
30936
|
-
|
|
30937
|
-
if (Util.isDefined(
|
|
30938
|
-
this.autoAdjust =
|
|
31456
|
+
const oTableGlobalConfig = this.injector.get(O_TABLE_GLOBAL_CONFIG);
|
|
31457
|
+
if (Util.isDefined(oTableGlobalConfig.autoAdjust)) {
|
|
31458
|
+
this.autoAdjust = oTableGlobalConfig.autoAdjust;
|
|
30939
31459
|
}
|
|
30940
31460
|
;
|
|
30941
|
-
if (Util.isDefined(
|
|
30942
|
-
this.autoAlignTitles =
|
|
31461
|
+
if (Util.isDefined(oTableGlobalConfig.autoAlignTitles)) {
|
|
31462
|
+
this.autoAlignTitles = oTableGlobalConfig.autoAlignTitles;
|
|
30943
31463
|
}
|
|
31464
|
+
if (Util.isDefined(oTableGlobalConfig.filterColumnActiveByDefault)) {
|
|
31465
|
+
this.filterColumnActiveByDefault = oTableGlobalConfig.filterColumnActiveByDefault;
|
|
31466
|
+
}
|
|
31467
|
+
if (Util.isDefined(oTableGlobalConfig.editionMode) && Codes.isValidEditionMode(oTableGlobalConfig.editionMode)) {
|
|
31468
|
+
this.editionMode = oTableGlobalConfig.editionMode;
|
|
31469
|
+
}
|
|
31470
|
+
if (Util.isDefined(oTableGlobalConfig.detailMode && Codes.isValidDetailMode(oTableGlobalConfig.detailMode))) {
|
|
31471
|
+
this.detailMode = oTableGlobalConfig.detailMode;
|
|
31472
|
+
}
|
|
31473
|
+
if (Util.isDefined(oTableGlobalConfig.rowHeight) && Codes.isValidRowHeight(oTableGlobalConfig.rowHeight)) {
|
|
31474
|
+
this.rowHeight = oTableGlobalConfig.rowHeight;
|
|
31475
|
+
}
|
|
31476
|
+
;
|
|
30944
31477
|
}
|
|
30945
31478
|
catch (error) {
|
|
30946
31479
|
}
|
|
@@ -31433,6 +31966,7 @@ class OTableComponent extends AbstractOServiceComponent {
|
|
|
31433
31966
|
this.queryRows = this.state.queryRows;
|
|
31434
31967
|
}
|
|
31435
31968
|
}
|
|
31969
|
+
this.selection = new SelectionModel(this.isSelectionModeMultiple(), []);
|
|
31436
31970
|
}
|
|
31437
31971
|
updateStateExpandedColumn() {
|
|
31438
31972
|
if (!this.tableRowExpandable || !this.tableRowExpandable.expandableColumnVisible) {
|
|
@@ -31683,6 +32217,9 @@ class OTableComponent extends AbstractOServiceComponent {
|
|
|
31683
32217
|
}
|
|
31684
32218
|
ObservableWrapper.callEmit(this.onDataLoaded, this.daoTable.data);
|
|
31685
32219
|
}
|
|
32220
|
+
canSetStaticData(staticData) {
|
|
32221
|
+
return super.canSetStaticData(staticData) && Util.isDefined(this.daoTable);
|
|
32222
|
+
}
|
|
31686
32223
|
showDialogError(error, errorOptional) {
|
|
31687
32224
|
if (Util.isDefined(error) && !Util.isObject(error)) {
|
|
31688
32225
|
this.dialogService.alert('ERROR', error);
|
|
@@ -33052,7 +33589,7 @@ OTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
|
|
|
33052
33589
|
{ provide: O_COMPONENT_STATE_SERVICE, useClass: OTableComponentStateService },
|
|
33053
33590
|
{ provide: VIRTUAL_SCROLL_STRATEGY, useClass: OTableVirtualScrollStrategy },
|
|
33054
33591
|
{ provide: OTableBase, useExisting: forwardRef(() => OTableComponent) }
|
|
33055
|
-
], queries: [{ propertyName: "tableRowExpandable", first: true, predicate: OTableRowExpandableComponent, descendants: true }, { propertyName: "quickfilterContentChild", first: true, predicate: ["o-table-quickfilter"], descendants: true, static: true }, { propertyName: "tableColumnSelectAllContentChild", first: true, predicate: OTableColumnSelectAllDirective, descendants: true }, { propertyName: "contextMenuContentChild", first: true, predicate: OTableContextMenuComponent, descendants: true, static: true }, { propertyName: "tableOptions", predicate: OTableOptionComponent }, { propertyName: "tableButtons", predicate: OTableButtonComponent }], viewQueries: [{ propertyName: "oMatSort", first: true, predicate: OMatSort, descendants: true }, { propertyName: "cdkVirtualScrollViewport", first: true, predicate: ["virtualScrollViewPort"], descendants: true }, { propertyName: "spinnerContainer", first: true, predicate: ["spinnerContainer"], descendants: true, read: ElementRef }, { propertyName: "tableBodyEl", first: true, predicate: ["tableBody"], descendants: true }, { propertyName: "tableHeaderEl", first: true, predicate: ["tableHeader"], descendants: true, read: ElementRef }, { propertyName: "tableToolbarEl", first: true, predicate: ["tableToolbar"], descendants: true, read: ElementRef }, { propertyName: "oTableMenu", first: true, predicate: ["tableMenu"], descendants: true }, { propertyName: "exportOptsTemplate", first: true, predicate: ["exportOptsTemplate"], descendants: true }, { propertyName: "tooltip", predicate: MatTooltip, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"o-table-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\" [style.display]=\"isVisible()? '' : 'none'\"\n [class.block-events]=\"showLoading | async\">\n\n <o-data-toolbar #tableToolbar *ngIf=\"hasControls()\" [title]=\"title\" [show-title]=\"showTitle\" class=\"o-table-toolbar\">\n <ng-container o-data-toolbar-projection-start>\n <o-table-buttons #tableButtons [insert-button]=\"insertButton\" [refresh-button]=\"refreshButton\" [delete-button]=\"showDeleteButton\">\n <ng-content select=\"o-table-button\"></ng-content>\n </o-table-buttons>\n </ng-container>\n <ng-content select=\"[o-table-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-table-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-table-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <ng-container *ngIf=\"quickfilterContentChild; else defaultQuickFilter\">\n <ng-content select=\"o-table-quickfilter\"></ng-content>\n </ng-container>\n <ng-template #defaultQuickFilter>\n <ng-container *ngIf=\"quickFilter\">\n <o-table-quickfilter (onChange)=\"tableQuickFilterChanged($event)\">\n </o-table-quickfilter>\n </ng-container>\n </ng-template>\n <button type=\"button\" *ngIf=\"showTableMenuButton\" mat-icon-button class=\"o-table-menu-button\" [matMenuTriggerFor]=\"tableMenu.matMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"ontimize:more_vert\"></mat-icon>\n </button>\n <o-table-menu #tableMenu [select-all-checkbox]=\"selectAllCheckbox\" [export-button]=\"exportButton\"\n [columns-visibility-button]=\"columnsVisibilityButton\" [show-configuration-option]=\"showConfigurationOption\"\n [show-filter-option]=\"showFilterOption\" [show-report-on-demand-option]=\"showReportOnDemandOption\"\n [show-charts-on-demand-option]=\"showChartsOnDemandOption\" [show-reset-width-option]=\"showResetWidthOption\" [show-group-by-option]=\"groupable\">\n <ng-content select=\"o-table-option\"></ng-content>\n </o-table-menu>\n <ng-template #exportOptsTemplate>\n <ng-content select=\"o-table-export-button\"></ng-content>\n </ng-template>\n </ng-container>\n </o-data-toolbar>\n\n <div #tableBody class=\"o-table-body o-scroll\" [class.horizontal-scroll]=\"horizontalScroll\" [class.scrolled]=\"horizontalScrolled\">\n <ng-container *ngIf=\"!enabledVirtualScroll; else tableWithVirtualScroll\">\n <div class=\"o-table-overflow o-scroll\">\n <ng-template *ngTemplateOutlet=\"table\"></ng-template>\n </div>\n </ng-container>\n <ng-template #tableWithVirtualScroll>\n <cdk-virtual-scroll-viewport #virtualScrollViewPort fxFlex>\n <ng-template *ngTemplateOutlet=\"table\"></ng-template>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </div>\n <!--TABLE PAGINATOR-->\n <mat-paginator *ngIf=\"paginator && (showLoading | async)===false\" #matpaginator [length]=\"dataSource?.resultsLength\" [pageIndex]=\"paginator.pageIndex\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"paginator.pageSizeOptions\" (page)=\"onChangePage($event)\" [showFirstLastButtons]=\"paginator.showFirstLastButtons\">\n </mat-paginator>\n\n <!--LOADING-->\n <div #spinnerContainer *ngIf=\"showLoading | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\" [ngStyle]=\"{'top.px': headerHeight}\"\n class=\"spinner-container\" [class.spinner-container-scrollable]=\"loadingScroll | async\">\n <o-table-skeleton></o-table-skeleton>\n </div>\n\n <!-- Disable blocker -->\n <div *ngIf=\"!enabled\" class=\"o-table-disabled-blocker\"></div>\n</div>\n\n<ng-template #table>\n\n <table *ngIf=\"(showLoading | async)===false\" mat-table #table [class.autoadjusted]=\"autoAdjust\" [trackBy]=\"getTrackByFunction()\" [dataSource]=\"dataSource\" oMatSort\n [oMatSortColumns]=\"sortColArray\" [ngClass]=\"rowHeightObservable | async\" (cdkObserveContent)=\"projectContentChanged()\"\n [oTableExpandedFooter]=\"!(loading | async)\" [oTableExpandedFooterColspan]=\"visibleColArray.length\" [multiTemplateDataRows]=\"showExpandableRow()\"\n aria-describedby=\"ontimize-web table\">\n\n <!--Checkbox Column -->\n <ng-container [matColumnDef]=\"oTableOptions.selectColumn.name\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <ng-container *ngIf=\"!tableColumnSelectAllContentChild; else customHeaderSelectAllTemplate\">\n <th mat-header-cell *matHeaderCellDef>\n <div class=\"content\">\n <o-table-header-select-all [column]=\"oTableOptions.selectColumn\"></o-table-header-select-all>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox name=\"id[]\" (click)=\"$event.stopPropagation()\" [disabled]=\"isDisableCheckbox(row)\"\n (change)=\"selectionCheckboxToggle($event, row)\" [checked]=\"isRowSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n <ng-template #customHeaderSelectAllTemplate>\n <th mat-header-cell *matHeaderCellDef [class.resizable]=\"resizable\" class=\"mat-header-select-all-with-title o-center\"\n [style.width]=\"oTableOptions.selectColumn.width\" [style.min-width]=\"getMinWidthColumn(oTableOptions.selectColumn)\"\n [style.max-width]=\"oTableOptions.selectColumn.maxWidth\">\n <div class=\"content\">\n <o-table-header-select-all [column]=\"oTableOptions.selectColumn\"></o-table-header-select-all>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"o-center\" [style.width]=\"oTableOptions.selectColumn.width\"\n [style.min-width]=\"getMinWidthColumn(oTableOptions.selectColumn)\" [style.max-width]=\"oTableOptions.selectColumn.maxWidth\">\n <mat-checkbox name=\"id[]\" (click)=\"$event.stopPropagation()\" [disabled]=\"isDisableCheckbox(row)\"\n (change)=\"selectionCheckboxToggle($event, row)\" [checked]=\"isRowSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-template>\n\n\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <!--Expandable Column -->\n <ng-container [matColumnDef]=\"oTableOptions.expandableColumn.name\" *ngIf=\"isColumnExpandable()\">\n <th mat-header-cell *matHeaderCellDef>\n {{ oTableOptions.expandableColumn.title }}\n </th>\n <td mat-cell *matCellDef=\"let row;let rowIndex = dataIndex\">\n <mat-icon *ngIf=\"showExpandableIcon(row, rowIndex) | async\" (click)=\"toogleRowExpandable(row, rowIndex, $event)\">\n <ng-container *ngIf=\"isExpanded(row)\">{{ tableRowExpandable.iconCollapse }}</ng-container>\n <ng-container *ngIf=\"!isExpanded(row)\">{{ tableRowExpandable.iconExpand }}</ng-container>\n </mat-icon>\n </td>\n </ng-container>\n\n <!-- Generic column definition -->\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"column.name\">\n <!--Define header-cell-->\n\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getTitleAlignClass(column)\" [class.resizable]=\"resizable\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\">\n\n <div class=\"content\">\n <o-table-header [column]=\"column\"></o-table-header>\n </div>\n </th>\n\n\n <!--Define mat-cell-->\n <ng-container *ngIf=\"!table.multiTemplateDataRows; else cellTemplateMultiTemplateDataRows\">\n <td #cell mat-cell *matCellDef=\"let row;let rowIndex = index \" [ngClass]=\"[column.className, getCellAlignClass(column)]\"\n (click)=\"handleClick(row, column, rowIndex, cell, $event)\" (dblclick)=\"handleDoubleClick(row, column, rowIndex, cell, $event)\"\n [class.empty-cell]=\"isEmpty(row[column.name])\" [matTooltipDisabled]=\"!column.hasTooltip()\" [matTooltip]=\"column.getTooltip(row)\"\n matTooltipPosition=\"below\" matTooltipShowDelay=\"750\" matTooltipClass=\"o-table-cell-tooltip\"\n [class.o-mat-cell-multiline]=\"(column.isMultiline | async)\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column.name, rowValue:row, rowIndex:rowIndex}\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\"\n [class.o-table-editing-cell]=\"isRowSelected(row) && column.editing\">\n <ng-container *ngTemplateOutlet=\"cellRenderer;context:{column:column,row:row}\"></ng-container>\n </td>\n </ng-container>\n <ng-template #cellTemplateMultiTemplateDataRows>\n <td #cell mat-cell *matCellDef=\"let row;let rowIndex = dataIndex \" [ngClass]=\"[column.className, getCellAlignClass(column)]\"\n (click)=\"handleClick(row, column, rowIndex, cell, $event)\" (dblclick)=\"handleDoubleClick(row, column, rowIndex, cell, $event)\"\n [class.empty-cell]=\"isEmpty(row[column.name])\" [matTooltipDisabled]=\"!column.hasTooltip()\" [matTooltip]=\"column.getTooltip(row)\"\n matTooltipPosition=\"below\" matTooltipShowDelay=\"750\" matTooltipClass=\"o-table-cell-tooltip\"\n [class.o-mat-cell-multiline]=\"(column.isMultiline | async)\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column.name, rowValue:row, rowIndex:rowIndex}\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\"\n [class.o-table-editing-cell]=\"isRowSelected(row) && column.editing\">\n <ng-container *ngTemplateOutlet=\"cellRenderer;context:{column:column,row:row}\"></ng-container>\n\n </td>\n </ng-template>\n <!--Define mat-footer-cell-->\n <ng-container *ngIf=\"showTotals | async\">\n <td mat-footer-cell *matFooterCellDef [ngClass]=\"column.className\">\n <div class=\"title\" *ngIf=\"column.aggregate && column.aggregate.title\">\n {{ column.aggregate.title | oTranslate }}\n </div>\n <ng-container *ngIf=\"!column.renderer\">\n {{ dataSource.getAggregateData(column) }}\n </ng-container>\n <ng-template *ngIf=\"column.renderer && column.aggregate\" [ngTemplateOutlet]=\"column.renderer.templateref\"\n [ngTemplateOutletContext]=\"{cellvalue: dataSource.getAggregateData(column)}\"></ng-template>\n </td>\n </ng-container>\n\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container *ngIf=\"hasExpandedRow\">\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let row;let rowIndex= dataIndex\" [attr.colspan]=\"oTableOptions.visibleColumns.length\">\n <div [ngClass]=\"getExpandedRowContainerClass(rowIndex)\" [@detailExpand]=\"getStateExpand(row)\">\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <!--FOOTER-INSERTABLE-->\n <ng-container *ngIf=\"showLastInsertableRow && oTableInsertableRowComponent\">\n <ng-container [matColumnDef]=\"oTableOptions.selectColumn.name + getSuffixColumnInsertable()\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <td mat-footer-cell *matFooterCellDef>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"column.name+ getSuffixColumnInsertable()\">\n\n <td mat-footer-cell *matFooterCellDef [ngClass]=\"column.className\">\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && !oTableInsertableRowComponent.useCellEditor(column)\">\n <mat-form-field class=\"insertable-form-field o-table-cell-editor-text o-table-cell-editor\" [hideRequiredMarker]=\"false\">\n <input matInput type=\"text\" [placeholder]=\"oTableInsertableRowComponent.getPlaceholder(column)\" [id]=\"column.attr\"\n [formControl]=\"oTableInsertableRowComponent.getControl(column)\" [required]=\"oTableInsertableRowComponent.isColumnRequired(column)\">\n <mat-error *oMatError=\"oTableInsertableRowComponent.columnHasError(column, 'required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && oTableInsertableRowComponent.useCellEditor(column)\">\n <ng-template [ngTemplateOutlet]=\"oTableInsertableRowComponent.columnEditors[column.attr].templateref\"\n [ngTemplateOutletContext]=\"{ rowvalue: oTableInsertableRowComponent.rowData }\">\n </ng-template>\n </ng-container>\n </td>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"showFirstInsertableRow && oTableInsertableRowComponent\">\n <ng-container [matColumnDef]=\"getColumnInsertable(oTableOptions.selectColumn.name)\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <td mat-header-cell *matHeaderCellDef>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"getColumnInsertable(column.name)\">\n\n <td mat-header-cell *matHeaderCellDef [ngClass]=\"column.className\">\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && !oTableInsertableRowComponent.useCellEditor(column)\">\n <mat-form-field class=\"insertable-form-field\" [hideRequiredMarker]=\"false\">\n <input matInput type=\"text\" [placeholder]=\"oTableInsertableRowComponent.getPlaceholder(column)\" [id]=\"column.attr\"\n [formControl]=\"oTableInsertableRowComponent.getControl(column)\" [required]=\"oTableInsertableRowComponent.isColumnRequired(column)\">\n <mat-error *oMatError=\"oTableInsertableRowComponent.columnHasError(column, 'required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && oTableInsertableRowComponent.useCellEditor(column)\">\n <ng-template [ngTemplateOutlet]=\"oTableInsertableRowComponent.columnEditors[column.attr].templateref\"\n [ngTemplateOutletContext]=\"{ rowvalue: oTableInsertableRowComponent.rowData }\">\n </ng-template>\n </ng-container>\n </td>\n </ng-container>\n\n </ng-container>\n\n <!-- Definition column group header -->\n <ng-container *ngFor=\"let column of groupingHeadersRows; let i = index\" [matColumnDef]=\"column\">\n <td mat-cell *matCellDef=\"let group\" class=\"grouping-row\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column, rowValue:group, rowIndex:i}\" [ngClass]=\"getGroupHeaderCellAlignClass(column)\">\n <div *ngIf=\"i===0\" class=\"grouping-title-wrapper\" [ngStyle]=\"{'padding-left': 20*(group.level-1)+'px'}\">\n <mat-icon>{{ group.expanded ? 'expand_more' : 'chevron_right' }}</mat-icon>\n {{ group.title }}\n </div>\n <div class=\"grouping-aggregate\" *ngIf=\"group.hasActiveAggregate(visibleColArray[i])\">\n {{ group.getColumnActiveAggregateTitle(visibleColArray[i]) | oTranslate }} :\n <ng-container *ngIf=\"!getOColumnFromGroupHeaderColumn(column).renderer\">\n {{ group.getColumnAggregateValue(visibleColArray[i])}}\n </ng-container>\n <ng-container *ngIf=\"getOColumnFromGroupHeaderColumn(column).renderer\">\n <ng-template\n *ngTemplateOutlet=\"getOColumnFromGroupHeaderColumn(column).renderer?.templateref; context:{ cellvalue: group.getColumnAggregateValue(visibleColArray[i]) }\">\n </ng-template>\n </ng-container>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"position\">\n <td mat-cell *matCellDef=\"let row\"> {{row}} </td>\n </ng-container>\n\n <tr #tableHeader mat-header-row *matHeaderRowDef=\"oTableOptions.visibleColumns; sticky: fixedHeader\"></tr>\n\n <ng-container *ngIf=\"!table.multiTemplateDataRows; else rowTemplateMultiTemplateDataRows\">\n <tr mat-row oTableRow *matRowDef=\"let row; columns: oTableOptions.visibleColumns; when:isNotGroup; let rowIndex = index\"\n [class.selected]=\"isRowSelected(row)\" [ngClass]=\"row | oTableRowClass: rowIndex: rowClass\">\n </tr>\n </ng-container>\n <ng-template #rowTemplateMultiTemplateDataRows>\n <tr mat-row oTableRow *matRowDef=\"let row; columns: oTableOptions.visibleColumns; when:isNotGroup; let rowIndex = dataIndex\"\n [class.selected]=\"isRowSelected(row)\" [ngClass]=\"row | oTableRowClass: rowIndex: rowClass\">\n </tr>\n </ng-template>\n\n <!-- Row Group header -->\n <tr mat-row *matRowDef=\"let row; columns: groupingHeadersRows; when:isGroup\" (click)=\"groupHeaderClick(row)\"\n [ngClass]=\"getClassNameGroupHeader(row)\">\n </tr>\n\n <!-- Expanded detail row-->\n <ng-container *ngIf=\"hasExpandedRow\">\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"o-table-row-expanded\"></tr>\n </ng-container>\n\n <ng-container *ngIf=\"showLastInsertableRow\">\n <tr mat-footer-row *matFooterRowDef=\"oTableOptions.columnsInsertables; sticky: true\"\n (keyup)=\"oTableInsertableRowComponent.handleKeyboardEvent($event)\" class=\"o-table-insertable\"></tr>\n </ng-container>\n <ng-container *ngIf=\"showFirstInsertableRow\">\n <tr mat-header-row *matHeaderRowDef=\"oTableOptions.columnsInsertables; sticky: true\"\n (keyup)=\"oTableInsertableRowComponent.handleKeyboardEvent($event)\" class=\"o-table-insertable\"> </tr>\n </ng-container>\n <ng-container *ngIf=\"showTotals | async\">\n <tr mat-footer-row *matFooterRowDef=\"oTableOptions.visibleColumns; sticky: true\" class=\"o-table-aggregate\">\n </tr>\n </ng-container>\n </table>\n\n</ng-template>\n\n<ng-container *ngIf=\"!contextMenuContentChild && contextMenu\">\n <o-table-context-menu [insert]=\"insertButton\" [edit]=\"editionMode !== EDIT_MODE_NONE\" [view-detail]=\"detailMode !== DETAIL_MODE_NONE\"\n [refresh]=\"refreshButton\" [delete]=\"deleteButton\" [filter]=\"showFilterOption\" [group-by-row]=\"groupable\">\n </o-table-context-menu>\n</ng-container>\n\n<ng-template #cellRenderer let-row=\"row\" let-column=\"column\">\n <div class=\"content\">\n\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"column.renderer != null && (!column.editing || column.editing && !isRowSelected(row))\">\n <ng-template *ngTemplateOutlet=\"column.renderer?.templateref; context:{ cellvalue: row[column.name], rowvalue:row }\">\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"isRowSelected(row) && column.editing\">\n <ng-template *ngTemplateOutlet=\"column.editor?.templateref; context:{ cellvalue: row[column.name], rowvalue:row }\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"column.type === 'editButtonInRow' || column.type === 'detailButtonInRow'\">\n <div fxLayoutAlign=\"center center\" class=\"o-action-cell-renderer\" (click)=\"onDetailButtonClick(column, row, $event)\">\n <mat-icon>{{ getDetailButtonIcon(column) }}</mat-icon>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>{{ row[column.name] }}</ng-container>\n </ng-container>\n\n </div>\n</ng-template>\n", styles: [".o-table{height:100%;max-height:100%;width:100%}.o-table.o-table-disabled{opacity:.4}.o-table .o-table-container{height:100%;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:flex-start;align-content:stretch;min-width:100%;min-height:400px;position:relative;padding:0 .5%}.o-table .o-table-container .o-table-body{display:flex;flex:1 1 auto}.o-table .o-table-container .o-table-body .o-table-overflow{overflow-y:auto;overflow-x:hidden;min-width:100%}.o-table .o-table-container .o-table-body.horizontal-scroll .o-table-overflow{overflow-x:auto}.o-table .o-table-container .o-table-body thead .mat-mdc-header-row th:last-child .o-table-column-resizer{display:none}.o-table .o-table-container.block-events{pointer-events:none}.o-table .o-table-container.block-events>.o-table-toolbar,.o-table .o-table-container.block-events>.o-table-body .mat-mdc-header-row{opacity:.75}.o-table .o-table-container .o-table-toolbar{height:40px}.o-table .o-table-container .o-table-toolbar>div{max-height:100%}.o-table .o-table-container .o-table-toolbar .buttons{margin:0 10px 0 4px}.o-table .o-table-container .o-table-body{max-width:100%;height:100%;overflow:hidden;position:relative}.o-table .o-table-container .o-table-body .spinner-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-table .o-table-container .o-table-body.horizontal-scroll{overflow-x:auto;padding-bottom:16px}.o-table .o-table-container .o-table-body.horizontal-scroll .mat-mdc-header-cell{width:150px}.o-table .o-table-container .o-table-body .o-table-no-results{cursor:default;text-align:center}.o-table .o-table-container .o-table-body .o-table-no-results td{text-align:center}.o-table .o-table-container .mat-mdc-table{table-layout:fixed;width:100%}.o-table .o-table-container .mat-mdc-table.autoadjusted{table-layout:auto}.o-table .o-table-container .mat-mdc-table td .content,.o-table .o-table-container .mat-mdc-table th .content{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table.small .mat-mdc-header-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-header-row .mat-mdc-header-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-row .mat-mdc-header-cell .image-avatar{width:24px;height:24px}.o-table .o-table-container .mat-mdc-table.large .column-filter-icon{margin-top:4px}.o-table .o-table-container .mat-mdc-table.large .mat-sort-header-arrow{margin-top:7px}.o-table .o-table-container .mat-mdc-table tr.mat-mdc-row.o-table-row-expanded{height:0}.o-table .o-table-container .mat-mdc-table tr.o-table-insertable td{height:1px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row{box-sizing:border-box;transition:background-color .2s;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell{padding:0 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row{padding-top:30px;cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row .grouping-title-wrapper,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row .grouping-title-wrapper{position:absolute;width:100%;left:0;top:0;text-align:left}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row .grouping-aggregate,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row .grouping-aggregate{font-weight:700;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-bottom:8px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.empty-cell,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.empty-cell{min-height:16px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .action-cell-renderer,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .action-cell-renderer{cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-start,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-start{text-align:start}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-center,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-center{text-align:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-end,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-end{text-align:end}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell *,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell *{vertical-align:middle}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-mat-cell-multiline:not(.mat-mdc-header-cell),.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-mat-cell-multiline:not(.mat-mdc-header-cell){padding:6px 12px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-mat-cell-multiline .content,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-mat-cell-multiline .content{overflow:initial;white-space:normal;text-overflow:unset}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .image-avatar{width:32px;height:32px;margin:1px auto;overflow:hidden;border-radius:50%;position:relative;z-index:1}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .image-avatar img,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .image-avatar img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:inherit;max-height:inherit}.o-table .o-table-container .mat-mdc-table .o-action-cell-renderer{display:inline-block;cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell{overflow:hidden;position:relative;box-sizing:border-box;padding:0 12px;vertical-align:middle}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select.mat-header-select-all-with-title{padding-right:12px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell:first-of-type{padding-left:0}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell:not(.o-column-image){overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .o-table-header-indicator-numbered{font-size:8px;position:absolute;text-align:center;display:inline-block;width:18px;height:18px;line-height:18px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;bottom:-10px;right:-9px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .column-filter-icon{cursor:pointer;font-size:18px;width:18px;height:18px;line-height:1}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-button{flex:1;display:block;place-content:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .header-title-container{cursor:default;min-height:20px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .header-title-container,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.start,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.start .mat-sort-header-button{text-align:left}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.center,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.center .mat-sort-header-button{text-align:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.end,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.end .mat-sort-header-button{text-align:right}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select{box-sizing:content-box;overflow:initial}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select:not(.mat-header-select-all-with-title),.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select:not(.mat-header-select-all-with-title){width:30px}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select .mat-checkbox-layout,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select .mat-checkbox-layout{text-overflow:ellipsis;overflow:hidden;display:inline}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-expandable,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-expandable{width:40px;box-sizing:content-box;padding:0 0 0 24px;overflow:initial}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell .row-container-expanded{overflow:hidden;display:flex}.o-table .o-table-container .o-table-disabled-blocker{bottom:0;left:0;position:absolute;right:0;top:0;z-index:100}.o-table .spinner-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-table .spinner-container-scrollable{position:relative}.o-table.o-table-fixed{display:flex}.o-table.o-table-fixed .o-table-container{display:flex;flex-direction:column}.o-table.o-table-fixed .o-table-body{display:flex;flex:1}.o-table.o-table-fixed .o-table-body .o-table-overflow{flex:1;overflow-y:auto}.mat-mdc-tooltip.o-table-cell-tooltip{word-wrap:break-word;overflow:hidden;min-width:140px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i14.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i14.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i14.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i14.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i14.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i14.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i14.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i14.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i14.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i14.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i14.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i14.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i14.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i14.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i7$4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: OContextMenuDirective, selector: "[oContextMenu]", inputs: ["oContextMenu", "oContextMenuData"] }, { kind: "directive", type: i18.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: OMatSort, selector: "[oMatSort]", inputs: ["oMatSortDisabled", "oMatSortColumns"], outputs: ["matSortChange"], exportAs: ["oMatSort"] }, { kind: "component", type: ODataToolbarComponent, selector: "o-data-toolbar", inputs: ["show-title", "title"] }, { kind: "component", type: OTableContextMenuComponent, selector: "o-table-context-menu", inputs: ["context-menu", "insert", "edit", "view-detail", "copy", "select-all", "refresh", "delete", "filter", "group-by-row"] }, { kind: "directive", type: OTableRowDirective, selector: "[oTableRow]" }, { kind: "directive", type: OTableExpandedFooterDirective, selector: "[oTableExpandedFooter]", inputs: ["oTableExpandedFooter", "oTableExpandedFooterColspan"] }, { kind: "component", type: OTableButtonsComponent, selector: "o-table-buttons", inputs: ["insert-button", "refresh-button", "delete-button"] }, { kind: "component", type: OTableMenuComponent, selector: "o-table-menu", inputs: ["select-all-checkbox", "export-button", "columns-visibility-button", "show-configuration-option", "show-filter-option", "show-group-by-option", "show-reset-width-option", "show-report-on-demand-option", "show-charts-on-demand-option"] }, { kind: "component", type: OTableQuickfilterComponent, selector: "o-table-quickfilter", inputs: ["placeholder"], outputs: ["onChange"] }, { kind: "component", type: OTableHeaderComponent, selector: "o-table-header", inputs: ["column"] }, { kind: "component", type: OTableHeaderSelectAllComponent, selector: "o-table-header-select-all", inputs: ["column"] }, { kind: "component", type: OTableSkeletonComponent, selector: "o-table-skeleton" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }, { kind: "pipe", type: OTableRowClassPipe, name: "oTableRowClass" }], animations: [
|
|
33592
|
+
], queries: [{ propertyName: "tableRowExpandable", first: true, predicate: OTableRowExpandableComponent, descendants: true }, { propertyName: "quickfilterContentChild", first: true, predicate: ["o-table-quickfilter"], descendants: true, static: true }, { propertyName: "tableColumnSelectAllContentChild", first: true, predicate: OTableColumnSelectAllDirective, descendants: true }, { propertyName: "contextMenuContentChild", first: true, predicate: OTableContextMenuComponent, descendants: true, static: true }, { propertyName: "tableOptions", predicate: OTableOptionComponent }, { propertyName: "tableButtons", predicate: OTableButtonComponent }], viewQueries: [{ propertyName: "oMatSort", first: true, predicate: OMatSort, descendants: true }, { propertyName: "cdkVirtualScrollViewport", first: true, predicate: ["virtualScrollViewPort"], descendants: true }, { propertyName: "spinnerContainer", first: true, predicate: ["spinnerContainer"], descendants: true, read: ElementRef }, { propertyName: "tableBodyEl", first: true, predicate: ["tableBody"], descendants: true }, { propertyName: "tableHeaderEl", first: true, predicate: ["tableHeader"], descendants: true, read: ElementRef }, { propertyName: "tableToolbarEl", first: true, predicate: ["tableToolbar"], descendants: true, read: ElementRef }, { propertyName: "oTableMenu", first: true, predicate: ["tableMenu"], descendants: true }, { propertyName: "exportOptsTemplate", first: true, predicate: ["exportOptsTemplate"], descendants: true }, { propertyName: "tooltip", predicate: MatTooltip, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"o-table-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\" [style.display]=\"isVisible()? '' : 'none'\"\n [class.block-events]=\"showLoading | async\">\n\n <o-data-toolbar #tableToolbar *ngIf=\"hasControls()\" [title]=\"title\" [show-title]=\"showTitle\" class=\"o-table-toolbar\">\n <ng-container o-data-toolbar-projection-start>\n <o-table-buttons #tableButtons [insert-button]=\"insertButton\" [refresh-button]=\"refreshButton\" [delete-button]=\"showDeleteButton\">\n <ng-content select=\"o-table-button\"></ng-content>\n </o-table-buttons>\n </ng-container>\n <ng-content select=\"[o-table-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-table-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-table-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <ng-container *ngIf=\"quickfilterContentChild; else defaultQuickFilter\">\n <ng-content select=\"o-table-quickfilter\"></ng-content>\n </ng-container>\n <ng-template #defaultQuickFilter>\n <ng-container *ngIf=\"quickFilter\">\n <o-table-quickfilter (onChange)=\"tableQuickFilterChanged($event)\">\n </o-table-quickfilter>\n </ng-container>\n </ng-template>\n <button type=\"button\" *ngIf=\"showTableMenuButton\" mat-icon-button class=\"o-table-menu-button\" [matMenuTriggerFor]=\"tableMenu.matMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"ontimize:more_vert\"></mat-icon>\n </button>\n <o-table-menu #tableMenu [select-all-checkbox]=\"selectAllCheckbox\" [export-button]=\"exportButton\"\n [columns-visibility-button]=\"columnsVisibilityButton\" [show-configuration-option]=\"showConfigurationOption\"\n [show-filter-option]=\"showFilterOption\" [show-report-on-demand-option]=\"showReportOnDemandOption\"\n [show-charts-on-demand-option]=\"showChartsOnDemandOption\" [show-reset-width-option]=\"showResetWidthOption\" [show-group-by-option]=\"groupable\">\n <ng-content select=\"o-table-option\"></ng-content>\n </o-table-menu>\n <ng-template #exportOptsTemplate>\n <ng-content select=\"o-table-export-button\"></ng-content>\n </ng-template>\n </ng-container>\n </o-data-toolbar>\n\n <div #tableBody class=\"o-table-body o-scroll\" [class.horizontal-scroll]=\"horizontalScroll\" [class.scrolled]=\"horizontalScrolled\">\n <ng-container *ngIf=\"!enabledVirtualScroll; else tableWithVirtualScroll\">\n <div class=\"o-table-overflow o-scroll\">\n <ng-template *ngTemplateOutlet=\"table\"></ng-template>\n </div>\n </ng-container>\n <ng-template #tableWithVirtualScroll>\n <cdk-virtual-scroll-viewport #virtualScrollViewPort fxFlex>\n <ng-template *ngTemplateOutlet=\"table\"></ng-template>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </div>\n <!--TABLE PAGINATOR-->\n <mat-paginator *ngIf=\"paginator && (showLoading | async)===false\" #matpaginator [length]=\"dataSource?.resultsLength\" [pageIndex]=\"paginator.pageIndex\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"paginator.pageSizeOptions\" (page)=\"onChangePage($event)\" [showFirstLastButtons]=\"paginator.showFirstLastButtons\">\n </mat-paginator>\n\n <!--LOADING-->\n <div #spinnerContainer *ngIf=\"showLoading | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\" [ngStyle]=\"{'top.px': headerHeight}\"\n class=\"spinner-container\" [class.spinner-container-scrollable]=\"loadingScroll | async\">\n <o-table-skeleton></o-table-skeleton>\n </div>\n\n <!-- Disable blocker -->\n <div *ngIf=\"!enabled\" class=\"o-table-disabled-blocker\"></div>\n</div>\n\n<ng-template #table>\n\n <table *ngIf=\"(showLoading | async)===false\" mat-table #table [class.autoadjusted]=\"autoAdjust\" [trackBy]=\"getTrackByFunction()\" [dataSource]=\"dataSource\" oMatSort\n [oMatSortColumns]=\"sortColArray\" [ngClass]=\"rowHeightObservable | async\" (cdkObserveContent)=\"projectContentChanged()\"\n [oTableExpandedFooter]=\"!(loading | async)\" [oTableExpandedFooterColspan]=\"visibleColArray.length\" [multiTemplateDataRows]=\"showExpandableRow()\"\n aria-describedby=\"ontimize-web table\">\n\n <!--Checkbox Column -->\n <ng-container [matColumnDef]=\"oTableOptions.selectColumn.name\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <ng-container *ngIf=\"!tableColumnSelectAllContentChild; else customHeaderSelectAllTemplate\">\n <th mat-header-cell *matHeaderCellDef>\n <div class=\"content\" *ngIf=\"isSelectionModeMultiple()\">\n <o-table-header-select-all [column]=\"oTableOptions.selectColumn\"></o-table-header-select-all>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox name=\"id[]\" (click)=\"$event.stopPropagation()\" [disabled]=\"isDisableCheckbox(row)\"\n (change)=\"selectionCheckboxToggle($event, row)\" [checked]=\"isRowSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n <ng-template #customHeaderSelectAllTemplate>\n <th mat-header-cell *matHeaderCellDef [class.resizable]=\"resizable\" class=\"mat-header-select-all-with-title o-center\"\n [style.width]=\"oTableOptions.selectColumn.width\" [style.min-width]=\"getMinWidthColumn(oTableOptions.selectColumn)\"\n [style.max-width]=\"oTableOptions.selectColumn.maxWidth\">\n <div class=\"content\">\n <o-table-header-select-all [column]=\"oTableOptions.selectColumn\"></o-table-header-select-all>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"o-center\" [style.width]=\"oTableOptions.selectColumn.width\"\n [style.min-width]=\"getMinWidthColumn(oTableOptions.selectColumn)\" [style.max-width]=\"oTableOptions.selectColumn.maxWidth\">\n <mat-checkbox name=\"id[]\" (click)=\"$event.stopPropagation()\" [disabled]=\"isDisableCheckbox(row)\"\n (change)=\"selectionCheckboxToggle($event, row)\" [checked]=\"isRowSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-template>\n\n\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <!--Expandable Column -->\n <ng-container [matColumnDef]=\"oTableOptions.expandableColumn.name\" *ngIf=\"isColumnExpandable()\">\n <th mat-header-cell *matHeaderCellDef>\n {{ oTableOptions.expandableColumn.title }}\n </th>\n <td mat-cell *matCellDef=\"let row;let rowIndex = dataIndex\">\n <mat-icon *ngIf=\"showExpandableIcon(row, rowIndex) | async\" (click)=\"toogleRowExpandable(row, rowIndex, $event)\">\n <ng-container *ngIf=\"isExpanded(row)\">{{ tableRowExpandable.iconCollapse }}</ng-container>\n <ng-container *ngIf=\"!isExpanded(row)\">{{ tableRowExpandable.iconExpand }}</ng-container>\n </mat-icon>\n </td>\n </ng-container>\n\n <!-- Generic column definition -->\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"column.name\">\n <!--Define header-cell-->\n\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getTitleAlignClass(column)\" [class.resizable]=\"resizable\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\">\n\n <div class=\"content\">\n <o-table-header [column]=\"column\"></o-table-header>\n </div>\n </th>\n\n\n <!--Define mat-cell-->\n <ng-container *ngIf=\"!table.multiTemplateDataRows; else cellTemplateMultiTemplateDataRows\">\n <td #cell mat-cell *matCellDef=\"let row;let rowIndex = index \" [ngClass]=\"[column.className, getCellAlignClass(column)]\"\n (click)=\"handleClick(row, column, rowIndex, cell, $event)\" (dblclick)=\"handleDoubleClick(row, column, rowIndex, cell, $event)\"\n [class.empty-cell]=\"isEmpty(row[column.name])\" [matTooltipDisabled]=\"!column.hasTooltip()\" [matTooltip]=\"column.getTooltip(row)\"\n matTooltipPosition=\"below\" matTooltipShowDelay=\"750\" matTooltipClass=\"o-table-cell-tooltip\"\n [class.o-mat-cell-multiline]=\"(column.isMultiline | async)\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column.name, rowValue:row, rowIndex:rowIndex}\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\"\n [class.o-table-editing-cell]=\"isRowSelected(row) && column.editing\">\n <ng-container *ngTemplateOutlet=\"cellRenderer;context:{column:column,row:row}\"></ng-container>\n </td>\n </ng-container>\n <ng-template #cellTemplateMultiTemplateDataRows>\n <td #cell mat-cell *matCellDef=\"let row;let rowIndex = dataIndex \" [ngClass]=\"[column.className, getCellAlignClass(column)]\"\n (click)=\"handleClick(row, column, rowIndex, cell, $event)\" (dblclick)=\"handleDoubleClick(row, column, rowIndex, cell, $event)\"\n [class.empty-cell]=\"isEmpty(row[column.name])\" [matTooltipDisabled]=\"!column.hasTooltip()\" [matTooltip]=\"column.getTooltip(row)\"\n matTooltipPosition=\"below\" matTooltipShowDelay=\"750\" matTooltipClass=\"o-table-cell-tooltip\"\n [class.o-mat-cell-multiline]=\"(column.isMultiline | async)\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column.name, rowValue:row, rowIndex:rowIndex}\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\"\n [class.o-table-editing-cell]=\"isRowSelected(row) && column.editing\">\n <ng-container *ngTemplateOutlet=\"cellRenderer;context:{column:column,row:row}\"></ng-container>\n\n </td>\n </ng-template>\n <!--Define mat-footer-cell-->\n <ng-container *ngIf=\"showTotals | async\">\n <td mat-footer-cell *matFooterCellDef [ngClass]=\"column.className\">\n <div class=\"title\" *ngIf=\"column.aggregate && column.aggregate.title\">\n {{ column.aggregate.title | oTranslate }}\n </div>\n <ng-container *ngIf=\"!column.renderer\">\n {{ dataSource.getAggregateData(column) }}\n </ng-container>\n <ng-template *ngIf=\"column.renderer && column.aggregate\" [ngTemplateOutlet]=\"column.renderer.templateref\"\n [ngTemplateOutletContext]=\"{cellvalue: dataSource.getAggregateData(column)}\"></ng-template>\n </td>\n </ng-container>\n\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container *ngIf=\"hasExpandedRow\">\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let row;let rowIndex= dataIndex\" [attr.colspan]=\"oTableOptions.visibleColumns.length\">\n <div [ngClass]=\"getExpandedRowContainerClass(rowIndex)\" [@detailExpand]=\"getStateExpand(row)\">\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <!--FOOTER-INSERTABLE-->\n <ng-container *ngIf=\"showLastInsertableRow && oTableInsertableRowComponent\">\n <ng-container [matColumnDef]=\"oTableOptions.selectColumn.name + getSuffixColumnInsertable()\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <td mat-footer-cell *matFooterCellDef>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"column.name+ getSuffixColumnInsertable()\">\n\n <td mat-footer-cell *matFooterCellDef [ngClass]=\"column.className\">\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && !oTableInsertableRowComponent.useCellEditor(column)\">\n <mat-form-field class=\"insertable-form-field o-table-cell-editor-text o-table-cell-editor\" [hideRequiredMarker]=\"false\">\n <input matInput type=\"text\" [placeholder]=\"oTableInsertableRowComponent.getPlaceholder(column)\" [id]=\"column.attr\"\n [formControl]=\"oTableInsertableRowComponent.getControl(column)\" [required]=\"oTableInsertableRowComponent.isColumnRequired(column)\">\n <mat-error *oMatError=\"oTableInsertableRowComponent.columnHasError(column, 'required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && oTableInsertableRowComponent.useCellEditor(column)\">\n <ng-template [ngTemplateOutlet]=\"oTableInsertableRowComponent.columnEditors[column.attr].templateref\"\n [ngTemplateOutletContext]=\"{ rowvalue: oTableInsertableRowComponent.rowData }\">\n </ng-template>\n </ng-container>\n </td>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"showFirstInsertableRow && oTableInsertableRowComponent\">\n <ng-container [matColumnDef]=\"getColumnInsertable(oTableOptions.selectColumn.name)\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <td mat-header-cell *matHeaderCellDef>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"getColumnInsertable(column.name)\">\n\n <td mat-header-cell *matHeaderCellDef [ngClass]=\"column.className\">\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && !oTableInsertableRowComponent.useCellEditor(column)\">\n <mat-form-field class=\"insertable-form-field\" [hideRequiredMarker]=\"false\">\n <input matInput type=\"text\" [placeholder]=\"oTableInsertableRowComponent.getPlaceholder(column)\" [id]=\"column.attr\"\n [formControl]=\"oTableInsertableRowComponent.getControl(column)\" [required]=\"oTableInsertableRowComponent.isColumnRequired(column)\">\n <mat-error *oMatError=\"oTableInsertableRowComponent.columnHasError(column, 'required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && oTableInsertableRowComponent.useCellEditor(column)\">\n <ng-template [ngTemplateOutlet]=\"oTableInsertableRowComponent.columnEditors[column.attr].templateref\"\n [ngTemplateOutletContext]=\"{ rowvalue: oTableInsertableRowComponent.rowData }\">\n </ng-template>\n </ng-container>\n </td>\n </ng-container>\n\n </ng-container>\n\n <!-- Definition column group header -->\n <ng-container *ngFor=\"let column of groupingHeadersRows; let i = index\" [matColumnDef]=\"column\">\n <td mat-cell *matCellDef=\"let group\" class=\"grouping-row\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column, rowValue:group, rowIndex:i}\" [ngClass]=\"getGroupHeaderCellAlignClass(column)\">\n <div *ngIf=\"i===0\" class=\"grouping-title-wrapper\" [ngStyle]=\"{'padding-left': 20*(group.level-1)+'px'}\">\n <mat-icon>{{ group.expanded ? 'expand_more' : 'chevron_right' }}</mat-icon>\n {{ group.title }}\n </div>\n <div class=\"grouping-aggregate\" *ngIf=\"group.hasActiveAggregate(visibleColArray[i])\">\n {{ group.getColumnActiveAggregateTitle(visibleColArray[i]) | oTranslate }} :\n <ng-container *ngIf=\"!getOColumnFromGroupHeaderColumn(column).renderer\">\n {{ group.getColumnAggregateValue(visibleColArray[i])}}\n </ng-container>\n <ng-container *ngIf=\"getOColumnFromGroupHeaderColumn(column).renderer\">\n <ng-template\n *ngTemplateOutlet=\"getOColumnFromGroupHeaderColumn(column).renderer?.templateref; context:{ cellvalue: group.getColumnAggregateValue(visibleColArray[i]) }\">\n </ng-template>\n </ng-container>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"position\">\n <td mat-cell *matCellDef=\"let row\"> {{row}} </td>\n </ng-container>\n\n <tr #tableHeader mat-header-row *matHeaderRowDef=\"oTableOptions.visibleColumns; sticky: fixedHeader\"></tr>\n\n <ng-container *ngIf=\"!table.multiTemplateDataRows; else rowTemplateMultiTemplateDataRows\">\n <tr mat-row oTableRow *matRowDef=\"let row; columns: oTableOptions.visibleColumns; when:isNotGroup; let rowIndex = index\"\n [class.selected]=\"isRowSelected(row)\" [ngClass]=\"row | oTableRowClass: rowIndex: rowClass\">\n </tr>\n </ng-container>\n <ng-template #rowTemplateMultiTemplateDataRows>\n <tr mat-row oTableRow *matRowDef=\"let row; columns: oTableOptions.visibleColumns; when:isNotGroup; let rowIndex = dataIndex\"\n [class.selected]=\"isRowSelected(row)\" [ngClass]=\"row | oTableRowClass: rowIndex: rowClass\">\n </tr>\n </ng-template>\n\n <!-- Row Group header -->\n <tr mat-row *matRowDef=\"let row; columns: groupingHeadersRows; when:isGroup\" (click)=\"groupHeaderClick(row)\"\n [ngClass]=\"getClassNameGroupHeader(row)\">\n </tr>\n\n <!-- Expanded detail row-->\n <ng-container *ngIf=\"hasExpandedRow\">\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"o-table-row-expanded\"></tr>\n </ng-container>\n\n <ng-container *ngIf=\"showLastInsertableRow\">\n <tr mat-footer-row *matFooterRowDef=\"oTableOptions.columnsInsertables; sticky: true\"\n (keyup)=\"oTableInsertableRowComponent.handleKeyboardEvent($event)\" class=\"o-table-insertable\"></tr>\n </ng-container>\n <ng-container *ngIf=\"showFirstInsertableRow\">\n <tr mat-header-row *matHeaderRowDef=\"oTableOptions.columnsInsertables; sticky: true\"\n (keyup)=\"oTableInsertableRowComponent.handleKeyboardEvent($event)\" class=\"o-table-insertable\"> </tr>\n </ng-container>\n <ng-container *ngIf=\"showTotals | async\">\n <tr mat-footer-row *matFooterRowDef=\"oTableOptions.visibleColumns; sticky: true\" class=\"o-table-aggregate\">\n </tr>\n </ng-container>\n </table>\n\n</ng-template>\n\n<ng-container *ngIf=\"!contextMenuContentChild && contextMenu\">\n <o-table-context-menu [insert]=\"insertButton\" [edit]=\"editionMode !== EDIT_MODE_NONE\" [view-detail]=\"detailMode !== DETAIL_MODE_NONE\"\n [refresh]=\"refreshButton\" [delete]=\"deleteButton\" [filter]=\"showFilterOption\" [group-by-row]=\"groupable\">\n </o-table-context-menu>\n</ng-container>\n\n<ng-template #cellRenderer let-row=\"row\" let-column=\"column\">\n <div class=\"content\">\n\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"column.renderer != null && (!column.editing || column.editing && !isRowSelected(row))\">\n <ng-template *ngTemplateOutlet=\"column.renderer?.templateref; context:{ cellvalue: row[column.name], rowvalue:row }\">\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"isRowSelected(row) && column.editing\">\n <ng-template *ngTemplateOutlet=\"column.editor?.templateref; context:{ cellvalue: row[column.name], rowvalue:row }\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"column.type === 'editButtonInRow' || column.type === 'detailButtonInRow'\">\n <div fxLayoutAlign=\"center center\" class=\"o-action-cell-renderer\" (click)=\"onDetailButtonClick(column, row, $event)\">\n <mat-icon>{{ getDetailButtonIcon(column) }}</mat-icon>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>{{ row[column.name] }}</ng-container>\n </ng-container>\n\n </div>\n</ng-template>\n", styles: [".o-table{height:100%;max-height:100%;width:100%}.o-table.o-table-disabled{opacity:.4}.o-table .o-table-container{height:100%;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:flex-start;align-content:stretch;min-width:100%;min-height:400px;position:relative;padding:0 .5%}.o-table .o-table-container .o-table-body{display:flex;flex:1 1 auto}.o-table .o-table-container .o-table-body .o-table-overflow{overflow-y:auto;overflow-x:hidden;min-width:100%}.o-table .o-table-container .o-table-body.horizontal-scroll .o-table-overflow{overflow-x:auto}.o-table .o-table-container .o-table-body thead .mat-mdc-header-row th:last-child .o-table-column-resizer{display:none}.o-table .o-table-container.block-events{pointer-events:none}.o-table .o-table-container.block-events>.o-table-toolbar,.o-table .o-table-container.block-events>.o-table-body .mat-mdc-header-row{opacity:.75}.o-table .o-table-container .o-table-toolbar{height:40px}.o-table .o-table-container .o-table-toolbar>div{max-height:100%}.o-table .o-table-container .o-table-toolbar .buttons{margin:0 10px 0 4px}.o-table .o-table-container .o-table-body{max-width:100%;height:100%;overflow:hidden;position:relative}.o-table .o-table-container .o-table-body .spinner-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-table .o-table-container .o-table-body.horizontal-scroll{overflow-x:auto;padding-bottom:16px}.o-table .o-table-container .o-table-body.horizontal-scroll .mat-mdc-header-cell{width:150px}.o-table .o-table-container .o-table-body .o-table-no-results{cursor:default;text-align:center}.o-table .o-table-container .o-table-body .o-table-no-results td{text-align:center}.o-table .o-table-container .mat-mdc-table{table-layout:fixed;width:100%}.o-table .o-table-container .mat-mdc-table.autoadjusted{table-layout:auto}.o-table .o-table-container .mat-mdc-table td .content,.o-table .o-table-container .mat-mdc-table th .content{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table.small .mat-mdc-header-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-header-row .mat-mdc-header-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-row .mat-mdc-header-cell .image-avatar{width:24px;height:24px}.o-table .o-table-container .mat-mdc-table.large .column-filter-icon{margin-top:4px}.o-table .o-table-container .mat-mdc-table.large .mat-sort-header-arrow{margin-top:7px}.o-table .o-table-container .mat-mdc-table tr.mat-mdc-row.o-table-row-expanded{height:0}.o-table .o-table-container .mat-mdc-table tr.o-table-insertable td{height:1px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row{box-sizing:border-box;transition:background-color .2s;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell{padding:0 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row{padding-top:30px;cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row .grouping-title-wrapper,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row .grouping-title-wrapper{position:absolute;width:100%;left:0;top:0;text-align:left}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row .grouping-aggregate,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row .grouping-aggregate{font-weight:700;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-bottom:8px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.empty-cell,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.empty-cell{min-height:16px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .action-cell-renderer,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .action-cell-renderer{cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-start,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-start{text-align:start}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-center,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-center{text-align:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-end,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-end{text-align:end}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell *,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell *{vertical-align:middle}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-mat-cell-multiline:not(.mat-mdc-header-cell),.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-mat-cell-multiline:not(.mat-mdc-header-cell){padding:6px 12px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-mat-cell-multiline .content,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-mat-cell-multiline .content{overflow:initial;white-space:normal;text-overflow:unset}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .image-avatar{width:32px;height:32px;margin:1px auto;overflow:hidden;border-radius:50%;position:relative;z-index:1}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .image-avatar img,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .image-avatar img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:inherit;max-height:inherit}.o-table .o-table-container .mat-mdc-table .o-action-cell-renderer{display:inline-block;cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell{overflow:hidden;position:relative;box-sizing:border-box;padding:0 12px;vertical-align:middle}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select.mat-header-select-all-with-title{padding-right:12px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell:first-of-type{padding-left:0}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell:not(.o-column-image){overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .o-table-header-indicator-numbered{font-size:8px;position:absolute;text-align:center;display:inline-block;width:18px;height:18px;line-height:18px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;bottom:-10px;right:-9px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .column-filter-icon{cursor:pointer;font-size:18px;width:18px;height:18px;line-height:1}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-button{flex:1;display:block;place-content:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .header-title-container{cursor:default;min-height:20px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .header-title-container,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.start,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.start .mat-sort-header-button{text-align:left}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.center,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.center .mat-sort-header-button{text-align:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.end,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.end .mat-sort-header-button{text-align:right}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select{box-sizing:content-box;overflow:initial}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select:not(.mat-header-select-all-with-title),.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select:not(.mat-header-select-all-with-title){width:30px}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select .mat-checkbox-layout,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select .mat-checkbox-layout{text-overflow:ellipsis;overflow:hidden;display:inline}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-expandable,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-expandable{width:40px;box-sizing:content-box;padding:0 0 0 24px;overflow:initial}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell .row-container-expanded{overflow:hidden;display:flex}.o-table .o-table-container .o-table-disabled-blocker{bottom:0;left:0;position:absolute;right:0;top:0;z-index:100}.o-table .spinner-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-table .spinner-container-scrollable{position:relative}.o-table.o-table-fixed{display:flex}.o-table.o-table-fixed .o-table-container{display:flex;flex-direction:column}.o-table.o-table-fixed .o-table-body{display:flex;flex:1}.o-table.o-table-fixed .o-table-body .o-table-overflow{flex:1;overflow-y:auto}.mat-mdc-tooltip.o-table-cell-tooltip{word-wrap:break-word;overflow:hidden;min-width:140px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i14.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i14.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i14.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i14.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i14.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i14.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i14.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i14.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i14.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i14.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i14.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i14.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i14.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i14.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i7$4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: OContextMenuDirective, selector: "[oContextMenu]", inputs: ["oContextMenu", "oContextMenuData"] }, { kind: "directive", type: i18.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: OMatSort, selector: "[oMatSort]", inputs: ["oMatSortDisabled", "oMatSortColumns"], outputs: ["matSortChange"], exportAs: ["oMatSort"] }, { kind: "component", type: ODataToolbarComponent, selector: "o-data-toolbar", inputs: ["show-title", "title"] }, { kind: "component", type: OTableContextMenuComponent, selector: "o-table-context-menu", inputs: ["context-menu", "insert", "edit", "view-detail", "copy", "select-all", "refresh", "delete", "filter", "group-by-row"] }, { kind: "directive", type: OTableRowDirective, selector: "[oTableRow]" }, { kind: "directive", type: OTableExpandedFooterDirective, selector: "[oTableExpandedFooter]", inputs: ["oTableExpandedFooter", "oTableExpandedFooterColspan"] }, { kind: "component", type: OTableButtonsComponent, selector: "o-table-buttons", inputs: ["insert-button", "refresh-button", "delete-button"] }, { kind: "component", type: OTableMenuComponent, selector: "o-table-menu", inputs: ["select-all-checkbox", "export-button", "columns-visibility-button", "show-configuration-option", "show-filter-option", "show-group-by-option", "show-reset-width-option", "show-report-on-demand-option", "show-charts-on-demand-option"] }, { kind: "component", type: OTableQuickfilterComponent, selector: "o-table-quickfilter", inputs: ["placeholder"], outputs: ["onChange"] }, { kind: "component", type: OTableHeaderComponent, selector: "o-table-header", inputs: ["column"] }, { kind: "component", type: OTableHeaderSelectAllComponent, selector: "o-table-header-select-all", inputs: ["column"] }, { kind: "component", type: OTableSkeletonComponent, selector: "o-table-skeleton" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }, { kind: "pipe", type: OTableRowClassPipe, name: "oTableRowClass" }], animations: [
|
|
33056
33593
|
trigger('detailExpand', [
|
|
33057
33594
|
state('collapsed', style({ height: '0px', minHeight: '0' })),
|
|
33058
33595
|
state('expanded', style({ height: '*' })),
|
|
@@ -33193,7 +33730,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
33193
33730
|
'[class.o-table-fixed]': 'fixedHeader',
|
|
33194
33731
|
'[class.o-table-disabled]': '!enabled',
|
|
33195
33732
|
'(document:click)': 'handleDOMClick($event)'
|
|
33196
|
-
}, template: "<div class=\"o-table-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\" [style.display]=\"isVisible()? '' : 'none'\"\n [class.block-events]=\"showLoading | async\">\n\n <o-data-toolbar #tableToolbar *ngIf=\"hasControls()\" [title]=\"title\" [show-title]=\"showTitle\" class=\"o-table-toolbar\">\n <ng-container o-data-toolbar-projection-start>\n <o-table-buttons #tableButtons [insert-button]=\"insertButton\" [refresh-button]=\"refreshButton\" [delete-button]=\"showDeleteButton\">\n <ng-content select=\"o-table-button\"></ng-content>\n </o-table-buttons>\n </ng-container>\n <ng-content select=\"[o-table-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-table-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-table-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <ng-container *ngIf=\"quickfilterContentChild; else defaultQuickFilter\">\n <ng-content select=\"o-table-quickfilter\"></ng-content>\n </ng-container>\n <ng-template #defaultQuickFilter>\n <ng-container *ngIf=\"quickFilter\">\n <o-table-quickfilter (onChange)=\"tableQuickFilterChanged($event)\">\n </o-table-quickfilter>\n </ng-container>\n </ng-template>\n <button type=\"button\" *ngIf=\"showTableMenuButton\" mat-icon-button class=\"o-table-menu-button\" [matMenuTriggerFor]=\"tableMenu.matMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"ontimize:more_vert\"></mat-icon>\n </button>\n <o-table-menu #tableMenu [select-all-checkbox]=\"selectAllCheckbox\" [export-button]=\"exportButton\"\n [columns-visibility-button]=\"columnsVisibilityButton\" [show-configuration-option]=\"showConfigurationOption\"\n [show-filter-option]=\"showFilterOption\" [show-report-on-demand-option]=\"showReportOnDemandOption\"\n [show-charts-on-demand-option]=\"showChartsOnDemandOption\" [show-reset-width-option]=\"showResetWidthOption\" [show-group-by-option]=\"groupable\">\n <ng-content select=\"o-table-option\"></ng-content>\n </o-table-menu>\n <ng-template #exportOptsTemplate>\n <ng-content select=\"o-table-export-button\"></ng-content>\n </ng-template>\n </ng-container>\n </o-data-toolbar>\n\n <div #tableBody class=\"o-table-body o-scroll\" [class.horizontal-scroll]=\"horizontalScroll\" [class.scrolled]=\"horizontalScrolled\">\n <ng-container *ngIf=\"!enabledVirtualScroll; else tableWithVirtualScroll\">\n <div class=\"o-table-overflow o-scroll\">\n <ng-template *ngTemplateOutlet=\"table\"></ng-template>\n </div>\n </ng-container>\n <ng-template #tableWithVirtualScroll>\n <cdk-virtual-scroll-viewport #virtualScrollViewPort fxFlex>\n <ng-template *ngTemplateOutlet=\"table\"></ng-template>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </div>\n <!--TABLE PAGINATOR-->\n <mat-paginator *ngIf=\"paginator && (showLoading | async)===false\" #matpaginator [length]=\"dataSource?.resultsLength\" [pageIndex]=\"paginator.pageIndex\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"paginator.pageSizeOptions\" (page)=\"onChangePage($event)\" [showFirstLastButtons]=\"paginator.showFirstLastButtons\">\n </mat-paginator>\n\n <!--LOADING-->\n <div #spinnerContainer *ngIf=\"showLoading | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\" [ngStyle]=\"{'top.px': headerHeight}\"\n class=\"spinner-container\" [class.spinner-container-scrollable]=\"loadingScroll | async\">\n <o-table-skeleton></o-table-skeleton>\n </div>\n\n <!-- Disable blocker -->\n <div *ngIf=\"!enabled\" class=\"o-table-disabled-blocker\"></div>\n</div>\n\n<ng-template #table>\n\n <table *ngIf=\"(showLoading | async)===false\" mat-table #table [class.autoadjusted]=\"autoAdjust\" [trackBy]=\"getTrackByFunction()\" [dataSource]=\"dataSource\" oMatSort\n [oMatSortColumns]=\"sortColArray\" [ngClass]=\"rowHeightObservable | async\" (cdkObserveContent)=\"projectContentChanged()\"\n [oTableExpandedFooter]=\"!(loading | async)\" [oTableExpandedFooterColspan]=\"visibleColArray.length\" [multiTemplateDataRows]=\"showExpandableRow()\"\n aria-describedby=\"ontimize-web table\">\n\n <!--Checkbox Column -->\n <ng-container [matColumnDef]=\"oTableOptions.selectColumn.name\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <ng-container *ngIf=\"!tableColumnSelectAllContentChild; else customHeaderSelectAllTemplate\">\n <th mat-header-cell *matHeaderCellDef>\n <div class=\"content\">\n <o-table-header-select-all [column]=\"oTableOptions.selectColumn\"></o-table-header-select-all>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox name=\"id[]\" (click)=\"$event.stopPropagation()\" [disabled]=\"isDisableCheckbox(row)\"\n (change)=\"selectionCheckboxToggle($event, row)\" [checked]=\"isRowSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n <ng-template #customHeaderSelectAllTemplate>\n <th mat-header-cell *matHeaderCellDef [class.resizable]=\"resizable\" class=\"mat-header-select-all-with-title o-center\"\n [style.width]=\"oTableOptions.selectColumn.width\" [style.min-width]=\"getMinWidthColumn(oTableOptions.selectColumn)\"\n [style.max-width]=\"oTableOptions.selectColumn.maxWidth\">\n <div class=\"content\">\n <o-table-header-select-all [column]=\"oTableOptions.selectColumn\"></o-table-header-select-all>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"o-center\" [style.width]=\"oTableOptions.selectColumn.width\"\n [style.min-width]=\"getMinWidthColumn(oTableOptions.selectColumn)\" [style.max-width]=\"oTableOptions.selectColumn.maxWidth\">\n <mat-checkbox name=\"id[]\" (click)=\"$event.stopPropagation()\" [disabled]=\"isDisableCheckbox(row)\"\n (change)=\"selectionCheckboxToggle($event, row)\" [checked]=\"isRowSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-template>\n\n\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <!--Expandable Column -->\n <ng-container [matColumnDef]=\"oTableOptions.expandableColumn.name\" *ngIf=\"isColumnExpandable()\">\n <th mat-header-cell *matHeaderCellDef>\n {{ oTableOptions.expandableColumn.title }}\n </th>\n <td mat-cell *matCellDef=\"let row;let rowIndex = dataIndex\">\n <mat-icon *ngIf=\"showExpandableIcon(row, rowIndex) | async\" (click)=\"toogleRowExpandable(row, rowIndex, $event)\">\n <ng-container *ngIf=\"isExpanded(row)\">{{ tableRowExpandable.iconCollapse }}</ng-container>\n <ng-container *ngIf=\"!isExpanded(row)\">{{ tableRowExpandable.iconExpand }}</ng-container>\n </mat-icon>\n </td>\n </ng-container>\n\n <!-- Generic column definition -->\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"column.name\">\n <!--Define header-cell-->\n\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getTitleAlignClass(column)\" [class.resizable]=\"resizable\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\">\n\n <div class=\"content\">\n <o-table-header [column]=\"column\"></o-table-header>\n </div>\n </th>\n\n\n <!--Define mat-cell-->\n <ng-container *ngIf=\"!table.multiTemplateDataRows; else cellTemplateMultiTemplateDataRows\">\n <td #cell mat-cell *matCellDef=\"let row;let rowIndex = index \" [ngClass]=\"[column.className, getCellAlignClass(column)]\"\n (click)=\"handleClick(row, column, rowIndex, cell, $event)\" (dblclick)=\"handleDoubleClick(row, column, rowIndex, cell, $event)\"\n [class.empty-cell]=\"isEmpty(row[column.name])\" [matTooltipDisabled]=\"!column.hasTooltip()\" [matTooltip]=\"column.getTooltip(row)\"\n matTooltipPosition=\"below\" matTooltipShowDelay=\"750\" matTooltipClass=\"o-table-cell-tooltip\"\n [class.o-mat-cell-multiline]=\"(column.isMultiline | async)\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column.name, rowValue:row, rowIndex:rowIndex}\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\"\n [class.o-table-editing-cell]=\"isRowSelected(row) && column.editing\">\n <ng-container *ngTemplateOutlet=\"cellRenderer;context:{column:column,row:row}\"></ng-container>\n </td>\n </ng-container>\n <ng-template #cellTemplateMultiTemplateDataRows>\n <td #cell mat-cell *matCellDef=\"let row;let rowIndex = dataIndex \" [ngClass]=\"[column.className, getCellAlignClass(column)]\"\n (click)=\"handleClick(row, column, rowIndex, cell, $event)\" (dblclick)=\"handleDoubleClick(row, column, rowIndex, cell, $event)\"\n [class.empty-cell]=\"isEmpty(row[column.name])\" [matTooltipDisabled]=\"!column.hasTooltip()\" [matTooltip]=\"column.getTooltip(row)\"\n matTooltipPosition=\"below\" matTooltipShowDelay=\"750\" matTooltipClass=\"o-table-cell-tooltip\"\n [class.o-mat-cell-multiline]=\"(column.isMultiline | async)\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column.name, rowValue:row, rowIndex:rowIndex}\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\"\n [class.o-table-editing-cell]=\"isRowSelected(row) && column.editing\">\n <ng-container *ngTemplateOutlet=\"cellRenderer;context:{column:column,row:row}\"></ng-container>\n\n </td>\n </ng-template>\n <!--Define mat-footer-cell-->\n <ng-container *ngIf=\"showTotals | async\">\n <td mat-footer-cell *matFooterCellDef [ngClass]=\"column.className\">\n <div class=\"title\" *ngIf=\"column.aggregate && column.aggregate.title\">\n {{ column.aggregate.title | oTranslate }}\n </div>\n <ng-container *ngIf=\"!column.renderer\">\n {{ dataSource.getAggregateData(column) }}\n </ng-container>\n <ng-template *ngIf=\"column.renderer && column.aggregate\" [ngTemplateOutlet]=\"column.renderer.templateref\"\n [ngTemplateOutletContext]=\"{cellvalue: dataSource.getAggregateData(column)}\"></ng-template>\n </td>\n </ng-container>\n\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container *ngIf=\"hasExpandedRow\">\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let row;let rowIndex= dataIndex\" [attr.colspan]=\"oTableOptions.visibleColumns.length\">\n <div [ngClass]=\"getExpandedRowContainerClass(rowIndex)\" [@detailExpand]=\"getStateExpand(row)\">\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <!--FOOTER-INSERTABLE-->\n <ng-container *ngIf=\"showLastInsertableRow && oTableInsertableRowComponent\">\n <ng-container [matColumnDef]=\"oTableOptions.selectColumn.name + getSuffixColumnInsertable()\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <td mat-footer-cell *matFooterCellDef>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"column.name+ getSuffixColumnInsertable()\">\n\n <td mat-footer-cell *matFooterCellDef [ngClass]=\"column.className\">\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && !oTableInsertableRowComponent.useCellEditor(column)\">\n <mat-form-field class=\"insertable-form-field o-table-cell-editor-text o-table-cell-editor\" [hideRequiredMarker]=\"false\">\n <input matInput type=\"text\" [placeholder]=\"oTableInsertableRowComponent.getPlaceholder(column)\" [id]=\"column.attr\"\n [formControl]=\"oTableInsertableRowComponent.getControl(column)\" [required]=\"oTableInsertableRowComponent.isColumnRequired(column)\">\n <mat-error *oMatError=\"oTableInsertableRowComponent.columnHasError(column, 'required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && oTableInsertableRowComponent.useCellEditor(column)\">\n <ng-template [ngTemplateOutlet]=\"oTableInsertableRowComponent.columnEditors[column.attr].templateref\"\n [ngTemplateOutletContext]=\"{ rowvalue: oTableInsertableRowComponent.rowData }\">\n </ng-template>\n </ng-container>\n </td>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"showFirstInsertableRow && oTableInsertableRowComponent\">\n <ng-container [matColumnDef]=\"getColumnInsertable(oTableOptions.selectColumn.name)\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <td mat-header-cell *matHeaderCellDef>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"getColumnInsertable(column.name)\">\n\n <td mat-header-cell *matHeaderCellDef [ngClass]=\"column.className\">\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && !oTableInsertableRowComponent.useCellEditor(column)\">\n <mat-form-field class=\"insertable-form-field\" [hideRequiredMarker]=\"false\">\n <input matInput type=\"text\" [placeholder]=\"oTableInsertableRowComponent.getPlaceholder(column)\" [id]=\"column.attr\"\n [formControl]=\"oTableInsertableRowComponent.getControl(column)\" [required]=\"oTableInsertableRowComponent.isColumnRequired(column)\">\n <mat-error *oMatError=\"oTableInsertableRowComponent.columnHasError(column, 'required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && oTableInsertableRowComponent.useCellEditor(column)\">\n <ng-template [ngTemplateOutlet]=\"oTableInsertableRowComponent.columnEditors[column.attr].templateref\"\n [ngTemplateOutletContext]=\"{ rowvalue: oTableInsertableRowComponent.rowData }\">\n </ng-template>\n </ng-container>\n </td>\n </ng-container>\n\n </ng-container>\n\n <!-- Definition column group header -->\n <ng-container *ngFor=\"let column of groupingHeadersRows; let i = index\" [matColumnDef]=\"column\">\n <td mat-cell *matCellDef=\"let group\" class=\"grouping-row\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column, rowValue:group, rowIndex:i}\" [ngClass]=\"getGroupHeaderCellAlignClass(column)\">\n <div *ngIf=\"i===0\" class=\"grouping-title-wrapper\" [ngStyle]=\"{'padding-left': 20*(group.level-1)+'px'}\">\n <mat-icon>{{ group.expanded ? 'expand_more' : 'chevron_right' }}</mat-icon>\n {{ group.title }}\n </div>\n <div class=\"grouping-aggregate\" *ngIf=\"group.hasActiveAggregate(visibleColArray[i])\">\n {{ group.getColumnActiveAggregateTitle(visibleColArray[i]) | oTranslate }} :\n <ng-container *ngIf=\"!getOColumnFromGroupHeaderColumn(column).renderer\">\n {{ group.getColumnAggregateValue(visibleColArray[i])}}\n </ng-container>\n <ng-container *ngIf=\"getOColumnFromGroupHeaderColumn(column).renderer\">\n <ng-template\n *ngTemplateOutlet=\"getOColumnFromGroupHeaderColumn(column).renderer?.templateref; context:{ cellvalue: group.getColumnAggregateValue(visibleColArray[i]) }\">\n </ng-template>\n </ng-container>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"position\">\n <td mat-cell *matCellDef=\"let row\"> {{row}} </td>\n </ng-container>\n\n <tr #tableHeader mat-header-row *matHeaderRowDef=\"oTableOptions.visibleColumns; sticky: fixedHeader\"></tr>\n\n <ng-container *ngIf=\"!table.multiTemplateDataRows; else rowTemplateMultiTemplateDataRows\">\n <tr mat-row oTableRow *matRowDef=\"let row; columns: oTableOptions.visibleColumns; when:isNotGroup; let rowIndex = index\"\n [class.selected]=\"isRowSelected(row)\" [ngClass]=\"row | oTableRowClass: rowIndex: rowClass\">\n </tr>\n </ng-container>\n <ng-template #rowTemplateMultiTemplateDataRows>\n <tr mat-row oTableRow *matRowDef=\"let row; columns: oTableOptions.visibleColumns; when:isNotGroup; let rowIndex = dataIndex\"\n [class.selected]=\"isRowSelected(row)\" [ngClass]=\"row | oTableRowClass: rowIndex: rowClass\">\n </tr>\n </ng-template>\n\n <!-- Row Group header -->\n <tr mat-row *matRowDef=\"let row; columns: groupingHeadersRows; when:isGroup\" (click)=\"groupHeaderClick(row)\"\n [ngClass]=\"getClassNameGroupHeader(row)\">\n </tr>\n\n <!-- Expanded detail row-->\n <ng-container *ngIf=\"hasExpandedRow\">\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"o-table-row-expanded\"></tr>\n </ng-container>\n\n <ng-container *ngIf=\"showLastInsertableRow\">\n <tr mat-footer-row *matFooterRowDef=\"oTableOptions.columnsInsertables; sticky: true\"\n (keyup)=\"oTableInsertableRowComponent.handleKeyboardEvent($event)\" class=\"o-table-insertable\"></tr>\n </ng-container>\n <ng-container *ngIf=\"showFirstInsertableRow\">\n <tr mat-header-row *matHeaderRowDef=\"oTableOptions.columnsInsertables; sticky: true\"\n (keyup)=\"oTableInsertableRowComponent.handleKeyboardEvent($event)\" class=\"o-table-insertable\"> </tr>\n </ng-container>\n <ng-container *ngIf=\"showTotals | async\">\n <tr mat-footer-row *matFooterRowDef=\"oTableOptions.visibleColumns; sticky: true\" class=\"o-table-aggregate\">\n </tr>\n </ng-container>\n </table>\n\n</ng-template>\n\n<ng-container *ngIf=\"!contextMenuContentChild && contextMenu\">\n <o-table-context-menu [insert]=\"insertButton\" [edit]=\"editionMode !== EDIT_MODE_NONE\" [view-detail]=\"detailMode !== DETAIL_MODE_NONE\"\n [refresh]=\"refreshButton\" [delete]=\"deleteButton\" [filter]=\"showFilterOption\" [group-by-row]=\"groupable\">\n </o-table-context-menu>\n</ng-container>\n\n<ng-template #cellRenderer let-row=\"row\" let-column=\"column\">\n <div class=\"content\">\n\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"column.renderer != null && (!column.editing || column.editing && !isRowSelected(row))\">\n <ng-template *ngTemplateOutlet=\"column.renderer?.templateref; context:{ cellvalue: row[column.name], rowvalue:row }\">\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"isRowSelected(row) && column.editing\">\n <ng-template *ngTemplateOutlet=\"column.editor?.templateref; context:{ cellvalue: row[column.name], rowvalue:row }\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"column.type === 'editButtonInRow' || column.type === 'detailButtonInRow'\">\n <div fxLayoutAlign=\"center center\" class=\"o-action-cell-renderer\" (click)=\"onDetailButtonClick(column, row, $event)\">\n <mat-icon>{{ getDetailButtonIcon(column) }}</mat-icon>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>{{ row[column.name] }}</ng-container>\n </ng-container>\n\n </div>\n</ng-template>\n", styles: [".o-table{height:100%;max-height:100%;width:100%}.o-table.o-table-disabled{opacity:.4}.o-table .o-table-container{height:100%;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:flex-start;align-content:stretch;min-width:100%;min-height:400px;position:relative;padding:0 .5%}.o-table .o-table-container .o-table-body{display:flex;flex:1 1 auto}.o-table .o-table-container .o-table-body .o-table-overflow{overflow-y:auto;overflow-x:hidden;min-width:100%}.o-table .o-table-container .o-table-body.horizontal-scroll .o-table-overflow{overflow-x:auto}.o-table .o-table-container .o-table-body thead .mat-mdc-header-row th:last-child .o-table-column-resizer{display:none}.o-table .o-table-container.block-events{pointer-events:none}.o-table .o-table-container.block-events>.o-table-toolbar,.o-table .o-table-container.block-events>.o-table-body .mat-mdc-header-row{opacity:.75}.o-table .o-table-container .o-table-toolbar{height:40px}.o-table .o-table-container .o-table-toolbar>div{max-height:100%}.o-table .o-table-container .o-table-toolbar .buttons{margin:0 10px 0 4px}.o-table .o-table-container .o-table-body{max-width:100%;height:100%;overflow:hidden;position:relative}.o-table .o-table-container .o-table-body .spinner-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-table .o-table-container .o-table-body.horizontal-scroll{overflow-x:auto;padding-bottom:16px}.o-table .o-table-container .o-table-body.horizontal-scroll .mat-mdc-header-cell{width:150px}.o-table .o-table-container .o-table-body .o-table-no-results{cursor:default;text-align:center}.o-table .o-table-container .o-table-body .o-table-no-results td{text-align:center}.o-table .o-table-container .mat-mdc-table{table-layout:fixed;width:100%}.o-table .o-table-container .mat-mdc-table.autoadjusted{table-layout:auto}.o-table .o-table-container .mat-mdc-table td .content,.o-table .o-table-container .mat-mdc-table th .content{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table.small .mat-mdc-header-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-header-row .mat-mdc-header-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-row .mat-mdc-header-cell .image-avatar{width:24px;height:24px}.o-table .o-table-container .mat-mdc-table.large .column-filter-icon{margin-top:4px}.o-table .o-table-container .mat-mdc-table.large .mat-sort-header-arrow{margin-top:7px}.o-table .o-table-container .mat-mdc-table tr.mat-mdc-row.o-table-row-expanded{height:0}.o-table .o-table-container .mat-mdc-table tr.o-table-insertable td{height:1px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row{box-sizing:border-box;transition:background-color .2s;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell{padding:0 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row{padding-top:30px;cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row .grouping-title-wrapper,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row .grouping-title-wrapper{position:absolute;width:100%;left:0;top:0;text-align:left}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row .grouping-aggregate,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row .grouping-aggregate{font-weight:700;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-bottom:8px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.empty-cell,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.empty-cell{min-height:16px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .action-cell-renderer,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .action-cell-renderer{cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-start,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-start{text-align:start}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-center,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-center{text-align:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-end,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-end{text-align:end}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell *,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell *{vertical-align:middle}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-mat-cell-multiline:not(.mat-mdc-header-cell),.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-mat-cell-multiline:not(.mat-mdc-header-cell){padding:6px 12px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-mat-cell-multiline .content,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-mat-cell-multiline .content{overflow:initial;white-space:normal;text-overflow:unset}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .image-avatar{width:32px;height:32px;margin:1px auto;overflow:hidden;border-radius:50%;position:relative;z-index:1}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .image-avatar img,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .image-avatar img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:inherit;max-height:inherit}.o-table .o-table-container .mat-mdc-table .o-action-cell-renderer{display:inline-block;cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell{overflow:hidden;position:relative;box-sizing:border-box;padding:0 12px;vertical-align:middle}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select.mat-header-select-all-with-title{padding-right:12px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell:first-of-type{padding-left:0}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell:not(.o-column-image){overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .o-table-header-indicator-numbered{font-size:8px;position:absolute;text-align:center;display:inline-block;width:18px;height:18px;line-height:18px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;bottom:-10px;right:-9px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .column-filter-icon{cursor:pointer;font-size:18px;width:18px;height:18px;line-height:1}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-button{flex:1;display:block;place-content:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .header-title-container{cursor:default;min-height:20px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .header-title-container,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.start,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.start .mat-sort-header-button{text-align:left}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.center,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.center .mat-sort-header-button{text-align:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.end,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.end .mat-sort-header-button{text-align:right}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select{box-sizing:content-box;overflow:initial}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select:not(.mat-header-select-all-with-title),.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select:not(.mat-header-select-all-with-title){width:30px}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select .mat-checkbox-layout,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select .mat-checkbox-layout{text-overflow:ellipsis;overflow:hidden;display:inline}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-expandable,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-expandable{width:40px;box-sizing:content-box;padding:0 0 0 24px;overflow:initial}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell .row-container-expanded{overflow:hidden;display:flex}.o-table .o-table-container .o-table-disabled-blocker{bottom:0;left:0;position:absolute;right:0;top:0;z-index:100}.o-table .spinner-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-table .spinner-container-scrollable{position:relative}.o-table.o-table-fixed{display:flex}.o-table.o-table-fixed .o-table-container{display:flex;flex-direction:column}.o-table.o-table-fixed .o-table-body{display:flex;flex:1}.o-table.o-table-fixed .o-table-body .o-table-overflow{flex:1;overflow-y:auto}.mat-mdc-tooltip.o-table-cell-tooltip{word-wrap:break-word;overflow:hidden;min-width:140px}\n"] }]
|
|
33733
|
+
}, template: "<div class=\"o-table-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\" [style.display]=\"isVisible()? '' : 'none'\"\n [class.block-events]=\"showLoading | async\">\n\n <o-data-toolbar #tableToolbar *ngIf=\"hasControls()\" [title]=\"title\" [show-title]=\"showTitle\" class=\"o-table-toolbar\">\n <ng-container o-data-toolbar-projection-start>\n <o-table-buttons #tableButtons [insert-button]=\"insertButton\" [refresh-button]=\"refreshButton\" [delete-button]=\"showDeleteButton\">\n <ng-content select=\"o-table-button\"></ng-content>\n </o-table-buttons>\n </ng-container>\n <ng-content select=\"[o-table-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-table-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-table-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <ng-container *ngIf=\"quickfilterContentChild; else defaultQuickFilter\">\n <ng-content select=\"o-table-quickfilter\"></ng-content>\n </ng-container>\n <ng-template #defaultQuickFilter>\n <ng-container *ngIf=\"quickFilter\">\n <o-table-quickfilter (onChange)=\"tableQuickFilterChanged($event)\">\n </o-table-quickfilter>\n </ng-container>\n </ng-template>\n <button type=\"button\" *ngIf=\"showTableMenuButton\" mat-icon-button class=\"o-table-menu-button\" [matMenuTriggerFor]=\"tableMenu.matMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"ontimize:more_vert\"></mat-icon>\n </button>\n <o-table-menu #tableMenu [select-all-checkbox]=\"selectAllCheckbox\" [export-button]=\"exportButton\"\n [columns-visibility-button]=\"columnsVisibilityButton\" [show-configuration-option]=\"showConfigurationOption\"\n [show-filter-option]=\"showFilterOption\" [show-report-on-demand-option]=\"showReportOnDemandOption\"\n [show-charts-on-demand-option]=\"showChartsOnDemandOption\" [show-reset-width-option]=\"showResetWidthOption\" [show-group-by-option]=\"groupable\">\n <ng-content select=\"o-table-option\"></ng-content>\n </o-table-menu>\n <ng-template #exportOptsTemplate>\n <ng-content select=\"o-table-export-button\"></ng-content>\n </ng-template>\n </ng-container>\n </o-data-toolbar>\n\n <div #tableBody class=\"o-table-body o-scroll\" [class.horizontal-scroll]=\"horizontalScroll\" [class.scrolled]=\"horizontalScrolled\">\n <ng-container *ngIf=\"!enabledVirtualScroll; else tableWithVirtualScroll\">\n <div class=\"o-table-overflow o-scroll\">\n <ng-template *ngTemplateOutlet=\"table\"></ng-template>\n </div>\n </ng-container>\n <ng-template #tableWithVirtualScroll>\n <cdk-virtual-scroll-viewport #virtualScrollViewPort fxFlex>\n <ng-template *ngTemplateOutlet=\"table\"></ng-template>\n </cdk-virtual-scroll-viewport>\n </ng-template>\n </div>\n <!--TABLE PAGINATOR-->\n <mat-paginator *ngIf=\"paginator && (showLoading | async)===false\" #matpaginator [length]=\"dataSource?.resultsLength\" [pageIndex]=\"paginator.pageIndex\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"paginator.pageSizeOptions\" (page)=\"onChangePage($event)\" [showFirstLastButtons]=\"paginator.showFirstLastButtons\">\n </mat-paginator>\n\n <!--LOADING-->\n <div #spinnerContainer *ngIf=\"showLoading | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\" [ngStyle]=\"{'top.px': headerHeight}\"\n class=\"spinner-container\" [class.spinner-container-scrollable]=\"loadingScroll | async\">\n <o-table-skeleton></o-table-skeleton>\n </div>\n\n <!-- Disable blocker -->\n <div *ngIf=\"!enabled\" class=\"o-table-disabled-blocker\"></div>\n</div>\n\n<ng-template #table>\n\n <table *ngIf=\"(showLoading | async)===false\" mat-table #table [class.autoadjusted]=\"autoAdjust\" [trackBy]=\"getTrackByFunction()\" [dataSource]=\"dataSource\" oMatSort\n [oMatSortColumns]=\"sortColArray\" [ngClass]=\"rowHeightObservable | async\" (cdkObserveContent)=\"projectContentChanged()\"\n [oTableExpandedFooter]=\"!(loading | async)\" [oTableExpandedFooterColspan]=\"visibleColArray.length\" [multiTemplateDataRows]=\"showExpandableRow()\"\n aria-describedby=\"ontimize-web table\">\n\n <!--Checkbox Column -->\n <ng-container [matColumnDef]=\"oTableOptions.selectColumn.name\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <ng-container *ngIf=\"!tableColumnSelectAllContentChild; else customHeaderSelectAllTemplate\">\n <th mat-header-cell *matHeaderCellDef>\n <div class=\"content\" *ngIf=\"isSelectionModeMultiple()\">\n <o-table-header-select-all [column]=\"oTableOptions.selectColumn\"></o-table-header-select-all>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox name=\"id[]\" (click)=\"$event.stopPropagation()\" [disabled]=\"isDisableCheckbox(row)\"\n (change)=\"selectionCheckboxToggle($event, row)\" [checked]=\"isRowSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n <ng-template #customHeaderSelectAllTemplate>\n <th mat-header-cell *matHeaderCellDef [class.resizable]=\"resizable\" class=\"mat-header-select-all-with-title o-center\"\n [style.width]=\"oTableOptions.selectColumn.width\" [style.min-width]=\"getMinWidthColumn(oTableOptions.selectColumn)\"\n [style.max-width]=\"oTableOptions.selectColumn.maxWidth\">\n <div class=\"content\">\n <o-table-header-select-all [column]=\"oTableOptions.selectColumn\"></o-table-header-select-all>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"o-center\" [style.width]=\"oTableOptions.selectColumn.width\"\n [style.min-width]=\"getMinWidthColumn(oTableOptions.selectColumn)\" [style.max-width]=\"oTableOptions.selectColumn.maxWidth\">\n <mat-checkbox name=\"id[]\" (click)=\"$event.stopPropagation()\" [disabled]=\"isDisableCheckbox(row)\"\n (change)=\"selectionCheckboxToggle($event, row)\" [checked]=\"isRowSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-template>\n\n\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <!--Expandable Column -->\n <ng-container [matColumnDef]=\"oTableOptions.expandableColumn.name\" *ngIf=\"isColumnExpandable()\">\n <th mat-header-cell *matHeaderCellDef>\n {{ oTableOptions.expandableColumn.title }}\n </th>\n <td mat-cell *matCellDef=\"let row;let rowIndex = dataIndex\">\n <mat-icon *ngIf=\"showExpandableIcon(row, rowIndex) | async\" (click)=\"toogleRowExpandable(row, rowIndex, $event)\">\n <ng-container *ngIf=\"isExpanded(row)\">{{ tableRowExpandable.iconCollapse }}</ng-container>\n <ng-container *ngIf=\"!isExpanded(row)\">{{ tableRowExpandable.iconExpand }}</ng-container>\n </mat-icon>\n </td>\n </ng-container>\n\n <!-- Generic column definition -->\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"column.name\">\n <!--Define header-cell-->\n\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getTitleAlignClass(column)\" [class.resizable]=\"resizable\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\">\n\n <div class=\"content\">\n <o-table-header [column]=\"column\"></o-table-header>\n </div>\n </th>\n\n\n <!--Define mat-cell-->\n <ng-container *ngIf=\"!table.multiTemplateDataRows; else cellTemplateMultiTemplateDataRows\">\n <td #cell mat-cell *matCellDef=\"let row;let rowIndex = index \" [ngClass]=\"[column.className, getCellAlignClass(column)]\"\n (click)=\"handleClick(row, column, rowIndex, cell, $event)\" (dblclick)=\"handleDoubleClick(row, column, rowIndex, cell, $event)\"\n [class.empty-cell]=\"isEmpty(row[column.name])\" [matTooltipDisabled]=\"!column.hasTooltip()\" [matTooltip]=\"column.getTooltip(row)\"\n matTooltipPosition=\"below\" matTooltipShowDelay=\"750\" matTooltipClass=\"o-table-cell-tooltip\"\n [class.o-mat-cell-multiline]=\"(column.isMultiline | async)\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column.name, rowValue:row, rowIndex:rowIndex}\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\"\n [class.o-table-editing-cell]=\"isRowSelected(row) && column.editing\">\n <ng-container *ngTemplateOutlet=\"cellRenderer;context:{column:column,row:row}\"></ng-container>\n </td>\n </ng-container>\n <ng-template #cellTemplateMultiTemplateDataRows>\n <td #cell mat-cell *matCellDef=\"let row;let rowIndex = dataIndex \" [ngClass]=\"[column.className, getCellAlignClass(column)]\"\n (click)=\"handleClick(row, column, rowIndex, cell, $event)\" (dblclick)=\"handleDoubleClick(row, column, rowIndex, cell, $event)\"\n [class.empty-cell]=\"isEmpty(row[column.name])\" [matTooltipDisabled]=\"!column.hasTooltip()\" [matTooltip]=\"column.getTooltip(row)\"\n matTooltipPosition=\"below\" matTooltipShowDelay=\"750\" matTooltipClass=\"o-table-cell-tooltip\"\n [class.o-mat-cell-multiline]=\"(column.isMultiline | async)\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column.name, rowValue:row, rowIndex:rowIndex}\" [style.width]=\"column.width\"\n [style.min-width]=\"getMinWidthColumn(column)\" [style.max-width]=\"column.maxWidth\"\n [class.o-table-editing-cell]=\"isRowSelected(row) && column.editing\">\n <ng-container *ngTemplateOutlet=\"cellRenderer;context:{column:column,row:row}\"></ng-container>\n\n </td>\n </ng-template>\n <!--Define mat-footer-cell-->\n <ng-container *ngIf=\"showTotals | async\">\n <td mat-footer-cell *matFooterCellDef [ngClass]=\"column.className\">\n <div class=\"title\" *ngIf=\"column.aggregate && column.aggregate.title\">\n {{ column.aggregate.title | oTranslate }}\n </div>\n <ng-container *ngIf=\"!column.renderer\">\n {{ dataSource.getAggregateData(column) }}\n </ng-container>\n <ng-template *ngIf=\"column.renderer && column.aggregate\" [ngTemplateOutlet]=\"column.renderer.templateref\"\n [ngTemplateOutletContext]=\"{cellvalue: dataSource.getAggregateData(column)}\"></ng-template>\n </td>\n </ng-container>\n\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container *ngIf=\"hasExpandedRow\">\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let row;let rowIndex= dataIndex\" [attr.colspan]=\"oTableOptions.visibleColumns.length\">\n <div [ngClass]=\"getExpandedRowContainerClass(rowIndex)\" [@detailExpand]=\"getStateExpand(row)\">\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <!--FOOTER-INSERTABLE-->\n <ng-container *ngIf=\"showLastInsertableRow && oTableInsertableRowComponent\">\n <ng-container [matColumnDef]=\"oTableOptions.selectColumn.name + getSuffixColumnInsertable()\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <td mat-footer-cell *matFooterCellDef>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"column.name+ getSuffixColumnInsertable()\">\n\n <td mat-footer-cell *matFooterCellDef [ngClass]=\"column.className\">\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && !oTableInsertableRowComponent.useCellEditor(column)\">\n <mat-form-field class=\"insertable-form-field o-table-cell-editor-text o-table-cell-editor\" [hideRequiredMarker]=\"false\">\n <input matInput type=\"text\" [placeholder]=\"oTableInsertableRowComponent.getPlaceholder(column)\" [id]=\"column.attr\"\n [formControl]=\"oTableInsertableRowComponent.getControl(column)\" [required]=\"oTableInsertableRowComponent.isColumnRequired(column)\">\n <mat-error *oMatError=\"oTableInsertableRowComponent.columnHasError(column, 'required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && oTableInsertableRowComponent.useCellEditor(column)\">\n <ng-template [ngTemplateOutlet]=\"oTableInsertableRowComponent.columnEditors[column.attr].templateref\"\n [ngTemplateOutletContext]=\"{ rowvalue: oTableInsertableRowComponent.rowData }\">\n </ng-template>\n </ng-container>\n </td>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"showFirstInsertableRow && oTableInsertableRowComponent\">\n <ng-container [matColumnDef]=\"getColumnInsertable(oTableOptions.selectColumn.name)\" *ngIf=\"oTableOptions.selectColumn.visible\">\n <td mat-header-cell *matHeaderCellDef>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let column of oTableOptions.columns\" [matColumnDef]=\"getColumnInsertable(column.name)\">\n\n <td mat-header-cell *matHeaderCellDef [ngClass]=\"column.className\">\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && !oTableInsertableRowComponent.useCellEditor(column)\">\n <mat-form-field class=\"insertable-form-field\" [hideRequiredMarker]=\"false\">\n <input matInput type=\"text\" [placeholder]=\"oTableInsertableRowComponent.getPlaceholder(column)\" [id]=\"column.attr\"\n [formControl]=\"oTableInsertableRowComponent.getControl(column)\" [required]=\"oTableInsertableRowComponent.isColumnRequired(column)\">\n <mat-error *oMatError=\"oTableInsertableRowComponent.columnHasError(column, 'required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"oTableInsertableRowComponent.isColumnInsertable(column) && oTableInsertableRowComponent.useCellEditor(column)\">\n <ng-template [ngTemplateOutlet]=\"oTableInsertableRowComponent.columnEditors[column.attr].templateref\"\n [ngTemplateOutletContext]=\"{ rowvalue: oTableInsertableRowComponent.rowData }\">\n </ng-template>\n </ng-container>\n </td>\n </ng-container>\n\n </ng-container>\n\n <!-- Definition column group header -->\n <ng-container *ngFor=\"let column of groupingHeadersRows; let i = index\" [matColumnDef]=\"column\">\n <td mat-cell *matCellDef=\"let group\" class=\"grouping-row\" [oContextMenu]=\"tableContextMenu\"\n [oContextMenuData]=\"{ cellName:column, rowValue:group, rowIndex:i}\" [ngClass]=\"getGroupHeaderCellAlignClass(column)\">\n <div *ngIf=\"i===0\" class=\"grouping-title-wrapper\" [ngStyle]=\"{'padding-left': 20*(group.level-1)+'px'}\">\n <mat-icon>{{ group.expanded ? 'expand_more' : 'chevron_right' }}</mat-icon>\n {{ group.title }}\n </div>\n <div class=\"grouping-aggregate\" *ngIf=\"group.hasActiveAggregate(visibleColArray[i])\">\n {{ group.getColumnActiveAggregateTitle(visibleColArray[i]) | oTranslate }} :\n <ng-container *ngIf=\"!getOColumnFromGroupHeaderColumn(column).renderer\">\n {{ group.getColumnAggregateValue(visibleColArray[i])}}\n </ng-container>\n <ng-container *ngIf=\"getOColumnFromGroupHeaderColumn(column).renderer\">\n <ng-template\n *ngTemplateOutlet=\"getOColumnFromGroupHeaderColumn(column).renderer?.templateref; context:{ cellvalue: group.getColumnAggregateValue(visibleColArray[i]) }\">\n </ng-template>\n </ng-container>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"position\">\n <td mat-cell *matCellDef=\"let row\"> {{row}} </td>\n </ng-container>\n\n <tr #tableHeader mat-header-row *matHeaderRowDef=\"oTableOptions.visibleColumns; sticky: fixedHeader\"></tr>\n\n <ng-container *ngIf=\"!table.multiTemplateDataRows; else rowTemplateMultiTemplateDataRows\">\n <tr mat-row oTableRow *matRowDef=\"let row; columns: oTableOptions.visibleColumns; when:isNotGroup; let rowIndex = index\"\n [class.selected]=\"isRowSelected(row)\" [ngClass]=\"row | oTableRowClass: rowIndex: rowClass\">\n </tr>\n </ng-container>\n <ng-template #rowTemplateMultiTemplateDataRows>\n <tr mat-row oTableRow *matRowDef=\"let row; columns: oTableOptions.visibleColumns; when:isNotGroup; let rowIndex = dataIndex\"\n [class.selected]=\"isRowSelected(row)\" [ngClass]=\"row | oTableRowClass: rowIndex: rowClass\">\n </tr>\n </ng-template>\n\n <!-- Row Group header -->\n <tr mat-row *matRowDef=\"let row; columns: groupingHeadersRows; when:isGroup\" (click)=\"groupHeaderClick(row)\"\n [ngClass]=\"getClassNameGroupHeader(row)\">\n </tr>\n\n <!-- Expanded detail row-->\n <ng-container *ngIf=\"hasExpandedRow\">\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"o-table-row-expanded\"></tr>\n </ng-container>\n\n <ng-container *ngIf=\"showLastInsertableRow\">\n <tr mat-footer-row *matFooterRowDef=\"oTableOptions.columnsInsertables; sticky: true\"\n (keyup)=\"oTableInsertableRowComponent.handleKeyboardEvent($event)\" class=\"o-table-insertable\"></tr>\n </ng-container>\n <ng-container *ngIf=\"showFirstInsertableRow\">\n <tr mat-header-row *matHeaderRowDef=\"oTableOptions.columnsInsertables; sticky: true\"\n (keyup)=\"oTableInsertableRowComponent.handleKeyboardEvent($event)\" class=\"o-table-insertable\"> </tr>\n </ng-container>\n <ng-container *ngIf=\"showTotals | async\">\n <tr mat-footer-row *matFooterRowDef=\"oTableOptions.visibleColumns; sticky: true\" class=\"o-table-aggregate\">\n </tr>\n </ng-container>\n </table>\n\n</ng-template>\n\n<ng-container *ngIf=\"!contextMenuContentChild && contextMenu\">\n <o-table-context-menu [insert]=\"insertButton\" [edit]=\"editionMode !== EDIT_MODE_NONE\" [view-detail]=\"detailMode !== DETAIL_MODE_NONE\"\n [refresh]=\"refreshButton\" [delete]=\"deleteButton\" [filter]=\"showFilterOption\" [group-by-row]=\"groupable\">\n </o-table-context-menu>\n</ng-container>\n\n<ng-template #cellRenderer let-row=\"row\" let-column=\"column\">\n <div class=\"content\">\n\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"column.renderer != null && (!column.editing || column.editing && !isRowSelected(row))\">\n <ng-template *ngTemplateOutlet=\"column.renderer?.templateref; context:{ cellvalue: row[column.name], rowvalue:row }\">\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"isRowSelected(row) && column.editing\">\n <ng-template *ngTemplateOutlet=\"column.editor?.templateref; context:{ cellvalue: row[column.name], rowvalue:row }\">\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"column.type === 'editButtonInRow' || column.type === 'detailButtonInRow'\">\n <div fxLayoutAlign=\"center center\" class=\"o-action-cell-renderer\" (click)=\"onDetailButtonClick(column, row, $event)\">\n <mat-icon>{{ getDetailButtonIcon(column) }}</mat-icon>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>{{ row[column.name] }}</ng-container>\n </ng-container>\n\n </div>\n</ng-template>\n", styles: [".o-table{height:100%;max-height:100%;width:100%}.o-table.o-table-disabled{opacity:.4}.o-table .o-table-container{height:100%;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:flex-start;align-content:stretch;min-width:100%;min-height:400px;position:relative;padding:0 .5%}.o-table .o-table-container .o-table-body{display:flex;flex:1 1 auto}.o-table .o-table-container .o-table-body .o-table-overflow{overflow-y:auto;overflow-x:hidden;min-width:100%}.o-table .o-table-container .o-table-body.horizontal-scroll .o-table-overflow{overflow-x:auto}.o-table .o-table-container .o-table-body thead .mat-mdc-header-row th:last-child .o-table-column-resizer{display:none}.o-table .o-table-container.block-events{pointer-events:none}.o-table .o-table-container.block-events>.o-table-toolbar,.o-table .o-table-container.block-events>.o-table-body .mat-mdc-header-row{opacity:.75}.o-table .o-table-container .o-table-toolbar{height:40px}.o-table .o-table-container .o-table-toolbar>div{max-height:100%}.o-table .o-table-container .o-table-toolbar .buttons{margin:0 10px 0 4px}.o-table .o-table-container .o-table-body{max-width:100%;height:100%;overflow:hidden;position:relative}.o-table .o-table-container .o-table-body .spinner-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-table .o-table-container .o-table-body.horizontal-scroll{overflow-x:auto;padding-bottom:16px}.o-table .o-table-container .o-table-body.horizontal-scroll .mat-mdc-header-cell{width:150px}.o-table .o-table-container .o-table-body .o-table-no-results{cursor:default;text-align:center}.o-table .o-table-container .o-table-body .o-table-no-results td{text-align:center}.o-table .o-table-container .mat-mdc-table{table-layout:fixed;width:100%}.o-table .o-table-container .mat-mdc-table.autoadjusted{table-layout:auto}.o-table .o-table-container .mat-mdc-table td .content,.o-table .o-table-container .mat-mdc-table th .content{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table.small .mat-mdc-header-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-header-row .mat-mdc-header-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table.small .mat-mdc-row .mat-mdc-header-cell .image-avatar{width:24px;height:24px}.o-table .o-table-container .mat-mdc-table.large .column-filter-icon{margin-top:4px}.o-table .o-table-container .mat-mdc-table.large .mat-sort-header-arrow{margin-top:7px}.o-table .o-table-container .mat-mdc-table tr.mat-mdc-row.o-table-row-expanded{height:0}.o-table .o-table-container .mat-mdc-table tr.o-table-insertable td{height:1px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row{box-sizing:border-box;transition:background-color .2s;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell{padding:0 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row{padding-top:30px;cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row .grouping-title-wrapper,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row .grouping-title-wrapper{position:absolute;width:100%;left:0;top:0;text-align:left}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.grouping-row .grouping-aggregate,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.grouping-row .grouping-aggregate{font-weight:700;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-bottom:8px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.empty-cell,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.empty-cell{min-height:16px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .action-cell-renderer,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .action-cell-renderer{cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-start,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-start{text-align:start}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-center,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-center{text-align:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-end,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-end{text-align:end}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell *,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell *{vertical-align:middle}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-mat-cell-multiline:not(.mat-mdc-header-cell),.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-mat-cell-multiline:not(.mat-mdc-header-cell){padding:6px 12px}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell.o-mat-cell-multiline .content,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell.o-mat-cell-multiline .content{overflow:initial;white-space:normal;text-overflow:unset}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .image-avatar,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .image-avatar{width:32px;height:32px;margin:1px auto;overflow:hidden;border-radius:50%;position:relative;z-index:1}.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-cell .image-avatar img,.o-table .o-table-container .mat-mdc-table .mat-mdc-row .mat-mdc-header-cell .image-avatar img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:inherit;max-height:inherit}.o-table .o-table-container .mat-mdc-table .o-action-cell-renderer{display:inline-block;cursor:pointer}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell{overflow:hidden;position:relative;box-sizing:border-box;padding:0 12px;vertical-align:middle}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select.mat-header-select-all-with-title{padding-right:12px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell:first-of-type{padding-left:0}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell:not(.o-column-image){overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .o-table-header-indicator-numbered{font-size:8px;position:absolute;text-align:center;display:inline-block;width:18px;height:18px;line-height:18px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;bottom:-10px;right:-9px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .column-filter-icon{cursor:pointer;font-size:18px;width:18px;height:18px;line-height:1}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-button{flex:1;display:block;place-content:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .header-title-container{cursor:default;min-height:20px}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .header-title-container,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.start,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.start .mat-sort-header-button{text-align:left}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.center,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.center .mat-sort-header-button{text-align:center}.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.end,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.end .mat-sort-header-button{text-align:right}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select{box-sizing:content-box;overflow:initial}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select:not(.mat-header-select-all-with-title),.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select:not(.mat-header-select-all-with-title){width:30px}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-select .mat-checkbox-layout,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-select .mat-checkbox-layout{text-overflow:ellipsis;overflow:hidden;display:inline}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell.mat-column-expandable,.o-table .o-table-container .mat-mdc-table .mat-mdc-header-cell.mat-column-expandable{width:40px;box-sizing:content-box;padding:0 0 0 24px;overflow:initial}.o-table .o-table-container .mat-mdc-table .mat-mdc-cell .row-container-expanded{overflow:hidden;display:flex}.o-table .o-table-container .o-table-disabled-blocker{bottom:0;left:0;position:absolute;right:0;top:0;z-index:100}.o-table .spinner-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-table .spinner-container-scrollable{position:relative}.o-table.o-table-fixed{display:flex}.o-table.o-table-fixed .o-table-container{display:flex;flex-direction:column}.o-table.o-table-fixed .o-table-body{display:flex;flex:1}.o-table.o-table-fixed .o-table-body .o-table-overflow{flex:1;overflow-y:auto}.mat-mdc-tooltip.o-table-cell-tooltip{word-wrap:break-word;overflow:hidden;min-width:140px}\n"] }]
|
|
33197
33734
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i1$1.MatDialog }, { type: i0.ViewContainerRef }, { type: i0.ApplicationRef }, { type: OFormComponent, decorators: [{
|
|
33198
33735
|
type: Optional
|
|
33199
33736
|
}, {
|
|
@@ -33978,7 +34515,7 @@ class OTableCellEditorRealComponent extends OTableCellEditorIntegerComponent {
|
|
|
33978
34515
|
}
|
|
33979
34516
|
getCellData() {
|
|
33980
34517
|
const cellData = super.getCellData();
|
|
33981
|
-
const floatValue = parseFloat(cellData
|
|
34518
|
+
const floatValue = parseFloat(cellData?.toString());
|
|
33982
34519
|
return isNaN(floatValue) ? undefined : floatValue;
|
|
33983
34520
|
}
|
|
33984
34521
|
resolveValidators() {
|
|
@@ -36410,97 +36947,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
36410
36947
|
type: Injectable
|
|
36411
36948
|
}] });
|
|
36412
36949
|
|
|
36413
|
-
class OTranslateHttpLoader extends TranslateHttpLoader {
|
|
36414
|
-
constructor(httpClient, prefix = OTranslateService.ASSETS_PATH, suffix = OTranslateService.ASSETS_EXTENSION, injector) {
|
|
36415
|
-
super(httpClient, prefix, suffix);
|
|
36416
|
-
this.injector = injector;
|
|
36417
|
-
this.appConfig = this.injector.get(AppConfig);
|
|
36418
|
-
this.httpClient = httpClient;
|
|
36419
|
-
}
|
|
36420
|
-
getAssetsPath() {
|
|
36421
|
-
return this.prefix;
|
|
36422
|
-
}
|
|
36423
|
-
getAssetsExtension() {
|
|
36424
|
-
return this.suffix;
|
|
36425
|
-
}
|
|
36426
|
-
getLocalTranslation(lang) {
|
|
36427
|
-
let innerObserver;
|
|
36428
|
-
const dataObservable = new Observable(observer => innerObserver = observer).pipe(share());
|
|
36429
|
-
super.getTranslation(lang)
|
|
36430
|
-
.subscribe((res) => {
|
|
36431
|
-
innerObserver.next(res);
|
|
36432
|
-
innerObserver.complete();
|
|
36433
|
-
}, error => {
|
|
36434
|
-
innerObserver.next(undefined);
|
|
36435
|
-
}, () => innerObserver.complete());
|
|
36436
|
-
return dataObservable;
|
|
36437
|
-
}
|
|
36438
|
-
getTranslation(lang) {
|
|
36439
|
-
const translationOrigins = [];
|
|
36440
|
-
translationOrigins.push(this.getLocalTranslation(lang));
|
|
36441
|
-
if (this.appConfig.useRemoteBundle()) {
|
|
36442
|
-
translationOrigins.push(this.getRemoteBundle(lang));
|
|
36443
|
-
}
|
|
36444
|
-
let innerObserver;
|
|
36445
|
-
const dataObservable = new Observable(observer => innerObserver = observer).pipe(share());
|
|
36446
|
-
combineLatest(translationOrigins).subscribe((res) => {
|
|
36447
|
-
const staticBundle = res[0] || {};
|
|
36448
|
-
const remoteBundle = res[1] || {};
|
|
36449
|
-
const allBundles = Object.assign(staticBundle, remoteBundle);
|
|
36450
|
-
innerObserver.next(allBundles);
|
|
36451
|
-
});
|
|
36452
|
-
return dataObservable;
|
|
36453
|
-
}
|
|
36454
|
-
getRemoteBundle(lang) {
|
|
36455
|
-
const bundleEndpoint = this.appConfig.getBundleEndpoint();
|
|
36456
|
-
if (!bundleEndpoint) {
|
|
36457
|
-
return of([]);
|
|
36458
|
-
}
|
|
36459
|
-
const url = bundleEndpoint + '?lang=' + lang;
|
|
36460
|
-
return this.httpClient.get(url).pipe(map((resp) => {
|
|
36461
|
-
if (resp.code === Codes.ONTIMIZE_SUCCESSFUL_CODE) {
|
|
36462
|
-
return this.parseBundleResponse(resp.data);
|
|
36463
|
-
}
|
|
36464
|
-
return resp;
|
|
36465
|
-
}), catchError(err => {
|
|
36466
|
-
console.log('Remote Bundle service is not available', err);
|
|
36467
|
-
return of([]);
|
|
36468
|
-
}));
|
|
36469
|
-
}
|
|
36470
|
-
parseBundleResponse(data) {
|
|
36471
|
-
const result = {};
|
|
36472
|
-
if (data) {
|
|
36473
|
-
data.forEach((item) => {
|
|
36474
|
-
result[item[OTranslateHttpLoader.BUNDLE_KEY]] = item[OTranslateHttpLoader.BUNDLE_VALUE];
|
|
36475
|
-
});
|
|
36476
|
-
}
|
|
36477
|
-
return result;
|
|
36478
|
-
}
|
|
36479
|
-
}
|
|
36480
|
-
OTranslateHttpLoader.BUNDLE_KEY = 'key';
|
|
36481
|
-
OTranslateHttpLoader.BUNDLE_VALUE = 'value';
|
|
36482
|
-
|
|
36483
|
-
class OTranslateParser extends TranslateDefaultParser {
|
|
36484
|
-
constructor() {
|
|
36485
|
-
super(...arguments);
|
|
36486
|
-
this.templateMatcher = /{\s?([0-9][^{}\s]*)\s?}/g;
|
|
36487
|
-
}
|
|
36488
|
-
interpolate(expr, params) {
|
|
36489
|
-
if (typeof expr !== 'string' || !params) {
|
|
36490
|
-
return expr;
|
|
36491
|
-
}
|
|
36492
|
-
return expr.replace(this.templateMatcher, (substring, index) => {
|
|
36493
|
-
const argValue = Util.isDefined(params[index]) ? params[index] : '';
|
|
36494
|
-
return !isNaN(parseInt(index, 10)) ? argValue : substring;
|
|
36495
|
-
});
|
|
36496
|
-
}
|
|
36497
|
-
}
|
|
36498
|
-
OTranslateParser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTranslateParser, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
36499
|
-
OTranslateParser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTranslateParser });
|
|
36500
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTranslateParser, decorators: [{
|
|
36501
|
-
type: Injectable
|
|
36502
|
-
}] });
|
|
36503
|
-
|
|
36504
36950
|
class OTreeDataSource {
|
|
36505
36951
|
get data() {
|
|
36506
36952
|
return this.dataChange.value;
|
|
@@ -36742,6 +37188,9 @@ class OTreeComponent extends AbstractOServiceComponent {
|
|
|
36742
37188
|
this.initialize();
|
|
36743
37189
|
this.initializeParams();
|
|
36744
37190
|
this.subscription.add(this.selection.changed.subscribe(() => (this.enabledDeleteButton = !this.selection.isEmpty())));
|
|
37191
|
+
this.permissions = this.permissionsService.getTreePermissions(this.oattr, this.actRoute);
|
|
37192
|
+
this.actionsPermissions = this.getActionsPermissions(this.permissions);
|
|
37193
|
+
this.setButtonPermissions(this.actionsPermissions);
|
|
36745
37194
|
}
|
|
36746
37195
|
initialize() {
|
|
36747
37196
|
super.initialize();
|
|
@@ -36773,6 +37222,7 @@ class OTreeComponent extends AbstractOServiceComponent {
|
|
|
36773
37222
|
if (this.queryOnInit) {
|
|
36774
37223
|
this.queryData();
|
|
36775
37224
|
}
|
|
37225
|
+
this.manageCustomPermissions(this.actionsPermissions, '[o-tree-button]');
|
|
36776
37226
|
}
|
|
36777
37227
|
ngOnDestroy() {
|
|
36778
37228
|
this.destroy();
|
|
@@ -37055,7 +37505,7 @@ class OTreeComponent extends AbstractOServiceComponent {
|
|
|
37055
37505
|
}
|
|
37056
37506
|
}
|
|
37057
37507
|
OTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTreeComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: forwardRef(() => OFormComponent), optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
37058
|
-
OTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTreeComponent, selector: "o-tree", inputs: { oattr: ["attr", "oattr"], service: "service", entity: "entity", columns: "columns", keys: "keys", parentKeys: ["parent-keys", "parentKeys"], queryMethod: ["query-method", "queryMethod"], insertButton: ["insert-button", "insertButton"], refreshButton: ["refresh-button", "refreshButton"], deleteButton: ["delete-button", "deleteButton"], visibleColumns: ["visible-columns", "visibleColumns"], selectAllCheckbox: ["select-all-checkbox", "selectAllCheckbox"], separator: "separator", parentColumn: ["parent-column", "parentColumn"], sortColumn: ["sort-column", "sortColumn"], selectAllCheckboxVisible: ["select-all-checkbox-visible", "selectAllCheckboxVisible"], filterCaseSensitive: ["filter-case-sensitive", "filterCaseSensitive"], quickFilter: ["quick-filter", "quickFilter"], quickFilterPlaceholder: ["quick-filter-placeholder", "quickFilterPlaceholder"], quickFilterColumns: ["quick-filter-columns", "quickFilterColumns"], detailMode: ["detail-mode", "detailMode"], detailFormRoute: ["detail-form-route", "detailFormRoute"], showButtonsText: ["show-buttons-text", "showButtonsText"], rootTitle: ["root-title", "rootTitle"], recursive: "recursive", route: "route" }, outputs: { onNodeSelected: "onNodeSelected", onNodeExpanded: "onNodeExpanded", onNodeCollapsed: "onNodeCollapsed", onLoadNextLevel: "onLoadNextLevel", onDataLoaded: "onDataLoaded", onNodeClick: "onNodeClick" }, host: { properties: { "class.o-tree": "true" } }, providers: [OTreeDao], queries: [{ propertyName: "leafNodeTemplate", first: true, predicate: ["leafNodeTemplate"], descendants: true, read: TemplateRef }, { propertyName: "parentNodeTemplate", first: true, predicate: ["parentNodeTemplate"], descendants: true, read: TemplateRef }, { propertyName: "nodeTemplate", first: true, predicate: ["nodeTemplate"], descendants: true, read: TemplateRef }, { propertyName: "treeNode", first: true, predicate: i0.forwardRef(function () { return OTreeNodeComponent; }) }], usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" fxFlex>\n\n <div *ngIf=\"hasControls()\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n\n <div class=\"buttons\">\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n\n <button *ngIf=\"insertButton\" type=\"button\" mat-stroked-button aria-label=\"Insert\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'INSERT' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"refreshButton\" type=\"button\" mat-stroked-button aria-label=\"Refresh\" (click)=\"reloadData()\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" mat-stroked-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n <span>{{ 'DELETE' | oTranslate }}</span>\n </button>\n\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <button *ngIf=\"insertButton\" type=\"button\" mat-icon-button aria-label=\"Insert\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <button *ngIf=\"refreshButton\" type=\"button\" mat-icon-button aria-label=\"Refresh\" (click)=\"reloadData()\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" mat-icon-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n </button>\n </ng-template>\n\n <ng-content select=\"[o-tree-button]\"></ng-content>\n </div>\n <div fxFlex>\n <span fxLayoutAlign=\"center center\" class=\"title\">{{ title | oTranslate }}</span>\n </div>\n <o-search-input *ngIf=\"quickFilter\" [filter-case-sensitive]=\"filterCaseSensitive\" [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\"\n [columns]=\"quickFilterColumns\" [placeholder]=\"quickFilterPlaceholder\" appearance=\"outline\" float-label=\"never\" show-menu=\"no\">\n </o-search-input>\n <button type=\"button\" *ngIf=\"showTreeMenuButton\" mat-icon-button class=\"o-tree-menu-button\" [matMenuTriggerFor]=\"treeMenu.matMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"ontimize:more_vert\"></mat-icon>\n </button>\n <o-tree-menu #treeMenu [select-all-checkbox]=\"selectAllCheckbox\" [select-all-checkbox-visible]=\"selectAllCheckboxVisible\"\n (onSelectCheckboxChange)=\"onSelectCheckboxChange($event)\"></o-tree-menu>\n\n </div>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" (click)=\"leafNodeClicked($event, node)\" matTreeNodeToggle matTreeNodePadding\n [ngClass]=\"{'selected-node': isSelectedNode(node)}\">\n <!-- use a disabled button to provide padding for tree leaf -->\n <button mat-icon-button disabled></button>\n\n <ng-container *ngIf=\"selectAllCheckboxVisible; else simpleLeafNodeTpl\">\n <div class=\"node-wrapper\">\n <mat-checkbox *ngIf=\"selectAllCheckboxVisible; else simpleLeafNodeTpl\" [checked]=\"checklistSelection.isSelected(node)\"\n (click)=\"checkboxClicked($event)\" (change)=\"todoLeafItemSelectionToggle(node)\">\n </mat-checkbox>\n <ng-container [ngTemplateOutlet]=\"leafNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #simpleLeafNodeTpl>\n <ng-container [ngTemplateOutlet]=\"leafNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </ng-template>\n\n </mat-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" (click)=\"parentNodeClicked($event, node)\" matTreeNodePadding\n [ngClass]=\"{'selected-node': isSelectedNode(node)}\">\n <button mat-icon-button [attr.aria-label]=\"'toggle ' + node.label\" matTreeNodeToggle (click)=\"onClickToggleButton($event, node)\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\n </mat-icon>\n </button>\n\n <ng-container *ngIf=\"selectAllCheckboxVisible; else simpleParentNodeTpl\">\n <div class=\"node-wrapper\">\n <mat-checkbox *ngIf=\"selectAllCheckboxVisible; else simpleParentNodeTpl\" (click)=\"checkboxClicked($event)\"\n (change)=\"todoItemSelectionToggle(node)\" [checked]=\"descendantsAllSelected(node)\" [indeterminate]=\"descendantsPartiallySelected(node)\">\n </mat-checkbox>\n <ng-container [ngTemplateOutlet]=\"parentNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #simpleParentNodeTpl>\n <ng-container [ngTemplateOutlet]=\"parentNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </ng-template>\n </mat-tree-node>\n </mat-tree>\n</div>\n\n<ng-template let-node #leafNodeFulltemplate>\n <ng-container *ngIf=\"leafNodeTemplate; else defaultLeafNodeTpl\" [ngTemplateOutlet]=\"leafNodeTemplate\"\n [ngTemplateOutletContext]=\"{$implicit:node.data}\">\n </ng-container>\n\n <ng-template #defaultLeafNodeTpl>\n {{node.label}}\n </ng-template>\n</ng-template>\n\n<ng-template let-node #parentNodeFulltemplate>\n <ng-container *ngIf=\"parentNodeTemplate; else defaultParentNodeTpl\" [ngTemplateOutlet]=\"parentNodeTemplate\"\n [ngTemplateOutletContext]=\"{$implicit:node.data}\">\n </ng-container>\n\n <ng-template #defaultParentNodeTpl>\n <span>{{node.label}}</span>\n <mat-progress-bar *ngIf=\"node.isLoading\" mode=\"indeterminate\" fxFlex></mat-progress-bar>\n </ng-template>\n</ng-template>\n", styles: [".o-tree .mat-mdc-progress-bar{margin-left:30px}.o-tree .node-wrapper{align-items:center}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i10$2.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i10$2.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i10$2.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i10$2.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i10$2.MatTreeNode, selector: "mat-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "component", type: OTreeMenuComponent, selector: "o-tree-menu", inputs: ["select-all-checkbox", "select-all-checkbox-visible"], outputs: ["onSelectCheckboxChange"] }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
37508
|
+
OTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTreeComponent, selector: "o-tree", inputs: { oattr: ["attr", "oattr"], service: "service", entity: "entity", columns: "columns", keys: "keys", parentKeys: ["parent-keys", "parentKeys"], queryMethod: ["query-method", "queryMethod"], insertButton: ["insert-button", "insertButton"], refreshButton: ["refresh-button", "refreshButton"], deleteButton: ["delete-button", "deleteButton"], visibleColumns: ["visible-columns", "visibleColumns"], selectAllCheckbox: ["select-all-checkbox", "selectAllCheckbox"], separator: "separator", parentColumn: ["parent-column", "parentColumn"], sortColumn: ["sort-column", "sortColumn"], selectAllCheckboxVisible: ["select-all-checkbox-visible", "selectAllCheckboxVisible"], filterCaseSensitive: ["filter-case-sensitive", "filterCaseSensitive"], quickFilter: ["quick-filter", "quickFilter"], quickFilterPlaceholder: ["quick-filter-placeholder", "quickFilterPlaceholder"], quickFilterColumns: ["quick-filter-columns", "quickFilterColumns"], detailMode: ["detail-mode", "detailMode"], detailFormRoute: ["detail-form-route", "detailFormRoute"], showButtonsText: ["show-buttons-text", "showButtonsText"], rootTitle: ["root-title", "rootTitle"], recursive: "recursive", route: "route" }, outputs: { onNodeSelected: "onNodeSelected", onNodeExpanded: "onNodeExpanded", onNodeCollapsed: "onNodeCollapsed", onLoadNextLevel: "onLoadNextLevel", onDataLoaded: "onDataLoaded", onNodeClick: "onNodeClick" }, host: { properties: { "class.o-tree": "true" } }, providers: [OTreeDao], queries: [{ propertyName: "leafNodeTemplate", first: true, predicate: ["leafNodeTemplate"], descendants: true, read: TemplateRef }, { propertyName: "parentNodeTemplate", first: true, predicate: ["parentNodeTemplate"], descendants: true, read: TemplateRef }, { propertyName: "nodeTemplate", first: true, predicate: ["nodeTemplate"], descendants: true, read: TemplateRef }, { propertyName: "treeNode", first: true, predicate: i0.forwardRef(function () { return OTreeNodeComponent; }) }], usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" fxFlex>\n\n <div *ngIf=\"hasControls()\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n\n <div class=\"buttons\">\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n\n <button *ngIf=\"insertButton\" type=\"button\" mat-stroked-button aria-label=\"Insert\" [disabled]=\"!enabledInsertButton\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'INSERT' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"refreshButton\" type=\"button\" mat-stroked-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" mat-stroked-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n <span>{{ 'DELETE' | oTranslate }}</span>\n </button>\n\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <button *ngIf=\"insertButton\" type=\"button\" mat-icon-button aria-label=\"Insert\" [disabled]=\"!enabledInsertButton\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <button *ngIf=\"refreshButton\" type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" mat-icon-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n </button>\n </ng-template>\n\n <ng-content select=\"[o-tree-button]\"></ng-content>\n </div>\n <div fxFlex>\n <span fxLayoutAlign=\"center center\" class=\"title\">{{ title | oTranslate }}</span>\n </div>\n <o-search-input *ngIf=\"quickFilter\" [filter-case-sensitive]=\"filterCaseSensitive\" [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\"\n [columns]=\"quickFilterColumns\" [placeholder]=\"quickFilterPlaceholder\" appearance=\"outline\" float-label=\"never\" show-menu=\"no\">\n </o-search-input>\n <button type=\"button\" *ngIf=\"showTreeMenuButton\" mat-icon-button class=\"o-tree-menu-button\" [matMenuTriggerFor]=\"treeMenu.matMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"ontimize:more_vert\"></mat-icon>\n </button>\n <o-tree-menu #treeMenu [select-all-checkbox]=\"selectAllCheckbox\" [select-all-checkbox-visible]=\"selectAllCheckboxVisible\"\n (onSelectCheckboxChange)=\"onSelectCheckboxChange($event)\"></o-tree-menu>\n\n </div>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" (click)=\"leafNodeClicked($event, node)\" matTreeNodeToggle matTreeNodePadding\n [ngClass]=\"{'selected-node': isSelectedNode(node)}\">\n <!-- use a disabled button to provide padding for tree leaf -->\n <button mat-icon-button disabled></button>\n\n <ng-container *ngIf=\"selectAllCheckboxVisible; else simpleLeafNodeTpl\">\n <div class=\"node-wrapper\">\n <mat-checkbox *ngIf=\"selectAllCheckboxVisible; else simpleLeafNodeTpl\" [checked]=\"checklistSelection.isSelected(node)\"\n (click)=\"checkboxClicked($event)\" (change)=\"todoLeafItemSelectionToggle(node)\">\n </mat-checkbox>\n <ng-container [ngTemplateOutlet]=\"leafNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #simpleLeafNodeTpl>\n <ng-container [ngTemplateOutlet]=\"leafNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </ng-template>\n\n </mat-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" (click)=\"parentNodeClicked($event, node)\" matTreeNodePadding\n [ngClass]=\"{'selected-node': isSelectedNode(node)}\">\n <button mat-icon-button [attr.aria-label]=\"'toggle ' + node.label\" matTreeNodeToggle (click)=\"onClickToggleButton($event, node)\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\n </mat-icon>\n </button>\n\n <ng-container *ngIf=\"selectAllCheckboxVisible; else simpleParentNodeTpl\">\n <div class=\"node-wrapper\">\n <mat-checkbox *ngIf=\"selectAllCheckboxVisible; else simpleParentNodeTpl\" (click)=\"checkboxClicked($event)\"\n (change)=\"todoItemSelectionToggle(node)\" [checked]=\"descendantsAllSelected(node)\" [indeterminate]=\"descendantsPartiallySelected(node)\">\n </mat-checkbox>\n <ng-container [ngTemplateOutlet]=\"parentNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #simpleParentNodeTpl>\n <ng-container [ngTemplateOutlet]=\"parentNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </ng-template>\n </mat-tree-node>\n </mat-tree>\n</div>\n\n<ng-template let-node #leafNodeFulltemplate>\n <ng-container *ngIf=\"leafNodeTemplate; else defaultLeafNodeTpl\" [ngTemplateOutlet]=\"leafNodeTemplate\"\n [ngTemplateOutletContext]=\"{$implicit:node.data}\">\n </ng-container>\n\n <ng-template #defaultLeafNodeTpl>\n {{node.label}}\n </ng-template>\n</ng-template>\n\n<ng-template let-node #parentNodeFulltemplate>\n <ng-container *ngIf=\"parentNodeTemplate; else defaultParentNodeTpl\" [ngTemplateOutlet]=\"parentNodeTemplate\"\n [ngTemplateOutletContext]=\"{$implicit:node.data}\">\n </ng-container>\n\n <ng-template #defaultParentNodeTpl>\n <span>{{node.label}}</span>\n <mat-progress-bar *ngIf=\"node.isLoading\" mode=\"indeterminate\" fxFlex></mat-progress-bar>\n </ng-template>\n</ng-template>\n", styles: [".o-tree .mat-mdc-progress-bar{margin-left:30px}.o-tree .node-wrapper{align-items:center}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i10$2.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i10$2.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i10$2.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i10$2.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i10$2.MatTreeNode, selector: "mat-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "component", type: OTreeMenuComponent, selector: "o-tree-menu", inputs: ["select-all-checkbox", "select-all-checkbox-visible"], outputs: ["onSelectCheckboxChange"] }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
37059
37509
|
__decorate([
|
|
37060
37510
|
BooleanInputConverter(),
|
|
37061
37511
|
__metadata("design:type", Boolean)
|
|
@@ -37084,7 +37534,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
37084
37534
|
type: Component,
|
|
37085
37535
|
args: [{ selector: 'o-tree', inputs: DEFAULT_INPUTS_O_TREE, outputs: DEFAULT_OUTPUTS_O_TREE, encapsulation: ViewEncapsulation.None, host: {
|
|
37086
37536
|
'[class.o-tree]': 'true'
|
|
37087
|
-
}, providers: [OTreeDao], template: "<div fxLayout=\"column\" fxFlex>\n\n <div *ngIf=\"hasControls()\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n\n <div class=\"buttons\">\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n\n <button *ngIf=\"insertButton\" type=\"button\" mat-stroked-button aria-label=\"Insert\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'INSERT' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"refreshButton\" type=\"button\" mat-stroked-button aria-label=\"Refresh\" (click)=\"reloadData()\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" mat-stroked-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n <span>{{ 'DELETE' | oTranslate }}</span>\n </button>\n\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <button *ngIf=\"insertButton\" type=\"button\" mat-icon-button aria-label=\"Insert\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <button *ngIf=\"refreshButton\" type=\"button\" mat-icon-button aria-label=\"Refresh\" (click)=\"reloadData()\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" mat-icon-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n </button>\n </ng-template>\n\n <ng-content select=\"[o-tree-button]\"></ng-content>\n </div>\n <div fxFlex>\n <span fxLayoutAlign=\"center center\" class=\"title\">{{ title | oTranslate }}</span>\n </div>\n <o-search-input *ngIf=\"quickFilter\" [filter-case-sensitive]=\"filterCaseSensitive\" [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\"\n [columns]=\"quickFilterColumns\" [placeholder]=\"quickFilterPlaceholder\" appearance=\"outline\" float-label=\"never\" show-menu=\"no\">\n </o-search-input>\n <button type=\"button\" *ngIf=\"showTreeMenuButton\" mat-icon-button class=\"o-tree-menu-button\" [matMenuTriggerFor]=\"treeMenu.matMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"ontimize:more_vert\"></mat-icon>\n </button>\n <o-tree-menu #treeMenu [select-all-checkbox]=\"selectAllCheckbox\" [select-all-checkbox-visible]=\"selectAllCheckboxVisible\"\n (onSelectCheckboxChange)=\"onSelectCheckboxChange($event)\"></o-tree-menu>\n\n </div>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" (click)=\"leafNodeClicked($event, node)\" matTreeNodeToggle matTreeNodePadding\n [ngClass]=\"{'selected-node': isSelectedNode(node)}\">\n <!-- use a disabled button to provide padding for tree leaf -->\n <button mat-icon-button disabled></button>\n\n <ng-container *ngIf=\"selectAllCheckboxVisible; else simpleLeafNodeTpl\">\n <div class=\"node-wrapper\">\n <mat-checkbox *ngIf=\"selectAllCheckboxVisible; else simpleLeafNodeTpl\" [checked]=\"checklistSelection.isSelected(node)\"\n (click)=\"checkboxClicked($event)\" (change)=\"todoLeafItemSelectionToggle(node)\">\n </mat-checkbox>\n <ng-container [ngTemplateOutlet]=\"leafNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #simpleLeafNodeTpl>\n <ng-container [ngTemplateOutlet]=\"leafNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </ng-template>\n\n </mat-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" (click)=\"parentNodeClicked($event, node)\" matTreeNodePadding\n [ngClass]=\"{'selected-node': isSelectedNode(node)}\">\n <button mat-icon-button [attr.aria-label]=\"'toggle ' + node.label\" matTreeNodeToggle (click)=\"onClickToggleButton($event, node)\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\n </mat-icon>\n </button>\n\n <ng-container *ngIf=\"selectAllCheckboxVisible; else simpleParentNodeTpl\">\n <div class=\"node-wrapper\">\n <mat-checkbox *ngIf=\"selectAllCheckboxVisible; else simpleParentNodeTpl\" (click)=\"checkboxClicked($event)\"\n (change)=\"todoItemSelectionToggle(node)\" [checked]=\"descendantsAllSelected(node)\" [indeterminate]=\"descendantsPartiallySelected(node)\">\n </mat-checkbox>\n <ng-container [ngTemplateOutlet]=\"parentNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #simpleParentNodeTpl>\n <ng-container [ngTemplateOutlet]=\"parentNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </ng-template>\n </mat-tree-node>\n </mat-tree>\n</div>\n\n<ng-template let-node #leafNodeFulltemplate>\n <ng-container *ngIf=\"leafNodeTemplate; else defaultLeafNodeTpl\" [ngTemplateOutlet]=\"leafNodeTemplate\"\n [ngTemplateOutletContext]=\"{$implicit:node.data}\">\n </ng-container>\n\n <ng-template #defaultLeafNodeTpl>\n {{node.label}}\n </ng-template>\n</ng-template>\n\n<ng-template let-node #parentNodeFulltemplate>\n <ng-container *ngIf=\"parentNodeTemplate; else defaultParentNodeTpl\" [ngTemplateOutlet]=\"parentNodeTemplate\"\n [ngTemplateOutletContext]=\"{$implicit:node.data}\">\n </ng-container>\n\n <ng-template #defaultParentNodeTpl>\n <span>{{node.label}}</span>\n <mat-progress-bar *ngIf=\"node.isLoading\" mode=\"indeterminate\" fxFlex></mat-progress-bar>\n </ng-template>\n</ng-template>\n", styles: [".o-tree .mat-mdc-progress-bar{margin-left:30px}.o-tree .node-wrapper{align-items:center}\n"] }]
|
|
37537
|
+
}, providers: [OTreeDao], template: "<div fxLayout=\"column\" fxFlex>\n\n <div *ngIf=\"hasControls()\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n\n <div class=\"buttons\">\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n\n <button *ngIf=\"insertButton\" type=\"button\" mat-stroked-button aria-label=\"Insert\" [disabled]=\"!enabledInsertButton\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'INSERT' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"refreshButton\" type=\"button\" mat-stroked-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" mat-stroked-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n <span>{{ 'DELETE' | oTranslate }}</span>\n </button>\n\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <button *ngIf=\"insertButton\" type=\"button\" mat-icon-button aria-label=\"Insert\" [disabled]=\"!enabledInsertButton\" (click)=\"add($event)\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <button *ngIf=\"refreshButton\" type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n\n <button *ngIf=\"deleteButton\" type=\"button\" mat-icon-button aria-label=\"Delete\" [disabled]=\"!enabledDeleteButton\"\n [class.disabled]=\"!enabledDeleteButton\">\n <mat-icon svgIcon=\"ontimize:delete\"></mat-icon>\n </button>\n </ng-template>\n\n <ng-content select=\"[o-tree-button]\"></ng-content>\n </div>\n <div fxFlex>\n <span fxLayoutAlign=\"center center\" class=\"title\">{{ title | oTranslate }}</span>\n </div>\n <o-search-input *ngIf=\"quickFilter\" [filter-case-sensitive]=\"filterCaseSensitive\" [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\"\n [columns]=\"quickFilterColumns\" [placeholder]=\"quickFilterPlaceholder\" appearance=\"outline\" float-label=\"never\" show-menu=\"no\">\n </o-search-input>\n <button type=\"button\" *ngIf=\"showTreeMenuButton\" mat-icon-button class=\"o-tree-menu-button\" [matMenuTriggerFor]=\"treeMenu.matMenu\"\n (click)=\"$event.stopPropagation()\">\n <mat-icon svgIcon=\"ontimize:more_vert\"></mat-icon>\n </button>\n <o-tree-menu #treeMenu [select-all-checkbox]=\"selectAllCheckbox\" [select-all-checkbox-visible]=\"selectAllCheckboxVisible\"\n (onSelectCheckboxChange)=\"onSelectCheckboxChange($event)\"></o-tree-menu>\n\n </div>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" (click)=\"leafNodeClicked($event, node)\" matTreeNodeToggle matTreeNodePadding\n [ngClass]=\"{'selected-node': isSelectedNode(node)}\">\n <!-- use a disabled button to provide padding for tree leaf -->\n <button mat-icon-button disabled></button>\n\n <ng-container *ngIf=\"selectAllCheckboxVisible; else simpleLeafNodeTpl\">\n <div class=\"node-wrapper\">\n <mat-checkbox *ngIf=\"selectAllCheckboxVisible; else simpleLeafNodeTpl\" [checked]=\"checklistSelection.isSelected(node)\"\n (click)=\"checkboxClicked($event)\" (change)=\"todoLeafItemSelectionToggle(node)\">\n </mat-checkbox>\n <ng-container [ngTemplateOutlet]=\"leafNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </div>\n </ng-container>\n <ng-template #simpleLeafNodeTpl>\n <ng-container [ngTemplateOutlet]=\"leafNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </ng-template>\n\n </mat-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" (click)=\"parentNodeClicked($event, node)\" matTreeNodePadding\n [ngClass]=\"{'selected-node': isSelectedNode(node)}\">\n <button mat-icon-button [attr.aria-label]=\"'toggle ' + node.label\" matTreeNodeToggle (click)=\"onClickToggleButton($event, node)\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\n </mat-icon>\n </button>\n\n <ng-container *ngIf=\"selectAllCheckboxVisible; else simpleParentNodeTpl\">\n <div class=\"node-wrapper\">\n <mat-checkbox *ngIf=\"selectAllCheckboxVisible; else simpleParentNodeTpl\" (click)=\"checkboxClicked($event)\"\n (change)=\"todoItemSelectionToggle(node)\" [checked]=\"descendantsAllSelected(node)\" [indeterminate]=\"descendantsPartiallySelected(node)\">\n </mat-checkbox>\n <ng-container [ngTemplateOutlet]=\"parentNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #simpleParentNodeTpl>\n <ng-container [ngTemplateOutlet]=\"parentNodeFulltemplate\" [ngTemplateOutletContext]=\"{$implicit:node}\">\n </ng-container>\n </ng-template>\n </mat-tree-node>\n </mat-tree>\n</div>\n\n<ng-template let-node #leafNodeFulltemplate>\n <ng-container *ngIf=\"leafNodeTemplate; else defaultLeafNodeTpl\" [ngTemplateOutlet]=\"leafNodeTemplate\"\n [ngTemplateOutletContext]=\"{$implicit:node.data}\">\n </ng-container>\n\n <ng-template #defaultLeafNodeTpl>\n {{node.label}}\n </ng-template>\n</ng-template>\n\n<ng-template let-node #parentNodeFulltemplate>\n <ng-container *ngIf=\"parentNodeTemplate; else defaultParentNodeTpl\" [ngTemplateOutlet]=\"parentNodeTemplate\"\n [ngTemplateOutletContext]=\"{$implicit:node.data}\">\n </ng-container>\n\n <ng-template #defaultParentNodeTpl>\n <span>{{node.label}}</span>\n <mat-progress-bar *ngIf=\"node.isLoading\" mode=\"indeterminate\" fxFlex></mat-progress-bar>\n </ng-template>\n</ng-template>\n", styles: [".o-tree .mat-mdc-progress-bar{margin-left:30px}.o-tree .node-wrapper{align-items:center}\n"] }]
|
|
37088
37538
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: OFormComponent, decorators: [{
|
|
37089
37539
|
type: Optional
|
|
37090
37540
|
}, {
|
|
@@ -37160,31 +37610,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
37160
37610
|
}]
|
|
37161
37611
|
}] });
|
|
37162
37612
|
|
|
37163
|
-
class OUserInfoService {
|
|
37164
|
-
constructor(injector) {
|
|
37165
|
-
this.injector = injector;
|
|
37166
|
-
this.subject = new Subject();
|
|
37167
|
-
}
|
|
37168
|
-
setUserInfo(info) {
|
|
37169
|
-
this.storedInfo = info;
|
|
37170
|
-
this.subject.next(info);
|
|
37171
|
-
}
|
|
37172
|
-
getUserInfo() {
|
|
37173
|
-
return this.storedInfo;
|
|
37174
|
-
}
|
|
37175
|
-
getUserInfoObservable() {
|
|
37176
|
-
return this.subject.asObservable();
|
|
37177
|
-
}
|
|
37178
|
-
}
|
|
37179
|
-
OUserInfoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OUserInfoService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37180
|
-
OUserInfoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OUserInfoService, providedIn: 'root' });
|
|
37181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OUserInfoService, decorators: [{
|
|
37182
|
-
type: Injectable,
|
|
37183
|
-
args: [{
|
|
37184
|
-
providedIn: 'root'
|
|
37185
|
-
}]
|
|
37186
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
37187
|
-
|
|
37188
37613
|
const DEFAULT_INPUTS_O_USER_INFO = [
|
|
37189
37614
|
'showProfile: show-profile',
|
|
37190
37615
|
'showSettings: show-settings',
|
|
@@ -37259,155 +37684,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
37259
37684
|
}, template: "<div class=\"o-user-info-container\" fxLayout=\"row\" fxLayoutAlign=\"center\">\n <ng-container *ngIf=\"existsUserInfo\">\n <div class=\"o-user-info-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"center center\" [matMenuTriggerFor]=\"menu\"\n fxLayoutGap=\"16px\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"o-user-info-avatar-wrapper\">\n <img [src]=\"avatar\" *ngIf=\"avatar\" alt=\"avatar image\"/>\n </div>\n <span class=\"o-user-info-username\" *ngIf=\"username\"> {{ username }}</span>\n <mat-icon svgIcon=\"ontimize:keyboard_arrow_down\"></mat-icon>\n </div>\n <mat-menu #menu=\"matMenu\" yPosition=\"below\" class=\"o-mat-menu\">\n <button type=\"button\" mat-menu-item (click)=\"onProfileClick()\" *ngIf=\"showProfile\">\n <mat-icon>person</mat-icon>\n <span>{{ 'APP_LAYOUT.USER_PROFILE' | oTranslate }}</span>\n </button>\n <button type=\"button\" mat-menu-item (click)=\"onSettingsClick()\" *ngIf=\"showSettings\">\n <mat-icon svgIcon=\"ontimize:settings\"></mat-icon>\n <span>{{ 'APP_LAYOUT.SETTINGS' | oTranslate }}</span>\n </button>\n <ng-container *ngIf=\"userInfoConfiguration\">\n <button *ngFor=\"let item of userInfoConfiguration.userInfoConfigurationItems\" type=\"button\" mat-menu-item\n [matTooltip]=\"item.name | oTranslate\" matTooltipDisabled=\"item.tooltip\" [ngClass]=\"item.class\"\n (click)=\"item.triggerOnClick($event)\">\n <mat-icon>{{item.icon}} </mat-icon>\n <span>{{ item.name | oTranslate }}</span>\n </button>\n </ng-container>\n <button type=\"button\" mat-menu-item (click)=\"onLogoutClick()\" *ngIf=\"showLogout\">\n <mat-icon svgIcon=\"ontimize:power_settings_new\"></mat-icon>\n <span>{{ 'LOGOUT' | oTranslate }}</span>\n </button>\n\n </mat-menu>\n </ng-container>\n</div>", styles: [".o-user-info .o-user-info-container{cursor:pointer;height:100%}.o-user-info .o-user-info-avatar-wrapper{width:30px;height:30px;overflow:hidden;border-radius:100%}.o-user-info .o-user-info-avatar-wrapper img{max-width:100%;height:auto}.o-user-info mat-icon{font-size:16px;line-height:26px;height:100%}\n"] }]
|
|
37260
37685
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i1.Router }]; }, propDecorators: { showLogout: [], showSettings: [], showProfile: [] } });
|
|
37261
37686
|
|
|
37262
|
-
class AppConfigFactory {
|
|
37263
|
-
constructor(injector) {
|
|
37264
|
-
this.injector = injector;
|
|
37265
|
-
this.config = this.injector.get(APP_CONFIG);
|
|
37266
|
-
}
|
|
37267
|
-
factory() {
|
|
37268
|
-
return new AppConfig(this.config);
|
|
37269
|
-
}
|
|
37270
|
-
}
|
|
37271
|
-
function appConfigFactory(injector) {
|
|
37272
|
-
return new AppConfigFactory(injector).factory();
|
|
37273
|
-
}
|
|
37274
|
-
|
|
37275
|
-
class AuthGuardService {
|
|
37276
|
-
constructor(injector) {
|
|
37277
|
-
this.injector = injector;
|
|
37278
|
-
this.router = this.injector.get(Router);
|
|
37279
|
-
this.authService = this.injector.get(AuthService);
|
|
37280
|
-
this.oUserInfoService = this.injector.get(OUserInfoService);
|
|
37281
|
-
this.permissionsService = this.injector.get(PermissionsService);
|
|
37282
|
-
}
|
|
37283
|
-
canActivate(next, state) {
|
|
37284
|
-
const isLoggedIn = this.authService.isLoggedIn();
|
|
37285
|
-
let result = isLoggedIn;
|
|
37286
|
-
if (!isLoggedIn) {
|
|
37287
|
-
this.permissionsService.restart();
|
|
37288
|
-
this.router.navigate([Codes.LOGIN_ROUTE]);
|
|
37289
|
-
}
|
|
37290
|
-
if (isLoggedIn) {
|
|
37291
|
-
this.setUserInformation();
|
|
37292
|
-
if (!this.permissionsService.hasPermissions()) {
|
|
37293
|
-
result = this.permissionsService.getUserPermissionsAsPromise();
|
|
37294
|
-
}
|
|
37295
|
-
}
|
|
37296
|
-
return result;
|
|
37297
|
-
}
|
|
37298
|
-
setUserInformation() {
|
|
37299
|
-
const sessionInfo = this.authService.getSessionInfo();
|
|
37300
|
-
this.oUserInfoService.setUserInfo({
|
|
37301
|
-
username: sessionInfo.user,
|
|
37302
|
-
avatar: './assets/images/user_profile.png'
|
|
37303
|
-
});
|
|
37304
|
-
}
|
|
37305
|
-
}
|
|
37306
|
-
AuthGuardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthGuardService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37307
|
-
AuthGuardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthGuardService, providedIn: 'root' });
|
|
37308
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthGuardService, decorators: [{
|
|
37309
|
-
type: Injectable,
|
|
37310
|
-
args: [{
|
|
37311
|
-
providedIn: 'root'
|
|
37312
|
-
}]
|
|
37313
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
37314
|
-
|
|
37315
|
-
class OModulesInfoService {
|
|
37316
|
-
constructor(injector, router) {
|
|
37317
|
-
this.injector = injector;
|
|
37318
|
-
this.router = router;
|
|
37319
|
-
this.subject = new ReplaySubject();
|
|
37320
|
-
this.router = this.injector.get(Router);
|
|
37321
|
-
}
|
|
37322
|
-
getModuleChangeObservable() {
|
|
37323
|
-
this.router.events
|
|
37324
|
-
.pipe(filter(e => e instanceof NavigationEnd), map(() => {
|
|
37325
|
-
let route = this.router.routerState.root;
|
|
37326
|
-
let routeTitle = '';
|
|
37327
|
-
while (route.firstChild) {
|
|
37328
|
-
route = route.firstChild;
|
|
37329
|
-
}
|
|
37330
|
-
if (route.snapshot.data['oAppHeaderTitle']) {
|
|
37331
|
-
routeTitle = route.snapshot.data['oAppHeaderTitle'];
|
|
37332
|
-
}
|
|
37333
|
-
return routeTitle;
|
|
37334
|
-
}))
|
|
37335
|
-
.subscribe((title) => {
|
|
37336
|
-
if (title) {
|
|
37337
|
-
this.subject.next(title);
|
|
37338
|
-
}
|
|
37339
|
-
else {
|
|
37340
|
-
this.subject.next("");
|
|
37341
|
-
}
|
|
37342
|
-
});
|
|
37343
|
-
return this.subject.asObservable();
|
|
37344
|
-
}
|
|
37345
|
-
}
|
|
37346
|
-
OModulesInfoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OModulesInfoService, deps: [{ token: i0.Injector }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37347
|
-
OModulesInfoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OModulesInfoService, providedIn: 'root' });
|
|
37348
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OModulesInfoService, decorators: [{
|
|
37349
|
-
type: Injectable,
|
|
37350
|
-
args: [{
|
|
37351
|
-
providedIn: 'root'
|
|
37352
|
-
}]
|
|
37353
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }]; } });
|
|
37354
|
-
|
|
37355
|
-
class PermissionsGuardService {
|
|
37356
|
-
constructor(injector) {
|
|
37357
|
-
this.injector = injector;
|
|
37358
|
-
this.router = this.injector.get(Router);
|
|
37359
|
-
this.permissionsService = this.injector.get(PermissionsService);
|
|
37360
|
-
this.snackBarService = this.injector.get(SnackBarService);
|
|
37361
|
-
this.shareCanActivateChildService = this.injector.get(ShareCanActivateChildService);
|
|
37362
|
-
this.shareCanActivateChildService.setPermissionsGuard(this);
|
|
37363
|
-
}
|
|
37364
|
-
canActivateChild(childRoute, state) {
|
|
37365
|
-
let restricted = false;
|
|
37366
|
-
const oPermission = childRoute.data ? childRoute.data['oPermission'] : undefined;
|
|
37367
|
-
const permissionId = (oPermission || {})['permissionId'];
|
|
37368
|
-
if (Util.isDefined(permissionId)) {
|
|
37369
|
-
restricted = this.permissionsService.isPermissionIdRouteRestricted(permissionId);
|
|
37370
|
-
if (restricted) {
|
|
37371
|
-
let msg = 'MESSAGES.NAVIGATION_NOT_ALLOWED_PERMISSION';
|
|
37372
|
-
const route = oPermission['restrictedPermissionsRedirect'];
|
|
37373
|
-
if (Util.isDefined(route)) {
|
|
37374
|
-
msg = 'MESSAGES.NAVIGATION_REDIRECTED_PERMISSION';
|
|
37375
|
-
this.router.navigate([route]);
|
|
37376
|
-
}
|
|
37377
|
-
this.snackBarService.open(msg);
|
|
37378
|
-
}
|
|
37379
|
-
}
|
|
37380
|
-
return !restricted;
|
|
37381
|
-
}
|
|
37382
|
-
}
|
|
37383
|
-
PermissionsGuardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PermissionsGuardService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37384
|
-
PermissionsGuardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PermissionsGuardService });
|
|
37385
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PermissionsGuardService, decorators: [{
|
|
37386
|
-
type: Injectable
|
|
37387
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
37388
|
-
|
|
37389
|
-
function getPermissionsServiceProvider(injector) {
|
|
37390
|
-
return new PermissionsService(injector);
|
|
37391
|
-
}
|
|
37392
|
-
class OPermissionsModule {
|
|
37393
|
-
}
|
|
37394
|
-
OPermissionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OPermissionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
37395
|
-
OPermissionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: OPermissionsModule, imports: [CommonModule] });
|
|
37396
|
-
OPermissionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OPermissionsModule, providers: [
|
|
37397
|
-
{ provide: PermissionsGuardService, useClass: PermissionsGuardService },
|
|
37398
|
-
{ provide: OntimizePermissionsService, useFactory: permissionsServiceFactory, deps: [Injector] }
|
|
37399
|
-
], imports: [CommonModule] });
|
|
37400
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OPermissionsModule, decorators: [{
|
|
37401
|
-
type: NgModule,
|
|
37402
|
-
args: [{
|
|
37403
|
-
imports: [CommonModule],
|
|
37404
|
-
providers: [
|
|
37405
|
-
{ provide: PermissionsGuardService, useClass: PermissionsGuardService },
|
|
37406
|
-
{ provide: OntimizePermissionsService, useFactory: permissionsServiceFactory, deps: [Injector] }
|
|
37407
|
-
]
|
|
37408
|
-
}]
|
|
37409
|
-
}] });
|
|
37410
|
-
|
|
37411
37687
|
const DEFAULT_INPUTS_O_USER_INFO_MENU_ITEM = [
|
|
37412
37688
|
'name',
|
|
37413
37689
|
'route',
|
|
@@ -38018,7 +38294,7 @@ class OAppSidenavMenuGroupComponent {
|
|
|
38018
38294
|
}
|
|
38019
38295
|
}
|
|
38020
38296
|
OAppSidenavMenuGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OAppSidenavMenuGroupComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
38021
|
-
OAppSidenavMenuGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OAppSidenavMenuGroupComponent, selector: "o-app-sidenav-menu-group", inputs: { menuGroup: ["menu-group", "menuGroup"], sidenavOpened: ["sidenav-opened", "sidenavOpened"], level: "level" }, outputs: { onItemClick: "onItemClick" }, host: { properties: { "class": "getClass()", "attr.disabled": "disabled" } }, ngImport: i0, template: "<ng-container *ngIf=\"!hidden\">\n <a mat-button mat-button class=\"o-app-sidenav-item o-app-sidenav-menugroup\" [class.opened]=\"menuGroup.opened\" (click)=\"onClick()\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\n <ng-container *ngIf=\"sidenavOpened\">\n <mat-icon *ngIf=\"menuGroup.svgIcon\" [svgIcon]=\"menuGroup.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuGroup.icon\">{{ menuGroup.icon }}</mat-icon>\n <span class=\"o-app-sidenav-menugroup-title\">{{ menuGroup.name | oTranslate }}</span>\n <span class=\"fill-remaining\"></span>\n <ng-container *ngIf=\"appMenuService.isMenuGroupRoute(menuGroup) && menuGroup.opened; else arrowMenuGroupTemplate\">\n <mat-icon class=\"o-app-sidenav-menugroup-arrow\" svgIcon=\"ontimize:keyboard_arrow_right\" (click)=\"toggle($event)\"></mat-icon>\n </ng-container>\n <ng-template #arrowMenuGroupTemplate>\n <mat-icon class=\"o-app-sidenav-menugroup-arrow\" svgIcon=\"ontimize:keyboard_arrow_right\"></mat-icon>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!sidenavOpened\">\n <mat-icon [matTooltip]=\"tooltip\" matTooltipClass=\"menugroup-tooltip\" matTooltipPosition=\"right\" *ngIf=\"menuGroup.svgIcon\"\n [svgIcon]=\"menuGroup.svgIcon\"></mat-icon>\n <mat-icon [matTooltip]=\"tooltip\" matTooltipClass=\"menugroup-tooltip\" matTooltipPosition=\"right\" *ngIf=\"menuGroup.icon\">{{\n menuGroup.icon }}</mat-icon>\n </ng-container>\n </div>\n </a>\n\n <div class=\"o-app-sidenav-menugroup-items-container\">\n <ul [@contentExpansion]=\"contentExpansion\" class=\"o-app-sidenav-menugroup-ul\">\n <ng-container *ngFor=\"let menuItem of menuGroup.items\">\n <o-app-sidenav-menu-item [sidenav-opened]=\"sidenavOpened\" *ngIf=\"!menuItem.items; else menuGroup\" [disabled]=\"disabled\"
|
|
38297
|
+
OAppSidenavMenuGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OAppSidenavMenuGroupComponent, selector: "o-app-sidenav-menu-group", inputs: { menuGroup: ["menu-group", "menuGroup"], sidenavOpened: ["sidenav-opened", "sidenavOpened"], level: "level" }, outputs: { onItemClick: "onItemClick" }, host: { properties: { "class": "getClass()", "attr.disabled": "disabled" } }, ngImport: i0, template: "<ng-container *ngIf=\"!hidden\">\n <a mat-button mat-button class=\"o-app-sidenav-item o-app-sidenav-menugroup\" [class.opened]=\"menuGroup.opened\" (click)=\"onClick()\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\n <ng-container *ngIf=\"sidenavOpened\">\n <mat-icon *ngIf=\"menuGroup.svgIcon\" [svgIcon]=\"menuGroup.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuGroup.icon\">{{ menuGroup.icon }}</mat-icon>\n <span class=\"o-app-sidenav-menugroup-title\">{{ menuGroup.name | oTranslate }}</span>\n <span class=\"fill-remaining\"></span>\n <ng-container *ngIf=\"appMenuService.isMenuGroupRoute(menuGroup) && menuGroup.opened; else arrowMenuGroupTemplate\">\n <mat-icon class=\"o-app-sidenav-menugroup-arrow\" svgIcon=\"ontimize:keyboard_arrow_right\" (click)=\"toggle($event)\"></mat-icon>\n </ng-container>\n <ng-template #arrowMenuGroupTemplate>\n <mat-icon class=\"o-app-sidenav-menugroup-arrow\" svgIcon=\"ontimize:keyboard_arrow_right\"></mat-icon>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!sidenavOpened\">\n <mat-icon [matTooltip]=\"tooltip\" matTooltipClass=\"menugroup-tooltip\" matTooltipPosition=\"right\" *ngIf=\"menuGroup.svgIcon\"\n [svgIcon]=\"menuGroup.svgIcon\"></mat-icon>\n <mat-icon [matTooltip]=\"tooltip\" matTooltipClass=\"menugroup-tooltip\" matTooltipPosition=\"right\" *ngIf=\"menuGroup.icon\">{{\n menuGroup.icon }}</mat-icon>\n </ng-container>\n </div>\n </a>\n\n <div class=\"o-app-sidenav-menugroup-items-container\">\n <ul [@contentExpansion]=\"contentExpansion\" class=\"o-app-sidenav-menugroup-ul\">\n <ng-container *ngFor=\"let menuItem of menuGroup.items\">\n <ng-container *ngIf=\"appMenuService.isVisible(menuItem)\">\n <o-app-sidenav-menu-item [sidenav-opened]=\"sidenavOpened\" *ngIf=\"!menuItem.items; else menuGroup\" [disabled]=\"disabled\"\n [menu-item]=\"menuItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuItem)\" (onClick)=\"onMenuItemClick($event)\">\n </o-app-sidenav-menu-item>\n <ng-template #menuGroup>\n <o-app-sidenav-menu-group [menu-group]=\"menuItem\" [sidenav-opened]=\"sidenavOpened\" [level]=\"level + 1\"\n *ngIf=\"appMenuService.getMenuItemType(menuItem) === 'group'\" (onItemClick)=\"onMenuItemClick($event)\">\n </o-app-sidenav-menu-group>\n </ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</ng-container>\n", styles: [".o-app-sidenav-menu-group .o-app-sidenav-menugroup.mat-mdc-button{min-width:0}.o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-menugroup{cursor:default}.o-app-sidenav-menu-group .mat-mdc-tooltip.menugroup-tooltip{margin-left:28px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: OAppSidenavMenuGroupComponent, selector: "o-app-sidenav-menu-group", inputs: ["menu-group", "sidenav-opened", "level"], outputs: ["onItemClick"] }, { kind: "component", type: OAppSidenavMenuItemComponent, selector: "o-app-sidenav-menu-item", inputs: ["menu-item", "menu-item-type", "sidenav-opened", "disabled"], outputs: ["onClick"] }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], animations: [
|
|
38022
38298
|
trigger('contentExpansion', [
|
|
38023
38299
|
state('collapsed', style({ height: '0px' })),
|
|
38024
38300
|
state('expanded', style({ height: '*' })),
|
|
@@ -38046,7 +38322,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
38046
38322
|
], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
38047
38323
|
'[class]': 'getClass()',
|
|
38048
38324
|
'[attr.disabled]': 'disabled'
|
|
38049
|
-
}, template: "<ng-container *ngIf=\"!hidden\">\n <a mat-button mat-button class=\"o-app-sidenav-item o-app-sidenav-menugroup\" [class.opened]=\"menuGroup.opened\" (click)=\"onClick()\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\n <ng-container *ngIf=\"sidenavOpened\">\n <mat-icon *ngIf=\"menuGroup.svgIcon\" [svgIcon]=\"menuGroup.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuGroup.icon\">{{ menuGroup.icon }}</mat-icon>\n <span class=\"o-app-sidenav-menugroup-title\">{{ menuGroup.name | oTranslate }}</span>\n <span class=\"fill-remaining\"></span>\n <ng-container *ngIf=\"appMenuService.isMenuGroupRoute(menuGroup) && menuGroup.opened; else arrowMenuGroupTemplate\">\n <mat-icon class=\"o-app-sidenav-menugroup-arrow\" svgIcon=\"ontimize:keyboard_arrow_right\" (click)=\"toggle($event)\"></mat-icon>\n </ng-container>\n <ng-template #arrowMenuGroupTemplate>\n <mat-icon class=\"o-app-sidenav-menugroup-arrow\" svgIcon=\"ontimize:keyboard_arrow_right\"></mat-icon>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!sidenavOpened\">\n <mat-icon [matTooltip]=\"tooltip\" matTooltipClass=\"menugroup-tooltip\" matTooltipPosition=\"right\" *ngIf=\"menuGroup.svgIcon\"\n [svgIcon]=\"menuGroup.svgIcon\"></mat-icon>\n <mat-icon [matTooltip]=\"tooltip\" matTooltipClass=\"menugroup-tooltip\" matTooltipPosition=\"right\" *ngIf=\"menuGroup.icon\">{{\n menuGroup.icon }}</mat-icon>\n </ng-container>\n </div>\n </a>\n\n <div class=\"o-app-sidenav-menugroup-items-container\">\n <ul [@contentExpansion]=\"contentExpansion\" class=\"o-app-sidenav-menugroup-ul\">\n <ng-container *ngFor=\"let menuItem of menuGroup.items\">\n <o-app-sidenav-menu-item [sidenav-opened]=\"sidenavOpened\" *ngIf=\"!menuItem.items; else menuGroup\" [disabled]=\"disabled\"
|
|
38325
|
+
}, template: "<ng-container *ngIf=\"!hidden\">\n <a mat-button mat-button class=\"o-app-sidenav-item o-app-sidenav-menugroup\" [class.opened]=\"menuGroup.opened\" (click)=\"onClick()\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\n <ng-container *ngIf=\"sidenavOpened\">\n <mat-icon *ngIf=\"menuGroup.svgIcon\" [svgIcon]=\"menuGroup.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuGroup.icon\">{{ menuGroup.icon }}</mat-icon>\n <span class=\"o-app-sidenav-menugroup-title\">{{ menuGroup.name | oTranslate }}</span>\n <span class=\"fill-remaining\"></span>\n <ng-container *ngIf=\"appMenuService.isMenuGroupRoute(menuGroup) && menuGroup.opened; else arrowMenuGroupTemplate\">\n <mat-icon class=\"o-app-sidenav-menugroup-arrow\" svgIcon=\"ontimize:keyboard_arrow_right\" (click)=\"toggle($event)\"></mat-icon>\n </ng-container>\n <ng-template #arrowMenuGroupTemplate>\n <mat-icon class=\"o-app-sidenav-menugroup-arrow\" svgIcon=\"ontimize:keyboard_arrow_right\"></mat-icon>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!sidenavOpened\">\n <mat-icon [matTooltip]=\"tooltip\" matTooltipClass=\"menugroup-tooltip\" matTooltipPosition=\"right\" *ngIf=\"menuGroup.svgIcon\"\n [svgIcon]=\"menuGroup.svgIcon\"></mat-icon>\n <mat-icon [matTooltip]=\"tooltip\" matTooltipClass=\"menugroup-tooltip\" matTooltipPosition=\"right\" *ngIf=\"menuGroup.icon\">{{\n menuGroup.icon }}</mat-icon>\n </ng-container>\n </div>\n </a>\n\n <div class=\"o-app-sidenav-menugroup-items-container\">\n <ul [@contentExpansion]=\"contentExpansion\" class=\"o-app-sidenav-menugroup-ul\">\n <ng-container *ngFor=\"let menuItem of menuGroup.items\">\n <ng-container *ngIf=\"appMenuService.isVisible(menuItem)\">\n <o-app-sidenav-menu-item [sidenav-opened]=\"sidenavOpened\" *ngIf=\"!menuItem.items; else menuGroup\" [disabled]=\"disabled\"\n [menu-item]=\"menuItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuItem)\" (onClick)=\"onMenuItemClick($event)\">\n </o-app-sidenav-menu-item>\n <ng-template #menuGroup>\n <o-app-sidenav-menu-group [menu-group]=\"menuItem\" [sidenav-opened]=\"sidenavOpened\" [level]=\"level + 1\"\n *ngIf=\"appMenuService.getMenuItemType(menuItem) === 'group'\" (onItemClick)=\"onMenuItemClick($event)\">\n </o-app-sidenav-menu-group>\n </ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</ng-container>\n", styles: [".o-app-sidenav-menu-group .o-app-sidenav-menugroup.mat-mdc-button{min-width:0}.o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-menugroup{cursor:default}.o-app-sidenav-menu-group .mat-mdc-tooltip.menugroup-tooltip{margin-left:28px}\n"] }]
|
|
38050
38326
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { sidenavOpened: [], level: [] } });
|
|
38051
38327
|
|
|
38052
38328
|
const DEFAULT_INPUTS_O_APP_SIDENAV = [
|
|
@@ -38072,7 +38348,7 @@ class OAppSidenavComponent {
|
|
|
38072
38348
|
this.elRef = elRef;
|
|
38073
38349
|
this.cd = cd;
|
|
38074
38350
|
this.media = media;
|
|
38075
|
-
this.
|
|
38351
|
+
this.menuRootArray = [];
|
|
38076
38352
|
this._layoutMode = Codes.APP_LAYOUT_MODE_DESKTOP;
|
|
38077
38353
|
this.opened = true;
|
|
38078
38354
|
this._showUserInfo = true;
|
|
@@ -38085,6 +38361,7 @@ class OAppSidenavComponent {
|
|
|
38085
38361
|
this.manuallyClosed = false;
|
|
38086
38362
|
this.appMenuService = this.injector.get(AppMenuService);
|
|
38087
38363
|
this.menuRootArray = this.appMenuService.getMenuRoots();
|
|
38364
|
+
this.permissionSubscription = this.appMenuService.onPermissionMenuChanged.subscribe(() => this.refreshMenuRoots());
|
|
38088
38365
|
this.oUserInfoService = this.injector.get(OUserInfoService);
|
|
38089
38366
|
const self = this;
|
|
38090
38367
|
this.mediaWatch = this.media.asObservable().subscribe(() => {
|
|
@@ -38093,6 +38370,10 @@ class OAppSidenavComponent {
|
|
|
38093
38370
|
}
|
|
38094
38371
|
});
|
|
38095
38372
|
}
|
|
38373
|
+
refreshMenuRoots() {
|
|
38374
|
+
this.menuRootArray = [...this.appMenuService.getMenuRoots()];
|
|
38375
|
+
this.cd.detectChanges();
|
|
38376
|
+
}
|
|
38096
38377
|
onResize() {
|
|
38097
38378
|
if (!this.manuallyClosed && !this.isScreenSmall() && !this.isMobileMode()) {
|
|
38098
38379
|
this.sidenav.open();
|
|
@@ -38110,10 +38391,10 @@ class OAppSidenavComponent {
|
|
|
38110
38391
|
this.userInfo = this.oUserInfoService.getUserInfo();
|
|
38111
38392
|
this.userInfoSubscription = this.oUserInfoService.getUserInfoObservable().subscribe(res => {
|
|
38112
38393
|
this.userInfo = res;
|
|
38113
|
-
this.
|
|
38394
|
+
this.refreshMenuItemUserInfo();
|
|
38114
38395
|
});
|
|
38115
38396
|
}
|
|
38116
|
-
this.
|
|
38397
|
+
this.refreshMenuItemUserInfo();
|
|
38117
38398
|
}
|
|
38118
38399
|
get layoutMode() {
|
|
38119
38400
|
return this._layoutMode;
|
|
@@ -38133,7 +38414,7 @@ class OAppSidenavComponent {
|
|
|
38133
38414
|
this._sidenavMode = m;
|
|
38134
38415
|
}
|
|
38135
38416
|
}
|
|
38136
|
-
|
|
38417
|
+
refreshMenuItemUserInfo() {
|
|
38137
38418
|
if (this.showUserInfo && this.userInfo && this._showToggleButton) {
|
|
38138
38419
|
const firstRoot = this.menuRootArray[0];
|
|
38139
38420
|
const alreadyExistsUserInfo = firstRoot ? firstRoot.id === 'user-info' : false;
|
|
@@ -38169,6 +38450,9 @@ class OAppSidenavComponent {
|
|
|
38169
38450
|
if (this.userInfoSubscription) {
|
|
38170
38451
|
this.userInfoSubscription.unsubscribe();
|
|
38171
38452
|
}
|
|
38453
|
+
if (this.permissionSubscription) {
|
|
38454
|
+
this.permissionSubscription.unsubscribe();
|
|
38455
|
+
}
|
|
38172
38456
|
}
|
|
38173
38457
|
isScreenSmall() {
|
|
38174
38458
|
return !this.manuallyClosed && this.media.isActive('lt-sm');
|
|
@@ -38182,12 +38466,6 @@ class OAppSidenavComponent {
|
|
|
38182
38466
|
isSidenavOpened() {
|
|
38183
38467
|
return this.opened && !this.isMobileMode() && !this.isScreenSmall();
|
|
38184
38468
|
}
|
|
38185
|
-
get menuRootArray() {
|
|
38186
|
-
return this._menuRootArray;
|
|
38187
|
-
}
|
|
38188
|
-
set menuRootArray(val) {
|
|
38189
|
-
this._menuRootArray = val;
|
|
38190
|
-
}
|
|
38191
38469
|
toggleSidenav() {
|
|
38192
38470
|
const promise = this.sidenav.opened ? this.sidenav.close() : this.sidenav.open();
|
|
38193
38471
|
const self = this;
|
|
@@ -38229,7 +38507,7 @@ class OAppSidenavComponent {
|
|
|
38229
38507
|
OAppSidenavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OAppSidenavComponent, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2$2.MediaObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
38230
38508
|
OAppSidenavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OAppSidenavComponent, selector: "o-app-sidenav", inputs: { opened: "opened", showUserInfo: ["show-user-info", "showUserInfo"], showToggleButton: ["show-toggle-button", "showToggleButton"], openedSidenavImg: ["opened-sidenav-image", "openedSidenavImg"], closedSidenavImg: ["closed-sidenav-image", "closedSidenavImg"], layoutMode: ["layout-mode", "layoutMode"], sidenavMode: ["sidenav-mode", "sidenavMode"] }, outputs: { onSidenavOpenedChange: "onSidenavOpenedChange", onSidenavOpenedStart: "onSidenavOpenedStart", onSidenavClosedStart: "onSidenavClosedStart", onSidenavToggle: "onSidenavToggle", afterSidenavToggle: "afterSidenavToggle" }, host: { listeners: { "window:resize": "onResize()" }, properties: { "class.o-app-sidenav": "true" } }, providers: [
|
|
38231
38509
|
{ provide: OAppSidenavBase, useExisting: forwardRef(() => OAppSidenavComponent) }
|
|
38232
|
-
], viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true }], ngImport: i0, template: "<mat-sidenav-container class=\"o-app-sidenav-container\" [class.opened]=\"sidenav.opened\"\n [class.o-app-sidenav-mode-desktop]=\"(layoutMode || 'desktop') === 'desktop'\"\n [class.o-app-sidenav-mode-mobile]=\"(layoutMode || 'desktop') !== 'desktop'\">\n\n <mat-sidenav #sidenav class=\"o-app-sidenav-sidenav o-scroll\" [opened]=\"isSidenavOpened()\"\n [mode]=\"(sidenavMode || ((layoutMode || 'desktop') === 'desktop' ? 'side' : 'over'))\" [class.mat-drawer-opened]=\"sidenav.opened\"\n [class.mat-drawer-closed]=\"!sidenav.opened\" fxLayoutAlign=\"start stretch\" (openedChange)=\"sidenavOpenedChange()\"\n (closedStart)=\"sidenavClosedStart()\" (openedStart)=\"sidenavOpenedStart()\">\n <div fxFlex fxLayout=\"column\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"sidenav-toggle-container\" *ngIf=\"isDesktopMode()\">\n <mat-icon class=\"sidenav-toggle\" (click)=\"toggleSidenav()\" svgIcon=\"ontimize:menu\">menu</mat-icon>\n </div>\n\n <o-app-sidenav-image [opened-src]=\"openedSidenavImg\" [closed-src]=\"closedSidenavImg\"> </o-app-sidenav-image>\n <ng-content select=\"o-app-layout-sidenav-projection-start\"></ng-content>\n <div class=\"navMenu\">\n <nav *ngFor=\"let menuRootItem of menuRootArray\">\n\n <ul *ngIf=\"appMenuService.getMenuItemType(menuRootItem) !== 'group'\">\n <o-app-sidenav-menu-item [menu-item]=\"menuRootItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuRootItem)\"\n [sidenav-opened]=\"sidenav.opened\" (onClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-item>\n </ul>\n\n <o-app-sidenav-menu-group [menu-group]=\"menuRootItem\" [sidenav-opened]=\"sidenav.opened\" level=\"1\"\n *ngIf=\"appMenuService.getMenuItemType(menuRootItem) === 'group'\" (onItemClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-group>\n\n </nav>\n </div>\n <div class=\"layout-sidenav-projection-end\">\n <ng-content select=\"o-app-layout-sidenav-projection-end\"></ng-content>\n </div>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"o-app-sidenav-content\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".o-app-sidenav.header-layout .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 48px 6px #0000003d}.o-app-sidenav .navMenu{flex:1;display:flex;flex-direction:column;overflow:auto}@-moz-document url-prefix(){.o-app-sidenav .navMenu{height:100%}}.o-app-sidenav .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-menu-item a{margin-left:8px}.o-app-sidenav .o-app-sidenav-menu-group a .mat-icon svg,.o-app-sidenav .o-app-sidenav-menu-item a .mat-icon svg{display:flex}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-mdc-button-persistent-ripple,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-mdc-button-persistent-ripple{display:none}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-item,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .o-app-sidenav-item{opacity:.5}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] a,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] a{cursor:initial}.o-app-sidenav .o-app-sidenav-menugroup{transition:background-color .5s}.o-app-sidenav .o-app-sidenav-menugroup-items-container{overflow:hidden}.o-app-sidenav .o-app-sidenav-container{width:100%;height:100%}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-sidenav.mat-drawer-closed{visibility:visible!important;transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-content.mat-drawer-content{margin-right:48px!important;transform:translate3d(48px,0,0)!important}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content{position:absolute;right:0;left:0;min-height:100%;display:flex;flex-direction:column}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content router-outlet+*{flex-grow:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 0 6px #0000003d;width:240px;bottom:0;overflow:auto;height:100%}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup{transition:padding .5s 0s}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup .o-app-sidenav-menugroup-arrow{transition:.5s transform cubic-bezier(.25,.8,.25,1)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup.opened .o-app-sidenav-menugroup-arrow{transform:rotate(90deg)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup-title,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:28px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-right:4px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup mat-icon:not(.o-app-sidenav-menugroup-arrow),.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem mat-icon:not(.o-app-sidenav-menugroup-arrow){margin-right:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closing{transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed{text-align:center}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item:not(.o-user-info){cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:focus,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:hover{color:inherit}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-group:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-item:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected{padding:0 8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed nav{width:48px;min-width:48px;margin-left:auto}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container{padding:0;text-align:end;max-height:36px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container .o-app-sidenav-image{max-height:36px;margin-right:8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container{padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle-container{height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a{border-radius:0;box-sizing:border-box;display:block;line-height:48px;height:auto;font-size:14px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a>.mat-icon{vertical-align:middle;height:24px;width:24px;font-size:24px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul{list-style-type:none;margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul li{margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle{padding:4px 12px 8px;cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a{font-size:14px;line-height:48px;height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:11px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-icon,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-icon{font-size:20px;height:20px;width:20px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menugroup-arrow{display:flex}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6$3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6$3.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6$3.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: OAppSidenavMenuGroupComponent, selector: "o-app-sidenav-menu-group", inputs: ["menu-group", "sidenav-opened", "level"], outputs: ["onItemClick"] }, { kind: "component", type: OAppSidenavImageComponent, selector: "o-app-sidenav-image", inputs: ["opened-src", "closed-src"] }, { kind: "component", type: OAppSidenavMenuItemComponent, selector: "o-app-sidenav-menu-item", inputs: ["menu-item", "menu-item-type", "sidenav-opened", "disabled"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
38510
|
+
], viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true }], ngImport: i0, template: "<mat-sidenav-container class=\"o-app-sidenav-container\" [class.opened]=\"sidenav.opened\"\n [class.o-app-sidenav-mode-desktop]=\"(layoutMode || 'desktop') === 'desktop'\"\n [class.o-app-sidenav-mode-mobile]=\"(layoutMode || 'desktop') !== 'desktop'\">\n\n <mat-sidenav #sidenav class=\"o-app-sidenav-sidenav o-scroll\" [opened]=\"isSidenavOpened()\"\n [mode]=\"(sidenavMode || ((layoutMode || 'desktop') === 'desktop' ? 'side' : 'over'))\" [class.mat-drawer-opened]=\"sidenav.opened\"\n [class.mat-drawer-closed]=\"!sidenav.opened\" fxLayoutAlign=\"start stretch\" (openedChange)=\"sidenavOpenedChange()\"\n (closedStart)=\"sidenavClosedStart()\" (openedStart)=\"sidenavOpenedStart()\">\n <div fxFlex fxLayout=\"column\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"sidenav-toggle-container\" *ngIf=\"isDesktopMode()\">\n <mat-icon class=\"sidenav-toggle\" (click)=\"toggleSidenav()\" svgIcon=\"ontimize:menu\">menu</mat-icon>\n </div>\n\n <o-app-sidenav-image [opened-src]=\"openedSidenavImg\" [closed-src]=\"closedSidenavImg\"> </o-app-sidenav-image>\n <ng-content select=\"o-app-layout-sidenav-projection-start\"></ng-content>\n <div class=\"navMenu\">\n <nav *ngFor=\"let menuRootItem of menuRootArray\">\n\n <ul *ngIf=\"appMenuService.getMenuItemType(menuRootItem) !== 'group' && appMenuService.isVisible(menuRootItem)\">\n <o-app-sidenav-menu-item [menu-item]=\"menuRootItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuRootItem)\"\n [sidenav-opened]=\"sidenav.opened\" (onClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-item>\n </ul>\n\n <o-app-sidenav-menu-group [menu-group]=\"menuRootItem\" [sidenav-opened]=\"sidenav.opened\" level=\"1\"\n *ngIf=\"appMenuService.getMenuItemType(menuRootItem) === 'group' && appMenuService.isVisible(menuRootItem)\"\n (onItemClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-group>\n\n </nav>\n </div>\n <div class=\"layout-sidenav-projection-end\">\n <ng-content select=\"o-app-layout-sidenav-projection-end\"></ng-content>\n </div>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"o-app-sidenav-content\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".o-app-sidenav.header-layout .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 48px 6px #0000003d}.o-app-sidenav .navMenu{flex:1;display:flex;flex-direction:column;overflow:auto}@-moz-document url-prefix(){.o-app-sidenav .navMenu{height:100%}}.o-app-sidenav .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-menu-item a{margin-left:8px}.o-app-sidenav .o-app-sidenav-menu-group a .mat-icon svg,.o-app-sidenav .o-app-sidenav-menu-item a .mat-icon svg{display:flex}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-mdc-button-persistent-ripple,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-mdc-button-persistent-ripple{display:none}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-item,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .o-app-sidenav-item{opacity:.5}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] a,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] a{cursor:initial}.o-app-sidenav .o-app-sidenav-menugroup{transition:background-color .5s}.o-app-sidenav .o-app-sidenav-menugroup-items-container{overflow:hidden}.o-app-sidenav .o-app-sidenav-container{width:100%;height:100%}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-sidenav.mat-drawer-closed{visibility:visible!important;transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-content.mat-drawer-content{margin-right:48px!important;transform:translate3d(48px,0,0)!important}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content{position:absolute;right:0;left:0;min-height:100%;display:flex;flex-direction:column}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content router-outlet+*{flex-grow:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 0 6px #0000003d;width:240px;bottom:0;overflow:auto;height:100%}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup{transition:padding .5s 0s}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup .o-app-sidenav-menugroup-arrow{transition:.5s transform cubic-bezier(.25,.8,.25,1)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup.opened .o-app-sidenav-menugroup-arrow{transform:rotate(90deg)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup-title,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:28px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-right:4px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup mat-icon:not(.o-app-sidenav-menugroup-arrow),.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem mat-icon:not(.o-app-sidenav-menugroup-arrow){margin-right:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closing{transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed{text-align:center}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item:not(.o-user-info){cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:focus,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:hover{color:inherit}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-group:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-item:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected{padding:0 8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed nav{width:48px;min-width:48px;margin-left:auto}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container{padding:0;text-align:end;max-height:36px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container .o-app-sidenav-image{max-height:36px;margin-right:8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container{padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle-container{height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a{border-radius:0;box-sizing:border-box;display:block;line-height:48px;height:auto;font-size:14px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a>.mat-icon{vertical-align:middle;height:24px;width:24px;font-size:24px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul{list-style-type:none;margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul li{margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle{padding:4px 12px 8px;cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a{font-size:14px;line-height:48px;height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:11px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-icon,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-icon{font-size:20px;height:20px;width:20px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menugroup-arrow{display:flex}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6$3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6$3.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6$3.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: OAppSidenavMenuGroupComponent, selector: "o-app-sidenav-menu-group", inputs: ["menu-group", "sidenav-opened", "level"], outputs: ["onItemClick"] }, { kind: "component", type: OAppSidenavImageComponent, selector: "o-app-sidenav-image", inputs: ["opened-src", "closed-src"] }, { kind: "component", type: OAppSidenavMenuItemComponent, selector: "o-app-sidenav-menu-item", inputs: ["menu-item", "menu-item-type", "sidenav-opened", "disabled"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
38233
38511
|
__decorate([
|
|
38234
38512
|
BooleanInputConverter(),
|
|
38235
38513
|
__metadata("design:type", Boolean)
|
|
@@ -38240,7 +38518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
38240
38518
|
'[class.o-app-sidenav]': 'true'
|
|
38241
38519
|
}, providers: [
|
|
38242
38520
|
{ provide: OAppSidenavBase, useExisting: forwardRef(() => OAppSidenavComponent) }
|
|
38243
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-sidenav-container class=\"o-app-sidenav-container\" [class.opened]=\"sidenav.opened\"\n [class.o-app-sidenav-mode-desktop]=\"(layoutMode || 'desktop') === 'desktop'\"\n [class.o-app-sidenav-mode-mobile]=\"(layoutMode || 'desktop') !== 'desktop'\">\n\n <mat-sidenav #sidenav class=\"o-app-sidenav-sidenav o-scroll\" [opened]=\"isSidenavOpened()\"\n [mode]=\"(sidenavMode || ((layoutMode || 'desktop') === 'desktop' ? 'side' : 'over'))\" [class.mat-drawer-opened]=\"sidenav.opened\"\n [class.mat-drawer-closed]=\"!sidenav.opened\" fxLayoutAlign=\"start stretch\" (openedChange)=\"sidenavOpenedChange()\"\n (closedStart)=\"sidenavClosedStart()\" (openedStart)=\"sidenavOpenedStart()\">\n <div fxFlex fxLayout=\"column\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"sidenav-toggle-container\" *ngIf=\"isDesktopMode()\">\n <mat-icon class=\"sidenav-toggle\" (click)=\"toggleSidenav()\" svgIcon=\"ontimize:menu\">menu</mat-icon>\n </div>\n\n <o-app-sidenav-image [opened-src]=\"openedSidenavImg\" [closed-src]=\"closedSidenavImg\"> </o-app-sidenav-image>\n <ng-content select=\"o-app-layout-sidenav-projection-start\"></ng-content>\n <div class=\"navMenu\">\n <nav *ngFor=\"let menuRootItem of menuRootArray\">\n\n <ul *ngIf=\"appMenuService.getMenuItemType(menuRootItem) !== 'group'\">\n <o-app-sidenav-menu-item [menu-item]=\"menuRootItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuRootItem)\"\n [sidenav-opened]=\"sidenav.opened\" (onClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-item>\n </ul>\n\n <o-app-sidenav-menu-group [menu-group]=\"menuRootItem\" [sidenav-opened]=\"sidenav.opened\" level=\"1\"\n *ngIf=\"appMenuService.getMenuItemType(menuRootItem) === 'group'\" (onItemClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-group>\n\n </nav>\n </div>\n <div class=\"layout-sidenav-projection-end\">\n <ng-content select=\"o-app-layout-sidenav-projection-end\"></ng-content>\n </div>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"o-app-sidenav-content\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".o-app-sidenav.header-layout .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 48px 6px #0000003d}.o-app-sidenav .navMenu{flex:1;display:flex;flex-direction:column;overflow:auto}@-moz-document url-prefix(){.o-app-sidenav .navMenu{height:100%}}.o-app-sidenav .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-menu-item a{margin-left:8px}.o-app-sidenav .o-app-sidenav-menu-group a .mat-icon svg,.o-app-sidenav .o-app-sidenav-menu-item a .mat-icon svg{display:flex}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-mdc-button-persistent-ripple,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-mdc-button-persistent-ripple{display:none}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-item,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .o-app-sidenav-item{opacity:.5}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] a,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] a{cursor:initial}.o-app-sidenav .o-app-sidenav-menugroup{transition:background-color .5s}.o-app-sidenav .o-app-sidenav-menugroup-items-container{overflow:hidden}.o-app-sidenav .o-app-sidenav-container{width:100%;height:100%}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-sidenav.mat-drawer-closed{visibility:visible!important;transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-content.mat-drawer-content{margin-right:48px!important;transform:translate3d(48px,0,0)!important}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content{position:absolute;right:0;left:0;min-height:100%;display:flex;flex-direction:column}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content router-outlet+*{flex-grow:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 0 6px #0000003d;width:240px;bottom:0;overflow:auto;height:100%}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup{transition:padding .5s 0s}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup .o-app-sidenav-menugroup-arrow{transition:.5s transform cubic-bezier(.25,.8,.25,1)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup.opened .o-app-sidenav-menugroup-arrow{transform:rotate(90deg)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup-title,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:28px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-right:4px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup mat-icon:not(.o-app-sidenav-menugroup-arrow),.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem mat-icon:not(.o-app-sidenav-menugroup-arrow){margin-right:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closing{transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed{text-align:center}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item:not(.o-user-info){cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:focus,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:hover{color:inherit}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-group:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-item:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected{padding:0 8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed nav{width:48px;min-width:48px;margin-left:auto}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container{padding:0;text-align:end;max-height:36px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container .o-app-sidenav-image{max-height:36px;margin-right:8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container{padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle-container{height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a{border-radius:0;box-sizing:border-box;display:block;line-height:48px;height:auto;font-size:14px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a>.mat-icon{vertical-align:middle;height:24px;width:24px;font-size:24px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul{list-style-type:none;margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul li{margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle{padding:4px 12px 8px;cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a{font-size:14px;line-height:48px;height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:11px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-icon,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-icon{font-size:20px;height:20px;width:20px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menugroup-arrow{display:flex}\n"] }]
|
|
38521
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-sidenav-container class=\"o-app-sidenav-container\" [class.opened]=\"sidenav.opened\"\n [class.o-app-sidenav-mode-desktop]=\"(layoutMode || 'desktop') === 'desktop'\"\n [class.o-app-sidenav-mode-mobile]=\"(layoutMode || 'desktop') !== 'desktop'\">\n\n <mat-sidenav #sidenav class=\"o-app-sidenav-sidenav o-scroll\" [opened]=\"isSidenavOpened()\"\n [mode]=\"(sidenavMode || ((layoutMode || 'desktop') === 'desktop' ? 'side' : 'over'))\" [class.mat-drawer-opened]=\"sidenav.opened\"\n [class.mat-drawer-closed]=\"!sidenav.opened\" fxLayoutAlign=\"start stretch\" (openedChange)=\"sidenavOpenedChange()\"\n (closedStart)=\"sidenavClosedStart()\" (openedStart)=\"sidenavOpenedStart()\">\n <div fxFlex fxLayout=\"column\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"sidenav-toggle-container\" *ngIf=\"isDesktopMode()\">\n <mat-icon class=\"sidenav-toggle\" (click)=\"toggleSidenav()\" svgIcon=\"ontimize:menu\">menu</mat-icon>\n </div>\n\n <o-app-sidenav-image [opened-src]=\"openedSidenavImg\" [closed-src]=\"closedSidenavImg\"> </o-app-sidenav-image>\n <ng-content select=\"o-app-layout-sidenav-projection-start\"></ng-content>\n <div class=\"navMenu\">\n <nav *ngFor=\"let menuRootItem of menuRootArray\">\n\n <ul *ngIf=\"appMenuService.getMenuItemType(menuRootItem) !== 'group' && appMenuService.isVisible(menuRootItem)\">\n <o-app-sidenav-menu-item [menu-item]=\"menuRootItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuRootItem)\"\n [sidenav-opened]=\"sidenav.opened\" (onClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-item>\n </ul>\n\n <o-app-sidenav-menu-group [menu-group]=\"menuRootItem\" [sidenav-opened]=\"sidenav.opened\" level=\"1\"\n *ngIf=\"appMenuService.getMenuItemType(menuRootItem) === 'group' && appMenuService.isVisible(menuRootItem)\"\n (onItemClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-group>\n\n </nav>\n </div>\n <div class=\"layout-sidenav-projection-end\">\n <ng-content select=\"o-app-layout-sidenav-projection-end\"></ng-content>\n </div>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"o-app-sidenav-content\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".o-app-sidenav.header-layout .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 48px 6px #0000003d}.o-app-sidenav .navMenu{flex:1;display:flex;flex-direction:column;overflow:auto}@-moz-document url-prefix(){.o-app-sidenav .navMenu{height:100%}}.o-app-sidenav .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-menu-item a{margin-left:8px}.o-app-sidenav .o-app-sidenav-menu-group a .mat-icon svg,.o-app-sidenav .o-app-sidenav-menu-item a .mat-icon svg{display:flex}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-mdc-button-persistent-ripple,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-mdc-button-persistent-ripple{display:none}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-item,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .o-app-sidenav-item{opacity:.5}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] a,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] a{cursor:initial}.o-app-sidenav .o-app-sidenav-menugroup{transition:background-color .5s}.o-app-sidenav .o-app-sidenav-menugroup-items-container{overflow:hidden}.o-app-sidenav .o-app-sidenav-container{width:100%;height:100%}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-sidenav.mat-drawer-closed{visibility:visible!important;transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-content.mat-drawer-content{margin-right:48px!important;transform:translate3d(48px,0,0)!important}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content{position:absolute;right:0;left:0;min-height:100%;display:flex;flex-direction:column}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content router-outlet+*{flex-grow:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 0 6px #0000003d;width:240px;bottom:0;overflow:auto;height:100%}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup{transition:padding .5s 0s}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup .o-app-sidenav-menugroup-arrow{transition:.5s transform cubic-bezier(.25,.8,.25,1)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup.opened .o-app-sidenav-menugroup-arrow{transform:rotate(90deg)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup-title,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:28px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-right:4px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup mat-icon:not(.o-app-sidenav-menugroup-arrow),.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem mat-icon:not(.o-app-sidenav-menugroup-arrow){margin-right:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closing{transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed{text-align:center}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item:not(.o-user-info){cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:focus,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:hover{color:inherit}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-group:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-item:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected{padding:0 8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed nav{width:48px;min-width:48px;margin-left:auto}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container{padding:0;text-align:end;max-height:36px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container .o-app-sidenav-image{max-height:36px;margin-right:8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container{padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle-container{height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a{border-radius:0;box-sizing:border-box;display:block;line-height:48px;height:auto;font-size:14px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a>.mat-icon{vertical-align:middle;height:24px;width:24px;font-size:24px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul{list-style-type:none;margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul li{margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle{padding:4px 12px 8px;cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a{font-size:14px;line-height:48px;height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:11px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-icon,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-icon{font-size:20px;height:20px;width:20px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menugroup-arrow{display:flex}\n"] }]
|
|
38244
38522
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2$2.MediaObserver }]; }, propDecorators: { sidenav: [{
|
|
38245
38523
|
type: ViewChild,
|
|
38246
38524
|
args: [MatSidenav]
|
|
@@ -39079,5 +39357,5 @@ function ontimizePostBootstrap(ngModuleRef) {
|
|
|
39079
39357
|
class ODialogConfig {
|
|
39080
39358
|
}
|
|
39081
39359
|
|
|
39082
|
-
export { APP_CONFIG, AbstractComponentStateClass, AbstractComponentStateService, AbstractOServiceBaseComponent, AbstractOServiceComponent, AbstractServiceComponentStateClass, AppConfig, AppConfigFactory, AppMenuService, AppearanceService, AuthGuardService, AuthService, Base64, BaseService, BaseServiceResponse, BooleanConverter, BooleanInputConverter, CKEditorComponent, CKEditorModule, CanActivateFormLayoutChildGuard, CanDeactivateFormGuard, Codes, ColumnValueFilterOperator, ColumnsFilterPipe, ComponentStateServiceProvider, CurrencyService, CurrencyUtil, DEFAULT_CONTEXT_MENU_CONTENT_INPUTS, DEFAULT_CONTEXT_MENU_CONTENT_ITEM_INPUTS, DEFAULT_CONTEXT_MENU_CONTENT_OUTPUTS, DEFAULT_CONTEXT_MENU_DIRECTIVE_INPUTS, DEFAULT_CONTEXT_MENU_ITEM_INPUTS, DEFAULT_CONTEXT_MENU_ITEM_OUTPUTS, DEFAULT_DUAL_LIST_SELECTOR, DEFAULT_DUAL_LIST_SELECTOR_DATE_ITEM, DEFAULT_INPUTS_O_APP_HEADER, DEFAULT_INPUTS_O_APP_LAYOUT, DEFAULT_INPUTS_O_APP_LAYOUT_HEADER, DEFAULT_INPUTS_O_APP_LAYOUT_SIDENAV, DEFAULT_INPUTS_O_APP_SIDENAV, DEFAULT_INPUTS_O_APP_SIDENAV_IMAGE, DEFAULT_INPUTS_O_APP_SIDENAV_MENU_GROUP, DEFAULT_INPUTS_O_APP_SIDENAV_MENU_ITEM, DEFAULT_INPUTS_O_BAR_MENU, DEFAULT_INPUTS_O_BAR_MENU_ITEM, DEFAULT_INPUTS_O_BAR_MENU_NESTED, DEFAULT_INPUTS_O_BASE_MENU_ITEM, DEFAULT_INPUTS_O_BASE_TABLE_CELL_RENDERER, DEFAULT_INPUTS_O_BREADCRUMB, DEFAULT_INPUTS_O_BUTTON, DEFAULT_INPUTS_O_BUTTON_TOGGLE, DEFAULT_INPUTS_O_BUTTON_TOGGLE_GROUP, DEFAULT_INPUTS_O_CARD_RENDERER, DEFAULT_INPUTS_O_CHECKBOX, DEFAULT_INPUTS_O_COMBO, DEFAULT_INPUTS_O_COMBO_RENDERER, DEFAULT_INPUTS_O_COMBO_RENDERER_BOOLEAN, DEFAULT_INPUTS_O_COMBO_RENDERER_CURRENCY, DEFAULT_INPUTS_O_COMBO_RENDERER_DATE, DEFAULT_INPUTS_O_COMBO_RENDERER_ICON, DEFAULT_INPUTS_O_COMBO_RENDERER_INTEGER, DEFAULT_INPUTS_O_COMBO_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_COMBO_RENDERER_REAL, DEFAULT_INPUTS_O_CONTAINER, DEFAULT_INPUTS_O_CONTAINER_COLLAPSIBLE, DEFAULT_INPUTS_O_CONTEXT_MENU_ITEMS, DEFAULT_INPUTS_O_CURRENCY_INPUT, DEFAULT_INPUTS_O_DATA_TOOLBAR, DEFAULT_INPUTS_O_DATERANGE_INPUT, DEFAULT_INPUTS_O_DATE_INPUT, DEFAULT_INPUTS_O_ERROR, DEFAULT_INPUTS_O_FILE_INPUT, DEFAULT_INPUTS_O_FILTER_BUILDER, DEFAULT_INPUTS_O_FILTER_BUILDER_MENU, DEFAULT_INPUTS_O_FORM, DEFAULT_INPUTS_O_FORM_CONTAINER, DEFAULT_INPUTS_O_FORM_DATA_COMPONENT, DEFAULT_INPUTS_O_FORM_LAYOUT_MANAGER, DEFAULT_INPUTS_O_FORM_LAYOUT_SPLIT_PANE, DEFAULT_INPUTS_O_FORM_LAYOUT_TABGROUP, DEFAULT_INPUTS_O_FORM_SERVICE_COMPONENT, DEFAULT_INPUTS_O_FORM_TOOLBAR, DEFAULT_INPUTS_O_GRID, DEFAULT_INPUTS_O_GRID_ITEM, DEFAULT_INPUTS_O_HOUR_INPUT, DEFAULT_INPUTS_O_HTML_INPUT, DEFAULT_INPUTS_O_IMAGE, DEFAULT_INPUTS_O_INTEGER_INPUT, DEFAULT_INPUTS_O_LANGUAGE_SELECTOR, DEFAULT_INPUTS_O_LIST, DEFAULT_INPUTS_O_LISTPICKER_RENDERER, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_CURRENCY, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_DATE, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_INTEGER, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_REAL, DEFAULT_INPUTS_O_LIST_ITEM_AVATAR, DEFAULT_INPUTS_O_LIST_ITEM_CARD_IMAGE, DEFAULT_INPUTS_O_LIST_ITEM_TEXT, DEFAULT_INPUTS_O_LIST_PICKER, DEFAULT_INPUTS_O_LIST_PICKER_DIALOG, DEFAULT_INPUTS_O_LOCALE_BAR_MENU_ITEM, DEFAULT_INPUTS_O_LOCKER, DEFAULT_INPUTS_O_MENU_CARD, DEFAULT_INPUTS_O_MENU_LAYOUT, DEFAULT_INPUTS_O_PASSWORD_INPUT, DEFAULT_INPUTS_O_PERCENT_INPUT, DEFAULT_INPUTS_O_PHONE_INPUT, DEFAULT_INPUTS_O_RADIO, DEFAULT_INPUTS_O_REAL_INPUT, DEFAULT_INPUTS_O_SEARCH_INPUT, DEFAULT_INPUTS_O_SERVICE_BASE_COMPONENT, DEFAULT_INPUTS_O_SERVICE_COMPONENT, DEFAULT_INPUTS_O_SLIDER_INPUT, DEFAULT_INPUTS_O_SLIDETOGGLE, DEFAULT_INPUTS_O_TABLE, DEFAULT_INPUTS_O_TABLE_BUTTON, DEFAULT_INPUTS_O_TABLE_BUTTONS, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_BOOLEAN, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_DATE, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_INTEGER, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_TIME, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_ACTION, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_BOOLEAN, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_CURRENCY, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_DATE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_IMAGE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_INTEGER, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_REAL, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_SERVICE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TIME, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TRANSLATE, DEFAULT_INPUTS_O_TABLE_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_CALCULATED, DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER, DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_GROUPING, DEFAULT_INPUTS_O_TABLE_COLUMN_GROUPING_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_RESIZER, DEFAULT_INPUTS_O_TABLE_COLUMN_SELECTALL, DEFAULT_INPUTS_O_TABLE_EXPORT_BUTTON, DEFAULT_INPUTS_O_TABLE_HEADER, DEFAULT_INPUTS_O_TABLE_INSERTABLE_ROW, DEFAULT_INPUTS_O_TABLE_MENU, DEFAULT_INPUTS_O_TABLE_OPTION, DEFAULT_INPUTS_O_TABLE_QUICKFILTER, DEFAULT_INPUTS_O_TABLE_ROW_EXPANDABLE, DEFAULT_INPUTS_O_TEXTAREA_INPUT, DEFAULT_INPUTS_O_TEXT_INPUT, DEFAULT_INPUTS_O_TEXT_RENDERER, DEFAULT_INPUTS_O_TIME_INPUT, DEFAULT_INPUTS_O_TREE, DEFAULT_INPUTS_O_USER_INFO, DEFAULT_INPUTS_O_USER_INFO_MENU, DEFAULT_INPUTS_O_USER_INFO_MENU_ITEM, DEFAULT_INPUTS_O_VALIDATOR, DEFAULT_INPUT_O_EXPANDABLE_CONTAINER, DEFAULT_OUTPUTS_LANGUAGE_SELECTOR, DEFAULT_OUTPUTS_O_APP_HEADER, DEFAULT_OUTPUTS_O_APP_LAYOUT, DEFAULT_OUTPUTS_O_APP_SIDENAV, DEFAULT_OUTPUTS_O_APP_SIDENAV_IMAGE, DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_GROUP, DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_ITEM, DEFAULT_OUTPUTS_O_BUTTON, DEFAULT_OUTPUTS_O_BUTTON_TOGGLE, DEFAULT_OUTPUTS_O_BUTTON_TOGGLE_GROUP, DEFAULT_OUTPUTS_O_CARD_RENDERER, DEFAULT_OUTPUTS_O_CONTAINER_COLLAPSIBLE, DEFAULT_OUTPUTS_O_CONTEXT_MENU, DEFAULT_OUTPUTS_O_DATERANGE_INPUT, DEFAULT_OUTPUTS_O_FILE_INPUT, DEFAULT_OUTPUTS_O_FILTER_BUILDER, DEFAULT_OUTPUTS_O_FORM, DEFAULT_OUTPUTS_O_FORM_DATA_COMPONENT, DEFAULT_OUTPUTS_O_FORM_LAYOUT_MANAGER, DEFAULT_OUTPUTS_O_FORM_LAYOUT_SPLIT_PANE, DEFAULT_OUTPUTS_O_FORM_LAYOUT_TABGROUP, DEFAULT_OUTPUTS_O_FORM_SERVICE_COMPONENT, DEFAULT_OUTPUTS_O_FORM_TOOLBAR, DEFAULT_OUTPUTS_O_HTML_INPUT, DEFAULT_OUTPUTS_O_LIST, DEFAULT_OUTPUTS_O_LIST_ITEM_CARD_IMAGE, DEFAULT_OUTPUTS_O_LIST_PICKER, DEFAULT_OUTPUTS_O_MENU_CARD, DEFAULT_OUTPUTS_O_MENU_LAYOUT, DEFAULT_OUTPUTS_O_PERCENT_INPUT, DEFAULT_OUTPUTS_O_SEARCH_INPUT, DEFAULT_OUTPUTS_O_SERVICE_COMPONENT, DEFAULT_OUTPUTS_O_TABLE, DEFAULT_OUTPUTS_O_TABLE_BUTTON, DEFAULT_OUTPUTS_O_TABLE_BUTTONS, DEFAULT_OUTPUTS_O_TABLE_CELL_EDITOR, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_ACTION, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_IMAGE, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_SERVICE, DEFAULT_OUTPUTS_O_TABLE_COLUMN, DEFAULT_OUTPUTS_O_TABLE_COLUMN_FILTER, DEFAULT_OUTPUTS_O_TABLE_COLUMN_GROUPING, DEFAULT_OUTPUTS_O_TABLE_COLUMN_RESIZER, DEFAULT_OUTPUTS_O_TABLE_EXPORT_BUTTON, DEFAULT_OUTPUTS_O_TABLE_INSERTABLE_ROW, DEFAULT_OUTPUTS_O_TABLE_MENU, DEFAULT_OUTPUTS_O_TABLE_OPTION, DEFAULT_OUTPUTS_O_TABLE_QUICKFILTER, DEFAULT_OUTPUTS_O_TABLE_ROW_EXPANDABLE, DEFAULT_OUTPUTS_O_TEXT_RENDERER, DEFAULT_OUTPUTS_O_TREE, DEFAULT_OUTPUTS_O_USER_INFO, DEFAULT_OUTPUTS_O_USER_INFO_MENU, DEFAULT_PAGINATOR_TABLE, DEFAULT_TABLE_COLUMN_AGGREGATE, DEFAULT_TABLE_CONTEXT_MENU_INPUTS, DaterangepickerComponent, DefaultComponentStateClass, DefaultComponentStateService, DefaultOServiceBaseComponent, DefaultOTableDataSource, DefaultOTableOptions, DefaultServiceComponentStateClass, DefaultServiceComponentStateService, DialogService, Error403Component, ExportDataServiceProvider, FilterExpressionUtils, IconService, ListItem, LocalStorageService, LoginStorageService, MomentService, NavigationService, NumberConverter, NumberInputConverter, NumberService, OAppHeaderComponent, OAppHeaderModule, OAppLayoutComponent, OAppLayoutHeaderComponent, OAppLayoutModule, OAppLayoutSidenavComponent, OAppSidenavComponent, OAppSidenavImageComponent, OAppSidenavMenuGroupComponent, OAppSidenavMenuItemComponent, OAppSidenavModule, OBarMenuComponent, OBarMenuGroupComponent, OBarMenuItemComponent, OBarMenuModule, OBarMenuNestedComponent, OBarMenuSeparatorComponent, OBaseComponent, OBaseMenuItemClass, OBaseTableCellEditor, OBaseTableCellRenderer, OBaseTablePaginator, OBreadcrumbComponent, OBreadcrumbModule, OBreadcrumbService, OButtonComponent, OButtonModule, OButtonToggleComponent, OButtonToggleGroupComponent, OButtonToggleModule, OCardMenuItemComponent, OCardMenuItemModule, OCardMenuLayoutComponent, OCardMenuLayoutModule, OCheckboxComponent, OCheckboxModule, OColumn, OColumnCollapsibleComponent, OColumnCollapsibleModule, OColumnComponent, OColumnModule, OComboComponent, OComboCustomRenderer, OComboModule, OComboRendererBooleanComponent, OComboRendererCurrencyComponent, OComboRendererDateComponent, OComboRendererIconComponent, OComboRendererIntegerComponent, OComboRendererPercentageComponent, OComboRendererRealComponent, OComboSearchComponent, OComponentMenuBaseItem, OContainerCollapsibleComponent, OContainerComponent, OContextMenuComponent, OContextMenuContentComponent, OContextMenuDirective, OContextMenuGroupComponent, OContextMenuItemComponent, OContextMenuModule, OContextMenuSeparatorComponent, OContextMenuService, OCurrencyInputComponent, OCurrencyInputModule, OCurrencyPipe, OCustomMaterialModule, ODataToolbarComponent, ODataToolbarModule, ODateInputComponent, ODateInputModule, ODateRangeInputComponent, ODateRangeInputModule, ODaterangepickerDirective, ODialogComponent, ODialogConfig, ODualListSelectorComponent, ODualListSelectorDateItemComponent, ODualListSelectorModule, OEmailInputComponent, OEmailInputModule, OErrorComponent, OErrorDialogManager, OExpandableContainerComponent, OExpandableContainerModule, OFileDragAndDropDirective, OFileInputComponent, OFileInputModule, OFileItem, OFileUploader, OFilterBuilderClearDirective, OFilterBuilderComponent, OFilterBuilderMenuComponent, OFilterBuilderModule, OFilterBuilderQueryDirective, OFormCacheClass, OFormComponent, OFormContainerComponent, OFormContainerModule, OFormControl, OFormDataComponent, OFormLayoutDialogComponent, OFormLayoutDialogOptionsDirective, OFormLayoutManagerComponent, OFormLayoutManagerComponentStateClass, OFormLayoutManagerComponentStateService, OFormLayoutManagerContentDirective, OFormLayoutManagerModule, OFormLayoutManagerService, OFormLayoutSplitPaneComponent, OFormLayoutSplitPaneOptionsDirective, OFormLayoutTabGroupComponent, OFormLayoutTabGroupOptionsDirective, OFormMessageService, OFormModule, OFormNavigationClass, OFormNavigationComponent, OFormServiceComponent, OFormToolbarComponent, OFormToolbarModule, OFormValue, OFullScreenDialogComponent, OGridComponent, OGridComponentStateClass, OGridComponentStateService, OGridItemComponent, OGridItemDirective, OGridModule, OGridSkeletonComponent, OHTMLInputComponent, OHTMLInputModule, OHiddenDirective, OHourInputComponent, OHourInputModule, OIconPipe, OImageComponent, OImageModule, OIntegerInputComponent, OIntegerInputModule, OIntegerPipe, OKeyboardListenerDirective, OLanguageSelectorComponent, OLanguageSelectorModule, OListComponent, OListComponentStateClass, OListComponentStateService, OListItemAvatarComponent, OListItemCardComponent, OListItemCardImageComponent, OListItemCardRenderer, OListItemComponent, OListItemDirective, OListItemTextComponent, OListItemTextRenderer, OListModule, OListPickerComponent, OListPickerCustomRenderer, OListPickerDialogComponent, OListPickerModule, OListPickerRendererCurrencyComponent, OListPickerRendererDateComponent, OListPickerRendererIntegerComponent, OListPickerRendererPercentageComponent, OListPickerRendererRealComponent, OListSkeletonComponent, OLoadFilterDialogComponent, OLocaleBarMenuItemComponent, OLockerDirective, OMatErrorDirective, OMatPrefix, OMatSort, OMatSortHeader, OMatSortModule, OMatSuffix, OModulesInfoService, OMomentPipe, ONIFInputComponent, ONIFInputModule, ONTIMIZE_MODULES, ONTIMIZE_PROVIDERS, ONavigationItem, OPasswordInputComponent, OPasswordInputModule, OPercentInputComponent, OPercentInputModule, OPercentPipe, OPermissionsModule, OPhoneInputComponent, OPhoneInputModule, ORadioComponent, ORadioModule, ORealInputComponent, ORealInputModule, ORealPipe, ORemoteConfigurationService, ORowCollapsibleComponent, ORowCollapsibleModule, ORowComponent, ORowModule, OSafePipe, OSearchInputComponent, OSearchInputModule, OServiceBaseComponent, OServiceComponent, OSharedModule, OSkeletonComponent, OSlideToggleComponent, OSlideToggleModule, OSliderComponent, OSliderModule, OSnackBarComponent, OSnackBarConfig, OStoreFilterDialogComponent, OTabGroupDirective, OTableApplyConfigurationDialogComponent, OTableBase, OTableBaseDialogClass, OTableButtonComponent, OTableButtonsComponent, OTableCellEditorBooleanComponent, OTableCellEditorDateComponent, OTableCellEditorEmailComponent, OTableCellEditorIntegerComponent, OTableCellEditorRealComponent, OTableCellEditorTextComponent, OTableCellEditorTimeComponent, OTableCellRendererActionComponent, OTableCellRendererBooleanComponent, OTableCellRendererCurrencyComponent, OTableCellRendererDateComponent, OTableCellRendererImageComponent, OTableCellRendererIntegerComponent, OTableCellRendererPercentageComponent, OTableCellRendererRealComponent, OTableCellRendererServiceComponent, OTableCellRendererTimeComponent, OTableCellRendererTranslateComponent, OTableColumnAggregateComponent, OTableColumnCalculatedComponent, OTableColumnComponent, OTableColumnResizerComponent, OTableColumnSelectAllDirective, OTableColumnsFilterColumnComponent, OTableColumnsFilterComponent, OTableColumnsGroupingColumnComponent, OTableColumnsGroupingComponent, OTableComponent, OTableComponentStateClass, OTableComponentStateService, OTableContextMenuComponent, OTableDao, OTableDataSourceService, OTableExpandedFooterDirective, OTableExportButtonComponent, OTableExportButtonService, OTableExportConfiguration, OTableExportDialogComponent, OTableFilterByColumnDataDialogComponent, OTableGroupByColumnsDialogComponent, OTableGroupedRow, OTableHeaderComponent, OTableHeaderSelectAllComponent, OTableInsertableRowComponent, OTableMatPaginatorIntl, OTableMenuComponent, OTableModule, OTableOptionComponent, OTablePaginatorComponent, OTableQuickfilterComponent, OTableRowClassPipe, OTableRowDirective, OTableRowExpandableComponent, OTableRowExpandedChange, OTableSkeletonComponent, OTableStoreConfigurationDialogComponent, OTableVirtualScrollStrategy, OTableVisibleColumnsDialogComponent, OTextInputComponent, OTextInputModule, OTextareaInputComponent, OTextareaInputModule, OTimeInputComponent, OTimeInputModule, OTranslateHttpLoader, OTranslateModule, OTranslateParser, OTranslatePipe, OTranslateService, OTreeComponent, OTreeMenuComponent, OTreeModule, OTreeNodeComponent, OUserInfoComponent, OUserInfoConfigurationDirective, OUserInfoConfigurationItemDirective, OUserInfoModule, OUserInfoService, OValidatorComponent, OValidators, OValueChangeEvent, OWrapperContentMenuComponent, O_AUTH_SERVICE, O_CHART_ON_DEMAND_SERVICE, O_COMPONENT_STATE_SERVICE, O_DATA_SERVICE, O_ERROR_DIALOG_MANAGER, O_EXPORT_DATA_SERVICE, O_EXPORT_SERVICE, O_FILE_SERVICE, O_FORM_MESSAGE_SERVICE, O_INPUTS_OPTIONS, O_MAT_ERROR_OPTIONS, O_PERMISSION_SERVICE, O_REPORT_SERVICE, O_TABLE_CELL_EDITORS, O_TABLE_CELL_EDITORS_INPUTS, O_TABLE_CELL_EDITORS_OUTPUTS, O_TABLE_CELL_RENDERERS, O_TABLE_CELL_RENDERERS_INPUTS, O_TABLE_CELL_RENDERERS_OUTPUTS, O_TABLE_GLOBAL_CONFIG, O_TRANSLATE_SERVICE, ObservableWrapper, OnRangeChangeVirtualScroll, OntimizeAuthService, OntimizeAuthServiceProvider, OntimizeBaseService, OntimizeEEPermissionsService, OntimizeEEService, OntimizeExportDataProviderService, OntimizeExportDataProviderService3X, OntimizeExportService, OntimizeExportService3X, OntimizeExportServiceProvider, OntimizeFileService, OntimizeMatDateFormats, OntimizeMatIconRegistry, OntimizeMomentDateAdapter, OntimizePermissionsService, OntimizeService, OntimizeServiceProvider, OntimizeServiceResponse, OntimizeServiceResponseAdapter, OntimizeServiceResponseParser, OntimizeWebModule, OntimizeWebTranslateModule, OrderByPipe, PermissionsGuardService, PermissionsService, PermissionsUtils, SQLTypes, ServiceUtils, ShareCanActivateChildService, SideEnum, SnackBarService, StringConverter, TWELVE_HOUR_FORMAT_PATTERN, TWENTY_FOUR_HOUR_FORMAT_PATTERN, TableFilterByColumnDialogResult, Util, _getInjectionTokenValue, appConfigFactory, authServiceFactory, componentStateFactory, dataServiceFactory, dateFormatFactory, editorsMapping, exportDataFactory, exportServiceFactory, fileServiceFactory, getPermissionsServiceProvider, noop, ontimizePostBootstrap, permissionsServiceFactory, renderersMapping, translateServiceFactory };
|
|
39360
|
+
export { APP_CONFIG, AbstractComponentStateClass, AbstractComponentStateService, AbstractOServiceBaseComponent, AbstractOServiceComponent, AbstractServiceComponentStateClass, AppConfig, AppConfigFactory, AppMenuService, AppearanceService, AuthGuardService, AuthService, Base64, BaseService, BaseServiceResponse, BooleanConverter, BooleanInputConverter, CKEditorComponent, CKEditorModule, CanActivateFormLayoutChildGuard, CanDeactivateFormGuard, Codes, ColumnValueFilterOperator, ColumnsFilterPipe, ComponentStateServiceProvider, CurrencyService, CurrencyUtil, DEFAULT_CONTEXT_MENU_CONTENT_INPUTS, DEFAULT_CONTEXT_MENU_CONTENT_ITEM_INPUTS, DEFAULT_CONTEXT_MENU_CONTENT_OUTPUTS, DEFAULT_CONTEXT_MENU_DIRECTIVE_INPUTS, DEFAULT_CONTEXT_MENU_ITEM_INPUTS, DEFAULT_CONTEXT_MENU_ITEM_OUTPUTS, DEFAULT_DUAL_LIST_SELECTOR, DEFAULT_DUAL_LIST_SELECTOR_DATE_ITEM, DEFAULT_INPUTS_O_APP_HEADER, DEFAULT_INPUTS_O_APP_LAYOUT, DEFAULT_INPUTS_O_APP_LAYOUT_HEADER, DEFAULT_INPUTS_O_APP_LAYOUT_SIDENAV, DEFAULT_INPUTS_O_APP_SIDENAV, DEFAULT_INPUTS_O_APP_SIDENAV_IMAGE, DEFAULT_INPUTS_O_APP_SIDENAV_MENU_GROUP, DEFAULT_INPUTS_O_APP_SIDENAV_MENU_ITEM, DEFAULT_INPUTS_O_BAR_MENU, DEFAULT_INPUTS_O_BAR_MENU_ITEM, DEFAULT_INPUTS_O_BAR_MENU_NESTED, DEFAULT_INPUTS_O_BASE_MENU_ITEM, DEFAULT_INPUTS_O_BASE_TABLE_CELL_RENDERER, DEFAULT_INPUTS_O_BREADCRUMB, DEFAULT_INPUTS_O_BUTTON, DEFAULT_INPUTS_O_BUTTON_TOGGLE, DEFAULT_INPUTS_O_BUTTON_TOGGLE_GROUP, DEFAULT_INPUTS_O_CARD_RENDERER, DEFAULT_INPUTS_O_CHECKBOX, DEFAULT_INPUTS_O_COMBO, DEFAULT_INPUTS_O_COMBO_RENDERER, DEFAULT_INPUTS_O_COMBO_RENDERER_BOOLEAN, DEFAULT_INPUTS_O_COMBO_RENDERER_CURRENCY, DEFAULT_INPUTS_O_COMBO_RENDERER_DATE, DEFAULT_INPUTS_O_COMBO_RENDERER_ICON, DEFAULT_INPUTS_O_COMBO_RENDERER_INTEGER, DEFAULT_INPUTS_O_COMBO_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_COMBO_RENDERER_REAL, DEFAULT_INPUTS_O_CONTAINER, DEFAULT_INPUTS_O_CONTAINER_COLLAPSIBLE, DEFAULT_INPUTS_O_CONTEXT_MENU_ITEMS, DEFAULT_INPUTS_O_CURRENCY_INPUT, DEFAULT_INPUTS_O_DATA_TOOLBAR, DEFAULT_INPUTS_O_DATERANGE_INPUT, DEFAULT_INPUTS_O_DATE_INPUT, DEFAULT_INPUTS_O_ERROR, DEFAULT_INPUTS_O_FILE_INPUT, DEFAULT_INPUTS_O_FILTER_BUILDER, DEFAULT_INPUTS_O_FILTER_BUILDER_MENU, DEFAULT_INPUTS_O_FORM, DEFAULT_INPUTS_O_FORM_CONTAINER, DEFAULT_INPUTS_O_FORM_DATA_COMPONENT, DEFAULT_INPUTS_O_FORM_LAYOUT_MANAGER, DEFAULT_INPUTS_O_FORM_LAYOUT_SPLIT_PANE, DEFAULT_INPUTS_O_FORM_LAYOUT_TABGROUP, DEFAULT_INPUTS_O_FORM_SERVICE_COMPONENT, DEFAULT_INPUTS_O_FORM_TOOLBAR, DEFAULT_INPUTS_O_GRID, DEFAULT_INPUTS_O_GRID_ITEM, DEFAULT_INPUTS_O_HOUR_INPUT, DEFAULT_INPUTS_O_HTML_INPUT, DEFAULT_INPUTS_O_IMAGE, DEFAULT_INPUTS_O_INTEGER_INPUT, DEFAULT_INPUTS_O_LANGUAGE_SELECTOR, DEFAULT_INPUTS_O_LIST, DEFAULT_INPUTS_O_LISTPICKER_RENDERER, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_CURRENCY, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_DATE, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_INTEGER, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_LISTPICKER_RENDERER_REAL, DEFAULT_INPUTS_O_LIST_ITEM_AVATAR, DEFAULT_INPUTS_O_LIST_ITEM_CARD_IMAGE, DEFAULT_INPUTS_O_LIST_ITEM_TEXT, DEFAULT_INPUTS_O_LIST_PICKER, DEFAULT_INPUTS_O_LIST_PICKER_DIALOG, DEFAULT_INPUTS_O_LOCALE_BAR_MENU_ITEM, DEFAULT_INPUTS_O_LOCKER, DEFAULT_INPUTS_O_MENU_CARD, DEFAULT_INPUTS_O_MENU_LAYOUT, DEFAULT_INPUTS_O_PASSWORD_INPUT, DEFAULT_INPUTS_O_PERCENT_INPUT, DEFAULT_INPUTS_O_PHONE_INPUT, DEFAULT_INPUTS_O_RADIO, DEFAULT_INPUTS_O_REAL_INPUT, DEFAULT_INPUTS_O_SEARCH_INPUT, DEFAULT_INPUTS_O_SERVICE_BASE_COMPONENT, DEFAULT_INPUTS_O_SERVICE_COMPONENT, DEFAULT_INPUTS_O_SLIDER_INPUT, DEFAULT_INPUTS_O_SLIDETOGGLE, DEFAULT_INPUTS_O_TABLE, DEFAULT_INPUTS_O_TABLE_BUTTON, DEFAULT_INPUTS_O_TABLE_BUTTONS, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_BOOLEAN, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_DATE, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_INTEGER, DEFAULT_INPUTS_O_TABLE_CELL_EDITOR_TIME, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_ACTION, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_BOOLEAN, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_CURRENCY, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_DATE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_IMAGE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_INTEGER, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_PERCENTAGE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_REAL, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_SERVICE, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TIME, DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TRANSLATE, DEFAULT_INPUTS_O_TABLE_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_CALCULATED, DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER, DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_GROUPING, DEFAULT_INPUTS_O_TABLE_COLUMN_GROUPING_COLUMN, DEFAULT_INPUTS_O_TABLE_COLUMN_RESIZER, DEFAULT_INPUTS_O_TABLE_COLUMN_SELECTALL, DEFAULT_INPUTS_O_TABLE_EXPORT_BUTTON, DEFAULT_INPUTS_O_TABLE_HEADER, DEFAULT_INPUTS_O_TABLE_INSERTABLE_ROW, DEFAULT_INPUTS_O_TABLE_MENU, DEFAULT_INPUTS_O_TABLE_OPTION, DEFAULT_INPUTS_O_TABLE_QUICKFILTER, DEFAULT_INPUTS_O_TABLE_ROW_EXPANDABLE, DEFAULT_INPUTS_O_TEXTAREA_INPUT, DEFAULT_INPUTS_O_TEXT_INPUT, DEFAULT_INPUTS_O_TEXT_RENDERER, DEFAULT_INPUTS_O_TIME_INPUT, DEFAULT_INPUTS_O_TREE, DEFAULT_INPUTS_O_USER_INFO, DEFAULT_INPUTS_O_USER_INFO_MENU, DEFAULT_INPUTS_O_USER_INFO_MENU_ITEM, DEFAULT_INPUTS_O_VALIDATOR, DEFAULT_INPUT_O_EXPANDABLE_CONTAINER, DEFAULT_OUTPUTS_LANGUAGE_SELECTOR, DEFAULT_OUTPUTS_O_APP_HEADER, DEFAULT_OUTPUTS_O_APP_LAYOUT, DEFAULT_OUTPUTS_O_APP_SIDENAV, DEFAULT_OUTPUTS_O_APP_SIDENAV_IMAGE, DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_GROUP, DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_ITEM, DEFAULT_OUTPUTS_O_BUTTON, DEFAULT_OUTPUTS_O_BUTTON_TOGGLE, DEFAULT_OUTPUTS_O_BUTTON_TOGGLE_GROUP, DEFAULT_OUTPUTS_O_CARD_RENDERER, DEFAULT_OUTPUTS_O_CONTAINER_COLLAPSIBLE, DEFAULT_OUTPUTS_O_CONTEXT_MENU, DEFAULT_OUTPUTS_O_DATERANGE_INPUT, DEFAULT_OUTPUTS_O_FILE_INPUT, DEFAULT_OUTPUTS_O_FILTER_BUILDER, DEFAULT_OUTPUTS_O_FORM, DEFAULT_OUTPUTS_O_FORM_DATA_COMPONENT, DEFAULT_OUTPUTS_O_FORM_LAYOUT_MANAGER, DEFAULT_OUTPUTS_O_FORM_LAYOUT_SPLIT_PANE, DEFAULT_OUTPUTS_O_FORM_LAYOUT_TABGROUP, DEFAULT_OUTPUTS_O_FORM_SERVICE_COMPONENT, DEFAULT_OUTPUTS_O_FORM_TOOLBAR, DEFAULT_OUTPUTS_O_HTML_INPUT, DEFAULT_OUTPUTS_O_LIST, DEFAULT_OUTPUTS_O_LIST_ITEM_CARD_IMAGE, DEFAULT_OUTPUTS_O_LIST_PICKER, DEFAULT_OUTPUTS_O_MENU_CARD, DEFAULT_OUTPUTS_O_MENU_LAYOUT, DEFAULT_OUTPUTS_O_PERCENT_INPUT, DEFAULT_OUTPUTS_O_SEARCH_INPUT, DEFAULT_OUTPUTS_O_SERVICE_COMPONENT, DEFAULT_OUTPUTS_O_TABLE, DEFAULT_OUTPUTS_O_TABLE_BUTTON, DEFAULT_OUTPUTS_O_TABLE_BUTTONS, DEFAULT_OUTPUTS_O_TABLE_CELL_EDITOR, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_ACTION, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_IMAGE, DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_SERVICE, DEFAULT_OUTPUTS_O_TABLE_COLUMN, DEFAULT_OUTPUTS_O_TABLE_COLUMN_FILTER, DEFAULT_OUTPUTS_O_TABLE_COLUMN_GROUPING, DEFAULT_OUTPUTS_O_TABLE_COLUMN_RESIZER, DEFAULT_OUTPUTS_O_TABLE_EXPORT_BUTTON, DEFAULT_OUTPUTS_O_TABLE_INSERTABLE_ROW, DEFAULT_OUTPUTS_O_TABLE_MENU, DEFAULT_OUTPUTS_O_TABLE_OPTION, DEFAULT_OUTPUTS_O_TABLE_QUICKFILTER, DEFAULT_OUTPUTS_O_TABLE_ROW_EXPANDABLE, DEFAULT_OUTPUTS_O_TEXT_RENDERER, DEFAULT_OUTPUTS_O_TREE, DEFAULT_OUTPUTS_O_USER_INFO, DEFAULT_OUTPUTS_O_USER_INFO_MENU, DEFAULT_PAGINATOR_TABLE, DEFAULT_TABLE_COLUMN_AGGREGATE, DEFAULT_TABLE_CONTEXT_MENU_INPUTS, DaterangepickerComponent, DefaultComponentStateClass, DefaultComponentStateService, DefaultOServiceBaseComponent, DefaultOTableDataSource, DefaultOTableOptions, DefaultServiceComponentStateClass, DefaultServiceComponentStateService, DialogService, Error403Component, ExportDataServiceProvider, FilterExpressionUtils, IconService, ListItem, LocalStorageService, LoginStorageService, MomentService, NavigationService, NumberConverter, NumberInputConverter, NumberService, OAppHeaderComponent, OAppHeaderModule, OAppLayoutComponent, OAppLayoutHeaderComponent, OAppLayoutModule, OAppLayoutSidenavComponent, OAppSidenavComponent, OAppSidenavImageComponent, OAppSidenavMenuGroupComponent, OAppSidenavMenuItemComponent, OAppSidenavModule, OBarMenuComponent, OBarMenuGroupComponent, OBarMenuItemComponent, OBarMenuModule, OBarMenuNestedComponent, OBarMenuSeparatorComponent, OBaseComponent, OBaseMenuItemClass, OBaseTableCellEditor, OBaseTableCellRenderer, OBaseTablePaginator, OBreadcrumbComponent, OBreadcrumbModule, OBreadcrumbService, OButtonComponent, OButtonModule, OButtonToggleComponent, OButtonToggleGroupComponent, OButtonToggleModule, OCardMenuItemComponent, OCardMenuItemModule, OCardMenuLayoutComponent, OCardMenuLayoutModule, OCheckboxComponent, OCheckboxModule, OColumn, OColumnCollapsibleComponent, OColumnCollapsibleModule, OColumnComponent, OColumnModule, OComboComponent, OComboCustomRenderer, OComboModule, OComboRendererBooleanComponent, OComboRendererCurrencyComponent, OComboRendererDateComponent, OComboRendererIconComponent, OComboRendererIntegerComponent, OComboRendererPercentageComponent, OComboRendererRealComponent, OComboSearchComponent, OComponentMenuBaseItem, OContainerCollapsibleComponent, OContainerComponent, OContextMenuComponent, OContextMenuContentComponent, OContextMenuDirective, OContextMenuGroupComponent, OContextMenuItemComponent, OContextMenuModule, OContextMenuSeparatorComponent, OContextMenuService, OCurrencyInputComponent, OCurrencyInputModule, OCurrencyPipe, OCustomMaterialModule, ODataToolbarComponent, ODataToolbarModule, ODateInputComponent, ODateInputModule, ODateRangeInputComponent, ODateRangeInputModule, ODaterangepickerDirective, ODialogComponent, ODialogConfig, ODualListSelectorComponent, ODualListSelectorDateItemComponent, ODualListSelectorModule, OEmailInputComponent, OEmailInputModule, OErrorComponent, OErrorDialogManager, OExpandableContainerComponent, OExpandableContainerModule, OFileDragAndDropDirective, OFileInputComponent, OFileInputModule, OFileItem, OFileUploader, OFilterBuilderClearDirective, OFilterBuilderComponent, OFilterBuilderMenuComponent, OFilterBuilderModule, OFilterBuilderQueryDirective, OFormCacheClass, OFormComponent, OFormContainerComponent, OFormContainerModule, OFormControl, OFormDataComponent, OFormLayoutDialogComponent, OFormLayoutDialogOptionsDirective, OFormLayoutManagerComponent, OFormLayoutManagerComponentStateClass, OFormLayoutManagerComponentStateService, OFormLayoutManagerContentDirective, OFormLayoutManagerModule, OFormLayoutManagerService, OFormLayoutSplitPaneComponent, OFormLayoutSplitPaneOptionsDirective, OFormLayoutTabGroupComponent, OFormLayoutTabGroupOptionsDirective, OFormMessageService, OFormModule, OFormNavigationClass, OFormNavigationComponent, OFormServiceComponent, OFormToolbarComponent, OFormToolbarModule, OFormValue, OFullScreenDialogComponent, OGridComponent, OGridComponentStateClass, OGridComponentStateService, OGridItemComponent, OGridItemDirective, OGridModule, OGridSkeletonComponent, OHTMLInputComponent, OHTMLInputModule, OHiddenDirective, OHourInputComponent, OHourInputModule, OIconPipe, OImageComponent, OImageModule, OIntegerInputComponent, OIntegerInputModule, OIntegerPipe, OKeyboardListenerDirective, OLanguageSelectorComponent, OLanguageSelectorModule, OListComponent, OListComponentStateClass, OListComponentStateService, OListItemAvatarComponent, OListItemCardComponent, OListItemCardImageComponent, OListItemCardRenderer, OListItemComponent, OListItemDirective, OListItemTextComponent, OListItemTextRenderer, OListModule, OListPickerComponent, OListPickerCustomRenderer, OListPickerDialogComponent, OListPickerModule, OListPickerRendererCurrencyComponent, OListPickerRendererDateComponent, OListPickerRendererIntegerComponent, OListPickerRendererPercentageComponent, OListPickerRendererRealComponent, OListSkeletonComponent, OLoadFilterDialogComponent, OLocaleBarMenuItemComponent, OLockerDirective, OMatErrorDirective, OMatPrefix, OMatSort, OMatSortHeader, OMatSortModule, OMatSuffix, OModulesInfoService, OMomentPipe, ONIFInputComponent, ONIFInputModule, ONTIMIZE_MODULES, ONTIMIZE_PROVIDERS, ONavigationItem, OPasswordInputComponent, OPasswordInputModule, OPercentInputComponent, OPercentInputModule, OPercentPipe, OPermissionsModule, OPhoneInputComponent, OPhoneInputModule, ORadioComponent, ORadioModule, ORealInputComponent, ORealInputModule, ORealPipe, ORemoteConfigurationService, ORowCollapsibleComponent, ORowCollapsibleModule, ORowComponent, ORowModule, OSafePipe, OSearchInputComponent, OSearchInputModule, OServiceBaseComponent, OServiceComponent, OSharedModule, OSkeletonComponent, OSlideToggleComponent, OSlideToggleModule, OSliderComponent, OSliderModule, OSnackBarComponent, OSnackBarConfig, OStoreFilterDialogComponent, OTabGroupDirective, OTableApplyConfigurationDialogComponent, OTableBase, OTableBaseDialogClass, OTableButtonComponent, OTableButtonsComponent, OTableCellEditorBooleanComponent, OTableCellEditorDateComponent, OTableCellEditorEmailComponent, OTableCellEditorIntegerComponent, OTableCellEditorRealComponent, OTableCellEditorTextComponent, OTableCellEditorTimeComponent, OTableCellRendererActionComponent, OTableCellRendererBooleanComponent, OTableCellRendererCurrencyComponent, OTableCellRendererDateComponent, OTableCellRendererImageComponent, OTableCellRendererIntegerComponent, OTableCellRendererPercentageComponent, OTableCellRendererRealComponent, OTableCellRendererServiceComponent, OTableCellRendererTimeComponent, OTableCellRendererTranslateComponent, OTableColumnAggregateComponent, OTableColumnCalculatedComponent, OTableColumnComponent, OTableColumnResizerComponent, OTableColumnSelectAllDirective, OTableColumnsFilterColumnComponent, OTableColumnsFilterComponent, OTableColumnsGroupingColumnComponent, OTableColumnsGroupingComponent, OTableComponent, OTableComponentStateClass, OTableComponentStateService, OTableContextMenuComponent, OTableDao, OTableDataSourceService, OTableExpandedFooterDirective, OTableExportButtonComponent, OTableExportButtonService, OTableExportConfiguration, OTableExportDialogComponent, OTableFilterByColumnDataDialogComponent, OTableGroupByColumnsDialogComponent, OTableGroupedRow, OTableHeaderComponent, OTableHeaderSelectAllComponent, OTableInsertableRowComponent, OTableMatPaginatorIntl, OTableMenuComponent, OTableModule, OTableOptionComponent, OTablePaginatorComponent, OTableQuickfilterComponent, OTableRowClassPipe, OTableRowDirective, OTableRowExpandableComponent, OTableRowExpandedChange, OTableSkeletonComponent, OTableStoreConfigurationDialogComponent, OTableVirtualScrollStrategy, OTableVisibleColumnsDialogComponent, OTextInputComponent, OTextInputModule, OTextareaInputComponent, OTextareaInputModule, OTimeInputComponent, OTimeInputModule, OTranslateHttpLoader, OTranslateModule, OTranslateParser, OTranslatePipe, OTranslateService, OTreeComponent, OTreeMenuComponent, OTreeModule, OTreeNodeComponent, OUserInfoComponent, OUserInfoConfigurationDirective, OUserInfoConfigurationItemDirective, OUserInfoModule, OUserInfoService, OValidatorComponent, OValidators, OValueChangeEvent, OWrapperContentMenuComponent, O_AUTH_SERVICE, O_CHART_ON_DEMAND_SERVICE, O_COMPONENT_STATE_SERVICE, O_DATA_SERVICE, O_ERROR_DIALOG_MANAGER, O_EXPORT_DATA_SERVICE, O_EXPORT_SERVICE, O_FILE_SERVICE, O_FORM_GLOBAL_CONFIG, O_FORM_MESSAGE_SERVICE, O_GLOBAL_CONFIG, O_INPUTS_OPTIONS, O_MAT_ERROR_OPTIONS, O_PERMISSION_SERVICE, O_REPORT_SERVICE, O_TABLE_CELL_EDITORS, O_TABLE_CELL_EDITORS_INPUTS, O_TABLE_CELL_EDITORS_OUTPUTS, O_TABLE_CELL_RENDERERS, O_TABLE_CELL_RENDERERS_INPUTS, O_TABLE_CELL_RENDERERS_OUTPUTS, O_TABLE_GLOBAL_CONFIG, O_TRANSLATE_SERVICE, ObservableWrapper, OnRangeChangeVirtualScroll, OntimizeAuthService, OntimizeAuthServiceProvider, OntimizeBaseService, OntimizeEEPermissionsService, OntimizeEEService, OntimizeExportDataProviderService, OntimizeExportDataProviderService3X, OntimizeExportService, OntimizeExportService3X, OntimizeExportServiceProvider, OntimizeFileService, OntimizeMatDateFormats, OntimizeMatIconRegistry, OntimizeMomentDateAdapter, OntimizePermissionsService, OntimizeService, OntimizeServiceProvider, OntimizeServiceResponse, OntimizeServiceResponseAdapter, OntimizeServiceResponseParser, OntimizeWebModule, OntimizeWebTranslateModule, OrderByPipe, PermissionsGuardService, PermissionsService, PermissionsUtils, SQLTypes, ServiceUtils, ShareCanActivateChildService, SideEnum, SnackBarService, StringConverter, TWELVE_HOUR_FORMAT_PATTERN, TWENTY_FOUR_HOUR_FORMAT_PATTERN, TableFilterByColumnDialogResult, Util, _getInjectionTokenValue, appConfigFactory, authServiceFactory, componentStateFactory, dataServiceFactory, dateFormatFactory, editorsMapping, exportDataFactory, exportServiceFactory, fileServiceFactory, getPermissionsServiceProvider, noop, ontimizePostBootstrap, permissionsServiceFactory, renderersMapping, translateServiceFactory };
|
|
39083
39361
|
//# sourceMappingURL=ontimize-web-ngx.mjs.map
|