@solidev/data 0.4.7 → 0.5.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 (91) hide show
  1. package/fesm2022/solidev-data.mjs +171 -171
  2. package/fesm2022/solidev-data.mjs.map +1 -1
  3. package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +2 -2
  4. package/lib/modellist/model-list.service.d.ts +3 -1
  5. package/package.json +5 -7
  6. package/esm2022/lib/auth/auth-interceptor.service.mjs +0 -118
  7. package/esm2022/lib/auth/auth.service.mjs +0 -216
  8. package/esm2022/lib/auth/jwt.mjs +0 -21
  9. package/esm2022/lib/data/data-backend.mjs +0 -162
  10. package/esm2022/lib/data/data-collection.mjs +0 -125
  11. package/esm2022/lib/data/data-collection.mock.mjs +0 -39
  12. package/esm2022/lib/data/data-model.mjs +0 -291
  13. package/esm2022/lib/data/data-parameters.mjs +0 -34
  14. package/esm2022/lib/data/data-query.mjs +0 -154
  15. package/esm2022/lib/data/data-query.mock.mjs +0 -46
  16. package/esm2022/lib/data/fields/base.mjs +0 -144
  17. package/esm2022/lib/data/fields/boolean.mjs +0 -38
  18. package/esm2022/lib/data/fields/computed.mjs +0 -10
  19. package/esm2022/lib/data/fields/datetime.mjs +0 -167
  20. package/esm2022/lib/data/fields/index.mjs +0 -8
  21. package/esm2022/lib/data/fields/numbers.mjs +0 -38
  22. package/esm2022/lib/data/fields/primaryfield.mjs +0 -9
  23. package/esm2022/lib/data/fields/relations.mjs +0 -53
  24. package/esm2022/lib/data/fields/stringfields.mjs +0 -71
  25. package/esm2022/lib/dispedit/choice.pipe.mjs +0 -79
  26. package/esm2022/lib/dispedit/dispedit/dispedit.component.mjs +0 -480
  27. package/esm2022/lib/dispedit/dispedit/dispedit.constants.mjs +0 -2
  28. package/esm2022/lib/dispedit/factor.pipe.mjs +0 -81
  29. package/esm2022/lib/dispedit/factorc.pipe.mjs +0 -99
  30. package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +0 -139
  31. package/esm2022/lib/dispedit/flags/flags.component.mjs +0 -137
  32. package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +0 -312
  33. package/esm2022/lib/dispedit/richedit/richedit.component.mjs +0 -126
  34. package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +0 -103
  35. package/esm2022/lib/messages/message-zone/message-zone.component.mjs +0 -53
  36. package/esm2022/lib/messages/message.service.mjs +0 -151
  37. package/esm2022/lib/modellist/model-list-fields/model-list-field-header/messages.mjs +0 -2
  38. package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +0 -61
  39. package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +0 -64
  40. package/esm2022/lib/modellist/model-list-fields/model-list-fields.mjs +0 -273
  41. package/esm2022/lib/modellist/model-list-filters/filters/filtertypes.mjs +0 -3
  42. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +0 -109
  43. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +0 -28
  44. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +0 -29
  45. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +0 -9
  46. package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +0 -40
  47. package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +0 -14
  48. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +0 -40
  49. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +0 -14
  50. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +0 -21
  51. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +0 -14
  52. package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +0 -49
  53. package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +0 -23
  54. package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +0 -24
  55. package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +0 -63
  56. package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +0 -16
  57. package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +0 -46
  58. package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +0 -49
  59. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +0 -56
  60. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +0 -40
  61. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +0 -51
  62. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +0 -21
  63. package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +0 -40
  64. package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +0 -17
  65. package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +0 -174
  66. package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +0 -18
  67. package/esm2022/lib/modellist/model-list-filters/model-list-filter-group.mjs +0 -19
  68. package/esm2022/lib/modellist/model-list-filters/model-list-filter.mjs +0 -157
  69. package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +0 -50
  70. package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +0 -51
  71. package/esm2022/lib/modellist/model-list-filters/model-list-filters.mjs +0 -134
  72. package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +0 -69
  73. package/esm2022/lib/modellist/model-list-paginator/model-list-paginator.mjs +0 -47
  74. package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +0 -49
  75. package/esm2022/lib/modellist/model-list-sorter/model-list-sorter.mjs +0 -116
  76. package/esm2022/lib/modellist/model-list.service.mjs +0 -164
  77. package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +0 -138
  78. package/esm2022/lib/routing/routing.mjs +0 -57
  79. package/esm2022/lib/updates/update/update.component.mjs +0 -17
  80. package/esm2022/lib/updates/update.service.mjs +0 -58
  81. package/esm2022/lib/uploader/index.mjs +0 -6
  82. package/esm2022/lib/uploader/interfaces.mjs +0 -8
  83. package/esm2022/lib/uploader/ng-file-drop.directive.mjs +0 -81
  84. package/esm2022/lib/uploader/ng-file-select.directive.mjs +0 -51
  85. package/esm2022/lib/uploader/ngx-uploader.class.mjs +0 -308
  86. package/esm2022/lib/uploader/ngx-uploader.module.mjs +0 -17
  87. package/esm2022/lib/utils/slugify.mjs +0 -16
  88. package/esm2022/lib/utils/tab-memory.service.mjs +0 -80
  89. package/esm2022/lib/utils/template.mjs +0 -72
  90. package/esm2022/public-api.mjs +0 -56
  91. package/esm2022/solidev-data.mjs +0 -5
