ontimize-web-ngx 15.6.0-next.4 → 15.6.0-next.6

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.
Files changed (57) hide show
  1. package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +19 -3
  2. package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +17 -4
  3. package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +7 -5
  4. package/esm2020/lib/components/o-form-data-component.class.mjs +2 -2
  5. package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +2 -2
  6. package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +1 -1
  7. package/esm2020/lib/components/table/column/o-column.class.mjs +2 -1
  8. package/esm2020/lib/components/table/column/o-table-column.component.mjs +9 -4
  9. package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +24 -6
  10. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +75 -87
  11. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +52 -0
  12. package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +12 -4
  13. package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
  14. package/esm2020/lib/components/table/o-table.component.mjs +99 -9
  15. package/esm2020/lib/components/table/o-table.module.mjs +4 -1
  16. package/esm2020/lib/injection-tokens/index.mjs +2 -1
  17. package/esm2020/lib/interfaces/index.mjs +2 -1
  18. package/esm2020/lib/interfaces/o-table-column.interface.mjs +1 -1
  19. package/esm2020/lib/layouts/app-layout/o-app-layout-base.class.mjs +1 -1
  20. package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +26 -9
  21. package/esm2020/lib/services/factories.mjs +7 -2
  22. package/esm2020/lib/services/state/o-table-component-state.class.mjs +7 -1
  23. package/esm2020/lib/services/state/o-table-component-state.service.mjs +8 -2
  24. package/esm2020/lib/types/table/index.mjs +2 -1
  25. package/esm2020/lib/types/table/o-column-value-filter.type.mjs +1 -1
  26. package/esm2020/lib/types/table/o-table-expandable-row-state.type.mjs +2 -0
  27. package/esm2020/lib/util/codes.mjs +3 -1
  28. package/esm2020/lib/util/util.mjs +11 -1
  29. package/fesm2015/ontimize-web-ngx.mjs +364 -116
  30. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  31. package/fesm2020/ontimize-web-ngx.mjs +347 -114
  32. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  33. package/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.d.ts +3 -0
  34. package/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.d.ts +1 -0
  35. package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +2 -1
  36. package/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.d.ts +1 -1
  37. package/lib/components/table/column/o-column.class.d.ts +2 -1
  38. package/lib/components/table/column/o-table-column.component.d.ts +2 -2
  39. package/lib/components/table/extensions/contextmenu/o-table-context-menu.component.d.ts +2 -0
  40. package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +9 -6
  41. package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.d.ts +12 -0
  42. package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +1 -1
  43. package/lib/components/table/o-table-base.class.d.ts +2 -0
  44. package/lib/components/table/o-table.component.d.ts +12 -2
  45. package/lib/injection-tokens/index.d.ts +2 -0
  46. package/lib/interfaces/index.d.ts +1 -0
  47. package/lib/interfaces/o-table-column.interface.d.ts +2 -1
  48. package/lib/layouts/app-layout/o-app-layout-base.class.d.ts +1 -1
  49. package/lib/layouts/app-layout/o-app-layout.component.d.ts +7 -3
  50. package/lib/services/state/o-table-component-state.class.d.ts +3 -0
  51. package/lib/types/table/index.d.ts +1 -0
  52. package/lib/types/table/o-column-value-filter.type.d.ts +3 -0
  53. package/lib/types/table/o-table-expandable-row-state.type.d.ts +5 -0
  54. package/lib/util/codes.d.ts +3 -0
  55. package/lib/util/util.d.ts +1 -0
  56. package/package.json +1 -1
  57. package/theme.scss +26 -26
@@ -7,6 +7,7 @@ import { PermissionsService } from '../../../services/permissions/permissions.se
7
7
  import { OTranslateService } from '../../../services/translate/o-translate.service';
8
8
  import { OPermissions } from '../../../types/o-permissions.type';
9
9
  import { OAppSidenavBase } from '../o-app-sidenav-base.class';
10
+ import { OAppLayoutBase } from '../../../layouts/app-layout/o-app-layout-base.class';
10
11
  import * as i0 from "@angular/core";
11
12
  export declare const DEFAULT_INPUTS_O_APP_SIDENAV_MENU_GROUP: string[];
12
13
  export declare const DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_GROUP: string[];
@@ -32,8 +33,10 @@ export declare class OAppSidenavMenuGroupComponent implements OnInit, AfterViewI
32
33
  protected router: Router;
33
34
  routerSubscription: Subscription;
34
35
  active: boolean;
36
+ oAppLayoutComponent: OAppLayoutBase;
35
37
  constructor(injector: Injector, elRef: ElementRef, cd: ChangeDetectorRef);
36
38
  ngOnInit(): void;
39
+ get shouldShowTooltip(): boolean;
37
40
  ngAfterViewInit(): void;
38
41
  ngOnDestroy(): void;
39
42
  protected parsePermissions(): void;
@@ -40,6 +40,7 @@ export declare class OAppSidenavMenuItemComponent implements OnInit, AfterViewIn
40
40
  active: boolean;
41
41
  constructor(injector: Injector, elRef: ElementRef, cd: ChangeDetectorRef);
42
42
  ngOnInit(): void;
43
+ get shouldShowTooltip(): boolean;
43
44
  ngAfterViewInit(): void;
44
45
  ngOnDestroy(): void;
45
46
  protected parsePermissions(): void;
@@ -24,6 +24,7 @@ export declare class OAppSidenavComponent extends OAppSidenavComponentStateServi
24
24
  protected _layoutMode: OAppLayoutMode;
25
25
  protected _sidenavMode: OSidenavMode;
26
26
  protected opened: boolean;
27
+ showEllipsisMenu: boolean;
27
28
  _showUserInfo: boolean;
28
29
  _showToggleButton: boolean;
29
30
  openedSidenavImg: string;
