Skip to content

Commit fd41e7c

Browse files
authored
Merge pull request #25 from bci-oss/feature/extract-rql-extension
Extract RQL Extension interfaces from table generation
2 parents 8ea3557 + c8f8ab6 commit fd41e7c

File tree

10 files changed

+27656
-18432
lines changed

10 files changed

+27656
-18432
lines changed

libs/schematic/generators/ng-generate/components/card/generators/components/card/files/__name@dasherize__.component.ts.template

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ import {MatTableDataSource} from "@angular/material/table";
4646

4747
<% if (options.enableRemoteDataHandling) { %>
4848
<%= options.include('/remote-handling/imports.ts.template') %>
49-
<%= options.include('/remote-handling/custom-rql-filter-extensions.ts.template') %>
5049
<% } else { %>
5150
import {<%= classify(name) %>Service} from './<%= dasherize(name) %>.service';
5251
<% } %>

libs/schematic/generators/ng-generate/components/shared/generators/components/command-bar/files/__name@dasherize__-command-bar.component.ts.template

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import {MatTooltip} from '@angular/material/tooltip';
3232
import {MatMenuModule} from '@angular/material/menu';
3333
import {MatIconButton} from '@angular/material/button';
3434
import {MatInput} from '@angular/material/input';
35+
import {TranslocoPipe} from '@jsverse/transloco';
3536

3637
@Component({
3738
selector: '<%= dasherize(name) %>-command-bar',
@@ -50,7 +51,8 @@ import {MatInput} from '@angular/material/input';
5051
MatTooltip,
5152
MatMenuModule,
5253
MatIconButton,
53-
MatInput
54+
MatInput,
55+
TranslocoPipe
5456
],
5557
templateUrl: './<%= dasherize(name) %>-command-bar.component.html',
5658
styleUrls: ['./<%= dasherize(name) %>-command-bar.component.scss'],

libs/schematic/generators/ng-generate/components/shared/methods/remote-handling/imports.ts.template

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
<% } %>
77

88
import {AbstractArrayNode, AbstractNode, And, Eq, Limit, Query, QueryStringifier, Sort} from 'rollun-ts-rql';
9+
import {CustomRQLFilterExtension, CustomRQLOptionExtension, ExtendedCsvExporter} from '@esmf/semantic-ui-schematic';
910
import {SortOptions} from "rollun-ts-rql/dist/nodes/Sort";

