ng-qubee 1.0.11 → 2.0.2

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 (71) hide show
  1. package/README.md +90 -67
  2. package/esm2022/lib/enums/sort.enum.mjs +6 -0
  3. package/esm2022/lib/errors/key-not-found.error.mjs +6 -0
  4. package/esm2022/lib/errors/unselectable-model.error.mjs +6 -0
  5. package/esm2022/lib/interfaces/config.interface.mjs +2 -0
  6. package/esm2022/lib/interfaces/fields.interface.mjs +2 -0
  7. package/esm2022/lib/interfaces/filters.interface.mjs +2 -0
  8. package/esm2022/lib/interfaces/normalized.interface.mjs +2 -0
  9. package/esm2022/lib/interfaces/paginated-object.interface.mjs +2 -0
  10. package/esm2022/lib/interfaces/pagination-config.interface.mjs +2 -0
  11. package/esm2022/lib/interfaces/query-builder-config.interface.mjs +2 -0
  12. package/esm2022/lib/interfaces/query-builder-state.interface.mjs +2 -0
  13. package/esm2022/lib/interfaces/sort.interface.mjs +2 -0
  14. package/esm2022/lib/models/paginated-collection.mjs +47 -0
  15. package/esm2022/lib/models/query-builder-options.mjs +12 -0
  16. package/esm2022/lib/models/response-options.mjs +17 -0
  17. package/esm2022/lib/ng-qubee.module.mjs +42 -0
  18. package/esm2022/lib/provide-ngqubee.mjs +39 -0
  19. package/esm2022/lib/services/nest.service.mjs +173 -0
  20. package/esm2022/lib/services/ng-qubee.service.mjs +319 -0
  21. package/esm2022/lib/services/pagination.service.mjs +23 -0
  22. package/esm2022/ng-qubee.mjs +5 -0
  23. package/esm2022/public-api.mjs +9 -0
  24. package/{fesm2015/ng-qubee.js → fesm2022/ng-qubee.mjs} +369 -217
  25. package/fesm2022/ng-qubee.mjs.map +1 -0
  26. package/index.d.ts +5 -0
  27. package/lib/interfaces/normalized.interface.d.ts +3 -0
  28. package/lib/interfaces/paginated-object.interface.d.ts +3 -0
  29. package/lib/interfaces/query-builder-state.interface.d.ts +1 -2
  30. package/lib/interfaces/sort.interface.d.ts +2 -1
  31. package/lib/models/paginated-collection.d.ts +18 -16
  32. package/lib/ng-qubee.module.d.ts +4 -1
  33. package/lib/provide-ngqubee.d.ts +21 -0
  34. package/lib/services/nest.service.d.ts +81 -0
  35. package/lib/{ng-qubee.service.d.ts → services/ng-qubee.service.d.ts} +30 -8
  36. package/lib/services/pagination.service.d.ts +5 -1
  37. package/package.json +20 -18
  38. package/public-api.d.ts +3 -2
  39. package/bundles/ng-qubee.umd.js +0 -927
  40. package/bundles/ng-qubee.umd.js.map +0 -1
  41. package/bundles/ng-qubee.umd.min.js +0 -16
  42. package/bundles/ng-qubee.umd.min.js.map +0 -1
  43. package/esm2015/lib/actions/query-builder.actions.js +0 -17
  44. package/esm2015/lib/enums/sort.enum.js +0 -6
  45. package/esm2015/lib/errors/key-not-found.error.js +0 -6
  46. package/esm2015/lib/errors/unselectable-model.error.js +0 -6
  47. package/esm2015/lib/interfaces/config.interface.js +0 -2
  48. package/esm2015/lib/interfaces/fields.interface.js +0 -2
  49. package/esm2015/lib/interfaces/filters.interface.js +0 -2
  50. package/esm2015/lib/interfaces/nest-state.interface.js +0 -2
  51. package/esm2015/lib/interfaces/pagination-config.interface.js +0 -2
  52. package/esm2015/lib/interfaces/query-builder-config.interface.js +0 -2
  53. package/esm2015/lib/interfaces/query-builder-state.interface.js +0 -2
  54. package/esm2015/lib/interfaces/sort.interface.js +0 -2
  55. package/esm2015/lib/models/paginated-collection.js +0 -45
  56. package/esm2015/lib/models/query-builder-options.js +0 -12
  57. package/esm2015/lib/models/response-options.js +0 -17
  58. package/esm2015/lib/ng-qubee.module.js +0 -33
  59. package/esm2015/lib/ng-qubee.service.js +0 -298
  60. package/esm2015/lib/reducers/query-builder.reducer.js +0 -51
  61. package/esm2015/lib/services/pagination.service.js +0 -18
  62. package/esm2015/lib/services/store.service.js +0 -26
  63. package/esm2015/ng-qubee.js +0 -6
  64. package/esm2015/public-api.js +0 -8
  65. package/fesm2015/ng-qubee.js.map +0 -1
  66. package/lib/actions/query-builder.actions.d.ts +0 -43
  67. package/lib/interfaces/nest-state.interface.d.ts +0 -4
  68. package/lib/reducers/query-builder.reducer.d.ts +0 -2
  69. package/lib/services/store.service.d.ts +0 -9
  70. package/ng-qubee.d.ts +0 -7
  71. package/ng-qubee.metadata.json +0 -1
