ontimize-web-ngx 15.6.2 → 15.7.0
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/o-service-base-component.class.mjs +10 -1
- package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +17 -11
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +41 -64
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +75 -8
- package/esm2020/lib/components/table/extensions/dialog/visible-columns/o-table-visible-columns-dialog.component.mjs +2 -2
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component.mjs +19 -3
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +68 -51
- package/esm2020/lib/components/table/extensions/header/table-header-column-filter-icon/o-table-header-column-filter-icon.component.mjs +26 -11
- package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
- package/esm2020/lib/components/table/o-table.component.mjs +42 -5
- package/esm2020/lib/components/tree/o-tree-dao.service.mjs +32 -1
- package/esm2020/lib/components/tree/o-tree.component.mjs +144 -22
- package/esm2020/lib/components/tree/o-tree.datasource.mjs +28 -14
- package/esm2020/lib/components/tree/o-tree.module.mjs +1 -1
- package/esm2020/lib/components/tree/tree-node/tree-node.component.mjs +2 -20
- package/esm2020/lib/i18n/i18n.mjs +13 -4
- package/esm2020/lib/interfaces/pagination-data.interface.mjs +2 -0
- package/esm2020/lib/services/state/index.mjs +3 -1
- package/esm2020/lib/services/state/o-tree-component-state.class.mjs +1 -1
- package/esm2020/lib/services/state/o-tree-component-state.service.mjs +54 -14
- package/esm2020/lib/types/table/o-table-initialization-options.type.mjs +1 -1
- package/esm2020/lib/types/tree-flat-node.type.mjs +1 -1
- package/fesm2015/ontimize-web-ngx.mjs +578 -191
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +564 -189
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/o-service-base-component.class.d.ts +5 -1
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +10 -3
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.d.ts +10 -3
- package/lib/components/table/extensions/header/o-table-header-components.d.ts +2 -2
- package/lib/components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component.d.ts +19 -2
- package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +10 -9
- package/lib/components/table/extensions/header/table-header-column-filter-icon/o-table-header-column-filter-icon.component.d.ts +7 -1
- package/lib/components/table/o-table-base.class.d.ts +12 -3
- package/lib/components/table/o-table.component.d.ts +4 -2
- package/lib/components/tree/o-tree-dao.service.d.ts +4 -2
- package/lib/components/tree/o-tree.component.d.ts +21 -2
- package/lib/components/tree/o-tree.datasource.d.ts +3 -0
- package/lib/components/tree/tree-node/tree-node.component.d.ts +0 -4
- package/lib/i18n/i18n.d.ts +9 -0
- package/lib/interfaces/pagination-data.interface.d.ts +6 -0
- package/lib/services/state/index.d.ts +2 -0
- package/lib/services/state/o-tree-component-state.class.d.ts +3 -0
- package/lib/services/state/o-tree-component-state.service.d.ts +4 -1
- package/lib/types/table/o-table-initialization-options.type.d.ts +4 -0
- package/lib/types/tree-flat-node.type.d.ts +5 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectorRef, Injector, OnChanges, SimpleChange } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
3
|
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
|
|
4
|
+
import { PaginationContext } from '../interfaces/pagination-context.interface';
|
|
4
5
|
import { ILocalStorageComponent } from '../interfaces/local-storage-component.interface';
|
|
5
6
|
import { ServiceResponse } from '../interfaces/service-response.interface';
|
|
6
7
|
import { BaseService } from '../services/base-service.class';
|
|
@@ -99,12 +100,15 @@ export declare abstract class AbstractOServiceBaseComponent<T extends AbstractCo
|
|
|
99
100
|
getAttributesValuesToQuery(): Array<string>;
|
|
100
101
|
getQueryArguments(filter: object, ovrrArgs?: OQueryDataArgs): OQueryParams;
|
|
101
102
|
updatePaginationInfo(queryRes: ServiceResponse): void;
|
|
102
|
-
|
|
103
|
+
protected updatePaginationContext(paginationContext: PaginationContext): void;
|
|
103
104
|
getTotalRecordsNumber(): number;
|
|
104
105
|
getContextComponent(): OFormComponent | OExpandableContainerComponent;
|
|
105
106
|
getComponentFilter(existingFilter?: any): any;
|
|
106
107
|
getSqlTypes(): any;
|
|
107
108
|
getParentKeysValues(): {};
|
|
109
|
+
getForm(): OFormComponent;
|
|
110
|
+
getParentKeysEquivalence(): {};
|
|
111
|
+
getDataService(): BaseService<ServiceResponse>;
|
|
108
112
|
protected updateStateStorage(): void;
|
|
109
113
|
protected setData(data: any, sqlTypes?: any, replace?: boolean): void;
|
|
110
114
|
protected registerLocalStorageServiceRouteChange(): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, EventEmitter } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ElementRef, EventEmitter, Injector } from '@angular/core';
|
|
2
2
|
import { UntypedFormControl } from '@angular/forms';
|
|
3
3
|
import { MatCheckboxChange } from '@angular/material/checkbox';
|
|
4
4
|
import { MatDialogRef } from '@angular/material/dialog';
|
|
@@ -14,8 +14,10 @@ import { OFilterColumn } from '../../header/table-columns-filter/columns/o-table
|
|
|
14
14
|
import type { OColumn } from '../../../column/o-column.class';
|
|
15
15
|
import { OTableFilterByColumnService } from './o-table-filter-by-column.service';
|
|
16
16
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
17
|
+
import { BaseService } from '../../../../../services/base-service.class';
|
|
17
18
|
import * as i0 from "@angular/core";
|
|
18
19
|
export declare class OTableFilterByColumnDataDialogComponent implements AfterViewInit {
|
|
20
|
+
protected injector: Injector;
|
|
19
21
|
dialogRef: MatDialogRef<OTableFilterByColumnDataDialogComponent>;
|
|
20
22
|
private readonly filterService;
|
|
21
23
|
acceptAction: TableFilterByColumnDialogResult;
|
|
@@ -37,6 +39,7 @@ export declare class OTableFilterByColumnDataDialogComponent implements AfterVie
|
|
|
37
39
|
protected tableData: any[];
|
|
38
40
|
private readonly listDataSubject;
|
|
39
41
|
protected _listData: Observable<TableFilterByColumnData[]>;
|
|
42
|
+
protected service: BaseService<ServiceResponse>;
|
|
40
43
|
filter: ElementRef;
|
|
41
44
|
filterValueList: MatSelectionList;
|
|
42
45
|
activeSortDirection: 'asc' | 'desc' | '';
|
|
@@ -47,11 +50,16 @@ export declare class OTableFilterByColumnDataDialogComponent implements AfterVie
|
|
|
47
50
|
queryMethodName: string;
|
|
48
51
|
previousFilter: OColumnValueFilter;
|
|
49
52
|
selection: SelectionModel<TableFilterByColumnData>;
|
|
50
|
-
|
|
53
|
+
visibleColumnsArray: string[];
|
|
54
|
+
separator: string;
|
|
55
|
+
filterColumnDefinition: OFilterColumn;
|
|
56
|
+
constructor(injector: Injector, dialogRef: MatDialogRef<OTableFilterByColumnDataDialogComponent>, filterService: OTableFilterByColumnService, data: {
|
|
51
57
|
column: OColumn;
|
|
52
58
|
table: OTableComponent;
|
|
53
59
|
});
|
|
60
|
+
private initFromData;
|
|
54
61
|
private initialize;
|
|
62
|
+
private createEmptyFilter;
|
|
55
63
|
private parseDataAndInitializeDataList;
|
|
56
64
|
ngAfterViewInit(): void;
|
|
57
65
|
get listData(): Observable<TableFilterByColumnData[]>;
|
|
@@ -80,7 +88,6 @@ export declare class OTableFilterByColumnDataDialogComponent implements AfterVie
|
|
|
80
88
|
onChangeDataSource(event: MatRadioChange): void;
|
|
81
89
|
private getData;
|
|
82
90
|
isSelected(item: TableFilterByColumnData): boolean;
|
|
83
|
-
queryByFilterColumn(attr: string): Observable<ServiceResponse> | Observable<any>;
|
|
84
91
|
compareOptions(): ((o1: TableFilterByColumnData, o2: TableFilterByColumnData) => boolean) | undefined;
|
|
85
92
|
static ɵfac: i0.ɵɵFactoryDeclaration<OTableFilterByColumnDataDialogComponent, never>;
|
|
86
93
|
static ɵcmp: i0.ɵɵComponentDeclaration<OTableFilterByColumnDataDialogComponent, "o-table-filter-by-column-data-dialog", never, {}, {}, never, never, false, never>;
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
1
2
|
import { OColumnValueFilter } from '../../../../../types/table/o-column-value-filter.type';
|
|
2
3
|
import { TableFilterByColumnData } from '../../../../../types/table/o-table-filter-by-column-data.type';
|
|
3
4
|
import { OColumn } from '../../../column/o-column.class';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
6
|
+
import { OTableBase } from '../../../o-table-base.class';
|
|
7
|
+
import { OFilterColumn } from '../../header/table-columns-filter/columns/o-table-columns-filter-column.component';
|
|
4
8
|
import * as i0 from "@angular/core";
|
|
5
9
|
export declare class OTableFilterByColumnService {
|
|
6
10
|
constructor();
|
|
7
|
-
getColumnDataUsingRenderer(column: OColumn, tableData: any[]): any[];
|
|
8
|
-
parseListData(filter: OColumnValueFilter, column: OColumn, tableData: any[], isPageable: boolean,
|
|
9
|
-
applySelectedValuesToFilter(column: OColumn, tableData: any[], filter: OColumnValueFilter, selectedValues: TableFilterByColumnData[],
|
|
11
|
+
getColumnDataUsingRenderer(column: OColumn, tableData: any[], visibleColumns: string[], separator: string): any[];
|
|
12
|
+
parseListData(filter: OColumnValueFilter, column: OColumn, tableData: any[], isPageable: boolean, filterColumnDefinition: OFilterColumn): TableFilterByColumnData[];
|
|
13
|
+
applySelectedValuesToFilter(column: OColumn, tableData: any[], filter: OColumnValueFilter, selectedValues: TableFilterByColumnData[], filterByColumnDefinition: OFilterColumn, isPageable: boolean, getComponentFilterFn: () => any): void;
|
|
14
|
+
getDataForColumnFilter(injector: Injector, table: OTableBase, column: OColumn, filterColumnDefinition: OFilterColumn): Observable<any[]>;
|
|
15
|
+
configureService(injector: Injector, filterColumnDefinition: OFilterColumn, tableEntity: OTableBase): any;
|
|
16
|
+
initializeColumnFilterData(filter: OColumnValueFilter, column: OColumn, tableData: any[], isPageable: boolean, filterColumnDefinition: OFilterColumn): TableFilterByColumnData[];
|
|
10
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<OTableFilterByColumnService, never>;
|
|
11
18
|
static ɵprov: i0.ɵɵInjectableDeclaration<OTableFilterByColumnService>;
|
|
12
19
|
}
|
|
@@ -12,5 +12,5 @@ import { OTableOptionComponent } from './table-option/o-table-option.component';
|
|
|
12
12
|
import { OTableQuickfilterComponent } from './table-quickfilter/o-table-quickfilter.component';
|
|
13
13
|
import { OTableHeaderComponent } from './table-header/o-table-header.component';
|
|
14
14
|
import { OTableColumnSelectAllDirective } from './table-column-select-all/o-table-column-select-all.directive';
|
|
15
|
-
export declare const O_TABLE_HEADER_COMPONENTS: (typeof OTableColumnsFilterColumnComponent | typeof OTableColumnsGroupingColumnComponent | typeof OTableButtonComponent | typeof OTableButtonsComponent | typeof OTableColumnResizerComponent | typeof OTableColumnsFilterComponent | typeof OTableInsertableRowComponent | typeof
|
|
16
|
-
export declare const O_TABLE_HEADER_COMPONENTS_EXPORTED: (typeof OTableColumnsFilterColumnComponent | typeof OTableColumnsGroupingColumnComponent | typeof OTableButtonComponent | typeof OTableButtonsComponent | typeof OTableColumnResizerComponent | typeof OTableColumnsFilterComponent | typeof OTableInsertableRowComponent | typeof
|
|
15
|
+
export declare const O_TABLE_HEADER_COMPONENTS: (typeof OTableColumnsFilterColumnComponent | typeof OTableColumnsGroupingColumnComponent | typeof OTableOptionComponent | typeof OTableButtonComponent | typeof OTableButtonsComponent | typeof OTableColumnResizerComponent | typeof OTableColumnsFilterComponent | typeof OTableInsertableRowComponent | typeof OTableMenuComponent | typeof OTableQuickfilterComponent | typeof OTableHeaderColumnFilterIconComponent | typeof OTableHeaderComponent | typeof OTableColumnsGroupingComponent | typeof OTableColumnSelectAllDirective)[];
|
|
16
|
+
export declare const O_TABLE_HEADER_COMPONENTS_EXPORTED: (typeof OTableColumnsFilterColumnComponent | typeof OTableColumnsGroupingColumnComponent | typeof OTableOptionComponent | typeof OTableButtonComponent | typeof OTableButtonsComponent | typeof OTableColumnResizerComponent | typeof OTableColumnsFilterComponent | typeof OTableInsertableRowComponent | typeof OTableMenuComponent | typeof OTableQuickfilterComponent | typeof OTableHeaderComponent | typeof OTableColumnsGroupingComponent | typeof OTableColumnSelectAllDirective)[];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
3
|
export type OFilterColumn = {
|
|
3
4
|
attr: string;
|
|
@@ -5,14 +6,30 @@ export type OFilterColumn = {
|
|
|
5
6
|
startView: 'month' | 'year' | 'multi-year' | '';
|
|
6
7
|
queryMethod?: string;
|
|
7
8
|
filterValuesInData?: 'current-page' | 'all-data';
|
|
9
|
+
service?: string;
|
|
10
|
+
entity?: string;
|
|
11
|
+
serviceType?: string;
|
|
12
|
+
separator?: string;
|
|
13
|
+
visibleColumns?: string[];
|
|
14
|
+
filterLocked?: boolean;
|
|
15
|
+
filterLockedMessage?: string;
|
|
8
16
|
};
|
|
9
17
|
export declare const DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER_COLUMN: string[];
|
|
10
|
-
export declare class OTableColumnsFilterColumnComponent {
|
|
18
|
+
export declare class OTableColumnsFilterColumnComponent implements OnInit {
|
|
11
19
|
attr: string;
|
|
12
20
|
sort: 'asc' | 'desc' | '';
|
|
13
21
|
startView: 'month' | 'year' | 'multi-year' | '';
|
|
14
22
|
queryMethod: string;
|
|
15
23
|
filterValuesInData: 'current-page' | 'all-data';
|
|
24
|
+
filterLocked: boolean;
|
|
25
|
+
filterLockedMessage: string;
|
|
26
|
+
service: string;
|
|
27
|
+
serviceType: string;
|
|
28
|
+
entity: string;
|
|
29
|
+
visibleColsArray: string[];
|
|
30
|
+
visibleColumns: string;
|
|
31
|
+
separator: string;
|
|
32
|
+
ngOnInit(): void;
|
|
16
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<OTableColumnsFilterColumnComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<OTableColumnsFilterColumnComponent, "o-table-columns-filter-column", never, { "attr": "attr"; "sort": "sort"; "startView": "start-view"; "queryMethod": "query-method"; "filterValuesInData": "filter-values-in-data"; }, {}, never, never, false, never>;
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OTableColumnsFilterColumnComponent, "o-table-columns-filter-column", never, { "attr": "attr"; "sort": "sort"; "startView": "start-view"; "queryMethod": "query-method"; "filterValuesInData": "filter-values-in-data"; "filterLocked": "filter-locked"; "filterLockedMessage": "filter-locked-message"; "service": "service"; "serviceType": "service-type"; "entity": "entity"; "visibleColumns": "visible-columns"; "separator": "separator"; }, {}, never, never, false, never>;
|
|
18
35
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { AfterContentInit, Injector, OnInit, QueryList } from '@angular/core';
|
|
2
2
|
import type { OColumn } from '../../../column/o-column.class';
|
|
3
|
-
import { OTableComponent } from '../../../o-table.component';
|
|
4
3
|
import { OFilterColumn, OTableColumnsFilterColumnComponent } from './columns/o-table-columns-filter-column.component';
|
|
4
|
+
import { OTableBase } from '../../../o-table-base.class';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare const DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER: string[];
|
|
7
7
|
export declare const DEFAULT_OUTPUTS_O_TABLE_COLUMN_FILTER: any[];
|
|
8
8
|
export declare class OTableColumnsFilterComponent implements OnInit, AfterContentInit {
|
|
9
9
|
protected injector: Injector;
|
|
10
|
-
|
|
10
|
+
table: OTableBase;
|
|
11
11
|
static DEFAULT_COMPARISON_TYPE: string;
|
|
12
12
|
static MODEL_COMPARISON_TYPE: string;
|
|
13
13
|
static OTableColumnsFilterModes: string[];
|
|
@@ -15,24 +15,25 @@ export declare class OTableColumnsFilterComponent implements OnInit, AfterConten
|
|
|
15
15
|
protected _mode: string;
|
|
16
16
|
preloadValues: boolean;
|
|
17
17
|
filterValuesInData: 'current-page' | 'all-data';
|
|
18
|
-
get mode(): string;
|
|
19
|
-
set mode(val: string);
|
|
20
18
|
protected _columnsArray: Array<OFilterColumn>;
|
|
21
19
|
protected columnsComparisonProperty: object;
|
|
22
20
|
filterColumns: QueryList<OTableColumnsFilterColumnComponent>;
|
|
23
|
-
constructor(injector: Injector, table:
|
|
21
|
+
constructor(injector: Injector, table: OTableBase);
|
|
24
22
|
ngOnInit(): void;
|
|
25
|
-
private getFilterValuesInDataByDefault;
|
|
26
23
|
ngAfterContentInit(): void;
|
|
24
|
+
get mode(): string;
|
|
25
|
+
set mode(val: string);
|
|
26
|
+
set columns(arg: string);
|
|
27
|
+
set columnsArray(arg: OFilterColumn[]);
|
|
28
|
+
get columnsArray(): OFilterColumn[];
|
|
29
|
+
getFilterColumnByAttr(attr: string): OTableColumnsFilterColumnComponent;
|
|
30
|
+
private getFilterValuesInDataByDefault;
|
|
27
31
|
isColumnFilterable(attr: string): boolean;
|
|
28
32
|
getSortValueOfFilterColumn(attr: string): string;
|
|
29
33
|
getStartViewValueOfFilterColumn(attr: string): string;
|
|
30
34
|
getQueryMethodOfFilterColumn(attr: string): string;
|
|
31
35
|
getFilterValuesInData(attr: string): 'current-page' | 'all-data';
|
|
32
36
|
getColumnComparisonValue(column: OColumn, val: any): any;
|
|
33
|
-
set columns(arg: string);
|
|
34
|
-
set columnsArray(arg: OFilterColumn[]);
|
|
35
|
-
get columnsArray(): OFilterColumn[];
|
|
36
37
|
parseColumns(columns: string): OFilterColumn[];
|
|
37
38
|
parseFilterColumns(columns: QueryList<OTableColumnsFilterColumnComponent>): OFilterColumn[];
|
|
38
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<OTableColumnsFilterComponent, never>;
|
|
@@ -3,18 +3,24 @@ import { BehaviorSubject } from 'rxjs';
|
|
|
3
3
|
import { OColumnValueFilter } from '../../../../../types/table/o-column-value-filter.type';
|
|
4
4
|
import type { OColumn } from '../../../column';
|
|
5
5
|
import { OTableBase } from '../../../o-table-base.class';
|
|
6
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
7
|
+
import { DialogService } from '../../../../../services/dialog.service';
|
|
8
|
+
import { OTranslateService } from '../../../../../services/translate/o-translate.service';
|
|
6
9
|
import * as i0 from "@angular/core";
|
|
7
10
|
export declare const DEFAULT_INPUTS_O_TABLE_COLUMN_FILTER_ICON: string[];
|
|
8
11
|
export declare type STATEVIEW = 'HINT' | 'ACTIVE' | 'INACTIVE';
|
|
9
12
|
export declare class OTableHeaderColumnFilterIconComponent implements OnInit, OnDestroy {
|
|
10
13
|
table: OTableBase;
|
|
14
|
+
protected dialog: MatDialog;
|
|
15
|
+
protected dialogService: DialogService;
|
|
16
|
+
protected translateService: OTranslateService;
|
|
11
17
|
column: OColumn;
|
|
12
18
|
isColumnFilterActive: BehaviorSubject<boolean>;
|
|
13
19
|
filterIconHintVisible: BehaviorSubject<boolean>;
|
|
14
20
|
indicatorNumber: BehaviorSubject<string>;
|
|
15
21
|
private subscription;
|
|
16
22
|
filterIconStateView: BehaviorSubject<STATEVIEW>;
|
|
17
|
-
constructor(table: OTableBase);
|
|
23
|
+
constructor(table: OTableBase, dialog: MatDialog, dialogService: DialogService, translateService: OTranslateService);
|
|
18
24
|
ngOnInit(): void;
|
|
19
25
|
updateStateColumnFilter(): void;
|
|
20
26
|
protected getColumnValueFilterByAttr(): OColumnValueFilter;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
2
|
-
import { ChangeDetectorRef, EventEmitter
|
|
2
|
+
import { ChangeDetectorRef, EventEmitter } from '@angular/core';
|
|
3
3
|
import { MatCheckboxChange } from '@angular/material/checkbox';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
|
|
@@ -18,16 +18,22 @@ import type { OTableHeaderComponent } from "./extensions/header/table-header/o-t
|
|
|
18
18
|
import type { MatPaginator } from "@angular/material/paginator";
|
|
19
19
|
import type { OTableColumnSelectAllDirective } from "./extensions/header/table-column-select-all/o-table-column-select-all.directive";
|
|
20
20
|
import type { OFilterBuilderComponent } from "../filter-builder/o-filter-builder.component";
|
|
21
|
+
import { OTableColumnsFilterComponent } from './extensions/header/table-columns-filter/o-table-columns-filter.component';
|
|
22
|
+
import { OFilterColumn } from './extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component';
|
|
23
|
+
import { BaseService } from '../../services/base-service.class';
|
|
24
|
+
import { ServiceResponse } from '../../interfaces/service-response.interface';
|
|
21
25
|
export declare abstract class OTableBase {
|
|
22
26
|
abstract getMenuPermissions(): OTableMenuPermissions;
|
|
23
27
|
abstract rowHeightObservable: Observable<string>;
|
|
24
28
|
abstract initializeCheckboxColumn(): any;
|
|
29
|
+
oTableColumnsFilterComponent: OTableColumnsFilterComponent;
|
|
25
30
|
visibleExportDialogButtons: string;
|
|
26
31
|
service: string;
|
|
27
32
|
serviceType: string;
|
|
28
|
-
exportServiceType:
|
|
33
|
+
exportServiceType: string;
|
|
29
34
|
exportOptsTemplate: any;
|
|
30
35
|
visibleColArray: string[];
|
|
36
|
+
queryMethod: string;
|
|
31
37
|
showNotificationOfReadOnly: boolean;
|
|
32
38
|
abstract reinitializeSortColumns(sortColumns?: SQLOrder[]): any;
|
|
33
39
|
abstract setGroupColumns(value: any[]): any;
|
|
@@ -121,6 +127,9 @@ export declare abstract class OTableBase {
|
|
|
121
127
|
abstract setSelectedByKeys(keyValues: Array<any>): void;
|
|
122
128
|
abstract setSelectedByMultipleKeys(keyValues: Array<Object>): void;
|
|
123
129
|
abstract setSelectedByRowIds(rowIds: Array<number>): void;
|
|
124
|
-
abstract
|
|
130
|
+
abstract getFilterColumnByAttr(attr: string): OFilterColumn;
|
|
125
131
|
abstract getValue(): any[];
|
|
132
|
+
abstract setOTableColumnsFilter(tableColumnsFilter: OTableColumnsFilterComponent): any;
|
|
133
|
+
abstract getAllValues(): any[];
|
|
134
|
+
abstract getDataService(): BaseService<ServiceResponse>;
|
|
126
135
|
}
|
|
@@ -55,6 +55,7 @@ import type { OTableQuickfilter } from '../../interfaces/o-table-quickfilter.int
|
|
|
55
55
|
import type { ServiceResponse } from '../../interfaces/service-response.interface';
|
|
56
56
|
import { OQueryParams } from '../../types/query-params.type';
|
|
57
57
|
import { MatRow, MatTable } from '@angular/material/table';
|
|
58
|
+
import { PaginationData } from '../../interfaces/pagination-data.interface';
|
|
58
59
|
import * as i0 from "@angular/core";
|
|
59
60
|
export declare const DEFAULT_INPUTS_O_TABLE: string[];
|
|
60
61
|
export declare const DEFAULT_OUTPUTS_O_TABLE: string[];
|
|
@@ -272,6 +273,7 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
|
|
|
272
273
|
protected registerDblClickListener(): void;
|
|
273
274
|
protected initializeDao(): void;
|
|
274
275
|
reinitialize(options: OTableInitializationOptions): void;
|
|
276
|
+
reinitializePaginationInfo(paginationData: PaginationData): void;
|
|
275
277
|
protected initTableAfterViewInit(): void;
|
|
276
278
|
parseSearcheableColumns(): void;
|
|
277
279
|
destroy(): void;
|
|
@@ -317,7 +319,7 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
|
|
|
317
319
|
getComponentFilter(existingFilter?: any): any;
|
|
318
320
|
protected getQuickFilterExpression(): Expression;
|
|
319
321
|
getColumnFiltersExpression(): Expression;
|
|
320
|
-
updatePaginationInfo(queryRes:
|
|
322
|
+
updatePaginationInfo(queryRes: ServiceResponse): void;
|
|
321
323
|
initViewPort(data: any[]): void;
|
|
322
324
|
protected setData(data: any, sqlTypes: any): void;
|
|
323
325
|
protected canSetStaticData(staticData: any): boolean;
|
|
@@ -488,7 +490,7 @@ export declare class OTableComponent extends AbstractOServiceComponent<OTableCom
|
|
|
488
490
|
isDisableCheckbox(item: any): boolean;
|
|
489
491
|
getService(): import("ontimize-web-ngx").BaseService<ServiceResponse>;
|
|
490
492
|
getSnackService(): SnackBarService;
|
|
491
|
-
|
|
493
|
+
getFilterColumnByAttr(attr: string): OFilterColumn;
|
|
492
494
|
updateColumnTitles(columns: {
|
|
493
495
|
attr: string;
|
|
494
496
|
title: string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { BehaviorSubject } from 'rxjs';
|
|
1
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
2
2
|
import { OTreeFlatNode } from '../../types/tree-flat-node.type';
|
|
3
|
+
import { ServiceResponse } from '../../interfaces/service-response.interface';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class OTreeDao {
|
|
5
6
|
protected _isLoadingResults: boolean;
|
|
@@ -9,10 +10,11 @@ export declare class OTreeDao {
|
|
|
9
10
|
get data(): any[];
|
|
10
11
|
rootLevelNodes: OTreeFlatNode[];
|
|
11
12
|
flatNodeMap: Map<OTreeFlatNode, any>;
|
|
12
|
-
setDataArray(data: Array<any>):
|
|
13
|
+
setDataArray(data: Array<any>): Observable<any[]>;
|
|
13
14
|
get isLoadingResults(): boolean;
|
|
14
15
|
set isLoadingResults(val: boolean);
|
|
15
16
|
protected cleanTimer(): void;
|
|
17
|
+
queryNodeChildren(flatNode: OTreeFlatNode, recursive: boolean): Observable<ServiceResponse>;
|
|
16
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<OTreeDao, never>;
|
|
17
19
|
static ɵprov: i0.ɵɵInjectableDeclaration<OTreeDao>;
|
|
18
20
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
2
2
|
import { FlatTreeControl } from '@angular/cdk/tree';
|
|
3
3
|
import { AfterViewInit, ElementRef, EventEmitter, Injector, OnDestroy, OnInit, TemplateRef } from '@angular/core';
|
|
4
|
-
import { Subscription } from 'rxjs';
|
|
4
|
+
import { Observable, Subscription } from 'rxjs';
|
|
5
|
+
import { ServiceResponse } from '../../interfaces/service-response.interface';
|
|
5
6
|
import { OTreeComponentStateService } from '../../services/state/o-tree-component-state.service';
|
|
6
|
-
import { OPermissions } from '../../types';
|
|
7
7
|
import { OTreePermissions } from '../../types/o-tree-permissions.type';
|
|
8
8
|
import { OTreeFlatNode } from '../../types/tree-flat-node.type';
|
|
9
9
|
import { OFormComponent } from '../form/o-form.component';
|
|
@@ -11,6 +11,12 @@ import { AbstractOServiceComponent } from '../o-service-component.class';
|
|
|
11
11
|
import { OTreeDao } from './o-tree-dao.service';
|
|
12
12
|
import { OTreeDataSource } from './o-tree.datasource';
|
|
13
13
|
import { OTreeNodeComponent } from './tree-node/tree-node.component';
|
|
14
|
+
import { OPermissions } from '../../types/o-permissions.type';
|
|
15
|
+
import { SQLOrder } from '../../types/sql-order.type';
|
|
16
|
+
import { OQueryDataArgs } from '../../types/query-data-args.type';
|
|
17
|
+
import { MatPaginator } from '@angular/material/paginator';
|
|
18
|
+
import { OTreeComponentStateClass } from '../../services/state/o-tree-component-state.class';
|
|
19
|
+
import { OQueryParams } from '../../types/query-params.type';
|
|
14
20
|
import * as i0 from "@angular/core";
|
|
15
21
|
export declare const DEFAULT_INPUTS_O_TREE: string[];
|
|
16
22
|
export declare const DEFAULT_OUTPUTS_O_TREE: string[];
|
|
@@ -24,6 +30,9 @@ export declare class OTreeComponent extends AbstractOServiceComponent<OTreeCompo
|
|
|
24
30
|
getComponentFilter(existingFilter?: any): any;
|
|
25
31
|
hasChild: (_: number, _nodeData: OTreeFlatNode) => boolean;
|
|
26
32
|
hasNoContent: (_: number, _nodeData: OTreeFlatNode) => boolean;
|
|
33
|
+
hasLoadMore: (node: OTreeFlatNode) => boolean;
|
|
34
|
+
onLoadMore(event: Event, node: OTreeFlatNode): void;
|
|
35
|
+
isLastChildAndHasMore(node: OTreeFlatNode): boolean;
|
|
27
36
|
dataSource: OTreeDataSource;
|
|
28
37
|
refreshButton: boolean;
|
|
29
38
|
deleteButton: boolean;
|
|
@@ -54,6 +63,7 @@ export declare class OTreeComponent extends AbstractOServiceComponent<OTreeCompo
|
|
|
54
63
|
parentNodeTemplate: TemplateRef<any>;
|
|
55
64
|
treeFlattener: any;
|
|
56
65
|
treeControl: FlatTreeControl<OTreeFlatNode, OTreeFlatNode>;
|
|
66
|
+
matpaginator: MatPaginator;
|
|
57
67
|
set nodeTemplate(value: TemplateRef<any>);
|
|
58
68
|
treeNode: OTreeNodeComponent;
|
|
59
69
|
protected permissions: OTreePermissions;
|
|
@@ -62,12 +72,14 @@ export declare class OTreeComponent extends AbstractOServiceComponent<OTreeCompo
|
|
|
62
72
|
enabledDeleteButton: boolean;
|
|
63
73
|
protected subscription: Subscription;
|
|
64
74
|
route: string;
|
|
75
|
+
sortColumnArray: SQLOrder[];
|
|
65
76
|
get showTreeMenuButton(): boolean;
|
|
66
77
|
constructor(injector: Injector, elRef: ElementRef, form: OFormComponent);
|
|
67
78
|
ngOnInit(): void;
|
|
68
79
|
initialize(): void;
|
|
69
80
|
protected initializeDao(): void;
|
|
70
81
|
initializeParams(): void;
|
|
82
|
+
get state(): OTreeComponentStateClass;
|
|
71
83
|
ngAfterViewInit(): void;
|
|
72
84
|
ngOnDestroy(): void;
|
|
73
85
|
registerTreeNode(oTreeNode: OTreeNodeComponent): void;
|
|
@@ -103,6 +115,8 @@ export declare class OTreeComponent extends AbstractOServiceComponent<OTreeCompo
|
|
|
103
115
|
onItemDetailClick(node: OTreeFlatNode): void;
|
|
104
116
|
get selection(): SelectionModel<any>;
|
|
105
117
|
getSelectedItems(): any[];
|
|
118
|
+
parseSortColumn(): void;
|
|
119
|
+
getQueryArguments(filter: object, ovrrArgs?: OQueryDataArgs): OQueryParams;
|
|
106
120
|
private shouldBeRoot;
|
|
107
121
|
protected createTreeNode(flatNode: OTreeFlatNode): any;
|
|
108
122
|
protected getFlatNodeIdentifier(flatNode: OTreeFlatNode): string;
|
|
@@ -111,6 +125,11 @@ export declare class OTreeComponent extends AbstractOServiceComponent<OTreeCompo
|
|
|
111
125
|
private ensureNodeInMap;
|
|
112
126
|
private getSelectedNodeKeys;
|
|
113
127
|
getSelectedFlatNodes(): OTreeFlatNode[];
|
|
128
|
+
getParentNode(node: any): OTreeFlatNode;
|
|
129
|
+
reloadData(clearSelectedItems?: boolean): void;
|
|
130
|
+
getLogicalLevel(node: OTreeFlatNode): number;
|
|
131
|
+
hasFakeRoot(): boolean;
|
|
132
|
+
childQueryData(flatNode: OTreeFlatNode): Observable<ServiceResponse> | Observable<any>;
|
|
114
133
|
static ɵfac: i0.ɵɵFactoryDeclaration<OTreeComponent, [null, null, { optional: true; }]>;
|
|
115
134
|
static ɵcmp: i0.ɵɵComponentDeclaration<OTreeComponent, "o-tree", never, { "oattr": "attr"; "service": "service"; "entity": "entity"; "columns": "columns"; "keys": "keys"; "parentKeys": "parent-keys"; "queryMethod": "query-method"; "insertButton": "insert-button"; "refreshButton": "refresh-button"; "deleteButton": "delete-button"; "visibleColumns": "visible-columns"; "selectAllCheckbox": "select-all-checkbox"; "separator": "separator"; "parentColumn": "parent-column"; "sortColumn": "sort-column"; "selectAllCheckboxVisible": "select-all-checkbox-visible"; "filterCaseSensitive": "filter-case-sensitive"; "quickFilter": "quick-filter"; "quickFilterPlaceholder": "quick-filter-placeholder"; "quickFilterColumns": "quick-filter-columns"; "detailMode": "detail-mode"; "detailFormRoute": "detail-form-route"; "showButtonsText": "show-buttons-text"; "rootTitle": "root-title"; "recursive": "recursive"; "route": "route"; }, { "onNodeSelected": "onNodeSelected"; "onNodeExpanded": "onNodeExpanded"; "onNodeCollapsed": "onNodeCollapsed"; "onLoadNextLevel": "onLoadNextLevel"; "onDataLoaded": "onDataLoaded"; "onNodeClick": "onNodeClick"; }, ["leafNodeTemplate", "parentNodeTemplate", "nodeTemplate", "treeNode"], ["[o-tree-button]"], false, never>;
|
|
116
135
|
}
|
|
@@ -5,6 +5,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
|
|
|
5
5
|
import { OTreeDao } from './o-tree-dao.service';
|
|
6
6
|
import { OTreeComponent } from './o-tree.component';
|
|
7
7
|
import { OTreeFlatNode } from '../../types/tree-flat-node.type';
|
|
8
|
+
import { MatPaginator } from '@angular/material/paginator';
|
|
8
9
|
export declare class OTreeDataSource implements DataSource<OTreeFlatNode> {
|
|
9
10
|
private oTree;
|
|
10
11
|
private _treeControl;
|
|
@@ -12,6 +13,8 @@ export declare class OTreeDataSource implements DataSource<OTreeFlatNode> {
|
|
|
12
13
|
dataChange: BehaviorSubject<OTreeFlatNode[]>;
|
|
13
14
|
translateService: any;
|
|
14
15
|
protected _database: OTreeDao;
|
|
16
|
+
resultsLength: number;
|
|
17
|
+
protected _paginator: MatPaginator;
|
|
15
18
|
get data(): OTreeFlatNode[];
|
|
16
19
|
set data(value: OTreeFlatNode[]);
|
|
17
20
|
constructor(oTree: OTreeComponent, _treeControl: FlatTreeControl<OTreeFlatNode>, injector: Injector);
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { AfterViewInit, ElementRef, Injector, OnInit } from '@angular/core';
|
|
2
|
-
import { Observable } from 'rxjs/internal/Observable';
|
|
3
|
-
import { ServiceResponse } from '../../../interfaces/service-response.interface';
|
|
4
2
|
import { OFormComponent } from '../../form';
|
|
5
3
|
import { OTreeComponent } from '../o-tree.component';
|
|
6
|
-
import { OTreeFlatNode } from '../../../types/tree-flat-node.type';
|
|
7
4
|
import * as i0 from "@angular/core";
|
|
8
5
|
export declare class OTreeNodeComponent extends OTreeComponent implements OnInit, AfterViewInit {
|
|
9
6
|
injector: Injector;
|
|
@@ -12,7 +9,6 @@ export declare class OTreeNodeComponent extends OTreeComponent implements OnInit
|
|
|
12
9
|
constructor(injector: Injector, elementRef: ElementRef, form: OFormComponent, parentComponent: OTreeComponent, parentNode: OTreeNodeComponent);
|
|
13
10
|
ngOnInit(): void;
|
|
14
11
|
ngAfterViewInit(): void;
|
|
15
|
-
childQueryData(node: OTreeFlatNode): Observable<ServiceResponse> | Observable<any>;
|
|
16
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<OTreeNodeComponent, [null, null, { optional: true; }, { optional: true; }, { optional: true; skipSelf: true; }]>;
|
|
17
13
|
static ɵcmp: i0.ɵɵComponentDeclaration<OTreeNodeComponent, "o-tree-node", never, {}, {}, never, never, false, never>;
|
|
18
14
|
}
|
package/lib/i18n/i18n.d.ts
CHANGED
|
@@ -130,6 +130,8 @@ export declare const MAP: {
|
|
|
130
130
|
'TABLE.FILTER_BY_COLUMN.LABEL_DATA': string;
|
|
131
131
|
'TABLE.FILTER_BY_COLUMN.CURRENT_PAGE': string;
|
|
132
132
|
'TABLE.FILTER_BY_COLUMN.ALL_PAGE': string;
|
|
133
|
+
'TABLE.FILTER_BY_COLUMN.DEFAULT_LOCKED_MESSAGE': string;
|
|
134
|
+
'TABLE.FILTER_LOCKED': string;
|
|
133
135
|
'TABLE.FILTER': string;
|
|
134
136
|
'TABLE.FILTER.CASE_SENSITIVE': string;
|
|
135
137
|
'TABLE.EMPTY': string;
|
|
@@ -309,6 +311,7 @@ export declare const MAP: {
|
|
|
309
311
|
'EXPORT.DIALOG.EXPORT_BUTTON': string;
|
|
310
312
|
'EXPORT.DIALOG.ADVANCED_OPTIONS': string;
|
|
311
313
|
'EXPORT.DIALOG.FILE_NAME.PLACEHOLDER': string;
|
|
314
|
+
'O_TREE.LOAD_MORE': string;
|
|
312
315
|
};
|
|
313
316
|
es: {
|
|
314
317
|
LANGUAGE: string;
|
|
@@ -440,6 +443,8 @@ export declare const MAP: {
|
|
|
440
443
|
'TABLE.FILTER_BY_COLUMN.LABEL_DATA': string;
|
|
441
444
|
'TABLE.FILTER_BY_COLUMN.CURRENT_PAGE': string;
|
|
442
445
|
'TABLE.FILTER_BY_COLUMN.ALL_PAGE': string;
|
|
446
|
+
'TABLE.FILTER_BY_COLUMN.DEFAULT_LOCKED_MESSAGE': string;
|
|
447
|
+
'TABLE.FILTER_LOCKED': string;
|
|
443
448
|
'TABLE.FILTER': string;
|
|
444
449
|
'TABLE.FILTER.CASE_SENSITIVE': string;
|
|
445
450
|
'TABLE.EMPTY': string;
|
|
@@ -611,6 +616,7 @@ export declare const MAP: {
|
|
|
611
616
|
'EXPORT.DIALOG.FILE_NAME.PLACEHOLDER': string;
|
|
612
617
|
'DATERANGE.PLACEHOLDER_STARTDATE': string;
|
|
613
618
|
'DATERANGE.PLACEHOLDER_ENDDATE': string;
|
|
619
|
+
'O_TREE.LOAD_MORE': string;
|
|
614
620
|
};
|
|
615
621
|
pt: {
|
|
616
622
|
LANGUAGE: string;
|
|
@@ -741,6 +747,8 @@ export declare const MAP: {
|
|
|
741
747
|
'TABLE.FILTER_BY_COLUMN.LABEL_DATA': string;
|
|
742
748
|
'TABLE.FILTER_BY_COLUMN.CURRENT_PAGE': string;
|
|
743
749
|
'TABLE.FILTER_BY_COLUMN.ALL_PAGE': string;
|
|
750
|
+
'TABLE.FILTER_BY_COLUMN.DEFAULT_LOCKED_MESSAGE': string;
|
|
751
|
+
'TABLE.FILTER_LOCKED': string;
|
|
744
752
|
'TABLE.FILTER': string;
|
|
745
753
|
'TABLE.FILTER.CASE_SENSITIVE': string;
|
|
746
754
|
'TABLE.EMPTY': string;
|
|
@@ -892,5 +900,6 @@ export declare const MAP: {
|
|
|
892
900
|
'REPORT.COLUMN.FALSEVALUE': string;
|
|
893
901
|
'DATERANGE.PLACEHOLDER_STARTDATE': string;
|
|
894
902
|
'DATERANGE.PLACEHOLDER_ENDDATE': string;
|
|
903
|
+
'O_TREE.LOAD_MORE': string;
|
|
895
904
|
};
|
|
896
905
|
};
|
|
@@ -8,3 +8,5 @@ export * from './o-list-component-state.class';
|
|
|
8
8
|
export * from './o-list-component-state.service';
|
|
9
9
|
export * from './o-table-component-state.service';
|
|
10
10
|
export * from './o-table-component-state.class';
|
|
11
|
+
export * from './o-tree-component-state.class';
|
|
12
|
+
export * from './o-tree-component-state.service';
|
|
@@ -6,8 +6,11 @@ export declare class OTreeComponentStateService extends AbstractComponentStateSe
|
|
|
6
6
|
initialize(component: OTreeComponent): void;
|
|
7
7
|
initializeState(state: OTreeComponentStateClass): void;
|
|
8
8
|
getDataToStore(): any;
|
|
9
|
-
protected
|
|
9
|
+
protected getTreePropertiesToStore(properties: string[]): any;
|
|
10
10
|
protected getTreePropertyToStore(property: string): any;
|
|
11
|
+
getQuickFilterState(): any;
|
|
12
|
+
protected getPageState(): any;
|
|
13
|
+
protected getSelectionState(): any;
|
|
11
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<OTreeComponentStateService, never>;
|
|
12
15
|
static ɵprov: i0.ɵɵInjectableDeclaration<OTreeComponentStateService>;
|
|
13
16
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ServiceResponse } from "../../interfaces";
|
|
2
|
+
import { PaginationData } from "../../interfaces/pagination-data.interface";
|
|
1
3
|
export type OTableInitializationOptions = {
|
|
2
4
|
entity?: string;
|
|
3
5
|
service?: string;
|
|
@@ -8,4 +10,6 @@ export type OTableInitializationOptions = {
|
|
|
8
10
|
sortColumns?: string;
|
|
9
11
|
parentKeys?: string;
|
|
10
12
|
filterColumns?: string;
|
|
13
|
+
data?: ServiceResponse;
|
|
14
|
+
paginationData?: PaginationData;
|
|
11
15
|
};
|
|
@@ -7,8 +7,12 @@ export type OTreeFlatNode = {
|
|
|
7
7
|
rootNode?: boolean;
|
|
8
8
|
expandable: boolean;
|
|
9
9
|
node?: OTreeComponent | OTreeNodeComponent;
|
|
10
|
-
|
|
10
|
+
childNode?: OTreeNodeComponent;
|
|
11
11
|
data: any;
|
|
12
12
|
isLoading?: boolean;
|
|
13
13
|
route?: string;
|
|
14
|
+
hasMore?: boolean;
|
|
15
|
+
startIndex?: number;
|
|
16
|
+
offset?: number;
|
|
17
|
+
totalQueryRecordsNumber?: number;
|
|
14
18
|
};
|
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.
|
|
4
|
+
"version": "15.7.0",
|
|
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.",
|