libs/schematic/generators/ng-generate/components/table/generators/components/table/files/__name@dasherize__.component.ts.template

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import {
2929
import { MatPaginator } from '@angular/material/paginator';
3030
import { MatSort, MatSortModule, SortDirection } from '@angular/material/sort';
3131
import { MatTable, MatTableModule } from '@angular/material/table';
32+
import {TranslocoPipe} from '@jsverse/transloco';
3233

3334
<% if (options.hasFilters || options.hasSearchBar) { %>
3435
import {<%= options.filterServiceName %>} from './<%= cmpFileName %>-filter.service';
@@ -75,7 +76,6 @@ import {<% if (options.enableRemoteDataHandling) { %>catchError, finalize, tap,
7576

7677
<% if (options.enableRemoteDataHandling) { %>
7778
<%= options.include('/remote-handling/imports.ts.template') %>
78-
<%= options.include('/remote-handling/custom-rql-filter-extensions.ts.template') %>
7979
<% } else { %>
8080
import {EsmfStaticTableService} from '@esmf/semantic-ui-schematic';
8181
<% } %>
@@ -127,6 +127,7 @@ type Entity = <%= classify(options.selectedModelTypeName) %>;
127127
MatIcon,
128128
MatTooltip,
129129
EsmfTableCellComponent,
130+
TranslocoPipe,
130131
<%= classify(name) %>CommandBarComponent
131132
],
132133
templateUrl: './<%= cmpFileName %>.component.html',

libs/schematic/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,6 @@ export * from './lib/services/remote-table-data-source.service';
1818
export * from './lib/services/static-table-data-source.service';
1919

2020
export * from './lib/models/filter.definition';
21+
export * from './lib/models/rql-extension.definition';
2122

2223
export * from './lib/pipes/show-description.pipe';

libs/schematic/src/lib/components/chip-list/chip-list.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import {FilterEnums, FilterType} from '../../models/filter.definition';
55
import {MatMiniFabButton} from '@angular/material/button';
66
import {MatChipListbox, MatChipOption} from '@angular/material/chips';
77
import {EsmfHorizontalOverflowDirective} from '../../directives/horizontal-overflow.directive';
8+
import {TranslocoDirective} from '@jsverse/transloco';
89

910
@Component({
1011
selector: 'esmf-chip-list',
1112
templateUrl: './chip-list.component.html',
12-
imports: [MatIcon, MatTooltip, MatMiniFabButton, MatChipListbox, MatChipOption, EsmfHorizontalOverflowDirective],
13+
imports: [MatIcon, MatTooltip, MatMiniFabButton, MatChipListbox, MatChipOption, EsmfHorizontalOverflowDirective, TranslocoDirective],
1314
styleUrls: ['./chip-list.component.scss'],
1415
encapsulation: ViewEncapsulation.None,
1516
host: {class: 'esmf-chip-list'},

libs/schematic/src/lib/components/column-menu/column-menu.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop';
2-
import {ChangeDetectionStrategy, Component, computed, input, linkedSignal, output, ViewEncapsulation} from '@angular/core';
2+
import {ChangeDetectionStrategy, Component, input, linkedSignal, output, ViewEncapsulation} from '@angular/core';
33
import {MatDivider, MatListOption, MatSelectionList} from '@angular/material/list';
44
import {MatButton} from '@angular/material/button';
55
import {MatIcon} from '@angular/material/icon';
66
import {MatTooltip} from '@angular/material/tooltip';
77
import {DragDropModule} from '@angular/cdk/drag-drop';
8-
import {TranslocoPipe} from '@jsverse/transloco';
8+
import {TranslocoDirective} from '@jsverse/transloco';
99

1010
export interface Column {
1111
name: string;
@@ -22,7 +22,7 @@ function makeAllColumnsSelected(columns: string[]): Column[] {
2222
selector: 'esmf-column-menu',
2323
templateUrl: './column-menu.component.html',
2424
styleUrls: ['./column-menu.component.scss'],
25-
imports: [MatSelectionList, MatDivider, MatListOption, MatButton, MatIcon, MatTooltip, DragDropModule, TranslocoPipe],
25+
imports: [MatSelectionList, MatDivider, MatListOption, MatButton, MatIcon, MatTooltip, DragDropModule, TranslocoDirective],
2626
changeDetection: ChangeDetectionStrategy.OnPush,
2727
encapsulation: ViewEncapsulation.None,
2828
host: {class: 'esmf-column-menu'},
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import {And, Query} from 'rollun-ts-rql';
2+
3+
/**
4+
* Interface of a CustomRQLFilterExtension which will be used to
5+
* modify the RQL query before the API service will be called to query
6+
* the backend.
7+
*/
8+
export interface CustomRQLFilterExtension {
9+
/**
10+
* Apply modification to the given RQL query
11+
*/
12+
apply(query: And): void;
13+
}
14+
15+
/**
16+
* Interface of a CustomRQLOptionExtension which will be used to
17+
* modify the RQL query before the API service will be called to query
18+
* the backend.
19+
*/
20+
export interface CustomRQLOptionExtension {
21+
/**
22+
* Apply modification to the given RQL query
23+
*/
24+
apply(query: Query): void;
25+
}
26+
27+
/**
28+
* Interface of ExtendedCsvExporter which will used to export data
29+
* from a remote backend.
30+
*/
31+
export interface ExtendedCsvExporter {
32+
/**
33+
* Exports the all data
34+
*/
35+
export(displayedColumns: string[], rqlQuery: string): void;
36+
}

0 commit comments

Comments
 (0)