@solidev/data 0.4.8 → 0.5.1

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 (92) hide show
  1. package/fesm2022/solidev-data.mjs +181 -157
  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-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +7 -1
  5. package/package.json +5 -7
  6. package/esm2022/lib/auth/auth-interceptor.service.mjs +0 -113
  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 -168
  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
  92. package/solidev-data-0.4.8.tgz +0 -0
@@ -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: "18.2.5", 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: "18.2.5", ngImport: i0, type: DataBackend, providedIn: 'root' }); }
144
- }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", 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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SUFBSSxDQUFDLFVBQVUsQ0FBZ0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNyRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQ1QsVUFBeUIsRUFDekIsR0FBVyxFQUNYLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBRSxLQUFvQixFQUFFO1FBRWpELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBZ0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNyRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sT0FBTyxDQUFDLE9BQWtDO1FBR2xELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0EvTFUsV0FBVyx5RUFNWixXQUFXLGFBQ1gsWUFBWSxhQUVaLDJCQUEyQjtrSEFUMUIsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixRQUFROzswQkFDUixNQUFNOzJCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBtYWtlU3RhdGVLZXksIE9wdGlvbmFsLCBQTEFURk9STV9JRCwgVHJhbnNmZXJTdGF0ZSx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpc1BsYXRmb3JtU2VydmVyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDb2xsZWN0aW9uLCBJQWN0aW9uUGFyYW1zfSBmcm9tICcuL2RhdGEtY29sbGVjdGlvbic7XG5pbXBvcnQge0RhdGFNb2RlbH0gZnJvbSAnLi9kYXRhLW1vZGVsJztcbmltcG9ydCB7REFUQV9BUElfVVJMLCBEQVRBX01BWF9UUkFOU0ZFUlNUQVRFX1RJTUV9IGZyb20gJy4vZGF0YS1wYXJhbWV0ZXJzJztcblxuLyoqXG4gKiBEYXRhQmFja2VuZCBwcm92aWRlcyBDUlVEIG9wZXJhdGlvbnMgdG8gYSBSRVNUIGFwaS5cbiAqIFRyYW5zZmVyU3RhdGUgY2FuIGJlIHVzZWQgaWYgREFUQV9NQVhfVFJBTlNGRVJTVEFURV9USU1FIGlzIHNldCBhbmQgPiAwXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhQmFja2VuZCB7XG4gIHByaXZhdGUgX2NyZWF0ZWQgPSBuZXcgRGF0ZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBfdHJhbnNmZXJTdGF0ZTogVHJhbnNmZXJTdGF0ZSxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIF9wbGF0Zm9ybTogYW55LFxuICAgIEBJbmplY3QoREFUQV9BUElfVVJMKSBwcml2YXRlIF9hcGlVcmw6IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoREFUQV9NQVhfVFJBTlNGRVJTVEFURV9USU1FKVxuICAgIHByaXZhdGUgX21heFRyYW5zZmVyc3RhdGVUaW1lOiBudW1iZXIgPSAwLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhcGkgdXJsIGZvciB0aGlzIGJhY2tlbmQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFwaVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hcGlVcmw7XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoIGFuIGFjdGlvbiBvbiBjb2xsZWN0aW9uLlxuICAgKiBJZiBtZXRob2QgaXMgR0VUIGFuZCBjb2xsZWN0aW9uLnVzZVRyYW5zZXJTdGF0ZSAmIHRyYW5zZmVyU3RhdGUgYXJlIGVuYWJsZWQsXG4gICAqIHJlc3VsdCBpcyBzdG9yZWQgLyByZXRyaWV2ZWQgZnJvbSB0cmFuc2ZlclN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0gY29sbGVjdGlvbiBDb2xsZWN0aW9uIHJlZmVyZW5jZVxuICAgKiBAcGFyYW0gbWV0aG9kIEhUVFAgbWV0aG9kXG4gICAqIEBwYXJhbSB1cmwgZnVsbCBVUkwgZm9yIGFjdGlvblxuICAgKiBAcGFyYW0gYm9keSBKU09OIGJvZHlcbiAgICogQHBhcmFtIHBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSBoZWFkZXJzIHF1ZXJ5IGhlYWRlcnNcbiAgICogQHBhcmFtIHJlc3BvbnNlVHlwZSByZXNwb25zZSB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4gYW4gb2JzZXJ2YWJsZSBvZiByZXNwb25zZSBib2R5XG4gICAqL1xuICBwdWJsaWMgYWN0aW9uPFQgZXh0ZW5kcyBEYXRhTW9kZWwsIFJUPihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIG1ldGhvZDogJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJyxcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IGJvZHkgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPFJUPiB7XG4gICAgaWYgKG1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jYWNoZWRHZXQoY29sbGVjdGlvbiwgdXJsLCB7XG4gICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyhoZWFkZXJzKSxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiB0aGlzLl9odHRwLnJlcXVlc3Q8UlQ+KG1ldGhvZCwgdXJsLCB7XG4gICAgICAgIGJvZHksXG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzKGhlYWRlcnMpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExhdW5jaCBhbiBhY3Rpb24gb24gY29sbGVjdGlvbiwgcmVjZWl2aW5nIGEgYmxvYi5cbiAgICpcbiAgICogQHBhcmFtIGNvbGxlY3Rpb24gQ29sbGVjdGlvbiByZWZlcmVuY2VcbiAgICogQHBhcmFtIG1ldGhvZCBIVFRQIG1ldGhvZFxuICAgKiBAcGFyYW0gdXJsIGZ1bGwgVVJMIGZvciBhY3Rpb25cbiAgICogQHBhcmFtIGJvZHkgSlNPTiBib2R5XG4gICAqIEBwYXJhbSBwYXJhbXMgcXVlcnkgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0gaGVhZGVycyBxdWVyeSBoZWFkZXJzXG4gICAqIEBwYXJhbSByZXNwb25zZVR5cGUgcmVzcG9uc2UgdHlwZVxuICAgKlxuICAgKiBAcmV0dXJuIGFuIG9ic2VydmFibGUgb2YgcmVzcG9uc2UgYm9keVxuICAgKi9cbiAgcHVibGljIGJsb2I8VCBleHRlbmRzIERhdGFNb2RlbD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICBtZXRob2Q6ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnIHwgJ0RFTEVURScsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgeyBib2R5ID0gdW5kZWZpbmVkLCBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9IH06IElBY3Rpb25QYXJhbXMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiB0aGlzLl9odHRwLnJlcXVlc3QobWV0aG9kLCB1cmwsIHtcbiAgICAgIGJvZHksXG4gICAgICBwYXJhbXMsXG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoaGVhZGVycyksXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBwdXQ8VCBleHRlbmRzIERhdGFNb2RlbD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IGJvZHkgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8VD4odXJsLCBib2R5LCB7XG4gICAgICBwYXJhbXMsXG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoaGVhZGVycyksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcG9zdDxUIGV4dGVuZHMgRGF0YU1vZGVsPihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIHVybDogc3RyaW5nLFxuICAgIHsgYm9keSA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30sIGhlYWRlcnMgPSB7fSB9OiBJQWN0aW9uUGFyYW1zID0ge30sXG4gICk6IE9ic2VydmFibGU8UGFydGlhbDxUPj4ge1xuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8UGFydGlhbDxUPj4odXJsLCBib2R5LCB7XG4gICAgICBwYXJhbXMsXG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoaGVhZGVycyksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2g8VCBleHRlbmRzIERhdGFNb2RlbD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IGJvZHkgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPFBhcnRpYWw8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wYXRjaDxQYXJ0aWFsPFQ+Pih1cmwsIGJvZHksIHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyhoZWFkZXJzKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGU8VCBleHRlbmRzIERhdGFNb2RlbCwgUj4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5kZWxldGU8Uj4odXJsLCB7XG4gICAgICBwYXJhbXMsXG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoaGVhZGVycyksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgX2NhY2hlZEdldDxUIGV4dGVuZHMgRGF0YU1vZGVsLCBSVD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPFJUPiB7XG4gICAgY29uc3QgY3VyX2hlYWRlcnMgPSB0aGlzLmhlYWRlcnMoaGVhZGVycyk7XG5cbiAgICBjb25zdCBrZXkgPSBtYWtlU3RhdGVLZXk8UlQ+KFxuICAgICAgdXJsICsgJ3wnICsgSlNPTi5zdHJpbmdpZnkocGFyYW1zKSArICd8JyArIEpTT04uc3RyaW5naWZ5KGN1cl9oZWFkZXJzKSxcbiAgICApO1xuICAgIGlmIChcbiAgICAgIGNvbGxlY3Rpb24udXNlVHJhbnNmZXJTdGF0ZSAmJlxuICAgICAgdGhpcy5fbWF4VHJhbnNmZXJzdGF0ZVRpbWUgPiAwICYmXG4gICAgICB0aGlzLl90cmFuc2ZlclN0YXRlLmhhc0tleShrZXkpICYmXG4gICAgICBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMuX2NyZWF0ZWQuZ2V0VGltZSgpIDxcbiAgICAgICAgdGhpcy5fbWF4VHJhbnNmZXJzdGF0ZVRpbWVcbiAgICApIHtcbiAgICAgIHJldHVybiBvZih0aGlzLl90cmFuc2ZlclN0YXRlLmdldDxSVCB8IG51bGw+KGtleSwgbnVsbCkgYXMgUlQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8UlQ+KHVybCwgeyBoZWFkZXJzOiBjdXJfaGVhZGVycywgcGFyYW1zIH0pLnBpcGUoXG4gICAgICB0YXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY29sbGVjdGlvbi51c2VUcmFuc2ZlclN0YXRlICYmXG4gICAgICAgICAgaXNQbGF0Zm9ybVNlcnZlcih0aGlzLl9wbGF0Zm9ybSkgJiZcbiAgICAgICAgICB0aGlzLl9tYXhUcmFuc2ZlcnN0YXRlVGltZSA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5fdHJhbnNmZXJTdGF0ZS5zZXQ8UlQ+KGtleSwgcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQ8VCBleHRlbmRzIERhdGFNb2RlbD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPFBhcnRpYWw8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVkR2V0PFQsIFBhcnRpYWw8VD4+KGNvbGxlY3Rpb24sIHVybCwge1xuICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzKGhlYWRlcnMpLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxpc3Q8VCBleHRlbmRzIERhdGFNb2RlbD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jYWNoZWRHZXQ8VCwgUGFydGlhbDxUPj4oY29sbGVjdGlvbiwgdXJsLCB7XG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoaGVhZGVycyksXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGhlYWRlcnMgZm9yIHRoaXMgYmFja2VuZC5cbiAgICogUHJvdmlkZWQgaGVhZGVycyBhcmUgY29waWVkIGFuZCByZXR1cm5lZC5cbiAgICogQ2FuIGJlIG92ZXJyaWRlbiBieSBzdWJjbGFzc2VzIGZvciBzcGVjaWZpYyBoZWFkZXJzIChlLmcuIGF1dGggdG9rZW4pLlxuICAgKi9cbiAgcHJvdGVjdGVkIGhlYWRlcnMoaGVhZGVyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBoZWFkZXJzKTtcbiAgfVxufVxuIl19
@@ -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==