@@ -73,5 +74,5 @@ export declare class OAppSidenavComponent extends OAppSidenavComponentStateServi
73
74
  sidenavOpenedStart(): void;
74
75
  sidenavOpenedChange(): void;
75
76
  static ɵfac: i0.ɵɵFactoryDeclaration<OAppSidenavComponent, never>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<OAppSidenavComponent, "o-app-sidenav", never, { "opened": "opened"; "showUserInfo": "show-user-info"; "showToggleButton": "show-toggle-button"; "openedSidenavImg": "opened-sidenav-image"; "closedSidenavImg": "closed-sidenav-image"; "layoutMode": "layout-mode"; "sidenavMode": "sidenav-mode"; "storeState": "store-state"; }, { "onSidenavOpenedChange": "onSidenavOpenedChange"; "onSidenavOpenedStart": "onSidenavOpenedStart"; "onSidenavClosedStart": "onSidenavClosedStart"; "onSidenavToggle": "onSidenavToggle"; "afterSidenavToggle": "afterSidenavToggle"; }, never, ["o-app-layout-sidenav-projection-start", "o-app-layout-sidenav-projection-end", "*"], false, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<OAppSidenavComponent, "o-app-sidenav", never, { "opened": "opened"; "showUserInfo": "show-user-info"; "showToggleButton": "show-toggle-button"; "openedSidenavImg": "opened-sidenav-image"; "closedSidenavImg": "closed-sidenav-image"; "layoutMode": "layout-mode"; "sidenavMode": "sidenav-mode"; "storeState": "store-state"; "showEllipsisMenu": "show-ellipsis-menu"; }, { "onSidenavOpenedChange": "onSidenavOpenedChange"; "onSidenavOpenedStart": "onSidenavOpenedStart"; "onSidenavClosedStart": "onSidenavClosedStart"; "onSidenavToggle": "onSidenavToggle"; "afterSidenavToggle": "afterSidenavToggle"; }, never, ["o-app-layout-sidenav-projection-start", "o-app-layout-sidenav-projection-end", "*"], false, never>;
77
78
  }
@@ -1,7 +1,7 @@
1
1
  import { AfterContentInit, Injector, OnInit, PipeTransform, TemplateRef } from '@angular/core';
2
2
  import { OTableColumn } from '../../../../interfaces/o-table-column.interface';
3
3
  import { Expression } from '../../../../types/expression.type';
