@mediusinc/mng-commons-data-api-class 5.0.0-rc.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.
Files changed (63) hide show
  1. package/README.md +16 -0
  2. package/esm2022/index.mjs +9 -0
  3. package/esm2022/lib/models/query-result.model.mjs +24 -0
  4. package/esm2022/lib/serder/object-serializer.mjs +184 -0
  5. package/esm2022/lib/services/api.abstract.service.mjs +55 -0
  6. package/esm2022/lib/services/crud-api.abstract.service.mjs +82 -0
  7. package/esm2022/lib/services/get-all-api.abstract.service.mjs +49 -0
  8. package/esm2022/mediusinc-mng-commons-data-api-class.mjs +5 -0
  9. package/esm2022/tableview/index.mjs +3 -0
  10. package/esm2022/tableview/mediusinc-mng-commons-data-api-class-tableview.mjs +5 -0
  11. package/esm2022/tableview/tableview-crud-create.mjs +40 -0
  12. package/esm2022/tableview/tableview-crud.data-provider.mjs +50 -0
  13. package/esm2022/v1/helpers/query-param-convert.mjs +103 -0
  14. package/esm2022/v1/helpers/tableview-crud-create.mjs +21 -0
  15. package/esm2022/v1/index.mjs +21 -0
  16. package/esm2022/v1/mediusinc-mng-commons-data-api-class-v1.mjs +5 -0
  17. package/esm2022/v1/models/builders/query-param.builder.mjs +83 -0
  18. package/esm2022/v1/models/filter-match-type.model.mjs +27 -0
  19. package/esm2022/v1/models/filter-param.model.mjs +33 -0
  20. package/esm2022/v1/models/query-mode.model.mjs +18 -0
  21. package/esm2022/v1/models/query-param.model.mjs +68 -0
  22. package/esm2022/v1/models/query-result.model.mjs +24 -0
  23. package/esm2022/v1/provide.mjs +40 -0
  24. package/esm2022/v1/services/api.abstract.service.mjs +70 -0
  25. package/esm2022/v1/services/crud-api.abstract.service.mjs +83 -0
  26. package/esm2022/v1/services/get-all-api.abstract.service.mjs +38 -0
  27. package/esm2022/v1/tableview/tableview-crud.data-provider.mjs +50 -0
  28. package/esm2022/v1/utils/query-param-map.util.mjs +57 -0
  29. package/fesm2022/mediusinc-mng-commons-data-api-class-tableview.mjs +95 -0
  30. package/fesm2022/mediusinc-mng-commons-data-api-class-tableview.mjs.map +1 -0
  31. package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs +698 -0
  32. package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs.map +1 -0
  33. package/fesm2022/mediusinc-mng-commons-data-api-class.mjs +396 -0
  34. package/fesm2022/mediusinc-mng-commons-data-api-class.mjs.map +1 -0
  35. package/index.d.ts +5 -0
  36. package/lib/models/query-result.model.d.ts +13 -0
  37. package/lib/serder/object-serializer.d.ts +26 -0
  38. package/lib/services/api.abstract.service.d.ts +22 -0
  39. package/lib/services/crud-api.abstract.service.d.ts +25 -0
  40. package/lib/services/get-all-api.abstract.service.d.ts +14 -0
  41. package/openapi/model.mustache +83 -0
  42. package/openapi/models.mustache +6 -0
  43. package/package.json +41 -0
  44. package/tableview/README.md +10 -0
  45. package/tableview/index.d.ts +2 -0
  46. package/tableview/tableview-crud-create.d.ts +40 -0
  47. package/tableview/tableview-crud.data-provider.d.ts +16 -0
  48. package/v1/README.md +12 -0
  49. package/v1/helpers/query-param-convert.d.ts +23 -0
  50. package/v1/helpers/tableview-crud-create.d.ts +23 -0
  51. package/v1/index.d.ts +14 -0
  52. package/v1/models/builders/query-param.builder.d.ts +36 -0
  53. package/v1/models/filter-match-type.model.d.ts +25 -0
  54. package/v1/models/filter-param.model.d.ts +23 -0
  55. package/v1/models/query-mode.model.d.ts +16 -0
  56. package/v1/models/query-param.model.d.ts +31 -0
  57. package/v1/models/query-result.model.d.ts +24 -0
  58. package/v1/provide.d.ts +9 -0
  59. package/v1/services/api.abstract.service.d.ts +36 -0
  60. package/v1/services/crud-api.abstract.service.d.ts +37 -0
  61. package/v1/services/get-all-api.abstract.service.d.ts +30 -0
  62. package/v1/tableview/tableview-crud.data-provider.d.ts +29 -0
  63. package/v1/utils/query-param-map.util.d.ts +22 -0
