@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.
@@ -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
- ListElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ListElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
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
- let sort = [];
106
+ const sort = [];
104
107
  if (sortField && sortDirection) {
105
108
  sort.push({
106
109
  attributeName: sortField,
107
- sortOrder: sortDirection === "asc" ? SortOrdersDto.AscendingDto : SortOrdersDto.DescendingDto
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: 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 == "asc") {
132
- this.sort.sort({ id: this.lastSortField, start: 'asc', disableClear: true });
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 == "desc") {
135
- this.sort.sort({ id: this.lastSortField, start: 'desc', disableClear: true });
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(() => this.loadData()))
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).pipe(catchError((error) => {
160
- this.messageService.showError(error, "Error during load of data");
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, ScopesDto, SearchFilterTypesDto, SortOrdersDto };
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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"}