4
- import { OTableComponent } from '../../o-table.component';
4
+ import type { OTableComponent } from '../../o-table.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare const DEFAULT_INPUTS_O_BASE_TABLE_CELL_RENDERER: string[];
7
7
  export declare class OBaseTableCellRenderer implements OnInit, AfterContentInit {
@@ -5,7 +5,7 @@ import { Expression } from '../../../types/expression.type';
5
5
  import { OperatorFunction } from '../../../types/operation-function.type';
6
6
  import { OColumnAggregate } from '../../../types/table/o-column-aggregate.type';
7
7
  import { OColumnTooltip } from '../../../types/table/o-column-tooltip.type';
8
- import { OBaseTableCellRenderer } from './cell-renderer/o-base-table-cell-renderer.class';
8
+ import type { OBaseTableCellRenderer } from './cell-renderer/o-base-table-cell-renderer.class';
9
9
  export declare class OColumn {
10
10
  attr: string;
11
11
  name: string;
@@ -30,6 +30,7 @@ export declare class OColumn {
30
30
  tooltip: OColumnTooltip;
31
31
  resizable: boolean;
32
32
  DOMWidth: number;
33
+ valueColumn: string;
33
34
  filterExpressionFunction: (columnAttr: string, quickFilter?: string) => Expression;
34
35
  private multilineSubject;
35
36
  isMultiline: Observable<boolean>;
@@ -34,6 +34,7 @@ export declare class OTableColumnComponent implements OTableColumn, OnDestroy, O
34
34
  tooltipValue: string;
35
35
  tooltipFunction: (rowData: any) => any;
36
36
  class: string;
37
+ valueColumn: string;
37
38
  set multiline(val: boolean);
38
39
  get multiline(): boolean;
39
40
  protected _multiline: boolean;
@@ -65,7 +66,6 @@ export declare class OTableColumnComponent implements OTableColumn, OnDestroy, O
65
66
  protected entity: string;
66
67
  protected service: string;
67
68
  protected columns: string;
68
- protected valueColumn: string;
69
69
  protected parentKeys: string;
70
70
  protected queryMethod: string;
71
71
  protected serviceType: string;
@@ -126,5 +126,5 @@ export declare class OTableColumnComponent implements OTableColumn, OnDestroy, O
126
126
  set filterSource(val: string);
127
127
  get filterSource(): string;
128
128
  static ɵfac: i0.ɵɵFactoryDeclaration<OTableColumnComponent, never>;
129
- static ɵcmp: i0.ɵɵComponentDeclaration<OTableColumnComponent, "o-table-column", never, { "attr": "attr"; "title": "title"; "titleAlign": "title-align"; "contentAlign": "content-align"; "orderable": "orderable"; "searchable": "searchable"; "groupable": "groupable"; "type": "type"; "editable": "editable"; "width": "width"; "minWidth": "min-width"; "maxWidth": "max-width"; "asyncLoad": "async-load"; "sqlType": "sql-type"; "tooltip": "tooltip"; "tooltipValue": "tooltip-value"; "tooltipFunction": "tooltip-function"; "multiline": "multiline"; "resizable": "resizable"; "filterExpressionFunction": "filter-expression-function"; "class": "class"; "angularValidatorsFn": "validators"; "angularValidatorsFnErrors": "validators-errors"; "angularAsyncValidatorsFn": "async-validators"; "trueValue": "true-value"; "falseValue": "false-value"; "booleanType": "boolean-type"; "renderTrueValue": "render-true-value"; "renderFalseValue": "render-false-value"; "renderType": "render-type"; "grouping": "grouping"; "thousandSeparator": "thousand-separator"; "decimalSeparator": "decimal-separator"; "minDecimalDigits": "min-decimal-digits"; "maxDecimalDigits": "max-decimal-digits"; "currencySymbol": "currency-symbol"; "currencySymbolPosition": "currency-symbol-position"; "format": "format"; "imageType": "image-type"; "emptyImage": "empty-image"; "avatar": "avatar"; "icon": "icon"; "svgIcon": "svg-icon"; "action": "action"; "text": "text"; "iconPosition": "icon-position"; "entity": "entity"; "service": "service"; "columns": "columns"; "translate": "translate"; "valueColumn": "value-column"; "valueColumnType": "value-column-type"; "parentKeys": "parent-keys"; "queryMethod": "query-method"; "serviceType": "service-type"; "translateArgsFn": "translate-params"; "configureServiceArgs": "configure-service-args"; "orequired": "required"; "showPlaceHolder": "show-placeholder"; "olabel": "label"; "updateRecordOnEdit": "update-record-on-edit"; "showNotificationOnEdit": "show-notification-on-edit"; "enabled": "enabled"; "min": "min"; "max": "max"; "step": "step"; "locale": "locale"; "oStartView": "start-view"; "oTouchUi": "touch-ui"; "startAt": "start-at"; "filterDate": "filter-date"; "dateValueType": "date-value-type"; "oDateFormat": "date-format"; "oDateLocale": "date-locale"; "oDateStartView": "date-start-view"; "oMinDate": "date-min"; "oMaxDate": "date-max"; "oDateTouchUi": "date-touch-ui"; "oDateStartAt": "date-start-at"; "oHourFormat": "hour-format"; "oHourMin": "hour-min"; "oHourMax": "hour-max"; "oHourPlaceholder": "hour-placeholder"; "oDatePlaceholder": "date-placeholder"; }, { "onClick": "onClick"; "onDataLoaded": "onDataLoaded"; "editionStarted": "editionStarted"; "editionCancelled": "editionCancelled"; "editionCommitted": "editionCommitted"; "onPostUpdateRecord": "onPostUpdateRecord"; }, never, never, false, never>;
129
+ static ɵcmp: i0.ɵɵComponentDeclaration<OTableColumnComponent, "o-table-column", never, { "attr": "attr"; "title": "title"; "titleAlign": "title-align"; "contentAlign": "content-align"; "orderable": "orderable"; "searchable": "searchable"; "groupable": "groupable"; "type": "type"; "editable": "editable"; "width": "width"; "minWidth": "min-width"; "maxWidth": "max-width"; "asyncLoad": "async-load"; "sqlType": "sql-type"; "tooltip": "tooltip"; "tooltipValue": "tooltip-value"; "tooltipFunction": "tooltip-function"; "multiline": "multiline"; "resizable": "resizable"; "filterExpressionFunction": "filter-expression-function"; "class": "class"; "angularValidatorsFn": "validators"; "angularValidatorsFnErrors": "validators-errors"; "angularAsyncValidatorsFn": "async-validators"; "valueColumn": "value-column"; "trueValue": "true-value"; "falseValue": "false-value"; "booleanType": "boolean-type"; "renderTrueValue": "render-true-value"; "renderFalseValue": "render-false-value"; "renderType": "render-type"; "grouping": "grouping"; "thousandSeparator": "thousand-separator"; "decimalSeparator": "decimal-separator"; "minDecimalDigits": "min-decimal-digits"; "maxDecimalDigits": "max-decimal-digits"; "currencySymbol": "currency-symbol"; "currencySymbolPosition": "currency-symbol-position"; "format": "format"; "imageType": "image-type"; "emptyImage": "empty-image"; "avatar": "avatar"; "icon": "icon"; "svgIcon": "svg-icon"; "action": "action"; "text": "text"; "iconPosition": "icon-position"; "entity": "entity"; "service": "service"; "columns": "columns"; "translate": "translate"; "valueColumnType": "value-column-type"; "parentKeys": "parent-keys"; "queryMethod": "query-method"; "serviceType": "service-type"; "translateArgsFn": "translate-params"; "configureServiceArgs": "configure-service-args"; "orequired": "required"; "showPlaceHolder": "show-placeholder"; "olabel": "label"; "updateRecordOnEdit": "update-record-on-edit"; "showNotificationOnEdit": "show-notification-on-edit"; "enabled": "enabled"; "min": "min"; "max": "max"; "step": "step"; "locale": "locale"; "oStartView": "start-view"; "oTouchUi": "touch-ui"; "startAt": "start-at"; "filterDate": "filter-date"; "dateValueType": "date-value-type"; "oDateFormat": "date-format"; "oDateLocale": "date-locale"; "oDateStartView": "date-start-view"; "oMinDate": "date-min"; "oMaxDate": "date-max"; "oDateTouchUi": "date-touch-ui"; "oDateStartAt": "date-start-at"; "oHourFormat": "hour-format"; "oHourMin": "hour-min"; "oHourMax": "hour-max"; "oHourPlaceholder": "hour-placeholder"; "oDatePlaceholder": "date-placeholder"; }, { "onClick": "onClick"; "onDataLoaded": "onDataLoaded"; "editionStarted": "editionStarted"; "editionCancelled": "editionCancelled"; "editionCommitted": "editionCommitted"; "onPostUpdateRecord": "onPostUpdateRecord"; }, never, never, false, never>;
130
130
  }
@@ -64,6 +64,8 @@ export declare class OTableContextMenuComponent implements AfterViewInit {
64
64
  delete(event: any): void;
65
65
  refresh(): void;
66
66
  filterByValue(): void;
67
+ private createColumnValueFilter;
68
+ private getSelectedValues;
67
69
  groupByColumn(dateType?: string): void;
68
70
  unGroupByColumn(): void;
69
71
  unGroupAll(): void;
@@ -12,9 +12,12 @@ import { TableFilterByColumnData, TableFilterByColumnDialogResult } from '../../
12
12
  import { OTableComponent } from '../../../o-table.component';
13
13
  import { OFilterColumn } from '../../header/table-columns-filter/columns/o-table-columns-filter-column.component';
14
14
  import type { OColumn } from '../../../column/o-column.class';
15
+ import { OTableFilterByColumnService } from './o-table-filter-by-column.service';
16
+ import { SelectionModel } from '@angular/cdk/collections';
15
17
  import * as i0 from "@angular/core";
16
18
  export declare class OTableFilterByColumnDataDialogComponent implements AfterViewInit {
17
19
  dialogRef: MatDialogRef<OTableFilterByColumnDataDialogComponent>;
20
+ private readonly filterService;
18
21
  acceptAction: TableFilterByColumnDialogResult;
19
22
  cancelAction: TableFilterByColumnDialogResult;
20
23
  clearAction: TableFilterByColumnDialogResult;
@@ -37,12 +40,14 @@ export declare class OTableFilterByColumnDataDialogComponent implements AfterVie
37
40
  filter: ElementRef;
38
41
  filterValueList: MatSelectionList;
39
42
  activeSortDirection: 'asc' | 'desc' | '';
40
- sourceData: any;
43
+ sourceData: 'current-page' | 'all-data';
41
44
  queryByFilterColumnSubscription: any;
42
45
  table: OTableComponent;
43
46
  showFilterValuesOption: boolean;
44
47
  queryMethodName: string;
45
- constructor(dialogRef: MatDialogRef<OTableFilterByColumnDataDialogComponent>, data: {
48
+ previousFilter: OColumnValueFilter;
49
+ selection: SelectionModel<TableFilterByColumnData>;
50
+ constructor(dialogRef: MatDialogRef<OTableFilterByColumnDataDialogComponent>, filterService: OTableFilterByColumnService, data: {
46
51
  column: OColumn;
47
52
  table: OTableComponent;
48
53
  });
@@ -54,13 +59,10 @@ export declare class OTableFilterByColumnDataDialogComponent implements AfterVie
54
59
  protected initializeDataList(filter?: OColumnValueFilter): void;
55
60
  protected initializeFilterEvent(): void;
56
61
  protected initializeCustomFilterValues(filter: OColumnValueFilter): void;
57
- get selectedValues(): TableFilterByColumnData[];
58
62
  areAllSelected(): boolean;
59
63
  isIndeterminate(): boolean;
60
64
  onSelect(event: MatSelectionListChange): void;
61
65
  onSelectAllChange(event: MatCheckboxChange): void;
62
- protected parseListData(filter: OColumnValueFilter): void;
63
- private addIntoColumnData;
64
66
  getColumnValuesFilter(): OColumnValueFilter;
65
67
  clearValues(): void;
66
68
  onClickSortValues(): void;
@@ -77,8 +79,9 @@ export declare class OTableFilterByColumnDataDialogComponent implements AfterVie
77
79
  protected getTypedValue(control: UntypedFormControl): any;
78
80
  onChangeDataSource(event: MatRadioChange): void;
79
81
  private getData;
82
+ isSelected(item: TableFilterByColumnData): boolean;
80
83
  queryByFilterColumn(attr: string): Observable<ServiceResponse> | Observable<any>;
81
- protected getColumnDataUsingRenderer(): any[];
84
+ compareOptions(): ((o1: TableFilterByColumnData, o2: TableFilterByColumnData) => boolean) | undefined;
82
85
  static ɵfac: i0.ɵɵFactoryDeclaration<OTableFilterByColumnDataDialogComponent, never>;
83
86
  static ɵcmp: i0.ɵɵComponentDeclaration<OTableFilterByColumnDataDialogComponent, "o-table-filter-by-column-data-dialog", never, {}, {}, never, never, false, never>;
84
87
  }
@@ -0,0 +1,12 @@
1
+ import { OColumnValueFilter } from '../../../../../types/table/o-column-value-filter.type';
2
+ import { TableFilterByColumnData } from '../../../../../types/table/o-table-filter-by-column-data.type';
3
+ import { OColumn } from '../../../column/o-column.class';
4
+ import * as i0 from "@angular/core";
5
+ export declare class OTableFilterByColumnService {
6
+ constructor();
7
+ getColumnDataUsingRenderer(column: OColumn, tableData: any[]): any[];
8
+ parseListData(filter: OColumnValueFilter, column: OColumn, tableData: any[], isPageable: boolean, sourceData: 'current-page' | 'all-data'): TableFilterByColumnData[];
9
+ applySelectedValuesToFilter(column: OColumn, tableData: any[], filter: OColumnValueFilter, selectedValues: TableFilterByColumnData[], sourceData: 'current-page' | 'all-data', isPageable: boolean, getComponentFilterFn: () => any): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<OTableFilterByColumnService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<OTableFilterByColumnService>;
12
+ }
@@ -28,7 +28,7 @@ export declare class OTableColumnsFilterComponent implements OnInit, AfterConten
28
28
  getSortValueOfFilterColumn(attr: string): string;
29
29
  getStartViewValueOfFilterColumn(attr: string): string;
30
30
  getQueryMethodOfFilterColumn(attr: string): string;
31
- getFilterValuesInData(attr: string): string;
31
+ getFilterValuesInData(attr: string): 'current-page' | 'all-data';
32
32
  getColumnComparisonValue(column: OColumn, val: any): any;
33
33
  set columns(arg: string);
34
34
  set columnsArray(arg: OFilterColumn[]);
@@ -121,4 +121,6 @@ export declare abstract class OTableBase {
121
121
  abstract setSelectedByKeys(keyValues: Array<any>): void;
122
122
  abstract setSelectedByMultipleKeys(keyValues: Array<Object>): void;
123
123
  abstract setSelectedByRowIds(rowIds: Array<number>): void;
124
+ abstract getSourceDataByFilterColumn(column: OColumn): 'current-page' | 'all-data';
125
+ abstract getValue(): any[];
124
126
  }
@@ -1,7 +1,7 @@
1
1
  import { SelectionModel } from '@angular/cdk/collections';
2
2
  import { DomPortalOutlet } from '@angular/cdk/portal';
3
3
  import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
4
- import { AfterContentInit, AfterViewInit, ApplicationRef, ElementRef, EventEmitter, Injector, OnDestroy, OnInit, QueryList, SimpleChange, ViewContainerRef } from '@angular/core';
4
+ import { AfterContentInit, AfterViewChecked, AfterViewInit, ApplicationRef, ElementRef, EventEmitter, Injector, OnDestroy, OnInit, QueryList, SimpleChange, ViewContainerRef } from '@angular/core';
5
5
  import { MatCheckboxChange } from '@angular/material/checkbox';
6
6
  import { MatDialog } from '@angular/material/dialog';
7
7
  import { MatMenu } from '@angular/material/menu';
@@ -54,11 +54,12 @@ import type { OTablePaginator } from '../../interfaces/o-table-paginator.interfa
54
54
  import type { OTableQuickfilter } from '../../interfaces/o-table-quickfilter.interface';
55
55
  import type { ServiceResponse } from '../../interfaces/service-response.interface';
56
56
  import { OQueryParams } from '../../types/query-params.type';
57
+ import { MatRow } from '@angular/material/table';
57
58
  import * as i0 from "@angular/core";
58
59
  export declare const DEFAULT_INPUTS_O_TABLE: string[];
59
60
  export declare const DEFAULT_OUTPUTS_O_TABLE: string[];
60
61
  type DisableSelectionFunction = (item: any) => boolean;
61
- export declare class OTableComponent extends AbstractOServiceComponent<OTableComponentStateService> implements OnInit, OnDestroy, AfterViewInit, AfterContentInit {
62
+ export declare class OTableComponent extends AbstractOServiceComponent<OTableComponentStateService> implements OnInit, OnDestroy, AfterViewChecked, AfterViewInit, AfterContentInit {
62
63
  injector: Injector;
63
64
  protected dialog: MatDialog;
64
65
  private readonly _viewContainerRef;
@@ -89,6 +90,8 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
89
90
  }>;
90
91
  protected clickSubjectSubscription: Subscription;
91
92
  protected dbClickSubjectSubscription: Subscription;
93
+ protected rowChangeSubscription: Subscription;
94
+ refreshExpandableRowState: boolean;
92
95
  set oMatSort(_sort: OMatSort);
93
96
  virtualScrollViewport: CdkVirtualScrollViewport;
94
97
  oTableGlobalConfig: OTableGlobalConfig;
@@ -216,6 +219,7 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
216
219
  protected tableBodyEl: ElementRef;
217
220
  tableHeaderEl: ElementRef;
218
221
  tableToolbarEl: ElementRef;
222
+ rows: QueryList<MatRow>;
219
223
  horizontalScrolled: boolean;
220
224
  onUpdateScrolledState: EventEmitter<any>;
221
225
  rowWidth: any;
@@ -247,6 +251,7 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
247
251
  ngOnInit(): void;
248
252
  ngAfterViewInit(): void;
249
253
  ngAfterContentInit(): void;
254
+ handleTableDataChange(): void;
250
255
  setCustomDefinitionInSelectColumn(definition: OTableColumnSelectAllDirective): void;
251
256
  ngAfterViewChecked(): void;
252
257
  ngOnChanges(changes: {
@@ -296,6 +301,8 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
296
301
  getExpandedRowContainerClass(rowIndex: number): string;
297
302
  getExpandableItems(): any[];
298
303
  toggleRowExpandable(item: any, event?: Event): void;
304
+ saveRowExpandState(added: any[], removed: any[]): void;
305
+ destroyAllPortalHosts(): void;
299
306
  toggleRowExpandableByRowIndex(rowIndex: number, event?: Event): void;
300
307
  private emitTableRowExpandableChangeEvent;
301
308
  isExpanded(data: any): boolean;
@@ -315,6 +322,7 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
315
322
  protected canSetStaticData(staticData: any): boolean;
316
323
  showDialogError(error: string, errorOptional?: string): void;
317
324
  projectContentChanged(): void;
325
+ restoreExpandableRowState(): void;
318
326
  getAttributesValuesToQuery(): Array<string>;
319
327
  getQueryArguments(filter: object, ovrrArgs?: OQueryDataArgs): OQueryParams;
320
328
  getSqlTypesForFilter(filter: any): object;
@@ -327,6 +335,7 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
327
335
  showAndSelectAllCheckbox(): void;
328
336
  reloadPaginatedDataFromStart(clearSelectedItems?: boolean): void;
329
337
  reloadData(clearSelectedItems?: boolean): void;
338
+ reloadDataWithClearExpandableRows(clearSelectedItems?: boolean, clearExpandableItems?: boolean): void;
330
339
  handleClick(row: any, column: OColumn, rowIndex: number, cellRef: ElementRef, event: MouseEvent): void;
331
340
  doHandleClick(row: any, column: string, rowIndex: number, $event: MouseEvent): void;
332
341
  handleMultipleSelection(item: any): void;
@@ -478,6 +487,7 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
478
487
  isDisableCheckbox(item: any): boolean;
479
488
  getService(): import("ontimize-web-ngx").BaseService<ServiceResponse>;
480
489
  getSnackService(): SnackBarService;
490
+ getSourceDataByFilterColumn(column: OColumn): 'current-page' | 'all-data';
481
491
  static ɵfac: i0.ɵɵFactoryDeclaration<OTableComponent, [null, null, null, null, null, { optional: true; }, { optional: true; }]>;
482
492
  static ɵcmp: i0.ɵɵComponentDeclaration<OTableComponent, "o-table", never, { "visibleColumns": "visible-columns"; "defaultVisibleColumns": "default-visible-columns"; "sortColumns": "sort-columns"; "quickFilterCallback": "quick-filter-function"; "deleteButton": "delete-button"; "refreshButton": "refresh-button"; "columnsVisibilityButton": "columns-visibility-button"; "exportButton": "export-button"; "showConfigurationOption": "show-configuration-option"; "showButtonsText": "show-buttons-text"; "selectAllCheckbox": "select-all-checkbox"; "paginationControls": "pagination-controls"; "fixedHeader": "fixed-header"; "showTitle": "show-title"; "editionMode": "edition-mode"; "selectionMode": "selection-mode"; "horizontalScroll": "horizontal-scroll"; "showPaginatorFirstLastButtons": "show-paginator-first-last-buttons"; "autoAlignTitles": "auto-align-titles"; "multipleSort": "multiple-sort"; "selectAllCheckboxVisible": "select-all-checkbox-visible"; "orderable": "orderable"; "resizable": "resizable"; "keepSelectedItems": "keep-selected-items"; "exportMode": "export-mode"; "exportServiceType": "export-service-type"; "autoAdjust": "auto-adjust"; "showFilterOption": "show-filter-option"; "visibleExportDialogButtons": "visible-export-dialog-buttons"; "rowClass": "row-class"; "filterColumnActiveByDefault": "filter-column-active-by-default"; "groupedColumns": "grouped-columns"; "groupable": "groupable"; "expandGroupsSameLevel": "expand-groups-same-level"; "collapseGroupedColumns": "collapse-grouped-columns"; "virtualScroll": "virtual-scroll"; "contextMenu": "context-menu"; "showExpandableIconFunction": "show-expandable-icon-function"; "showReportOnDemandOption": "show-report-on-demand-option"; "showChartsOnDemandOption": "show-charts-on-demand-option"; "showResetWidthOption": "show-reset-width-option"; "disableSelectionFunction": "disable-selection-function"; "nonHidableColumns": "non-hidable-columns"; "readOnly": "read-only"; "readOnlyConfiguration": "read-only-configuration"; "showNotificationOfReadOnly": "show-notification-of-read-only"; }, { "onRowSelected": "onRowSelected"; "onRowDeselected": "onRowDeselected"; "onRowDeleted": "onRowDeleted"; }, ["tableRowExpandable", "quickfilterContentChild", "tableColumnSelectAllContentChild", "contextMenuContentChild", "tableOptions", "tableButtons", "exportOptsTemplate"], ["o-table-button", "[o-table-toolbar][position=start]", "[o-table-toolbar][position=end]", "[o-table-toolbar]", "o-table-quickfilter", "o-table-option"], false, never>;
483
493
  }
@@ -12,8 +12,10 @@ import { OErrorDialogManager } from "../services/o-error-dialog-manager.service"
12
12
  import { OMatErrorOptions } from "../types/o-mat-error.type";
13
13
  import { IExportDataProvider } from "../interfaces/export-data-provider.interface";
14
14
  import { IAuthService } from "../interfaces/auth-service.interface";
15
+ import { IBaseRequestArgument } from "../services/request-adapter";
15
16
  export declare const O_DATA_SERVICE: InjectionToken<unknown>;
16
17
  export declare const O_RESPONSE_ADAPTER: InjectionToken<IServiceResponseAdapter<BaseServiceResponse>>;
18
+ export declare const O_REQUEST_ADAPTER: InjectionToken<IBaseRequestArgument>;
17
19
  export declare const O_TRANSLATE_SERVICE: InjectionToken<unknown>;
18
20
  export declare const O_FILE_SERVICE: InjectionToken<IFileService>;
19
21
  export declare const O_LOCALSTORAGE_SERVICE: InjectionToken<ILocalStorageService>;
@@ -43,3 +43,4 @@ export * from './pagination-context.interface';
43
43
  export * from './form-layout-manager.interface';
44
44
  export * from './base-response.interface';
45
45
  export * from './service-response.interface';
46
+ export * from './jsonapi-response.interface';
@@ -1,6 +1,6 @@
1
1
  import { ViewContainerRef } from '@angular/core';
2
2
  import { AsyncValidatorFn, ValidatorFn } from '@angular/forms';
3
- import { OTableComponent } from '../components/table/o-table.component';
3
+ import type { OTableComponent } from '../components/table/o-table.component';
4
4
  import { Expression } from '../types/expression.type';
5
5
  import { ErrorData } from '../types/error-data.type';
6
6
  export interface OTableColumn {
@@ -29,6 +29,7 @@ export interface OTableColumn {
29
29
  angularValidatorsFn: ValidatorFn[];
30
30
  angularValidatorsFnErrors: ErrorData[];
31
31
  angularAsyncValidatorsFn: AsyncValidatorFn[];
32
+ valueColumn: string;
32
33
  tooltipFunction: (rowData: any) => any;
33
34
  filterExpressionFunction: (columnAttr: string, quickFilter?: string) => Expression;
34
35
  getSQLType: () => number;
@@ -1,4 +1,4 @@
1
1
  export declare abstract class OAppLayoutBase {
2
2
  abstract useFlagIcons: boolean;
3
- F: any;
3
+ abstract tooltipDisplayMode: string;
4
4
  }
@@ -1,9 +1,9 @@
1
1
  import { AfterViewInit, EventEmitter } from '@angular/core';
2
2
  import { ThemePalette } from '@angular/material/core';
3
+ import { OAppHeaderBase } from '../../components/app-header/o-app-header-base.class';
4
+ import { OAppSidenavBase } from '../../components/app-sidenav/o-app-sidenav-base.class';
3
5
  import { OUserInfoConfigurationDirective } from '../../components/user-info/user-info-configuration/o-user-info-configuration.directive';
4
6
  import { OAppLayoutMode, OSidenavMode } from '../../util/codes';
5
- import { OAppSidenavBase } from '../../components/app-sidenav/o-app-sidenav-base.class';
6
- import { OAppHeaderBase } from '../../components/app-header/o-app-header-base.class';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare const DEFAULT_INPUTS_O_APP_LAYOUT: string[];
9
9
  export declare const DEFAULT_OUTPUTS_O_APP_LAYOUT: any[];
@@ -16,6 +16,7 @@ export declare class OAppLayoutComponent implements AfterViewInit {
16
16
  showTitle: boolean;
17
17
  staticTitle: string;
18
18
  showStaticTitle: boolean;
19
+ showEllipsisMenu: boolean;
19
20
  headerColor: ThemePalette;
20
21
  headerHeight: string;
21
22
  appSidenav: OAppSidenavBase;
@@ -29,15 +30,18 @@ export declare class OAppLayoutComponent implements AfterViewInit {
29
30
  afterOpenSidenav: EventEmitter<boolean>;
30
31
  beforeCloseSidenav: EventEmitter<boolean>;
31
32
  afterCloseSidenav: EventEmitter<boolean>;
33
+ private _tooltipDisplayMode;
32
34
  get showHeader(): boolean;
33
35
  set showHeader(val: boolean);
34
36
  get mode(): OAppLayoutMode;
35
37
  set mode(val: OAppLayoutMode);
36
38
  get sidenavMode(): OSidenavMode;
37
39
  set sidenavMode(val: OSidenavMode);
40
+ get tooltipDisplayMode(): string;
41
+ set tooltipDisplayMode(val: string);
38
42
  sidenavToggle(opened: boolean): void;
39
43
  afterToggle(opened: boolean): void;
40
44
  ngAfterViewInit(): void;
41
45
  static ɵfac: i0.ɵɵFactoryDeclaration<OAppLayoutComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<OAppLayoutComponent, "o-app-layout", never, { "mode": "mode"; "sidenavMode": "sidenav-mode"; "sidenavOpened": "sidenav-opened"; "_showHeader": "show-header"; "showUserInfo": "show-user-info"; "showLanguageSelector": "show-language-selector"; "useFlagIcons": "use-flag-icons"; "openedSidenavImg": "opened-sidenav-image"; "closedSidenavImg": "closed-sidenav-image"; "headerColor": "header-color"; "headerHeight": "header-height"; "showTitle": "show-title"; "staticTitle": "static-title"; "showStaticTitle": "show-static-title"; }, { "beforeOpenSidenav": "beforeOpenSidenav"; "afterOpenSidenav": "afterOpenSidenav"; "beforeCloseSidenav": "beforeCloseSidenav"; "afterCloseSidenav": "afterCloseSidenav"; }, ["userInfoConfiguration"], ["o-app-layout-sidenav[position=start]", "o-app-layout-sidenav[position=end]", "o-app-layout-sidenav", "o-app-layout-header[position=start]", "o-app-layout-header[position=end]", "o-app-layout-header", "*"], false, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<OAppLayoutComponent, "o-app-layout", never, { "mode": "mode"; "sidenavMode": "sidenav-mode"; "sidenavOpened": "sidenav-opened"; "_showHeader": "show-header"; "showUserInfo": "show-user-info"; "showLanguageSelector": "show-language-selector"; "useFlagIcons": "use-flag-icons"; "openedSidenavImg": "opened-sidenav-image"; "closedSidenavImg": "closed-sidenav-image"; "headerColor": "header-color"; "headerHeight": "header-height"; "showTitle": "show-title"; "staticTitle": "static-title"; "showStaticTitle": "show-static-title"; "tooltipDisplayMode": "tooltip-display-mode"; "showEllipsisMenu": "show-ellipsis-menu"; }, { "beforeOpenSidenav": "beforeOpenSidenav"; "afterOpenSidenav": "afterOpenSidenav"; "beforeCloseSidenav": "beforeCloseSidenav"; "afterCloseSidenav": "afterCloseSidenav"; }, ["userInfoConfiguration"], ["o-app-layout-sidenav[position=start]", "o-app-layout-sidenav[position=end]", "o-app-layout-sidenav", "o-app-layout-header[position=start]", "o-app-layout-header[position=end]", "o-app-layout-header", "*"], false, never>;
43
47
  }
@@ -8,6 +8,7 @@ import { OTableConfiguration } from '../../types/table/o-table-configuration.typ
8
8
  import { OTableFiltersStatus, OTableStoredFilter } from '../../types/table/o-table-filter-status.type';
9
9
  import { OFilterBuilderValues } from '../../types/o-filter-builder-values.type';
10
10
  import { OGroupedColumnTypes } from '../../types';
11
+ import { OTableExpandableRowState } from '../../types/table/o-table-expandable-row-state.type';
11
12
  export declare class OTableComponentStateClass extends DefaultServiceComponentStateClass {
12
13
  protected 'sort-columns': string;
13
14
  protected 'oColumns-display': OColumnDisplay[];
@@ -49,6 +50,8 @@ export declare class OTableComponentStateClass extends DefaultServiceComponentSt
49
50
  get columnValueFilters(): OColumnValueFilter[];
50
51
  set columnValueFilters(value: OColumnValueFilter[]);
51
52
  get storedFilters(): OTableFiltersStatus[];
53
+ set expandableRows(value: OTableExpandableRowState[]);
54
+ get expandableRows(): OTableExpandableRowState[];
52
55
  addStoredFilter(filter: OTableFiltersStatus): void;
53
56
  deleteStoredFilter(filterName: string): void;
54
57
  getStoredFilter(filterName: string): OTableStoredFilter;
@@ -10,3 +10,4 @@ export * from './o-table-initialization-options.type';
10
10
  export * from './o-table-menu-permissions.type';
11
11
  export * from './o-table-permissions.type';
12
12
  export * from './o-table-global-config.type';
13
+ export * from './o-table-expandable-row-state.type';
@@ -1,3 +1,4 @@
1
+ import { Expression } from "../expression.type";
1
2
  export declare enum ColumnValueFilterOperator {
2
3
  IN = 0,
3
4
  LESS_EQUAL = 1,
@@ -10,4 +11,6 @@ export type OColumnValueFilter = {
10
11
  operator: ColumnValueFilterOperator;
11
12
  values: any;
12
13
  availableValues: any[];
14
+ filterValuesInData: 'current-page' | 'all-data';
15
+ filterExpresion: Expression;
13
16
  };
@@ -0,0 +1,5 @@
1
+ export type OTableExpandableRowState = {
2
+ keys: {
3
+ [k: string]: any;
4
+ };
5
+ };
@@ -4,6 +4,7 @@ export type CHANGE_EVENTS = 'onValueChange' | 'onChange';
4
4
  export type ORowHeight = 'small' | 'medium' | 'large';
5
5
  export type OTableEditionMode = 'none' | 'click' | 'dblclick' | 'doubleclick';
6
6
  export type OTableDetailMode = 'none' | 'click' | 'dblclick' | 'doubleclick';
7
+ export type OTooltipDisplayMode = 'always' | 'never' | 'only-collapsed' | 'only-expanded';
7
8
  export declare class Codes {
8
9
  static readonly PAGINATED_QUERY_METHOD = "advancedQuery";
9
10
  static readonly DELETE_METHOD = "delete";
@@ -98,6 +99,8 @@ export declare class Codes {
98
99
  static VISIBLE_EXPORT_BUTTONS3X: string[];
99
100
  static DEFAULT_CHANGE_EVENT: CHANGE_EVENTS;
100
101
  static TYPES_DATE_GROUPS: string[];
102
+ static readonly TOOLTIP_DISPLAY_MODE: string[];
103
+ static readonly TOOLTIP_DISPLAY_COLLAPSED = "only-collapsed";
101
104
  static isDoubleClickMode(value: string): boolean;
102
105
  static isValidRowHeight(value: string): boolean;
103
106
  static getIsDetailObject(): any;
@@ -62,4 +62,5 @@ export declare class Util {
62
62
  static sortFunction(propertyA: string | number, propertyB: string | number, activeSortDirection: string): number;
63
63
  static cloneArray<T>(arr: T[]): T[];
64
64
  static getLastActivateRoute(routeSnapshot: ActivatedRouteSnapshot): ActivatedRouteSnapshot;
65
+ static getValueFromPath(obj: any, path: string): any;
65
66
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ontimize-web-ngx",
3
3
  "homepage": "https://github.com/OntimizeWeb/ontimize-web-ngx#readme",
4
- "version": "15.6.0-next.4",
4
+ "version": "15.6.0-next.6",
5
5
  "description": "Ontimize Web framework using Angular 15",
6
6
  "bugs": "https://github.com/OntimizeWeb/ontimize-web-ngx/issues",
7
7
  "author": "Imatia S.L.",
package/theme.scss CHANGED
@@ -47,6 +47,32 @@
47
47
  @include o-daterange-input-theme($theme-or-color-config);
48
48
  @include o-dual-list-selector-theme($theme-or-color-config);
49
49
  @include o-image-theme($theme-or-color-config);
50
+ }@mixin o-app-header-theme($theme-or-color-config) {
51
+ $theme: map.get($theme-or-color-config, color);
52
+ $primary: map.get($theme, primary);
53
+ $accent: map.get($theme, accent);
54
+ $foreground: map.get($theme, foreground);
55
+
56
+ .o-app-header {
57
+ nav {
58
+ &.o-app-header-primary {
59
+ background-color: mat.get-color-from-palette($primary);
60
+ }
61
+
62
+ &.o-app-header-accent {
63
+ background-color: mat.get-color-from-palette($accent);
64
+ }
65
+
66
+ .menu-button {
67
+ background: transparent;
68
+ }
69
+ }
70
+
71
+ .o-user-info {
72
+ color: mat.get-color-from-palette($foreground, text);
73
+ }
74
+ }
75
+
50
76
  }@mixin o-app-sidenav-theme($theme-or-color-config) {
51
77
  $theme: map.get($theme-or-color-config, color);
52
78
  $primary: map.get($theme, primary);
@@ -123,32 +149,6 @@
123
149
  }
124
150
  }
125
151
  }
126
- }@mixin o-app-header-theme($theme-or-color-config) {
127
- $theme: map.get($theme-or-color-config, color);
128
- $primary: map.get($theme, primary);
129
- $accent: map.get($theme, accent);
130
- $foreground: map.get($theme, foreground);
131
-
132
- .o-app-header {
133
- nav {
134
- &.o-app-header-primary {
135
- background-color: mat.get-color-from-palette($primary);
136
- }
137
-
138
- &.o-app-header-accent {
139
- background-color: mat.get-color-from-palette($accent);
140
- }
141
-
142
- .menu-button {
143
- background: transparent;
144
- }
145
- }
146
-
147
- .o-user-info {
148
- color: mat.get-color-from-palette($foreground, text);
149
- }
150
- }
151
-
152
152
  }@mixin o-bar-menu-theme($theme-or-color-config) {
153
153
  $theme: map.get($theme-or-color-config, color);
154
154
  $primary: map.get($theme, primary);