@meshmakers/octo-ui 0.0.0-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/README.md +27 -0
- package/esm2020/lib/list-element/globalTypes.mjs +45 -0
- package/esm2020/lib/list-element/graphQLDataSource.mjs +23 -0
- package/esm2020/lib/list-element/list-element.module.mjs +18 -0
- package/esm2020/lib/list-element/octoListNavigation.mjs +78 -0
- package/esm2020/meshmakers-octo-ui.mjs +5 -0
- package/esm2020/public-api.mjs +8 -0
- package/fesm2015/meshmakers-octo-ui.mjs +171 -0
- package/fesm2015/meshmakers-octo-ui.mjs.map +1 -0
- package/fesm2020/meshmakers-octo-ui.mjs +171 -0
- package/fesm2020/meshmakers-octo-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/list-element/globalTypes.d.ts +63 -0
- package/lib/list-element/graphQLDataSource.d.ts +9 -0
- package/lib/list-element/list-element.module.d.ts +7 -0
- package/lib/list-element/octoListNavigation.d.ts +29 -0
- package/package.json +31 -0
- package/public-api.d.ts +4 -0
package/README.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# OspUi
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.0.1.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project osp-ui` to generate a new component. You can also
|
|
8
|
+
use `ng generate directive|pipe|service|class|guard|interface|enum|module --project osp-ui`.
|
|
9
|
+
> Note: Don't forget to add `--project osp-ui` or else it will be added to the default project in your `angular.json`
|
|
10
|
+
> file.
|
|
11
|
+
|
|
12
|
+
## Build
|
|
13
|
+
|
|
14
|
+
Run `ng build osp-ui` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
15
|
+
|
|
16
|
+
## Publishing
|
|
17
|
+
|
|
18
|
+
After building your library with `ng build osp-ui`, go to the dist folder `cd dist/osp-ui` and run `npm publish`.
|
|
19
|
+
|
|
20
|
+
## Running unit tests
|
|
21
|
+
|
|
22
|
+
Run `ng test osp-ui` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
23
|
+
|
|
24
|
+
## Further help
|
|
25
|
+
|
|
26
|
+
To get more help on the Angular CLI use `ng help` or go check out
|
|
27
|
+
the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
// @generated
|
|
4
|
+
// This file was automatically generated and should not be edited.
|
|
5
|
+
/** Defines the operator of field compare */
|
|
6
|
+
export var FieldFilterOperatorsDto;
|
|
7
|
+
(function (FieldFilterOperatorsDto) {
|
|
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["NotMatchRegExDto"] = "NOT_MATCH_REG_EX";
|
|
19
|
+
})(FieldFilterOperatorsDto || (FieldFilterOperatorsDto = {}));
|
|
20
|
+
/** The scope of the construction kit model */
|
|
21
|
+
export var ScopesDto;
|
|
22
|
+
(function (ScopesDto) {
|
|
23
|
+
ScopesDto["ApplicationDto"] = "APPLICATION";
|
|
24
|
+
ScopesDto["Layer_2Dto"] = "LAYER_2";
|
|
25
|
+
ScopesDto["Layer_3Dto"] = "LAYER_3";
|
|
26
|
+
ScopesDto["Layer_4Dto"] = "LAYER_4";
|
|
27
|
+
ScopesDto["SystemDto"] = "SYSTEM";
|
|
28
|
+
})(ScopesDto || (ScopesDto = {}));
|
|
29
|
+
/** 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) */
|
|
30
|
+
export var SearchFilterTypesDto;
|
|
31
|
+
(function (SearchFilterTypesDto) {
|
|
32
|
+
SearchFilterTypesDto["AttributeFilterDto"] = "ATTRIBUTE_FILTER";
|
|
33
|
+
SearchFilterTypesDto["TextSearchDto"] = "TEXT_SEARCH";
|
|
34
|
+
})(SearchFilterTypesDto || (SearchFilterTypesDto = {}));
|
|
35
|
+
/** Defines the sort order */
|
|
36
|
+
export var SortOrdersDto;
|
|
37
|
+
(function (SortOrdersDto) {
|
|
38
|
+
SortOrdersDto["AscendingDto"] = "ASCENDING";
|
|
39
|
+
SortOrdersDto["DefaultDto"] = "DEFAULT";
|
|
40
|
+
SortOrdersDto["DescendingDto"] = "DESCENDING";
|
|
41
|
+
})(SortOrdersDto || (SortOrdersDto = {}));
|
|
42
|
+
//==============================================================
|
|
43
|
+
// END Enums and Input Objects
|
|
44
|
+
//==============================================================
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL29jdG8tdWkvc3JjL2xpYi9saXN0LWVsZW1lbnQvZ2xvYmFsVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixhQUFhO0FBQ2Isa0VBQWtFO0FBNEJsRSw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFOLElBQVksdUJBWVg7QUFaRCxXQUFZLHVCQUF1QjtJQUNqQywrQ0FBb0IsQ0FBQTtJQUNwQixxRUFBMEMsQ0FBQTtJQUMxQywwREFBK0IsQ0FBQTtJQUMvQix1Q0FBWSxDQUFBO0lBQ1osK0RBQW9DLENBQUE7SUFDcEMsb0RBQXlCLENBQUE7SUFDekIsMkNBQWdCLENBQUE7SUFDaEIseURBQThCLENBQUE7SUFDOUIsc0RBQTJCLENBQUE7SUFDM0IsOENBQW1CLENBQUE7SUFDbkIsZ0VBQXFDLENBQUE7QUFDdkMsQ0FBQyxFQVpXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFZbEM7QUFFRCw4Q0FBOEM7QUFDOUMsTUFBTSxDQUFOLElBQVksU0FNWDtBQU5ELFdBQVksU0FBUztJQUNuQiwyQ0FBOEIsQ0FBQTtJQUM5QixtQ0FBc0IsQ0FBQTtJQUN0QixtQ0FBc0IsQ0FBQTtJQUN0QixtQ0FBc0IsQ0FBQTtJQUN0QixpQ0FBb0IsQ0FBQTtBQUN0QixDQUFDLEVBTlcsU0FBUyxLQUFULFNBQVMsUUFNcEI7QUFTRCwwTUFBME07QUFDMU0sTUFBTSxDQUFOLElBQVksb0JBR1g7QUFIRCxXQUFZLG9CQUFvQjtJQUM5QiwrREFBdUMsQ0FBQTtJQUN2QyxxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBSFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUcvQjtBQU9ELDZCQUE2QjtBQUM3QixNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLDJDQUEwQixDQUFBO0lBQzFCLHVDQUFzQixDQUFBO0lBQ3RCLDZDQUE0QixDQUFBO0FBQzlCLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUVELGdFQUFnRTtBQUNoRSw4QkFBOEI7QUFDOUIsZ0VBQWdFIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAZ2VuZXJhdGVkXG4vLyBUaGlzIGZpbGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGFuZCBzaG91bGQgbm90IGJlIGVkaXRlZC5cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1RBUlQgRW51bXMgYW5kIElucHV0IE9iamVjdHNcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCB0eXBlIE1heWJlPFQ+ID0gVCB8IG51bGw7XG5leHBvcnQgdHlwZSBJbnB1dE1heWJlPFQ+ID0gTWF5YmU8VD47XG5cbi8qKiBBbGwgYnVpbHQtaW4gYW5kIGN1c3RvbSBzY2FsYXJzLCBtYXBwZWQgdG8gdGhlaXIgYWN0dWFsIHZhbHVlcyAqL1xuZXhwb3J0IHR5cGUgU2NhbGFycyA9IHtcbiAgSUQ6IHN0cmluZztcbiAgU3RyaW5nOiBzdHJpbmc7XG4gIEJvb2xlYW46IGJvb2xlYW47XG4gIEludDogbnVtYmVyO1xuICBGbG9hdDogbnVtYmVyO1xuICAvKiogVGhlIGBEYXRlVGltZWAgc2NhbGFyIHR5cGUgcmVwcmVzZW50cyBhIGRhdGUgYW5kIHRpbWUuIGBEYXRlVGltZWAgZXhwZWN0cyB0aW1lc3RhbXBzIHRvIGJlIGZvcm1hdHRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFtJU08tODYwMV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEpIHN0YW5kYXJkLiAqL1xuICBEYXRlVGltZTogYW55O1xuICBEZWNpbWFsOiBhbnk7XG4gIE9zcE9iamVjdElkVHlwZTogYW55O1xuICBTaW1wbGVTY2FsYXJUeXBlOiBhbnk7XG59O1xuXG5leHBvcnQgdHlwZSBGaWVsZEZpbHRlckR0byA9IHtcbiAgYXR0cmlidXRlTmFtZTogU2NhbGFyc1snU3RyaW5nJ107XG4gIGNvbXBhcmlzb25WYWx1ZT86IElucHV0TWF5YmU8U2NhbGFyc1snU2ltcGxlU2NhbGFyVHlwZSddPjtcbiAgb3BlcmF0b3I/OiBJbnB1dE1heWJlPEZpZWxkRmlsdGVyT3BlcmF0b3JzRHRvPjtcbn07XG5cbi8qKiBEZWZpbmVzIHRoZSBvcGVyYXRvciBvZiBmaWVsZCBjb21wYXJlICovXG5leHBvcnQgZW51bSBGaWVsZEZpbHRlck9wZXJhdG9yc0R0byB7XG4gIEVxdWFsc0R0byA9ICdFUVVBTFMnLFxuICBHcmVhdGVyRXF1YWxUaGFuRHRvID0gJ0dSRUFURVJfRVFVQUxfVEhBTicsXG4gIEdyZWF0ZXJUaGFuRHRvID0gJ0dSRUFURVJfVEhBTicsXG4gIEluRHRvID0gJ0lOJyxcbiAgTGVzc0VxdWFsVGhhbkR0byA9ICdMRVNTX0VRVUFMX1RIQU4nLFxuICBMZXNzVGhhbkR0byA9ICdMRVNTX1RIQU4nLFxuICBMaWtlRHRvID0gJ0xJS0UnLFxuICBNYXRjaFJlZ0V4RHRvID0gJ01BVENIX1JFR19FWCcsXG4gIE5vdEVxdWFsc0R0byA9ICdOT1RfRVFVQUxTJyxcbiAgTm90SW5EdG8gPSAnTk9UX0lOJyxcbiAgTm90TWF0Y2hSZWdFeER0byA9ICdOT1RfTUFUQ0hfUkVHX0VYJ1xufVxuXG4vKiogVGhlIHNjb3BlIG9mIHRoZSBjb25zdHJ1Y3Rpb24ga2l0IG1vZGVsICovXG5leHBvcnQgZW51bSBTY29wZXNEdG8ge1xuICBBcHBsaWNhdGlvbkR0byA9ICdBUFBMSUNBVElPTicsXG4gIExheWVyXzJEdG8gPSAnTEFZRVJfMicsXG4gIExheWVyXzNEdG8gPSAnTEFZRVJfMycsXG4gIExheWVyXzREdG8gPSAnTEFZRVJfNCcsXG4gIFN5c3RlbUR0byA9ICdTWVNURU0nXG59XG5cbmV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlckR0byA9IHtcbiAgYXR0cmlidXRlTmFtZXM/OiBJbnB1dE1heWJlPEFycmF5PElucHV0TWF5YmU8U2NhbGFyc1snU3RyaW5nJ10+Pj47XG4gIGxhbmd1YWdlPzogSW5wdXRNYXliZTxTY2FsYXJzWydTdHJpbmcnXT47XG4gIHNlYXJjaFRlcm06IFNjYWxhcnNbJ1N0cmluZyddO1xuICB0eXBlPzogSW5wdXRNYXliZTxTZWFyY2hGaWx0ZXJUeXBlc0R0bz47XG59O1xuXG4vKiogVGhlIHR5cGUgb2Ygc2VhcmNoIHRoYXQgaXMgdXNlZCAoYSB0ZXh0IGJhc2VkIHNlYXJjaCB1c2luZyB0ZXh0IGFuYWx5c2lzIChoaWdoIHBlcmZvcm1hbmNlLCBzY29yaW5nLCBtYXliZSBtb3JlIGZhbHNlIHBvc2l0aXZlcykgb3IgZmlsdGVyaW5nIG9mIGF0dHJpYnV0ZXMgKGxvd2VyIHBlcmZvcm1hbmNlLCBtb3JlIGV4YWN0IHJlc3VsdHMpICovXG5leHBvcnQgZW51bSBTZWFyY2hGaWx0ZXJUeXBlc0R0byB7XG4gIEF0dHJpYnV0ZUZpbHRlckR0byA9ICdBVFRSSUJVVEVfRklMVEVSJyxcbiAgVGV4dFNlYXJjaER0byA9ICdURVhUX1NFQVJDSCdcbn1cblxuZXhwb3J0IHR5cGUgU29ydER0byA9IHtcbiAgYXR0cmlidXRlTmFtZTogU2NhbGFyc1snU3RyaW5nJ107XG4gIHNvcnRPcmRlcj86IElucHV0TWF5YmU8U29ydE9yZGVyc0R0bz47XG59O1xuXG4vKiogRGVmaW5lcyB0aGUgc29ydCBvcmRlciAqL1xuZXhwb3J0IGVudW0gU29ydE9yZGVyc0R0byB7XG4gIEFzY2VuZGluZ0R0byA9ICdBU0NFTkRJTkcnLFxuICBEZWZhdWx0RHRvID0gJ0RFRkFVTFQnLFxuICBEZXNjZW5kaW5nRHRvID0gJ0RFU0NFTkRJTkcnXG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVORCBFbnVtcyBhbmQgSW5wdXQgT2JqZWN0c1xuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
constructor(messageService) {
|
|
6
|
+
super();
|
|
7
|
+
this.messageService = messageService;
|
|
8
|
+
}
|
|
9
|
+
loadData(tenantId, skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
10
|
+
super.onBeginLoad();
|
|
11
|
+
this.executeLoad(tenantId, skip, take, searchFilter, fieldFilter, sort).pipe(catchError((error) => {
|
|
12
|
+
this.messageService.showError(error, "Error during load of data");
|
|
13
|
+
return of(new PagedResultDto());
|
|
14
|
+
}))
|
|
15
|
+
.subscribe(pagedResult => {
|
|
16
|
+
super.onCompleteLoad(pagedResult);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
executeLoad(tenantId, skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
20
|
+
return of(new PagedResultDto());
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhRTERhdGFTb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL29jdG8tdWkvc3JjL2xpYi9saXN0LWVsZW1lbnQvZ3JhcGhRTERhdGFTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGNBQWMsRUFBa0IsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHM0YsTUFBTSxPQUFPLGlCQUF3QixTQUFRLGNBQW9CO0lBRS9ELFlBQXNCLGNBQThCO1FBQ2xELEtBQUssRUFBRSxDQUFDO1FBRFksbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBRXBELENBQUM7SUFFTSxRQUFRLENBQUMsUUFBZ0IsRUFBRSxPQUFlLENBQUMsRUFBRSxPQUFlLEVBQUUsRUFBRSxlQUFnQyxJQUFJLEVBQUUsY0FBZ0MsSUFBSSxFQUFFLE9BQWtCLElBQUk7UUFFdkssS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzFFLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBRW5CLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1lBRWxFLE9BQU8sRUFBRSxDQUFDLElBQUksY0FBYyxFQUFRLENBQUMsQ0FBQTtRQUN2QyxDQUFDLENBQUMsQ0FBQzthQUNGLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUV2QixLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQWUsQ0FBQyxFQUFFLE9BQWUsRUFBRSxFQUFFLGVBQWdDLElBQUksRUFBRSxjQUFnQyxJQUFJLEVBQUUsT0FBa0IsSUFBSTtRQUM3SyxPQUFPLEVBQUUsQ0FBQyxJQUFJLGNBQWMsRUFBUSxDQUFDLENBQUE7SUFDdkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge0RhdGFTb3VyY2VCYXNlLCBNZXNzYWdlU2VydmljZSwgUGFnZWRSZXN1bHREdG99IGZyb20gXCJAbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXNcIjtcbmltcG9ydCB7RmllbGRGaWx0ZXJEdG8sIFNlYXJjaEZpbHRlckR0bywgU29ydER0b30gZnJvbSBcIi4vZ2xvYmFsVHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIEdyYXBoUUxEYXRhU291cmNlPFREdG8+IGV4dGVuZHMgRGF0YVNvdXJjZUJhc2U8VER0bz4ge1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGxvYWREYXRhKHRlbmFudElkOiBzdHJpbmcsIHNraXA6IG51bWJlciA9IDAsIHRha2U6IG51bWJlciA9IDEwLCBzZWFyY2hGaWx0ZXI6IFNlYXJjaEZpbHRlckR0byA9IG51bGwsIGZpZWxkRmlsdGVyOiBGaWVsZEZpbHRlckR0b1tdID0gbnVsbCwgc29ydDogU29ydER0b1tdID0gbnVsbCkge1xuXG4gICAgc3VwZXIub25CZWdpbkxvYWQoKTtcblxuICAgIHRoaXMuZXhlY3V0ZUxvYWQodGVuYW50SWQsIHNraXAsIHRha2UsIHNlYXJjaEZpbHRlciwgZmllbGRGaWx0ZXIsIHNvcnQpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yLCBcIkVycm9yIGR1cmluZyBsb2FkIG9mIGRhdGFcIik7XG5cbiAgICAgICAgcmV0dXJuIG9mKG5ldyBQYWdlZFJlc3VsdER0bzxURHRvPigpKVxuICAgICAgfSkpXG4gICAgICAuc3Vic2NyaWJlKHBhZ2VkUmVzdWx0ID0+IHtcblxuICAgICAgICBzdXBlci5vbkNvbXBsZXRlTG9hZChwYWdlZFJlc3VsdCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBleGVjdXRlTG9hZCh0ZW5hbnRJZDogc3RyaW5nLCBza2lwOiBudW1iZXIgPSAwLCB0YWtlOiBudW1iZXIgPSAxMCwgc2VhcmNoRmlsdGVyOiBTZWFyY2hGaWx0ZXJEdG8gPSBudWxsLCBmaWVsZEZpbHRlcjogRmllbGRGaWx0ZXJEdG9bXSA9IG51bGwsIHNvcnQ6IFNvcnREdG9bXSA9IG51bGwpOiBPYnNlcnZhYmxlPFBhZ2VkUmVzdWx0RHRvPFREdG8+PiB7XG4gICAgcmV0dXJuIG9mKG5ldyBQYWdlZFJlc3VsdER0bzxURHRvPigpKVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ListElementModule {
|
|
5
|
+
}
|
|
6
|
+
ListElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
ListElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
8
|
+
ListElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
declarations: [],
|
|
13
|
+
imports: [
|
|
14
|
+
CommonModule
|
|
15
|
+
]
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1lbGVtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvb2N0by11aS9zcmMvbGliL2xpc3QtZWxlbWVudC9saXN0LWVsZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQVM3QyxNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsWUFIMUIsWUFBWTsrR0FHSCxpQkFBaUIsWUFIMUIsWUFBWTsyRkFHSCxpQkFBaUI7a0JBTjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlzdEVsZW1lbnRNb2R1bGUge1xufVxuIl19
|
|
@@ -0,0 +1,78 @@
|
|
|
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
|
+
}
|
|
7
|
+
export class OctoListNavigationOptions {
|
|
8
|
+
}
|
|
9
|
+
export class OctoListNavigation {
|
|
10
|
+
constructor(paginator, sort, searchBox, octoOptions) {
|
|
11
|
+
this.paginator = paginator;
|
|
12
|
+
this.sort = sort;
|
|
13
|
+
this.searchBox = searchBox;
|
|
14
|
+
this.octoOptions = octoOptions;
|
|
15
|
+
this.loadDataRequest = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
get loadDataInfo() {
|
|
18
|
+
const filterString = this.searchBox.nativeElement.value;
|
|
19
|
+
const sortField = this.sort.active;
|
|
20
|
+
const sortDirection = this.sort.direction;
|
|
21
|
+
let filter = null;
|
|
22
|
+
if (filterString) {
|
|
23
|
+
filter = {
|
|
24
|
+
language: this.octoOptions.language,
|
|
25
|
+
searchTerm: filterString,
|
|
26
|
+
type: this.octoOptions.searchFilterType,
|
|
27
|
+
attributeNames: this.octoOptions.searchFilterAttributeNames
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
let sort = [];
|
|
31
|
+
if (sortField && sortDirection) {
|
|
32
|
+
sort.push({
|
|
33
|
+
attributeName: sortField,
|
|
34
|
+
sortOrder: sortDirection === "asc" ? SortOrdersDto.AscendingDto : SortOrdersDto.DescendingDto
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
skip: this.paginator.pageIndex * this.paginator.pageSize,
|
|
39
|
+
take: this.paginator.pageSize,
|
|
40
|
+
searchFilter: filter,
|
|
41
|
+
sort: sort
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
init() {
|
|
45
|
+
// server-side search
|
|
46
|
+
fromEvent(this.searchBox.nativeElement, 'keyup')
|
|
47
|
+
.pipe(debounceTime(500), distinctUntilChanged(), tap(() => {
|
|
48
|
+
this.paginator.pageIndex = 0;
|
|
49
|
+
const searchText = this.searchBox.nativeElement.value;
|
|
50
|
+
if (!this.lastSearchText && searchText) {
|
|
51
|
+
this.lastSortDirection = this.sort.direction;
|
|
52
|
+
this.lastSortField = this.sort.active;
|
|
53
|
+
// Reset sorting to see the score rating (default sorting returned from server)
|
|
54
|
+
this.sort.sort({ id: '', start: 'asc', disableClear: false });
|
|
55
|
+
}
|
|
56
|
+
this.lastSearchText = searchText;
|
|
57
|
+
if (!searchText && this.lastSortField) {
|
|
58
|
+
if (this.lastSortDirection == "asc") {
|
|
59
|
+
this.sort.sort({ id: this.lastSortField, start: 'asc', disableClear: true });
|
|
60
|
+
}
|
|
61
|
+
else if (this.lastSortDirection == "desc") {
|
|
62
|
+
this.sort.sort({ id: this.lastSortField, start: 'desc', disableClear: true });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
this.loadData();
|
|
66
|
+
}))
|
|
67
|
+
.subscribe();
|
|
68
|
+
// reset the paginator after sorting
|
|
69
|
+
this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);
|
|
70
|
+
merge(this.sort.sortChange, this.paginator.page)
|
|
71
|
+
.pipe(tap(() => this.loadData()))
|
|
72
|
+
.subscribe();
|
|
73
|
+
}
|
|
74
|
+
loadData() {
|
|
75
|
+
this.loadDataRequest.emit(this.loadDataInfo);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2N0b0xpc3ROYXZpZ2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9vY3RvLXVpL3NyYy9saWIvbGlzdC1lbGVtZW50L29jdG9MaXN0TmF2aWdhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFpRCxhQUFhLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHNUYsTUFBTSxPQUFPLDBCQUEwQjtDQUt0QztBQUVELE1BQU0sT0FBTyx5QkFBeUI7Q0FJckM7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBUTdCLFlBQW9CLFNBQXVCLEVBQVUsSUFBYSxFQUFVLFNBQXFCLEVBQVUsV0FBc0M7UUFBN0gsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUFVLFNBQUksR0FBSixJQUFJLENBQVM7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQTJCO1FBTjFJLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7SUFReEUsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDeEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFMUMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksWUFBWSxFQUFFO1lBQ2hC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VUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2FBQzdDLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxFQUFFLENBQUE7SUFDaEIsQ0FBQztJQUVPLFFBQVE7UUFFZCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXRQYWdpbmF0b3J9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3JcIjtcbmltcG9ydCB7TWF0U29ydCwgU29ydERpcmVjdGlvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7RWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtmcm9tRXZlbnQsIG1lcmdlfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtTZWFyY2hGaWx0ZXJEdG8sIFNlYXJjaEZpbHRlclR5cGVzRHRvLCBTb3J0RHRvLCBTb3J0T3JkZXJzRHRvfSBmcm9tIFwiLi9nbG9iYWxUeXBlc1wiO1xuXG5cbmV4cG9ydCBjbGFzcyBPY3RvTGlzdE5hdmlnYXRpb25EYXRhSW5mbyB7XG4gIHNraXA6IG51bWJlcjtcbiAgdGFrZTogbnVtYmVyO1xuICBzZWFyY2hGaWx0ZXI/OiBTZWFyY2hGaWx0ZXJEdG87XG4gIHNvcnQ/OiBTb3J0RHRvW107XG59XG5cbmV4cG9ydCBjbGFzcyBPY3RvTGlzdE5hdmlnYXRpb25PcHRpb25zIHtcbiAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgc2VhcmNoRmlsdGVyVHlwZT86IFNlYXJjaEZpbHRlclR5cGVzRHRvO1xuICBzZWFyY2hGaWx0ZXJBdHRyaWJ1dGVOYW1lcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgT2N0b0xpc3ROYXZpZ2F0aW9uIHtcblxuICBwdWJsaWMgbG9hZERhdGFSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxPY3RvTGlzdE5hdmlnYXRpb25EYXRhSW5mbz4oKTtcblxuICBsYXN0U29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcbiAgbGFzdFNvcnRGaWVsZDogc3RyaW5nO1xuICBsYXN0U2VhcmNoVGV4dDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3IsIHByaXZhdGUgc29ydDogTWF0U29ydCwgcHJpdmF0ZSBzZWFyY2hCb3g6IEVsZW1lbnRSZWYsIHByaXZhdGUgb2N0b09wdGlvbnM6IE9jdG9MaXN0TmF2aWdhdGlvbk9wdGlvbnMpIHtcblxuICB9XG5cbiAgcHVibGljIGdldCBsb2FkRGF0YUluZm8oKSB7XG4gICAgY29uc3QgZmlsdGVyU3RyaW5nID0gdGhpcy5zZWFyY2hCb3gubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICBjb25zdCBzb3J0RmllbGQgPSB0aGlzLnNvcnQuYWN0aXZlO1xuICAgIGNvbnN0IHNvcnREaXJlY3Rpb24gPSB0aGlzLnNvcnQuZGlyZWN0aW9uO1xuXG4gICAgbGV0IGZpbHRlciA9IG51bGw7XG4gICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgZmlsdGVyID0gPFNlYXJjaEZpbHRlckR0bz57XG4gICAgICAgIGxhbmd1YWdlOiB0aGlzLm9jdG9PcHRpb25zLmxhbmd1YWdlLFxuICAgICAgICBzZWFyY2hUZXJtOiBmaWx0ZXJTdHJpbmcsXG4gICAgICAgIHR5cGU6IHRoaXMub2N0b09wdGlvbnMuc2VhcmNoRmlsdGVyVHlwZSxcbiAgICAgICAgYXR0cmlidXRlTmFtZXM6IHRoaXMub2N0b09wdGlvbnMuc2VhcmNoRmlsdGVyQXR0cmlidXRlTmFtZXNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHNvcnQgPSBbXTtcbiAgICBpZiAoc29ydEZpZWxkICYmIHNvcnREaXJlY3Rpb24pIHtcbiAgICAgIHNvcnQucHVzaCg8U29ydER0bz57XG4gICAgICAgIGF0dHJpYnV0ZU5hbWU6IHNvcnRGaWVsZCxcbiAgICAgICAgc29ydE9yZGVyOiBzb3J0RGlyZWN0aW9uID09PSBcImFzY1wiID8gU29ydE9yZGVyc0R0by5Bc2NlbmRpbmdEdG8gOiBTb3J0T3JkZXJzRHRvLkRlc2NlbmRpbmdEdG9cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiA8T2N0b0xpc3ROYXZpZ2F0aW9uRGF0YUluZm8+e1xuICAgICAgc2tpcDogdGhpcy5wYWdpbmF0b3IucGFnZUluZGV4ICogdGhpcy5wYWdpbmF0b3IucGFnZVNpemUsXG4gICAgICB0YWtlOiB0aGlzLnBhZ2luYXRvci5wYWdlU2l6ZSxcbiAgICAgIHNlYXJjaEZpbHRlcjogZmlsdGVyLFxuICAgICAgc29ydDogc29ydFxuICAgIH07XG4gIH1cblxuICBpbml0KCkge1xuICAgIC8vIHNlcnZlci1zaWRlIHNlYXJjaFxuICAgIGZyb21FdmVudCh0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZUluZGV4ID0gMDtcblxuICAgICAgICAgIGNvbnN0IHNlYXJjaFRleHQgPSB0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXG4gICAgICAgICAgaWYgKCF0aGlzLmxhc3RTZWFyY2hUZXh0ICYmIHNlYXJjaFRleHQpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFNvcnREaXJlY3Rpb24gPSB0aGlzLnNvcnQuZGlyZWN0aW9uO1xuICAgICAgICAgICAgdGhpcy5sYXN0U29ydEZpZWxkID0gdGhpcy5zb3J0LmFjdGl2ZTtcblxuICAgICAgICAgICAgLy8gUmVzZXQgc29ydGluZyB0byBzZWUgdGhlIHNjb3JlIHJhdGluZyAoZGVmYXVsdCBzb3J0aW5nIHJldHVybmVkIGZyb20gc2VydmVyKVxuICAgICAgICAgICAgdGhpcy5zb3J0LnNvcnQoe2lkOiAnJywgc3RhcnQ6ICdhc2MnLCBkaXNhYmxlQ2xlYXI6IGZhbHNlfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5sYXN0U2VhcmNoVGV4dCA9IHNlYXJjaFRleHQ7XG5cbiAgICAgICAgICBpZiAoIXNlYXJjaFRleHQgJiYgdGhpcy5sYXN0U29ydEZpZWxkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5sYXN0U29ydERpcmVjdGlvbiA9PSBcImFzY1wiKSB7XG4gICAgICAgICAgICAgIHRoaXMuc29ydC5zb3J0KHtpZDogdGhpcy5sYXN0U29ydEZpZWxkLCBzdGFydDogJ2FzYycsIGRpc2FibGVDbGVhcjogdHJ1ZX0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmxhc3RTb3J0RGlyZWN0aW9uID09IFwiZGVzY1wiKSB7XG4gICAgICAgICAgICAgIHRoaXMuc29ydC5zb3J0KHtpZDogdGhpcy5sYXN0U29ydEZpZWxkLCBzdGFydDogJ2Rlc2MnLCBkaXNhYmxlQ2xlYXI6IHRydWV9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cblxuICAgICAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIC8vIHJlc2V0IHRoZSBwYWdpbmF0b3IgYWZ0ZXIgc29ydGluZ1xuICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnN1YnNjcmliZSgoKSA9PiB0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSAwKTtcblxuICAgIG1lcmdlKHRoaXMuc29ydC5zb3J0Q2hhbmdlLCB0aGlzLnBhZ2luYXRvci5wYWdlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWREYXRhKCkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKClcbiAgfVxuXG4gIHByaXZhdGUgbG9hZERhdGEoKSB7XG5cbiAgICB0aGlzLmxvYWREYXRhUmVxdWVzdC5lbWl0KHRoaXMubG9hZERhdGFJbmZvKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaG1ha2Vycy1vY3RvLXVpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9vY3RvLXVpL3NyYy9tZXNobWFrZXJzLW9jdG8tdWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of osp-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/globalTypes';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvb2N0by11aS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELGNBQWMsZ0NBQWdDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG9zcC11aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpc3QtZWxlbWVudC9saXN0LWVsZW1lbnQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlzdC1lbGVtZW50L29jdG9MaXN0TmF2aWdhdGlvbidcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpc3QtZWxlbWVudC9ncmFwaFFMRGF0YVNvdXJjZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpc3QtZWxlbWVudC9nbG9iYWxUeXBlcydcblxuIl19
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { NgModule, EventEmitter } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { fromEvent, merge, of } from 'rxjs';
|
|
5
|
+
import { debounceTime, distinctUntilChanged, tap, catchError } from 'rxjs/operators';
|
|
6
|
+
import { DataSourceBase, PagedResultDto } from '@meshmakers/shared-services';
|
|
7
|
+
|
|
8
|
+
class ListElementModule {
|
|
9
|
+
}
|
|
10
|
+
ListElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
ListElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
12
|
+
ListElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [],
|
|
17
|
+
imports: [
|
|
18
|
+
CommonModule
|
|
19
|
+
]
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
|
|
23
|
+
/* tslint:disable */
|
|
24
|
+
/* eslint-disable */
|
|
25
|
+
// @generated
|
|
26
|
+
// This file was automatically generated and should not be edited.
|
|
27
|
+
/** Defines the operator of field compare */
|
|
28
|
+
var FieldFilterOperatorsDto;
|
|
29
|
+
(function (FieldFilterOperatorsDto) {
|
|
30
|
+
FieldFilterOperatorsDto["EqualsDto"] = "EQUALS";
|
|
31
|
+
FieldFilterOperatorsDto["GreaterEqualThanDto"] = "GREATER_EQUAL_THAN";
|
|
32
|
+
FieldFilterOperatorsDto["GreaterThanDto"] = "GREATER_THAN";
|
|
33
|
+
FieldFilterOperatorsDto["InDto"] = "IN";
|
|
34
|
+
FieldFilterOperatorsDto["LessEqualThanDto"] = "LESS_EQUAL_THAN";
|
|
35
|
+
FieldFilterOperatorsDto["LessThanDto"] = "LESS_THAN";
|
|
36
|
+
FieldFilterOperatorsDto["LikeDto"] = "LIKE";
|
|
37
|
+
FieldFilterOperatorsDto["MatchRegExDto"] = "MATCH_REG_EX";
|
|
38
|
+
FieldFilterOperatorsDto["NotEqualsDto"] = "NOT_EQUALS";
|
|
39
|
+
FieldFilterOperatorsDto["NotInDto"] = "NOT_IN";
|
|
40
|
+
FieldFilterOperatorsDto["NotMatchRegExDto"] = "NOT_MATCH_REG_EX";
|
|
41
|
+
})(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
|
+
/** 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
|
+
var SearchFilterTypesDto;
|
|
53
|
+
(function (SearchFilterTypesDto) {
|
|
54
|
+
SearchFilterTypesDto["AttributeFilterDto"] = "ATTRIBUTE_FILTER";
|
|
55
|
+
SearchFilterTypesDto["TextSearchDto"] = "TEXT_SEARCH";
|
|
56
|
+
})(SearchFilterTypesDto || (SearchFilterTypesDto = {}));
|
|
57
|
+
/** Defines the sort order */
|
|
58
|
+
var SortOrdersDto;
|
|
59
|
+
(function (SortOrdersDto) {
|
|
60
|
+
SortOrdersDto["AscendingDto"] = "ASCENDING";
|
|
61
|
+
SortOrdersDto["DefaultDto"] = "DEFAULT";
|
|
62
|
+
SortOrdersDto["DescendingDto"] = "DESCENDING";
|
|
63
|
+
})(SortOrdersDto || (SortOrdersDto = {}));
|
|
64
|
+
//==============================================================
|
|
65
|
+
// END Enums and Input Objects
|
|
66
|
+
//==============================================================
|
|
67
|
+
|
|
68
|
+
class OctoListNavigationDataInfo {
|
|
69
|
+
}
|
|
70
|
+
class OctoListNavigationOptions {
|
|
71
|
+
}
|
|
72
|
+
class OctoListNavigation {
|
|
73
|
+
constructor(paginator, sort, searchBox, octoOptions) {
|
|
74
|
+
this.paginator = paginator;
|
|
75
|
+
this.sort = sort;
|
|
76
|
+
this.searchBox = searchBox;
|
|
77
|
+
this.octoOptions = octoOptions;
|
|
78
|
+
this.loadDataRequest = new EventEmitter();
|
|
79
|
+
}
|
|
80
|
+
get loadDataInfo() {
|
|
81
|
+
const filterString = this.searchBox.nativeElement.value;
|
|
82
|
+
const sortField = this.sort.active;
|
|
83
|
+
const sortDirection = this.sort.direction;
|
|
84
|
+
let filter = null;
|
|
85
|
+
if (filterString) {
|
|
86
|
+
filter = {
|
|
87
|
+
language: this.octoOptions.language,
|
|
88
|
+
searchTerm: filterString,
|
|
89
|
+
type: this.octoOptions.searchFilterType,
|
|
90
|
+
attributeNames: this.octoOptions.searchFilterAttributeNames
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
let sort = [];
|
|
94
|
+
if (sortField && sortDirection) {
|
|
95
|
+
sort.push({
|
|
96
|
+
attributeName: sortField,
|
|
97
|
+
sortOrder: sortDirection === "asc" ? SortOrdersDto.AscendingDto : SortOrdersDto.DescendingDto
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
skip: this.paginator.pageIndex * this.paginator.pageSize,
|
|
102
|
+
take: this.paginator.pageSize,
|
|
103
|
+
searchFilter: filter,
|
|
104
|
+
sort: sort
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
init() {
|
|
108
|
+
// server-side search
|
|
109
|
+
fromEvent(this.searchBox.nativeElement, 'keyup')
|
|
110
|
+
.pipe(debounceTime(500), distinctUntilChanged(), tap(() => {
|
|
111
|
+
this.paginator.pageIndex = 0;
|
|
112
|
+
const searchText = this.searchBox.nativeElement.value;
|
|
113
|
+
if (!this.lastSearchText && searchText) {
|
|
114
|
+
this.lastSortDirection = this.sort.direction;
|
|
115
|
+
this.lastSortField = this.sort.active;
|
|
116
|
+
// Reset sorting to see the score rating (default sorting returned from server)
|
|
117
|
+
this.sort.sort({ id: '', start: 'asc', disableClear: false });
|
|
118
|
+
}
|
|
119
|
+
this.lastSearchText = searchText;
|
|
120
|
+
if (!searchText && this.lastSortField) {
|
|
121
|
+
if (this.lastSortDirection == "asc") {
|
|
122
|
+
this.sort.sort({ id: this.lastSortField, start: 'asc', disableClear: true });
|
|
123
|
+
}
|
|
124
|
+
else if (this.lastSortDirection == "desc") {
|
|
125
|
+
this.sort.sort({ id: this.lastSortField, start: 'desc', disableClear: true });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
this.loadData();
|
|
129
|
+
}))
|
|
130
|
+
.subscribe();
|
|
131
|
+
// reset the paginator after sorting
|
|
132
|
+
this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);
|
|
133
|
+
merge(this.sort.sortChange, this.paginator.page)
|
|
134
|
+
.pipe(tap(() => this.loadData()))
|
|
135
|
+
.subscribe();
|
|
136
|
+
}
|
|
137
|
+
loadData() {
|
|
138
|
+
this.loadDataRequest.emit(this.loadDataInfo);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
class GraphQLDataSource extends DataSourceBase {
|
|
143
|
+
constructor(messageService) {
|
|
144
|
+
super();
|
|
145
|
+
this.messageService = messageService;
|
|
146
|
+
}
|
|
147
|
+
loadData(tenantId, skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
148
|
+
super.onBeginLoad();
|
|
149
|
+
this.executeLoad(tenantId, skip, take, searchFilter, fieldFilter, sort).pipe(catchError((error) => {
|
|
150
|
+
this.messageService.showError(error, "Error during load of data");
|
|
151
|
+
return of(new PagedResultDto());
|
|
152
|
+
}))
|
|
153
|
+
.subscribe(pagedResult => {
|
|
154
|
+
super.onCompleteLoad(pagedResult);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
executeLoad(tenantId, skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
158
|
+
return of(new PagedResultDto());
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/*
|
|
163
|
+
* Public API Surface of osp-ui
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Generated bundle index. Do not edit.
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
export { FieldFilterOperatorsDto, GraphQLDataSource, ListElementModule, OctoListNavigation, OctoListNavigationDataInfo, OctoListNavigationOptions, ScopesDto, SearchFilterTypesDto, SortOrdersDto };
|
|
171
|
+
//# 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/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\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ]\n})\nexport class ListElementModule {\n}\n","/* tslint:disable */\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: string;\n String: string;\n Boolean: boolean;\n Int: number;\n Float: number;\n /** The `DateTime` scalar type represents a date and time. `DateTime` expects timestamps to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard. */\n DateTime: any;\n Decimal: any;\n OspObjectIdType: any;\n SimpleScalarType: any;\n};\n\nexport type FieldFilterDto = {\n attributeName: Scalars['String'];\n comparisonValue?: InputMaybe<Scalars['SimpleScalarType']>;\n operator?: InputMaybe<FieldFilterOperatorsDto>;\n};\n\n/** Defines the operator of field compare */\nexport enum FieldFilterOperatorsDto {\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 NotMatchRegExDto = 'NOT_MATCH_REG_EX'\n}\n\n/** The scope of the construction kit model */\nexport enum ScopesDto {\n ApplicationDto = 'APPLICATION',\n Layer_2Dto = 'LAYER_2',\n Layer_3Dto = 'LAYER_3',\n Layer_4Dto = 'LAYER_4',\n SystemDto = 'SYSTEM'\n}\n\nexport type SearchFilterDto = {\n attributeNames?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;\n language?: InputMaybe<Scalars['String']>;\n searchTerm: Scalars['String'];\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'];\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\n\nexport class OctoListNavigationDataInfo {\n skip: number;\n take: number;\n searchFilter?: SearchFilterDto;\n sort?: SortDto[];\n}\n\nexport class OctoListNavigationOptions {\n language: string;\n searchFilterType?: SearchFilterTypesDto;\n searchFilterAttributeNames?: string[];\n}\n\nexport class OctoListNavigation {\n\n public loadDataRequest = new EventEmitter<OctoListNavigationDataInfo>();\n\n lastSortDirection: SortDirection;\n lastSortField: string;\n lastSearchText: string;\n\n constructor(private paginator: MatPaginator, private sort: MatSort, private searchBox: ElementRef, private octoOptions: OctoListNavigationOptions) {\n\n }\n\n public get loadDataInfo() {\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 let 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: sort\n };\n }\n\n init() {\n // server-side search\n fromEvent(this.searchBox.nativeElement, 'keyup')\n .pipe(\n debounceTime(500),\n distinctUntilChanged(),\n tap(() => {\n\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({id: this.lastSortField, start: 'asc', disableClear: true});\n } else if (this.lastSortDirection == \"desc\") {\n this.sort.sort({id: this.lastSortField, start: 'desc', 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(() => this.loadData())\n )\n .subscribe()\n }\n\n private loadData() {\n\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\n constructor(protected messageService: MessageService) {\n super();\n }\n\n public loadData(tenantId: string, skip: number = 0, take: number = 10, searchFilter: SearchFilterDto = null, fieldFilter: FieldFilterDto[] = null, sort: SortDto[] = null) {\n\n super.onBeginLoad();\n\n this.executeLoad(tenantId, skip, take, searchFilter, fieldFilter, sort).pipe(\n catchError((error) => {\n\n this.messageService.showError(error, \"Error during load of data\");\n\n return of(new PagedResultDto<TDto>())\n }))\n .subscribe(pagedResult => {\n\n super.onCompleteLoad(pagedResult);\n });\n }\n\n protected executeLoad(tenantId: string, skip: number = 0, take: number = 10, searchFilter: SearchFilterDto = null, fieldFilter: FieldFilterDto[] = null, sort: SortDto[] = null): Observable<PagedResultDto<TDto>> {\n return of(new PagedResultDto<TDto>())\n }\n}\n","/*\n * Public API Surface of osp-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/globalTypes'\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { NgModule, EventEmitter } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { fromEvent, merge, of } from 'rxjs';
|
|
5
|
+
import { debounceTime, distinctUntilChanged, tap, catchError } from 'rxjs/operators';
|
|
6
|
+
import { DataSourceBase, PagedResultDto } from '@meshmakers/shared-services';
|
|
7
|
+
|
|
8
|
+
class ListElementModule {
|
|
9
|
+
}
|
|
10
|
+
ListElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
ListElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
12
|
+
ListElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, imports: [CommonModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ListElementModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [],
|
|
17
|
+
imports: [
|
|
18
|
+
CommonModule
|
|
19
|
+
]
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
|
|
23
|
+
/* tslint:disable */
|
|
24
|
+
/* eslint-disable */
|
|
25
|
+
// @generated
|
|
26
|
+
// This file was automatically generated and should not be edited.
|
|
27
|
+
/** Defines the operator of field compare */
|
|
28
|
+
var FieldFilterOperatorsDto;
|
|
29
|
+
(function (FieldFilterOperatorsDto) {
|
|
30
|
+
FieldFilterOperatorsDto["EqualsDto"] = "EQUALS";
|
|
31
|
+
FieldFilterOperatorsDto["GreaterEqualThanDto"] = "GREATER_EQUAL_THAN";
|
|
32
|
+
FieldFilterOperatorsDto["GreaterThanDto"] = "GREATER_THAN";
|
|
33
|
+
FieldFilterOperatorsDto["InDto"] = "IN";
|
|
34
|
+
FieldFilterOperatorsDto["LessEqualThanDto"] = "LESS_EQUAL_THAN";
|
|
35
|
+
FieldFilterOperatorsDto["LessThanDto"] = "LESS_THAN";
|
|
36
|
+
FieldFilterOperatorsDto["LikeDto"] = "LIKE";
|
|
37
|
+
FieldFilterOperatorsDto["MatchRegExDto"] = "MATCH_REG_EX";
|
|
38
|
+
FieldFilterOperatorsDto["NotEqualsDto"] = "NOT_EQUALS";
|
|
39
|
+
FieldFilterOperatorsDto["NotInDto"] = "NOT_IN";
|
|
40
|
+
FieldFilterOperatorsDto["NotMatchRegExDto"] = "NOT_MATCH_REG_EX";
|
|
41
|
+
})(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
|
+
/** 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
|
+
var SearchFilterTypesDto;
|
|
53
|
+
(function (SearchFilterTypesDto) {
|
|
54
|
+
SearchFilterTypesDto["AttributeFilterDto"] = "ATTRIBUTE_FILTER";
|
|
55
|
+
SearchFilterTypesDto["TextSearchDto"] = "TEXT_SEARCH";
|
|
56
|
+
})(SearchFilterTypesDto || (SearchFilterTypesDto = {}));
|
|
57
|
+
/** Defines the sort order */
|
|
58
|
+
var SortOrdersDto;
|
|
59
|
+
(function (SortOrdersDto) {
|
|
60
|
+
SortOrdersDto["AscendingDto"] = "ASCENDING";
|
|
61
|
+
SortOrdersDto["DefaultDto"] = "DEFAULT";
|
|
62
|
+
SortOrdersDto["DescendingDto"] = "DESCENDING";
|
|
63
|
+
})(SortOrdersDto || (SortOrdersDto = {}));
|
|
64
|
+
//==============================================================
|
|
65
|
+
// END Enums and Input Objects
|
|
66
|
+
//==============================================================
|
|
67
|
+
|
|
68
|
+
class OctoListNavigationDataInfo {
|
|
69
|
+
}
|
|
70
|
+
class OctoListNavigationOptions {
|
|
71
|
+
}
|
|
72
|
+
class OctoListNavigation {
|
|
73
|
+
constructor(paginator, sort, searchBox, octoOptions) {
|
|
74
|
+
this.paginator = paginator;
|
|
75
|
+
this.sort = sort;
|
|
76
|
+
this.searchBox = searchBox;
|
|
77
|
+
this.octoOptions = octoOptions;
|
|
78
|
+
this.loadDataRequest = new EventEmitter();
|
|
79
|
+
}
|
|
80
|
+
get loadDataInfo() {
|
|
81
|
+
const filterString = this.searchBox.nativeElement.value;
|
|
82
|
+
const sortField = this.sort.active;
|
|
83
|
+
const sortDirection = this.sort.direction;
|
|
84
|
+
let filter = null;
|
|
85
|
+
if (filterString) {
|
|
86
|
+
filter = {
|
|
87
|
+
language: this.octoOptions.language,
|
|
88
|
+
searchTerm: filterString,
|
|
89
|
+
type: this.octoOptions.searchFilterType,
|
|
90
|
+
attributeNames: this.octoOptions.searchFilterAttributeNames
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
let sort = [];
|
|
94
|
+
if (sortField && sortDirection) {
|
|
95
|
+
sort.push({
|
|
96
|
+
attributeName: sortField,
|
|
97
|
+
sortOrder: sortDirection === "asc" ? SortOrdersDto.AscendingDto : SortOrdersDto.DescendingDto
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
skip: this.paginator.pageIndex * this.paginator.pageSize,
|
|
102
|
+
take: this.paginator.pageSize,
|
|
103
|
+
searchFilter: filter,
|
|
104
|
+
sort: sort
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
init() {
|
|
108
|
+
// server-side search
|
|
109
|
+
fromEvent(this.searchBox.nativeElement, 'keyup')
|
|
110
|
+
.pipe(debounceTime(500), distinctUntilChanged(), tap(() => {
|
|
111
|
+
this.paginator.pageIndex = 0;
|
|
112
|
+
const searchText = this.searchBox.nativeElement.value;
|
|
113
|
+
if (!this.lastSearchText && searchText) {
|
|
114
|
+
this.lastSortDirection = this.sort.direction;
|
|
115
|
+
this.lastSortField = this.sort.active;
|
|
116
|
+
// Reset sorting to see the score rating (default sorting returned from server)
|
|
117
|
+
this.sort.sort({ id: '', start: 'asc', disableClear: false });
|
|
118
|
+
}
|
|
119
|
+
this.lastSearchText = searchText;
|
|
120
|
+
if (!searchText && this.lastSortField) {
|
|
121
|
+
if (this.lastSortDirection == "asc") {
|
|
122
|
+
this.sort.sort({ id: this.lastSortField, start: 'asc', disableClear: true });
|
|
123
|
+
}
|
|
124
|
+
else if (this.lastSortDirection == "desc") {
|
|
125
|
+
this.sort.sort({ id: this.lastSortField, start: 'desc', disableClear: true });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
this.loadData();
|
|
129
|
+
}))
|
|
130
|
+
.subscribe();
|
|
131
|
+
// reset the paginator after sorting
|
|
132
|
+
this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);
|
|
133
|
+
merge(this.sort.sortChange, this.paginator.page)
|
|
134
|
+
.pipe(tap(() => this.loadData()))
|
|
135
|
+
.subscribe();
|
|
136
|
+
}
|
|
137
|
+
loadData() {
|
|
138
|
+
this.loadDataRequest.emit(this.loadDataInfo);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
class GraphQLDataSource extends DataSourceBase {
|
|
143
|
+
constructor(messageService) {
|
|
144
|
+
super();
|
|
145
|
+
this.messageService = messageService;
|
|
146
|
+
}
|
|
147
|
+
loadData(tenantId, skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
148
|
+
super.onBeginLoad();
|
|
149
|
+
this.executeLoad(tenantId, skip, take, searchFilter, fieldFilter, sort).pipe(catchError((error) => {
|
|
150
|
+
this.messageService.showError(error, "Error during load of data");
|
|
151
|
+
return of(new PagedResultDto());
|
|
152
|
+
}))
|
|
153
|
+
.subscribe(pagedResult => {
|
|
154
|
+
super.onCompleteLoad(pagedResult);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
executeLoad(tenantId, skip = 0, take = 10, searchFilter = null, fieldFilter = null, sort = null) {
|
|
158
|
+
return of(new PagedResultDto());
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/*
|
|
163
|
+
* Public API Surface of osp-ui
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Generated bundle index. Do not edit.
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
export { FieldFilterOperatorsDto, GraphQLDataSource, ListElementModule, OctoListNavigation, OctoListNavigationDataInfo, OctoListNavigationOptions, ScopesDto, SearchFilterTypesDto, SortOrdersDto };
|
|
171
|
+
//# 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/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\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ]\n})\nexport class ListElementModule {\n}\n","/* tslint:disable */\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: string;\n String: string;\n Boolean: boolean;\n Int: number;\n Float: number;\n /** The `DateTime` scalar type represents a date and time. `DateTime` expects timestamps to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard. */\n DateTime: any;\n Decimal: any;\n OspObjectIdType: any;\n SimpleScalarType: any;\n};\n\nexport type FieldFilterDto = {\n attributeName: Scalars['String'];\n comparisonValue?: InputMaybe<Scalars['SimpleScalarType']>;\n operator?: InputMaybe<FieldFilterOperatorsDto>;\n};\n\n/** Defines the operator of field compare */\nexport enum FieldFilterOperatorsDto {\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 NotMatchRegExDto = 'NOT_MATCH_REG_EX'\n}\n\n/** The scope of the construction kit model */\nexport enum ScopesDto {\n ApplicationDto = 'APPLICATION',\n Layer_2Dto = 'LAYER_2',\n Layer_3Dto = 'LAYER_3',\n Layer_4Dto = 'LAYER_4',\n SystemDto = 'SYSTEM'\n}\n\nexport type SearchFilterDto = {\n attributeNames?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;\n language?: InputMaybe<Scalars['String']>;\n searchTerm: Scalars['String'];\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'];\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\n\nexport class OctoListNavigationDataInfo {\n skip: number;\n take: number;\n searchFilter?: SearchFilterDto;\n sort?: SortDto[];\n}\n\nexport class OctoListNavigationOptions {\n language: string;\n searchFilterType?: SearchFilterTypesDto;\n searchFilterAttributeNames?: string[];\n}\n\nexport class OctoListNavigation {\n\n public loadDataRequest = new EventEmitter<OctoListNavigationDataInfo>();\n\n lastSortDirection: SortDirection;\n lastSortField: string;\n lastSearchText: string;\n\n constructor(private paginator: MatPaginator, private sort: MatSort, private searchBox: ElementRef, private octoOptions: OctoListNavigationOptions) {\n\n }\n\n public get loadDataInfo() {\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 let 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: sort\n };\n }\n\n init() {\n // server-side search\n fromEvent(this.searchBox.nativeElement, 'keyup')\n .pipe(\n debounceTime(500),\n distinctUntilChanged(),\n tap(() => {\n\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({id: this.lastSortField, start: 'asc', disableClear: true});\n } else if (this.lastSortDirection == \"desc\") {\n this.sort.sort({id: this.lastSortField, start: 'desc', 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(() => this.loadData())\n )\n .subscribe()\n }\n\n private loadData() {\n\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\n constructor(protected messageService: MessageService) {\n super();\n }\n\n public loadData(tenantId: string, skip: number = 0, take: number = 10, searchFilter: SearchFilterDto = null, fieldFilter: FieldFilterDto[] = null, sort: SortDto[] = null) {\n\n super.onBeginLoad();\n\n this.executeLoad(tenantId, skip, take, searchFilter, fieldFilter, sort).pipe(\n catchError((error) => {\n\n this.messageService.showError(error, \"Error during load of data\");\n\n return of(new PagedResultDto<TDto>())\n }))\n .subscribe(pagedResult => {\n\n super.onCompleteLoad(pagedResult);\n });\n }\n\n protected executeLoad(tenantId: string, skip: number = 0, take: number = 10, searchFilter: SearchFilterDto = null, fieldFilter: FieldFilterDto[] = null, sort: SortDto[] = null): Observable<PagedResultDto<TDto>> {\n return of(new PagedResultDto<TDto>())\n }\n}\n","/*\n * Public API Surface of osp-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/globalTypes'\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAUa,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAH1B,YAAY,CAAA,EAAA,CAAA,CAAA;AAGH,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAH1B,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACF,iBAAA,CAAA;;;ACTD;AACA;AACA;AACA;AA4BA;IACY,wBAYX;AAZD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,WAAA,CAAA,GAAA,QAAoB,CAAA;AACpB,IAAA,uBAAA,CAAA,qBAAA,CAAA,GAAA,oBAA0C,CAAA;AAC1C,IAAA,uBAAA,CAAA,gBAAA,CAAA,GAAA,cAA+B,CAAA;AAC/B,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,IAAY,CAAA;AACZ,IAAA,uBAAA,CAAA,kBAAA,CAAA,GAAA,iBAAoC,CAAA;AACpC,IAAA,uBAAA,CAAA,aAAA,CAAA,GAAA,WAAyB,CAAA;AACzB,IAAA,uBAAA,CAAA,SAAA,CAAA,GAAA,MAAgB,CAAA;AAChB,IAAA,uBAAA,CAAA,eAAA,CAAA,GAAA,cAA8B,CAAA;AAC9B,IAAA,uBAAA,CAAA,cAAA,CAAA,GAAA,YAA2B,CAAA;AAC3B,IAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,QAAmB,CAAA;AACnB,IAAA,uBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACvC,CAAC,EAZW,uBAAuB,KAAvB,uBAAuB,GAYlC,EAAA,CAAA,CAAA,CAAA;AAED;IACY,UAMX;AAND,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,aAA8B,CAAA;AAC9B,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,QAAoB,CAAA;AACtB,CAAC,EANW,SAAS,KAAT,SAAS,GAMpB,EAAA,CAAA,CAAA,CAAA;AASD;IACY,qBAGX;AAHD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,GAAA,kBAAuC,CAAA;AACvC,IAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,aAA6B,CAAA;AAC/B,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,GAG/B,EAAA,CAAA,CAAA,CAAA;AAOD;IACY,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,cAAA,CAAA,GAAA,WAA0B,CAAA;AAC1B,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,SAAsB,CAAA;AACtB,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,YAA4B,CAAA;AAC9B,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAED;AACA;AACA;;MC1Ea,0BAA0B,CAAA;AAKtC,CAAA;MAEY,yBAAyB,CAAA;AAIrC,CAAA;MAEY,kBAAkB,CAAA;AAQ7B,IAAA,WAAA,CAAoB,SAAuB,EAAU,IAAa,EAAU,SAAqB,EAAU,WAAsC,EAAA;QAA7H,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAS;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAY;QAAU,IAAW,CAAA,WAAA,GAAX,WAAW,CAA2B;AAN1I,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAA8B,CAAC;KAQvE;AAED,IAAA,IAAW,YAAY,GAAA;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;AACxD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACnC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAE1C,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,GAAoB;AACxB,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;AACnC,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB;AACvC,gBAAA,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,0BAA0B;aAC5D,CAAC;AACH,SAAA;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,SAAS,IAAI,aAAa,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAU;AACjB,gBAAA,aAAa,EAAE,SAAS;AACxB,gBAAA,SAAS,EAAE,aAAa,KAAK,KAAK,GAAG,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,aAAa;AAC9F,aAAA,CAAC,CAAC;AACJ,SAAA;QAED,OAAmC;YACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;AACxD,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;AAC7B,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,IAAI,EAAE,IAAI;SACX,CAAC;KACH;IAED,IAAI,GAAA;;QAEF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;AAC7C,aAAA,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,oBAAoB,EAAE,EACtB,GAAG,CAAC,MAAK;AAEP,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;AAEtD,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE;gBACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;AAGtC,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC,CAAC;AAC7D,aAAA;AAED,YAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;AAEjC,YAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE;AACrC,gBAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,KAAK,EAAE;oBACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;AAC5E,iBAAA;AAAM,qBAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,EAAE;oBAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;AAC7E,iBAAA;AACF,aAAA;YAGD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;;AAGf,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAEnE,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC7C,IAAI,CACH,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC3B;AACA,aAAA,SAAS,EAAE,CAAA;KACf;IAEO,QAAQ,GAAA;QAEd,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;AACF;;AC7GK,MAAO,iBAAwB,SAAQ,cAAoB,CAAA;AAE/D,IAAA,WAAA,CAAsB,cAA8B,EAAA;AAClD,QAAA,KAAK,EAAE,CAAC;QADY,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KAEnD;AAEM,IAAA,QAAQ,CAAC,QAAgB,EAAE,IAAe,GAAA,CAAC,EAAE,IAAe,GAAA,EAAE,EAAE,YAAA,GAAgC,IAAI,EAAE,WAAA,GAAgC,IAAI,EAAE,OAAkB,IAAI,EAAA;QAEvK,KAAK,CAAC,WAAW,EAAE,CAAC;QAEpB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAC1E,UAAU,CAAC,CAAC,KAAK,KAAI;YAEnB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;AAElE,YAAA,OAAO,EAAE,CAAC,IAAI,cAAc,EAAQ,CAAC,CAAA;AACvC,SAAC,CAAC,CAAC;aACF,SAAS,CAAC,WAAW,IAAG;AAEvB,YAAA,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACpC,SAAC,CAAC,CAAC;KACN;AAES,IAAA,WAAW,CAAC,QAAgB,EAAE,IAAe,GAAA,CAAC,EAAE,IAAe,GAAA,EAAE,EAAE,YAAA,GAAgC,IAAI,EAAE,WAAA,GAAgC,IAAI,EAAE,OAAkB,IAAI,EAAA;AAC7K,QAAA,OAAO,EAAE,CAAC,IAAI,cAAc,EAAQ,CAAC,CAAA;KACtC;AACF;;AC/BD;;AAEG;;ACFH;;AAEG;;;;"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export declare type Maybe<T> = T | null;
|
|
2
|
+
export declare type InputMaybe<T> = Maybe<T>;
|
|
3
|
+
/** All built-in and custom scalars, mapped to their actual values */
|
|
4
|
+
export declare type Scalars = {
|
|
5
|
+
ID: string;
|
|
6
|
+
String: string;
|
|
7
|
+
Boolean: boolean;
|
|
8
|
+
Int: number;
|
|
9
|
+
Float: number;
|
|
10
|
+
/** The `DateTime` scalar type represents a date and time. `DateTime` expects timestamps to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard. */
|
|
11
|
+
DateTime: any;
|
|
12
|
+
Decimal: any;
|
|
13
|
+
OspObjectIdType: any;
|
|
14
|
+
SimpleScalarType: any;
|
|
15
|
+
};
|
|
16
|
+
export declare type FieldFilterDto = {
|
|
17
|
+
attributeName: Scalars['String'];
|
|
18
|
+
comparisonValue?: InputMaybe<Scalars['SimpleScalarType']>;
|
|
19
|
+
operator?: InputMaybe<FieldFilterOperatorsDto>;
|
|
20
|
+
};
|
|
21
|
+
/** Defines the operator of field compare */
|
|
22
|
+
export declare enum FieldFilterOperatorsDto {
|
|
23
|
+
EqualsDto = "EQUALS",
|
|
24
|
+
GreaterEqualThanDto = "GREATER_EQUAL_THAN",
|
|
25
|
+
GreaterThanDto = "GREATER_THAN",
|
|
26
|
+
InDto = "IN",
|
|
27
|
+
LessEqualThanDto = "LESS_EQUAL_THAN",
|
|
28
|
+
LessThanDto = "LESS_THAN",
|
|
29
|
+
LikeDto = "LIKE",
|
|
30
|
+
MatchRegExDto = "MATCH_REG_EX",
|
|
31
|
+
NotEqualsDto = "NOT_EQUALS",
|
|
32
|
+
NotInDto = "NOT_IN",
|
|
33
|
+
NotMatchRegExDto = "NOT_MATCH_REG_EX"
|
|
34
|
+
}
|
|
35
|
+
/** The scope of the construction kit model */
|
|
36
|
+
export declare enum ScopesDto {
|
|
37
|
+
ApplicationDto = "APPLICATION",
|
|
38
|
+
Layer_2Dto = "LAYER_2",
|
|
39
|
+
Layer_3Dto = "LAYER_3",
|
|
40
|
+
Layer_4Dto = "LAYER_4",
|
|
41
|
+
SystemDto = "SYSTEM"
|
|
42
|
+
}
|
|
43
|
+
export declare type SearchFilterDto = {
|
|
44
|
+
attributeNames?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
|
|
45
|
+
language?: InputMaybe<Scalars['String']>;
|
|
46
|
+
searchTerm: Scalars['String'];
|
|
47
|
+
type?: InputMaybe<SearchFilterTypesDto>;
|
|
48
|
+
};
|
|
49
|
+
/** 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) */
|
|
50
|
+
export declare enum SearchFilterTypesDto {
|
|
51
|
+
AttributeFilterDto = "ATTRIBUTE_FILTER",
|
|
52
|
+
TextSearchDto = "TEXT_SEARCH"
|
|
53
|
+
}
|
|
54
|
+
export declare type SortDto = {
|
|
55
|
+
attributeName: Scalars['String'];
|
|
56
|
+
sortOrder?: InputMaybe<SortOrdersDto>;
|
|
57
|
+
};
|
|
58
|
+
/** Defines the sort order */
|
|
59
|
+
export declare enum SortOrdersDto {
|
|
60
|
+
AscendingDto = "ASCENDING",
|
|
61
|
+
DefaultDto = "DEFAULT",
|
|
62
|
+
DescendingDto = "DESCENDING"
|
|
63
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import { DataSourceBase, MessageService, PagedResultDto } from "@meshmakers/shared-services";
|
|
3
|
+
import { FieldFilterDto, SearchFilterDto, SortDto } from "./globalTypes";
|
|
4
|
+
export declare class GraphQLDataSource<TDto> extends DataSourceBase<TDto> {
|
|
5
|
+
protected messageService: MessageService;
|
|
6
|
+
constructor(messageService: MessageService);
|
|
7
|
+
loadData(tenantId: string, skip?: number, take?: number, searchFilter?: SearchFilterDto, fieldFilter?: FieldFilterDto[], sort?: SortDto[]): void;
|
|
8
|
+
protected executeLoad(tenantId: string, skip?: number, take?: number, searchFilter?: SearchFilterDto, fieldFilter?: FieldFilterDto[], sort?: SortDto[]): Observable<PagedResultDto<TDto>>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "@angular/common";
|
|
3
|
+
export declare class ListElementModule {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListElementModule, never>;
|
|
5
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ListElementModule, never, [typeof i1.CommonModule], never>;
|
|
6
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ListElementModule>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { MatPaginator } from "@angular/material/paginator";
|
|
2
|
+
import { MatSort, SortDirection } from "@angular/material/sort";
|
|
3
|
+
import { ElementRef, EventEmitter } from "@angular/core";
|
|
4
|
+
import { SearchFilterDto, SearchFilterTypesDto, SortDto } from "./globalTypes";
|
|
5
|
+
export declare class OctoListNavigationDataInfo {
|
|
6
|
+
skip: number;
|
|
7
|
+
take: number;
|
|
8
|
+
searchFilter?: SearchFilterDto;
|
|
9
|
+
sort?: SortDto[];
|
|
10
|
+
}
|
|
11
|
+
export declare class OctoListNavigationOptions {
|
|
12
|
+
language: string;
|
|
13
|
+
searchFilterType?: SearchFilterTypesDto;
|
|
14
|
+
searchFilterAttributeNames?: string[];
|
|
15
|
+
}
|
|
16
|
+
export declare class OctoListNavigation {
|
|
17
|
+
private paginator;
|
|
18
|
+
private sort;
|
|
19
|
+
private searchBox;
|
|
20
|
+
private octoOptions;
|
|
21
|
+
loadDataRequest: EventEmitter<OctoListNavigationDataInfo>;
|
|
22
|
+
lastSortDirection: SortDirection;
|
|
23
|
+
lastSortField: string;
|
|
24
|
+
lastSearchText: string;
|
|
25
|
+
constructor(paginator: MatPaginator, sort: MatSort, searchBox: ElementRef, octoOptions: OctoListNavigationOptions);
|
|
26
|
+
get loadDataInfo(): OctoListNavigationDataInfo;
|
|
27
|
+
init(): void;
|
|
28
|
+
private loadData;
|
|
29
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@meshmakers/octo-ui",
|
|
3
|
+
"version": "0.0.0-0",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"tslib": "^2.4.0"
|
|
6
|
+
},
|
|
7
|
+
"peerDependencies": {
|
|
8
|
+
"@angular/common": "^14.2.2",
|
|
9
|
+
"@angular/core": "^14.2.2"
|
|
10
|
+
},
|
|
11
|
+
"module": "fesm2015/meshmakers-octo-ui.mjs",
|
|
12
|
+
"es2020": "fesm2020/meshmakers-octo-ui.mjs",
|
|
13
|
+
"esm2020": "esm2020/meshmakers-octo-ui.mjs",
|
|
14
|
+
"fesm2020": "fesm2020/meshmakers-octo-ui.mjs",
|
|
15
|
+
"fesm2015": "fesm2015/meshmakers-octo-ui.mjs",
|
|
16
|
+
"typings": "index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
"./package.json": {
|
|
19
|
+
"default": "./package.json"
|
|
20
|
+
},
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./index.d.ts",
|
|
23
|
+
"esm2020": "./esm2020/meshmakers-octo-ui.mjs",
|
|
24
|
+
"es2020": "./fesm2020/meshmakers-octo-ui.mjs",
|
|
25
|
+
"es2015": "./fesm2015/meshmakers-octo-ui.mjs",
|
|
26
|
+
"node": "./fesm2015/meshmakers-octo-ui.mjs",
|
|
27
|
+
"default": "./fesm2020/meshmakers-octo-ui.mjs"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"sideEffects": false
|
|
31
|
+
}
|
package/public-api.d.ts
ADDED