@@ -1,298 +0,0 @@
1
- import { Inject, Injectable, Optional } from '@angular/core';
2
- import * as qs from 'qs';
3
- import { QueryBuilderOptions } from './models/query-builder-options';
4
- import { UnselectableModelError } from './errors/unselectable-model.error';
5
- import { SortEnum } from './enums/sort.enum';
6
- import * as qbActions from './actions/query-builder.actions';
7
- import { BehaviorSubject } from 'rxjs';
8
- import { filter } from 'rxjs/operators';
9
- import { StoreService } from './services/store.service';
10
- export class NgQubeeService {
11
- constructor(_store, options = {}) {
12
- this._store = _store;
13
- /**
14
- * This property serves as an accumulator for holding the composed string with each query param
15
- */
16
- this._uri = '';
17
- this._uri$ = new BehaviorSubject('');
18
- this.uri$ = this._uri$.asObservable().pipe(filter(uri => !!uri));
19
- this._options = new QueryBuilderOptions(options);
20
- this._store.subscribe(() => {
21
- this._uri$.next(this._store.state.nest.uri);
22
- });
23
- }
24
- _parseFields(s) {
25
- if (!Object.keys(s.fields).length) {
26
- return this._uri;
27
- }
28
- if (!s.model) {
29
- throw new Error('While selecting fields, the -> model <- is required');
30
- }
31
- if (!(s.model in s.fields)) {
32
- throw new Error(`Key ${s.model} is missing in the fields object`);
33
- }
34
- const f = {};
35
- for (const k in s.fields) {
36
- if (s.fields.hasOwnProperty(k)) {
37
- // Check if the key is the model or is declared in "includes".
38
- // If not, it means that has not been selected anywhere and that will cause an error on the API
39
- if (k !== s.model && !s.includes.includes(k)) {
40
- throw new UnselectableModelError(k);
41
- }
42
- Object.assign(f, { [`${this._options.fields}[${k}]`]: s.fields[k].join(',') });
43
- }
44
- }
45
- const param = `${this._prepend(s.model)}${qs.stringify(f, { encode: false })}`;
46
- this._uri += param;
47
- return param;
48
- }
49
- _parseFilters(s) {
50
- const keys = Object.keys(s.filters);
51
- if (!keys.length) {
52
- return this._uri;
53
- }
54
- const f = {
55
- [this._options.filters]: keys.reduce((acc, key) => {
56
- return Object.assign(acc, { [key]: s.filters[key].join(',') });
57
- }, {})
58
- };
59
- const param = `${this._prepend(s.model)}${qs.stringify(f, { encode: false })}`;
60
- this._uri += param;
61
- return param;
62
- }
63
- _parseIncludes(s) {
64
- if (!s.includes.length) {
65
- return this._uri;
66
- }
67
- const param = `${this._prepend(s.model)}${this._options.includes}=${s.includes}`;
68
- this._uri += param;
69
- return param;
70
- }
71
- _parseLimit(s) {
72
- const param = `${this._prepend(s.model)}${this._options.limit}=${s.limit}`;
73
- this._uri += param;
74
- return param;
75
- }
76
- _parsePage(s) {
77
- const param = `${this._prepend(s.model)}${this._options.page}=${s.page}`;
78
- this._uri += param;
79
- return param;
80
- }
81
- _parseSort(s) {
82
- let param = '';
83
- const fields = Object.keys(s.sort);
84
- if (!fields.length) {
85
- return param;
86
- }
87
- param = `${this._prepend(s.model)}${this._options.sort}=`;
88
- fields.forEach((field, idx) => {
89
- param += `${s.sort[field] === SortEnum.DESC ? '-' : ''}${field}`;
90
- if (idx < fields.length - 1) {
91
- param += ',';
92
- }
93
- });
94
- this._uri += param;
95
- return param;
96
- }
97
- _parse(s) {
98
- if (!s.model) {
99
- throw new Error('Set the model property BEFORE adding filters or calling the url() / get() methods');
100
- }
101
- this._parseIncludes(s);
102
- this._parseFields(s);
103
- this._parseFilters(s);
104
- this._parseLimit(s);
105
- this._parsePage(s);
106
- this._parseSort(s);
107
- this._store.dispatch(qbActions.updateUri({ uri: this._uri }));
108
- }
109
- _prepend(model) {
110
- return this._uri ? '&' : `/${model}?`;
111
- }
112
- /**
113
- * Add fields to the select statement for the given model
114
- *
115
- * @param model Model that holds the fields
116
- * @param fields Fields to select
117
- * @returns {this}
118
- */
119
- addFields(model, fields) {
120
- if (!fields.length) {
121
- return this;
122
- }
123
- this._store.dispatch(qbActions.addFields({
124
- fields: {
125
- [model]: fields
126
- }
127
- }));
128
- return this;
129
- }
130
- /**
131
- * Add a filter with the given value(s)
132
- * I.e. filter[field]=1 or filter[field]=1,2,3
133
- *
134
- * @param {string} field Name of the field to filter
135
- * @param {string[]} value The needle(s)
136
- * @returns {this}
137
- */
138
- addFilter(field, ...values) {
139
- if (!values.length) {
140
- return this;
141
- }
142
- this._store.dispatch(qbActions.addFilters({
143
- filters: {
144
- [field]: values
145
- }
146
- }));
147
- return this;
148
- }
149
- /**
150
- * Add related entities to include in the request
151
- *
152
- * @param {string[]} models
153
- * @returns
154
- */
155
- addIncludes(...models) {
156
- if (!models) {
157
- return this;
158
- }
159
- this._store.dispatch(qbActions.addIncludes({
160
- includes: models
161
- }));
162
- return this;
163
- }
164
- /**
165
- * Add a field with a sort criteria
166
- *
167
- * @param field Field to use for sorting
168
- * @param {SortEnum} value A value from the SortEnum enumeration
169
- * @returns {this}
170
- */
171
- addSort(field, value) {
172
- this._store.dispatch(qbActions.addSorts({
173
- sorts: {
174
- [field]: value
175
- }
176
- }));
177
- return this;
178
- }
179
- /**
180
- * Delete selected fields for the given model in the current query builder state
181
- *
182
- * @param model Model that holds the fields
183
- * @param {string[]} fields Fields to delete from the state
184
- * @returns {this}
185
- */
186
- deleteFields(model, ...fields) {
187
- if (!fields.length) {
188
- return this;
189
- }
190
- this._store.dispatch(qbActions.deleteFields({ fields }));
191
- return this;
192
- }
193
- /**
194
- * Remove given filters from the query builder state
195
- *
196
- * @param {string[]} filters Filters to remove
197
- * @returns {this}
198
- */
199
- deleteFilters(...filters) {
200
- if (!filters.length) {
201
- return this;
202
- }
203
- this._store.dispatch(qbActions.deleteFilters({ filters }));
204
- return this;
205
- }
206
- /**
207
- * Remove selected related models from the query builder state
208
- *
209
- * @param {string[]} includes Models to remove
210
- * @returns
211
- */
212
- deleteIncludes(...includes) {
213
- if (!includes.length) {
214
- return this;
215
- }
216
- this._store.dispatch(qbActions.deleteIncludes({ includes }));
217
- return this;
218
- }
219
- /**
220
- * Remove sorts rules from the query builder state
221
- *
222
- * @param sorts Fields used for sorting to remove
223
- * @returns {this}
224
- */
225
- deleteSorts(...sorts) {
226
- this._store.dispatch(qbActions.deleteSorts({ sorts }));
227
- return this;
228
- }
229
- /**
230
- * Generate an URI accordingly to the given data
231
- *
232
- * @returns {Observable<string>} An observable that emits the generated uri
233
- */
234
- generateUri() {
235
- // Cleanup the previously generated URI
236
- this._uri = '';
237
- this._parse(this._store.state.nest);
238
- return this.uri$;
239
- }
240
- /**
241
- * Clear the current state and reset the Query Builder to a fresh, clean condition
242
- *
243
- * @returns {this}
244
- */
245
- reset() {
246
- this._store.dispatch(qbActions.reset());
247
- return this;
248
- }
249
- /**
250
- * Set the base url to use for composing the address
251
- *
252
- * @param {string} baseUrl
253
- * @returns {this}
254
- */
255
- setBaseUrl(baseUrl) {
256
- this._store.dispatch(qbActions.setBaseUrl({ baseUrl }));
257
- return this;
258
- }
259
- /**
260
- * Set the items per page number
261
- *
262
- * @param limit
263
- * @returns {this}
264
- */
265
- setLimit(limit) {
266
- this._store.dispatch(qbActions.setLimit({ limit }));
267
- return this;
268
- }
269
- /**
270
- * Set the model to use for running the query against
271
- * - I.e. the model "users" will return /users
272
- *
273
- * @param {string} model Model name
274
- * @returns {this}
275
- */
276
- setModel(model) {
277
- this._store.dispatch(qbActions.setModel({ model }));
278
- return this;
279
- }
280
- /**
281
- * Set the page that the backend will use to paginate the result set
282
- *
283
- * @param page Page param
284
- * @returns {this}
285
- */
286
- setPage(page) {
287
- this._store.dispatch(qbActions.setPage({ page }));
288
- return this;
289
- }
290
- }
291
- NgQubeeService.decorators = [
292
- { type: Injectable }
293
- ];
294
- NgQubeeService.ctorParameters = () => [
295
- { type: StoreService },
296
- { type: undefined, decorators: [{ type: Inject, args: ['QUERY_PARAMS_CONFIG',] }, { type: Optional }] }
297
- ];
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcXViZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcXVlcnktYnVpbGRlci9zcmMvbGliL25nLXF1YmVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEtBQUssU0FBUyxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd4RCxNQUFNLE9BQU8sY0FBYztJQWV6QixZQUFvQixNQUFvQixFQUE2QyxVQUErQixFQUFFO1FBQWxHLFdBQU0sR0FBTixNQUFNLENBQWM7UUFYeEM7O1dBRUc7UUFDSyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVYsVUFBSyxHQUE0QixJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUxRCxTQUFJLEdBQXVCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUM5RCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ3JCLENBQUM7UUFHQSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksbUJBQW1CLENBQUMsT0FBTyxDQUFD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LENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7WUF0VkYsVUFBVTs7O1lBRkYsWUFBWTs0Q0FrQndCLE1BQU0sU0FBQyxxQkFBcUIsY0FBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVF1ZXJ5QnVpbGRlckNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9xdWVyeS1idWlsZGVyLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0ICogYXMgcXMgZnJvbSAncXMnO1xuaW1wb3J0IHsgUXVlcnlCdWlsZGVyT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzL3F1ZXJ5LWJ1aWxkZXItb3B0aW9ucyc7XG5pbXBvcnQgeyBVbnNlbGVjdGFibGVNb2RlbEVycm9yIH0gZnJvbSAnLi9lcnJvcnMvdW5zZWxlY3RhYmxlLW1vZGVsLmVycm9yJztcbmltcG9ydCB7IFNvcnRFbnVtIH0gZnJvbSAnLi9lbnVtcy9zb3J0LmVudW0nO1xuaW1wb3J0ICogYXMgcWJBY3Rpb25zIGZyb20gJy4vYWN0aW9ucy9xdWVyeS1idWlsZGVyLmFjdGlvbnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJUXVlcnlCdWlsZGVyU3RhdGUgfSBmcm9tICcuL2ludGVyZmFjZXMvcXVlcnktYnVpbGRlci1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zdG9yZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5nUXViZWVTZXJ2aWNlIHtcblxuICBwcml2YXRlIF9vcHRpb25zOiBRdWVyeUJ1aWxkZXJPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IHNlcnZlcyBhcyBhbiBhY2N1bXVsYXRvciBmb3IgaG9sZGluZyB0aGUgY29tcG9zZWQgc3RyaW5nIHdpdGggZWFjaCBxdWVyeSBwYXJhbVxuICAgKi9cbiAgcHJpdmF0ZSBfdXJpID0gJyc7XG5cbiAgcHJpdmF0ZSBfdXJpJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcblxuICBwdWJsaWMgdXJpJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5fdXJpJC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgIGZpbHRlcih1cmkgPT4gISF1cmkpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3RvcmU6IFN0b3JlU2VydmljZSwgQEluamVjdCgnUVVFUllfUEFSQU1TX0NPTkZJRycpIEBPcHRpb25hbCgpIG9wdGlvbnM6IElRdWVyeUJ1aWxkZXJDb25maWcgPSB7fSkge1xuICAgIHRoaXMuX29wdGlvbnMgPSBuZXcgUXVlcnlCdWlsZGVyT3B0aW9ucyhvcHRpb25zKTtcbiAgICB0aGlzLl9zdG9yZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fdXJpJC5uZXh0KHRoaXMuX3N0b3JlLnN0YXRlLm5lc3QudXJpKTtcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfcGFyc2VGaWVsZHMoczogSVF1ZXJ5QnVpbGRlclN0YXRlKTogc3RyaW5nIHtcbiAgICBpZiAoIU9iamVjdC5rZXlzKHMuZmllbGRzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLl91cmk7XG4gICAgfVxuXG4gICAgaWYgKCFzLm1vZGVsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1doaWxlIHNlbGVjdGluZyBmaWVsZHMsIHRoZSAtPiBtb2RlbCA8LSBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGlmICggIShzLm1vZGVsIGluIHMuZmllbGRzKSApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgS2V5ICR7cy5tb2RlbH0gaXMgbWlzc2luZyBpbiB0aGUgZmllbGRzIG9iamVjdGApO1xuICAgIH1cblxuICAgIGNvbnN0IGYgPSB7fTtcblxuICAgIGZvciAoY29uc3QgayBpbiBzLmZpZWxkcykge1xuICAgICAgaWYgKHMuZmllbGRzLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBrZXkgaXMgdGhlIG1vZGVsIG9yIGlzIGRlY2xhcmVkIGluIFwiaW5jbHVkZXNcIi5cbiAgICAgICAgLy8gSWYgbm90LCBpdCBtZWFucyB0aGF0IGhhcyBub3QgYmVlbiBzZWxlY3RlZCBhbnl3aGVyZSBhbmQgdGhhdCB3aWxsIGNhdXNlIGFuIGVycm9yIG9uIHRoZSBBUElcbiAgICAgICAgaWYgKGsgIT09IHMubW9kZWwgJiYgIXMuaW5jbHVkZXMuaW5jbHVkZXMoaykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVW5zZWxlY3RhYmxlTW9kZWxFcnJvcihrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5hc3NpZ24oZiwge1tgJHt0aGlzLl9vcHRpb25zLmZpZWxkc31bJHtrfV1gXTogcy5maWVsZHNba10uam9pbignLCcpfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW0gPSBgJHt0aGlzLl9wcmVwZW5kKHMubW9kZWwpfSR7cXMuc3RyaW5naWZ5KGYsIHtlbmNvZGU6IGZhbHNlfSl9YDtcbiAgICB0aGlzLl91cmkgKz0gcGFyYW07XG5cbiAgICByZXR1cm4gcGFyYW07XG4gIH1cblxuICBwcml2YXRlIF9wYXJzZUZpbHRlcnMoczogSVF1ZXJ5QnVpbGRlclN0YXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocy5maWx0ZXJzKTtcblxuICAgIGlmICgha2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLl91cmk7XG4gICAgfVxuXG4gICAgY29uc3QgZiA9IHsgXG4gICAgICAgIFt0aGlzLl9vcHRpb25zLmZpbHRlcnNdOiBrZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihhY2MsIHtba2V5XTogcy5maWx0ZXJzW2tleV0uam9pbignLCcpfSk7XG4gICAgICAgIH0sIHt9KVxuICAgICAgfTtcbiAgICBjb25zdCBwYXJhbSA9IGAke3RoaXMuX3ByZXBlbmQocy5tb2RlbCl9JHtxcy5zdHJpbmdpZnkoZiwge2VuY29kZTogZmFsc2V9KX1gO1xuICAgIHRoaXMuX3VyaSArPSBwYXJhbTtcblxuICAgIHJldHVybiBwYXJhbTtcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlSW5jbHVkZXMoczogSVF1ZXJ5QnVpbGRlclN0YXRlKTogc3RyaW5nIHtcbiAgICBpZiAoIXMuaW5jbHVkZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdXJpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtID0gYCR7dGhpcy5fcHJlcGVuZChzLm1vZGVsKX0ke3RoaXMuX29wdGlvbnMuaW5jbHVkZXN9PSR7cy5pbmNsdWRlc31gO1xuICAgIHRoaXMuX3VyaSArPSBwYXJhbTtcblxuICAgIHJldHVybiBwYXJhbTtcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlTGltaXQoczogSVF1ZXJ5QnVpbGRlclN0YXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJhbSA9IGAke3RoaXMuX3ByZXBlbmQocy5tb2RlbCl9JHt0aGlzLl9vcHRpb25zLmxpbWl0fT0ke3MubGltaXR9YDtcbiAgICB0aGlzLl91cmkgKz0gcGFyYW07XG5cbiAgICByZXR1cm4gcGFyYW07XG4gIH1cblxuICBwcml2YXRlIF9wYXJzZVBhZ2UoczogSVF1ZXJ5QnVpbGRlclN0YXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJhbSA9IGAke3RoaXMuX3ByZXBlbmQocy5tb2RlbCl9JHt0aGlzLl9vcHRpb25zLnBhZ2V9PSR7cy5wYWdlfWA7XG4gICAgdGhpcy5fdXJpICs9IHBhcmFtO1xuXG4gICAgcmV0dXJuIHBhcmFtO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGFyc2VTb3J0KHM6IElRdWVyeUJ1aWxkZXJTdGF0ZSk6IHN0cmluZyB7XG4gICAgbGV0IHBhcmFtOiBzdHJpbmcgPSAnJztcbiAgICBjb25zdCBmaWVsZHMgPSBPYmplY3Qua2V5cyhzLnNvcnQpO1xuXG4gICAgaWYgKCFmaWVsZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcGFyYW07XG4gICAgfVxuXG4gICAgcGFyYW0gPSBgJHt0aGlzLl9wcmVwZW5kKHMubW9kZWwpfSR7dGhpcy5fb3B0aW9ucy5zb3J0fT1gO1xuXG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkLCBpZHgpID0+IHtcbiAgICAgIHBhcmFtICs9IGAke3Muc29ydFtmaWVsZF0gPT09IFNvcnRFbnVtLkRFU0MgPyAnLScgOiAnJ30ke2ZpZWxkfWA7XG5cbiAgICAgIGlmIChpZHggPCBmaWVsZHMubGVuZ3RoIC0gMSkge1xuICAgICAgICBwYXJhbSArPSAnLCdcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3VyaSArPSBwYXJhbTtcblxuICAgIHJldHVybiBwYXJhbTtcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlKHM6IElRdWVyeUJ1aWxkZXJTdGF0ZSk6IHZvaWQge1xuICAgIGlmICghcy5tb2RlbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXQgdGhlIG1vZGVsIHByb3BlcnR5IEJFRk9SRSBhZGRpbmcgZmlsdGVycyBvciBjYWxsaW5nIHRoZSB1cmwoKSAvIGdldCgpIG1ldGhvZHMnKTtcbiAgICB9XG5cbiAgICB0aGlzLl9wYXJzZUluY2x1ZGVzKHMpO1xuICAgIHRoaXMuX3BhcnNlRmllbGRzKHMpO1xuICAgIHRoaXMuX3BhcnNlRmlsdGVycyhzKTtcbiAgICB0aGlzLl9wYXJzZUxpbWl0KHMpO1xuICAgIHRoaXMuX3BhcnNlUGFnZShzKTtcbiAgICB0aGlzLl9wYXJzZVNvcnQocyk7XG5cbiAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChxYkFjdGlvbnMudXBkYXRlVXJpKHt1cmk6IHRoaXMuX3VyaX0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ByZXBlbmQobW9kZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3VyaSA/ICcmJyA6IGAvJHttb2RlbH0/YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgZmllbGRzIHRvIHRoZSBzZWxlY3Qgc3RhdGVtZW50IGZvciB0aGUgZ2l2ZW4gbW9kZWxcbiAgICogXG4gICAqIEBwYXJhbSBtb2RlbCBNb2RlbCB0aGF0IGhvbGRzIHRoZSBmaWVsZHNcbiAgICogQHBhcmFtIGZpZWxkcyBGaWVsZHMgdG8gc2VsZWN0XG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgcHVibGljIGFkZEZpZWxkcyhtb2RlbDogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgaWYgKCFmaWVsZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChxYkFjdGlvbnMuYWRkRmllbGRzKHtcbiAgICAgIGZpZWxkczoge1xuICAgICAgICBbbW9kZWxdOiBmaWVsZHNcbiAgICAgIH1cbiAgICB9KSk7XG4gICAgXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZmlsdGVyIHdpdGggdGhlIGdpdmVuIHZhbHVlKHMpXG4gICAqICBJLmUuIGZpbHRlcltmaWVsZF09MSBvciBmaWx0ZXJbZmllbGRdPTEsMiwzXG4gICAqIFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmllbGQgTmFtZSBvZiB0aGUgZmllbGQgdG8gZmlsdGVyXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHZhbHVlIFRoZSBuZWVkbGUocylcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBwdWJsaWMgYWRkRmlsdGVyKGZpZWxkOiBzdHJpbmcsIC4uLnZhbHVlczogKHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pW10pOiB0aGlzIHtcbiAgICBpZiAoIXZhbHVlcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHFiQWN0aW9ucy5hZGRGaWx0ZXJzKHtcbiAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgW2ZpZWxkXTogdmFsdWVzXG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHJlbGF0ZWQgZW50aXRpZXMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdFxuICAgKiBcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gbW9kZWxzIFxuICAgKiBAcmV0dXJucyBcbiAgICovXG4gIHB1YmxpYyBhZGRJbmNsdWRlcyguLi5tb2RlbHM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgaWYgKCFtb2RlbHMpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHFiQWN0aW9ucy5hZGRJbmNsdWRlcyh7XG4gICAgICBpbmNsdWRlczogbW9kZWxzXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZmllbGQgd2l0aCBhIHNvcnQgY3JpdGVyaWFcbiAgICogXG4gICAqIEBwYXJhbSBmaWVsZCBGaWVsZCB0byB1c2UgZm9yIHNvcnRpbmdcbiAgICogQHBhcmFtIHtTb3J0RW51bX0gdmFsdWUgQSB2YWx1ZSBmcm9tIHRoZSBTb3J0RW51bSBlbnVtZXJhdGlvblxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIHB1YmxpYyBhZGRTb3J0KGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBTb3J0RW51bSk6IHRoaXMge1xuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHFiQWN0aW9ucy5hZGRTb3J0cyh7XG4gICAgICBzb3J0czoge1xuICAgICAgICBbZmllbGRdOiB2YWx1ZVxuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBzZWxlY3RlZCBmaWVsZHMgZm9yIHRoZSBnaXZlbiBtb2RlbCBpbiB0aGUgY3VycmVudCBxdWVyeSBidWlsZGVyIHN0YXRlXG4gICAqIFxuICAgKiBAcGFyYW0gbW9kZWwgTW9kZWwgdGhhdCBob2xkcyB0aGUgZmllbGRzXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGZpZWxkcyBGaWVsZHMgdG8gZGVsZXRlIGZyb20gdGhlIHN0YXRlXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgIHB1YmxpYyBkZWxldGVGaWVsZHMobW9kZWw6IHN0cmluZywgLi4uZmllbGRzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIGlmICghZmllbGRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gocWJBY3Rpb25zLmRlbGV0ZUZpZWxkcyh7ZmllbGRzfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBnaXZlbiBmaWx0ZXJzIGZyb20gdGhlIHF1ZXJ5IGJ1aWxkZXIgc3RhdGVcbiAgICogXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGZpbHRlcnMgRmlsdGVycyB0byByZW1vdmVcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBwdWJsaWMgZGVsZXRlRmlsdGVycyguLi5maWx0ZXJzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIGlmICghZmlsdGVycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHFiQWN0aW9ucy5kZWxldGVGaWx0ZXJzKHtmaWx0ZXJzfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBzZWxlY3RlZCByZWxhdGVkIG1vZGVscyBmcm9tIHRoZSBxdWVyeSBidWlsZGVyIHN0YXRlXG4gICAqIFxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBpbmNsdWRlcyBNb2RlbHMgdG8gcmVtb3ZlXG4gICAqIEByZXR1cm5zIFxuICAgKi9cbiAgcHVibGljIGRlbGV0ZUluY2x1ZGVzKC4uLmluY2x1ZGVzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIGlmICghaW5jbHVkZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChxYkFjdGlvbnMuZGVsZXRlSW5jbHVkZXMoe2luY2x1ZGVzfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBzb3J0cyBydWxlcyBmcm9tIHRoZSBxdWVyeSBidWlsZGVyIHN0YXRlXG4gICAqIFxuICAgKiBAcGFyYW0gc29ydHMgRmllbGRzIHVzZWQgZm9yIHNvcnRpbmcgdG8gcmVtb3ZlXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgcHVibGljIGRlbGV0ZVNvcnRzKC4uLnNvcnRzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHFiQWN0aW9ucy5kZWxldGVTb3J0cyh7c29ydHN9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYW4gVVJJIGFjY29yZGluZ2x5IHRvIHRoZSBnaXZlbiBkYXRhXG4gICAqXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPHN0cmluZz59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZ2VuZXJhdGVkIHVyaVxuICAgKi9cbiAgIHB1YmxpYyBnZW5lcmF0ZVVyaSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIC8vIENsZWFudXAgdGhlIHByZXZpb3VzbHkgZ2VuZXJhdGVkIFVSSVxuICAgIHRoaXMuX3VyaSA9ICcnO1xuICAgIHRoaXMuX3BhcnNlKHRoaXMuX3N0b3JlLnN0YXRlLm5lc3QpO1xuXG4gICAgcmV0dXJuIHRoaXMudXJpJDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgY3VycmVudCBzdGF0ZSBhbmQgcmVzZXQgdGhlIFF1ZXJ5IEJ1aWxkZXIgdG8gYSBmcmVzaCwgY2xlYW4gY29uZGl0aW9uXG4gICAqIFxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIHB1YmxpYyByZXNldCgpOiB0aGlzIHtcbiAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChxYkFjdGlvbnMucmVzZXQoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBiYXNlIHVybCB0byB1c2UgZm9yIGNvbXBvc2luZyB0aGUgYWRkcmVzc1xuICAgKiBcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJhc2VVcmwgXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgcHVibGljIHNldEJhc2VVcmwoYmFzZVVybDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gocWJBY3Rpb25zLnNldEJhc2VVcmwoe2Jhc2VVcmx9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBpdGVtcyBwZXIgcGFnZSBudW1iZXJcbiAgICogXG4gICAqIEBwYXJhbSBsaW1pdCBcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBwdWJsaWMgc2V0TGltaXQobGltaXQ6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHFiQWN0aW9ucy5zZXRMaW1pdCh7bGltaXR9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBtb2RlbCB0byB1c2UgZm9yIHJ1bm5pbmcgdGhlIHF1ZXJ5IGFnYWluc3RcbiAgICogICAtIEkuZS4gdGhlIG1vZGVsIFwidXNlcnNcIiB3aWxsIHJldHVybiAvdXNlcnNcbiAgICogXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtb2RlbCBNb2RlbCBuYW1lXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgcHVibGljIHNldE1vZGVsKG1vZGVsOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChxYkFjdGlvbnMuc2V0TW9kZWwoe21vZGVsfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcGFnZSB0aGF0IHRoZSBiYWNrZW5kIHdpbGwgdXNlIHRvIHBhZ2luYXRlIHRoZSByZXN1bHQgc2V0XG4gICAqIFxuICAgKiBAcGFyYW0gcGFnZSBQYWdlIHBhcmFtXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgcHVibGljIHNldFBhZ2UocGFnZTogbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gocWJBY3Rpb25zLnNldFBhZ2Uoe3BhZ2V9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
@@ -1,51 +0,0 @@
1
- import { createReducer } from "@reduxjs/toolkit";
2
- import * as QueryBuilderActions from "../actions/query-builder.actions";
3
- const initialState = {
4
- baseUrl: '',
5
- fields: {},
6
- filters: {},
7
- includes: [],
8
- limit: 15,
9
- model: '',
10
- page: 1,
11
- sort: {},
12
- uri: ''
13
- };
14
- const ɵ0 = builder => {
15
- builder.addCase(QueryBuilderActions.addFields, (state, { payload: { fields } }) => (Object.assign(Object.assign({}, state), { fields: Object.assign(Object.assign({}, state.fields), fields) }))),
16
- builder.addCase(QueryBuilderActions.addFilters, (state, { payload: { filters } }) => (Object.assign(Object.assign({}, state), { filters: Object.assign(Object.assign({}, state.filters), filters) }))),
17
- builder.addCase(QueryBuilderActions.addIncludes, (state, { payload: { includes } }) => (Object.assign(Object.assign({}, state), { includes: [...state.includes, ...includes] }))),
18
- builder.addCase(QueryBuilderActions.addSorts, (state, { payload: { sorts } }) => (Object.assign(Object.assign({}, state), { sort: Object.assign(Object.assign({}, state.sort), sorts) }))),
19
- builder.addCase(QueryBuilderActions.deleteFields, (state, { payload: { fields } }) => {
20
- const f = Object.assign({}, state.fields);
21
- Object.keys(fields).forEach(k => {
22
- if (!(k in state.fields)) {
23
- return;
24
- }
25
- f[k] = state.fields[k].filter(v => !fields[k].includes(v));
26
- });
27
- return Object.assign(Object.assign({}, state), { fields: f });
28
- }),
29
- builder.addCase(QueryBuilderActions.deleteFilters, (state, { payload: { filters } }) => {
30
- const f = Object.assign({}, state.filters);
31
- filters.forEach(k => delete f[k]);
32
- return Object.assign(Object.assign({}, state), { filters: f });
33
- }),
34
- builder.addCase(QueryBuilderActions.deleteIncludes, (state, { payload: { includes } }) => {
35
- return Object.assign(Object.assign({}, state), { includes: state.includes.filter(v => !includes.includes(v)) });
36
- }),
37
- builder.addCase(QueryBuilderActions.deleteSorts, (state, { payload: { sorts } }) => {
38
- const s = Object.assign({}, state.sort);
39
- sorts.forEach(v => delete s[v]);
40
- return Object.assign(Object.assign({}, state), { sort: s });
41
- }),
42
- builder.addCase(QueryBuilderActions.reset, state => initialState),
43
- builder.addCase(QueryBuilderActions.setBaseUrl, (state, { payload: { baseUrl } }) => (Object.assign(Object.assign({}, state), { baseUrl }))),
44
- builder.addCase(QueryBuilderActions.setLimit, (state, { payload: { limit } }) => (Object.assign(Object.assign({}, state), { limit }))),
45
- builder.addCase(QueryBuilderActions.setModel, (state, { payload: { model } }) => (Object.assign(Object.assign({}, state), { model }))),
46
- builder.addCase(QueryBuilderActions.setPage, (state, { payload: { page } }) => (Object.assign(Object.assign({}, state), { page }))),
47
- builder.addCase(QueryBuilderActions.updateUri, (state, { payload: { uri } }) => (Object.assign(Object.assign({}, state), { uri })));
48
- };
49
- export const queryBuilderReducer = createReducer(initialState, ɵ0);
50
- export { ɵ0 };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1xdWVyeS1idWlsZGVyL3NyYy9saWIvcmVkdWNlcnMvcXVlcnktYnVpbGRlci5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssbUJBQW1CLE1BQU0sa0NBQWtDLENBQUM7QUFHeEUsTUFBTSxZQUFZLEdBQXVCO0lBQ3JDLE9BQU8sRUFBRSxFQUFFO0lBQ1gsTUFBTSxFQUFFLEVBQUU7SUFDVixPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxFQUFFO0lBQ1osS0FBSyxFQUFFLEVBQUU7SUFDVCxLQUFLLEVBQUUsRUFBRTtJQUNULElBQUksRUFBRSxDQUFDO0lBQ1AsSUFBSSxFQUFFLEVBQUU7SUFDUixHQUFHLEVBQUUsRUFBRTtDQUNWLENBQUM7V0FJRSxPQUFPLENBQUMsRUFBRTtJQUNOLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBRSxFQUFFLENBQUMsaUNBQUssS0FBSyxLQUFFLE1BQU0sa0NBQU0sS0FBSyxDQUFDLE1BQU0sR0FBSyxNQUFNLEtBQUcsQ0FBQztRQUNsSSxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFDLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFDLEVBQUUsRUFBRSxDQUFDLGlDQUFLLEtBQUssS0FBRSxPQUFPLGtDQUFNLEtBQUssQ0FBQyxPQUFPLEdBQUssT0FBTyxLQUFHLENBQUM7UUFDdkksT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxRQUFRLEVBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FBSyxLQUFLLEtBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUUsQ0FBQztRQUM1SSxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFDLE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUUsRUFBRSxDQUFDLGlDQUFLLEtBQUssS0FBRSxJQUFJLGtDQUFNLEtBQUssQ0FBQyxJQUFJLEdBQUssS0FBSyxLQUFHLENBQUM7UUFFM0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFFLEVBQUU7WUFDN0UsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1QixJQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFHO29CQUN4QixPQUFPO2lCQUNWO2dCQUVELENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUFDO1lBRUgsdUNBQ08sS0FBSyxLQUNSLE1BQU0sRUFBRSxDQUFDLElBQ1g7UUFDTixDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFDLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFDLEVBQUUsRUFBRTtZQUMvRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFM0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbEMsdUNBQ08sS0FBSyxLQUNSLE9BQU8sRUFBRSxDQUFDLElBQ1o7UUFDTixDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFDLE9BQU8sRUFBRSxFQUFDLFFBQVEsRUFBQyxFQUFDLEVBQUUsRUFBRTtZQUNqRix1Q0FDTyxLQUFLLEtBQ1IsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQzdEO1FBQ04sQ0FBQyxDQUFDO1FBRUYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFFLEVBQUU7WUFDM0UsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXhDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWhDLHVDQUNPLEtBQUssS0FDUixJQUFJLEVBQUUsQ0FBQyxJQUNUO1FBQ04sQ0FBQyxDQUFDO1FBRUYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFFakUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FBSyxLQUFLLEtBQUUsT0FBTyxJQUFFLENBQUM7UUFDdkcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FBSyxLQUFLLEtBQUUsS0FBSyxJQUFFLENBQUM7UUFDakcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FBSyxLQUFLLEtBQUUsS0FBSyxJQUFFLENBQUM7UUFDakcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FBSyxLQUFLLEtBQUUsSUFBSSxJQUFFLENBQUM7UUFDOUYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FBSyxLQUFLLEtBQUUsR0FBRyxJQUFFLENBQUMsQ0FBQTtBQUNsRyxDQUFDO0FBN0RMLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGFBQWEsQ0FDNUMsWUFBWSxLQTZEZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVkdWNlciB9IGZyb20gXCJAcmVkdXhqcy90b29sa2l0XCI7XG5pbXBvcnQgKiBhcyBRdWVyeUJ1aWxkZXJBY3Rpb25zIGZyb20gXCIuLi9hY3Rpb25zL3F1ZXJ5LWJ1aWxkZXIuYWN0aW9uc1wiO1xuaW1wb3J0IHsgSVF1ZXJ5QnVpbGRlclN0YXRlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcXVlcnktYnVpbGRlci1zdGF0ZS5pbnRlcmZhY2VcIjtcblxuY29uc3QgaW5pdGlhbFN0YXRlOiBJUXVlcnlCdWlsZGVyU3RhdGUgPSB7XG4gICAgYmFzZVVybDogJycsXG4gICAgZmllbGRzOiB7fSxcbiAgICBmaWx0ZXJzOiB7fSxcbiAgICBpbmNsdWRlczogW10sXG4gICAgbGltaXQ6IDE1LFxuICAgIG1vZGVsOiAnJyxcbiAgICBwYWdlOiAxLFxuICAgIHNvcnQ6IHt9LFxuICAgIHVyaTogJydcbn07XG5cbmV4cG9ydCBjb25zdCBxdWVyeUJ1aWxkZXJSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgICBpbml0aWFsU3RhdGUsXG4gICAgYnVpbGRlciA9PiB7XG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLmFkZEZpZWxkcywgKHN0YXRlLCB7cGF5bG9hZDoge2ZpZWxkc319KSA9PiAoey4uLnN0YXRlLCBmaWVsZHM6IHsuLi5zdGF0ZS5maWVsZHMsIC4uLmZpZWxkc319KSksXG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLmFkZEZpbHRlcnMsIChzdGF0ZSwge3BheWxvYWQ6IHtmaWx0ZXJzfX0pID0+ICh7Li4uc3RhdGUsIGZpbHRlcnM6IHsuLi5zdGF0ZS5maWx0ZXJzLCAuLi5maWx0ZXJzfX0pKSxcbiAgICAgICAgYnVpbGRlci5hZGRDYXNlKFF1ZXJ5QnVpbGRlckFjdGlvbnMuYWRkSW5jbHVkZXMsIChzdGF0ZSwge3BheWxvYWQ6IHtpbmNsdWRlc319KSA9PiAoey4uLnN0YXRlLCBpbmNsdWRlczogWy4uLnN0YXRlLmluY2x1ZGVzLCAuLi5pbmNsdWRlc119KSksXG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLmFkZFNvcnRzLCAoc3RhdGUsIHtwYXlsb2FkOiB7c29ydHN9fSkgPT4gKHsuLi5zdGF0ZSwgc29ydDogey4uLnN0YXRlLnNvcnQsIC4uLnNvcnRzfX0pKSxcbiAgICBcbiAgICAgICAgYnVpbGRlci5hZGRDYXNlKFF1ZXJ5QnVpbGRlckFjdGlvbnMuZGVsZXRlRmllbGRzLCAoc3RhdGUsIHtwYXlsb2FkOiB7ZmllbGRzfX0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGYgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5maWVsZHMpO1xuICAgIFxuICAgICAgICAgICAgT2JqZWN0LmtleXMoZmllbGRzKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgICAgICAgICAgIGlmICggIShrIGluIHN0YXRlLmZpZWxkcykgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgZltrXSA9IHN0YXRlLmZpZWxkc1trXS5maWx0ZXIodiA9PiAhZmllbGRzW2tdLmluY2x1ZGVzKHYpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IGZcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgIFxuICAgICAgICBidWlsZGVyLmFkZENhc2UoUXVlcnlCdWlsZGVyQWN0aW9ucy5kZWxldGVGaWx0ZXJzLCAoc3RhdGUsIHtwYXlsb2FkOiB7ZmlsdGVyc319KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuZmlsdGVycyk7XG4gICAgXG4gICAgICAgICAgICBmaWx0ZXJzLmZvckVhY2goayA9PiBkZWxldGUgZltrXSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogZlxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgXG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLmRlbGV0ZUluY2x1ZGVzLCAoc3RhdGUsIHtwYXlsb2FkOiB7aW5jbHVkZXN9fSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBpbmNsdWRlczogc3RhdGUuaW5jbHVkZXMuZmlsdGVyKHYgPT4gIWluY2x1ZGVzLmluY2x1ZGVzKHYpKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgXG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLmRlbGV0ZVNvcnRzLCAoc3RhdGUsIHtwYXlsb2FkOiB7c29ydHN9fSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNvcnQpO1xuICAgIFxuICAgICAgICAgICAgc29ydHMuZm9yRWFjaCh2ID0+IGRlbGV0ZSBzW3ZdKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBzb3J0OiBzXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICBcbiAgICAgICAgYnVpbGRlci5hZGRDYXNlKFF1ZXJ5QnVpbGRlckFjdGlvbnMucmVzZXQsIHN0YXRlID0+IGluaXRpYWxTdGF0ZSksXG4gICAgXG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLnNldEJhc2VVcmwsIChzdGF0ZSwge3BheWxvYWQ6IHtiYXNlVXJsfX0pID0+ICh7Li4uc3RhdGUsIGJhc2VVcmx9KSksXG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLnNldExpbWl0LCAoc3RhdGUsIHtwYXlsb2FkOiB7bGltaXR9fSkgPT4gKHsuLi5zdGF0ZSwgbGltaXR9KSksXG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLnNldE1vZGVsLCAoc3RhdGUsIHtwYXlsb2FkOiB7bW9kZWx9fSkgPT4gKHsuLi5zdGF0ZSwgbW9kZWx9KSksXG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLnNldFBhZ2UsIChzdGF0ZSwge3BheWxvYWQ6IHtwYWdlfX0pID0+ICh7Li4uc3RhdGUsIHBhZ2V9KSksXG4gICAgICAgIGJ1aWxkZXIuYWRkQ2FzZShRdWVyeUJ1aWxkZXJBY3Rpb25zLnVwZGF0ZVVyaSwgKHN0YXRlLCB7cGF5bG9hZDoge3VyaX19KSA9PiAoey4uLnN0YXRlLCB1cml9KSlcbiAgICB9XG4pOyJdfQ==
@@ -1,18 +0,0 @@
1
- import { Inject, Injectable, Optional } from "@angular/core";
2
- import { PaginatedCollection } from "../models/paginated-collection";
3
- import { ResponseOptions } from "../models/response-options";
4
- export class PaginationService {
5
- constructor(options = {}) {
6
- this._options = new ResponseOptions(options);
7
- }
8
- paginate(response) {
9
- return new PaginatedCollection(response[this._options.data], response[this._options.currentPage], response[this._options.from], response[this._options.to], response[this._options.total], response[this._options.perPage], response[this._options.prevPageUrl], response[this._options.nextPageUrl], response[this._options.lastPage], response[this._options.firstPageUrl], response[this._options.lastPageUrl]);
10
- }
11
- }
12
- PaginationService.decorators = [
13
- { type: Injectable }
14
- ];
15
- PaginationService.ctorParameters = () => [
16
- { type: undefined, decorators: [{ type: Inject, args: ['RESPONSE_OPTIONS',] }, { type: Optional }] }
17
- ];
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1xdWVyeS1idWlsZGVyL3NyYy9saWIvc2VydmljZXMvcGFnaW5hdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFvRCxVQUE2QixFQUFFO1FBQ2pGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLFFBQVEsQ0FBSSxRQUE4QjtRQUMvQyxPQUFPLElBQUksbUJBQW1CLENBQzVCLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQzVCLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUMxQixRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUNuQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FDcEMsQ0FBQztJQUNKLENBQUM7OztZQXRCRixVQUFVOzs7NENBSUksTUFBTSxTQUFDLGtCQUFrQixjQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElQYWdpbmF0aW9uQ29uZmlnIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcGFnaW5hdGlvbi1jb25maWcuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBQYWdpbmF0ZWRDb2xsZWN0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9wYWdpbmF0ZWQtY29sbGVjdGlvblwiO1xuaW1wb3J0IHsgUmVzcG9uc2VPcHRpb25zIH0gZnJvbSBcIi4uL21vZGVscy9yZXNwb25zZS1vcHRpb25zXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgX29wdGlvbnM6IFJlc3BvbnNlT3B0aW9ucztcbiAgXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ1JFU1BPTlNFX09QVElPTlMnKSBAT3B0aW9uYWwoKSBvcHRpb25zOiBJUGFnaW5hdGlvbkNvbmZpZyA9IHt9KSB7XG4gICAgdGhpcy5fb3B0aW9ucyA9IG5ldyBSZXNwb25zZU9wdGlvbnMob3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGU8VD4ocmVzcG9uc2U6IHtba2V5OiBzdHJpbmddOiBhbnl9KTogUGFnaW5hdGVkQ29sbGVjdGlvbjxUPiB7XG4gICAgcmV0dXJuIG5ldyBQYWdpbmF0ZWRDb2xsZWN0aW9uKFxuICAgICAgcmVzcG9uc2VbdGhpcy5fb3B0aW9ucy5kYXRhXSxcbiAgICAgIHJlc3BvbnNlW3RoaXMuX29wdGlvbnMuY3VycmVudFBhZ2VdLFxuICAgICAgcmVzcG9uc2VbdGhpcy5fb3B0aW9ucy5mcm9tXSxcbiAgICAgIHJlc3BvbnNlW3RoaXMuX29wdGlvbnMudG9dLFxuICAgICAgcmVzcG9uc2VbdGhpcy5fb3B0aW9ucy50b3RhbF0sXG4gICAgICByZXNwb25zZVt0aGlzLl9vcHRpb25zLnBlclBhZ2VdLFxuICAgICAgcmVzcG9uc2VbdGhpcy5fb3B0aW9ucy5wcmV2UGFnZVVybF0sXG4gICAgICByZXNwb25zZVt0aGlzLl9vcHRpb25zLm5leHRQYWdlVXJsXSxcbiAgICAgIHJlc3BvbnNlW3RoaXMuX29wdGlvbnMubGFzdFBhZ2VdLFxuICAgICAgcmVzcG9uc2VbdGhpcy5fb3B0aW9ucy5maXJzdFBhZ2VVcmxdLFxuICAgICAgcmVzcG9uc2VbdGhpcy5fb3B0aW9ucy5sYXN0UGFnZVVybF1cbiAgICApO1xuICB9XG59Il19
@@ -1,26 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { combineReducers, createStore } from 'redux';
3
- import { queryBuilderReducer } from '../reducers/query-builder.reducer';
4
- import * as i0 from "@angular/core";
5
- export class StoreService {
6
- constructor() {
7
- this._store = createStore(combineReducers({ nest: queryBuilderReducer }));
8
- }
9
- get state() {
10
- return this._store.getState();
11
- }
12
- dispatch(action) {
13
- this._store.dispatch(action);
14
- }
15
- subscribe(listener) {
16
- this._store.subscribe(listener);
17
- }
18
- }
19
- StoreService.ɵprov = i0.ɵɵdefineInjectable({ factory: function StoreService_Factory() { return new StoreService(); }, token: StoreService, providedIn: "root" });
20
- StoreService.decorators = [
21
- { type: Injectable, args: [{
22
- providedIn: 'root'
23
- },] }
24
- ];
25
- StoreService.ctorParameters = () => [];
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcXVlcnktYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVUsZUFBZSxFQUFFLFdBQVcsRUFBUyxNQUFNLE9BQU8sQ0FBQztBQUVwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFLeEUsTUFBTSxPQUFPLFlBQVk7SUFJdkI7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sUUFBUSxDQUFDLE1BQWM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLFNBQVMsQ0FBQyxRQUFvQjtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7O1lBckJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgY29tYmluZVJlZHVjZXJzLCBjcmVhdGVTdG9yZSwgU3RvcmUgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBJTmVzdFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9uZXN0LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBxdWVyeUJ1aWxkZXJSZWR1Y2VyIH0gZnJvbSAnLi4vcmVkdWNlcnMvcXVlcnktYnVpbGRlci5yZWR1Y2VyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVTZXJ2aWNlIHtcblxuICBwcml2YXRlIF9zdG9yZTogU3RvcmU8SU5lc3RTdGF0ZT47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fc3RvcmUgPSBjcmVhdGVTdG9yZShjb21iaW5lUmVkdWNlcnMoe25lc3Q6IHF1ZXJ5QnVpbGRlclJlZHVjZXJ9KSk7XG4gIH1cblxuICBnZXQgc3RhdGUoKTogSU5lc3RTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmdldFN0YXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChhY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZShsaXN0ZW5lcjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuX3N0b3JlLnN1YnNjcmliZShsaXN0ZW5lcik7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- export { StoreService as ɵa } from './lib/services/store.service';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcXViZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXF1ZXJ5LWJ1aWxkZXIvc3JjL25nLXF1YmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFJN0IsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtJUGFnaW5hdGlvbkNvbmZpZyBhcyDJtWN9IGZyb20gJy4vbGliL2ludGVyZmFjZXMvcGFnaW5hdGlvbi1jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCB7SVF1ZXJ5QnVpbGRlckNvbmZpZyBhcyDJtWJ9IGZyb20gJy4vbGliL2ludGVyZmFjZXMvcXVlcnktYnVpbGRlci1jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCB7U3RvcmVTZXJ2aWNlIGFzIMm1YX0gZnJvbSAnLi9saWIvc2VydmljZXMvc3RvcmUuc2VydmljZSc7Il19
@@ -1,8 +0,0 @@
1
- /*
2
- * Public API Surface of angular-query-builder
3
- */
4
- export * from './lib/ng-qubee.service';
5
- export * from './lib/ng-qubee.module';
6
- export * from './lib/models/paginated-collection';
7
- export * from './lib/services/pagination.service';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcXVlcnktYnVpbGRlci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFuZ3VsYXItcXVlcnktYnVpbGRlclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLXF1YmVlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctcXViZWUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wYWdpbmF0ZWQtY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wYWdpbmF0aW9uLnNlcnZpY2UnO1xuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"ng-qubee.js","sources":["../../../projects/angular-query-builder/src/lib/models/query-builder-options.ts","../../../projects/angular-query-builder/src/lib/errors/unselectable-model.error.ts","../../../projects/angular-query-builder/src/lib/enums/sort.enum.ts","../../../projects/angular-query-builder/src/lib/actions/query-builder.actions.ts","../../../projects/angular-query-builder/src/lib/reducers/query-builder.reducer.ts","../../../projects/angular-query-builder/src/lib/services/store.service.ts","../../../projects/angular-query-builder/src/lib/ng-qubee.service.ts","../../../projects/angular-query-builder/src/lib/errors/key-not-found.error.ts","../../../projects/angular-query-builder/src/lib/models/paginated-collection.ts","../../../projects/angular-query-builder/src/lib/models/response-options.ts","../../../projects/angular-query-builder/src/lib/services/pagination.service.ts","../../../projects/angular-query-builder/src/lib/ng-qubee.module.ts","../../../projects/angular-query-builder/src/public-api.ts","../../../projects/angular-query-builder/src/ng-qubee.ts"],"sourcesContent":["import { IQueryBuilderConfig } from '../interfaces/query-builder-config.interface';\n\nexport class QueryBuilderOptions {\n public readonly appends: string;\n public readonly fields: string;\n public readonly filters: string;\n public readonly includes: string;\n public readonly limit: string;\n public readonly page: string;\n public readonly sort: string;\n\n constructor(options: IQueryBuilderConfig) {\n this.appends = options.appends || 'append';\n this.fields = options.fields || 'fields';\n this.filters = options.filters || 'filter';\n this.includes = options.includes || 'include';\n this.limit = options.limit || 'limit';\n this.page = options.page || 'page';\n this.sort = options.sort || 'sort';\n }\n}","export class UnselectableModelError extends Error {\n constructor(model: string) {\n super(`Unselectable Model: the selected model (${model}) is not present neither in the \"model\" property, nor in the includes object.`);\n }\n}","export enum SortEnum {\n ASC = 'asc',\n DESC = 'desc'\n}","\n// Interfaces\nimport { createAction } from \"@reduxjs/toolkit\";\nimport { IFields } from \"../interfaces/fields.interface\";\nimport { IFilters } from \"../interfaces/filters.interface\";\nimport { ISort } from \"../interfaces/sort.interface\";\n\nexport const addFields = createAction<{fields: IFields}>('[Query Buillder] Add Fields');\n\nexport const addFilters = createAction<{filters: IFilters}>('[Query Buillder] Add Filters');\n\nexport const addIncludes = createAction<{includes: string[]}>('[Query Buillder] Add Includes');\n\nexport const addSorts = createAction<{sorts: ISort}>('[Query Buillder] Add Sorts');\n\nexport const deleteFields = createAction<{fields: string[]}>('[Query Buillder] Delete Fields');\n\nexport const deleteFilters = createAction<{filters: string[]}>('[Query Buillder] Delete Filters');\n\nexport const deleteIncludes = createAction<{includes: string[]}>('[Query Buillder] Delete Includes');\n\nexport const deleteSorts = createAction<{sorts: string[]}>('[Query Buillder] Delete Sorts');\n\nexport const reset = createAction('[Query Builder] Reset');\n\nexport const setBaseUrl = createAction<{baseUrl: string}>('[Query Buillder] Set Base URL');\n\nexport const setLimit = createAction<{limit: number}>('[Query Buillder] Set Limit');\n\nexport const setModel = createAction<{model: string}>('[Query Builder] Set Model');\n\nexport const setPage = createAction<{page: number}>('[Query Builder] Set Page');\n\nexport const updateUri = createAction<{uri: string}>('[Query Builder] Update URI');","import { createReducer } from \"@reduxjs/toolkit\";\nimport * as QueryBuilderActions from \"../actions/query-builder.actions\";\nimport { IQueryBuilderState } from \"../interfaces/query-builder-state.interface\";\n\nconst initialState: IQueryBuilderState = {\n baseUrl: '',\n fields: {},\n filters: {},\n includes: [],\n limit: 15,\n model: '',\n page: 1,\n sort: {},\n uri: ''\n};\n\nexport const queryBuilderReducer = createReducer(\n initialState,\n builder => {\n builder.addCase(QueryBuilderActions.addFields, (state, {payload: {fields}}) => ({...state, fields: {...state.fields, ...fields}})),\n builder.addCase(QueryBuilderActions.addFilters, (state, {payload: {filters}}) => ({...state, filters: {...state.filters, ...filters}})),\n builder.addCase(QueryBuilderActions.addIncludes, (state, {payload: {includes}}) => ({...state, includes: [...state.includes, ...includes]})),\n builder.addCase(QueryBuilderActions.addSorts, (state, {payload: {sorts}}) => ({...state, sort: {...state.sort, ...sorts}})),\n \n builder.addCase(QueryBuilderActions.deleteFields, (state, {payload: {fields}}) => {\n const f = Object.assign({}, state.fields);\n \n Object.keys(fields).forEach(k => {\n if ( !(k in state.fields) ) {\n return;\n }\n \n f[k] = state.fields[k].filter(v => !fields[k].includes(v));\n });\n \n return {\n ...state,\n fields: f\n };\n }),\n \n builder.addCase(QueryBuilderActions.deleteFilters, (state, {payload: {filters}}) => {\n const f = Object.assign({}, state.filters);\n \n filters.forEach(k => delete f[k]);\n \n return {\n ...state,\n filters: f\n };\n }),\n \n builder.addCase(QueryBuilderActions.deleteIncludes, (state, {payload: {includes}}) => {\n return {\n ...state,\n includes: state.includes.filter(v => !includes.includes(v))\n };\n }),\n \n builder.addCase(QueryBuilderActions.deleteSorts, (state, {payload: {sorts}}) => {\n const s = Object.assign({}, state.sort);\n \n sorts.forEach(v => delete s[v]);\n \n return {\n ...state,\n sort: s\n };\n }),\n \n builder.addCase(QueryBuilderActions.reset, state => initialState),\n \n builder.addCase(QueryBuilderActions.setBaseUrl, (state, {payload: {baseUrl}}) => ({...state, baseUrl})),\n builder.addCase(QueryBuilderActions.setLimit, (state, {payload: {limit}}) => ({...state, limit})),\n builder.addCase(QueryBuilderActions.setModel, (state, {payload: {model}}) => ({...state, model})),\n builder.addCase(QueryBuilderActions.setPage, (state, {payload: {page}}) => ({...state, page})),\n builder.addCase(QueryBuilderActions.updateUri, (state, {payload: {uri}}) => ({...state, uri}))\n }\n);","import { Injectable } from '@angular/core';\nimport { Action, combineReducers, createStore, Store } from 'redux';\nimport { INestState } from '../interfaces/nest-state.interface';\nimport { queryBuilderReducer } from '../reducers/query-builder.reducer';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StoreService {\n\n private _store: Store<INestState>;\n\n constructor() {\n this._store = createStore(combineReducers({nest: queryBuilderReducer}));\n }\n\n get state(): INestState {\n return this._store.getState();\n }\n\n public dispatch(action: Action): void {\n this._store.dispatch(action);\n }\n\n public subscribe(listener: () => void) {\n this._store.subscribe(listener);\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { IQueryBuilderConfig } from './interfaces/query-builder-config.interface';\nimport * as qs from 'qs';\nimport { QueryBuilderOptions } from './models/query-builder-options';\nimport { UnselectableModelError } from './errors/unselectable-model.error';\nimport { SortEnum } from './enums/sort.enum';\nimport * as qbActions from './actions/query-builder.actions';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { IQueryBuilderState } from './interfaces/query-builder-state.interface';\nimport { StoreService } from './services/store.service';\n\n@Injectable()\nexport class NgQubeeService {\n\n private _options: QueryBuilderOptions;\n\n /**\n * This property serves as an accumulator for holding the composed string with each query param\n */\n private _uri = '';\n\n private _uri$: BehaviorSubject<string> = new BehaviorSubject('');\n\n public uri$: Observable<string> = this._uri$.asObservable().pipe(\n filter(uri => !!uri)\n );\n\n constructor(private _store: StoreService, @Inject('QUERY_PARAMS_CONFIG') @Optional() options: IQueryBuilderConfig = {}) {\n this._options = new QueryBuilderOptions(options);\n this._store.subscribe(() => {\n this._uri$.next(this._store.state.nest.uri);\n })\n }\n\n private _parseFields(s: IQueryBuilderState): string {\n if (!Object.keys(s.fields).length) {\n return this._uri;\n }\n\n if (!s.model) {\n throw new Error('While selecting fields, the -> model <- is required');\n }\n\n if ( !(s.model in s.fields) ) {\n throw new Error(`Key ${s.model} is missing in the fields object`);\n }\n\n const f = {};\n\n for (const k in s.fields) {\n if (s.fields.hasOwnProperty(k)) {\n // Check if the key is the model or is declared in \"includes\".\n // If not, it means that has not been selected anywhere and that will cause an error on the API\n if (k !== s.model && !s.includes.includes(k)) {\n throw new UnselectableModelError(k);\n }\n\n Object.assign(f, {[`${this._options.fields}[${k}]`]: s.fields[k].join(',')});\n }\n }\n\n const param = `${this._prepend(s.model)}${qs.stringify(f, {encode: false})}`;\n this._uri += param;\n\n return param;\n }\n\n private _parseFilters(s: IQueryBuilderState): string {\n const keys = Object.keys(s.filters);\n\n if (!keys.length) {\n return this._uri;\n }\n\n const f = { \n [this._options.filters]: keys.reduce((acc, key) => {\n return Object.assign(acc, {[key]: s.filters[key].join(',')});\n }, {})\n };\n const param = `${this._prepend(s.model)}${qs.stringify(f, {encode: false})}`;\n this._uri += param;\n\n return param;\n }\n\n private _parseIncludes(s: IQueryBuilderState): string {\n if (!s.includes.length) {\n return this._uri;\n }\n\n const param = `${this._prepend(s.model)}${this._options.includes}=${s.includes}`;\n this._uri += param;\n\n return param;\n }\n\n private _parseLimit(s: IQueryBuilderState): string {\n const param = `${this._prepend(s.model)}${this._options.limit}=${s.limit}`;\n this._uri += param;\n\n return param;\n }\n\n private _parsePage(s: IQueryBuilderState): string {\n const param = `${this._prepend(s.model)}${this._options.page}=${s.page}`;\n this._uri += param;\n\n return param;\n }\n\n private _parseSort(s: IQueryBuilderState): string {\n let param: string = '';\n const fields = Object.keys(s.sort);\n\n if (!fields.length) {\n return param;\n }\n\n param = `${this._prepend(s.model)}${this._options.sort}=`;\n\n fields.forEach((field, idx) => {\n param += `${s.sort[field] === SortEnum.DESC ? '-' : ''}${field}`;\n\n if (idx < fields.length - 1) {\n param += ','\n }\n });\n\n this._uri += param;\n\n return param;\n }\n\n private _parse(s: IQueryBuilderState): void {\n if (!s.model) {\n throw new Error('Set the model property BEFORE adding filters or calling the url() / get() methods');\n }\n\n this._parseIncludes(s);\n this._parseFields(s);\n this._parseFilters(s);\n this._parseLimit(s);\n this._parsePage(s);\n this._parseSort(s);\n\n this._store.dispatch(qbActions.updateUri({uri: this._uri}));\n }\n\n private _prepend(model: string): string {\n return this._uri ? '&' : `/${model}?`;\n }\n\n /**\n * Add fields to the select statement for the given model\n * \n * @param model Model that holds the fields\n * @param fields Fields to select\n * @returns {this}\n */\n public addFields(model: string, fields: string[]): this {\n if (!fields.length) {\n return this;\n }\n\n this._store.dispatch(qbActions.addFields({\n fields: {\n [model]: fields\n }\n }));\n \n return this;\n }\n\n /**\n * Add a filter with the given value(s)\n * I.e. filter[field]=1 or filter[field]=1,2,3\n * \n * @param {string} field Name of the field to filter\n * @param {string[]} value The needle(s)\n * @returns {this}\n */\n public addFilter(field: string, ...values: (string | number | boolean)[]): this {\n if (!values.length) {\n return this;\n }\n\n this._store.dispatch(qbActions.addFilters({\n filters: {\n [field]: values\n }\n }));\n\n return this;\n }\n\n /**\n * Add related entities to include in the request\n * \n * @param {string[]} models \n * @returns \n */\n public addIncludes(...models: string[]): this {\n if (!models) {\n return this;\n }\n\n this._store.dispatch(qbActions.addIncludes({\n includes: models\n }));\n\n return this;\n }\n\n /**\n * Add a field with a sort criteria\n * \n * @param field Field to use for sorting\n * @param {SortEnum} value A value from the SortEnum enumeration\n * @returns {this}\n */\n public addSort(field: string, value: SortEnum): this {\n this._store.dispatch(qbActions.addSorts({\n sorts: {\n [field]: value\n }\n }));\n\n return this;\n }\n\n /**\n * Delete selected fields for the given model in the current query builder state\n * \n * @param model Model that holds the fields\n * @param {string[]} fields Fields to delete from the state\n * @returns {this}\n */\n public deleteFields(model: string, ...fields: string[]): this {\n if (!fields.length) {\n return this;\n }\n\n this._store.dispatch(qbActions.deleteFields({fields}));\n return this;\n }\n\n /**\n * Remove given filters from the query builder state\n * \n * @param {string[]} filters Filters to remove\n * @returns {this}\n */\n public deleteFilters(...filters: string[]): this {\n if (!filters.length) {\n return this;\n }\n\n this._store.dispatch(qbActions.deleteFilters({filters}));\n return this;\n }\n\n /**\n * Remove selected related models from the query builder state\n * \n * @param {string[]} includes Models to remove\n * @returns \n */\n public deleteIncludes(...includes: string[]): this {\n if (!includes.length) {\n return this;\n }\n\n this._store.dispatch(qbActions.deleteIncludes({includes}));\n return this;\n }\n\n /**\n * Remove sorts rules from the query builder state\n * \n * @param sorts Fields used for sorting to remove\n * @returns {this}\n */\n public deleteSorts(...sorts: string[]): this {\n this._store.dispatch(qbActions.deleteSorts({sorts}));\n return this;\n }\n\n /**\n * Generate an URI accordingly to the given data\n *\n * @returns {Observable<string>} An observable that emits the generated uri\n */\n public generateUri(): Observable<string> {\n // Cleanup the previously generated URI\n this._uri = '';\n this._parse(this._store.state.nest);\n\n return this.uri$;\n }\n\n /**\n * Clear the current state and reset the Query Builder to a fresh, clean condition\n * \n * @returns {this}\n */\n public reset(): this {\n this._store.dispatch(qbActions.reset());\n return this;\n }\n\n /**\n * Set the base url to use for composing the address\n * \n * @param {string} baseUrl \n * @returns {this}\n */\n public setBaseUrl(baseUrl: string): this {\n this._store.dispatch(qbActions.setBaseUrl({baseUrl}));\n return this;\n }\n\n /**\n * Set the items per page number\n * \n * @param limit \n * @returns {this}\n */\n public setLimit(limit: number): this {\n this._store.dispatch(qbActions.setLimit({limit}));\n return this;\n }\n\n /**\n * Set the model to use for running the query against\n * - I.e. the model \"users\" will return /users\n * \n * @param {string} model Model name\n * @returns {this}\n */\n public setModel(model: string): this {\n this._store.dispatch(qbActions.setModel({model}));\n return this;\n }\n\n /**\n * Set the page that the backend will use to paginate the result set\n * \n * @param page Page param\n * @returns {this}\n */\n public setPage(page: number): this {\n this._store.dispatch(qbActions.setPage({page}));\n return this;\n }\n}\n","export class KeyNotFoundError extends Error {\n constructor(key: string) {\n super(`Cannot find the key ${key} inside the collection item: does it really exists?`);\n }\n}","import { KeyNotFoundError } from \"../errors/key-not-found.error\";\n\nexport class PaginatedCollection<T> {\n constructor(\n public data: T[],\n public readonly page: number,\n public readonly from?: number,\n public readonly to?: number,\n public readonly total?: number,\n public readonly perPage?: number,\n public readonly prevPageUrl?: string,\n public readonly nextPageUrl?: string,\n public readonly lastPage?: number,\n public readonly firstPageUrl?: string,\n public readonly lastPageUrl?: string\n ) {\n //\n }\n\n /**\n * Normalize the collection to a paginated list of ids for state-managed applciations.\n * \n * This method returns a single key object, where the key is the page number and the associated value is\n * an array of ids. Each id is fetched by the collection items, looking up for the \"id\" key. If an id is supplied\n * to this method, it will be used instead of the default \"id\" key.\n * \n * Please note that in case the key doesn't exist in the collection's item, the array will be empty\n * \n * @param k A key to use instead of the default \"id\": this will be searched inside each element of the collection\n */\n public normalize(id?: string) {\n return {\n [this.page]: this.data.reduce((ids: any[], value: {[k: string]: any}) => {\n if (id && value[id]) {\n ids.push(value[id]);\n } else if (value.hasOwnProperty('id')) {\n ids.push(value['id']);\n } else {\n throw new KeyNotFoundError(id || 'id');\n }\n\n return ids;\n }, [])\n }\n }\n}","import { IPaginationConfig } from '../interfaces/pagination-config.interface';\nimport { IQueryBuilderConfig } from '../interfaces/query-builder-config.interface';\n\nexport class ResponseOptions {\n public readonly currentPage: string;\n public readonly data: string;\n public readonly firstPageUrl: string;\n public readonly from: string;\n public readonly lastPage: string;\n public readonly lastPageUrl: string;\n public readonly nextPageUrl: string;\n public readonly path: string;\n public readonly perPage: string;\n public readonly prevPageUrl: string;\n public readonly to: string;\n public readonly total: string;\n\n constructor(options: IPaginationConfig) {\n this.currentPage = options.currentPage || 'current_page';\n this.data = options.data || 'data';\n this.firstPageUrl = options.firstPageUrl || 'first_page_url';\n this.from = options.from || 'from';\n this.lastPage = options.lastPage || 'last_page';\n this.lastPageUrl = options.lastPageUrl || 'last_page_url';\n this.nextPageUrl = options.nextPageUrl || 'next_page_url';\n this.path = options.path || 'path';\n this.perPage = options.perPage || 'per_page';\n this.prevPageUrl = options.prevPageUrl || 'prev_page_url';\n this.to = options.to || 'to';\n this.total = options.total || 'total';\n }\n}","import { Inject, Injectable, Optional } from \"@angular/core\";\nimport { IPaginationConfig } from \"../interfaces/pagination-config.interface\";\nimport { PaginatedCollection } from \"../models/paginated-collection\";\nimport { ResponseOptions } from \"../models/response-options\";\n\n@Injectable()\nexport class PaginationService {\n private _options: ResponseOptions;\n \n constructor(@Inject('RESPONSE_OPTIONS') @Optional() options: IPaginationConfig = {}) {\n this._options = new ResponseOptions(options);\n }\n\n public paginate<T>(response: {[key: string]: any}): PaginatedCollection<T> {\n return new PaginatedCollection(\n response[this._options.data],\n response[this._options.currentPage],\n response[this._options.from],\n response[this._options.to],\n response[this._options.total],\n response[this._options.perPage],\n response[this._options.prevPageUrl],\n response[this._options.nextPageUrl],\n response[this._options.lastPage],\n response[this._options.firstPageUrl],\n response[this._options.lastPageUrl]\n );\n }\n}","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgQubeeService } from './ng-qubee.service';\nimport { IConfig } from './interfaces/config.interface';\nimport { IPaginationConfig } from './interfaces/pagination-config.interface';\nimport { PaginationService } from './services/pagination.service';\nimport { StoreService } from './services/store.service';\n\n// @dynamic\n@NgModule({\n providers: [{\n deps: [StoreService],\n provide: NgQubeeService,\n useFactory: (store: StoreService) => new NgQubeeService(store, {})\n }]\n})\nexport class NgQubeeModule {\n private static _config: IConfig = {};\n\n public static forRoot(config: IConfig = {}): ModuleWithProviders<NgQubeeModule> {\n return {\n ngModule: NgQubeeModule,\n providers: [{\n deps: [StoreService],\n provide: NgQubeeService,\n useFactory: (store: StoreService) =>\n new NgQubeeService(store, Object.assign({}, this._config.request, config.request))\n }, {\n provide: PaginationService,\n useFactory: () =>\n new PaginationService(Object.assign({}, this._config.response, config.response))\n }]\n };\n }\n}\n","/*\n * Public API Surface of angular-query-builder\n */\n\nexport * from './lib/ng-qubee.service';\nexport * from './lib/ng-qubee.module';\nexport * from './lib/models/paginated-collection';\nexport * from './lib/services/pagination.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {IPaginationConfig as ɵc} from './lib/interfaces/pagination-config.interface';\nexport {IQueryBuilderConfig as ɵb} from './lib/interfaces/query-builder-config.interface';\nexport {StoreService as ɵa} from './lib/services/store.service';"],"names":["QueryBuilderActions.addFields","QueryBuilderActions.addFilters","QueryBuilderActions.addIncludes","QueryBuilderActions.addSorts","QueryBuilderActions.deleteFields","QueryBuilderActions.deleteFilters","QueryBuilderActions.deleteIncludes","QueryBuilderActions.deleteSorts","QueryBuilderActions.reset","QueryBuilderActions.setBaseUrl","QueryBuilderActions.setLimit","QueryBuilderActions.setModel","QueryBuilderActions.setPage","QueryBuilderActions.updateUri","qs.stringify","qbActions.updateUri","qbActions.addFields","qbActions.addFilters","qbActions.addIncludes","qbActions.addSorts","qbActions.deleteFields","qbActions.deleteFilters","qbActions.deleteIncludes","qbActions.deleteSorts","qbActions.reset","qbActions.setBaseUrl","qbActions.setLimit","qbActions.setModel","qbActions.setPage"],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- import { IFields } from "../interfaces/fields.interface";
2
- import { IFilters } from "../interfaces/filters.interface";
3
- import { ISort } from "../interfaces/sort.interface";
4
- export declare const addFields: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
5
- fields: IFields;
6
- }, string>;
7
- export declare const addFilters: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
8
- filters: IFilters;
9
- }, string>;
10
- export declare const addIncludes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
11
- includes: string[];
12
- }, string>;
13
- export declare const addSorts: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
14
- sorts: ISort;
15
- }, string>;
16
- export declare const deleteFields: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
17
- fields: string[];
18
- }, string>;
19
- export declare const deleteFilters: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
20
- filters: string[];
21
- }, string>;
22
- export declare const deleteIncludes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
23
- includes: string[];
24
- }, string>;
25
- export declare const deleteSorts: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
26
- sorts: string[];
27
- }, string>;
28
- export declare const reset: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"[Query Builder] Reset">;
29
- export declare const setBaseUrl: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
30
- baseUrl: string;
31
- }, string>;
32
- export declare const setLimit: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
33
- limit: number;
34
- }, string>;
35
- export declare const setModel: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
36
- model: string;
37
- }, string>;
38
- export declare const setPage: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
39
- page: number;
40
- }, string>;
41
- export declare const updateUri: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
42
- uri: string;
43
- }, string>;
@@ -1,4 +0,0 @@
1
- import { IQueryBuilderState } from "./query-builder-state.interface";
2
- export interface INestState {
3
- nest: IQueryBuilderState;
4
- }
@@ -1,2 +0,0 @@
1
- import { IQueryBuilderState } from "../interfaces/query-builder-state.interface";
2
- export declare const queryBuilderReducer: import("redux").Reducer<IQueryBuilderState, import("redux").AnyAction>;