@@ -0,0 +1,70 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { inject } from '@angular/core';
3
+ import { ObjectSerializer } from '@mediusinc/mng-commons-data-api-class';
4
+ /**
5
+ * This is an abstract class that provides base functionality for API services.
6
+ *
7
+ * @deprecated
8
+ */
9
+ export class ACommonsBaseV1ApiService {
10
+ constructor() {
11
+ this.objectSerializer = ObjectSerializer.get();
12
+ this.http = inject(HttpClient);
13
+ }
14
+ getUrl(...pathSegments) {
15
+ let baseUrl = this.getBasePath();
16
+ if (baseUrl.endsWith('/')) {
17
+ baseUrl = baseUrl.substring(0, baseUrl.length - 1);
18
+ }
19
+ const serviceBasePath = this.getServiceBasePath();
20
+ let path = [serviceBasePath, ...pathSegments].filter(s => s && s.length).join('/');
21
+ // omit first and last '/'
22
+ if (path.startsWith('/')) {
23
+ path = path.substring(1);
24
+ }
25
+ if (path.endsWith('/')) {
26
+ path = path.substring(0, path.length - 1);
27
+ }
28
+ // replace any double '//' from path that could come from joining paths
29
+ path = path.replace('//', '/');
30
+ return `${baseUrl}/${path}`;
31
+ }
32
+ serializeQueryParam(queryParam, type = 'QueryParam') {
33
+ return this.objectSerializer.serialize(queryParam, type);
34
+ }
35
+ deserializeQueryResult(item, qrType) {
36
+ return this.deserializeClass(item, qrType);
37
+ }
38
+ deserializeClass(item, type) {
39
+ return this.objectSerializer.deserializeClass(item, type);
40
+ }
41
+ deserializeClassArray(item, type) {
42
+ return this.objectSerializer.deserializeClassArray(item, type);
43
+ }
44
+ serializeClass(item, type) {
45
+ return this.objectSerializer.serializeClass(item, type);
46
+ }
47
+ serializeClassArray(item, type) {
48
+ return this.objectSerializer.serializeClassArray(item, type);
49
+ }
50
+ }
51
+ /**
52
+ * Represents an abstract base class for the ACommonsV1ApiService.
53
+ *
54
+ * @typeparam T The main type of data to be handled by the service.
55
+ *
56
+ * @deprecated
57
+ */
58
+ export class ACommonsV1ApiService extends ACommonsBaseV1ApiService {
59
+ constructor(type) {
60
+ super();
61
+ this.type = type;
62
+ }
63
+ deserialize(item) {
64
+ return this.deserializeClass(item, this.type);
65
+ }
66
+ serialize(item) {
67
+ return this.serializeClass(item, this.type);
68
+ }
69
+ }
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmFic3RyYWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92MS9zcmMvc2VydmljZXMvYXBpLmFic3RyYWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFLdkU7Ozs7R0FJRztBQUNILE1BQU0sT0FBZ0Isd0JBQXdCO0lBSTFDO1FBSG1CLHFCQUFnQixHQUFxQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUkzRSxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBTVMsTUFBTSxDQUFDLEdBQUcsWUFBMkI7UUFDM0MsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN0RDtRQUNELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xELElBQUksSUFBSSxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkYsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM3QztRQUNELHVFQUF1RTtRQUN2RSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRVMsbUJBQW1CLENBQUMsVUFBNEIsRUFBRSxJQUFJLEdBQUcsWUFBWTtRQUMzRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFUyxzQkFBc0IsQ0FBSyxJQUFTLEVBQUUsTUFBcUI7UUFDakUsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFUyxnQkFBZ0IsQ0FBSSxJQUFTLEVBQUUsSUFBa0I7UUFDdkQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFUyxxQkFBcUIsQ0FBSSxJQUFTLEVBQUUsSUFBa0I7UUFDNUQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFUyxjQUFjLENBQUksSUFBTyxFQUFFLElBQWtCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVTLG1CQUFtQixDQUFJLElBQWMsRUFBRSxJQUFrQjtRQUMvRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNKO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFnQixvQkFBd0IsU0FBUSx3QkFBd0I7SUFDMUUsWUFBZ0MsSUFBa0I7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFEb0IsU0FBSSxHQUFKLElBQUksQ0FBYztJQUVsRCxDQUFDO0lBRVMsV0FBVyxDQUFDLElBQVM7UUFDM0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRVMsU0FBUyxDQUFDLElBQU87UUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JqZWN0U2VyaWFsaXplcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy1kYXRhLWFwaS1jbGFzcyc7XG5pbXBvcnQge0NsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtfSBmcm9tICcuLi9tb2RlbHMvcXVlcnktcGFyYW0ubW9kZWwnO1xuXG4vKipcbiAqIFRoaXMgaXMgYW4gYWJzdHJhY3QgY2xhc3MgdGhhdCBwcm92aWRlcyBiYXNlIGZ1bmN0aW9uYWxpdHkgZm9yIEFQSSBzZXJ2aWNlcy5cbiAqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQUNvbW1vbnNCYXNlVjFBcGlTZXJ2aWNlIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb2JqZWN0U2VyaWFsaXplcjogT2JqZWN0U2VyaWFsaXplciA9IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQ7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0QmFzZVBhdGgoKTogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFNlcnZpY2VCYXNlUGF0aCgpOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgcHJvdGVjdGVkIGdldFVybCguLi5wYXRoU2VnbWVudHM6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcge1xuICAgICAgICBsZXQgYmFzZVVybCA9IHRoaXMuZ2V0QmFzZVBhdGgoKTtcbiAgICAgICAgaWYgKGJhc2VVcmwuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgYmFzZVVybCA9IGJhc2VVcmwuc3Vic3RyaW5nKDAsIGJhc2VVcmwubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VydmljZUJhc2VQYXRoID0gdGhpcy5nZXRTZXJ2aWNlQmFzZVBhdGgoKTtcbiAgICAgICAgbGV0IHBhdGggPSBbc2VydmljZUJhc2VQYXRoLCAuLi5wYXRoU2VnbWVudHNdLmZpbHRlcihzID0+IHMgJiYgcy5sZW5ndGgpLmpvaW4oJy8nKTtcbiAgICAgICAgLy8gb21pdCBmaXJzdCBhbmQgbGFzdCAnLydcbiAgICAgICAgaWYgKHBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGguZW5kc1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHBhdGgubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmVwbGFjZSBhbnkgZG91YmxlICcvLycgZnJvbSBwYXRoIHRoYXQgY291bGQgY29tZSBmcm9tIGpvaW5pbmcgcGF0aHNcbiAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnLy8nLCAnLycpO1xuICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0vJHtwYXRofWA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZVF1ZXJ5UGFyYW0ocXVlcnlQYXJhbTogTWVkaXVzUXVlcnlQYXJhbSwgdHlwZSA9ICdRdWVyeVBhcmFtJykge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RTZXJpYWxpemVyLnNlcmlhbGl6ZShxdWVyeVBhcmFtLCB0eXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemVRdWVyeVJlc3VsdDxRUj4oaXRlbTogYW55LCBxclR5cGU6IENsYXNzVHlwZTxRUj4pOiBRUiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplQ2xhc3MoaXRlbSwgcXJUeXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemVDbGFzczxDPihpdGVtOiBhbnksIHR5cGU6IENsYXNzVHlwZTxDPik6IEMge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RTZXJpYWxpemVyLmRlc2VyaWFsaXplQ2xhc3MoaXRlbSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlc2VyaWFsaXplQ2xhc3NBcnJheTxDPihpdGVtOiBhbnksIHR5cGU6IENsYXNzVHlwZTxDPik6IEFycmF5PEM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0U2VyaWFsaXplci5kZXNlcmlhbGl6ZUNsYXNzQXJyYXkoaXRlbSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZUNsYXNzPEM+KGl0ZW06IEMsIHR5cGU6IENsYXNzVHlwZTxDPik6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFNlcmlhbGl6ZXIuc2VyaWFsaXplQ2xhc3MoaXRlbSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZUNsYXNzQXJyYXk8Qz4oaXRlbTogQXJyYXk8Qz4sIHR5cGU6IENsYXNzVHlwZTxDPik6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFNlcmlhbGl6ZXIuc2VyaWFsaXplQ2xhc3NBcnJheShpdGVtLCB0eXBlKTtcbiAgICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB0aGUgQUNvbW1vbnNWMUFwaVNlcnZpY2UuXG4gKlxuICogQHR5cGVwYXJhbSBUIFRoZSBtYWluIHR5cGUgb2YgZGF0YSB0byBiZSBoYW5kbGVkIGJ5IHRoZSBzZXJ2aWNlLlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBQ29tbW9uc1YxQXBpU2VydmljZTxUPiBleHRlbmRzIEFDb21tb25zQmFzZVYxQXBpU2VydmljZSB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB0eXBlOiBDbGFzc1R5cGU8VD4pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemUoaXRlbTogYW55KTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplQ2xhc3MoaXRlbSwgdGhpcy50eXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2VyaWFsaXplKGl0ZW06IFQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVDbGFzcyhpdGVtLCB0aGlzLnR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,83 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { map } from 'rxjs/operators';
3
+ import { ACommonsGetAllV1ApiService } from './get-all-api.abstract.service';
4
+ /**
5
+ * Abstract class for creating CRUD API service implementation.
6
+ *
7
+ * @typeparam T The type of the entity.
8
+ * @typeparam QRT The type of the query result.
9
+ *
10
+ * @deprecated
11
+ */
12
+ export class ACommonsCrudV1ApiService extends ACommonsGetAllV1ApiService {
13
+ constructor(type, queryResultType) {
14
+ super(type, queryResultType);
15
+ }
16
+ createPost(item, params) {
17
+ const url = this.getUrl(this.getCreatePostPath(item));
18
+ return this.http
19
+ .post(url, this.serialize(item), {
20
+ withCredentials: true,
21
+ observe: 'body',
22
+ reportProgress: false,
23
+ params: params
24
+ })
25
+ .pipe(map(res => this.deserialize(res)));
26
+ }
27
+ getByIdGet(id, params, locale) {
28
+ const url = this.getUrl(this.getGetByIdGetPath(id));
29
+ if (params && locale) {
30
+ params = params.set('lang', locale);
31
+ }
32
+ else if (locale) {
33
+ params = new HttpParams().set('lang', locale);
34
+ }
35
+ return this.http
36
+ .get(url, {
37
+ withCredentials: true,
38
+ observe: 'body',
39
+ reportProgress: false,
40
+ params: params
41
+ })
42
+ .pipe(map(res => this.deserialize(res)));
43
+ }
44
+ updatePut(id, item, params) {
45
+ const url = this.getUrl(this.getUpdatePutPath(id, item));
46
+ return this.http
47
+ .put(url, this.serialize(item), {
48
+ withCredentials: true,
49
+ observe: 'body',
50
+ reportProgress: false,
51
+ params: params
52
+ })
53
+ .pipe(map(res => this.deserialize(res)));
54
+ }
55
+ removeDelete(id, item, params) {
56
+ const url = this.getUrl(this.getRemoveDeletePath(id, item));
57
+ return this.http
58
+ .request('delete', url, {
59
+ withCredentials: true,
60
+ observe: 'body',
61
+ reportProgress: false,
62
+ body: item ? this.serialize(item) : undefined,
63
+ params: params
64
+ })
65
+ .pipe(map(res => (res ? this.deserialize(res) : null)));
66
+ }
67
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
68
+ getCreatePostPath(item) {
69
+ return '';
70
+ }
71
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
+ getUpdatePutPath(id, item) {
73
+ return `/${id}`;
74
+ }
75
+ getGetByIdGetPath(id) {
76
+ return `/${id}`;
77
+ }
78
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
79
+ getRemoveDeletePath(id, item) {
80
+ return `/${id}`;
81
+ }
82
+ }
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1hcGkuYWJzdHJhY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3YxL3NyYy9zZXJ2aWNlcy9jcnVkLWFwaS5hYnN0cmFjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFLbkMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFtQjFFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQWdCLHdCQUFnRSxTQUFRLDBCQUFrQztJQUM1SCxZQUFzQixJQUFrQixFQUFFLGVBQStCO1FBQ3JFLEtBQUssQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFPLEVBQUUsTUFBbUI7UUFDMUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsSUFBSSxDQUFVLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLE9BQU8sRUFBRSxNQUFNO1lBQ2YsY0FBYyxFQUFFLEtBQUs7WUFDckIsTUFBTSxFQUFFLE1BQU07U0FDakIsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sVUFBVSxDQUFDLEVBQVUsRUFBRSxNQUFtQixFQUFFLE1BQWU7UUFDOUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FB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XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0NsYXNzVHlwZSwgSWRUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UmVzdWx0fSBmcm9tICcuLi9tb2RlbHMvcXVlcnktcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7QUNvbW1vbnNHZXRBbGxWMUFwaVNlcnZpY2V9IGZyb20gJy4vZ2V0LWFsbC1hcGkuYWJzdHJhY3Quc2VydmljZSc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIGludGVyZmFjZSBmb3IgQ1JVRCBvcGVyYXRpb24gb24gYSByZXNvdXJjZS5cbiAqXG4gKiBAdHlwZXBhcmFtIFQgVGhlIG1haW4gdHlwZSBvZiBkYXRhIHRvIGJlIGhhbmRsZWQgYnkgdGhlIHNlcnZpY2UuXG4gKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29tbW9uc0NydWRWMUFwaVNlcnZpY2U8VD4ge1xuICAgIGNyZWF0ZVBvc3Q/KGl0ZW06IFQsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+O1xuXG4gICAgZ2V0QnlJZEdldD8oaWQ6IElkVHlwZSwgcGFyYW1zPzogSHR0cFBhcmFtcywgbG9jYWxlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPjtcblxuICAgIHVwZGF0ZVB1dD8oaWQ6IElkVHlwZSwgaXRlbTogVCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD47XG5cbiAgICByZW1vdmVEZWxldGU/KGlkOiBJZFR5cGUsIGl0ZW0/OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUIHwgbnVsbD47XG59XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGNyZWF0aW5nIENSVUQgQVBJIHNlcnZpY2UgaW1wbGVtZW50YXRpb24uXG4gKlxuICogQHR5cGVwYXJhbSBUIFRoZSB0eXBlIG9mIHRoZSBlbnRpdHkuXG4gKiBAdHlwZXBhcmFtIFFSVCBUaGUgdHlwZSBvZiB0aGUgcXVlcnkgcmVzdWx0LlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBQ29tbW9uc0NydWRWMUFwaVNlcnZpY2U8VCwgUVJUIGV4dGVuZHMgTWVkaXVzUXVlcnlSZXN1bHQ8YW55Pj4gZXh0ZW5kcyBBQ29tbW9uc0dldEFsbFYxQXBpU2VydmljZTxULCBRUlQ+IGltcGxlbWVudHMgSUNvbW1vbnNDcnVkVjFBcGlTZXJ2aWNlPFQ+IHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IodHlwZTogQ2xhc3NUeXBlPFQ+LCBxdWVyeVJlc3VsdFR5cGU6IENsYXNzVHlwZTxRUlQ+KSB7XG4gICAgICAgIHN1cGVyKHR5cGUsIHF1ZXJ5UmVzdWx0VHlwZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVBvc3QoaXRlbTogVCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFVybCh0aGlzLmdldENyZWF0ZVBvc3RQYXRoKGl0ZW0pKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3Q8dW5rbm93bj4odXJsLCB0aGlzLnNlcmlhbGl6ZShpdGVtKSwge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKHJlcyA9PiB0aGlzLmRlc2VyaWFsaXplKHJlcykpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QnlJZEdldChpZDogSWRUeXBlLCBwYXJhbXM/OiBIdHRwUGFyYW1zLCBsb2NhbGU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwodGhpcy5nZXRHZXRCeUlkR2V0UGF0aChpZCkpO1xuICAgICAgICBpZiAocGFyYW1zICYmIGxvY2FsZSkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbGFuZycsIGxvY2FsZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnbGFuZycsIGxvY2FsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDx1bmtub3duPih1cmwsIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gdGhpcy5kZXNlcmlhbGl6ZShyZXMpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVB1dChpZDogSWRUeXBlLCBpdGVtOiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKHRoaXMuZ2V0VXBkYXRlUHV0UGF0aChpZCwgaXRlbSkpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucHV0PHVua25vd24+KHVybCwgdGhpcy5zZXJpYWxpemUoaXRlbSksIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gdGhpcy5kZXNlcmlhbGl6ZShyZXMpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZURlbGV0ZShpZDogSWRUeXBlLCBpdGVtPzogVCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwodGhpcy5nZXRSZW1vdmVEZWxldGVQYXRoKGlkLCBpdGVtKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5yZXF1ZXN0PHVua25vd24+KCdkZWxldGUnLCB1cmwsIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib2R5OiBpdGVtID8gdGhpcy5zZXJpYWxpemUoaXRlbSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShtYXAocmVzID0+IChyZXMgPyB0aGlzLmRlc2VyaWFsaXplKHJlcykgOiBudWxsKSkpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwcm90ZWN0ZWQgZ2V0Q3JlYXRlUG9zdFBhdGgoaXRlbTogVCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIGdldFVwZGF0ZVB1dFBhdGgoaWQ6IElkVHlwZSwgaXRlbTogVCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgLyR7aWR9YDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0R2V0QnlJZEdldFBhdGgoaWQ6IElkVHlwZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgLyR7aWR9YDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIGdldFJlbW92ZURlbGV0ZVBhdGgoaWQ6IElkVHlwZSwgaXRlbT86IFQpIHtcbiAgICAgICAgcmV0dXJuIGAvJHtpZH1gO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { map } from 'rxjs/operators';
3
+ import { ACommonsV1ApiService } from './api.abstract.service';
4
+ /**
5
+ * An abstract class representing a service for retrieving all obsolete entities.
6
+ *
7
+ * @typeparam T The main type of data to be handled by the service.
8
+ * @typeparam QRT The type of the query result in get all operation.
9
+ *
10
+ * @deprecated
11
+ */
12
+ export class ACommonsGetAllV1ApiService extends ACommonsV1ApiService {
13
+ constructor(type, queryResultType) {
14
+ super(type);
15
+ this.queryResultType = queryResultType;
16
+ }
17
+ getAllPost(queryParamBody, params, locale) {
18
+ const url = this.getUrl(this.getGetAllPostPath());
19
+ if (params && locale) {
20
+ params = params.set('lang', locale);
21
+ }
22
+ else if (locale) {
23
+ params = new HttpParams().set('lang', locale);
24
+ }
25
+ return this.http
26
+ .post(url, queryParamBody ? this.serializeQueryParam(queryParamBody) : undefined, {
27
+ withCredentials: true,
28
+ observe: 'body',
29
+ reportProgress: false,
30
+ params: params
31
+ })
32
+ .pipe(map(res => this.deserializeQueryResult(res, this.queryResultType)));
33
+ }
34
+ getGetAllPostPath() {
35
+ return '/get-all';
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1hcGkuYWJzdHJhY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3YxL3NyYy9zZXJ2aWNlcy9nZXQtYWxsLWFwaS5hYnN0cmFjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFNbkMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFhNUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBZ0IsMEJBQWtFLFNBQVEsb0JBQXVCO0lBQ25ILFlBQ0ksSUFBa0IsRUFDUixlQUErQjtRQUV6QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFGRixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7SUFHN0MsQ0FBQztJQUVNLFVBQVUsQ0FBQyxjQUFpQyxFQUFFLE1BQW1CLEVBQUUsTUFBZTtRQUNyRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFO1lBQ2xCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN2QzthQUFNLElBQUksTUFBTSxFQUFFO1lBQ2YsTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNqRDtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxJQUFJLENBQU0sR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDbkYsZUFBZSxFQUFFLElBQUk7WUFDckIsT0FBTyxFQUFFLE1BQU07WUFDZixjQUFjLEVBQUUsS0FBSztZQUNyQixNQUFNLEVBQUUsTUFBTTtTQUNqQixDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRVMsaUJBQWlCO1FBQ3ZCLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7TWVkaXVzUXVlcnlQYXJhbX0gZnJvbSAnLi4vbW9kZWxzL3F1ZXJ5LXBhcmFtLm1vZGVsJztcbmltcG9ydCB7TWVkaXVzUXVlcnlSZXN1bHR9IGZyb20gJy4uL21vZGVscy9xdWVyeS1yZXN1bHQubW9kZWwnO1xuaW1wb3J0IHtBQ29tbW9uc1YxQXBpU2VydmljZX0gZnJvbSAnLi9hcGkuYWJzdHJhY3Quc2VydmljZSc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIGludGVyZmFjZSBmb3IgZ2V0dGluZyBwYWdpbmF0ZWQgZGF0YSByZXN1bHRzIHVzaW5nIFBPU1QgbWV0aG9kLlxuICpcbiAqIEB0eXBlcGFyYW0gUVJUIFRoZSB0eXBlIG9mIHRoZSBxdWVyeSByZXN1bHQgaW4gZ2V0IGFsbCBvcGVyYXRpb24uXG4gKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29tbW9uc0dldEFsbFYxQXBpU2VydmljZTxRUlQgZXh0ZW5kcyBNZWRpdXNRdWVyeVJlc3VsdDxhbnk+PiB7XG4gICAgZ2V0QWxsUG9zdChxdWVyeVBhcmFtQm9keT86IE1lZGl1c1F1ZXJ5UGFyYW0sIHBhcmFtcz86IEh0dHBQYXJhbXMsIGxvY2FsZT86IHN0cmluZyk6IE9ic2VydmFibGU8UVJUPjtcbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdCBjbGFzcyByZXByZXNlbnRpbmcgYSBzZXJ2aWNlIGZvciByZXRyaWV2aW5nIGFsbCBvYnNvbGV0ZSBlbnRpdGllcy5cbiAqXG4gKiBAdHlwZXBhcmFtIFQgVGhlIG1haW4gdHlwZSBvZiBkYXRhIHRvIGJlIGhhbmRsZWQgYnkgdGhlIHNlcnZpY2UuXG4gKiBAdHlwZXBhcmFtIFFSVCBUaGUgdHlwZSBvZiB0aGUgcXVlcnkgcmVzdWx0IGluIGdldCBhbGwgb3BlcmF0aW9uLlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBQ29tbW9uc0dldEFsbFYxQXBpU2VydmljZTxULCBRUlQgZXh0ZW5kcyBNZWRpdXNRdWVyeVJlc3VsdDxhbnk+PiBleHRlbmRzIEFDb21tb25zVjFBcGlTZXJ2aWNlPFQ+IGltcGxlbWVudHMgSUNvbW1vbnNHZXRBbGxWMUFwaVNlcnZpY2U8UVJUPiB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICB0eXBlOiBDbGFzc1R5cGU8VD4sXG4gICAgICAgIHByb3RlY3RlZCBxdWVyeVJlc3VsdFR5cGU6IENsYXNzVHlwZTxRUlQ+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHR5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBbGxQb3N0KHF1ZXJ5UGFyYW1Cb2R5PzogTWVkaXVzUXVlcnlQYXJhbSwgcGFyYW1zPzogSHR0cFBhcmFtcywgbG9jYWxlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxRUlQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwodGhpcy5nZXRHZXRBbGxQb3N0UGF0aCgpKTtcbiAgICAgICAgaWYgKHBhcmFtcyAmJiBsb2NhbGUpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2xhbmcnLCBsb2NhbGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2xhbmcnLCBsb2NhbGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0PGFueT4odXJsLCBxdWVyeVBhcmFtQm9keSA/IHRoaXMuc2VyaWFsaXplUXVlcnlQYXJhbShxdWVyeVBhcmFtQm9keSkgOiB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gdGhpcy5kZXNlcmlhbGl6ZVF1ZXJ5UmVzdWx0KHJlcywgdGhpcy5xdWVyeVJlc3VsdFR5cGUpKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEdldEFsbFBvc3RQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnL2dldC1hbGwnO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { map } from 'rxjs/operators';
2
+ import { ModelUtil } from '@mediusinc/mng-commons/model';
3
+ import { TableviewDataProviderInst } from '@mediusinc/mng-commons/tableview/api';
4
+ import { toV1QueryParam } from '../helpers/query-param-convert';
5
+ import { MediusQueryParamBuilder } from '../models/builders/query-param.builder';
6
+ import { MediusFilterMatchType } from '../models/filter-match-type.model';
7
+ /**
8
+ * A data provider for a CRUD table view that uses an obsolete version 1 API service.
9
+ *
10
+ * @typeparam Model - The type of the data model.
11
+ * @typeparam Service - The type of the API service.
12
+ * @typeparam Sorts - The type for available sort keys on get all operation.
13
+ * @typeparam Filters - The type for available sort keys on get all operation.
14
+ *
15
+ * @deprecated
16
+ */
17
+ export class TableviewCrudV1DataProviderInst extends TableviewDataProviderInst {
18
+ constructor(type, serviceType, idPropertyName, useGetAllForFetch = false) {
19
+ super(type, serviceType);
20
+ this.withGetAll((params, service, locale) => service.getAllPost(toV1QueryParam(params), undefined, locale).pipe(map(res => ({ data: res.pageData ?? [], totalCount: res.allDataCount ?? res.pageData?.length ?? 0 }))));
21
+ if (useGetAllForFetch) {
22
+ const selectedIdPropertyName = idPropertyName ?? ModelUtil.findIdAttribute(type) ?? 'id';
23
+ this.withFetch((id, service) => {
24
+ const qp = MediusQueryParamBuilder.create(10, 0).withFilter(selectedIdPropertyName, id, id, MediusFilterMatchType.Equals, true).build();
25
+ return service.getAllPost(qp).pipe(map(res => res.pageData[0]));
26
+ });
27
+ }
28
+ else {
29
+ this.withFetch((id, service, locale) => service.getByIdGet(id, undefined, locale));
30
+ }
31
+ this.withCreate((item, service) => service.createPost(item));
32
+ this.withUpdate((id, item, service) => service.updatePut(id, item));
33
+ this.withDelete((id, item, service) => service.removeDelete(id, item));
34
+ }
35
+ }
36
+ export class TableviewCrudV1DataProvider extends TableviewCrudV1DataProviderInst {
37
+ /**
38
+ * @deprecated
39
+ */
40
+ static create(type, serviceType, idProperty, useGetAllForFetch = false) {
41
+ return TableviewCrudV1DataProvider.createUnsafe(type, serviceType, idProperty, useGetAllForFetch);
42
+ }
43
+ /**
44
+ * @deprecated
45
+ */
46
+ static createUnsafe(type, serviceType, idProperty, useGetAllForFetch = false) {
47
+ return new TableviewCrudV1DataProviderInst(type, serviceType, idProperty, useGetAllForFetch);
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LWNydWQuZGF0YS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3YxL3NyYy90YWJsZXZpZXcvdGFibGV2aWV3LWNydWQuZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQU14RTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sK0JBS1gsU0FBUSx5QkFBc0c7SUFDNUcsWUFBc0IsSUFBc0IsRUFBRSxXQUEwQixFQUFFLGNBQXVCLEVBQUUsaUJBQWlCLEdBQUcsS0FBSztRQUN4SCxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ3hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLFlBQVksSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDMUssQ0FBQztRQUVGLElBQUksaUJBQWlCLEVBQUU7WUFDbkIsTUFBTSxzQkFBc0IsR0FBRyxjQUFjLElBQUksU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRTtnQkFDM0IsTUFBTSxFQUFFLEdBQXFCLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMxSixPQUFPLE9BQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDeEY7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxJQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQVEsQ0FBQyxZQUFhLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLCtCQUF5QztJQUN0Rjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBS2xCLElBQXNCLEVBQUUsV0FBMEIsRUFBRSxVQUF3QixFQUFFLGlCQUFpQixHQUFHLEtBQUs7UUFDckcsT0FBTywyQkFBMkIsQ0FBQyxZQUFZLENBQWlDLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBS3hCLElBQXNCLEVBQUUsV0FBMEIsRUFBRSxVQUFtQixFQUFFLGlCQUFpQixHQUFHLEtBQUs7UUFDaEcsT0FBTyxJQUFJLCtCQUErQixDQUFpQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pJLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7Q2xhc3NUeXBlLCBTZXJ2aWNlQ2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtNb2RlbFV0aWx9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuaW1wb3J0IHtUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge3RvVjFRdWVyeVBhcmFtfSBmcm9tICcuLi9oZWxwZXJzL3F1ZXJ5LXBhcmFtLWNvbnZlcnQnO1xuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtQnVpbGRlcn0gZnJvbSAnLi4vbW9kZWxzL2J1aWxkZXJzL3F1ZXJ5LXBhcmFtLmJ1aWxkZXInO1xuaW1wb3J0IHtNZWRpdXNGaWx0ZXJNYXRjaFR5cGV9IGZyb20gJy4uL21vZGVscy9maWx0ZXItbWF0Y2gtdHlwZS5tb2RlbCc7XG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW19IGZyb20gJy4uL21vZGVscy9xdWVyeS1wYXJhbS5tb2RlbCc7XG5pbXBvcnQge01lZGl1c1F1ZXJ5UmVzdWx0fSBmcm9tICcuLi9tb2RlbHMvcXVlcnktcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7SUNvbW1vbnNDcnVkVjFBcGlTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9jcnVkLWFwaS5hYnN0cmFjdC5zZXJ2aWNlJztcbmltcG9ydCB7SUNvbW1vbnNHZXRBbGxWMUFwaVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2dldC1hbGwtYXBpLmFic3RyYWN0LnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgZGF0YSBwcm92aWRlciBmb3IgYSBDUlVEIHRhYmxlIHZpZXcgdGhhdCB1c2VzIGFuIG9ic29sZXRlIHZlcnNpb24gMSBBUEkgc2VydmljZS5cbiAqXG4gKiBAdHlwZXBhcmFtIE1vZGVsIC0gVGhlIHR5cGUgb2YgdGhlIGRhdGEgbW9kZWwuXG4gKiBAdHlwZXBhcmFtIFNlcnZpY2UgLSBUaGUgdHlwZSBvZiB0aGUgQVBJIHNlcnZpY2UuXG4gKiBAdHlwZXBhcmFtIFNvcnRzIC0gVGhlIHR5cGUgZm9yIGF2YWlsYWJsZSBzb3J0IGtleXMgb24gZ2V0IGFsbCBvcGVyYXRpb24uXG4gKiBAdHlwZXBhcmFtIEZpbHRlcnMgLSBUaGUgdHlwZSBmb3IgYXZhaWxhYmxlIHNvcnQga2V5cyBvbiBnZXQgYWxsIG9wZXJhdGlvbi5cbiAqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY2xhc3MgVGFibGV2aWV3Q3J1ZFYxRGF0YVByb3ZpZGVySW5zdDxcbiAgICBNb2RlbCxcbiAgICBTZXJ2aWNlIGV4dGVuZHMgSUNvbW1vbnNDcnVkVjFBcGlTZXJ2aWNlPE1vZGVsPiAmIElDb21tb25zR2V0QWxsVjFBcGlTZXJ2aWNlPE1lZGl1c1F1ZXJ5UmVzdWx0PE1vZGVsPj4sXG4gICAgU29ydHMgPSBrZXlvZiBNb2RlbCxcbiAgICBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWxcbj4gZXh0ZW5kcyBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgQ2xhc3NUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj4ge1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LCBzZXJ2aWNlVHlwZTogVHlwZTxTZXJ2aWNlPiwgaWRQcm9wZXJ0eU5hbWU/OiBzdHJpbmcsIHVzZUdldEFsbEZvckZldGNoID0gZmFsc2UpIHtcbiAgICAgICAgc3VwZXIodHlwZSwgc2VydmljZVR5cGUpO1xuICAgICAgICB0aGlzLndpdGhHZXRBbGwoKHBhcmFtcywgc2VydmljZSwgbG9jYWxlKSA9PlxuICAgICAgICAgICAgc2VydmljZS5nZXRBbGxQb3N0KHRvVjFRdWVyeVBhcmFtKHBhcmFtcyksIHVuZGVmaW5lZCwgbG9jYWxlKS5waXBlKG1hcChyZXMgPT4gKHtkYXRhOiByZXMucGFnZURhdGEgPz8gW10sIHRvdGFsQ291bnQ6IHJlcy5hbGxEYXRhQ291bnQgPz8gcmVzLnBhZ2VEYXRhPy5sZW5ndGggPz8gMH0pKSlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodXNlR2V0QWxsRm9yRmV0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRQcm9wZXJ0eU5hbWUgPSBpZFByb3BlcnR5TmFtZSA/PyBNb2RlbFV0aWwuZmluZElkQXR0cmlidXRlKHR5cGUpID8/ICdpZCc7XG4gICAgICAgICAgICB0aGlzLndpdGhGZXRjaCgoaWQsIHNlcnZpY2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBxcDogTWVkaXVzUXVlcnlQYXJhbSA9IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZSgxMCwgMCkud2l0aEZpbHRlcihzZWxlY3RlZElkUHJvcGVydHlOYW1lLCBpZCwgaWQsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5FcXVhbHMsIHRydWUpLmJ1aWxkKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2UhLmdldEFsbFBvc3QocXApLnBpcGUobWFwKHJlcyA9PiByZXMucGFnZURhdGEhWzBdKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMud2l0aEZldGNoKChpZCwgc2VydmljZSwgbG9jYWxlKSA9PiBzZXJ2aWNlIS5nZXRCeUlkR2V0IShpZCwgdW5kZWZpbmVkLCBsb2NhbGUpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndpdGhDcmVhdGUoKGl0ZW0sIHNlcnZpY2UpID0+IHNlcnZpY2UhLmNyZWF0ZVBvc3QhKGl0ZW0hKSk7XG4gICAgICAgIHRoaXMud2l0aFVwZGF0ZSgoaWQsIGl0ZW0sIHNlcnZpY2UpID0+IHNlcnZpY2UhLnVwZGF0ZVB1dCEoaWQsIGl0ZW0hKSk7XG4gICAgICAgIHRoaXMud2l0aERlbGV0ZSgoaWQsIGl0ZW0sIHNlcnZpY2UpID0+IHNlcnZpY2UhLnJlbW92ZURlbGV0ZSEoaWQsIGl0ZW0pKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdDcnVkVjFEYXRhUHJvdmlkZXIgZXh0ZW5kcyBUYWJsZXZpZXdDcnVkVjFEYXRhUHJvdmlkZXJJbnN0PGFueSwgYW55PiB7XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxcbiAgICAgICAgTW9kZWwsXG4gICAgICAgIFNlcnZpY2UgZXh0ZW5kcyBJQ29tbW9uc0NydWRWMUFwaVNlcnZpY2U8TW9kZWw+ICYgSUNvbW1vbnNHZXRBbGxWMUFwaVNlcnZpY2U8TWVkaXVzUXVlcnlSZXN1bHQ8TW9kZWw+PixcbiAgICAgICAgU29ydHMgPSBrZXlvZiBNb2RlbCxcbiAgICAgICAgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueSA9IGtleW9mIE1vZGVsXG4gICAgPih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LCBzZXJ2aWNlVHlwZTogVHlwZTxTZXJ2aWNlPiwgaWRQcm9wZXJ0eT86IGtleW9mIE1vZGVsLCB1c2VHZXRBbGxGb3JGZXRjaCA9IGZhbHNlKTogVGFibGV2aWV3Q3J1ZFYxRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+IHtcbiAgICAgICAgcmV0dXJuIFRhYmxldmlld0NydWRWMURhdGFQcm92aWRlci5jcmVhdGVVbnNhZmU8TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzPih0eXBlLCBzZXJ2aWNlVHlwZSwgaWRQcm9wZXJ0eSBhcyBzdHJpbmcsIHVzZUdldEFsbEZvckZldGNoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlVW5zYWZlPFxuICAgICAgICBNb2RlbCxcbiAgICAgICAgU2VydmljZSBleHRlbmRzIElDb21tb25zQ3J1ZFYxQXBpU2VydmljZTxNb2RlbD4gJiBJQ29tbW9uc0dldEFsbFYxQXBpU2VydmljZTxNZWRpdXNRdWVyeVJlc3VsdDxNb2RlbD4+LFxuICAgICAgICBTb3J0cyA9IGtleW9mIE1vZGVsLFxuICAgICAgICBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWxcbiAgICA+KHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sIHNlcnZpY2VUeXBlOiBUeXBlPFNlcnZpY2U+LCBpZFByb3BlcnR5Pzogc3RyaW5nLCB1c2VHZXRBbGxGb3JGZXRjaCA9IGZhbHNlKTogVGFibGV2aWV3Q3J1ZFYxRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdDcnVkVjFEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz4odHlwZSwgc2VydmljZVR5cGUsIGlkUHJvcGVydHksIHVzZUdldEFsbEZvckZldGNoKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,57 @@
1
+ /**
2
+ * A class representing a mapping of query parameters.
3
+ *
4
+ * @typeparam Sorts - The type for available sort keys on get all operation.
5
+ * @typeparam Filters - The type for available sort keys on get all operation.
6
+ *
7
+ * @deprecated
8
+ */
9
+ export class QueryParamMap {
10
+ constructor(_params) {
11
+ this._params = _params;
12
+ this._sorts = {};
13
+ this._filters = {};
14
+ // empty line
15
+ }
16
+ static create() {
17
+ return new QueryParamMap();
18
+ }
19
+ static forParams(params) {
20
+ return new QueryParamMap(params);
21
+ }
22
+ withSortMap(sort, mapTo) {
23
+ this._sorts[sort] = mapTo;
24
+ return this;
25
+ }
26
+ withFilterMap(filter, mapTo) {
27
+ this._filters[filter] = mapTo;
28
+ return this;
29
+ }
30
+ mapSort(sort) {
31
+ return this._sorts[sort] ?? sort;
32
+ }
33
+ mapFilter(filter) {
34
+ return this._filters[filter] ?? filter;
35
+ }
36
+ mapParams() {
37
+ if (!this._params) {
38
+ return undefined;
39
+ }
40
+ const params = {
41
+ offset: this._params.offset,
42
+ limit: this._params.limit,
43
+ search: this._params.search,
44
+ sort: this._params.sort?.map(s => ({ property: this.mapSort(s.property), ascending: s.ascending }))
45
+ };
46
+ if (this._params.filters) {
47
+ params.filters = {};
48
+ Object.entries(this._params.filters).forEach(([key, value]) => {
49
+ params.filters[this.mapFilter(key)] = {
50
+ ...value
51
+ };
52
+ });
53
+ }
54
+ return params;
55
+ }
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW0tbWFwLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92MS9zcmMvdXRpbHMvcXVlcnktcGFyYW0tbWFwLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBSXRCLFlBQXVDLE9BQXdDO1FBQXhDLFlBQU8sR0FBUCxPQUFPLENBQWlDO1FBSDlELFdBQU0sR0FBMkIsRUFBRSxDQUFDO1FBQ3BDLGFBQVEsR0FBMkIsRUFBRSxDQUFDO1FBR25ELGFBQWE7SUFDakIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxhQUFhLEVBQWtCLENBQUM7SUFDL0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQW1DLE1BQXVDO1FBQzdGLE9BQU8sSUFBSSxhQUFhLENBQWlCLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLENBQUMsSUFBVyxFQUFFLEtBQWE7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFjLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFlLEVBQUUsS0FBYTtRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQWdCLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSyxJQUFlLENBQUM7SUFDakQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSyxNQUFpQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUVELE1BQU0sTUFBTSxHQUFHO1lBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDM0IsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBa0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztTQUNsRixDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDdEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQzFELE1BQU0sQ0FBQyxPQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHO29CQUNuQyxHQUFJLEtBQXdCO2lCQUMvQixDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUxpc3RGaWx0ZXIsIERhdGFMaXN0UGFyYW1zfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG4vKipcbiAqIEEgY2xhc3MgcmVwcmVzZW50aW5nIGEgbWFwcGluZyBvZiBxdWVyeSBwYXJhbWV0ZXJzLlxuICpcbiAqIEB0eXBlcGFyYW0gU29ydHMgLSBUaGUgdHlwZSBmb3IgYXZhaWxhYmxlIHNvcnQga2V5cyBvbiBnZXQgYWxsIG9wZXJhdGlvbi5cbiAqIEB0eXBlcGFyYW0gRmlsdGVycyAtIFRoZSB0eXBlIGZvciBhdmFpbGFibGUgc29ydCBrZXlzIG9uIGdldCBhbGwgb3BlcmF0aW9uLlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWVyeVBhcmFtTWFwPFNvcnRzLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55PiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfc29ydHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfcGFyYW1zPzogRGF0YUxpc3RQYXJhbXM8U29ydHMsIEZpbHRlcnM+KSB7XG4gICAgICAgIC8vIGVtcHR5IGxpbmVcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBRdWVyeVBhcmFtTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZm9yUGFyYW1zPFNvcnRzLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55PihwYXJhbXM/OiBEYXRhTGlzdFBhcmFtczxTb3J0cywgRmlsdGVycz4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBRdWVyeVBhcmFtTWFwPFNvcnRzLCBGaWx0ZXJzPihwYXJhbXMpO1xuICAgIH1cblxuICAgIHdpdGhTb3J0TWFwKHNvcnQ6IFNvcnRzLCBtYXBUbzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NvcnRzW3NvcnQgYXMgc3RyaW5nXSA9IG1hcFRvO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB3aXRoRmlsdGVyTWFwKGZpbHRlcjogRmlsdGVycywgbWFwVG86IHN0cmluZykge1xuICAgICAgICB0aGlzLl9maWx0ZXJzW2ZpbHRlciBhcyBzdHJpbmddID0gbWFwVG87XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG1hcFNvcnQoc29ydDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvcnRzW3NvcnRdID8/IChzb3J0IGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgbWFwRmlsdGVyKGZpbHRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnNbZmlsdGVyXSA/PyAoZmlsdGVyIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgbWFwUGFyYW1zKCk6IERhdGFMaXN0UGFyYW1zPGFueSwgYW55PiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghdGhpcy5fcGFyYW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLl9wYXJhbXMub2Zmc2V0LFxuICAgICAgICAgICAgbGltaXQ6IHRoaXMuX3BhcmFtcy5saW1pdCxcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5fcGFyYW1zLnNlYXJjaCxcbiAgICAgICAgICAgIHNvcnQ6IHRoaXMuX3BhcmFtcy5zb3J0Py5tYXAocyA9PiAoe3Byb3BlcnR5OiB0aGlzLm1hcFNvcnQocy5wcm9wZXJ0eSBhcyBzdHJpbmcpLCBhc2NlbmRpbmc6IHMuYXNjZW5kaW5nfSkpXG4gICAgICAgIH0gYXMgRGF0YUxpc3RQYXJhbXM8YW55LCBhbnk+O1xuXG4gICAgICAgIGlmICh0aGlzLl9wYXJhbXMuZmlsdGVycykge1xuICAgICAgICAgICAgcGFyYW1zLmZpbHRlcnMgPSB7fTtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX3BhcmFtcy5maWx0ZXJzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZmlsdGVycyFbdGhpcy5tYXBGaWx0ZXIoa2V5KV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLih2YWx1ZSBhcyBEYXRhTGlzdEZpbHRlcilcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,95 @@
1
+ import { map } from 'rxjs/operators';
2
+ import { mapToDataList, FilterMatchMode } from '@mediusinc/mng-commons/core';
3
+ import { ModelUtil } from '@mediusinc/mng-commons/model';
4
+ import { TableviewDataProviderInst, TableviewInputBuilder, TableviewDescriptor } from '@mediusinc/mng-commons/tableview/api';
5
+ import { inject, Injector } from '@angular/core';
6
+
7
+ class TableviewCrudDataProviderInst extends TableviewDataProviderInst {
8
+ constructor(type, requestType, serviceType, idPropertyName, useGetAllForFetch = false) {
9
+ super(type, serviceType);
10
+ this.requestType = requestType;
11
+ this._toRequestMap = item => item;
12
+ this.withGetAll((params, service, locale) => service.getAllGet(params, undefined, locale).pipe(mapToDataList()));
13
+ if (useGetAllForFetch) {
14
+ const selectedIdPropertyName = idPropertyName ?? ModelUtil.findIdAttribute(type) ?? 'id';
15
+ this.withFetch((id, service) => {
16
+ return service
17
+ .getAllGet({
18
+ limit: 1,
19
+ filters: {
20
+ [selectedIdPropertyName]: {
21
+ value: id,
22
+ matchMode: FilterMatchMode.Equals
23
+ }
24
+ }
25
+ })
26
+ .pipe(map(res => res.data[0]));
27
+ });
28
+ }
29
+ else {
30
+ this.withFetch((id, service, locale) => service.getByIdGet(id, undefined, locale));
31
+ }
32
+ this.withCreate((item, service) => service.createPost(this.toRequestMap(item)));
33
+ this.withUpdate((id, item, service) => service.updatePut(id, this.toRequestMap(item)));
34
+ this.withDelete((id, item, service) => service.removeDelete(id, item));
35
+ }
36
+ get toRequestMap() {
37
+ return this._toRequestMap;
38
+ }
39
+ withToRequestMap(fn) {
40
+ this._toRequestMap = fn;
41
+ return this;
42
+ }
43
+ }
44
+ class TableviewCrudDataProvider extends TableviewCrudDataProviderInst {
45
+ static create(type, requestType, serviceType, idProperty, useGetAllForFetch = false) {
46
+ return TableviewCrudDataProvider.createUnsafe(type, requestType, serviceType, idProperty, useGetAllForFetch);
47
+ }
48
+ static createUnsafe(type, requestType, serviceType, idProperty, useGetAllForFetch = false) {
49
+ return new TableviewCrudDataProviderInst(type, requestType, serviceType, idProperty, useGetAllForFetch);
50
+ }
51
+ }
52
+
53
+ function prepareBuilder(type, requestType, service, modelConfig, buildFn) {
54
+ const builder = new TableviewInputBuilder(TableviewDescriptor.fromClass(type, modelConfig?.idProperty, modelConfig?.titleProperty, modelConfig?.i18nBaseKey), TableviewCrudDataProvider.create(type, requestType, service, modelConfig?.idProperty), inject(Injector));
55
+ buildFn?.(builder);
56
+ return builder.build();
57
+ }
58
+ /**
59
+ * Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.
60
+ * Sorts and filters are expected to be keys of class.
61
+ *
62
+ * @param {ClassType<Model>} type - The class representing the model.
63
+ * @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.
64
+ * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.
65
+ * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.
66
+ * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
67
+ *
68
+ * @returns A tableview instance with descriptor, data provider and actions.
69
+ */
70
+ function tableviewCrud(type, requestType, service, modelConfig, buildFn) {
71
+ return prepareBuilder(type, requestType, service, modelConfig, buildFn);
72
+ }
73
+ /**
74
+ * Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.
75
+ *
76
+ * @param {ClassType<Model>} type - The class representing the model.
77
+ * @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.
78
+ * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.
79
+ * @param {TypeDescriptor<Sorts>} sorts - The available sort keys of get all request.
80
+ * @param {TypeDescriptor<Filters>} filters - The available filter keys of get all request.
81
+ * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.
82
+ * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
83
+ *
84
+ * @returns A tableview instance with descriptor, data provider and actions.
85
+ */
86
+ function tableviewCrudWithSortAndFilter(type, requestType, service, sorts, filters, modelConfig, buildFn) {
87
+ return prepareBuilder(type, requestType, service, modelConfig, buildFn);
88
+ }
89
+
90
+ /**
91
+ * Generated bundle index. Do not edit.
92
+ */
93
+
94
+ export { TableviewCrudDataProvider, TableviewCrudDataProviderInst, tableviewCrud, tableviewCrudWithSortAndFilter };
95
+ //# sourceMappingURL=mediusinc-mng-commons-data-api-class-tableview.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediusinc-mng-commons-data-api-class-tableview.mjs","sources":["../../tableview/src/tableview-crud.data-provider.ts","../../tableview/src/tableview-crud-create.ts","../../tableview/src/mediusinc-mng-commons-data-api-class-tableview.ts"],"sourcesContent":["import {Type} from '@angular/core';\n\nimport {map} from 'rxjs/operators';\n\nimport {ICommonsCrudApiService, ICommonsGetAllApiService, QueryResult} from '@mediusinc/mng-commons-data-api-class';\nimport {ClassType, FilterMatchMode, ServiceClassType, mapToDataList} from '@mediusinc/mng-commons/core';\nimport {ModelUtil} from '@mediusinc/mng-commons/model';\nimport {TableviewDataProviderInst} from '@mediusinc/mng-commons/tableview/api';\n\nexport type ToRequestMapFnType<Model, RequestModel> = (item?: Model) => RequestModel;\n\nexport class TableviewCrudDataProviderInst<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n> extends TableviewDataProviderInst<Model, Service, Sorts, Filters, ClassType<Model>, ServiceClassType<Service>> {\n private _toRequestMap: ToRequestMapFnType<Model, RequestModel> = item => item as RequestModel;\n\n protected constructor(\n type: ClassType<Model>,\n protected requestType: ClassType<RequestModel>,\n serviceType: Type<Service>,\n idPropertyName?: string,\n useGetAllForFetch = false\n ) {\n super(type, serviceType);\n this.withGetAll((params, service, locale) => service.getAllGet(params, undefined, locale).pipe(mapToDataList()));\n\n if (useGetAllForFetch) {\n const selectedIdPropertyName = idPropertyName ?? ModelUtil.findIdAttribute(type) ?? 'id';\n this.withFetch((id, service) => {\n return service!\n .getAllGet({\n limit: 1,\n filters: {\n [selectedIdPropertyName]: {\n value: id,\n matchMode: FilterMatchMode.Equals\n }\n }\n })\n .pipe(map(res => res.data![0]));\n });\n } else {\n this.withFetch((id, service, locale) => service!.getByIdGet!(id, undefined, locale));\n }\n this.withCreate((item, service) => service.createPost!(this.toRequestMap(item)));\n this.withUpdate((id, item, service) => service.updatePut!(id, this.toRequestMap(item)));\n this.withDelete((id, item, service) => service.removeDelete!(id, item));\n }\n\n public get toRequestMap() {\n return this._toRequestMap;\n }\n\n public withToRequestMap(fn: ToRequestMapFnType<Model, RequestModel>) {\n this._toRequestMap = fn;\n return this;\n }\n}\n\nexport class TableviewCrudDataProvider extends TableviewCrudDataProviderInst<any, any, any> {\n public static create<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n >(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n serviceType: Type<Service>,\n idProperty?: keyof Model,\n useGetAllForFetch = false\n ): TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters> {\n return TableviewCrudDataProvider.createUnsafe<Model, RequestModel, Service, Sorts, Filters>(type, requestType, serviceType, idProperty as string, useGetAllForFetch);\n }\n\n public static createUnsafe<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n >(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n serviceType: Type<Service>,\n idProperty?: string,\n useGetAllForFetch = false\n ): TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters> {\n return new TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>(type, requestType, serviceType, idProperty, useGetAllForFetch);\n }\n}\n","import {Injector, inject} from '@angular/core';\n\nimport {ICommonsCrudApiService, ICommonsGetAllApiService, QueryResult} from '@mediusinc/mng-commons-data-api-class';\nimport {ClassType, ServiceClassType} from '@mediusinc/mng-commons/core';\nimport {TypeDescriptor} from '@mediusinc/mng-commons/model';\nimport {TableviewDescriptor, TableviewDescriptorInst, TableviewInputBuilder} from '@mediusinc/mng-commons/tableview/api';\n\nimport {TableviewCrudDataProvider, TableviewCrudDataProviderInst} from './tableview-crud.data-provider';\n\nfunction prepareBuilder<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts,\n Filters extends keyof any\n>(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n service: ServiceClassType<Service>,\n modelConfig?: {\n idProperty?: keyof Model;\n titleProperty?: keyof Model;\n i18nBaseKey?: string;\n },\n buildFn?: (\n builder: TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters>,\n TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>,\n Sorts,\n Filters\n >\n ) => void\n) {\n const builder = new TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters>,\n TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>,\n Sorts,\n Filters\n >(\n TableviewDescriptor.fromClass(type, modelConfig?.idProperty, modelConfig?.titleProperty, modelConfig?.i18nBaseKey),\n TableviewCrudDataProvider.create(type, requestType, service, modelConfig?.idProperty),\n inject(Injector)\n );\n buildFn?.(builder);\n return builder.build();\n}\n\n/**\n * Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.\n * Sorts and filters are expected to be keys of class.\n *\n * @param {ClassType<Model>} type - The class representing the model.\n * @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.\n * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.\n * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.\n * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.\n *\n * @returns A tableview instance with descriptor, data provider and actions.\n */\nexport function tableviewCrud<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n>(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n service: ServiceClassType<Service>,\n modelConfig?: {\n idProperty?: keyof Model;\n titleProperty?: keyof Model;\n i18nBaseKey?: string;\n },\n buildFn?: (\n builder: TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters>,\n TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>,\n Sorts,\n Filters\n >\n ) => void\n) {\n return prepareBuilder<Model, RequestModel, Service, Sorts, Filters>(type, requestType, service, modelConfig, buildFn);\n}\n\n/**\n * Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.\n *\n * @param {ClassType<Model>} type - The class representing the model.\n * @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.\n * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.\n * @param {TypeDescriptor<Sorts>} sorts - The available sort keys of get all request.\n * @param {TypeDescriptor<Filters>} filters - The available filter keys of get all request.\n * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.\n * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.\n *\n * @returns A tableview instance with descriptor, data provider and actions.\n */\nexport function tableviewCrudWithSortAndFilter<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts,\n Filters extends keyof any\n>(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n service: ServiceClassType<Service>,\n sorts: TypeDescriptor<Sorts>,\n filters: TypeDescriptor<Filters>,\n modelConfig?: {\n idProperty?: keyof Model;\n titleProperty?: keyof Model;\n i18nBaseKey?: string;\n },\n buildFn?: (\n builder: TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters>,\n TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>,\n Sorts,\n Filters\n >\n ) => void\n) {\n return prepareBuilder<Model, RequestModel, Service, Sorts, Filters>(type, requestType, service, modelConfig, buildFn);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}