@meshmakers/octo-ui 2.1.17-0 → 3.1.26-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/esm2022/lib/list-element/globalTypes.mjs +35 -0
- package/esm2022/lib/list-element/graphQLDataSource.mjs +25 -0
- package/esm2022/lib/list-element/list-element.module.mjs +16 -0
- package/esm2022/lib/list-element/newGraphQlDataSource.mjs +70 -0
- package/esm2022/lib/list-element/octoListNavigation.mjs +112 -0
- package/esm2022/public-api.mjs +9 -0
- package/{fesm2020 → fesm2022}/meshmakers-octo-ui.mjs +114 -33
- package/fesm2022/meshmakers-octo-ui.mjs.map +1 -0
- package/lib/list-element/globalTypes.d.ts +72 -26
- package/lib/list-element/graphQLDataSource.d.ts +3 -3
- package/lib/list-element/newGraphQlDataSource.d.ts +30 -0
- package/lib/list-element/octoListNavigation.d.ts +9 -9
- package/package.json +8 -14
- package/public-api.d.ts +1 -0
- package/esm2020/lib/list-element/globalTypes.mjs +0 -45
- package/esm2020/lib/list-element/graphQLDataSource.mjs +0 -23
- package/esm2020/lib/list-element/list-element.module.mjs +0 -18
- package/esm2020/lib/list-element/octoListNavigation.mjs +0 -88
- package/esm2020/public-api.mjs +0 -8
- package/fesm2015/meshmakers-octo-ui.mjs +0 -181
- package/fesm2015/meshmakers-octo-ui.mjs.map +0 -1
- package/fesm2020/meshmakers-octo-ui.mjs.map +0 -1
- /package/{esm2020 → esm2022}/meshmakers-octo-ui.mjs +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// @generated
|
|
3
|
+
// This file was automatically generated and should not be edited.
|
|
4
|
+
/** Defines the operator of field compare */
|
|
5
|
+
export var FieldFilterOperatorsDto;
|
|
6
|
+
(function (FieldFilterOperatorsDto) {
|
|
7
|
+
FieldFilterOperatorsDto["AnyEqDto"] = "ANY_EQ";
|
|
8
|
+
FieldFilterOperatorsDto["EqualsDto"] = "EQUALS";
|
|
9
|
+
FieldFilterOperatorsDto["GreaterEqualThanDto"] = "GREATER_EQUAL_THAN";
|
|
10
|
+
FieldFilterOperatorsDto["GreaterThanDto"] = "GREATER_THAN";
|
|
11
|
+
FieldFilterOperatorsDto["InDto"] = "IN";
|
|
12
|
+
FieldFilterOperatorsDto["LessEqualThanDto"] = "LESS_EQUAL_THAN";
|
|
13
|
+
FieldFilterOperatorsDto["LessThanDto"] = "LESS_THAN";
|
|
14
|
+
FieldFilterOperatorsDto["LikeDto"] = "LIKE";
|
|
15
|
+
FieldFilterOperatorsDto["MatchRegExDto"] = "MATCH_REG_EX";
|
|
16
|
+
FieldFilterOperatorsDto["NotEqualsDto"] = "NOT_EQUALS";
|
|
17
|
+
FieldFilterOperatorsDto["NotInDto"] = "NOT_IN";
|
|
18
|
+
})(FieldFilterOperatorsDto || (FieldFilterOperatorsDto = {}));
|
|
19
|
+
/** The type of search that is used (a text based search using text analysis (high performance, scoring, maybe more false positives) or filtering of attributes (lower performance, more exact results) */
|
|
20
|
+
export var SearchFilterTypesDto;
|
|
21
|
+
(function (SearchFilterTypesDto) {
|
|
22
|
+
SearchFilterTypesDto["AttributeFilterDto"] = "ATTRIBUTE_FILTER";
|
|
23
|
+
SearchFilterTypesDto["TextSearchDto"] = "TEXT_SEARCH";
|
|
24
|
+
})(SearchFilterTypesDto || (SearchFilterTypesDto = {}));
|
|
25
|
+
/** Defines the sort order */
|
|
26
|
+
export var SortOrdersDto;
|
|
27
|
+
(function (SortOrdersDto) {
|
|
28
|
+
SortOrdersDto["AscendingDto"] = "ASCENDING";
|
|
29
|
+
SortOrdersDto["DefaultDto"] = "DEFAULT";
|
|
30
|
+
SortOrdersDto["DescendingDto"] = "DESCENDING";
|
|
31
|
+
})(SortOrdersDto || (SortOrdersDto = {}));
|
|
32
|
+
//==============================================================
|
|
33
|
+
// END Enums and Input Objects
|
|
34
|
+
//==============================================================
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL29jdG8tdWkvc3JjL2xpYi9saXN0LWVsZW1lbnQvZ2xvYmFsVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLGFBQWE7QUFDYixrRUFBa0U7QUFrQ2xFLDRDQUE0QztBQUM1QyxNQUFNLENBQU4sSUFBWSx1QkFZWDtBQVpELFdBQVksdUJBQXVCO0lBQ2pDLDhDQUFtQixDQUFBO0lBQ25CLCtDQUFvQixDQUFBO0lBQ3BCLHFFQUEwQyxDQUFBO0lBQzFDLDBEQUErQixDQUFBO0lBQy9CLHVDQUFZLENBQUE7SUFDWiwrREFBb0MsQ0FBQTtJQUNwQyxvREFBeUIsQ0FBQTtJQUN6QiwyQ0FBZ0IsQ0FBQTtJQUNoQix5REFBOEIsQ0FBQTtJQUM5QixzREFBMkIsQ0FBQTtJQUMzQiw4Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBWlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQVlsQztBQVVELDBNQUEwTTtBQUMxTSxNQUFNLENBQU4sSUFBWSxvQkFHWDtBQUhELFdBQVksb0JBQW9CO0lBQzlCLCtEQUF1QyxDQUFBO0lBQ3ZDLHFEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBRy9CO0FBT0QsNkJBQTZCO0FBQzdCLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDdkIsMkNBQTBCLENBQUE7SUFDMUIsdUNBQXNCLENBQUE7SUFDdEIsNkNBQTRCLENBQUE7QUFDOUIsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQsZ0VBQWdFO0FBQ2hFLDhCQUE4QjtBQUM5QixnRUFBZ0UiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gQGdlbmVyYXRlZFxuLy8gVGhpcyBmaWxlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSBlZGl0ZWQuXG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNUQVJUIEVudW1zIGFuZCBJbnB1dCBPYmplY3RzXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgdHlwZSBNYXliZTxUPiA9IFQgfCBudWxsO1xuZXhwb3J0IHR5cGUgSW5wdXRNYXliZTxUPiA9IE1heWJlPFQ+O1xuXG4vKiogQWxsIGJ1aWx0LWluIGFuZCBjdXN0b20gc2NhbGFycywgbWFwcGVkIHRvIHRoZWlyIGFjdHVhbCB2YWx1ZXMgKi9cbmV4cG9ydCB0eXBlIFNjYWxhcnMgPSB7XG4gIElEOiB7IGlucHV0OiBzdHJpbmc7IG91dHB1dDogc3RyaW5nOyB9XG4gIFN0cmluZzogeyBpbnB1dDogc3RyaW5nOyBvdXRwdXQ6IHN0cmluZzsgfVxuICBCb29sZWFuOiB7IGlucHV0OiBib29sZWFuOyBvdXRwdXQ6IGJvb2xlYW47IH1cbiAgSW50OiB7IGlucHV0OiBudW1iZXI7IG91dHB1dDogbnVtYmVyOyB9XG4gIEZsb2F0OiB7IGlucHV0OiBudW1iZXI7IG91dHB1dDogbnVtYmVyOyB9XG4gIEJpZ0ludDogeyBpbnB1dDogYW55OyBvdXRwdXQ6IGFueTsgfVxuICBDa0F0dHJpYnV0ZUlkOiB7IGlucHV0OiBzdHJpbmc7IG91dHB1dDogc3RyaW5nOyB9XG4gIENrRW51bUlkOiB7IGlucHV0OiBzdHJpbmc7IG91dHB1dDogc3RyaW5nOyB9XG4gIENrUmVjb3JkSWQ6IHsgaW5wdXQ6IHN0cmluZzsgb3V0cHV0OiBzdHJpbmc7IH1cbiAgQ2tUeXBlSWQ6IHsgaW5wdXQ6IHN0cmluZzsgb3V0cHV0OiBzdHJpbmc7IH1cbiAgRGF0ZVRpbWU6IHsgaW5wdXQ6IGFueTsgb3V0cHV0OiBhbnk7IH1cbiAgRGVjaW1hbDogeyBpbnB1dDogYW55OyBvdXRwdXQ6IGFueTsgfVxuICBMYXJnZUJpbmFyeTogeyBpbnB1dDogYW55OyBvdXRwdXQ6IGFueTsgfVxuICBPY3RvT2JqZWN0SWQ6IHsgaW5wdXQ6IHN0cmluZzsgb3V0cHV0OiBzdHJpbmc7IH1cbiAgU2ltcGxlU2NhbGFyVHlwZTogeyBpbnB1dDogYW55OyBvdXRwdXQ6IGFueTsgfVxuICBVcmk6IHsgaW5wdXQ6IGFueTsgb3V0cHV0OiBhbnk7IH1cbn07XG5cbmV4cG9ydCB0eXBlIEZpZWxkRmlsdGVyRHRvID0ge1xuICBhdHRyaWJ1dGVOYW1lOiBTY2FsYXJzWydTdHJpbmcnXVsnaW5wdXQnXVxuICBjb21wYXJpc29uVmFsdWU/OiBJbnB1dE1heWJlPFNjYWxhcnNbJ1NpbXBsZVNjYWxhclR5cGUnXVsnaW5wdXQnXT47XG4gIG9wZXJhdG9yPzogSW5wdXRNYXliZTxGaWVsZEZpbHRlck9wZXJhdG9yc0R0bz47XG59O1xuXG4vKiogRGVmaW5lcyB0aGUgb3BlcmF0b3Igb2YgZmllbGQgY29tcGFyZSAqL1xuZXhwb3J0IGVudW0gRmllbGRGaWx0ZXJPcGVyYXRvcnNEdG8ge1xuICBBbnlFcUR0byA9ICdBTllfRVEnLFxuICBFcXVhbHNEdG8gPSAnRVFVQUxTJyxcbiAgR3JlYXRlckVxdWFsVGhhbkR0byA9ICdHUkVBVEVSX0VRVUFMX1RIQU4nLFxuICBHcmVhdGVyVGhhbkR0byA9ICdHUkVBVEVSX1RIQU4nLFxuICBJbkR0byA9ICdJTicsXG4gIExlc3NFcXVhbFRoYW5EdG8gPSAnTEVTU19FUVVBTF9USEFOJyxcbiAgTGVzc1RoYW5EdG8gPSAnTEVTU19USEFOJyxcbiAgTGlrZUR0byA9ICdMSUtFJyxcbiAgTWF0Y2hSZWdFeER0byA9ICdNQVRDSF9SRUdfRVgnLFxuICBOb3RFcXVhbHNEdG8gPSAnTk9UX0VRVUFMUycsXG4gIE5vdEluRHRvID0gJ05PVF9JTidcbn1cblxuXG5leHBvcnQgdHlwZSBTZWFyY2hGaWx0ZXJEdG8gPSB7XG4gIGF0dHJpYnV0ZU5hbWVzPzogSW5wdXRNYXliZTxBcnJheTxJbnB1dE1heWJlPFNjYWxhcnNbJ1N0cmluZyddWydpbnB1dCddPj4+O1xuICBsYW5ndWFnZT86IElucHV0TWF5YmU8U2NhbGFyc1snU3RyaW5nJ11bJ2lucHV0J10+O1xuICBzZWFyY2hUZXJtOiBTY2FsYXJzWydTdHJpbmcnXVsnaW5wdXQnXTtcbiAgdHlwZT86IElucHV0TWF5YmU8U2VhcmNoRmlsdGVyVHlwZXNEdG8+O1xufTtcblxuLyoqIFRoZSB0eXBlIG9mIHNlYXJjaCB0aGF0IGlzIHVzZWQgKGEgdGV4dCBiYXNlZCBzZWFyY2ggdXNpbmcgdGV4dCBhbmFseXNpcyAoaGlnaCBwZXJmb3JtYW5jZSwgc2NvcmluZywgbWF5YmUgbW9yZSBmYWxzZSBwb3NpdGl2ZXMpIG9yIGZpbHRlcmluZyBvZiBhdHRyaWJ1dGVzIChsb3dlciBwZXJmb3JtYW5jZSwgbW9yZSBleGFjdCByZXN1bHRzKSAqL1xuZXhwb3J0IGVudW0gU2VhcmNoRmlsdGVyVHlwZXNEdG8ge1xuICBBdHRyaWJ1dGVGaWx0ZXJEdG8gPSAnQVRUUklCVVRFX0ZJTFRFUicsXG4gIFRleHRTZWFyY2hEdG8gPSAnVEVYVF9TRUFSQ0gnXG59XG5cbmV4cG9ydCB0eXBlIFNvcnREdG8gPSB7XG4gIGF0dHJpYnV0ZU5hbWU6IFNjYWxhcnNbJ1N0cmluZyddWydpbnB1dCddO1xuICBzb3J0T3JkZXI/OiBJbnB1dE1heWJlPFNvcnRPcmRlcnNEdG8+O1xufTtcblxuLyoqIERlZmluZXMgdGhlIHNvcnQgb3JkZXIgKi9cbmV4cG9ydCBlbnVtIFNvcnRPcmRlcnNEdG8ge1xuICBBc2NlbmRpbmdEdG8gPSAnQVNDRU5ESU5HJyxcbiAgRGVmYXVsdER0byA9ICdERUZBVUxUJyxcbiAgRGVzY2VuZGluZ0R0byA9ICdERVNDRU5ESU5HJ1xufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFTkQgRW51bXMgYW5kIElucHV0IE9iamVjdHNcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { of } from 'rxjs';
|
|
2
|
+
import { catchError } from 'rxjs/operators';
|
|
3
|
+
import { DataSourceBase, PagedResultDto } from '@meshmakers/shared-services';
|
|
4
|
+
export class GraphQLDataSource extends DataSourceBase {
|
|
5
|
+
messageService;
|
|
6
|
+
constructor(messageService) {
|
|
7
|
+
super();
|
|
8
|
+
this.messageService = messageService;
|
|
9
|
+
}
|
|
10
|
+
loadData(tenantId, skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
11
|
+
super.onBeginLoad();
|
|
12
|
+
this.executeLoad(tenantId, skip, take, searchFilter, fieldFilter, sort)
|
|
13
|
+
.pipe(catchError((error) => {
|
|
14
|
+
this.messageService.showError(error, 'Error during load of data');
|
|
15
|
+
return of(new PagedResultDto());
|
|
16
|
+
}))
|
|
17
|
+
.subscribe((pagedResult) => {
|
|
18
|
+
super.onCompleteLoad(pagedResult);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
executeLoad(tenantId, skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
22
|
+
return of(new PagedResultDto());
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhRTERhdGFTb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL29jdG8tdWkvc3JjL2xpYi9saXN0LWVsZW1lbnQvZ3JhcGhRTERhdGFTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBa0IsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHN0YsTUFBTSxPQUFPLGlCQUF3QixTQUFRLGNBQW9CO0lBQ3pDO0lBQXRCLFlBQXNCLGNBQThCO1FBQ2xELEtBQUssRUFBRSxDQUFDO1FBRFksbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBRXBELENBQUM7SUFFTSxRQUFRLENBQ2IsUUFBZ0IsRUFDaEIsT0FBZSxDQUFDLEVBQ2hCLE9BQWUsRUFBRSxFQUNqQixlQUF1QyxJQUFJLEVBQzNDLGNBQXVDLElBQUksRUFDM0MsT0FBeUIsSUFBSTtRQUU3QixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQzthQUNwRSxJQUFJLENBQ0gsVUFBVSxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLDJCQUEyQixDQUFDLENBQUM7WUFFbEUsT0FBTyxFQUFFLENBQUMsSUFBSSxjQUFjLEVBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDekIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxXQUFXLENBQ25CLFFBQWdCLEVBQ2hCLE9BQWUsQ0FBQyxFQUNoQixPQUFlLEVBQUUsRUFDakIsZUFBdUMsSUFBSSxFQUMzQyxjQUF1QyxJQUFJLEVBQzNDLE9BQXlCLElBQUk7UUFFN0IsT0FBTyxFQUFFLENBQUMsSUFBSSxjQUFjLEVBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZUJhc2UsIE1lc3NhZ2VTZXJ2aWNlLCBQYWdlZFJlc3VsdER0byB9IGZyb20gJ0BtZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGaWVsZEZpbHRlckR0bywgU2VhcmNoRmlsdGVyRHRvLCBTb3J0RHRvIH0gZnJvbSAnLi9nbG9iYWxUeXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBHcmFwaFFMRGF0YVNvdXJjZTxURHRvPiBleHRlbmRzIERhdGFTb3VyY2VCYXNlPFREdG8+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbG9hZERhdGEoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIHRha2U6IG51bWJlciA9IDEwLFxuICAgIHNlYXJjaEZpbHRlcjogU2VhcmNoRmlsdGVyRHRvIHwgbnVsbCA9IG51bGwsXG4gICAgZmllbGRGaWx0ZXI6IEZpZWxkRmlsdGVyRHRvW10gfCBudWxsID0gbnVsbCxcbiAgICBzb3J0OiBTb3J0RHRvW10gfCBudWxsID0gbnVsbFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5vbkJlZ2luTG9hZCgpO1xuXG4gICAgdGhpcy5leGVjdXRlTG9hZCh0ZW5hbnRJZCwgc2tpcCwgdGFrZSwgc2VhcmNoRmlsdGVyLCBmaWVsZEZpbHRlciwgc29ydClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zaG93RXJyb3IoZXJyb3IsICdFcnJvciBkdXJpbmcgbG9hZCBvZiBkYXRhJyk7XG5cbiAgICAgICAgICByZXR1cm4gb2YobmV3IFBhZ2VkUmVzdWx0RHRvPFREdG8+KCkpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocGFnZWRSZXN1bHQpID0+IHtcbiAgICAgICAgc3VwZXIub25Db21wbGV0ZUxvYWQocGFnZWRSZXN1bHQpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZXhlY3V0ZUxvYWQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIHRha2U6IG51bWJlciA9IDEwLFxuICAgIHNlYXJjaEZpbHRlcjogU2VhcmNoRmlsdGVyRHRvIHwgbnVsbCA9IG51bGwsXG4gICAgZmllbGRGaWx0ZXI6IEZpZWxkRmlsdGVyRHRvW10gfCBudWxsID0gbnVsbCxcbiAgICBzb3J0OiBTb3J0RHRvW10gfCBudWxsID0gbnVsbFxuICApOiBPYnNlcnZhYmxlPFBhZ2VkUmVzdWx0RHRvPFREdG8+PiB7XG4gICAgcmV0dXJuIG9mKG5ldyBQYWdlZFJlc3VsdER0bzxURHRvPigpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ListElementModule {
|
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ListElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
6
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
7
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
8
|
+
}
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ListElementModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
declarations: [],
|
|
13
|
+
imports: [CommonModule]
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1lbGVtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvb2N0by11aS9zcmMvbGliL2xpc3QtZWxlbWVudC9saXN0LWVsZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU0vQyxNQUFNLE9BQU8saUJBQWlCO3VHQUFqQixpQkFBaUI7d0dBQWpCLGlCQUFpQixZQUZsQixZQUFZO3dHQUVYLGlCQUFpQixZQUZsQixZQUFZOzsyRkFFWCxpQkFBaUI7a0JBSjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgTGlzdEVsZW1lbnRNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { map, of } from 'rxjs';
|
|
2
|
+
import { catchError } from 'rxjs/operators';
|
|
3
|
+
import { DataSourceBase, PagedResultDto } from '@meshmakers/shared-services';
|
|
4
|
+
import { GraphQL } from '@meshmakers/octo-services';
|
|
5
|
+
export class GraphQlDataSource extends DataSourceBase {
|
|
6
|
+
}
|
|
7
|
+
export class NewGraphQlDataSource extends GraphQlDataSource {
|
|
8
|
+
messageService;
|
|
9
|
+
query;
|
|
10
|
+
defaultSort;
|
|
11
|
+
queryRef;
|
|
12
|
+
subscription;
|
|
13
|
+
constructor(messageService, query, defaultSort = null) {
|
|
14
|
+
super();
|
|
15
|
+
this.messageService = messageService;
|
|
16
|
+
this.query = query;
|
|
17
|
+
this.defaultSort = defaultSort;
|
|
18
|
+
this.queryRef = null;
|
|
19
|
+
this.subscription = null;
|
|
20
|
+
}
|
|
21
|
+
clear() {
|
|
22
|
+
super.clear();
|
|
23
|
+
this.queryRef?.stopPolling();
|
|
24
|
+
this.queryRef = null;
|
|
25
|
+
this.subscription?.unsubscribe();
|
|
26
|
+
this.subscription = null;
|
|
27
|
+
}
|
|
28
|
+
async refetch() {
|
|
29
|
+
await this.queryRef?.refetch();
|
|
30
|
+
}
|
|
31
|
+
async refetchWith(skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
32
|
+
const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);
|
|
33
|
+
await this.queryRef?.refetch(variables);
|
|
34
|
+
}
|
|
35
|
+
createVariables(skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
36
|
+
// Default sort
|
|
37
|
+
if ((!sort || (sort && sort.length === 0)) && searchFilter === null) {
|
|
38
|
+
sort = new Array();
|
|
39
|
+
if (this.defaultSort) {
|
|
40
|
+
sort = this.defaultSort;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
first: take,
|
|
45
|
+
after: GraphQL.offsetToCursor(skip),
|
|
46
|
+
sort,
|
|
47
|
+
searchFilter,
|
|
48
|
+
fieldFilters: fieldFilter
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
loadData(skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
52
|
+
super.onBeginLoad();
|
|
53
|
+
this.clear();
|
|
54
|
+
const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);
|
|
55
|
+
this.queryRef = this.query.watch(variables);
|
|
56
|
+
this.subscription = this.queryRef.valueChanges
|
|
57
|
+
.pipe(map((v, i) => this.executeLoad(v, i)))
|
|
58
|
+
.pipe(catchError((error) => {
|
|
59
|
+
this.messageService.showError(error, 'Error during load of data');
|
|
60
|
+
return of(new PagedResultDto());
|
|
61
|
+
}))
|
|
62
|
+
.subscribe((pagedResult) => {
|
|
63
|
+
super.onCompleteLoad(pagedResult);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
executeLoad(value, index) {
|
|
67
|
+
return new PagedResultDto();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3R3JhcGhRbERhdGFTb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL29jdG8tdWkvc3JjL2xpYi9saXN0LWVsZW1lbnQvbmV3R3JhcGhRbERhdGFTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFrQixjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUk3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFVcEQsTUFBTSxPQUFnQixpQkFBd0IsU0FBUSxjQUFvQjtDQWtCekU7QUFFRCxNQUFNLE9BQU8sb0JBQWdGLFNBQVEsaUJBQXVCO0lBSzlHO0lBQ087SUFDQTtJQU5YLFFBQVEsQ0FBNEM7SUFDcEQsWUFBWSxDQUFzQjtJQUUxQyxZQUNZLGNBQThCLEVBQ3ZCLEtBQXNDLEVBQ3RDLGNBQWdDLElBQUk7UUFFckQsS0FBSyxFQUFFLENBQUM7UUFKRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDdkIsVUFBSyxHQUFMLEtBQUssQ0FBaUM7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBR3JELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFUSxLQUFLO1FBQ1osS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQ3RCLE9BQWUsQ0FBQyxFQUNoQixPQUFlLEVBQUUsRUFDakIsZUFBdUMsSUFBSSxFQUMzQyxjQUF1QyxJQUFJLEVBQzNDLE9BQXlCLElBQUk7UUFFN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEYsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRVMsZUFBZSxDQUN2QixPQUFlLENBQUMsRUFDaEIsT0FBZSxFQUFFLEVBQ2pCLGVBQXVDLElBQUksRUFDM0MsY0FBdUMsSUFBSSxFQUMzQyxPQUF5QixJQUFJO1FBRTdCLGVBQWU7UUFDZixJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNwRSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQVcsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFzQjtZQUNwQixLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNuQyxJQUFJO1lBQ0osWUFBWTtZQUNaLFlBQVksRUFBRSxXQUFXO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRU0sUUFBUSxDQUNiLE9BQWUsQ0FBQyxFQUNoQixPQUFlLEVBQUUsRUFDakIsZUFBdUMsSUFBSSxFQUMzQyxjQUF1QyxJQUFJLEVBQzNDLE9BQXlCLElBQUk7UUFFN0IsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVk7YUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0MsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1lBRWxFLE9BQU8sRUFBRSxDQUFDLElBQUksY0FBYyxFQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3pCLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsV0FBVyxDQUFDLEtBQW1DLEVBQUUsS0FBYTtRQUN0RSxPQUFPLElBQUksY0FBYyxFQUFRLENBQUM7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFwLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZUJhc2UsIE1lc3NhZ2VTZXJ2aWNlLCBQYWdlZFJlc3VsdER0byB9IGZyb20gJ0BtZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGaWVsZEZpbHRlckR0bywgSW5wdXRNYXliZSwgU2VhcmNoRmlsdGVyRHRvLCBTb3J0RHRvIH0gZnJvbSAnLi9nbG9iYWxUeXBlcyc7XG5pbXBvcnQgeyBRdWVyeSwgUXVlcnlSZWYgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb1F1ZXJ5UmVzdWx0LCBPcGVyYXRpb25WYXJpYWJsZXMgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEdyYXBoUUwgfSBmcm9tICdAbWVzaG1ha2Vycy9vY3RvLXNlcnZpY2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBJUXVlcnlWYXJpYWJsZXNEdG8gZXh0ZW5kcyBPcGVyYXRpb25WYXJpYWJsZXMge1xuICBmaXJzdD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGFmdGVyPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgc29ydD86IElucHV0TWF5YmU8SW5wdXRNYXliZTxTb3J0RHRvPiB8IEFycmF5PElucHV0TWF5YmU8U29ydER0bz4+PiB8IHVuZGVmaW5lZDtcbiAgc2VhcmNoRmlsdGVyPzogU2VhcmNoRmlsdGVyRHRvIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgZmllbGRGaWx0ZXJzPzogSW5wdXRNYXliZTxBcnJheTxJbnB1dE1heWJlPEZpZWxkRmlsdGVyRHRvPj4gfCBJbnB1dE1heWJlPEZpZWxkRmlsdGVyRHRvPj47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHcmFwaFFsRGF0YVNvdXJjZTxURHRvPiBleHRlbmRzIERhdGFTb3VyY2VCYXNlPFREdG8+IHtcbiAgcHVibGljIGFic3RyYWN0IHJlZmV0Y2goKTogUHJvbWlzZTx2b2lkPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVmZXRjaFdpdGgoXG4gICAgc2tpcD86IG51bWJlcixcbiAgICB0YWtlPzogbnVtYmVyLFxuICAgIHNlYXJjaEZpbHRlcj86IFNlYXJjaEZpbHRlckR0byB8IG51bGwsXG4gICAgZmllbGRGaWx0ZXI/OiBGaWVsZEZpbHRlckR0b1tdIHwgbnVsbCxcbiAgICBzb3J0PzogU29ydER0b1tdIHwgbnVsbFxuICApOiBQcm9taXNlPHZvaWQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBsb2FkRGF0YShcbiAgICBza2lwPzogbnVtYmVyLFxuICAgIHRha2U/OiBudW1iZXIsXG4gICAgc2VhcmNoRmlsdGVyPzogU2VhcmNoRmlsdGVyRHRvIHwgbnVsbCxcbiAgICBmaWVsZEZpbHRlcj86IEZpZWxkRmlsdGVyRHRvW10gfCBudWxsLFxuICAgIHNvcnQ/OiBTb3J0RHRvW10gfCBudWxsXG4gICk6IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBOZXdHcmFwaFFsRGF0YVNvdXJjZTxURHRvLCBUUXVlcnlEdG8sIFRWYXJpYWJsZXNEdG8gZXh0ZW5kcyBJUXVlcnlWYXJpYWJsZXNEdG8+IGV4dGVuZHMgR3JhcGhRbERhdGFTb3VyY2U8VER0bz4ge1xuICBwcml2YXRlIHF1ZXJ5UmVmOiBRdWVyeVJlZjxUUXVlcnlEdG8sIFRWYXJpYWJsZXNEdG8+IHwgbnVsbDtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5OiBRdWVyeTxUUXVlcnlEdG8sIFRWYXJpYWJsZXNEdG8+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFNvcnQ6IFNvcnREdG9bXSB8IG51bGwgPSBudWxsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5xdWVyeVJlZiA9IG51bGw7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xlYXIoKTtcbiAgICB0aGlzLnF1ZXJ5UmVmPy5zdG9wUG9sbGluZygpO1xuICAgIHRoaXMucXVlcnlSZWYgPSBudWxsO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZWZldGNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucXVlcnlSZWY/LnJlZmV0Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZWZldGNoV2l0aChcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIHRha2U6IG51bWJlciA9IDEwLFxuICAgIHNlYXJjaEZpbHRlcjogU2VhcmNoRmlsdGVyRHRvIHwgbnVsbCA9IG51bGwsXG4gICAgZmllbGRGaWx0ZXI6IEZpZWxkRmlsdGVyRHRvW10gfCBudWxsID0gbnVsbCxcbiAgICBzb3J0OiBTb3J0RHRvW10gfCBudWxsID0gbnVsbFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSB0aGlzLmNyZWF0ZVZhcmlhYmxlcyhza2lwLCB0YWtlLCBzZWFyY2hGaWx0ZXIsIGZpZWxkRmlsdGVyLCBzb3J0KTtcbiAgICBhd2FpdCB0aGlzLnF1ZXJ5UmVmPy5yZWZldGNoKHZhcmlhYmxlcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlVmFyaWFibGVzKFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgdGFrZTogbnVtYmVyID0gMTAsXG4gICAgc2VhcmNoRmlsdGVyOiBTZWFyY2hGaWx0ZXJEdG8gfCBudWxsID0gbnVsbCxcbiAgICBmaWVsZEZpbHRlcjogRmllbGRGaWx0ZXJEdG9bXSB8IG51bGwgPSBudWxsLFxuICAgIHNvcnQ6IFNvcnREdG9bXSB8IG51bGwgPSBudWxsXG4gICk6IFRWYXJpYWJsZXNEdG8ge1xuICAgIC8vIERlZmF1bHQgc29ydFxuICAgIGlmICgoIXNvcnQgfHwgKHNvcnQgJiYgc29ydC5sZW5ndGggPT09IDApKSAmJiBzZWFyY2hGaWx0ZXIgPT09IG51bGwpIHtcbiAgICAgIHNvcnQgPSBuZXcgQXJyYXk8U29ydER0bz4oKTtcbiAgICAgIGlmICh0aGlzLmRlZmF1bHRTb3J0KSB7XG4gICAgICAgIHNvcnQgPSB0aGlzLmRlZmF1bHRTb3J0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiA8VFZhcmlhYmxlc0R0bz57XG4gICAgICBmaXJzdDogdGFrZSxcbiAgICAgIGFmdGVyOiBHcmFwaFFMLm9mZnNldFRvQ3Vyc29yKHNraXApLFxuICAgICAgc29ydCxcbiAgICAgIHNlYXJjaEZpbHRlcixcbiAgICAgIGZpZWxkRmlsdGVyczogZmllbGRGaWx0ZXJcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGxvYWREYXRhKFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgdGFrZTogbnVtYmVyID0gMTAsXG4gICAgc2VhcmNoRmlsdGVyOiBTZWFyY2hGaWx0ZXJEdG8gfCBudWxsID0gbnVsbCxcbiAgICBmaWVsZEZpbHRlcjogRmllbGRGaWx0ZXJEdG9bXSB8IG51bGwgPSBudWxsLFxuICAgIHNvcnQ6IFNvcnREdG9bXSB8IG51bGwgPSBudWxsXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLm9uQmVnaW5Mb2FkKCk7XG4gICAgdGhpcy5jbGVhcigpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0gdGhpcy5jcmVhdGVWYXJpYWJsZXMoc2tpcCwgdGFrZSwgc2VhcmNoRmlsdGVyLCBmaWVsZEZpbHRlciwgc29ydCk7XG4gICAgdGhpcy5xdWVyeVJlZiA9IHRoaXMucXVlcnkud2F0Y2godmFyaWFibGVzKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5xdWVyeVJlZi52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKG1hcCgodiwgaSkgPT4gdGhpcy5leGVjdXRlTG9hZCh2LCBpKSkpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yLCAnRXJyb3IgZHVyaW5nIGxvYWQgb2YgZGF0YScpO1xuXG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBQYWdlZFJlc3VsdER0bzxURHRvPigpKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHBhZ2VkUmVzdWx0KSA9PiB7XG4gICAgICAgIHN1cGVyLm9uQ29tcGxldGVMb2FkKHBhZ2VkUmVzdWx0KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGV4ZWN1dGVMb2FkKHZhbHVlOiBBcG9sbG9RdWVyeVJlc3VsdDxUUXVlcnlEdG8+LCBpbmRleDogbnVtYmVyKTogUGFnZWRSZXN1bHREdG88VER0bz4ge1xuICAgIHJldHVybiBuZXcgUGFnZWRSZXN1bHREdG88VER0bz4oKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { fromEvent, merge } from 'rxjs';
|
|
3
|
+
import { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';
|
|
4
|
+
import { SortOrdersDto } from './globalTypes';
|
|
5
|
+
export class OctoListNavigationDataInfo {
|
|
6
|
+
skip;
|
|
7
|
+
take;
|
|
8
|
+
searchFilter;
|
|
9
|
+
sort;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.skip = 0;
|
|
12
|
+
this.take = 10;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class OctoListNavigationOptions {
|
|
16
|
+
language;
|
|
17
|
+
searchFilterType;
|
|
18
|
+
searchFilterAttributeNames;
|
|
19
|
+
constructor() {
|
|
20
|
+
this.language = null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class OctoListNavigation {
|
|
24
|
+
paginator;
|
|
25
|
+
sort;
|
|
26
|
+
searchBox;
|
|
27
|
+
octoOptions;
|
|
28
|
+
loadDataRequest = new EventEmitter();
|
|
29
|
+
lastSortDirection;
|
|
30
|
+
lastSortField;
|
|
31
|
+
lastSearchText;
|
|
32
|
+
constructor(paginator, sort, searchBox, octoOptions) {
|
|
33
|
+
this.paginator = paginator;
|
|
34
|
+
this.sort = sort;
|
|
35
|
+
this.searchBox = searchBox;
|
|
36
|
+
this.octoOptions = octoOptions;
|
|
37
|
+
this.lastSortDirection = null;
|
|
38
|
+
this.lastSortField = null;
|
|
39
|
+
this.lastSearchText = null;
|
|
40
|
+
}
|
|
41
|
+
get loadDataInfo() {
|
|
42
|
+
const filterString = this.searchBox.nativeElement.value;
|
|
43
|
+
const sortField = this.sort.active;
|
|
44
|
+
const sortDirection = this.sort.direction;
|
|
45
|
+
let filter = null;
|
|
46
|
+
if (filterString) {
|
|
47
|
+
filter = {
|
|
48
|
+
language: this.octoOptions.language,
|
|
49
|
+
searchTerm: filterString,
|
|
50
|
+
type: this.octoOptions.searchFilterType,
|
|
51
|
+
attributeNames: this.octoOptions.searchFilterAttributeNames
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const sort = [];
|
|
55
|
+
if (sortField && sortDirection) {
|
|
56
|
+
sort.push({
|
|
57
|
+
attributeName: sortField,
|
|
58
|
+
sortOrder: sortDirection === 'asc' ? SortOrdersDto.AscendingDto : SortOrdersDto.DescendingDto
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
skip: this.paginator.pageIndex * this.paginator.pageSize,
|
|
63
|
+
take: this.paginator.pageSize,
|
|
64
|
+
searchFilter: filter,
|
|
65
|
+
sort
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
init() {
|
|
69
|
+
// server-side search
|
|
70
|
+
fromEvent(this.searchBox.nativeElement, 'keyup')
|
|
71
|
+
.pipe(debounceTime(500), distinctUntilChanged(), tap(() => {
|
|
72
|
+
this.paginator.pageIndex = 0;
|
|
73
|
+
const searchText = this.searchBox.nativeElement.value;
|
|
74
|
+
if (!this.lastSearchText && searchText) {
|
|
75
|
+
this.lastSortDirection = this.sort.direction;
|
|
76
|
+
this.lastSortField = this.sort.active;
|
|
77
|
+
// Reset sorting to see the score rating (default sorting returned from server)
|
|
78
|
+
this.sort.sort({ id: '', start: 'asc', disableClear: false });
|
|
79
|
+
}
|
|
80
|
+
this.lastSearchText = searchText;
|
|
81
|
+
if (!searchText && this.lastSortField) {
|
|
82
|
+
if (this.lastSortDirection === 'asc') {
|
|
83
|
+
this.sort.sort({
|
|
84
|
+
id: this.lastSortField,
|
|
85
|
+
start: 'asc',
|
|
86
|
+
disableClear: true
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else if (this.lastSortDirection === 'desc') {
|
|
90
|
+
this.sort.sort({
|
|
91
|
+
id: this.lastSortField,
|
|
92
|
+
start: 'desc',
|
|
93
|
+
disableClear: true
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
this.loadData();
|
|
98
|
+
}))
|
|
99
|
+
.subscribe();
|
|
100
|
+
// reset the paginator after sorting
|
|
101
|
+
this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));
|
|
102
|
+
merge(this.sort.sortChange, this.paginator.page)
|
|
103
|
+
.pipe(tap(() => {
|
|
104
|
+
this.loadData();
|
|
105
|
+
}))
|
|
106
|
+
.subscribe();
|
|
107
|
+
}
|
|
108
|
+
loadData() {
|
|
109
|
+
this.loadDataRequest.emit(this.loadDataInfo);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2N0b0xpc3ROYXZpZ2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9vY3RvLXVpL3NyYy9saWIvbGlzdC1lbGVtZW50L29jdG9MaXN0TmF2aWdhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFrRCxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUYsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxJQUFJLENBQVM7SUFDYixJQUFJLENBQVM7SUFDYixZQUFZLENBQW1CO0lBQy9CLElBQUksQ0FBYTtJQUVqQjtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxRQUFRLENBQWdCO0lBQ3hCLGdCQUFnQixDQUF3QjtJQUN4QywwQkFBMEIsQ0FBWTtJQUV0QztRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFRVjtJQUNBO0lBQ0E7SUFDQTtJQVZaLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FBQztJQUV4RSxpQkFBaUIsQ0FBdUI7SUFDeEMsYUFBYSxDQUFnQjtJQUM3QixjQUFjLENBQWdCO0lBRTlCLFlBQ21CLFNBQXVCLEVBQ3ZCLElBQWEsRUFDYixTQUF1QyxFQUN2QyxXQUFzQztRQUh0QyxjQUFTLEdBQVQsU0FBUyxD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QUMsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLEtBQUs7d0JBQ1osWUFBWSxFQUFFLElBQUk7cUJBQ25CLENBQUMsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDYixFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWE7d0JBQ3RCLEtBQUssRUFBRSxNQUFNO3dCQUNiLFlBQVksRUFBRSxJQUFJO3FCQUNuQixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztRQUVmLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzthQUM3QyxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlckR0bywgU2VhcmNoRmlsdGVyVHlwZXNEdG8sIFNvcnREdG8sIFNvcnRPcmRlcnNEdG8gfSBmcm9tICcuL2dsb2JhbFR5cGVzJztcblxuZXhwb3J0IGNsYXNzIE9jdG9MaXN0TmF2aWdhdGlvbkRhdGFJbmZvIHtcbiAgc2tpcDogbnVtYmVyO1xuICB0YWtlOiBudW1iZXI7XG4gIHNlYXJjaEZpbHRlcj86IFNlYXJjaEZpbHRlckR0bztcbiAgc29ydD86IFNvcnREdG9bXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNraXAgPSAwO1xuICAgIHRoaXMudGFrZSA9IDEwO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPY3RvTGlzdE5hdmlnYXRpb25PcHRpb25zIHtcbiAgbGFuZ3VhZ2U6IHN0cmluZyB8IG51bGw7XG4gIHNlYXJjaEZpbHRlclR5cGU/OiBTZWFyY2hGaWx0ZXJUeXBlc0R0bztcbiAgc2VhcmNoRmlsdGVyQXR0cmlidXRlTmFtZXM/OiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmxhbmd1YWdlID0gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT2N0b0xpc3ROYXZpZ2F0aW9uIHtcbiAgcHVibGljIGxvYWREYXRhUmVxdWVzdCA9IG5ldyBFdmVudEVtaXR0ZXI8T2N0b0xpc3ROYXZpZ2F0aW9uRGF0YUluZm8+KCk7XG5cbiAgbGFzdFNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gfCBudWxsO1xuICBsYXN0U29ydEZpZWxkOiBzdHJpbmcgfCBudWxsO1xuICBsYXN0U2VhcmNoVGV4dDogc3RyaW5nIHwgbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc29ydDogTWF0U29ydCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaEJveDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9jdG9PcHRpb25zOiBPY3RvTGlzdE5hdmlnYXRpb25PcHRpb25zXG4gICkge1xuICAgIHRoaXMubGFzdFNvcnREaXJlY3Rpb24gPSBudWxsO1xuICAgIHRoaXMubGFzdFNvcnRGaWVsZCA9IG51bGw7XG4gICAgdGhpcy5sYXN0U2VhcmNoVGV4dCA9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWREYXRhSW5mbygpOiBPY3RvTGlzdE5hdmlnYXRpb25EYXRhSW5mbyB7XG4gICAgY29uc3QgZmlsdGVyU3RyaW5nID0gdGhpcy5zZWFyY2hCb3gubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICBjb25zdCBzb3J0RmllbGQgPSB0aGlzLnNvcnQuYWN0aXZlO1xuICAgIGNvbnN0IHNvcnREaXJlY3Rpb24gPSB0aGlzLnNvcnQuZGlyZWN0aW9uO1xuXG4gICAgbGV0IGZpbHRlciA9IG51bGw7XG4gICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgZmlsdGVyID0gPFNlYXJjaEZpbHRlckR0bz57XG4gICAgICAgIGxhbmd1YWdlOiB0aGlzLm9jdG9PcHRpb25zLmxhbmd1YWdlLFxuICAgICAgICBzZWFyY2hUZXJtOiBmaWx0ZXJTdHJpbmcsXG4gICAgICAgIHR5cGU6IHRoaXMub2N0b09wdGlvbnMuc2VhcmNoRmlsdGVyVHlwZSxcbiAgICAgICAgYXR0cmlidXRlTmFtZXM6IHRoaXMub2N0b09wdGlvbnMuc2VhcmNoRmlsdGVyQXR0cmlidXRlTmFtZXNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qgc29ydCA9IFtdO1xuICAgIGlmIChzb3J0RmllbGQgJiYgc29ydERpcmVjdGlvbikge1xuICAgICAgc29ydC5wdXNoKDxTb3J0RHRvPntcbiAgICAgICAgYXR0cmlidXRlTmFtZTogc29ydEZpZWxkLFxuICAgICAgICBzb3J0T3JkZXI6IHNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gU29ydE9yZGVyc0R0by5Bc2NlbmRpbmdEdG8gOiBTb3J0T3JkZXJzRHRvLkRlc2NlbmRpbmdEdG9cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiA8T2N0b0xpc3ROYXZpZ2F0aW9uRGF0YUluZm8+e1xuICAgICAgc2tpcDogdGhpcy5wYWdpbmF0b3IucGFnZUluZGV4ICogdGhpcy5wYWdpbmF0b3IucGFnZVNpemUsXG4gICAgICB0YWtlOiB0aGlzLnBhZ2luYXRvci5wYWdlU2l6ZSxcbiAgICAgIHNlYXJjaEZpbHRlcjogZmlsdGVyLFxuICAgICAgc29ydFxuICAgIH07XG4gIH1cblxuICBpbml0KCk6IHZvaWQge1xuICAgIC8vIHNlcnZlci1zaWRlIHNlYXJjaFxuICAgIGZyb21FdmVudDxFbGVtZW50UmVmPih0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IDA7XG5cbiAgICAgICAgICBjb25zdCBzZWFyY2hUZXh0ID0gdGhpcy5zZWFyY2hCb3gubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgICAgICAgIGlmICghdGhpcy5sYXN0U2VhcmNoVGV4dCAmJiBzZWFyY2hUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RTb3J0RGlyZWN0aW9uID0gdGhpcy5zb3J0LmRpcmVjdGlvbjtcbiAgICAgICAgICAgIHRoaXMubGFzdFNvcnRGaWVsZCA9IHRoaXMuc29ydC5hY3RpdmU7XG5cbiAgICAgICAgICAgIC8vIFJlc2V0IHNvcnRpbmcgdG8gc2VlIHRoZSBzY29yZSByYXRpbmcgKGRlZmF1bHQgc29ydGluZyByZXR1cm5lZCBmcm9tIHNlcnZlcilcbiAgICAgICAgICAgIHRoaXMuc29ydC5zb3J0KHsgaWQ6ICcnLCBzdGFydDogJ2FzYycsIGRpc2FibGVDbGVhcjogZmFsc2UgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5sYXN0U2VhcmNoVGV4dCA9IHNlYXJjaFRleHQ7XG5cbiAgICAgICAgICBpZiAoIXNlYXJjaFRleHQgJiYgdGhpcy5sYXN0U29ydEZpZWxkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5sYXN0U29ydERpcmVjdGlvbiA9PT0gJ2FzYycpIHtcbiAgICAgICAgICAgICAgdGhpcy5zb3J0LnNvcnQoe1xuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmxhc3RTb3J0RmllbGQsXG4gICAgICAgICAgICAgICAgc3RhcnQ6ICdhc2MnLFxuICAgICAgICAgICAgICAgIGRpc2FibGVDbGVhcjogdHJ1ZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5sYXN0U29ydERpcmVjdGlvbiA9PT0gJ2Rlc2MnKSB7XG4gICAgICAgICAgICAgIHRoaXMuc29ydC5zb3J0KHtcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5sYXN0U29ydEZpZWxkLFxuICAgICAgICAgICAgICAgIHN0YXJ0OiAnZGVzYycsXG4gICAgICAgICAgICAgICAgZGlzYWJsZUNsZWFyOiB0cnVlXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIC8vIHJlc2V0IHRoZSBwYWdpbmF0b3IgYWZ0ZXIgc29ydGluZ1xuICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnN1YnNjcmliZSgoKSA9PiAodGhpcy5wYWdpbmF0b3IucGFnZUluZGV4ID0gMCkpO1xuXG4gICAgbWVyZ2UodGhpcy5zb3J0LnNvcnRDaGFuZ2UsIHRoaXMucGFnaW5hdG9yLnBhZ2UpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZERhdGFSZXF1ZXN0LmVtaXQodGhpcy5sb2FkRGF0YUluZm8pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of octo-ui
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/list-element/list-element.module';
|
|
5
|
+
export * from './lib/list-element/octoListNavigation';
|
|
6
|
+
export * from './lib/list-element/graphQLDataSource';
|
|
7
|
+
export * from './lib/list-element/newGraphQlDataSource';
|
|
8
|
+
export * from './lib/list-element/globalTypes';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvb2N0by11aS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygb2N0by11aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpc3QtZWxlbWVudC9saXN0LWVsZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpc3QtZWxlbWVudC9vY3RvTGlzdE5hdmlnYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlzdC1lbGVtZW50L2dyYXBoUUxEYXRhU291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpc3QtZWxlbWVudC9uZXdHcmFwaFFsRGF0YVNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saXN0LWVsZW1lbnQvZ2xvYmFsVHlwZXMnO1xuIl19
|
|
@@ -1,32 +1,31 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { NgModule, EventEmitter } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { fromEvent, merge, of } from 'rxjs';
|
|
4
|
+
import { fromEvent, merge, of, map } from 'rxjs';
|
|
5
5
|
import { debounceTime, distinctUntilChanged, tap, catchError } from 'rxjs/operators';
|
|
6
6
|
import { DataSourceBase, PagedResultDto } from '@meshmakers/shared-services';
|
|
7
|
+
import { GraphQL } from '@meshmakers/octo-services';
|
|
7
8
|
|
|
8
9
|
class ListElementModule {
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ListElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
12
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
9
13
|
}
|
|
10
|
-
|
|
11
|
-
ListElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
12
|
-
ListElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ListElementModule, decorators: [{
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ListElementModule, decorators: [{
|
|
14
15
|
type: NgModule,
|
|
15
16
|
args: [{
|
|
16
17
|
declarations: [],
|
|
17
|
-
imports: [
|
|
18
|
-
CommonModule
|
|
19
|
-
]
|
|
18
|
+
imports: [CommonModule]
|
|
20
19
|
}]
|
|
21
20
|
}] });
|
|
22
21
|
|
|
23
|
-
/* tslint:disable */
|
|
24
22
|
/* eslint-disable */
|
|
25
23
|
// @generated
|
|
26
24
|
// This file was automatically generated and should not be edited.
|
|
27
25
|
/** Defines the operator of field compare */
|
|
28
26
|
var FieldFilterOperatorsDto;
|
|
29
27
|
(function (FieldFilterOperatorsDto) {
|
|
28
|
+
FieldFilterOperatorsDto["AnyEqDto"] = "ANY_EQ";
|
|
30
29
|
FieldFilterOperatorsDto["EqualsDto"] = "EQUALS";
|
|
31
30
|
FieldFilterOperatorsDto["GreaterEqualThanDto"] = "GREATER_EQUAL_THAN";
|
|
32
31
|
FieldFilterOperatorsDto["GreaterThanDto"] = "GREATER_THAN";
|
|
@@ -37,17 +36,7 @@ var FieldFilterOperatorsDto;
|
|
|
37
36
|
FieldFilterOperatorsDto["MatchRegExDto"] = "MATCH_REG_EX";
|
|
38
37
|
FieldFilterOperatorsDto["NotEqualsDto"] = "NOT_EQUALS";
|
|
39
38
|
FieldFilterOperatorsDto["NotInDto"] = "NOT_IN";
|
|
40
|
-
FieldFilterOperatorsDto["NotMatchRegExDto"] = "NOT_MATCH_REG_EX";
|
|
41
39
|
})(FieldFilterOperatorsDto || (FieldFilterOperatorsDto = {}));
|
|
42
|
-
/** The scope of the construction kit model */
|
|
43
|
-
var ScopesDto;
|
|
44
|
-
(function (ScopesDto) {
|
|
45
|
-
ScopesDto["ApplicationDto"] = "APPLICATION";
|
|
46
|
-
ScopesDto["Layer_2Dto"] = "LAYER_2";
|
|
47
|
-
ScopesDto["Layer_3Dto"] = "LAYER_3";
|
|
48
|
-
ScopesDto["Layer_4Dto"] = "LAYER_4";
|
|
49
|
-
ScopesDto["SystemDto"] = "SYSTEM";
|
|
50
|
-
})(ScopesDto || (ScopesDto = {}));
|
|
51
40
|
/** The type of search that is used (a text based search using text analysis (high performance, scoring, maybe more false positives) or filtering of attributes (lower performance, more exact results) */
|
|
52
41
|
var SearchFilterTypesDto;
|
|
53
42
|
(function (SearchFilterTypesDto) {
|
|
@@ -66,23 +55,37 @@ var SortOrdersDto;
|
|
|
66
55
|
//==============================================================
|
|
67
56
|
|
|
68
57
|
class OctoListNavigationDataInfo {
|
|
58
|
+
skip;
|
|
59
|
+
take;
|
|
60
|
+
searchFilter;
|
|
61
|
+
sort;
|
|
69
62
|
constructor() {
|
|
70
63
|
this.skip = 0;
|
|
71
64
|
this.take = 10;
|
|
72
65
|
}
|
|
73
66
|
}
|
|
74
67
|
class OctoListNavigationOptions {
|
|
68
|
+
language;
|
|
69
|
+
searchFilterType;
|
|
70
|
+
searchFilterAttributeNames;
|
|
75
71
|
constructor() {
|
|
76
72
|
this.language = null;
|
|
77
73
|
}
|
|
78
74
|
}
|
|
79
75
|
class OctoListNavigation {
|
|
76
|
+
paginator;
|
|
77
|
+
sort;
|
|
78
|
+
searchBox;
|
|
79
|
+
octoOptions;
|
|
80
|
+
loadDataRequest = new EventEmitter();
|
|
81
|
+
lastSortDirection;
|
|
82
|
+
lastSortField;
|
|
83
|
+
lastSearchText;
|
|
80
84
|
constructor(paginator, sort, searchBox, octoOptions) {
|
|
81
85
|
this.paginator = paginator;
|
|
82
86
|
this.sort = sort;
|
|
83
87
|
this.searchBox = searchBox;
|
|
84
88
|
this.octoOptions = octoOptions;
|
|
85
|
-
this.loadDataRequest = new EventEmitter();
|
|
86
89
|
this.lastSortDirection = null;
|
|
87
90
|
this.lastSortField = null;
|
|
88
91
|
this.lastSearchText = null;
|
|
@@ -100,18 +103,18 @@ class OctoListNavigation {
|
|
|
100
103
|
attributeNames: this.octoOptions.searchFilterAttributeNames
|
|
101
104
|
};
|
|
102
105
|
}
|
|
103
|
-
|
|
106
|
+
const sort = [];
|
|
104
107
|
if (sortField && sortDirection) {
|
|
105
108
|
sort.push({
|
|
106
109
|
attributeName: sortField,
|
|
107
|
-
sortOrder: sortDirection ===
|
|
110
|
+
sortOrder: sortDirection === 'asc' ? SortOrdersDto.AscendingDto : SortOrdersDto.DescendingDto
|
|
108
111
|
});
|
|
109
112
|
}
|
|
110
113
|
return {
|
|
111
114
|
skip: this.paginator.pageIndex * this.paginator.pageSize,
|
|
112
115
|
take: this.paginator.pageSize,
|
|
113
116
|
searchFilter: filter,
|
|
114
|
-
sort
|
|
117
|
+
sort
|
|
115
118
|
};
|
|
116
119
|
}
|
|
117
120
|
init() {
|
|
@@ -128,20 +131,30 @@ class OctoListNavigation {
|
|
|
128
131
|
}
|
|
129
132
|
this.lastSearchText = searchText;
|
|
130
133
|
if (!searchText && this.lastSortField) {
|
|
131
|
-
if (this.lastSortDirection
|
|
132
|
-
this.sort.sort({
|
|
134
|
+
if (this.lastSortDirection === 'asc') {
|
|
135
|
+
this.sort.sort({
|
|
136
|
+
id: this.lastSortField,
|
|
137
|
+
start: 'asc',
|
|
138
|
+
disableClear: true
|
|
139
|
+
});
|
|
133
140
|
}
|
|
134
|
-
else if (this.lastSortDirection
|
|
135
|
-
this.sort.sort({
|
|
141
|
+
else if (this.lastSortDirection === 'desc') {
|
|
142
|
+
this.sort.sort({
|
|
143
|
+
id: this.lastSortField,
|
|
144
|
+
start: 'desc',
|
|
145
|
+
disableClear: true
|
|
146
|
+
});
|
|
136
147
|
}
|
|
137
148
|
}
|
|
138
149
|
this.loadData();
|
|
139
150
|
}))
|
|
140
151
|
.subscribe();
|
|
141
152
|
// reset the paginator after sorting
|
|
142
|
-
this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);
|
|
153
|
+
this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));
|
|
143
154
|
merge(this.sort.sortChange, this.paginator.page)
|
|
144
|
-
.pipe(tap(() =>
|
|
155
|
+
.pipe(tap(() => {
|
|
156
|
+
this.loadData();
|
|
157
|
+
}))
|
|
145
158
|
.subscribe();
|
|
146
159
|
}
|
|
147
160
|
loadData() {
|
|
@@ -150,17 +163,19 @@ class OctoListNavigation {
|
|
|
150
163
|
}
|
|
151
164
|
|
|
152
165
|
class GraphQLDataSource extends DataSourceBase {
|
|
166
|
+
messageService;
|
|
153
167
|
constructor(messageService) {
|
|
154
168
|
super();
|
|
155
169
|
this.messageService = messageService;
|
|
156
170
|
}
|
|
157
171
|
loadData(tenantId, skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
158
172
|
super.onBeginLoad();
|
|
159
|
-
this.executeLoad(tenantId, skip, take, searchFilter, fieldFilter, sort)
|
|
160
|
-
|
|
173
|
+
this.executeLoad(tenantId, skip, take, searchFilter, fieldFilter, sort)
|
|
174
|
+
.pipe(catchError((error) => {
|
|
175
|
+
this.messageService.showError(error, 'Error during load of data');
|
|
161
176
|
return of(new PagedResultDto());
|
|
162
177
|
}))
|
|
163
|
-
.subscribe(pagedResult => {
|
|
178
|
+
.subscribe((pagedResult) => {
|
|
164
179
|
super.onCompleteLoad(pagedResult);
|
|
165
180
|
});
|
|
166
181
|
}
|
|
@@ -169,6 +184,72 @@ class GraphQLDataSource extends DataSourceBase {
|
|
|
169
184
|
}
|
|
170
185
|
}
|
|
171
186
|
|
|
187
|
+
class GraphQlDataSource extends DataSourceBase {
|
|
188
|
+
}
|
|
189
|
+
class NewGraphQlDataSource extends GraphQlDataSource {
|
|
190
|
+
messageService;
|
|
191
|
+
query;
|
|
192
|
+
defaultSort;
|
|
193
|
+
queryRef;
|
|
194
|
+
subscription;
|
|
195
|
+
constructor(messageService, query, defaultSort = null) {
|
|
196
|
+
super();
|
|
197
|
+
this.messageService = messageService;
|
|
198
|
+
this.query = query;
|
|
199
|
+
this.defaultSort = defaultSort;
|
|
200
|
+
this.queryRef = null;
|
|
201
|
+
this.subscription = null;
|
|
202
|
+
}
|
|
203
|
+
clear() {
|
|
204
|
+
super.clear();
|
|
205
|
+
this.queryRef?.stopPolling();
|
|
206
|
+
this.queryRef = null;
|
|
207
|
+
this.subscription?.unsubscribe();
|
|
208
|
+
this.subscription = null;
|
|
209
|
+
}
|
|
210
|
+
async refetch() {
|
|
211
|
+
await this.queryRef?.refetch();
|
|
212
|
+
}
|
|
213
|
+
async refetchWith(skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
214
|
+
const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);
|
|
215
|
+
await this.queryRef?.refetch(variables);
|
|
216
|
+
}
|
|
217
|
+
createVariables(skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
218
|
+
// Default sort
|
|
219
|
+
if ((!sort || (sort && sort.length === 0)) && searchFilter === null) {
|
|
220
|
+
sort = new Array();
|
|
221
|
+
if (this.defaultSort) {
|
|
222
|
+
sort = this.defaultSort;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return {
|
|
226
|
+
first: take,
|
|
227
|
+
after: GraphQL.offsetToCursor(skip),
|
|
228
|
+
sort,
|
|
229
|
+
searchFilter,
|
|
230
|
+
fieldFilters: fieldFilter
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
loadData(skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
234
|
+
super.onBeginLoad();
|
|
235
|
+
this.clear();
|
|
236
|
+
const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);
|
|
237
|
+
this.queryRef = this.query.watch(variables);
|
|
238
|
+
this.subscription = this.queryRef.valueChanges
|
|
239
|
+
.pipe(map((v, i) => this.executeLoad(v, i)))
|
|
240
|
+
.pipe(catchError((error) => {
|
|
241
|
+
this.messageService.showError(error, 'Error during load of data');
|
|
242
|
+
return of(new PagedResultDto());
|
|
243
|
+
}))
|
|
244
|
+
.subscribe((pagedResult) => {
|
|
245
|
+
super.onCompleteLoad(pagedResult);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
executeLoad(value, index) {
|
|
249
|
+
return new PagedResultDto();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
172
253
|
/*
|
|
173
254
|
* Public API Surface of octo-ui
|
|
174
255
|
*/
|
|
@@ -177,5 +258,5 @@ class GraphQLDataSource extends DataSourceBase {
|
|
|
177
258
|
* Generated bundle index. Do not edit.
|
|
178
259
|
*/
|
|
179
260
|
|
|
180
|
-
export { FieldFilterOperatorsDto, GraphQLDataSource, ListElementModule, OctoListNavigation, OctoListNavigationDataInfo, OctoListNavigationOptions,
|
|
261
|
+
export { FieldFilterOperatorsDto, GraphQLDataSource, GraphQlDataSource, ListElementModule, NewGraphQlDataSource, OctoListNavigation, OctoListNavigationDataInfo, OctoListNavigationOptions, SearchFilterTypesDto, SortOrdersDto };
|
|
181
262
|
//# sourceMappingURL=meshmakers-octo-ui.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meshmakers-octo-ui.mjs","sources":["../../../../projects/meshmakers/octo-ui/src/lib/list-element/list-element.module.ts","../../../../projects/meshmakers/octo-ui/src/lib/list-element/globalTypes.ts","../../../../projects/meshmakers/octo-ui/src/lib/list-element/octoListNavigation.ts","../../../../projects/meshmakers/octo-ui/src/lib/list-element/graphQLDataSource.ts","../../../../projects/meshmakers/octo-ui/src/lib/list-element/newGraphQlDataSource.ts","../../../../projects/meshmakers/octo-ui/src/public-api.ts","../../../../projects/meshmakers/octo-ui/src/meshmakers-octo-ui.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule]\n})\nexport class ListElementModule {}\n","/* eslint-disable */\n// @generated\n// This file was automatically generated and should not be edited.\n\n//==============================================================\n// START Enums and Input Objects\n//==============================================================\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\n\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n BigInt: { input: any; output: any; }\n CkAttributeId: { input: string; output: string; }\n CkEnumId: { input: string; output: string; }\n CkRecordId: { input: string; output: string; }\n CkTypeId: { input: string; output: string; }\n DateTime: { input: any; output: any; }\n Decimal: { input: any; output: any; }\n LargeBinary: { input: any; output: any; }\n OctoObjectId: { input: string; output: string; }\n SimpleScalarType: { input: any; output: any; }\n Uri: { input: any; output: any; }\n};\n\nexport type FieldFilterDto = {\n attributeName: Scalars['String']['input']\n comparisonValue?: InputMaybe<Scalars['SimpleScalarType']['input']>;\n operator?: InputMaybe<FieldFilterOperatorsDto>;\n};\n\n/** Defines the operator of field compare */\nexport enum FieldFilterOperatorsDto {\n AnyEqDto = 'ANY_EQ',\n EqualsDto = 'EQUALS',\n GreaterEqualThanDto = 'GREATER_EQUAL_THAN',\n GreaterThanDto = 'GREATER_THAN',\n InDto = 'IN',\n LessEqualThanDto = 'LESS_EQUAL_THAN',\n LessThanDto = 'LESS_THAN',\n LikeDto = 'LIKE',\n MatchRegExDto = 'MATCH_REG_EX',\n NotEqualsDto = 'NOT_EQUALS',\n NotInDto = 'NOT_IN'\n}\n\n\nexport type SearchFilterDto = {\n attributeNames?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n language?: InputMaybe<Scalars['String']['input']>;\n searchTerm: Scalars['String']['input'];\n type?: InputMaybe<SearchFilterTypesDto>;\n};\n\n/** The type of search that is used (a text based search using text analysis (high performance, scoring, maybe more false positives) or filtering of attributes (lower performance, more exact results) */\nexport enum SearchFilterTypesDto {\n AttributeFilterDto = 'ATTRIBUTE_FILTER',\n TextSearchDto = 'TEXT_SEARCH'\n}\n\nexport type SortDto = {\n attributeName: Scalars['String']['input'];\n sortOrder?: InputMaybe<SortOrdersDto>;\n};\n\n/** Defines the sort order */\nexport enum SortOrdersDto {\n AscendingDto = 'ASCENDING',\n DefaultDto = 'DEFAULT',\n DescendingDto = 'DESCENDING'\n}\n\n//==============================================================\n// END Enums and Input Objects\n//==============================================================\n","import { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, SortDirection } from '@angular/material/sort';\nimport { ElementRef, EventEmitter } from '@angular/core';\nimport { fromEvent, merge } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\nimport { SearchFilterDto, SearchFilterTypesDto, SortDto, SortOrdersDto } from './globalTypes';\n\nexport class OctoListNavigationDataInfo {\n skip: number;\n take: number;\n searchFilter?: SearchFilterDto;\n sort?: SortDto[];\n\n constructor() {\n this.skip = 0;\n this.take = 10;\n }\n}\n\nexport class OctoListNavigationOptions {\n language: string | null;\n searchFilterType?: SearchFilterTypesDto;\n searchFilterAttributeNames?: string[];\n\n constructor() {\n this.language = null;\n }\n}\n\nexport class OctoListNavigation {\n public loadDataRequest = new EventEmitter<OctoListNavigationDataInfo>();\n\n lastSortDirection: SortDirection | null;\n lastSortField: string | null;\n lastSearchText: string | null;\n\n constructor(\n private readonly paginator: MatPaginator,\n private readonly sort: MatSort,\n private readonly searchBox: ElementRef<HTMLInputElement>,\n private readonly octoOptions: OctoListNavigationOptions\n ) {\n this.lastSortDirection = null;\n this.lastSortField = null;\n this.lastSearchText = null;\n }\n\n public get loadDataInfo(): OctoListNavigationDataInfo {\n const filterString = this.searchBox.nativeElement.value;\n const sortField = this.sort.active;\n const sortDirection = this.sort.direction;\n\n let filter = null;\n if (filterString) {\n filter = <SearchFilterDto>{\n language: this.octoOptions.language,\n searchTerm: filterString,\n type: this.octoOptions.searchFilterType,\n attributeNames: this.octoOptions.searchFilterAttributeNames\n };\n }\n\n const sort = [];\n if (sortField && sortDirection) {\n sort.push(<SortDto>{\n attributeName: sortField,\n sortOrder: sortDirection === 'asc' ? SortOrdersDto.AscendingDto : SortOrdersDto.DescendingDto\n });\n }\n\n return <OctoListNavigationDataInfo>{\n skip: this.paginator.pageIndex * this.paginator.pageSize,\n take: this.paginator.pageSize,\n searchFilter: filter,\n sort\n };\n }\n\n init(): void {\n // server-side search\n fromEvent<ElementRef>(this.searchBox.nativeElement, 'keyup')\n .pipe(\n debounceTime(500),\n distinctUntilChanged(),\n tap(() => {\n this.paginator.pageIndex = 0;\n\n const searchText = this.searchBox.nativeElement.value;\n\n if (!this.lastSearchText && searchText) {\n this.lastSortDirection = this.sort.direction;\n this.lastSortField = this.sort.active;\n\n // Reset sorting to see the score rating (default sorting returned from server)\n this.sort.sort({ id: '', start: 'asc', disableClear: false });\n }\n\n this.lastSearchText = searchText;\n\n if (!searchText && this.lastSortField) {\n if (this.lastSortDirection === 'asc') {\n this.sort.sort({\n id: this.lastSortField,\n start: 'asc',\n disableClear: true\n });\n } else if (this.lastSortDirection === 'desc') {\n this.sort.sort({\n id: this.lastSortField,\n start: 'desc',\n disableClear: true\n });\n }\n }\n\n this.loadData();\n })\n )\n .subscribe();\n\n // reset the paginator after sorting\n this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));\n\n merge(this.sort.sortChange, this.paginator.page)\n .pipe(\n tap(() => {\n this.loadData();\n })\n )\n .subscribe();\n }\n\n private loadData(): void {\n this.loadDataRequest.emit(this.loadDataInfo);\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { DataSourceBase, MessageService, PagedResultDto } from '@meshmakers/shared-services';\nimport { FieldFilterDto, SearchFilterDto, SortDto } from './globalTypes';\n\nexport class GraphQLDataSource<TDto> extends DataSourceBase<TDto> {\n constructor(protected messageService: MessageService) {\n super();\n }\n\n public loadData(\n tenantId: string,\n skip: number = 0,\n take: number = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): void {\n super.onBeginLoad();\n\n this.executeLoad(tenantId, skip, take, searchFilter, fieldFilter, sort)\n .pipe(\n catchError((error: string) => {\n this.messageService.showError(error, 'Error during load of data');\n\n return of(new PagedResultDto<TDto>());\n })\n )\n .subscribe((pagedResult) => {\n super.onCompleteLoad(pagedResult);\n });\n }\n\n protected executeLoad(\n tenantId: string,\n skip: number = 0,\n take: number = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): Observable<PagedResultDto<TDto>> {\n return of(new PagedResultDto<TDto>());\n }\n}\n","import { map, of, Subscription } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { DataSourceBase, MessageService, PagedResultDto } from '@meshmakers/shared-services';\nimport { FieldFilterDto, InputMaybe, SearchFilterDto, SortDto } from './globalTypes';\nimport { Query, QueryRef } from 'apollo-angular';\nimport type { ApolloQueryResult, OperationVariables } from '@apollo/client/core';\nimport { GraphQL } from '@meshmakers/octo-services';\n\nexport interface IQueryVariablesDto extends OperationVariables {\n first?: number | null | undefined;\n after?: string | null | undefined;\n sort?: InputMaybe<InputMaybe<SortDto> | Array<InputMaybe<SortDto>>> | undefined;\n searchFilter?: SearchFilterDto | null | undefined;\n fieldFilters?: InputMaybe<Array<InputMaybe<FieldFilterDto>> | InputMaybe<FieldFilterDto>>;\n}\n\nexport abstract class GraphQlDataSource<TDto> extends DataSourceBase<TDto> {\n public abstract refetch(): Promise<void>;\n\n public abstract refetchWith(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): Promise<void>;\n\n public abstract loadData(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): void;\n}\n\nexport class NewGraphQlDataSource<TDto, TQueryDto, TVariablesDto extends IQueryVariablesDto> extends GraphQlDataSource<TDto> {\n private queryRef: QueryRef<TQueryDto, TVariablesDto> | null;\n private subscription: Subscription | null;\n\n constructor(\n protected messageService: MessageService,\n private readonly query: Query<TQueryDto, TVariablesDto>,\n private readonly defaultSort: SortDto[] | null = null\n ) {\n super();\n this.queryRef = null;\n this.subscription = null;\n }\n\n override clear(): void {\n super.clear();\n this.queryRef?.stopPolling();\n this.queryRef = null;\n this.subscription?.unsubscribe();\n this.subscription = null;\n }\n\n public async refetch(): Promise<void> {\n await this.queryRef?.refetch();\n }\n\n public async refetchWith(\n skip: number = 0,\n take: number = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): Promise<void> {\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n await this.queryRef?.refetch(variables);\n }\n\n protected createVariables(\n skip: number = 0,\n take: number = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): TVariablesDto {\n // Default sort\n if ((!sort || (sort && sort.length === 0)) && searchFilter === null) {\n sort = new Array<SortDto>();\n if (this.defaultSort) {\n sort = this.defaultSort;\n }\n }\n\n return <TVariablesDto>{\n first: take,\n after: GraphQL.offsetToCursor(skip),\n sort,\n searchFilter,\n fieldFilters: fieldFilter\n };\n }\n\n public loadData(\n skip: number = 0,\n take: number = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): void {\n super.onBeginLoad();\n this.clear();\n\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n this.queryRef = this.query.watch(variables);\n\n this.subscription = this.queryRef.valueChanges\n .pipe(map((v, i) => this.executeLoad(v, i)))\n .pipe(\n catchError((error: string) => {\n this.messageService.showError(error, 'Error during load of data');\n\n return of(new PagedResultDto<TDto>());\n })\n )\n .subscribe((pagedResult) => {\n super.onCompleteLoad(pagedResult);\n });\n }\n\n protected executeLoad(value: ApolloQueryResult<TQueryDto>, index: number): PagedResultDto<TDto> {\n return new PagedResultDto<TDto>();\n }\n}\n","/*\n * Public API Surface of octo-ui\n */\n\nexport * from './lib/list-element/list-element.module';\nexport * from './lib/list-element/octoListNavigation';\nexport * from './lib/list-element/graphQLDataSource';\nexport * from './lib/list-element/newGraphQlDataSource';\nexport * from './lib/list-element/globalTypes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|