@@ -1,162 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { tap } from 'rxjs/operators';
3
- import { Inject, Injectable, makeStateKey, Optional, PLATFORM_ID, } from '@angular/core';
4
- import { isPlatformServer } from '@angular/common';
5
- import { DATA_API_URL, DATA_MAX_TRANSFERSTATE_TIME } from './data-parameters';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common/http";
8
- /**
9
- * DataBackend provides CRUD operations to a REST api.
10
- * TransferState can be used if DATA_MAX_TRANSFERSTATE_TIME is set and > 0
11
- */
12
- export class DataBackend {
13
- constructor(_http, _transferState, _platform, _apiUrl, _maxTransferstateTime = 0) {
14
- this._http = _http;
15
- this._transferState = _transferState;
16
- this._platform = _platform;
17
- this._apiUrl = _apiUrl;
18
- this._maxTransferstateTime = _maxTransferstateTime;
19
- this._created = new Date();
20
- }
21
- /**
22
- * Return api url for this backend.
23
- */
24
- get apiUrl() {
25
- return this._apiUrl;
26
- }
27
- /**
28
- * Launch an action on collection.
29
- * If method is GET and collection.useTranserState & transferState are enabled,
30
- * result is stored / retrieved from transferState.
31
- *
32
- * @param collection Collection reference
33
- * @param method HTTP method
34
- * @param url full URL for action
35
- * @param body JSON body
36
- * @param params query parameters
37
- * @param headers query headers
38
- * @param responseType response type
39
- *
40
- * @return an observable of response body
41
- */
42
- action(collection, method, url, { body = undefined, params = {}, headers = {} } = {}) {
43
- if (method === 'GET') {
44
- return this._cachedGet(collection, url, {
45
- headers: this.headers(headers),
46
- params,
47
- });
48
- }
49
- else {
50
- // @ts-ignore
51
- return this._http.request(method, url, {
52
- body,
53
- params,
54
- headers: this.headers(headers),
55
- });
56
- }
57
- }
58
- /**
59
- * Launch an action on collection, receiving a blob.
60
- *
61
- * @param collection Collection reference
62
- * @param method HTTP method
63
- * @param url full URL for action
64
- * @param body JSON body
65
- * @param params query parameters
66
- * @param headers query headers
67
- * @param responseType response type
68
- *
69
- * @return an observable of response body
70
- */
71
- blob(collection, method, url, { body = undefined, params = {}, headers = {} } = {}) {
72
- // @ts-ignore
73
- return this._http.request(method, url, {
74
- body,
75
- params,
76
- headers: this.headers(headers),
77
- responseType: 'blob',
78
- });
79
- }
80
- put(collection, url, { body = undefined, params = {}, headers = {} } = {}) {
81
- return this._http.put(url, body, {
82
- params,
83
- headers: this.headers(headers),
84
- });
85
- }
86
- post(collection, url, { body = undefined, params = {}, headers = {} } = {}) {
87
- return this._http.post(url, body, {
88
- params,
89
- headers: this.headers(headers),
90
- });
91
- }
92
- patch(collection, url, { body = undefined, params = {}, headers = {} } = {}) {
93
- return this._http.patch(url, body, {
94
- params,
95
- headers: this.headers(headers),
96
- });
97
- }
98
- delete(collection, url, { params = {}, headers = {} } = {}) {
99
- return this._http.delete(url, {
100
- params,
101
- headers: this.headers(headers),
102
- });
103
- }
104
- _cachedGet(collection, url, { params = {}, headers = {} } = {}) {
105
- const cur_headers = this.headers(headers);
106
- const key = makeStateKey(url + '|' + JSON.stringify(params) + '|' + JSON.stringify(cur_headers));
107
- if (collection.useTransferState &&
108
- this._maxTransferstateTime > 0 &&
109
- this._transferState.hasKey(key) &&
110
- new Date().getTime() - this._created.getTime() <
111
- this._maxTransferstateTime) {
112
- return of(this._transferState.get(key, null));
113
- }
114
- return this._http.get(url, { headers: cur_headers, params }).pipe(tap((result) => {
115
- if (collection.useTransferState &&
116
- isPlatformServer(this._platform) &&
117
- this._maxTransferstateTime > 0) {
118
- this._transferState.set(key, result);
119
- }
120
- }));
121
- }
122
- get(collection, url, { params = {}, headers = {} } = {}) {
123
- return this._cachedGet(collection, url, {
124
- headers: this.headers(headers),
125
- params,
126
- });
127
- }
128
- list(collection, url, { params = {}, headers = {} } = {}) {
129
- return this._cachedGet(collection, url, {
130
- headers: this.headers(headers),
131
- params,
132
- });
133
- }
134
- /**
135
- * Return headers for this backend.
136
- * Provided headers are copied and returned.
137
- * Can be overriden by subclasses for specific headers (e.g. auth token).
138
- */
139
- headers(headers) {
140
- return Object.assign({}, headers);
141
- }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DataBackend, deps: [{ token: i1.HttpClient }, { token: i0.TransferState }, { token: PLATFORM_ID }, { token: DATA_API_URL }, { token: DATA_MAX_TRANSFERSTATE_TIME, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
143
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DataBackend, providedIn: 'root' }); }
144
- }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DataBackend, decorators: [{
146
- type: Injectable,
147
- args: [{
148
- providedIn: 'root',
149
- }]
150
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.TransferState }, { type: undefined, decorators: [{
151
- type: Inject,
152
- args: [PLATFORM_ID]
153
- }] }, { type: undefined, decorators: [{
154
- type: Inject,
155
- args: [DATA_API_URL]
156
- }] }, { type: undefined, decorators: [{
157
- type: Optional
158
- }, {
159
- type: Inject,
160
- args: [DATA_MAX_TRANSFERSTATE_TIME]
161
- }] }] });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1iYWNrZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZGF0YS1iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxHQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUdqRCxPQUFPLEVBQUMsWUFBWSxFQUFFLDJCQUEyQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7OztBQUU1RTs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNVLEtBQWlCLEVBQ2pCLGNBQTZCLEVBQ1IsU0FBYyxFQUNiLE9BQWUsRUFHckMsd0JBQWdDLENBQUM7UUFOakMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNSLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBR3JDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBWTtRQVRuQyxhQUFRLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQVUzQixDQUFDO0lBRUo7O09BRUc7SUFDSCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0ksTUFBTSxDQUNYLFVBQXlCLEVBQ3pCLE1BQW1ELEVBQ25ELEdBQVcsRUFDWCxFQUFFLElBQUksR0FBRyxTQUFTLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBRSxLQUFv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SUFBSSxDQUFDLFVBQVUsQ0FBZ0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNyRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQ1QsVUFBeUIsRUFDekIsR0FBVyxFQUNYLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBRSxLQUFvQixFQUFFO1FBRWpELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBZ0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNyRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sT0FBTyxDQUFDLE9BQWtDO1FBR2xELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0EvTFUsV0FBVyx5RUFNWixXQUFXLGFBQ1gsWUFBWSxhQUVaLDJCQUEyQjtrSEFUMUIsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixRQUFROzswQkFDUixNQUFNOzJCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgbWFrZVN0YXRlS2V5LCBPcHRpb25hbCwgUExBVEZPUk1fSUQsIFRyYW5zZmVyU3RhdGUsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aXNQbGF0Zm9ybVNlcnZlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29sbGVjdGlvbiwgSUFjdGlvblBhcmFtc30gZnJvbSAnLi9kYXRhLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHtEYXRhTW9kZWx9IGZyb20gJy4vZGF0YS1tb2RlbCc7XG5pbXBvcnQge0RBVEFfQVBJX1VSTCwgREFUQV9NQVhfVFJBTlNGRVJTVEFURV9USU1FfSBmcm9tICcuL2RhdGEtcGFyYW1ldGVycyc7XG5cbi8qKlxuICogRGF0YUJhY2tlbmQgcHJvdmlkZXMgQ1JVRCBvcGVyYXRpb25zIHRvIGEgUkVTVCBhcGkuXG4gKiBUcmFuc2ZlclN0YXRlIGNhbiBiZSB1c2VkIGlmIERBVEFfTUFYX1RSQU5TRkVSU1RBVEVfVElNRSBpcyBzZXQgYW5kID4gMFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YUJhY2tlbmQge1xuICBwcml2YXRlIF9jcmVhdGVkID0gbmV3IERhdGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgX3RyYW5zZmVyU3RhdGU6IFRyYW5zZmVyU3RhdGUsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBfcGxhdGZvcm06IGFueSxcbiAgICBASW5qZWN0KERBVEFfQVBJX1VSTCkgcHJpdmF0ZSBfYXBpVXJsOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KERBVEFfTUFYX1RSQU5TRkVSU1RBVEVfVElNRSlcbiAgICBwcml2YXRlIF9tYXhUcmFuc2ZlcnN0YXRlVGltZTogbnVtYmVyID0gMCxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYXBpIHVybCBmb3IgdGhpcyBiYWNrZW5kLlxuICAgKi9cbiAgcHVibGljIGdldCBhcGlVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYXBpVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIExhdW5jaCBhbiBhY3Rpb24gb24gY29sbGVjdGlvbi5cbiAgICogSWYgbWV0aG9kIGlzIEdFVCBhbmQgY29sbGVjdGlvbi51c2VUcmFuc2VyU3RhdGUgJiB0cmFuc2ZlclN0YXRlIGFyZSBlbmFibGVkLFxuICAgKiByZXN1bHQgaXMgc3RvcmVkIC8gcmV0cmlldmVkIGZyb20gdHJhbnNmZXJTdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIGNvbGxlY3Rpb24gQ29sbGVjdGlvbiByZWZlcmVuY2VcbiAgICogQHBhcmFtIG1ldGhvZCBIVFRQIG1ldGhvZFxuICAgKiBAcGFyYW0gdXJsIGZ1bGwgVVJMIGZvciBhY3Rpb25cbiAgICogQHBhcmFtIGJvZHkgSlNPTiBib2R5XG4gICAqIEBwYXJhbSBwYXJhbXMgcXVlcnkgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0gaGVhZGVycyBxdWVyeSBoZWFkZXJzXG4gICAqIEBwYXJhbSByZXNwb25zZVR5cGUgcmVzcG9uc2UgdHlwZVxuICAgKlxuICAgKiBAcmV0dXJuIGFuIG9ic2VydmFibGUgb2YgcmVzcG9uc2UgYm9keVxuICAgKi9cbiAgcHVibGljIGFjdGlvbjxUIGV4dGVuZHMgRGF0YU1vZGVsLCBSVD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICBtZXRob2Q6ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnIHwgJ0RFTEVURScsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgeyBib2R5ID0gdW5kZWZpbmVkLCBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9IH06IElBY3Rpb25QYXJhbXMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxSVD4ge1xuICAgIGlmIChtZXRob2QgPT09ICdHRVQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY2FjaGVkR2V0KGNvbGxlY3Rpb24sIHVybCwge1xuICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoaGVhZGVycyksXG4gICAgICAgIHBhcmFtcyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gdGhpcy5faHR0cC5yZXF1ZXN0PFJUPihtZXRob2QsIHVybCwge1xuICAgICAgICBib2R5LFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyhoZWFkZXJzKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMYXVuY2ggYW4gYWN0aW9uIG9uIGNvbGxlY3Rpb24sIHJlY2VpdmluZyBhIGJsb2IuXG4gICAqXG4gICAqIEBwYXJhbSBjb2xsZWN0aW9uIENvbGxlY3Rpb24gcmVmZXJlbmNlXG4gICAqIEBwYXJhbSBtZXRob2QgSFRUUCBtZXRob2RcbiAgICogQHBhcmFtIHVybCBmdWxsIFVSTCBmb3IgYWN0aW9uXG4gICAqIEBwYXJhbSBib2R5IEpTT04gYm9keVxuICAgKiBAcGFyYW0gcGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIGhlYWRlcnMgcXVlcnkgaGVhZGVyc1xuICAgKiBAcGFyYW0gcmVzcG9uc2VUeXBlIHJlc3BvbnNlIHR5cGVcbiAgICpcbiAgICogQHJldHVybiBhbiBvYnNlcnZhYmxlIG9mIHJlc3BvbnNlIGJvZHlcbiAgICovXG4gIHB1YmxpYyBibG9iPFQgZXh0ZW5kcyBEYXRhTW9kZWw+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4sXG4gICAgbWV0aG9kOiAnR0VUJyB8ICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyB8ICdERUxFVEUnLFxuICAgIHVybDogc3RyaW5nLFxuICAgIHsgYm9keSA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30sIGhlYWRlcnMgPSB7fSB9OiBJQWN0aW9uUGFyYW1zID0ge30sXG4gICk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gdGhpcy5faHR0cC5yZXF1ZXN0KG1ldGhvZCwgdXJsLCB7XG4gICAgICBib2R5LFxuICAgICAgcGFyYW1zLFxuICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzKGhlYWRlcnMpLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcHV0PFQgZXh0ZW5kcyBEYXRhTW9kZWw+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4sXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgeyBib2R5ID0gdW5kZWZpbmVkLCBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9IH06IElBY3Rpb25QYXJhbXMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PFQ+KHVybCwgYm9keSwge1xuICAgICAgcGFyYW1zLFxuICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzKGhlYWRlcnMpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHBvc3Q8VCBleHRlbmRzIERhdGFNb2RlbD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IGJvZHkgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPFBhcnRpYWw8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFBhcnRpYWw8VD4+KHVybCwgYm9keSwge1xuICAgICAgcGFyYW1zLFxuICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzKGhlYWRlcnMpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHBhdGNoPFQgZXh0ZW5kcyBEYXRhTW9kZWw+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4sXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgeyBib2R5ID0gdW5kZWZpbmVkLCBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9IH06IElBY3Rpb25QYXJhbXMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxQYXJ0aWFsPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucGF0Y2g8UGFydGlhbDxUPj4odXJsLCBib2R5LCB7XG4gICAgICBwYXJhbXMsXG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoaGVhZGVycyksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlPFQgZXh0ZW5kcyBEYXRhTW9kZWwsIFI+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4sXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgeyBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9IH06IElBY3Rpb25QYXJhbXMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlPFI+KHVybCwge1xuICAgICAgcGFyYW1zLFxuICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzKGhlYWRlcnMpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIF9jYWNoZWRHZXQ8VCBleHRlbmRzIERhdGFNb2RlbCwgUlQ+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4sXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgeyBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9IH06IElBY3Rpb25QYXJhbXMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxSVD4ge1xuICAgIGNvbnN0IGN1cl9oZWFkZXJzID0gdGhpcy5oZWFkZXJzKGhlYWRlcnMpO1xuXG4gICAgY29uc3Qga2V5ID0gbWFrZVN0YXRlS2V5PFJUPihcbiAgICAgIHVybCArICd8JyArIEpTT04uc3RyaW5naWZ5KHBhcmFtcykgKyAnfCcgKyBKU09OLnN0cmluZ2lmeShjdXJfaGVhZGVycyksXG4gICAgKTtcbiAgICBpZiAoXG4gICAgICBjb2xsZWN0aW9uLnVzZVRyYW5zZmVyU3RhdGUgJiZcbiAgICAgIHRoaXMuX21heFRyYW5zZmVyc3RhdGVUaW1lID4gMCAmJlxuICAgICAgdGhpcy5fdHJhbnNmZXJTdGF0ZS5oYXNLZXkoa2V5KSAmJlxuICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLl9jcmVhdGVkLmdldFRpbWUoKSA8XG4gICAgICAgIHRoaXMuX21heFRyYW5zZmVyc3RhdGVUaW1lXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5fdHJhbnNmZXJTdGF0ZS5nZXQ8UlQgfCBudWxsPihrZXksIG51bGwpIGFzIFJUKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJUPih1cmwsIHsgaGVhZGVyczogY3VyX2hlYWRlcnMsIHBhcmFtcyB9KS5waXBlKFxuICAgICAgdGFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNvbGxlY3Rpb24udXNlVHJhbnNmZXJTdGF0ZSAmJlxuICAgICAgICAgIGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5fcGxhdGZvcm0pICYmXG4gICAgICAgICAgdGhpcy5fbWF4VHJhbnNmZXJzdGF0ZVRpbWUgPiAwXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuX3RyYW5zZmVyU3RhdGUuc2V0PFJUPihrZXksIHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0PFQgZXh0ZW5kcyBEYXRhTW9kZWw+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4sXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgeyBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9IH06IElBY3Rpb25QYXJhbXMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxQYXJ0aWFsPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlZEdldDxULCBQYXJ0aWFsPFQ+Pihjb2xsZWN0aW9uLCB1cmwsIHtcbiAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyhoZWFkZXJzKSxcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBsaXN0PFQgZXh0ZW5kcyBEYXRhTW9kZWw+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4sXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgeyBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9IH06IElBY3Rpb25QYXJhbXMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVkR2V0PFQsIFBhcnRpYWw8VD4+KGNvbGxlY3Rpb24sIHVybCwge1xuICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzKGhlYWRlcnMpLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBoZWFkZXJzIGZvciB0aGlzIGJhY2tlbmQuXG4gICAqIFByb3ZpZGVkIGhlYWRlcnMgYXJlIGNvcGllZCBhbmQgcmV0dXJuZWQuXG4gICAqIENhbiBiZSBvdmVycmlkZW4gYnkgc3ViY2xhc3NlcyBmb3Igc3BlY2lmaWMgaGVhZGVycyAoZS5nLiBhdXRoIHRva2VuKS5cbiAgICovXG4gIHByb3RlY3RlZCBoZWFkZXJzKGhlYWRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgaGVhZGVycyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,125 +0,0 @@
1
- import { Queryset } from './data-query';
2
- import { map, tap } from 'rxjs/operators';
3
- export class Collection {
4
- constructor(backend, path, model) {
5
- this.backend = backend;
6
- this.path = path;
7
- this.model = model;
8
- this.useTransferState = true;
9
- }
10
- create(data) {
11
- if (!data) {
12
- data = {};
13
- }
14
- return this.fromJson(data);
15
- }
16
- fromJson(data) {
17
- if (data instanceof Array) {
18
- const out = [];
19
- for (const r of data) {
20
- const ri = new this.model(this);
21
- ri.fromJson(r);
22
- out.push(ri);
23
- }
24
- return out;
25
- }
26
- const m = new this.model(this);
27
- m.fromJson(data);
28
- return m;
29
- }
30
- queryset(options = {}) {
31
- return new Queryset(this, options);
32
- }
33
- fetch(id, { prefix = '', suffix = '', params = {}, headers = {}, } = {}) {
34
- return this.backend
35
- .get(this, this.getUrl(id, { prefix, suffix }), { headers, params })
36
- .pipe(map((result) => this.fromJson(result)));
37
- }
38
- action(model, method, action, { body = undefined, params = {}, headers = {} } = {}) {
39
- return this.backend.action(this, method, this.getUrl(model ? model.id : null, {
40
- suffix: model ? '/' + action : action,
41
- }), { body, params, headers });
42
- }
43
- save(model, { updateModel = true } = {}) {
44
- let saveMethod = model.id !== undefined
45
- ? this.backend.patch.bind(this.backend)
46
- : this.backend.post.bind(this.backend);
47
- let url = model.id !== undefined ? this.getUrl(model.id) : this.getUrl();
48
- return saveMethod(this, url, { body: model.toJson() }).pipe(map((res) => this.fromJson(res)), tap((res) => {
49
- if (updateModel) {
50
- model.fromJson(res);
51
- }
52
- }));
53
- }
54
- update(model, fields = [], { updateModel = true } = {}) {
55
- let saveMethod = model.id !== undefined
56
- ? this.backend.patch.bind(this.backend)
57
- : this.backend.post.bind(this.backend);
58
- let url = model.id !== undefined ? this.getUrl(model.id) : this.getUrl();
59
- return saveMethod(this, url, { body: model.toJson(fields) }).pipe(map((res) => this.fromJson(res)), tap((res) => {
60
- if (updateModel) {
61
- model.fromJson(res);
62
- }
63
- }));
64
- }
65
- delete(model, { params = {}, headers = {} } = {}) {
66
- return this.backend.delete(this, this.getUrl(model.id), {
67
- params,
68
- headers,
69
- });
70
- }
71
- list(query = {}, { prefix = '', suffix = '', params = {}, headers = {}, } = {}) {
72
- const qry = Object.assign({}, query, params);
73
- return this.backend
74
- .list(this, this.getUrl(null, { suffix, prefix }),
75
- // SEE: forced typecast maybe bad
76
- { params: qry, headers })
77
- .pipe(
78
- // FIXME: parametrize paginated results access
79
- map((result) => this.fromJson(result.results)));
80
- }
81
- /**
82
- * Calls *method* endpoint for this collection and returns raw results.
83
- *
84
- * @param method GET/POST/...
85
- * @param prefix collection_urlPREFIXSUFFIX
86
- * @param suffix collection_urlPREFIXSUFFIX
87
- * @param params query paremeters
88
- * @param body body as json
89
- * @param headers headers
90
- */
91
- raw({ method = 'GET', prefix = '', suffix = '', params = {}, body = {}, headers = {}, } = {}) {
92
- return this.backend.action(this, method, this.getUrl(null, { suffix, prefix }), {
93
- params,
94
- headers,
95
- });
96
- }
97
- /**
98
- * Calls *method* endpoint for this collection and returns raw results.
99
- *
100
- * @param method GET/POST/...
101
- * @param prefix collection_urlPREFIXSUFFIX
102
- * @param suffix collection_urlPREFIXSUFFIX
103
- * @param params query paremeters
104
- * @param body body as json
105
- * @param headers headers
106
- */
107
- blob({ method = 'GET', prefix = '', suffix = '', params = {}, body = {}, headers = {}, } = {}) {
108
- return this.backend.blob(this, method, this.getUrl(null, { suffix, prefix }), {
109
- params,
110
- headers,
111
- });
112
- }
113
- getUrl(id, { prefix = '', suffix = '' } = {}) {
114
- if (id === undefined || id === null) {
115
- if (prefix || suffix) {
116
- return `${this.backend.apiUrl}${this.path}/${prefix}${suffix}`;
117
- }
118
- else {
119
- return `${this.backend.apiUrl}${this.path}`;
120
- }
121
- }
122
- return `${this.backend.apiUrl}${this.path}/${prefix}${id}${suffix}`;
123
- }
124
- }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZGF0YS1jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBZ0MsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUF1QjFDLE1BQU0sT0FBTyxVQUFVO0lBR3JCLFlBQ1ksT0FBb0IsRUFDcEIsSUFBWSxFQUNmLEtBQXVCO1FBRnBCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBTHpCLHFCQUFnQixHQUFHLElBQUksQ0FBQztJQU01QixDQUFDO0lBRUcsTUFBTSxDQUFDLElBQWlCO1FBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLElBQUksR0FBRyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFJRCxRQUFRLENBQUMsSUFBK0I7UUFDdEMsSUFBSSxJQUFJLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDMUIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1lBQ3BCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDZixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELE1BQU0sQ0FBQyxH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R0FBRyxFQUFFLEVBQ1gsSUFBSSxHQUFHLEVBQUUsRUFDVCxPQUFPLEdBQUcsRUFBRSxNQVFWLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN0QixJQUFJLEVBQ0osTUFBTSxFQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQ3JDO1lBQ0UsTUFBTTtZQUNOLE9BQU87U0FDUixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUNYLEVBQWtCLEVBQ2xCLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRSxLQUEyQyxFQUFFO1FBRXZFLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNqRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU0sR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDdEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi9kYXRhLW1vZGVsJztcbmltcG9ydCB7IERhdGFCYWNrZW5kIH0gZnJvbSAnLi9kYXRhLWJhY2tlbmQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlsdGVyRGF0YSwgSVF1ZXJ5c2V0T3B0aW9ucywgUXVlcnlzZXQgfSBmcm9tICcuL2RhdGEtcXVlcnknO1xuaW1wb3J0IHsgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIElIdHRwTWV0aG9kID0gJ1BPU1QnIHwgJ0dFVCcgfCAnREVMRVRFJyB8ICdQVVQnIHwgJ1BBVENIJztcblxuZXhwb3J0IGludGVyZmFjZSBJQWN0aW9uUGFyYW1zIHtcbiAgYm9keT86IGFueTtcbiAgaGVhZGVycz86IHsgW2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcGFyYW1zPzogeyBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB9O1xuICByZXNwb25zZVR5cGU/OiAnanNvbicgfCAnYmxvYic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbGxlY3Rpb25DYWNoZVBhcmFtcyB7XG4gIHRyYW5zZmVyU3RhdGU/OiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBtYXhUaW1lOiBudW1iZXI7XG4gICAgbWF4Q291bnQ6IG51bWJlcjtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgRGF0YU1vZGVsVHlwZTxUIGV4dGVuZHMgRGF0YU1vZGVsPiA9IG5ldyAoXG4gIF9jb2xsPzogQ29sbGVjdGlvbjxUPlxuKSA9PiBUO1xuXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbjxUIGV4dGVuZHMgRGF0YU1vZGVsPiB7XG4gIHB1YmxpYyB1c2VUcmFuc2ZlclN0YXRlID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYmFja2VuZDogRGF0YUJhY2tlbmQsXG4gICAgcHJvdGVjdGVkIHBhdGg6IHN0cmluZyxcbiAgICBwdWJsaWMgbW9kZWw6IERhdGFNb2RlbFR5cGU8VD5cbiAgKSB7fVxuXG4gIHB1YmxpYyBjcmVhdGUoZGF0YT86IFBhcnRpYWw8VD4pOiBUIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGRhdGEgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZnJvbUpzb24oZGF0YSk7XG4gIH1cblxuICBmcm9tSnNvbihkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbiAgZnJvbUpzb24oZGF0YTogUGFydGlhbDxUPltdKTogVFtdO1xuICBmcm9tSnNvbihkYXRhOiBQYXJ0aWFsPFQ+IHwgUGFydGlhbDxUPltdKTogVCB8IFRbXSB7XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgY29uc3Qgb3V0OiBUW10gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgciBvZiBkYXRhKSB7XG4gICAgICAgIGNvbnN0IHJpID0gbmV3IHRoaXMubW9kZWwodGhpcyk7XG4gICAgICAgIHJpLmZyb21Kc29uKHIpO1xuICAgICAgICBvdXQucHVzaChyaSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3V0O1xuICAgIH1cbiAgICBjb25zdCBtID0gbmV3IHRoaXMubW9kZWwodGhpcyk7XG4gICAgbS5mcm9tSnNvbihkYXRhKTtcbiAgICByZXR1cm4gbTtcbiAgfVxuXG4gIHB1YmxpYyBxdWVyeXNldChvcHRpb25zOiBJUXVlcnlzZXRPcHRpb25zID0ge30pOiBRdWVyeXNldDxUPiB7XG4gICAgcmV0dXJuIG5ldyBRdWVyeXNldDxUPih0aGlzLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaChcbiAgICBpZDogbnVtYmVyLFxuICAgIHtcbiAgICAgIHByZWZpeCA9ICcnLFxuICAgICAgc3VmZml4ID0gJycsXG4gICAgICBwYXJhbXMgPSB7fSxcbiAgICAgIGhlYWRlcnMgPSB7fSxcbiAgICB9OiB7XG4gICAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgICBzdWZmaXg/OiBzdHJpbmc7XG4gICAgICBwYXJhbXM/OiB7IFtfaW5kZXg6IHN0cmluZ106IHN0cmluZyB9O1xuICAgICAgaGVhZGVycz86IHsgW19pbmRleDogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXQodGhpcywgdGhpcy5nZXRVcmwoaWQsIHsgcHJlZml4LCBzdWZmaXggfSksIHsgaGVhZGVycywgcGFyYW1zIH0pXG4gICAgICAucGlwZShtYXAoKHJlc3VsdCkgPT4gdGhpcy5mcm9tSnNvbihyZXN1bHQpKSk7XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uPFJUPihcbiAgICBtb2RlbDogVCB8IG51bGwsXG4gICAgbWV0aG9kOiBJSHR0cE1ldGhvZCxcbiAgICBhY3Rpb246IHN0cmluZyxcbiAgICB7IGJvZHkgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9XG4gICk6IE9ic2VydmFibGU8UlQ+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmFjdGlvbjxULCBSVD4oXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgdGhpcy5nZXRVcmwobW9kZWwgPyBtb2RlbC5pZCA6IG51bGwsIHtcbiAgICAgICAgc3VmZml4OiBtb2RlbCA/ICcvJyArIGFjdGlvbiA6IGFjdGlvbixcbiAgICAgIH0pLFxuICAgICAgeyBib2R5LCBwYXJhbXMsIGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZShcbiAgICBtb2RlbDogVCxcbiAgICB7IHVwZGF0ZU1vZGVsID0gdHJ1ZSB9OiB7IHVwZGF0ZU1vZGVsPzogYm9vbGVhbiB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgbGV0IHNhdmVNZXRob2QgPVxuICAgICAgbW9kZWwuaWQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHRoaXMuYmFja2VuZC5wYXRjaC5iaW5kKHRoaXMuYmFja2VuZClcbiAgICAgICAgOiB0aGlzLmJhY2tlbmQucG9zdC5iaW5kKHRoaXMuYmFja2VuZCk7XG4gICAgbGV0IHVybCA9IG1vZGVsLmlkICE9PSB1bmRlZmluZWQgPyB0aGlzLmdldFVybChtb2RlbC5pZCkgOiB0aGlzLmdldFVybCgpO1xuICAgIHJldHVybiBzYXZlTWV0aG9kKHRoaXMsIHVybCwgeyBib2R5OiBtb2RlbC50b0pzb24oKSB9KS5waXBlKFxuICAgICAgbWFwKChyZXMpID0+IHRoaXMuZnJvbUpzb24ocmVzKSksXG4gICAgICB0YXAoKHJlcykgPT4ge1xuICAgICAgICBpZiAodXBkYXRlTW9kZWwpIHtcbiAgICAgICAgICBtb2RlbC5mcm9tSnNvbihyZXMpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKFxuICAgIG1vZGVsOiBULFxuICAgIGZpZWxkczogc3RyaW5nW10gPSBbXSxcbiAgICB7IHVwZGF0ZU1vZGVsID0gdHJ1ZSB9OiB7IHVwZGF0ZU1vZGVsPzogYm9vbGVhbiB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgbGV0IHNhdmVNZXRob2QgPVxuICAgICAgbW9kZWwuaWQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHRoaXMuYmFja2VuZC5wYXRjaC5iaW5kKHRoaXMuYmFja2VuZClcbiAgICAgICAgOiB0aGlzLmJhY2tlbmQucG9zdC5iaW5kKHRoaXMuYmFja2VuZCk7XG4gICAgbGV0IHVybCA9IG1vZGVsLmlkICE9PSB1bmRlZmluZWQgPyB0aGlzLmdldFVybChtb2RlbC5pZCkgOiB0aGlzLmdldFVybCgpO1xuICAgIHJldHVybiBzYXZlTWV0aG9kKHRoaXMsIHVybCwgeyBib2R5OiBtb2RlbC50b0pzb24oZmllbGRzKSB9KS5waXBlKFxuICAgICAgbWFwKChyZXMpID0+IHRoaXMuZnJvbUpzb24ocmVzKSksXG4gICAgICB0YXAoKHJlcykgPT4ge1xuICAgICAgICBpZiAodXBkYXRlTW9kZWwpIHtcbiAgICAgICAgICBtb2RlbC5mcm9tSnNvbihyZXMpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKFxuICAgIG1vZGVsOiBULFxuICAgIHsgcGFyYW1zID0ge30sIGhlYWRlcnMgPSB7fSB9OiBJQWN0aW9uUGFyYW1zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbGV0ZSh0aGlzLCB0aGlzLmdldFVybChtb2RlbC5pZCksIHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhlYWRlcnMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbGlzdChcbiAgICBxdWVyeTogRmlsdGVyRGF0YSA9IHt9LFxuICAgIHtcbiAgICAgIHByZWZpeCA9ICcnLFxuICAgICAgc3VmZml4ID0gJycsXG4gICAgICBwYXJhbXMgPSB7fSxcbiAgICAgIGhlYWRlcnMgPSB7fSxcbiAgICB9OiB7XG4gICAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgICBzdWZmaXg/OiBzdHJpbmc7XG4gICAgICBwYXJhbXM/OiB7IFtfaW5kZXg6IHN0cmluZ106IHN0cmluZyB9O1xuICAgICAgaGVhZGVycz86IHsgW19pbmRleDogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgY29uc3QgcXJ5ID0gT2JqZWN0LmFzc2lnbih7fSwgcXVlcnksIHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmxpc3QoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuZ2V0VXJsKG51bGwsIHsgc3VmZml4LCBwcmVmaXggfSksXG4gICAgICAgIC8vIFNFRTogZm9yY2VkIHR5cGVjYXN0IG1heWJlIGJhZFxuICAgICAgICB7IHBhcmFtczogcXJ5LCBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBGSVhNRTogcGFyYW1ldHJpemUgcGFnaW5hdGVkIHJlc3VsdHMgYWNjZXNzXG4gICAgICAgIG1hcCgocmVzdWx0OiB7IHJlc3VsdHM6IFBhcnRpYWw8VD5bXSB9KSA9PlxuICAgICAgICAgIHRoaXMuZnJvbUpzb24ocmVzdWx0LnJlc3VsdHMpXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgKm1ldGhvZCogZW5kcG9pbnQgZm9yIHRoaXMgY29sbGVjdGlvbiBhbmQgcmV0dXJucyByYXcgcmVzdWx0cy5cbiAgICpcbiAgICogQHBhcmFtIG1ldGhvZCBHRVQvUE9TVC8uLi5cbiAgICogQHBhcmFtIHByZWZpeCBjb2xsZWN0aW9uX3VybFBSRUZJWFNVRkZJWFxuICAgKiBAcGFyYW0gc3VmZml4IGNvbGxlY3Rpb25fdXJsUFJFRklYU1VGRklYXG4gICAqIEBwYXJhbSBwYXJhbXMgcXVlcnkgcGFyZW1ldGVyc1xuICAgKiBAcGFyYW0gYm9keSBib2R5IGFzIGpzb25cbiAgICogQHBhcmFtIGhlYWRlcnMgaGVhZGVyc1xuICAgKi9cbiAgcHVibGljIHJhdzxSVD4oe1xuICAgIG1ldGhvZCA9ICdHRVQnLFxuICAgIHByZWZpeCA9ICcnLFxuICAgIHN1ZmZpeCA9ICcnLFxuICAgIHBhcmFtcyA9IHt9LFxuICAgIGJvZHkgPSB7fSxcbiAgICBoZWFkZXJzID0ge30sXG4gIH06IHtcbiAgICBtZXRob2Q/OiBJSHR0cE1ldGhvZDtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgc3VmZml4Pzogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgcGFyYW1zPzogeyBbX2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICBoZWFkZXJzPzogeyBbX2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgfSA9IHt9KTogT2JzZXJ2YWJsZTxSVD4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuYWN0aW9uKFxuICAgICAgdGhpcyxcbiAgICAgIG1ldGhvZCxcbiAgICAgIHRoaXMuZ2V0VXJsKG51bGwsIHsgc3VmZml4LCBwcmVmaXggfSksXG4gICAgICB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxzICptZXRob2QqIGVuZHBvaW50IGZvciB0aGlzIGNvbGxlY3Rpb24gYW5kIHJldHVybnMgcmF3IHJlc3VsdHMuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRob2QgR0VUL1BPU1QvLi4uXG4gICAqIEBwYXJhbSBwcmVmaXggY29sbGVjdGlvbl91cmxQUkVGSVhTVUZGSVhcbiAgICogQHBhcmFtIHN1ZmZpeCBjb2xsZWN0aW9uX3VybFBSRUZJWFNVRkZJWFxuICAgKiBAcGFyYW0gcGFyYW1zIHF1ZXJ5IHBhcmVtZXRlcnNcbiAgICogQHBhcmFtIGJvZHkgYm9keSBhcyBqc29uXG4gICAqIEBwYXJhbSBoZWFkZXJzIGhlYWRlcnNcbiAgICovXG4gIHB1YmxpYyBibG9iPFJUPih7XG4gICAgbWV0aG9kID0gJ0dFVCcsXG4gICAgcHJlZml4ID0gJycsXG4gICAgc3VmZml4ID0gJycsXG4gICAgcGFyYW1zID0ge30sXG4gICAgYm9keSA9IHt9LFxuICAgIGhlYWRlcnMgPSB7fSxcbiAgfToge1xuICAgIG1ldGhvZD86IElIdHRwTWV0aG9kO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICBzdWZmaXg/OiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBwYXJhbXM/OiB7IFtfaW5kZXg6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIGhlYWRlcnM/OiB7IFtfaW5kZXg6IHN0cmluZ106IHN0cmluZyB9O1xuICB9ID0ge30pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmJsb2IoXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgdGhpcy5nZXRVcmwobnVsbCwgeyBzdWZmaXgsIHByZWZpeCB9KSxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXJsKFxuICAgIGlkPzogbnVtYmVyIHwgbnVsbCxcbiAgICB7IHByZWZpeCA9ICcnLCBzdWZmaXggPSAnJyB9OiB7IHByZWZpeD86IHN0cmluZzsgc3VmZml4Pzogc3RyaW5nIH0gPSB7fVxuICApOiBzdHJpbmcge1xuICAgIGlmIChpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSBudWxsKSB7XG4gICAgICBpZiAocHJlZml4IHx8IHN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5iYWNrZW5kLmFwaVVybH0ke3RoaXMucGF0aH0vJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmJhY2tlbmQuYXBpVXJsfSR7dGhpcy5wYXRofWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmJhY2tlbmQuYXBpVXJsfSR7dGhpcy5wYXRofS8ke3ByZWZpeH0ke2lkfSR7c3VmZml4fWA7XG4gIH1cbn1cbiJdfQ==
@@ -1,39 +0,0 @@
1
- import { of } from "rxjs";
2
- import { QuerysetMock } from "./data-query.mock";
3
- export class CollectionMock {
4
- constructor(model) {
5
- this.model = model;
6
- }
7
- fetch(id, suffix = "") {
8
- return of(this.mockValue);
9
- }
10
- action(model, method, action, params) {
11
- return of(this.actionValue);
12
- }
13
- queryset(options = {}) {
14
- return new QuerysetMock(this, options);
15
- }
16
- list(query = {}, suffix = "") {
17
- return of({ results: this.mockValues });
18
- }
19
- fromJson(data, many = false) {
20
- if (data && data.id !== undefined) {
21
- const m = new this.model(this);
22
- m.fromJson(data);
23
- return m;
24
- }
25
- else {
26
- if (many && data && data.length) {
27
- const out = [];
28
- for (const r of data) {
29
- const ri = new this.model(this);
30
- ri.fromJson(r);
31
- out.push(ri);
32
- }
33
- return out;
34
- }
35
- return data;
36
- }
37
- }
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb2xsZWN0aW9uLm1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGF0YS9kYXRhLWNvbGxlY3Rpb24ubW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWEsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUcvQyxNQUFNLE9BQU8sY0FBYztJQUt6QixZQUFzQixLQUFvQztRQUFwQyxVQUFLLEdBQUwsS0FBSyxDQUErQjtJQUMxRCxDQUFDO0lBRU0sS0FBSyxDQUFDLEVBQVUsRUFBRSxTQUFpQixFQUFFO1FBQzFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFjLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWUsRUFBRSxNQUFtQixFQUFFLE1BQWMsRUFBRSxNQUFxQjtRQUN2RixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxVQUE0QixFQUFFO1FBQzVDLE9BQU8sSUFBSSxZQUFZLENBQUksSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxJQUFJLENBQUMsUUFBcUMsRUFBRSxFQUFFLFNBQWlCLEVBQUU7UUFDdEUsT0FBTyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFTLEVBQUUsT0FBZ0IsS0FBSztRQUN2QyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFXLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNoQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ3JCLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFXLENBQUMsQ0FBQztvQkFDdkMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDZixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhTW9kZWx9IGZyb20gXCIuL2RhdGEtbW9kZWxcIjtcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0lRdWVyeXNldE9wdGlvbnN9IGZyb20gXCIuL2RhdGEtcXVlcnlcIjtcbmltcG9ydCB7UXVlcnlzZXRNb2NrfSBmcm9tIFwiLi9kYXRhLXF1ZXJ5Lm1vY2tcIjtcbmltcG9ydCB7Q29sbGVjdGlvbiwgSUFjdGlvblBhcmFtcywgSUh0dHBNZXRob2R9IGZyb20gXCIuL2RhdGEtY29sbGVjdGlvblwiO1xuXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbk1vY2s8VCBleHRlbmRzIERhdGFNb2RlbD4ge1xuICBwdWJsaWMgbW9ja1ZhbHVlPzogVDtcbiAgcHVibGljIG1vY2tWYWx1ZXM/OiBUW107XG4gIHB1YmxpYyBhY3Rpb25WYWx1ZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtb2RlbDogbmV3KGNvbGw6IENvbGxlY3Rpb248VD4pID0+IFQpIHtcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaChpZDogbnVtYmVyLCBzdWZmaXg6IHN0cmluZyA9IFwiXCIpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gb2YodGhpcy5tb2NrVmFsdWUgYXMgVCk7XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uKG1vZGVsOiBUIHwgbnVsbCwgbWV0aG9kOiBJSHR0cE1ldGhvZCwgYWN0aW9uOiBzdHJpbmcsIHBhcmFtczogSUFjdGlvblBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG9mKHRoaXMuYWN0aW9uVmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5c2V0KG9wdGlvbnM6IElRdWVyeXNldE9wdGlvbnMgPSB7fSk6IFF1ZXJ5c2V0TW9jazxUPiB7XG4gICAgcmV0dXJuIG5ldyBRdWVyeXNldE1vY2s8VD4odGhpcywgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgbGlzdChxdWVyeTogeyBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB9ID0ge30sIHN1ZmZpeDogc3RyaW5nID0gXCJcIik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG9mKHtyZXN1bHRzOiB0aGlzLm1vY2tWYWx1ZXN9KTtcbiAgfVxuXG4gIGZyb21Kc29uKGRhdGE6IGFueSwgbWFueTogYm9vbGVhbiA9IGZhbHNlKTogVCB8IGFueSB7XG4gICAgaWYgKGRhdGEgJiYgZGF0YS5pZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBtID0gbmV3IHRoaXMubW9kZWwodGhpcyBhcyBhbnkpO1xuICAgICAgbS5mcm9tSnNvbihkYXRhKTtcbiAgICAgIHJldHVybiBtO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobWFueSAmJiBkYXRhICYmIGRhdGEubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IG91dDogVFtdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgciBvZiBkYXRhKSB7XG4gICAgICAgICAgY29uc3QgcmkgPSBuZXcgdGhpcy5tb2RlbCh0aGlzIGFzIGFueSk7XG4gICAgICAgICAgcmkuZnJvbUpzb24ocik7XG4gICAgICAgICAgb3V0LnB1c2gocmkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==