@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,291 +0,0 @@
1
- import { PROPERTY_METADATA_KEY, } from './fields/base';
2
- import { FormControl, FormGroup } from '@angular/forms';
3
- import { throwError } from 'rxjs';
4
- import { tap } from 'rxjs/operators';
5
- /**
6
- * Base class for data model.
7
- *
8
- * Each class must have a static __name
9
- * primary field is given with id field.
10
- *
11
- * Some methods are provided to be used with a collection, mostly for CRUD operations.
12
- *
13
- */
14
- export class DataModel {
15
- /**
16
- * data model name
17
- * this need to be given because class name is not fully available because of minification.
18
- */
19
- static { this.__name = ''; }
20
- /**
21
- * Constructor for data model instance.
22
- * A matching collection can be provided.
23
- * ___fields readonly property is also populated from Reflected metadata
24
- *
25
- * @param _coll collection used for CRUD, etc..
26
- */
27
- constructor(_coll) {
28
- this._coll = _coll;
29
- const md = Reflect.getMetadata(PROPERTY_METADATA_KEY, this);
30
- // istanbul ignore if
31
- if (!md) {
32
- // This should never occur as all datamodel have at least id field
33
- throw new Error('No property metadata found for this object; is there a property in current collection ?');
34
- }
35
- // Get all fields from current class and its parents
36
- const fields = new Map();
37
- let parent = Object.getPrototypeOf(this);
38
- while (parent.constructor.name !== 'Object') {
39
- for (const f of md.keys()) {
40
- const fieldName = f.split('__')[1];
41
- if (fields.has(fieldName)) {
42
- continue;
43
- }
44
- if (f.indexOf(parent.constructor.__name + '__') === 0) {
45
- fields.set(fieldName, md.get(f));
46
- }
47
- }
48
- parent = Object.getPrototypeOf(parent);
49
- }
50
- this._F = Object.freeze(fields);
51
- }
52
- get _collection() {
53
- return this._coll;
54
- }
55
- set _collection(coll) {
56
- this._coll = coll;
57
- }
58
- /**
59
- * HashMap of fields metadata (type, name, manager, etc...)
60
- */
61
- get F() {
62
- // istanbul ignore if
63
- if (!this._F) {
64
- throw new Error('Invalid data model, fields metadata is missing');
65
- }
66
- return this._F;
67
- }
68
- // Return field names iterator
69
- get FN() {
70
- return this.F.keys();
71
- }
72
- /**
73
- * Loads model data from json.
74
- * If partial is true, only fields with matching data keys will be loaded
75
- * @param data
76
- * @param options
77
- */
78
- fromJson(data, { partial, check } = {
79
- partial: false,
80
- check: false,
81
- }) {
82
- const errors = {};
83
- let haveError = false;
84
- for (const f of this.FN) {
85
- if (!partial || (partial && Object.keys(data).indexOf(f) !== -1)) {
86
- const ferr = this.setFV(f, this.FM(f).fromJson(data[f]), check);
87
- if (ferr !== null) {
88
- errors[f] = ferr;
89
- haveError = true;
90
- }
91
- }
92
- }
93
- return haveError ? errors : null;
94
- }
95
- toJson(fields) {
96
- if (fields && !Array.isArray(fields)) {
97
- fields = [fields];
98
- }
99
- const out = {};
100
- const fl = this.F;
101
- for (const f of this.FN) {
102
- const mgr = this.FM(f);
103
- if (!fields || fields.length === 0) {
104
- if (mgr.readonly) {
105
- continue;
106
- }
107
- out[f] = fl.get(f).manager.toJson(this.FV(f));
108
- }
109
- else {
110
- if (fields.indexOf(f) !== -1) {
111
- out[f] = fl.get(f).manager.toJson(this.FV(f));
112
- }
113
- }
114
- }
115
- return out;
116
- }
117
- action(method, name, { body = undefined, update = false, updatePartial = true, updateCheck = false,
118
- // updateRaise = false,
119
- params = {}, headers = {}, } = {}) {
120
- if (this._coll === undefined) {
121
- return throwError(() => new Error('Missing collection'));
122
- }
123
- return this._coll
124
- .action(this, method, name, {
125
- body,
126
- params,
127
- headers,
128
- })
129
- .pipe(tap((result) => {
130
- if (update) {
131
- this.fromJson(result, {
132
- partial: updatePartial,
133
- check: updateCheck,
134
- });
135
- return this;
136
- }
137
- return result;
138
- }));
139
- }
140
- // Called on model, returns the manager for a field.
141
- FM(field) {
142
- if (this.F.has(field)) {
143
- return this.F.get(field).manager;
144
- }
145
- throw new Error(`${field} not found in ${Object.keys(this.F).join(',')} model ${this}`);
146
- }
147
- // Return field value, without typing
148
- FV(field) {
149
- return this[field];
150
- }
151
- /**
152
- * Set field value. If check is true, only set value if all validators pass.
153
- * Skip setting field value if manager computed flag is true.
154
- *
155
- * The validation result is returned.
156
- *
157
- * @param field field name
158
- * @param value field valued
159
- * @param check default false
160
- * @return null or ValidationError
161
- */
162
- setFV(field, value, check = false) {
163
- if (this.FM(field).computed) {
164
- return null;
165
- }
166
- if (check) {
167
- const fc = new FormControl(value);
168
- for (const v of this.FM(field).validators) {
169
- const val = v(fc);
170
- if (val !== null) {
171
- console.error(val);
172
- return val;
173
- }
174
- }
175
- }
176
- this[field] = value;
177
- return null;
178
- }
179
- FC(field) {
180
- if (field === undefined) {
181
- field = Array.from(this.FN).filter((n) => !this.FM(n).readonly);
182
- }
183
- if (Array.isArray(field)) {
184
- const fg = {};
185
- for (const f of field) {
186
- fg[f] = this.FC(f);
187
- }
188
- return new FormGroup(fg);
189
- }
190
- return this.FM(field).formControl(this);
191
- }
192
- save({ updateModel = true } = {
193
- updateModel: true,
194
- }) {
195
- if (this._coll) {
196
- return this._coll.save(this, { updateModel });
197
- }
198
- return throwError(() => new Error('Missing collection'));
199
- }
200
- update(fields = [], { updateModel = true } = {
201
- updateModel: true,
202
- }) {
203
- if (this._coll) {
204
- return this._coll.update(this, fields, { updateModel });
205
- }
206
- return throwError(() => new Error('Missing collection'));
207
- }
208
- }
209
- //
210
- // export class TreeDataModel extends DataModel {
211
- // static override __name = 'TreeDataModel';
212
- // @detailsField({
213
- // model: this,
214
- // many: true,
215
- // description: 'Parents',
216
- // })
217
- // public parents_details?: this[];
218
- //
219
- // @foreignKeyField({
220
- // required: false,
221
- // description: 'Structure parente',
222
- // related: 'Structure',
223
- // })
224
- // public parent?: number;
225
- //
226
- // @integerField({
227
- // required: false,
228
- // readonly: true,
229
- // description: 'ID Tree',
230
- // })
231
- // public tree_id!: number;
232
- //
233
- // @integerField({
234
- // required: false,
235
- // readonly: true,
236
- // description: 'MPTT left',
237
- // })
238
- // public lft!: number;
239
- //
240
- // @integerField({
241
- // required: false,
242
- // readonly: true,
243
- // description: 'MPTT right',
244
- // })
245
- // public rght!: number;
246
- //
247
- // @integerField({
248
- // required: false,
249
- // readonly: true,
250
- // description: 'Niveau hiérarchique',
251
- // })
252
- // public level!: number;
253
- //
254
- // public get parent_details(): this | null {
255
- // if (this.parents_details) {
256
- // const out = this.parents_details[this.parents_details.length - 1];
257
- // out.parents_details = this.parents_details.slice(
258
- // 0,
259
- // this.parents_details.length - 1
260
- // );
261
- // return out;
262
- // }
263
- // return null;
264
- // }
265
- //
266
- // public set parent_details(d: this | null) {
267
- // console.log(d);
268
- // this.parents_details = d?.parents_details;
269
- // }
270
- //
271
- // public _display(): string {
272
- // const out: string[] = [];
273
- // if (this.parents_details) {
274
- // for (const p of this.parents_details) {
275
- // if ((p as any).code) {
276
- // out.push(`[${(p as any).code}] ${(p as any).name}`);
277
- // } else {
278
- // out.push((p as any).name);
279
- // }
280
- // }
281
- // }
282
- // if ((this as any).code) {
283
- // out.push(`[${(this as any).code}] ${(this as any).name}`);
284
- // } else {
285
- // out.push((this as any).name);
286
- // }
287
- //
288
- // return out.join(' : ');
289
- // }
290
- // }
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2RhdGEtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHFCQUFxQixHQUN0QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBQ3BCOzs7T0FHRzthQUN1QixXQUFNLEdBQVcsRUFBRSxDQUFDO0lBWTlDOzs7Ozs7T0FNRztJQUNILFlBQXNCLEtBQXVCO1FBQXZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQzNDLE1BQU0sRUFBRSxHQUNOLE9BQU8sQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkQscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLGtFQUFrRTtZQUNsRSxNQUFNLElBQUksS0FBSyxDQUNiLHlGQUF5RixDQUMxRixDQUFDO1FBQ0osQ0FBQztRQUNELG9EQUFvRDtRQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztRQUM1RCxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUMsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEtBQUss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RUFBRTtBQUNGLG9CQUFvQjtBQUNwQix1QkFBdUI7QUFDdkIsc0JBQXNCO0FBQ3RCLGdDQUFnQztBQUNoQyxPQUFPO0FBQ1AseUJBQXlCO0FBQ3pCLEVBQUU7QUFDRixvQkFBb0I7QUFDcEIsdUJBQXVCO0FBQ3ZCLHNCQUFzQjtBQUN0QixpQ0FBaUM7QUFDakMsT0FBTztBQUNQLDBCQUEwQjtBQUMxQixFQUFFO0FBQ0Ysb0JBQW9CO0FBQ3BCLHVCQUF1QjtBQUN2QixzQkFBc0I7QUFDdEIsMENBQTBDO0FBQzFDLE9BQU87QUFDUCwyQkFBMkI7QUFDM0IsRUFBRTtBQUNGLCtDQUErQztBQUMvQyxrQ0FBa0M7QUFDbEMsMkVBQTJFO0FBQzNFLDBEQUEwRDtBQUMxRCxhQUFhO0FBQ2IsMENBQTBDO0FBQzFDLFdBQVc7QUFDWCxvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLG1CQUFtQjtBQUNuQixNQUFNO0FBQ04sRUFBRTtBQUNGLGdEQUFnRDtBQUNoRCxzQkFBc0I7QUFDdEIsaURBQWlEO0FBQ2pELE1BQU07QUFDTixFQUFFO0FBQ0YsZ0NBQWdDO0FBQ2hDLGdDQUFnQztBQUNoQyxrQ0FBa0M7QUFDbEMsZ0RBQWdEO0FBQ2hELGlDQUFpQztBQUNqQyxpRUFBaUU7QUFDakUsbUJBQW1CO0FBQ25CLHVDQUF1QztBQUN2QyxZQUFZO0FBQ1osVUFBVTtBQUNWLFFBQVE7QUFDUixnQ0FBZ0M7QUFDaEMsbUVBQW1FO0FBQ25FLGVBQWU7QUFDZixzQ0FBc0M7QUFDdEMsUUFBUTtBQUNSLEVBQUU7QUFDRiw4QkFBOEI7QUFDOUIsTUFBTTtBQUNOLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlRmllbGRNYW5hZ2VyLFxuICBJRmllbGRTdG9yZWRNZXRhZGF0YSxcbiAgUFJPUEVSVFlfTUVUQURBVEFfS0VZLFxufSBmcm9tICcuL2ZpZWxkcy9iYXNlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9kYXRhLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBEYXRhTW9kZWxGaWVsZHMgPSBSZWFkb25seTxNYXA8c3RyaW5nLCBJRmllbGRTdG9yZWRNZXRhZGF0YTxhbnk+Pj47XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgZGF0YSBtb2RlbC5cbiAqXG4gKiBFYWNoIGNsYXNzIG11c3QgaGF2ZSBhIHN0YXRpYyBfX25hbWVcbiAqIHByaW1hcnkgZmllbGQgaXMgZ2l2ZW4gd2l0aCBpZCBmaWVsZC5cbiAqXG4gKiBTb21lIG1ldGhvZHMgYXJlIHByb3ZpZGVkIHRvIGJlIHVzZWQgd2l0aCBhIGNvbGxlY3Rpb24sIG1vc3RseSBmb3IgQ1JVRCBvcGVyYXRpb25zLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFNb2RlbCB7XG4gIC8qKlxuICAgKiBkYXRhIG1vZGVsIG5hbWVcbiAgICogdGhpcyBuZWVkIHRvIGJlIGdpdmVuIGJlY2F1c2UgY2xhc3MgbmFtZSBpcyBub3QgZnVsbHkgYXZhaWxhYmxlIGJlY2F1c2Ugb2YgbWluaWZpY2F0aW9uLlxuICAgKi9cbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBfX25hbWU6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBQcmltYXJ5IGZpZWxkOyByZWFkb25seTsgbXVzdCBiZSBjcmVhdGVkIGFuZCBhdXRvIGluY3JlbWVudGVkIG9uIGRiIHNpZGUuXG4gICAqL1xuICAvLyBAcHJpbWFyeUZpZWxkKHtcbiAgLy8gICBkZXNjcmlwdGlvbjogJ0lEJyxcbiAgLy8gICBoZWxwOiAnSWRlbnRpZmlhbnQgcHJpbWFpcmUnLFxuICAvLyB9KVxuICBwdWJsaWMgaWQhOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX0Y6IERhdGFNb2RlbEZpZWxkcztcblxuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIGRhdGEgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEEgbWF0Y2hpbmcgY29sbGVjdGlvbiBjYW4gYmUgcHJvdmlkZWQuXG4gICAqIF9fX2ZpZWxkcyByZWFkb25seSBwcm9wZXJ0eSBpcyBhbHNvIHBvcHVsYXRlZCBmcm9tIFJlZmxlY3RlZCBtZXRhZGF0YVxuICAgKlxuICAgKiBAcGFyYW0gX2NvbGwgY29sbGVjdGlvbiB1c2VkIGZvciBDUlVELCBldGMuLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jb2xsPzogQ29sbGVjdGlvbjxhbnk+KSB7XG4gICAgY29uc3QgbWQ6IE1hcDxzdHJpbmcsIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT4+IHwgdW5kZWZpbmVkID1cbiAgICAgIFJlZmxlY3QuZ2V0TWV0YWRhdGEoUFJPUEVSVFlfTUVUQURBVEFfS0VZLCB0aGlzKTtcbiAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgICBpZiAoIW1kKSB7XG4gICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBvY2N1ciBhcyBhbGwgZGF0YW1vZGVsIGhhdmUgYXQgbGVhc3QgaWQgZmllbGRcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05vIHByb3BlcnR5IG1ldGFkYXRhIGZvdW5kIGZvciB0aGlzIG9iamVjdDsgaXMgdGhlcmUgYSBwcm9wZXJ0eSBpbiBjdXJyZW50IGNvbGxlY3Rpb24gPydcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIEdldCBhbGwgZmllbGRzIGZyb20gY3VycmVudCBjbGFzcyBhbmQgaXRzIHBhcmVudHNcbiAgICBjb25zdCBmaWVsZHMgPSBuZXcgTWFwPHN0cmluZywgSUZpZWxkU3RvcmVkTWV0YWRhdGE8YW55Pj4oKTtcbiAgICBsZXQgcGFyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xuICAgIHdoaWxlIChwYXJlbnQuY29uc3RydWN0b3IubmFtZSAhPT0gJ09iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBtZC5rZXlzKCkpIHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZi5zcGxpdCgnX18nKVsxXTtcbiAgICAgICAgaWYgKGZpZWxkcy5oYXMoZmllbGROYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmLmluZGV4T2YocGFyZW50LmNvbnN0cnVjdG9yLl9fbmFtZSArICdfXycpID09PSAwKSB7XG4gICAgICAgICAgZmllbGRzLnNldChmaWVsZE5hbWUsIG1kLmdldChmKSEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocGFyZW50KTtcbiAgICB9XG4gICAgdGhpcy5fRiA9IE9iamVjdC5mcmVlemUoZmllbGRzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgX2NvbGxlY3Rpb24oKTogQ29sbGVjdGlvbjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY29sbCBhcyBDb2xsZWN0aW9uPGFueT47XG4gIH1cblxuICBwdWJsaWMgc2V0IF9jb2xsZWN0aW9uKGNvbGw6IENvbGxlY3Rpb248YW55Pikge1xuICAgIHRoaXMuX2NvbGwgPSBjb2xsO1xuICB9XG5cbiAgLyoqXG4gICAqICBIYXNoTWFwIG9mIGZpZWxkcyBtZXRhZGF0YSAodHlwZSwgbmFtZSwgbWFuYWdlciwgZXRjLi4uKVxuICAgKi9cbiAgcHVibGljIGdldCBGKCk6IERhdGFNb2RlbEZpZWxkcyB7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gICAgaWYgKCF0aGlzLl9GKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YSBtb2RlbCwgZmllbGRzIG1ldGFkYXRhIGlzIG1pc3NpbmcnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX0Y7XG4gIH1cblxuICAvLyBSZXR1cm4gZmllbGQgbmFtZXMgaXRlcmF0b3JcbiAgcHVibGljIGdldCBGTigpOiBJdGVyYWJsZUl0ZXJhdG9yPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLkYua2V5cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIG1vZGVsIGRhdGEgZnJvbSBqc29uLlxuICAgKiBJZiBwYXJ0aWFsIGlzIHRydWUsIG9ubHkgZmllbGRzIHdpdGggbWF0Y2hpbmcgZGF0YSBrZXlzIHdpbGwgYmUgbG9hZGVkXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgZnJvbUpzb24oXG4gICAgZGF0YTogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9LFxuICAgIHsgcGFydGlhbCwgY2hlY2sgfTogeyBwYXJ0aWFsPzogYm9vbGVhbjsgY2hlY2s/OiBib29sZWFuIH0gPSB7XG4gICAgICBwYXJ0aWFsOiBmYWxzZSxcbiAgICAgIGNoZWNrOiBmYWxzZSxcbiAgICB9XG4gICk6IG51bGwgfCBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICBjb25zdCBlcnJvcnM6IHsgW2luZGV4OiBzdHJpbmddOiBudWxsIHwgVmFsaWRhdGlvbkVycm9ycyB9ID0ge307XG4gICAgbGV0IGhhdmVFcnJvciA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLkZOKSB7XG4gICAgICBpZiAoIXBhcnRpYWwgfHwgKHBhcnRpYWwgJiYgT2JqZWN0LmtleXMoZGF0YSkuaW5kZXhPZihmKSAhPT0gLTEpKSB7XG4gICAgICAgIGNvbnN0IGZlcnIgPSB0aGlzLnNldEZWKGYsIHRoaXMuRk0oZikuZnJvbUpzb24oZGF0YVtmXSksIGNoZWNrKTtcbiAgICAgICAgaWYgKGZlcnIgIT09IG51bGwpIHtcbiAgICAgICAgICBlcnJvcnNbZl0gPSBmZXJyO1xuICAgICAgICAgIGhhdmVFcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhhdmVFcnJvciA/IGVycm9ycyA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgdG9Kc29uKGZpZWxkcz86IHN0cmluZyB8IHN0cmluZ1tdKTogYW55IHtcbiAgICBpZiAoZmllbGRzICYmICFBcnJheS5pc0FycmF5KGZpZWxkcykpIHtcbiAgICAgIGZpZWxkcyA9IFtmaWVsZHNdO1xuICAgIH1cbiAgICBjb25zdCBvdXQ6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGNvbnN0IGZsID0gdGhpcy5GO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLkZOKSB7XG4gICAgICBjb25zdCBtZ3IgPSB0aGlzLkZNKGYpO1xuICAgICAgaWYgKCFmaWVsZHMgfHwgZmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpZiAobWdyLnJlYWRvbmx5KSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgb3V0W2ZdID0gZmwuZ2V0KGYpIS5tYW5hZ2VyLnRvSnNvbih0aGlzLkZWKGYpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChmaWVsZHMuaW5kZXhPZihmKSAhPT0gLTEpIHtcbiAgICAgICAgICBvdXRbZl0gPSBmbC5nZXQoZikhLm1hbmFnZXIudG9Kc29uKHRoaXMuRlYoZikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uPFQsIFJUIGV4dGVuZHMgeyBbaW5kZXg6IHN0cmluZ106IGFueSB9PihcbiAgICBtZXRob2Q6ICdQT1NUJyB8ICdQQVRDSCcgfCAnR0VUJyB8ICdERUxFVEUnIHwgJ1BVVCcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHtcbiAgICAgIGJvZHkgPSB1bmRlZmluZWQsXG4gICAgICB1cGRhdGUgPSBmYWxzZSxcbiAgICAgIHVwZGF0ZVBhcnRpYWwgPSB0cnVlLFxuICAgICAgdXBkYXRlQ2hlY2sgPSBmYWxzZSxcbiAgICAgIC8vIHVwZGF0ZVJhaXNlID0gZmFsc2UsXG4gICAgICBwYXJhbXMgPSB7fSxcbiAgICAgIGhlYWRlcnMgPSB7fSxcbiAgICB9OiB7XG4gICAgICBib2R5PzogeyBbX2luZGV4OiBzdHJpbmddOiBhbnkgfTtcbiAgICAgIHVwZGF0ZT86IGJvb2xlYW47XG4gICAgICB1cGRhdGVQYXJ0aWFsPzogYm9vbGVhbjtcbiAgICAgIHVwZGF0ZUNoZWNrPzogYm9vbGVhbjtcbiAgICAgIC8vIHVwZGF0ZVJhaXNlPzogYm9vbGVhbjtcbiAgICAgIHBhcmFtcz86IHsgW19pbmRleDogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgICBoZWFkZXJzPzogeyBbX2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxSVD4ge1xuICAgIGlmICh0aGlzLl9jb2xsID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTWlzc2luZyBjb2xsZWN0aW9uJykpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29sbFxuICAgICAgLmFjdGlvbjxSVD4odGhpcywgbWV0aG9kLCBuYW1lLCB7XG4gICAgICAgIGJvZHksXG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmZyb21Kc29uKHJlc3VsdCwge1xuICAgICAgICAgICAgICBwYXJ0aWFsOiB1cGRhdGVQYXJ0aWFsLFxuICAgICAgICAgICAgICBjaGVjazogdXBkYXRlQ2hlY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8vIENhbGxlZCBvbiBtb2RlbCwgcmV0dXJucyB0aGUgbWFuYWdlciBmb3IgYSBmaWVsZC5cbiAgcHVibGljIEZNPEZUPihmaWVsZDogc3RyaW5nKTogQmFzZUZpZWxkTWFuYWdlcjxGVD4ge1xuICAgIGlmICh0aGlzLkYuaGFzKGZpZWxkKSkge1xuICAgICAgcmV0dXJuIHRoaXMuRi5nZXQoZmllbGQpIS5tYW5hZ2VyO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHtmaWVsZH0gbm90IGZvdW5kIGluICR7T2JqZWN0LmtleXModGhpcy5GKS5qb2luKCcsJyl9IG1vZGVsICR7dGhpc31gXG4gICAgKTtcbiAgfVxuXG4gIC8vIFJldHVybiBmaWVsZCB2YWx1ZSwgd2l0aG91dCB0eXBpbmdcbiAgcHVibGljIEZWPEZUPihmaWVsZDogc3RyaW5nKTogRlQge1xuICAgIHJldHVybiAodGhpcyBhcyBhbnkpW2ZpZWxkXSBhcyBGVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgZmllbGQgdmFsdWUuIElmIGNoZWNrIGlzIHRydWUsIG9ubHkgc2V0IHZhbHVlIGlmIGFsbCB2YWxpZGF0b3JzIHBhc3MuXG4gICAqIFNraXAgc2V0dGluZyBmaWVsZCB2YWx1ZSBpZiBtYW5hZ2VyIGNvbXB1dGVkIGZsYWcgaXMgdHJ1ZS5cbiAgICpcbiAgICogVGhlIHZhbGlkYXRpb24gcmVzdWx0IGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0gZmllbGQgZmllbGQgbmFtZVxuICAgKiBAcGFyYW0gdmFsdWUgZmllbGQgdmFsdWVkXG4gICAqIEBwYXJhbSBjaGVjayBkZWZhdWx0IGZhbHNlXG4gICAqIEByZXR1cm4gbnVsbCBvciBWYWxpZGF0aW9uRXJyb3JcbiAgICovXG4gIHB1YmxpYyBzZXRGVjxGVD4oXG4gICAgZmllbGQ6IHN0cmluZyxcbiAgICB2YWx1ZTogRlQsXG4gICAgY2hlY2s6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBudWxsIHwgVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKHRoaXMuRk0oZmllbGQpLmNvbXB1dGVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKGNoZWNrKSB7XG4gICAgICBjb25zdCBmYyA9IG5ldyBGb3JtQ29udHJvbCh2YWx1ZSk7XG5cbiAgICAgIGZvciAoY29uc3QgdiBvZiB0aGlzLkZNKGZpZWxkKS52YWxpZGF0b3JzKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHYoZmMpO1xuICAgICAgICBpZiAodmFsICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcih2YWwpO1xuICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgKHRoaXMgYXMgYW55KVtmaWVsZF0gPSB2YWx1ZTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIENhbGxlZCBvbiBtb2RlbCB3aXRoIGEgbGlzdCBvZiBmaWVsZHMsIHJldHVybnMgYSBGb3JtR3JvdXAgd2l0aFxuICAvLyB0aGVzZSBmaWVsZHMsIG9yIG9ubHkgdGhlIGZvcm0gY29udHJvbCBmb3Igb25lIGZpZWxkLlxuICBwdWJsaWMgRkMoKTogRm9ybUdyb3VwO1xuICBwdWJsaWMgRkMoZmllbGQ6IHN0cmluZyk6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgRkMoZmllbGQ6IHN0cmluZ1tdKTogRm9ybUdyb3VwO1xuICBwdWJsaWMgRkMoZmllbGQ/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IEZvcm1Db250cm9sIHwgRm9ybUdyb3VwIHtcbiAgICBpZiAoZmllbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZmllbGQgPSBBcnJheS5mcm9tKHRoaXMuRk4pLmZpbHRlcigobikgPT4gIXRoaXMuRk0obikucmVhZG9ubHkpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZCkpIHtcbiAgICAgIGNvbnN0IGZnOiB7IFtpbmRleDogc3RyaW5nXTogRm9ybUNvbnRyb2wgfSA9IHt9O1xuICAgICAgZm9yIChjb25zdCBmIG9mIGZpZWxkKSB7XG4gICAgICAgIGZnW2ZdID0gdGhpcy5GQyhmKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGZnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuRk0oZmllbGQpLmZvcm1Db250cm9sKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHNhdmUoXG4gICAgeyB1cGRhdGVNb2RlbCA9IHRydWUgfTogeyB1cGRhdGVNb2RlbD86IGJvb2xlYW4gfSA9IHtcbiAgICAgIHVwZGF0ZU1vZGVsOiB0cnVlLFxuICAgIH1cbiAgKTogT2JzZXJ2YWJsZTx0aGlzPiB7XG4gICAgaWYgKHRoaXMuX2NvbGwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jb2xsLnNhdmUodGhpcywgeyB1cGRhdGVNb2RlbCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdNaXNzaW5nIGNvbGxlY3Rpb24nKSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKFxuICAgIGZpZWxkczogc3RyaW5nW10gPSBbXSxcbiAgICB7IHVwZGF0ZU1vZGVsID0gdHJ1ZSB9OiB7IHVwZGF0ZU1vZGVsPzogYm9vbGVhbiB9ID0ge1xuICAgICAgdXBkYXRlTW9kZWw6IHRydWUsXG4gICAgfVxuICApOiBPYnNlcnZhYmxlPHRoaXM+IHtcbiAgICBpZiAodGhpcy5fY29sbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbGwudXBkYXRlKHRoaXMsIGZpZWxkcywgeyB1cGRhdGVNb2RlbCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdNaXNzaW5nIGNvbGxlY3Rpb24nKSk7XG4gIH1cbn1cblxuLy9cbi8vIGV4cG9ydCBjbGFzcyBUcmVlRGF0YU1vZGVsIGV4dGVuZHMgRGF0YU1vZGVsIHtcbi8vICAgc3RhdGljIG92ZXJyaWRlIF9fbmFtZSA9ICdUcmVlRGF0YU1vZGVsJztcbi8vICAgQGRldGFpbHNGaWVsZCh7XG4vLyAgICAgbW9kZWw6IHRoaXMsXG4vLyAgICAgbWFueTogdHJ1ZSxcbi8vICAgICBkZXNjcmlwdGlvbjogJ1BhcmVudHMnLFxuLy8gICB9KVxuLy8gICBwdWJsaWMgcGFyZW50c19kZXRhaWxzPzogdGhpc1tdO1xuLy9cbi8vICAgQGZvcmVpZ25LZXlGaWVsZCh7XG4vLyAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuLy8gICAgIGRlc2NyaXB0aW9uOiAnU3RydWN0dXJlIHBhcmVudGUnLFxuLy8gICAgIHJlbGF0ZWQ6ICdTdHJ1Y3R1cmUnLFxuLy8gICB9KVxuLy8gICBwdWJsaWMgcGFyZW50PzogbnVtYmVyO1xuLy9cbi8vICAgQGludGVnZXJGaWVsZCh7XG4vLyAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuLy8gICAgIHJlYWRvbmx5OiB0cnVlLFxuLy8gICAgIGRlc2NyaXB0aW9uOiAnSUQgVHJlZScsXG4vLyAgIH0pXG4vLyAgIHB1YmxpYyB0cmVlX2lkITogbnVtYmVyO1xuLy9cbi8vICAgQGludGVnZXJGaWVsZCh7XG4vLyAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuLy8gICAgIHJlYWRvbmx5OiB0cnVlLFxuLy8gICAgIGRlc2NyaXB0aW9uOiAnTVBUVCBsZWZ0Jyxcbi8vICAgfSlcbi8vICAgcHVibGljIGxmdCE6IG51bWJlcjtcbi8vXG4vLyAgIEBpbnRlZ2VyRmllbGQoe1xuLy8gICAgIHJlcXVpcmVkOiBmYWxzZSxcbi8vICAgICByZWFkb25seTogdHJ1ZSxcbi8vICAgICBkZXNjcmlwdGlvbjogJ01QVFQgcmlnaHQnLFxuLy8gICB9KVxuLy8gICBwdWJsaWMgcmdodCE6IG51bWJlcjtcbi8vXG4vLyAgIEBpbnRlZ2VyRmllbGQoe1xuLy8gICAgIHJlcXVpcmVkOiBmYWxzZSxcbi8vICAgICByZWFkb25seTogdHJ1ZSxcbi8vICAgICBkZXNjcmlwdGlvbjogJ05pdmVhdSBoacOpcmFyY2hpcXVlJyxcbi8vICAgfSlcbi8vICAgcHVibGljIGxldmVsITogbnVtYmVyO1xuLy9cbi8vICAgcHVibGljIGdldCBwYXJlbnRfZGV0YWlscygpOiB0aGlzIHwgbnVsbCB7XG4vLyAgICAgaWYgKHRoaXMucGFyZW50c19kZXRhaWxzKSB7XG4vLyAgICAgICBjb25zdCBvdXQgPSB0aGlzLnBhcmVudHNfZGV0YWlsc1t0aGlzLnBhcmVudHNfZGV0YWlscy5sZW5ndGggLSAxXTtcbi8vICAgICAgIG91dC5wYXJlbnRzX2RldGFpbHMgPSB0aGlzLnBhcmVudHNfZGV0YWlscy5zbGljZShcbi8vICAgICAgICAgMCxcbi8vICAgICAgICAgdGhpcy5wYXJlbnRzX2RldGFpbHMubGVuZ3RoIC0gMVxuLy8gICAgICAgKTtcbi8vICAgICAgIHJldHVybiBvdXQ7XG4vLyAgICAgfVxuLy8gICAgIHJldHVybiBudWxsO1xuLy8gICB9XG4vL1xuLy8gICBwdWJsaWMgc2V0IHBhcmVudF9kZXRhaWxzKGQ6IHRoaXMgfCBudWxsKSB7XG4vLyAgICAgY29uc29sZS5sb2coZCk7XG4vLyAgICAgdGhpcy5wYXJlbnRzX2RldGFpbHMgPSBkPy5wYXJlbnRzX2RldGFpbHM7XG4vLyAgIH1cbi8vXG4vLyAgIHB1YmxpYyBfZGlzcGxheSgpOiBzdHJpbmcge1xuLy8gICAgIGNvbnN0IG91dDogc3RyaW5nW10gPSBbXTtcbi8vICAgICBpZiAodGhpcy5wYXJlbnRzX2RldGFpbHMpIHtcbi8vICAgICAgIGZvciAoY29uc3QgcCBvZiB0aGlzLnBhcmVudHNfZGV0YWlscykge1xuLy8gICAgICAgICBpZiAoKHAgYXMgYW55KS5jb2RlKSB7XG4vLyAgICAgICAgICAgb3V0LnB1c2goYFskeyhwIGFzIGFueSkuY29kZX1dICR7KHAgYXMgYW55KS5uYW1lfWApO1xuLy8gICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgIG91dC5wdXNoKChwIGFzIGFueSkubmFtZSk7XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH1cbi8vICAgICB9XG4vLyAgICAgaWYgKCh0aGlzIGFzIGFueSkuY29kZSkge1xuLy8gICAgICAgb3V0LnB1c2goYFskeyh0aGlzIGFzIGFueSkuY29kZX1dICR7KHRoaXMgYXMgYW55KS5uYW1lfWApO1xuLy8gICAgIH0gZWxzZSB7XG4vLyAgICAgICBvdXQucHVzaCgodGhpcyBhcyBhbnkpLm5hbWUpO1xuLy8gICAgIH1cbi8vXG4vLyAgICAgcmV0dXJuIG91dC5qb2luKCcgOiAnKTtcbi8vICAgfVxuLy8gfVxuIl19
@@ -1,34 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- /**
3
- * DATA_API_URL: stores data api base url
4
- */
5
- export const DATA_API_URL = new InjectionToken("data.api.url");
6
- /**
7
- * DATA_MAX_TRANSFERSTATE_TIME: max duration to use transferstate time
8
- * If DATA_MAX_TRANSFERSTATE_TIME is zero, TransferState is not used
9
- */
10
- export const DATA_MAX_TRANSFERSTATE_TIME = new InjectionToken("data.max.transfer.state");
11
- export const BootstrapDataDisplayConfig = {
12
- dispEdit: {
13
- defaultMode: "dd",
14
- inputClasses: {
15
- "input.text": "form-control",
16
- "input.email": "form-control",
17
- "input.datetime": "form-control",
18
- "input.date": "form-control",
19
- "input.number": "form-control",
20
- "input.decimal": "form-control",
21
- "input.checkbox": "form-control",
22
- "input.password": "form-control",
23
- "textarea": "form-control",
24
- "quill": "",
25
- "fkselect": "form-control",
26
- "select": "form-select"
27
- },
28
- }
29
- };
30
- /**
31
- * DATA_DISPLAY_CONFIG: display config & default classes injection token
32
- */
33
- export const DATA_DISPLAY_CONFIG = new InjectionToken("data.display.config");
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZGF0YS1wYXJhbWV0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVMsY0FBYyxDQUFDLENBQUM7QUFDdkU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQVMseUJBQXlCLENBQUMsQ0FBQztBQVlqRyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBc0I7SUFDM0QsUUFBUSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUk7UUFDakIsWUFBWSxFQUFFO1lBQ1osWUFBWSxFQUFFLGNBQWM7WUFDNUIsYUFBYSxFQUFFLGNBQWM7WUFDN0IsZ0JBQWdCLEVBQUUsY0FBYztZQUNoQyxZQUFZLEVBQUUsY0FBYztZQUM1QixjQUFjLEVBQUUsY0FBYztZQUM5QixlQUFlLEVBQUUsY0FBYztZQUMvQixnQkFBZ0IsRUFBRSxjQUFjO1lBQ2hDLGdCQUFnQixFQUFDLGNBQWM7WUFDL0IsVUFBVSxFQUFFLGNBQWM7WUFDMUIsT0FBTyxFQUFFLEVBQUU7WUFDWCxVQUFVLEVBQUUsY0FBYztZQUMxQixRQUFRLEVBQUUsYUFBYTtTQUN4QjtLQUNGO0NBQ0YsQ0FBQztBQUdGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQW9CLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG4vKipcbiAqIERBVEFfQVBJX1VSTDogc3RvcmVzIGRhdGEgYXBpIGJhc2UgdXJsXG4gKi9cbmV4cG9ydCBjb25zdCBEQVRBX0FQSV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcImRhdGEuYXBpLnVybFwiKTtcbi8qKlxuICogREFUQV9NQVhfVFJBTlNGRVJTVEFURV9USU1FOiBtYXggZHVyYXRpb24gdG8gdXNlIHRyYW5zZmVyc3RhdGUgdGltZVxuICogSWYgREFUQV9NQVhfVFJBTlNGRVJTVEFURV9USU1FIGlzIHplcm8sIFRyYW5zZmVyU3RhdGUgaXMgbm90IHVzZWRcbiAqL1xuZXhwb3J0IGNvbnN0IERBVEFfTUFYX1RSQU5TRkVSU1RBVEVfVElNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KFwiZGF0YS5tYXgudHJhbnNmZXIuc3RhdGVcIik7XG5cbi8qKlxuICogRGF0YURpc3BsYXlDb25maWcgaW50ZXJmYWNlIHByb3ZpZGVzIGRlZmF1bHQgdmFsdWVzIGZvciBkaXNwbGF5IGNsYXNzZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhRGlzcGxheUNvbmZpZyB7XG4gIGRpc3BFZGl0OiB7XG4gICAgZGVmYXVsdE1vZGU6IFwiaW5saW5lXCIgfCBcImRkXCI7XG4gICAgaW5wdXRDbGFzc2VzOiB7W2luZGV4OiBzdHJpbmddOiBzdHJpbmd9O1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgQm9vdHN0cmFwRGF0YURpc3BsYXlDb25maWc6IERhdGFEaXNwbGF5Q29uZmlnID0ge1xuICBkaXNwRWRpdDoge1xuICAgIGRlZmF1bHRNb2RlOiBcImRkXCIsXG4gICAgaW5wdXRDbGFzc2VzOiB7XG4gICAgICBcImlucHV0LnRleHRcIjogXCJmb3JtLWNvbnRyb2xcIixcbiAgICAgIFwiaW5wdXQuZW1haWxcIjogXCJmb3JtLWNvbnRyb2xcIixcbiAgICAgIFwiaW5wdXQuZGF0ZXRpbWVcIjogXCJmb3JtLWNvbnRyb2xcIixcbiAgICAgIFwiaW5wdXQuZGF0ZVwiOiBcImZvcm0tY29udHJvbFwiLFxuICAgICAgXCJpbnB1dC5udW1iZXJcIjogXCJmb3JtLWNvbnRyb2xcIixcbiAgICAgIFwiaW5wdXQuZGVjaW1hbFwiOiBcImZvcm0tY29udHJvbFwiLFxuICAgICAgXCJpbnB1dC5jaGVja2JveFwiOiBcImZvcm0tY29udHJvbFwiLFxuICAgICAgXCJpbnB1dC5wYXNzd29yZFwiOlwiZm9ybS1jb250cm9sXCIsXG4gICAgICBcInRleHRhcmVhXCI6IFwiZm9ybS1jb250cm9sXCIsXG4gICAgICBcInF1aWxsXCI6IFwiXCIsXG4gICAgICBcImZrc2VsZWN0XCI6IFwiZm9ybS1jb250cm9sXCIsXG4gICAgICBcInNlbGVjdFwiOiBcImZvcm0tc2VsZWN0XCJcbiAgICB9LFxuICB9XG59O1xuXG5cbi8qKlxuICogREFUQV9ESVNQTEFZX0NPTkZJRzogZGlzcGxheSBjb25maWcgJiBkZWZhdWx0IGNsYXNzZXMgaW5qZWN0aW9uIHRva2VuXG4gKi9cbmV4cG9ydCBjb25zdCBEQVRBX0RJU1BMQVlfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPERhdGFEaXNwbGF5Q29uZmlnPihcImRhdGEuZGlzcGxheS5jb25maWdcIik7XG4iXX0=
@@ -1,154 +0,0 @@
1
- import { combineLatest, ReplaySubject, share } from 'rxjs';
2
- import { switchMap } from 'rxjs/operators';
3
- export class Queryset {
4
- constructor(_coll, options = {}) {
5
- this._coll = _coll;
6
- /** Current filter data */
7
- this.filterData = {};
8
- /** Current sorter data */
9
- this.sortData = [];
10
- /** Current fields */
11
- this.fields = [];
12
- /** Current page size */
13
- this.pageSize = 500;
14
- /** Current page number */
15
- this.page = 1;
16
- this._loading = new ReplaySubject(1);
17
- /** Loading status (true if currently fetching data) */
18
- this.loading = this._loading.asObservable().pipe(share());
19
- this._meta = new ReplaySubject(1);
20
- /** Results meta part observable */
21
- this.meta = this._meta.asObservable().pipe(share());
22
- this._results = new ReplaySubject(1);
23
- /** Results data part observable */
24
- this.results = this._results.asObservable().pipe(share());
25
- this._full = combineLatest([
26
- this.results,
27
- this.loading,
28
- this.meta,
29
- ]);
30
- /** Full results observable (results, loading, meta) */
31
- this.full = this._full.pipe(share());
32
- this._pristine = true;
33
- /** Default options */
34
- // console.log('@solidev/data: Creating collection', _coll);
35
- this.options = { emitFields: true };
36
- Object.assign(this.options, options);
37
- }
38
- /** Pristine status (true if it has not collected results yet) */
39
- get pristine() {
40
- return this._pristine;
41
- }
42
- /**
43
- * Update current filter data. Null or undefined values are removed from filter data.
44
- * @param params filter data
45
- * @param update boolean to update filter data instead of recreating it from scratch
46
- */
47
- filter(params = {}, update = false) {
48
- if (!update) {
49
- this.filterData = {};
50
- }
51
- for (const k of Object.keys(params)) {
52
- if (params[k] === undefined || params[k] === null) {
53
- delete this.filterData[k];
54
- }
55
- else {
56
- this.filterData[k] = params[k];
57
- }
58
- }
59
- return this;
60
- }
61
- /**
62
- * Update sorting parameters, list of strings giving sort parameters e.g. sort("+name", "-id").
63
- * @param sorting strings of sort parameters
64
- */
65
- sort(...sorting) {
66
- this.sortData = sorting;
67
- return this;
68
- }
69
- /**
70
- * Update page size.
71
- * @param pageSize required page size
72
- */
73
- paginateBy(pageSize = 20) {
74
- this.pageSize = pageSize;
75
- return this;
76
- }
77
- /**
78
- * Update current page number.
79
- * @param page required pqge
80
- * @param fragment TODO: fragment usage for router usage
81
- */
82
- setPage(page = 1, fragment) {
83
- if (page !== this.page) {
84
- this.page = page;
85
- // if (this.options.router) {
86
- // // TODO: check and fix usage of fragment/query params
87
- // const frag = fragment
88
- // ? fragment
89
- // : this.options.hash || this.options.name;
90
- // const _ = this.options.router.navigate([], {
91
- // queryParams: { page: page.toString() },
92
- // fragment: frag,
93
- // queryParamsHandling: 'merge',
94
- // });
95
- // }
96
- }
97
- return this;
98
- }
99
- setFields(fields) {
100
- this.fields = fields;
101
- return this;
102
- }
103
- getQueryParams() {
104
- const f = {};
105
- Object.assign(f, this.filterData);
106
- if (this.sortData.length) {
107
- f['ordering'] = this.sortData.join(',');
108
- }
109
- f['page_size'] = this.pageSize;
110
- f['page'] = this.page;
111
- if (this.options.emitFields && this.fields.length) {
112
- f['fields'] = this.fields.join(',');
113
- }
114
- return f;
115
- }
116
- get(refresh = true, sync = false) {
117
- if (!refresh && !this._pristine) {
118
- // console.log('@solidev/data: Get not refreshing, return current result observable');
119
- return this.results;
120
- }
121
- // console.log('@solidev/data: start get (query)');
122
- this._loading.next(true);
123
- const syncQp = {};
124
- if (sync) {
125
- syncQp['db'] = 'sync';
126
- }
127
- return this._coll
128
- .raw({
129
- method: 'GET',
130
- params: {
131
- ...this.getQueryParams(),
132
- ...syncQp,
133
- },
134
- })
135
- .pipe(switchMap((result) => {
136
- // Process results
137
- // console.log('@solidev/data: have meta');
138
- this._meta.next({ nav: result.nav, parameters: result.parameters });
139
- const out = [];
140
- for (const r of result.results) {
141
- const m = this._coll.fromJson(r);
142
- out.push(m);
143
- }
144
- this._pristine = false;
145
- // console.log('@solidev/data: have loading');
146
- this._loading.next(false);
147
- // console.log('@solidev/data: have result');
148
- this._results.next(out);
149
- // console.log('@solidev/data: done get');
150
- return this.results;
151
- }));
152
- }
153
- }
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2RhdGEtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXlEM0MsTUFBTSxPQUFPLFFBQVE7SUE4Qm5CLFlBQXNCLEtBQW9CLEVBQUUsVUFBNEIsRUFBRTtRQUFwRCxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBN0IxQywwQkFBMEI7UUFDbkIsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUNuQywwQkFBMEI7UUFDbkIsYUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNqQyxxQkFBcUI7UUFDZCxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzdCLHdCQUF3QjtRQUNqQixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLDBCQUEwQjtRQUNuQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBR1IsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pELHVEQUF1RDtRQUNoRCxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRCxVQUFLLEdBQUcsSUFBSSxhQUFhLENBQWEsQ0FBQyxDQUFDLENBQUM7UUFDakQsbUNBQW1DO1FBQzVCLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLGFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBTSxDQUFDLENBQUMsQ0FBQztRQUM3QyxtQ0FBbUM7UUFDNUIsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMs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TUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDcEUsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1lBQ3BCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMvQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNkLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2Qiw4Q0FBOEM7WUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLDBDQUEwQztZQUMxQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL2RhdGEtY29sbGVjdGlvbic7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc2hhcmUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckRhdGEge1xuICBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE91dEZpbHRlckRhdGEge1xuICBbaW5kZXg6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgU29ydERhdGEgPSBzdHJpbmc7XG5cbi8qKlxuICogUXVlcnlzZXQgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElRdWVyeXNldE9wdGlvbnMge1xuICAvKiogRW1pdCBmaWVsZHMgbGlzdCAqL1xuICBlbWl0RmllbGRzPzogYm9vbGVhbjtcbiAgLyoqIFF1ZXJ5c2V0IG5hbWUgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqIFRPRE86IHNlZSB1c2FnZSAqL1xuICByb3V0ZT86IEFjdGl2YXRlZFJvdXRlO1xuICAvKiogVE9ETzogc2VlIHVzYWdlICovXG4gIHJvdXRlcj86IFJvdXRlcjtcbiAgLyoqIFRPRE86IHNlZSB1c2FnZSAqL1xuICBoYXNoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElRdWVyeU5hdiB7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcGFnZV9zaXplOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVF1ZXJ5TWV0YU5hdiB7XG4gIGNvdW50OiBudW1iZXI7XG4gIG5leHQ6IG51bWJlciB8IG51bGw7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcGFnZXM6IG51bWJlcjtcbiAgcHJldjogbnVtYmVyIHwgbnVsbDtcbiAgc2l6ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElRdWVyeU1ldGFOYXZQYXJhbXMge1xuICBwYWdlOiBzdHJpbmc7XG4gIHBhZ2Vfc2l6ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElRdWVyeU1ldGEge1xuICBuYXY6IElRdWVyeU1ldGFOYXY7XG4gIHBhcmFtZXRlcnM6IElRdWVyeU1ldGFOYXZQYXJhbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVF1ZXJ5RnVsbFJlc3BvbnNlPFQ+IGV4dGVuZHMgSVF1ZXJ5TWV0YSB7XG4gIHJlc3VsdHM6IFRbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFF1ZXJ5c2V0PFQgZXh0ZW5kcyBEYXRhTW9kZWw+IHtcbiAgLyoqIEN1cnJlbnQgZmlsdGVyIGRhdGEgKi9cbiAgcHVibGljIGZpbHRlckRhdGE6IEZpbHRlckRhdGEgPSB7fTtcbiAgLyoqIEN1cnJlbnQgc29ydGVyIGRhdGEgKi9cbiAgcHVibGljIHNvcnREYXRhOiBTb3J0RGF0YVtdID0gW107XG4gIC8qKiBDdXJyZW50IGZpZWxkcyAqL1xuICBwdWJsaWMgZmllbGRzOiBzdHJpbmdbXSA9IFtdO1xuICAvKiogQ3VycmVudCBwYWdlIHNpemUgKi9cbiAgcHVibGljIHBhZ2VTaXplID0gNTAwO1xuICAvKiogQ3VycmVudCBwYWdlIG51bWJlciAqL1xuICBwdWJsaWMgcGFnZSA9IDE7XG5cbiAgcHVibGljIG9wdGlvbnM6IElRdWVyeXNldE9wdGlvbnM7XG4gIHByaXZhdGUgX2xvYWRpbmcgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgLyoqIExvYWRpbmcgc3RhdHVzICh0cnVlIGlmIGN1cnJlbnRseSBmZXRjaGluZyBkYXRhKSAqL1xuICBwdWJsaWMgbG9hZGluZyA9IHRoaXMuX2xvYWRpbmcuYXNPYnNlcnZhYmxlKCkucGlwZShzaGFyZSgpKTtcbiAgcHJpdmF0ZSBfbWV0YSA9IG5ldyBSZXBsYXlTdWJqZWN0PElRdWVyeU1ldGE+KDEpO1xuICAvKiogUmVzdWx0cyBtZXRhIHBhcnQgb2JzZXJ2YWJsZSAqL1xuICBwdWJsaWMgbWV0YSA9IHRoaXMuX21ldGEuYXNPYnNlcnZhYmxlKCkucGlwZShzaGFyZSgpKTtcbiAgcHJpdmF0ZSBfcmVzdWx0cyA9IG5ldyBSZXBsYXlTdWJqZWN0PFRbXT4oMSk7XG4gIC8qKiBSZXN1bHRzIGRhdGEgcGFydCBvYnNlcnZhYmxlICovXG4gIHB1YmxpYyByZXN1bHRzID0gdGhpcy5fcmVzdWx0cy5hc09ic2VydmFibGUoKS5waXBlKHNoYXJlKCkpO1xuICBwcml2YXRlIF9mdWxsOiBPYnNlcnZhYmxlPFtUW10sIGJvb2xlYW4sIElRdWVyeU1ldGFdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMucmVzdWx0cyxcbiAgICB0aGlzLmxvYWRpbmcsXG4gICAgdGhpcy5tZXRhLFxuICBdKTtcbiAgLyoqIEZ1bGwgcmVzdWx0cyBvYnNlcnZhYmxlIChyZXN1bHRzLCBsb2FkaW5nLCBtZXRhKSAqL1xuICBwdWJsaWMgZnVsbCA9IHRoaXMuX2Z1bGwucGlwZShzaGFyZSgpKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2NvbGw6IENvbGxlY3Rpb248VD4sIG9wdGlvbnM6IElRdWVyeXNldE9wdGlvbnMgPSB7fSkge1xuICAgIC8qKiBEZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAvLyBjb25zb2xlLmxvZygnQHNvbGlkZXYvZGF0YTogQ3JlYXRpbmcgY29sbGVjdGlvbicsIF9jb2xsKTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IGVtaXRGaWVsZHM6IHRydWUgfTtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucywgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIF9wcmlzdGluZSA9IHRydWU7XG5cbiAgLyoqIFByaXN0aW5lIHN0YXR1cyAodHJ1ZSBpZiBpdCBoYXMgbm90IGNvbGxlY3RlZCByZXN1bHRzIHlldCkgKi9cbiAgcHVibGljIGdldCBwcmlzdGluZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpc3RpbmU7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGN1cnJlbnQgZmlsdGVyIGRhdGEuIE51bGwgb3IgdW5kZWZpbmVkIHZhbHVlcyBhcmUgcmVtb3ZlZCBmcm9tIGZpbHRlciBkYXRhLlxuICAgKiBAcGFyYW0gcGFyYW1zIGZpbHRlciBkYXRhXG4gICAqIEBwYXJhbSB1cGRhdGUgYm9vbGVhbiB0byB1cGRhdGUgZmlsdGVyIGRhdGEgaW5zdGVhZCBvZiByZWNyZWF0aW5nIGl0IGZyb20gc2NyYXRjaFxuICAgKi9cbiAgcHVibGljIGZpbHRlcihwYXJhbXM6IEZpbHRlckRhdGEgPSB7fSwgdXBkYXRlOiBib29sZWFuID0gZmFsc2UpOiBRdWVyeXNldDxUPiB7XG4gICAgaWYgKCF1cGRhdGUpIHtcbiAgICAgIHRoaXMuZmlsdGVyRGF0YSA9IHt9O1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xuICAgICAgaWYgKHBhcmFtc1trXSA9PT0gdW5kZWZpbmVkIHx8IHBhcmFtc1trXSA9PT0gbnVsbCkge1xuICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJEYXRhW2tdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maWx0ZXJEYXRhW2tdID0gcGFyYW1zW2tdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgc29ydGluZyBwYXJhbWV0ZXJzLCBsaXN0IG9mIHN0cmluZ3MgZ2l2aW5nIHNvcnQgcGFyYW1ldGVycyBlLmcuIHNvcnQoXCIrbmFtZVwiLCBcIi1pZFwiKS5cbiAgICogQHBhcmFtIHNvcnRpbmcgc3RyaW5ncyBvZiBzb3J0IHBhcmFtZXRlcnNcbiAgICovXG4gIHB1YmxpYyBzb3J0KC4uLnNvcnRpbmc6IHN0cmluZ1tdKTogUXVlcnlzZXQ8VD4ge1xuICAgIHRoaXMuc29ydERhdGEgPSBzb3J0aW5nO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBwYWdlIHNpemUuXG4gICAqIEBwYXJhbSBwYWdlU2l6ZSByZXF1aXJlZCBwYWdlIHNpemVcbiAgICovXG4gIHB1YmxpYyBwYWdpbmF0ZUJ5KHBhZ2VTaXplOiBudW1iZXIgPSAyMCk6IFF1ZXJ5c2V0PFQ+IHtcbiAgICB0aGlzLnBhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGN1cnJlbnQgcGFnZSBudW1iZXIuXG4gICAqIEBwYXJhbSBwYWdlIHJlcXVpcmVkIHBxZ2VcbiAgICogQHBhcmFtIGZyYWdtZW50IFRPRE86IGZyYWdtZW50IHVzYWdlIGZvciByb3V0ZXIgdXNhZ2VcbiAgICovXG4gIHB1YmxpYyBzZXRQYWdlKHBhZ2U6IG51bWJlciA9IDEsIGZyYWdtZW50Pzogc3RyaW5nKTogUXVlcnlzZXQ8VD4ge1xuICAgIGlmIChwYWdlICE9PSB0aGlzLnBhZ2UpIHtcbiAgICAgIHRoaXMucGFnZSA9IHBhZ2U7XG4gICAgICAvLyBpZiAodGhpcy5vcHRpb25zLnJvdXRlcikge1xuICAgICAgLy8gICAvLyBUT0RPOiBjaGVjayBhbmQgZml4IHVzYWdlIG9mIGZyYWdtZW50L3F1ZXJ5IHBhcmFtc1xuICAgICAgLy8gICBjb25zdCBmcmFnID0gZnJhZ21lbnRcbiAgICAgIC8vICAgICA/IGZyYWdtZW50XG4gICAgICAvLyAgICAgOiB0aGlzLm9wdGlvbnMuaGFzaCB8fCB0aGlzLm9wdGlvbnMubmFtZTtcbiAgICAgIC8vICAgY29uc3QgXyA9IHRoaXMub3B0aW9ucy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIC8vICAgICBxdWVyeVBhcmFtczogeyBwYWdlOiBwYWdlLnRvU3RyaW5nKCkgfSxcbiAgICAgIC8vICAgICBmcmFnbWVudDogZnJhZyxcbiAgICAgIC8vICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgLy8gICB9KTtcbiAgICAgIC8vIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgc2V0RmllbGRzKGZpZWxkczogc3RyaW5nW10pOiBRdWVyeXNldDxUPiB7XG4gICAgdGhpcy5maWVsZHMgPSBmaWVsZHM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0UXVlcnlQYXJhbXMoKTogT3V0RmlsdGVyRGF0YSB7XG4gICAgY29uc3QgZjogRmlsdGVyRGF0YSA9IHt9O1xuICAgIE9iamVjdC5hc3NpZ24oZiwgdGhpcy5maWx0ZXJEYXRhKTtcbiAgICBpZiAodGhpcy5zb3J0RGF0YS5sZW5ndGgpIHtcbiAgICAgIGZbJ29yZGVyaW5nJ10gPSB0aGlzLnNvcnREYXRhLmpvaW4oJywnKTtcbiAgICB9XG4gICAgZlsncGFnZV9zaXplJ10gPSB0aGlzLnBhZ2VTaXplO1xuICAgIGZbJ3BhZ2UnXSA9IHRoaXMucGFnZTtcbiAgICBpZiAodGhpcy5vcHRpb25zLmVtaXRGaWVsZHMgJiYgdGhpcy5maWVsZHMubGVuZ3RoKSB7XG4gICAgICBmWydmaWVsZHMnXSA9IHRoaXMuZmllbGRzLmpvaW4oJywnKTtcbiAgICB9XG4gICAgcmV0dXJuIGYgYXMgT3V0RmlsdGVyRGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQocmVmcmVzaDogYm9vbGVhbiA9IHRydWUsIHN5bmM6IGJvb2xlYW4gPSBmYWxzZSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKCFyZWZyZXNoICYmICF0aGlzLl9wcmlzdGluZSkge1xuICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IEdldCBub3QgcmVmcmVzaGluZywgcmV0dXJuIGN1cnJlbnQgcmVzdWx0IG9ic2VydmFibGUnKTtcbiAgICAgIHJldHVybiB0aGlzLnJlc3VsdHM7XG4gICAgfVxuICAgIC8vIGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBzdGFydCBnZXQgKHF1ZXJ5KScpO1xuICAgIHRoaXMuX2xvYWRpbmcubmV4dCh0cnVlKTtcbiAgICBjb25zdCBzeW5jUXA6IHsgW2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGlmIChzeW5jKSB7XG4gICAgICBzeW5jUXBbJ2RiJ10gPSAnc3luYyc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb2xsXG4gICAgICAucmF3PElRdWVyeUZ1bGxSZXNwb25zZTxUPj4oe1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi50aGlzLmdldFF1ZXJ5UGFyYW1zKCksXG4gICAgICAgICAgLi4uc3luY1FwLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIC8vIFByb2Nlc3MgcmVzdWx0c1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBoYXZlIG1ldGEnKTtcbiAgICAgICAgICB0aGlzLl9tZXRhLm5leHQoeyBuYXY6IHJlc3VsdC5uYXYsIHBhcmFtZXRlcnM6IHJlc3VsdC5wYXJhbWV0ZXJzIH0pO1xuICAgICAgICAgIGNvbnN0IG91dDogVFtdID0gW107XG4gICAgICAgICAgZm9yIChjb25zdCByIG9mIHJlc3VsdC5yZXN1bHRzKSB7XG4gICAgICAgICAgICBjb25zdCBtID0gdGhpcy5fY29sbC5mcm9tSnNvbihyKTtcbiAgICAgICAgICAgIG91dC5wdXNoKG0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9wcmlzdGluZSA9IGZhbHNlO1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBoYXZlIGxvYWRpbmcnKTtcbiAgICAgICAgICB0aGlzLl9sb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBoYXZlIHJlc3VsdCcpO1xuICAgICAgICAgIHRoaXMuX3Jlc3VsdHMubmV4dChvdXQpO1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBkb25lIGdldCcpO1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlc3VsdHM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG59XG4iXX0=
@@ -1,46 +0,0 @@
1
- import { combineLatest, of } from "rxjs";
2
- export class QuerysetMock {
3
- // eslint-disable-next-line @typescript-eslint/naming-convention
4
- constructor(_coll, options = {}) {
5
- this._coll = _coll;
6
- this.options = options;
7
- this.mockData = [];
8
- this.filterData = {};
9
- this.sortData = [];
10
- this.pageSize = 100;
11
- this.page = 1;
12
- this.pristine = true;
13
- this.loading = of(false);
14
- }
15
- get results() {
16
- return of(this.mockData || this._coll.mockValues);
17
- }
18
- get meta() {
19
- return of({
20
- nav: { count: 100, next: 1, page: 1, pages: 10, prev: null, size: 10 },
21
- parameters: { page: "page", page_size: "page_size" }
22
- });
23
- }
24
- get full() {
25
- return combineLatest([this.results, this.loading, this.meta]);
26
- }
27
- filter(params = {}) {
28
- return this;
29
- }
30
- sort(...sorting) {
31
- return this;
32
- }
33
- paginateBy(pageSize = 20) {
34
- return this;
35
- }
36
- setPage(page) {
37
- return this;
38
- }
39
- getQueryParams() {
40
- return {};
41
- }
42
- get() {
43
- return of(this.mockData || this._coll.mockValues);
44
- }
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1xdWVyeS5tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZGF0YS1xdWVyeS5tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxhQUFhLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE1BQU0sT0FBTyxZQUFZO0lBV3pCLGdFQUFnRTtJQUM5RCxZQUFzQixLQUF3QixFQUFTLFVBQTRCLEVBQUU7UUFBL0QsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQVg5RSxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBRW5CLGVBQVUsR0FBZSxFQUFFLENBQUM7UUFDNUIsYUFBUSxHQUFlLEVBQUUsQ0FBQztRQUMxQixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUVULGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUszQixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUM7WUFDUixHQUFHLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQztZQUNwRSxVQUFVLEVBQUUsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUM7U0FDbkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBcUIsRUFBRTtRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxJQUFJLENBQUMsR0FBRyxPQUFpQjtRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxVQUFVLENBQUMsV0FBbUIsRUFBRTtRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVNLEdBQUc7UUFDUixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhTW9kZWx9IGZyb20gXCIuL2RhdGEtbW9kZWxcIjtcbmltcG9ydCB7Q29sbGVjdGlvbk1vY2t9IGZyb20gXCIuL2RhdGEtY29sbGVjdGlvbi5tb2NrXCI7XG5pbXBvcnQge0ZpbHRlckRhdGEsIElRdWVyeU1ldGEsIElRdWVyeXNldE9wdGlvbnMsIFNvcnREYXRhfSBmcm9tIFwiLi9kYXRhLXF1ZXJ5XCI7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mfSBmcm9tIFwicnhqc1wiO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlzZXRNb2NrPFQgZXh0ZW5kcyBEYXRhTW9kZWw+IHtcbiAgcHVibGljIG1vY2tEYXRhOiBUW10gPSBbXTtcblxuICBwdWJsaWMgZmlsdGVyRGF0YTogRmlsdGVyRGF0YSA9IHt9O1xuICBwdWJsaWMgc29ydERhdGE6IFNvcnREYXRhW10gPSBbXTtcbiAgcHVibGljIHBhZ2VTaXplID0gMTAwO1xuICBwdWJsaWMgcGFnZSA9IDE7XG5cbiAgcHVibGljIHByaXN0aW5lID0gdHJ1ZTtcbiAgcHVibGljIGxvYWRpbmcgPSBvZihmYWxzZSk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jb2xsOiBDb2xsZWN0aW9uTW9jazxUPiwgcHVibGljIG9wdGlvbnM6IElRdWVyeXNldE9wdGlvbnMgPSB7fSkge1xuXG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlc3VsdHMoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gb2YodGhpcy5tb2NrRGF0YSB8fCB0aGlzLl9jb2xsLm1vY2tWYWx1ZXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZXRhKCk6IE9ic2VydmFibGU8SVF1ZXJ5TWV0YT4ge1xuICAgIHJldHVybiBvZih7XG4gICAgICBuYXY6IHtjb3VudDogMTAwLCBuZXh0OiAxLCBwYWdlOiAxLCBwYWdlczogMTAsIHByZXY6IG51bGwsIHNpemU6IDEwfSxcbiAgICAgIHBhcmFtZXRlcnM6IHtwYWdlOiBcInBhZ2VcIiwgcGFnZV9zaXplOiBcInBhZ2Vfc2l6ZVwifVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBmdWxsKCk6IE9ic2VydmFibGU8W1RbXSwgYm9vbGVhbiwgSVF1ZXJ5TWV0YV0+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5yZXN1bHRzLCB0aGlzLmxvYWRpbmcsIHRoaXMubWV0YV0pO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcihwYXJhbXM6IEZpbHRlckRhdGEgPSB7fSk6IFF1ZXJ5c2V0TW9jazxUPiB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgc29ydCguLi5zb3J0aW5nOiBzdHJpbmdbXSk6IFF1ZXJ5c2V0TW9jazxUPiB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGVCeShwYWdlU2l6ZTogbnVtYmVyID0gMjApOiBRdWVyeXNldE1vY2s8VD4ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldFBhZ2UocGFnZTogbnVtYmVyKTogUXVlcnlzZXRNb2NrPFQ+IHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRRdWVyeVBhcmFtcygpOiBGaWx0ZXJEYXRhIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwdWJsaWMgZ2V0KCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIG9mKHRoaXMubW9ja0RhdGEgfHwgdGhpcy5fY29sbC5tb2NrVmFsdWVzKTtcbiAgfVxufVxuIl19