@bravobit/bb-foundation 0.15.1 → 0.15.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.
- package/bundles/bravobit-bb-foundation-collections.umd.js +20 -3
- package/bundles/bravobit-bb-foundation-collections.umd.js.map +1 -1
- package/collections/lib/collection.d.ts +3 -0
- package/esm2015/collections/lib/collection.js +20 -4
- package/fesm2015/bravobit-bb-foundation-collections.js +19 -3
- package/fesm2015/bravobit-bb-foundation-collections.js.map +1 -1
- package/package.json +1 -1
|
@@ -689,8 +689,8 @@
|
|
|
689
689
|
this.raw$ = new rxjs.BehaviorSubject(null);
|
|
690
690
|
this.loading$ = new rxjs.BehaviorSubject(true);
|
|
691
691
|
// State.
|
|
692
|
+
this._formatter = null;
|
|
692
693
|
this._refresh$ = new rxjs.BehaviorSubject(0);
|
|
693
|
-
// Cache.
|
|
694
694
|
this._requestCache = null;
|
|
695
695
|
this.controlToObservable = function (control) {
|
|
696
696
|
return control.valueChanges.pipe(operators.distinctUntilChanged(), operators.startWith(control === null || control === void 0 ? void 0 : control.value));
|
|
@@ -705,21 +705,38 @@
|
|
|
705
705
|
Collection.prototype.refresh = function () {
|
|
706
706
|
this._refresh$.next(0);
|
|
707
707
|
};
|
|
708
|
+
Collection.prototype.setFormatter = function (callback) {
|
|
709
|
+
this._formatter = callback;
|
|
710
|
+
return this;
|
|
711
|
+
};
|
|
708
712
|
Collection.prototype.getData = function () {
|
|
709
713
|
var _this = this;
|
|
710
714
|
var data$ = this.request.pipe(operators.tap(function () { return _this.loading$.next(true); }), operators.map(function (request) { return _this.validateRequest(request); }), operators.switchMap(function (request) {
|
|
711
715
|
return _this._provider.transform(request).pipe(operators.tap(function (response) { return _this.cacheCollectionData(response); }), operators.map(function (response) { return ({ response: response, request: request, initial: false }); }), operators.catchError(function (error) { return rxjs.of({
|
|
712
716
|
error: error,
|
|
713
717
|
request: request,
|
|
718
|
+
response: null,
|
|
714
719
|
initial: false
|
|
715
720
|
}); }));
|
|
716
|
-
}), operators.startWith({ initial: true }));
|
|
721
|
+
}), operators.startWith({ initial: true, response: null }));
|
|
717
722
|
return rxjs.combineLatest([data$, this.loading$.asObservable()]).pipe(operators.map(function (_f) {
|
|
718
723
|
var _g = __read(_f, 2), data = _g[0], loading = _g[1];
|
|
719
724
|
var combined = Object.assign(Object.assign({}, data), { loading: loading });
|
|
720
|
-
return Object.assign(Object.assign({}, combined), { state: _this.getState(combined) });
|
|
725
|
+
return Object.assign(Object.assign({}, combined), { response: _this.formatResponse(data === null || data === void 0 ? void 0 : data.response), state: _this.getState(combined) });
|
|
721
726
|
}));
|
|
722
727
|
};
|
|
728
|
+
Collection.prototype.formatResponse = function (response) {
|
|
729
|
+
var _this = this;
|
|
730
|
+
var _a;
|
|
731
|
+
if (!response) {
|
|
732
|
+
return response;
|
|
733
|
+
}
|
|
734
|
+
var data = ((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : []).map(function (item) {
|
|
735
|
+
var _a;
|
|
736
|
+
return !!_this._formatter ? (_a = _this._formatter) === null || _a === void 0 ? void 0 : _a.call(_this, item) : item;
|
|
737
|
+
});
|
|
738
|
+
return Object.assign(Object.assign({}, response), { data: data });
|
|
739
|
+
};
|
|
723
740
|
Collection.prototype.validateRequest = function (request) {
|
|
724
741
|
var _a, _b, _c, _d;
|
|
725
742
|
// We should reset the page number whenever we change the query or the page size.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravobit-bb-foundation-collections.umd.js","sources":["../../../projects/bb-foundation/collections/src/lib/providers/collection.provider.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/bb-foundation/collections/src/lib/providers/api-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/local-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/components/collections.directive.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.html","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.html","../../../projects/bb-foundation/collections/src/lib/collection.ts","../../../projects/bb-foundation/collections/src/lib/collections.module.ts","../../../projects/bb-foundation/collections/src/bravobit-bb-foundation-collections.ts"],"sourcesContent":["import {CollectionData, CollectionRequest} from '../interfaces/collection.interface';\nimport {Observable} from 'rxjs';\n\nexport abstract class CollectionProvider<T> {\n\n abstract transform(request: CollectionRequest): Observable<CollectionData<T>>;\n\n protected formatArrayToCollectionData(items: T[]) {\n const count = items?.length ?? 1;\n return <CollectionData<T>>{\n pageSize: count,\n totalEntries: count,\n pageNumber: 1,\n totalPages: 1,\n data: items\n };\n }\n\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {CollectionApiResponse, CollectionData, CollectionRequest} from '../interfaces/collection.interface';\nimport {combineLatest, isObservable, Observable, of} from 'rxjs';\nimport {CollectionProvider} from './collection.provider';\nimport {HttpClient} from '@angular/common/http';\nimport {map, switchMap} from 'rxjs/operators';\n\nexport class ApiCollectionProvider<T> extends CollectionProvider<T> {\n\n // State.\n private _extraParams: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> } = {};\n\n constructor(private readonly _endpoint: string | Observable<string>,\n private readonly _httpClient: HttpClient) {\n super();\n }\n\n append(name: string, value: string | number | boolean | ReadonlyArray<string | number | boolean> | Observable<string | number | boolean | ReadonlyArray<string | number | boolean>>) {\n this._extraParams[name] = isObservable(value) ? value : of(value);\n return this;\n }\n\n transform(request: CollectionRequest) {\n const endpoint$ = isObservable(this._endpoint) ? this._endpoint : of(this._endpoint);\n const params = this.getBackendFormat(request);\n const extraParams$ = this.getExtraParams(this._extraParams);\n\n return combineLatest([endpoint$, extraParams$]).pipe(\n switchMap(([endpoint, extraParams]) => {\n return this._httpClient.get<CollectionApiResponse<T> | T[]>(endpoint, {\n params: {...params, ...extraParams}\n });\n }),\n map(response => this.formatToCollectionData(response))\n );\n }\n\n private getExtraParams(params: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> }) {\n const keys = Object.keys(params ?? {});\n if (keys.length <= 0) {\n return of({});\n }\n\n const observables$ = keys.map(key => params?.[key]);\n return combineLatest(observables$).pipe(\n map(data => {\n return data.reduce((previous, current, index) => {\n const key = keys?.[index];\n return {...previous, [key]: current};\n }, {});\n })\n );\n }\n\n private formatToCollectionData(response: CollectionApiResponse<T> | T[]) {\n if (Array.isArray(response)) {\n return this.formatArrayToCollectionData(response);\n }\n\n return <CollectionData<T>>{\n pageSize: response?.['page_size'] as number,\n pageNumber: response?.['page_number'] as number,\n totalPages: response?.['total_pages'] as number,\n totalEntries: response?.['total_entries'] as number,\n data: response?.['data'] as T[]\n };\n }\n\n private getBackendFormat = (request: CollectionRequest) => {\n const params = {};\n\n params['page'] = request?.pageNumber ?? 1;\n params['page_size'] = request?.pageSize ?? 25;\n\n if (request?.sort) {\n const sort = Array.isArray(request?.sort) ? request?.sort : [request?.sort];\n const filteredSort = sort?.filter(item => !!item?.name && !!item?.direction);\n\n params['sort'] = filteredSort?.map(item => item?.name)?.join(',');\n params['sort_direction'] = filteredSort?.map(item => item?.direction)?.join(',');\n }\n\n if (request?.query && request?.query?.length > 0 && request?.queryFields && request?.queryFields?.length > 0) {\n params['query'] = request?.query;\n params['query_fields'] = request?.queryFields?.join(',');\n }\n\n return params;\n };\n\n}\n","import {CollectionRequest} from '../interfaces/collection.interface';\nimport {CollectionProvider} from './collection.provider';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport class LocalCollectionProvider<T> extends CollectionProvider<T> {\n\n constructor(private readonly _items: T[] | Observable<T[]>) {\n super();\n }\n\n transform(request: CollectionRequest) {\n const items$ = Array.isArray(this._items)\n ? of(this._items)\n : this._items;\n\n return items$.pipe(\n map(items => this.formatArrayToCollectionData(items))\n );\n }\n\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[bbCollectionsData]'\n})\nexport class BbCollectionsData<T> {\n}\n\n@Directive({\n selector: '[bbCollectionsEmpty]'\n})\nexport class BbCollectionsEmpty {\n}\n\n@Directive({\n selector: '[bbCollectionsError]'\n})\nexport class BbCollectionsError {\n}\n\n@Directive({\n selector: '[bbCollectionsInitial]'\n})\nexport class BbCollectionsInitial {\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n} from '../collections.directive';\nimport {Collection} from '../../collection';\n\n@Component({\n selector: '[bb-collections-viewer]',\n templateUrl: './collections-viewer.component.html',\n styleUrls: ['./collections-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-collections-viewer'},\n preserveWhitespaces: false\n})\nexport class BbCollectionsViewer<T = unknown> {\n\n // Content.\n @ContentChild(BbCollectionsData, {read: TemplateRef, static: false}) dataTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsEmpty, {read: TemplateRef, static: false}) emptyTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsError, {read: TemplateRef, static: false}) errorTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsInitial, {read: TemplateRef, static: false}) initialTemplate?: TemplateRef<any>;\n\n // Inputs.\n @Input() collection: Collection<T> | null = null;\n\n}\n","<ng-container *ngIf=\"collection?.data$ | async as data\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'initial'\">\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'error'\">\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\n </ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {CollectionData} from '../../interfaces/collection.interface';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\nimport {Collection} from '../../collection';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'bb-collections-pager',\n templateUrl: './collections-pager.component.html',\n styleUrls: ['./collections-pager.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-collections-pager'},\n preserveWhitespaces: false\n})\nexport class BbCollectionsPager implements OnInit, OnDestroy {\n\n // Readonly data.\n readonly maxAmountOfButtons: number = 5;\n\n // Inputs.\n @Input()\n set label(value: string) {\n this._label = value;\n this.cache$.next(this.cache$.getValue());\n }\n\n @Input()\n set collection(collection: Collection<unknown> | null) {\n this._collection = collection;\n this.observeCollectionChanges();\n }\n\n // Data.\n data$: Observable<{\n totalPages: number,\n pageNumber: number,\n pages: { page: number, active: boolean }[],\n allowNext: boolean\n allowPrevious: boolean,\n label: string\n }>;\n cache$ = new BehaviorSubject<Partial<CollectionData<unknown>>>({});\n\n // State and subscriptions.\n private _label: string | null = null;\n private _collection: Collection<unknown> | null = null;\n private _subscription: Subscription | null = null;\n\n ngOnInit() {\n this.data$ = this.cache$.pipe(\n map(cache => {\n const pageSize = cache?.pageSize ?? 1;\n const pageNumber = cache?.pageNumber ?? 1;\n\n const totalPages = cache?.totalPages ?? 1;\n const totalEntries = cache?.totalEntries ?? 0;\n const fromStart = Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries);\n const fromEnd = Math.min((fromStart - 1) + pageSize, totalEntries);\n\n const pages = this.filterActivePages(pageNumber, totalPages);\n\n const allowNext = pageNumber < totalPages;\n const allowPrevious = pageNumber > 1;\n\n return {\n totalPages,\n pages,\n pageNumber,\n allowNext,\n allowPrevious,\n label: this.calculateLabel(fromStart, fromEnd, totalEntries)\n };\n })\n );\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n setPage(pageNumber: number, totalPages: number) {\n // Calculate the new value.\n const newValue = Math.min(\n totalPages,\n Math.max(1, pageNumber)\n );\n\n // Validate the value is actually different.\n const currentValue = this._collection?.pageNumberControl?.value;\n if (currentValue === newValue) {\n return;\n }\n\n this._collection?.pageNumberControl?.setValue(pageNumber);\n }\n\n private observeCollectionChanges() {\n if (!this._collection) {\n return;\n }\n\n if (this._subscription) {\n this._subscription?.unsubscribe();\n }\n\n const pageNumber = this._collection?.pageNumberControl?.value;\n const pageSize = this._collection?.pageSizeControl?.value;\n\n this.cache$.next({pageNumber, pageSize});\n\n this._subscription = this._collection.raw$.subscribe(data => {\n if (data) {\n this.cache$.next(data);\n }\n });\n }\n\n private calculateLabel(start: number, end: number, total: number) {\n const startPoint = '[start]';\n const endPoint = '[end]';\n const totalPoint = '[total]';\n const label = this._label ?? `Showing ${startPoint} to ${endPoint} of ${totalPoint} results`;\n\n return label\n .replace(startPoint, `<strong>${start}</strong>`)\n .replace(endPoint, `<strong>${end}</strong>`)\n .replace(totalPoint, `<strong>${total}</strong>`);\n }\n\n private calculatePages(pageNumber: number, totalPages: number) {\n const min = 1;\n const max = totalPages;\n const amount = Math.max(1, this.maxAmountOfButtons);\n\n const data = Array(amount)\n .fill(0)\n .map((_, index) => pageNumber + (index - 1));\n\n // Validate if the minimum value less than\n // the first value.\n if (data[0] < min) {\n return data.map(item => item + 1);\n }\n\n // Calculate the difference with the max\n // if this value is higher than 0 we should minus it.\n const lastValueInArray = data[data.length - 1];\n const differenceWithMax = lastValueInArray - max;\n if (differenceWithMax > 0) {\n return data.map(item => item - differenceWithMax);\n }\n\n // Just return the default data.\n return data;\n }\n\n private filterActivePages(pageNumber: number, totalPages: number) {\n return this.calculatePages(pageNumber, totalPages)\n .filter(page => page > 0 && page <= totalPages)\n .map(page => ({page, active: pageNumber === page}));\n }\n\n}\n","<ng-container *ngIf=\"data$ | async as data\">\n <div [innerHTML]=\"data?.label\"\n class=\"bb-collections-pager-text\">\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"!data?.allowPrevious\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n ←\n </button>\n </li>\n <li *ngFor=\"let item of data?.pages\"\n [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"!data?.allowNext\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n →\n </button>\n </li>\n </ul>\n </div>\n</ng-container>\n","import {catchError, debounceTime, distinctUntilChanged, map, startWith, switchMap, tap} from 'rxjs/operators';\nimport {CollectionData, CollectionRequest, CollectionRequestSort} from './interfaces/collection.interface';\nimport {BehaviorSubject, combineLatest, Observable, of} from 'rxjs';\nimport {CollectionProvider} from './providers/collection.provider';\nimport {AbstractControl, FormControl} from '@angular/forms';\n\nexport const enum CollectionState {\n Initial = 'initial',\n Error = 'error',\n Empty = 'empty',\n Data = 'data'\n}\n\nexport class Collection<T> {\n\n // Controls.\n readonly queryControl: FormControl;\n readonly queryFieldsControl: FormControl;\n readonly pageNumberControl: FormControl;\n readonly pageSizeControl: FormControl;\n readonly sortControl: FormControl;\n\n // Request.\n readonly data$: Observable<{\n response?: CollectionData<T>,\n request?: CollectionRequest,\n error?: Error\n state: CollectionState,\n loading: boolean,\n initial: boolean\n }>;\n\n readonly raw$ = new BehaviorSubject<CollectionData<T> | null>(null);\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n // State.\n private _refresh$ = new BehaviorSubject<number>(0);\n\n // Cache.\n private _requestCache: CollectionRequest | null = null;\n\n constructor(private readonly _provider: CollectionProvider<T>,\n private readonly _initialValues: Partial<CollectionRequest> = {}) {\n this.queryControl = new FormControl(_initialValues?.query ?? null);\n this.queryFieldsControl = new FormControl(_initialValues?.queryFields ?? []);\n this.pageNumberControl = new FormControl(_initialValues?.pageNumber ?? 1);\n this.pageSizeControl = new FormControl(_initialValues?.pageSize ?? 25);\n this.sortControl = new FormControl(_initialValues?.sort ?? null);\n\n this.data$ = this.getData();\n }\n\n public refresh() {\n this._refresh$.next(0);\n }\n\n private getData() {\n const data$ = this.request.pipe(\n tap(() => this.loading$.next(true)),\n map(request => this.validateRequest(request)),\n switchMap(request => {\n return this._provider.transform(request).pipe(\n tap(response => this.cacheCollectionData(response)),\n map(response => ({response, request, initial: false})),\n catchError(error => of<{ error: Error, request: CollectionRequest, initial: boolean }>({\n error,\n request,\n initial: false\n }))\n );\n }),\n startWith({initial: true})\n );\n\n return combineLatest([data$, this.loading$.asObservable()]).pipe(\n map(([data, loading]) => {\n const combined = {...data, loading};\n return {...combined, state: this.getState(combined)};\n })\n );\n }\n\n private validateRequest(request: CollectionRequest) {\n // We should reset the page number whenever we change the query or the page size.\n if (this._requestCache && request && (this._requestCache?.query !== request?.query || this._requestCache?.pageSize !== request?.pageSize)) {\n this.pageNumberControl?.setValue(1, {emitEvent: false});\n request.pageNumber = this.pageNumberControl?.value;\n }\n\n this._requestCache = {...request};\n\n return request;\n }\n\n private getState(data: { response?: CollectionData<T>, request?: CollectionRequest, error?: Error, loading: boolean, initial: boolean }) {\n if (!!data?.error) {\n return CollectionState.Error;\n }\n\n if (!!data?.initial) {\n return CollectionState.Initial;\n }\n\n const count = data?.response?.data?.length ?? 0;\n if (count <= 0) {\n return CollectionState.Empty;\n }\n\n return CollectionState.Data;\n }\n\n private cacheCollectionData(data: CollectionData<T>) {\n this.raw$.next(data);\n this.loading$.next(false);\n }\n\n private get request() {\n const pageNumber$ = this.controlToObservable<number>(this.pageNumberControl);\n const pageSize$ = this.controlToObservable<number>(this.pageSizeControl);\n const query$ = this.getQueryObservable();\n const queryFields$ = this.controlToObservable<string[]>(this.queryFieldsControl);\n const sort$ = this.controlToObservable<CollectionRequestSort | CollectionRequestSort[]>(this.sortControl);\n\n return combineLatest([pageNumber$, pageSize$, query$, queryFields$, sort$, this._refresh$.asObservable()]).pipe(\n map(([pageNumber, pageSize, query, queryFields, sort]) => ({\n pageNumber,\n pageSize,\n query,\n queryFields,\n sort\n }))\n );\n }\n\n private getQueryObservable() {\n return this.queryControl.valueChanges.pipe(\n debounceTime<string>(400),\n distinctUntilChanged<string>(),\n startWith(this.queryControl?.value as string | null)\n );\n }\n\n private controlToObservable = <T = unknown>(control: AbstractControl) => {\n return control.valueChanges.pipe(\n distinctUntilChanged<T>(),\n startWith(control?.value as T)\n );\n };\n\n}\n\n","import {\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n} from './components/collections.directive';\nimport {BbCollectionsViewer} from './components/collections-viewer/collections-viewer.component';\nimport {BbCollectionsPager} from './components/collections-pager/collections-pager.component';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n // Components.\n BbCollectionsViewer,\n BbCollectionsPager,\n // Directives.\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n ],\n exports: [\n // Components.\n BbCollectionsViewer,\n BbCollectionsPager,\n // Directives.\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n ]\n})\nexport class CollectionsModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["isObservable","of","combineLatest","switchMap","map","Directive","TemplateRef","Component","ChangeDetectionStrategy","ViewEncapsulation","ContentChild","Input","BehaviorSubject","distinctUntilChanged","startWith","FormControl","tap","catchError","debounceTime","CommonModule","NgModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bravobit-bb-foundation-collections.umd.js","sources":["../../../projects/bb-foundation/collections/src/lib/providers/collection.provider.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/bb-foundation/collections/src/lib/providers/api-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/local-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/components/collections.directive.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.html","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.html","../../../projects/bb-foundation/collections/src/lib/collection.ts","../../../projects/bb-foundation/collections/src/lib/collections.module.ts","../../../projects/bb-foundation/collections/src/bravobit-bb-foundation-collections.ts"],"sourcesContent":["import {CollectionData, CollectionRequest} from '../interfaces/collection.interface';\nimport {Observable} from 'rxjs';\n\nexport abstract class CollectionProvider<T> {\n\n abstract transform(request: CollectionRequest): Observable<CollectionData<T>>;\n\n protected formatArrayToCollectionData(items: T[]) {\n const count = items?.length ?? 1;\n return <CollectionData<T>>{\n pageSize: count,\n totalEntries: count,\n pageNumber: 1,\n totalPages: 1,\n data: items\n };\n }\n\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {CollectionApiResponse, CollectionData, CollectionRequest} from '../interfaces/collection.interface';\nimport {combineLatest, isObservable, Observable, of} from 'rxjs';\nimport {CollectionProvider} from './collection.provider';\nimport {HttpClient} from '@angular/common/http';\nimport {map, switchMap} from 'rxjs/operators';\n\nexport class ApiCollectionProvider<T> extends CollectionProvider<T> {\n\n // State.\n private _extraParams: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> } = {};\n\n constructor(private readonly _endpoint: string | Observable<string>,\n private readonly _httpClient: HttpClient) {\n super();\n }\n\n append(name: string, value: string | number | boolean | ReadonlyArray<string | number | boolean> | Observable<string | number | boolean | ReadonlyArray<string | number | boolean>>) {\n this._extraParams[name] = isObservable(value) ? value : of(value);\n return this;\n }\n\n transform(request: CollectionRequest) {\n const endpoint$ = isObservable(this._endpoint) ? this._endpoint : of(this._endpoint);\n const params = this.getBackendFormat(request);\n const extraParams$ = this.getExtraParams(this._extraParams);\n\n return combineLatest([endpoint$, extraParams$]).pipe(\n switchMap(([endpoint, extraParams]) => {\n return this._httpClient.get<CollectionApiResponse<T> | T[]>(endpoint, {\n params: {...params, ...extraParams}\n });\n }),\n map(response => this.formatToCollectionData(response))\n );\n }\n\n private getExtraParams(params: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> }) {\n const keys = Object.keys(params ?? {});\n if (keys.length <= 0) {\n return of({});\n }\n\n const observables$ = keys.map(key => params?.[key]);\n return combineLatest(observables$).pipe(\n map(data => {\n return data.reduce((previous, current, index) => {\n const key = keys?.[index];\n return {...previous, [key]: current};\n }, {});\n })\n );\n }\n\n private formatToCollectionData(response: CollectionApiResponse<T> | T[]) {\n if (Array.isArray(response)) {\n return this.formatArrayToCollectionData(response);\n }\n\n return <CollectionData<T>>{\n pageSize: response?.['page_size'] as number,\n pageNumber: response?.['page_number'] as number,\n totalPages: response?.['total_pages'] as number,\n totalEntries: response?.['total_entries'] as number,\n data: response?.['data'] as T[]\n };\n }\n\n private getBackendFormat = (request: CollectionRequest) => {\n const params = {};\n\n params['page'] = request?.pageNumber ?? 1;\n params['page_size'] = request?.pageSize ?? 25;\n\n if (request?.sort) {\n const sort = Array.isArray(request?.sort) ? request?.sort : [request?.sort];\n const filteredSort = sort?.filter(item => !!item?.name && !!item?.direction);\n\n params['sort'] = filteredSort?.map(item => item?.name)?.join(',');\n params['sort_direction'] = filteredSort?.map(item => item?.direction)?.join(',');\n }\n\n if (request?.query && request?.query?.length > 0 && request?.queryFields && request?.queryFields?.length > 0) {\n params['query'] = request?.query;\n params['query_fields'] = request?.queryFields?.join(',');\n }\n\n return params;\n };\n\n}\n","import {CollectionRequest} from '../interfaces/collection.interface';\nimport {CollectionProvider} from './collection.provider';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport class LocalCollectionProvider<T> extends CollectionProvider<T> {\n\n constructor(private readonly _items: T[] | Observable<T[]>) {\n super();\n }\n\n transform(request: CollectionRequest) {\n const items$ = Array.isArray(this._items)\n ? of(this._items)\n : this._items;\n\n return items$.pipe(\n map(items => this.formatArrayToCollectionData(items))\n );\n }\n\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[bbCollectionsData]'\n})\nexport class BbCollectionsData<T> {\n}\n\n@Directive({\n selector: '[bbCollectionsEmpty]'\n})\nexport class BbCollectionsEmpty {\n}\n\n@Directive({\n selector: '[bbCollectionsError]'\n})\nexport class BbCollectionsError {\n}\n\n@Directive({\n selector: '[bbCollectionsInitial]'\n})\nexport class BbCollectionsInitial {\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n} from '../collections.directive';\nimport {Collection} from '../../collection';\n\n@Component({\n selector: '[bb-collections-viewer]',\n templateUrl: './collections-viewer.component.html',\n styleUrls: ['./collections-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-collections-viewer'},\n preserveWhitespaces: false\n})\nexport class BbCollectionsViewer<T = unknown> {\n\n // Content.\n @ContentChild(BbCollectionsData, {read: TemplateRef, static: false}) dataTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsEmpty, {read: TemplateRef, static: false}) emptyTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsError, {read: TemplateRef, static: false}) errorTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsInitial, {read: TemplateRef, static: false}) initialTemplate?: TemplateRef<any>;\n\n // Inputs.\n @Input() collection: Collection<T> | null = null;\n\n}\n","<ng-container *ngIf=\"collection?.data$ | async as data\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'initial'\">\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'error'\">\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\n </ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {CollectionData} from '../../interfaces/collection.interface';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\nimport {Collection} from '../../collection';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'bb-collections-pager',\n templateUrl: './collections-pager.component.html',\n styleUrls: ['./collections-pager.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-collections-pager'},\n preserveWhitespaces: false\n})\nexport class BbCollectionsPager implements OnInit, OnDestroy {\n\n // Readonly data.\n readonly maxAmountOfButtons: number = 5;\n\n // Inputs.\n @Input()\n set label(value: string) {\n this._label = value;\n this.cache$.next(this.cache$.getValue());\n }\n\n @Input()\n set collection(collection: Collection<unknown> | null) {\n this._collection = collection;\n this.observeCollectionChanges();\n }\n\n // Data.\n data$: Observable<{\n totalPages: number,\n pageNumber: number,\n pages: { page: number, active: boolean }[],\n allowNext: boolean\n allowPrevious: boolean,\n label: string\n }>;\n cache$ = new BehaviorSubject<Partial<CollectionData<unknown>>>({});\n\n // State and subscriptions.\n private _label: string | null = null;\n private _collection: Collection<unknown> | null = null;\n private _subscription: Subscription | null = null;\n\n ngOnInit() {\n this.data$ = this.cache$.pipe(\n map(cache => {\n const pageSize = cache?.pageSize ?? 1;\n const pageNumber = cache?.pageNumber ?? 1;\n\n const totalPages = cache?.totalPages ?? 1;\n const totalEntries = cache?.totalEntries ?? 0;\n const fromStart = Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries);\n const fromEnd = Math.min((fromStart - 1) + pageSize, totalEntries);\n\n const pages = this.filterActivePages(pageNumber, totalPages);\n\n const allowNext = pageNumber < totalPages;\n const allowPrevious = pageNumber > 1;\n\n return {\n totalPages,\n pages,\n pageNumber,\n allowNext,\n allowPrevious,\n label: this.calculateLabel(fromStart, fromEnd, totalEntries)\n };\n })\n );\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n setPage(pageNumber: number, totalPages: number) {\n // Calculate the new value.\n const newValue = Math.min(\n totalPages,\n Math.max(1, pageNumber)\n );\n\n // Validate the value is actually different.\n const currentValue = this._collection?.pageNumberControl?.value;\n if (currentValue === newValue) {\n return;\n }\n\n this._collection?.pageNumberControl?.setValue(pageNumber);\n }\n\n private observeCollectionChanges() {\n if (!this._collection) {\n return;\n }\n\n if (this._subscription) {\n this._subscription?.unsubscribe();\n }\n\n const pageNumber = this._collection?.pageNumberControl?.value;\n const pageSize = this._collection?.pageSizeControl?.value;\n\n this.cache$.next({pageNumber, pageSize});\n\n this._subscription = this._collection.raw$.subscribe(data => {\n if (data) {\n this.cache$.next(data);\n }\n });\n }\n\n private calculateLabel(start: number, end: number, total: number) {\n const startPoint = '[start]';\n const endPoint = '[end]';\n const totalPoint = '[total]';\n const label = this._label ?? `Showing ${startPoint} to ${endPoint} of ${totalPoint} results`;\n\n return label\n .replace(startPoint, `<strong>${start}</strong>`)\n .replace(endPoint, `<strong>${end}</strong>`)\n .replace(totalPoint, `<strong>${total}</strong>`);\n }\n\n private calculatePages(pageNumber: number, totalPages: number) {\n const min = 1;\n const max = totalPages;\n const amount = Math.max(1, this.maxAmountOfButtons);\n\n const data = Array(amount)\n .fill(0)\n .map((_, index) => pageNumber + (index - 1));\n\n // Validate if the minimum value less than\n // the first value.\n if (data[0] < min) {\n return data.map(item => item + 1);\n }\n\n // Calculate the difference with the max\n // if this value is higher than 0 we should minus it.\n const lastValueInArray = data[data.length - 1];\n const differenceWithMax = lastValueInArray - max;\n if (differenceWithMax > 0) {\n return data.map(item => item - differenceWithMax);\n }\n\n // Just return the default data.\n return data;\n }\n\n private filterActivePages(pageNumber: number, totalPages: number) {\n return this.calculatePages(pageNumber, totalPages)\n .filter(page => page > 0 && page <= totalPages)\n .map(page => ({page, active: pageNumber === page}));\n }\n\n}\n","<ng-container *ngIf=\"data$ | async as data\">\n <div [innerHTML]=\"data?.label\"\n class=\"bb-collections-pager-text\">\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"!data?.allowPrevious\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n ←\n </button>\n </li>\n <li *ngFor=\"let item of data?.pages\"\n [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"!data?.allowNext\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n →\n </button>\n </li>\n </ul>\n </div>\n</ng-container>\n","import {catchError, debounceTime, distinctUntilChanged, map, startWith, switchMap, tap} from 'rxjs/operators';\nimport {CollectionData, CollectionRequest, CollectionRequestSort} from './interfaces/collection.interface';\nimport {BehaviorSubject, combineLatest, Observable, of} from 'rxjs';\nimport {CollectionProvider} from './providers/collection.provider';\nimport {AbstractControl, FormControl} from '@angular/forms';\n\nexport const enum CollectionState {\n Initial = 'initial',\n Error = 'error',\n Empty = 'empty',\n Data = 'data'\n}\n\nexport class Collection<T> {\n\n // Controls.\n readonly queryControl: FormControl;\n readonly queryFieldsControl: FormControl;\n readonly pageNumberControl: FormControl;\n readonly pageSizeControl: FormControl;\n readonly sortControl: FormControl;\n\n // Request.\n readonly data$: Observable<{\n response?: CollectionData<T>,\n request?: CollectionRequest,\n error?: Error\n state: CollectionState,\n loading: boolean,\n initial: boolean\n }>;\n\n readonly raw$ = new BehaviorSubject<CollectionData<T> | null>(null);\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n // State.\n private _formatter: (item: T) => T | null = null;\n private _refresh$ = new BehaviorSubject<number>(0);\n private _requestCache: CollectionRequest | null = null;\n\n constructor(private readonly _provider: CollectionProvider<T>,\n private readonly _initialValues: Partial<CollectionRequest> = {}) {\n this.queryControl = new FormControl(_initialValues?.query ?? null);\n this.queryFieldsControl = new FormControl(_initialValues?.queryFields ?? []);\n this.pageNumberControl = new FormControl(_initialValues?.pageNumber ?? 1);\n this.pageSizeControl = new FormControl(_initialValues?.pageSize ?? 25);\n this.sortControl = new FormControl(_initialValues?.sort ?? null);\n\n this.data$ = this.getData();\n }\n\n refresh() {\n this._refresh$.next(0);\n }\n\n setFormatter(callback: (items: T) => T) {\n this._formatter = callback;\n return this;\n }\n\n private getData() {\n const data$ = this.request.pipe(\n tap(() => this.loading$.next(true)),\n map(request => this.validateRequest(request)),\n switchMap(request => {\n return this._provider.transform(request).pipe(\n tap(response => this.cacheCollectionData(response)),\n map(response => ({response, request, initial: false})),\n catchError(error => of<{ error: Error, response: null, request: CollectionRequest, initial: boolean }>({\n error,\n request,\n response: null,\n initial: false\n }))\n );\n }),\n startWith({initial: true, response: null})\n );\n\n return combineLatest([data$, this.loading$.asObservable()]).pipe(\n map(([data, loading]) => {\n const combined = {...data, loading};\n return {...combined, response: this.formatResponse(data?.response), state: this.getState(combined)};\n })\n );\n }\n\n private formatResponse(response: CollectionData<T>) {\n if (!response) {\n return response;\n }\n\n const data = (response?.data ?? []).map(item => {\n return !!this._formatter ? this._formatter?.(item) : item;\n });\n return {...response, data};\n }\n\n private validateRequest(request: CollectionRequest) {\n // We should reset the page number whenever we change the query or the page size.\n if (this._requestCache && request && (this._requestCache?.query !== request?.query || this._requestCache?.pageSize !== request?.pageSize)) {\n this.pageNumberControl?.setValue(1, {emitEvent: false});\n request.pageNumber = this.pageNumberControl?.value;\n }\n\n this._requestCache = {...request};\n\n return request;\n }\n\n private getState(data: { response?: CollectionData<T>, request?: CollectionRequest, error?: Error, loading: boolean, initial: boolean }) {\n if (!!data?.error) {\n return CollectionState.Error;\n }\n\n if (!!data?.initial) {\n return CollectionState.Initial;\n }\n\n const count = data?.response?.data?.length ?? 0;\n if (count <= 0) {\n return CollectionState.Empty;\n }\n\n return CollectionState.Data;\n }\n\n private cacheCollectionData(data: CollectionData<T>) {\n this.raw$.next(data);\n this.loading$.next(false);\n }\n\n private get request() {\n const pageNumber$ = this.controlToObservable<number>(this.pageNumberControl);\n const pageSize$ = this.controlToObservable<number>(this.pageSizeControl);\n const query$ = this.getQueryObservable();\n const queryFields$ = this.controlToObservable<string[]>(this.queryFieldsControl);\n const sort$ = this.controlToObservable<CollectionRequestSort | CollectionRequestSort[]>(this.sortControl);\n\n return combineLatest([pageNumber$, pageSize$, query$, queryFields$, sort$, this._refresh$.asObservable()]).pipe(\n map(([pageNumber, pageSize, query, queryFields, sort]) => ({\n pageNumber,\n pageSize,\n query,\n queryFields,\n sort\n }))\n );\n }\n\n private getQueryObservable() {\n return this.queryControl.valueChanges.pipe(\n debounceTime<string>(400),\n distinctUntilChanged<string>(),\n startWith(this.queryControl?.value as string | null)\n );\n }\n\n private controlToObservable = <T = unknown>(control: AbstractControl) => {\n return control.valueChanges.pipe(\n distinctUntilChanged<T>(),\n startWith(control?.value as T)\n );\n };\n\n}\n\n","import {\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n} from './components/collections.directive';\nimport {BbCollectionsViewer} from './components/collections-viewer/collections-viewer.component';\nimport {BbCollectionsPager} from './components/collections-pager/collections-pager.component';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n // Components.\n BbCollectionsViewer,\n BbCollectionsPager,\n // Directives.\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n ],\n exports: [\n // Components.\n BbCollectionsViewer,\n BbCollectionsPager,\n // Directives.\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n ]\n})\nexport class CollectionsModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["isObservable","of","combineLatest","switchMap","map","Directive","TemplateRef","Component","ChangeDetectionStrategy","ViewEncapsulation","ContentChild","Input","BehaviorSubject","distinctUntilChanged","startWith","FormControl","tap","catchError","debounceTime","CommonModule","NgModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;QAGA;SAeC;QAXa,wDAA2B,GAA3B,UAA4B,KAAU;;YAC5C,IAAM,KAAK,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,mCAAI,CAAC,CAAC;YACjC,OAA0B;gBACtB,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,CAAC;gBACb,IAAI,EAAE,KAAK;aACd,CAAC;SACL;iCAEJ;KAAA;;IClBD;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,EAAE;wBAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;;QCxO8C,yCAAqB;QAK/D,+BAA6B,SAAsC,EACtC,WAAuB;YADpD,YAEI,iBAAO,SACV;YAH4B,eAAS,GAAT,SAAS,CAA6B;YACtC,iBAAW,GAAX,WAAW,CAAY;;YAH5C,kBAAY,GAAyG,EAAE,CAAC;YA0DxH,sBAAgB,GAAG,UAAC,OAA0B;;gBAClD,IAAM,MAAM,GAAG,EAAE,CAAC;gBAElB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,EAAE,CAAC;gBAE9C,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;oBACf,IAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,GAAG,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC;oBAC5E,IAAM,YAAY,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,IAAI,CAAC,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAA,GAAA,CAAC,CAAC;oBAE7E,MAAM,CAAC,MAAM,CAAC,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,GAAA,CAAC,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClE,MAAM,CAAC,gBAAgB,CAAC,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,GAAA,CAAC,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpF;gBAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,MAAM,IAAG,CAAC,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,IAAI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,MAAM,IAAG,CAAC,EAAE;oBAC1G,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;oBACjC,MAAM,CAAC,cAAc,CAAC,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC5D;gBAED,OAAO,MAAM,CAAC;aACjB,CAAC;;SAzED;QAED,sCAAM,GAAN,UAAO,IAAY,EAAE,KAA8J;YAC/K,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAGA,iBAAY,CAAC,KAAK,CAAC,GAAG,KAAK,GAAGC,OAAE,CAAC,KAAK,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;SACf;QAED,yCAAS,GAAT,UAAU,OAA0B;YAApC,iBAaC;YAZG,IAAM,SAAS,GAAGD,iBAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,GAAGC,OAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrF,IAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE5D,OAAOC,kBAAa,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAChDC,mBAAS,CAAC,UAAC,EAAuB;oBAAvB,KAAA,aAAuB,EAAtB,QAAQ,QAAA,EAAE,WAAW,QAAA;gBAC7B,OAAO,KAAI,CAAC,WAAW,CAAC,GAAG,CAAiC,QAAQ,EAAE;oBAClE,MAAM,kCAAM,MAAM,GAAK,WAAW,CAAC;iBACtC,CAAC,CAAC;aACN,CAAC,EACFC,aAAG,CAAC,UAAA,QAAQ,IAAI,OAAA,KAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAA,CAAC,CACzD,CAAC;SACL;QAEO,8CAAc,GAAd,UAAe,MAA4G;YAC/H,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;gBAClB,OAAOH,OAAE,CAAC,EAAE,CAAC,CAAC;aACjB;YAED,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,CAAC,GAAA,CAAC,CAAC;YACpD,OAAOC,kBAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CACnCE,aAAG,CAAC,UAAA,IAAI;gBACJ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,QAAQ,EAAE,OAAO,EAAE,KAAK;;oBACxC,IAAM,GAAG,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,KAAK,CAAC,CAAC;oBAC1B,uCAAW,QAAQ,aAAE,GAAC,GAAG,IAAG,OAAO,OAAE;iBACxC,EAAE,EAAE,CAAC,CAAC;aACV,CAAC,CACL,CAAC;SACL;QAEO,sDAAsB,GAAtB,UAAuB,QAAwC;YACnE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACzB,OAAO,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;aACrD;YAED,OAA0B;gBACtB,QAAQ,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,WAAW,CAAW;gBAC3C,UAAU,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,aAAa,CAAW;gBAC/C,UAAU,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,aAAa,CAAW;gBAC/C,YAAY,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,eAAe,CAAW;gBACnD,IAAI,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,MAAM,CAAQ;aAClC,CAAC;SACL;oCAwBJ;KAnFD,CAA8C,kBAAqB;;;QCDnB,2CAAqB;QAEjE,iCAA6B,MAA6B;YAA1D,YACI,iBAAO,SACV;YAF4B,YAAM,GAAN,MAAM,CAAuB;;SAEzD;QAED,2CAAS,GAAT,UAAU,OAA0B;YAApC,iBAQC;YAPG,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;kBACnCH,OAAE,CAAC,IAAI,CAAC,MAAM,CAAC;kBACf,IAAI,CAAC,MAAM,CAAC;YAElB,OAAO,MAAM,CAAC,IAAI,CACdG,aAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAA,CAAC,CACxD,CAAC;SACL;sCAEJ;KAhBD,CAAgD,kBAAqB;;;QCArE;;;;yIAAa,iBAAiB;kHAAjB,iBAAiB;sHAAjB,iBAAiB;sBAH7BC,YAAS;uBAAC;wBACP,QAAQ,EAAE,qBAAqB;qBAClC;;;QAOD;;;;0IAAa,kBAAkB;mHAAlB,kBAAkB;sHAAlB,kBAAkB;sBAH9BA,YAAS;uBAAC;wBACP,QAAQ,EAAE,sBAAsB;qBACnC;;;QAOD;;;;0IAAa,kBAAkB;mHAAlB,kBAAkB;sHAAlB,kBAAkB;sBAH9BA,YAAS;uBAAC;wBACP,QAAQ,EAAE,sBAAsB;qBACnC;;;QAOD;;;;4IAAa,oBAAoB;qHAApB,oBAAoB;sHAApB,oBAAoB;sBAHhCA,YAAS;uBAAC;wBACP,QAAQ,EAAE,wBAAwB;qBACrC;;;;QCND;;YAkBa,eAAU,GAAyB,IAAI,CAAC;SAEpD;;;2IAXY,mBAAmB;oHAAnB,mBAAmB,kMAGd,iBAAiB,2BAASC,cAAW,6DACrC,kBAAkB,2BAASA,cAAW,6DACtC,kBAAkB,2BAASA,cAAW,+DACtC,oBAAoB,2BAASA,cAAW,wCC/B1D,0xBAeA;sHDUa,mBAAmB;sBAT/BC,YAAS;uBAAC;wBACP,QAAQ,EAAE,yBAAyB;wBACnC,WAAW,EAAE,qCAAqC;wBAClD,SAAS,EAAE,CAAC,qCAAqC,CAAC;wBAClD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;wBAC/C,aAAa,EAAEC,oBAAiB,CAAC,IAAI;wBACrC,IAAI,EAAE,EAAC,OAAO,EAAE,uBAAuB,EAAC;wBACxC,mBAAmB,EAAE,KAAK;qBAC7B;kCAIwE,YAAY;0BAAhFC,eAAY;2BAAC,iBAAiB,EAAE,EAAC,IAAI,EAAEJ,cAAW,EAAE,MAAM,EAAE,KAAK,EAAC;oBACG,aAAa;0BAAlFI,eAAY;2BAAC,kBAAkB,EAAE,EAAC,IAAI,EAAEJ,cAAW,EAAE,MAAM,EAAE,KAAK,EAAC;oBACE,aAAa;0BAAlFI,eAAY;2BAAC,kBAAkB,EAAE,EAAC,IAAI,EAAEJ,cAAW,EAAE,MAAM,EAAE,KAAK,EAAC;oBACI,eAAe;0BAAtFI,eAAY;2BAAC,oBAAoB,EAAE,EAAC,IAAI,EAAEJ,cAAW,EAAE,MAAM,EAAE,KAAK,EAAC;oBAG7D,UAAU;0BAAlBK,QAAK;;;;QE5BV;;YAYa,uBAAkB,GAAW,CAAC,CAAC;YAwBxC,WAAM,GAAG,IAAIC,oBAAe,CAAmC,EAAE,CAAC,CAAC;;YAG3D,WAAM,GAAkB,IAAI,CAAC;YAC7B,gBAAW,GAA+B,IAAI,CAAC;YAC/C,kBAAa,GAAwB,IAAI,CAAC;SAoHrD;QA9IG,sBACI,qCAAK;;iBADT,UACU,KAAa;gBACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC5C;;;WAAA;QAED,sBACI,0CAAU;iBADd,UACe,UAAsC;gBACjD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;gBAC9B,IAAI,CAAC,wBAAwB,EAAE,CAAC;aACnC;;;WAAA;QAkBD,qCAAQ,GAAR;YAAA,iBA0BC;YAzBG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACzBR,aAAG,CAAC,UAAA,KAAK;;gBACL,IAAM,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,CAAC,CAAC;gBACtC,IAAM,UAAU,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,CAAC,CAAC;gBAE1C,IAAM,UAAU,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,CAAC,CAAC;gBAC1C,IAAM,YAAY,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,mCAAI,CAAC,CAAC;gBAC9C,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;gBAC5E,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAEnE,IAAM,KAAK,GAAG,KAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAE7D,IAAM,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;gBAC1C,IAAM,aAAa,GAAG,UAAU,GAAG,CAAC,CAAC;gBAErC,OAAO;oBACH,UAAU,YAAA;oBACV,KAAK,OAAA;oBACL,UAAU,YAAA;oBACV,SAAS,WAAA;oBACT,aAAa,eAAA;oBACb,KAAK,EAAE,KAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;iBAC/D,CAAC;aACL,CAAC,CACL,CAAC;SACL;QAED,wCAAW,GAAX;;YACI,MAAA,IAAI,CAAC,aAAa,0CAAE,WAAW,EAAE,CAAC;SACrC;QAED,oCAAO,GAAP,UAAQ,UAAkB,EAAE,UAAkB;;;YAE1C,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACrB,UAAU,EACV,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAC1B,CAAC;;YAGF,IAAM,YAAY,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,iBAAiB,0CAAE,KAAK,CAAC;YAChE,IAAI,YAAY,KAAK,QAAQ,EAAE;gBAC3B,OAAO;aACV;YAED,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,iBAAiB,0CAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC7D;QAEO,qDAAwB,GAAxB;YAAA,iBAmBP;;YAlBG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB,OAAO;aACV;YAED,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,MAAA,IAAI,CAAC,aAAa,0CAAE,WAAW,EAAE,CAAC;aACrC;YAED,IAAM,UAAU,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,iBAAiB,0CAAE,KAAK,CAAC;YAC9D,IAAM,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,eAAe,0CAAE,KAAK,CAAC;YAE1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,UAAU,YAAA,EAAE,QAAQ,UAAA,EAAC,CAAC,CAAC;YAEzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAA,IAAI;gBACrD,IAAI,IAAI,EAAE;oBACN,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC1B;aACJ,CAAC,CAAC;SACN;QAEO,2CAAc,GAAd,UAAe,KAAa,EAAE,GAAW,EAAE,KAAa;;YAC5D,IAAM,UAAU,GAAG,SAAS,CAAC;YAC7B,IAAM,QAAQ,GAAG,OAAO,CAAC;YACzB,IAAM,UAAU,GAAG,SAAS,CAAC;YAC7B,IAAM,KAAK,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,aAAW,UAAU,YAAO,QAAQ,YAAO,UAAU,aAAU,CAAC;YAE7F,OAAO,KAAK;iBACP,OAAO,CAAC,UAAU,EAAE,aAAW,KAAK,cAAW,CAAC;iBAChD,OAAO,CAAC,QAAQ,EAAE,aAAW,GAAG,cAAW,CAAC;iBAC5C,OAAO,CAAC,UAAU,EAAE,aAAW,KAAK,cAAW,CAAC,CAAC;SACzD;QAEO,2CAAc,GAAd,UAAe,UAAkB,EAAE,UAAkB;YACzD,IAAM,GAAG,GAAG,CAAC,CAAC;YACd,IAAM,GAAG,GAAG,UAAU,CAAC;YACvB,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEpD,IAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;iBACrB,IAAI,CAAC,CAAC,CAAC;iBACP,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,UAAU,IAAI,KAAK,GAAG,CAAC,CAAC,GAAA,CAAC,CAAC;;;YAIjD,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;gBACf,OAAO,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,GAAG,CAAC,GAAA,CAAC,CAAC;aACrC;;;YAID,IAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAM,iBAAiB,GAAG,gBAAgB,GAAG,GAAG,CAAC;YACjD,IAAI,iBAAiB,GAAG,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,GAAG,iBAAiB,GAAA,CAAC,CAAC;aACrD;;YAGD,OAAO,IAAI,CAAC;SACf;QAEO,8CAAiB,GAAjB,UAAkB,UAAkB,EAAE,UAAkB;YAC5D,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC;iBAC7C,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,GAAA,CAAC;iBAC9C,GAAG,CAAC,UAAA,IAAI,IAAI,QAAC,EAAC,IAAI,MAAA,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,EAAC,IAAC,CAAC,CAAC;SAC3D;;;0IAlJQ,kBAAkB;mHAAlB,kBAAkB,+KCf/B,6lDAsCA;sHDvBa,kBAAkB;sBAT9BG,YAAS;uBAAC;wBACP,QAAQ,EAAE,sBAAsB;wBAChC,WAAW,EAAE,oCAAoC;wBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;wBACjD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;wBAC/C,aAAa,EAAEC,oBAAiB,CAAC,IAAI;wBACrC,IAAI,EAAE,EAAC,OAAO,EAAE,sBAAsB,EAAC;wBACvC,mBAAmB,EAAE,KAAK;qBAC7B;kCAQO,KAAK;0BADRE,QAAK;oBAOF,UAAU;0BADbA,QAAK;;;;QEaN,oBAA6B,SAAgC,EAChC,cAA+C;YAA/C,+BAAA,EAAA,mBAA+C;;YAD/C,cAAS,GAAT,SAAS,CAAuB;YAChC,mBAAc,GAAd,cAAc,CAAiC;YATnE,SAAI,GAAG,IAAIC,oBAAe,CAA2B,IAAI,CAAC,CAAC;YAC3D,aAAQ,GAAG,IAAIA,oBAAe,CAAU,IAAI,CAAC,CAAC;;YAG/C,eAAU,GAA0B,IAAI,CAAC;YACzC,cAAS,GAAG,IAAIA,oBAAe,CAAS,CAAC,CAAC,CAAC;YAC3C,kBAAa,GAA6B,IAAI,CAAC;YAwH/C,wBAAmB,GAAG,UAAc,OAAwB;gBAChE,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAC5BC,8BAAoB,EAAK,EACzBC,mBAAS,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAU,CAAC,CACjC,CAAC;aACL,CAAC;YAzHE,IAAI,CAAC,YAAY,GAAG,IAAIC,iBAAW,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,mCAAI,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,kBAAkB,GAAG,IAAIA,iBAAW,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,mCAAI,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,iBAAiB,GAAG,IAAIA,iBAAW,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,mCAAI,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,eAAe,GAAG,IAAIA,iBAAW,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,mCAAI,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,WAAW,GAAG,IAAIA,iBAAW,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC;YAEjE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SAC/B;QAED,4BAAO,GAAP;YACI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B;QAED,iCAAY,GAAZ,UAAa,QAAyB;YAClC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;YAC3B,OAAO,IAAI,CAAC;SACf;QAEO,4BAAO,GAAP;YAAA,iBAyBP;YAxBG,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAC3BC,aAAG,CAAC,cAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAA,CAAC,EACnCZ,aAAG,CAAC,UAAA,OAAO,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAA,CAAC,EAC7CD,mBAAS,CAAC,UAAA,OAAO;gBACb,OAAO,KAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CACzCa,aAAG,CAAC,UAAA,QAAQ,IAAI,OAAA,KAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAA,CAAC,EACnDZ,aAAG,CAAC,UAAA,QAAQ,IAAI,QAAC,EAAC,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,OAAO,EAAE,KAAK,EAAC,IAAC,CAAC,EACtDa,oBAAU,CAAC,UAAA,KAAK,IAAI,OAAAhB,OAAE,CAAiF;oBACnG,KAAK,OAAA;oBACL,OAAO,SAAA;oBACP,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,KAAK;iBACjB,CAAC,GAAA,CAAC,CACN,CAAC;aACL,CAAC,EACFa,mBAAS,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAC7C,CAAC;YAEF,OAAOZ,kBAAa,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAC5DE,aAAG,CAAC,UAAC,EAAe;oBAAf,KAAA,aAAe,EAAd,IAAI,QAAA,EAAE,OAAO,QAAA;gBACf,IAAM,QAAQ,mCAAO,IAAI,KAAE,OAAO,SAAA,GAAC,CAAC;gBACpC,uCAAW,QAAQ,KAAE,QAAQ,EAAE,KAAI,CAAC,cAAc,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAE;aACvG,CAAC,CACL,CAAC;SACL;QAEO,mCAAc,GAAd,UAAe,QAA2B;YAA1C,iBASP;;YARG,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,QAAQ,CAAC;aACnB;YAED,IAAM,IAAI,GAAG,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,EAAE,EAAE,GAAG,CAAC,UAAA,IAAI;;gBACxC,OAAO,CAAC,CAAC,KAAI,CAAC,UAAU,GAAG,MAAA,KAAI,CAAC,UAAU,+CAAf,KAAI,EAAc,IAAI,CAAC,GAAG,IAAI,CAAC;aAC7D,CAAC,CAAC;YACH,uCAAW,QAAQ,KAAE,IAAI,MAAA,IAAE;SAC9B;QAEO,oCAAe,GAAf,UAAgB,OAA0B;;;YAE9C,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,KAAK,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,KAAK,OAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,IAAI,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,QAAQ,OAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA,CAAC,EAAE;gBACvI,MAAA,IAAI,CAAC,iBAAiB,0CAAE,QAAQ,CAAC,CAAC,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,iBAAiB,0CAAE,KAAK,CAAC;aACtD;YAED,IAAI,CAAC,aAAa,qBAAO,OAAO,CAAC,CAAC;YAElC,OAAO,OAAO,CAAC;SAClB;QAEO,6BAAQ,GAAR,UAAS,IAAsH;;YACnI,IAAI,CAAC,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAA,EAAE;gBACf,2BAA6B;aAChC;YAED,IAAI,CAAC,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA,EAAE;gBACjB,+BAA+B;aAClC;YAED,IAAM,KAAK,GAAG,MAAA,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,0CAAE,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC;YAChD,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,2BAA6B;aAChC;YAED,yBAA4B;SAC/B;QAEO,wCAAmB,GAAnB,UAAoB,IAAuB;YAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;QAED,sBAAY,+BAAO;iBAAnB;gBACI,IAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAS,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC7E,IAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAS,IAAI,CAAC,eAAe,CAAC,CAAC;gBACzE,IAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACzC,IAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAW,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjF,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAkD,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE1G,OAAOF,kBAAa,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3GE,aAAG,CAAC,UAAC,EAAgD;wBAAhD,KAAA,aAAgD,EAA/C,UAAU,QAAA,EAAE,QAAQ,QAAA,EAAE,KAAK,QAAA,EAAE,WAAW,QAAA,EAAE,IAAI,QAAA;oBAAM,QAAC;wBACvD,UAAU,YAAA;wBACV,QAAQ,UAAA;wBACR,KAAK,OAAA;wBACL,WAAW,aAAA;wBACX,IAAI,MAAA;qBACP;iBAAC,CAAC,CACN,CAAC;aACL;;;WAAA;QAEO,uCAAkB,GAAlB;;YACJ,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CACtCc,sBAAY,CAAS,GAAG,CAAC,EACzBL,8BAAoB,EAAU,EAC9BC,mBAAS,CAAC,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAsB,CAAC,CACvD,CAAC;SACL;yBASJ;KAAA;;;QCnID;;;;yIAAa,iBAAiB;0IAAjB,iBAAiB;;YAnBtB,mBAAmB;YACnB,kBAAkB;;YAElB,iBAAiB;YACjB,kBAAkB;YAClB,kBAAkB;YAClB,oBAAoB;qBATdK,eAAY;;YAalB,mBAAmB;YACnB,kBAAkB;;YAElB,iBAAiB;YACjB,kBAAkB;YAClB,kBAAkB;YAClB,oBAAoB;;0IAGf,iBAAiB,YAtBjB,CAACA,eAAY,CAAC;sHAsBd,iBAAiB;sBAvB7BC,WAAQ;uBAAC;wBACN,OAAO,EAAE,CAACD,eAAY,CAAC;wBACvB,YAAY,EAAE;;4BAEV,mBAAmB;4BACnB,kBAAkB;;4BAElB,iBAAiB;4BACjB,kBAAkB;4BAClB,kBAAkB;4BAClB,oBAAoB;yBACvB;wBACD,OAAO,EAAE;;4BAEL,mBAAmB;4BACnB,kBAAkB;;4BAElB,iBAAiB;4BACjB,kBAAkB;4BAClB,kBAAkB;4BAClB,oBAAoB;yBACvB;qBACJ;;;ICjCD;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -26,11 +26,14 @@ export declare class Collection<T> {
|
|
|
26
26
|
}>;
|
|
27
27
|
readonly raw$: BehaviorSubject<CollectionData<T>>;
|
|
28
28
|
readonly loading$: BehaviorSubject<boolean>;
|
|
29
|
+
private _formatter;
|
|
29
30
|
private _refresh$;
|
|
30
31
|
private _requestCache;
|
|
31
32
|
constructor(_provider: CollectionProvider<T>, _initialValues?: Partial<CollectionRequest>);
|
|
32
33
|
refresh(): void;
|
|
34
|
+
setFormatter(callback: (items: T) => T): this;
|
|
33
35
|
private getData;
|
|
36
|
+
private formatResponse;
|
|
34
37
|
private validateRequest;
|
|
35
38
|
private getState;
|
|
36
39
|
private cacheCollectionData;
|
|
@@ -9,8 +9,8 @@ export class Collection {
|
|
|
9
9
|
this.raw$ = new BehaviorSubject(null);
|
|
10
10
|
this.loading$ = new BehaviorSubject(true);
|
|
11
11
|
// State.
|
|
12
|
+
this._formatter = null;
|
|
12
13
|
this._refresh$ = new BehaviorSubject(0);
|
|
13
|
-
// Cache.
|
|
14
14
|
this._requestCache = null;
|
|
15
15
|
this.controlToObservable = (control) => {
|
|
16
16
|
return control.valueChanges.pipe(distinctUntilChanged(), startWith(control === null || control === void 0 ? void 0 : control.value));
|
|
@@ -25,19 +25,35 @@ export class Collection {
|
|
|
25
25
|
refresh() {
|
|
26
26
|
this._refresh$.next(0);
|
|
27
27
|
}
|
|
28
|
+
setFormatter(callback) {
|
|
29
|
+
this._formatter = callback;
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
28
32
|
getData() {
|
|
29
33
|
const data$ = this.request.pipe(tap(() => this.loading$.next(true)), map(request => this.validateRequest(request)), switchMap(request => {
|
|
30
34
|
return this._provider.transform(request).pipe(tap(response => this.cacheCollectionData(response)), map(response => ({ response, request, initial: false })), catchError(error => of({
|
|
31
35
|
error,
|
|
32
36
|
request,
|
|
37
|
+
response: null,
|
|
33
38
|
initial: false
|
|
34
39
|
})));
|
|
35
|
-
}), startWith({ initial: true }));
|
|
40
|
+
}), startWith({ initial: true, response: null }));
|
|
36
41
|
return combineLatest([data$, this.loading$.asObservable()]).pipe(map(([data, loading]) => {
|
|
37
42
|
const combined = Object.assign(Object.assign({}, data), { loading });
|
|
38
|
-
return Object.assign(Object.assign({}, combined), { state: this.getState(combined) });
|
|
43
|
+
return Object.assign(Object.assign({}, combined), { response: this.formatResponse(data === null || data === void 0 ? void 0 : data.response), state: this.getState(combined) });
|
|
39
44
|
}));
|
|
40
45
|
}
|
|
46
|
+
formatResponse(response) {
|
|
47
|
+
var _a;
|
|
48
|
+
if (!response) {
|
|
49
|
+
return response;
|
|
50
|
+
}
|
|
51
|
+
const data = ((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : []).map(item => {
|
|
52
|
+
var _a;
|
|
53
|
+
return !!this._formatter ? (_a = this._formatter) === null || _a === void 0 ? void 0 : _a.call(this, item) : item;
|
|
54
|
+
});
|
|
55
|
+
return Object.assign(Object.assign({}, response), { data });
|
|
56
|
+
}
|
|
41
57
|
validateRequest(request) {
|
|
42
58
|
var _a, _b, _c, _d;
|
|
43
59
|
// We should reset the page number whenever we change the query or the page size.
|
|
@@ -85,4 +101,4 @@ export class Collection {
|
|
|
85
101
|
return this.queryControl.valueChanges.pipe(debounceTime(400), distinctUntilChanged(), startWith((_a = this.queryControl) === null || _a === void 0 ? void 0 : _a.value));
|
|
86
102
|
}
|
|
87
103
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29sbGVjdGlvbnMvc3JjL2xpYi9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlHLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVwRSxPQUFPLEVBQWtCLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBUzVELE1BQU0sT0FBTyxVQUFVO0lBNEJuQixZQUE2QixTQUFnQyxFQUNoQyxpQkFBNkMsRUFBRTs7UUFEL0MsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWlDO1FBVm5FLFNBQUksR0FBRyxJQUFJLGVBQWUsQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFDM0QsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRXZELFNBQVM7UUFDRCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsU0FBUztRQUNELGtCQUFhLEdBQTZCLElBQUksQ0FBQztRQXVHL0Msd0JBQW1CLEdBQUcsQ0FBYyxPQUF3QixFQUFFLEVBQUU7WUFDcEUsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDNUIsb0JBQW9CLEVBQUssRUFDekIsU0FBUyxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFVLENBQUMsQ0FDakMsQ0FBQztRQUNOLENBQUMsQ0FBQztRQXhHRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQUEsY0FBYyxh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Q0FBQztRQUN6RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQVcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFrRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUcsT0FBTyxhQUFhLENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDM0csR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkQsVUFBVTtZQUNWLFFBQVE7WUFDUixLQUFLO1lBQ0wsV0FBVztZQUNYLElBQUk7U0FDUCxDQUFDLENBQUMsQ0FDTixDQUFDO0lBQ04sQ0FBQztJQUVPLGtCQUFrQjs7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3RDLFlBQVksQ0FBUyxHQUFHLENBQUMsRUFDekIsb0JBQW9CLEVBQVUsRUFDOUIsU0FBUyxDQUFDLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsS0FBc0IsQ0FBQyxDQUN2RCxDQUFDO0lBQ04sQ0FBQztDQVNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29sbGVjdGlvbkRhdGEsIENvbGxlY3Rpb25SZXF1ZXN0LCBDb2xsZWN0aW9uUmVxdWVzdFNvcnR9IGZyb20gJy4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb2xsZWN0aW9uUHJvdmlkZXJ9IGZyb20gJy4vcHJvdmlkZXJzL2NvbGxlY3Rpb24ucHJvdmlkZXInO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIENvbGxlY3Rpb25TdGF0ZSB7XG4gICAgSW5pdGlhbCA9ICdpbml0aWFsJyxcbiAgICBFcnJvciA9ICdlcnJvcicsXG4gICAgRW1wdHkgPSAnZW1wdHknLFxuICAgIERhdGEgPSAnZGF0YSdcbn1cblxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb248VD4ge1xuXG4gICAgLy8gQ29udHJvbHMuXG4gICAgcmVhZG9ubHkgcXVlcnlDb250cm9sOiBGb3JtQ29udHJvbDtcbiAgICByZWFkb25seSBxdWVyeUZpZWxkc0NvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHJlYWRvbmx5IHBhZ2VOdW1iZXJDb250cm9sOiBGb3JtQ29udHJvbDtcbiAgICByZWFkb25seSBwYWdlU2l6ZUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHJlYWRvbmx5IHNvcnRDb250cm9sOiBGb3JtQ29udHJvbDtcblxuICAgIC8vIFJlcXVlc3QuXG4gICAgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8e1xuICAgICAgICByZXNwb25zZT86IENvbGxlY3Rpb25EYXRhPFQ+LFxuICAgICAgICByZXF1ZXN0PzogQ29sbGVjdGlvblJlcXVlc3QsXG4gICAgICAgIGVycm9yPzogRXJyb3JcbiAgICAgICAgc3RhdGU6IENvbGxlY3Rpb25TdGF0ZSxcbiAgICAgICAgbG9hZGluZzogYm9vbGVhbixcbiAgICAgICAgaW5pdGlhbDogYm9vbGVhblxuICAgIH0+O1xuXG4gICAgcmVhZG9ubHkgcmF3JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sbGVjdGlvbkRhdGE8VD4gfCBudWxsPihudWxsKTtcbiAgICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBwcml2YXRlIF9yZWZyZXNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcblxuICAgIC8vIENhY2hlLlxuICAgIHByaXZhdGUgX3JlcXVlc3RDYWNoZTogQ29sbGVjdGlvblJlcXVlc3QgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3Byb3ZpZGVyOiBDb2xsZWN0aW9uUHJvdmlkZXI8VD4sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbFZhbHVlczogUGFydGlhbDxDb2xsZWN0aW9uUmVxdWVzdD4gPSB7fSkge1xuICAgICAgICB0aGlzLnF1ZXJ5Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChfaW5pdGlhbFZhbHVlcz8ucXVlcnkgPz8gbnVsbCk7XG4gICAgICAgIHRoaXMucXVlcnlGaWVsZHNDb250cm9sID0gbmV3IEZvcm1Db250cm9sKF9pbml0aWFsVmFsdWVzPy5xdWVyeUZpZWxkcyA/PyBbXSk7XG4gICAgICAgIHRoaXMucGFnZU51bWJlckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woX2luaXRpYWxWYWx1ZXM/LnBhZ2VOdW1iZXIgPz8gMSk7XG4gICAgICAgIHRoaXMucGFnZVNpemVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKF9pbml0aWFsVmFsdWVzPy5wYWdlU2l6ZSA/PyAyNSk7XG4gICAgICAgIHRoaXMuc29ydENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woX2luaXRpYWxWYWx1ZXM/LnNvcnQgPz8gbnVsbCk7XG5cbiAgICAgICAgdGhpcy5kYXRhJCA9IHRoaXMuZ2V0RGF0YSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWZyZXNoKCkge1xuICAgICAgICB0aGlzLl9yZWZyZXNoJC5uZXh0KDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0YSgpIHtcbiAgICAgICAgY29uc3QgZGF0YSQgPSB0aGlzLnJlcXVlc3QucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSkpLFxuICAgICAgICAgICAgbWFwKHJlcXVlc3QgPT4gdGhpcy52YWxpZGF0ZVJlcXVlc3QocmVxdWVzdCkpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKHJlcXVlc3QgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wcm92aWRlci50cmFuc2Zvcm0ocmVxdWVzdCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKHJlc3BvbnNlID0+IHRoaXMuY2FjaGVDb2xsZWN0aW9uRGF0YShyZXNwb25zZSkpLFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gKHtyZXNwb25zZSwgcmVxdWVzdCwgaW5pdGlhbDogZmFsc2V9KSksXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Y8eyBlcnJvcjogRXJyb3IsIHJlcXVlc3Q6IENvbGxlY3Rpb25SZXF1ZXN0LCBpbml0aWFsOiBib29sZWFuIH0+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh7aW5pdGlhbDogdHJ1ZX0pXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW2RhdGEkLCB0aGlzLmxvYWRpbmckLmFzT2JzZXJ2YWJsZSgpXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2RhdGEsIGxvYWRpbmddKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tYmluZWQgPSB7Li4uZGF0YSwgbG9hZGluZ307XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsuLi5jb21iaW5lZCwgc3RhdGU6IHRoaXMuZ2V0U3RhdGUoY29tYmluZWQpfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZVJlcXVlc3QocmVxdWVzdDogQ29sbGVjdGlvblJlcXVlc3QpIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIHJlc2V0IHRoZSBwYWdlIG51bWJlciB3aGVuZXZlciB3ZSBjaGFuZ2UgdGhlIHF1ZXJ5IG9yIHRoZSBwYWdlIHNpemUuXG4gICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0Q2FjaGUgJiYgcmVxdWVzdCAmJiAodGhpcy5fcmVxdWVzdENhY2hlPy5xdWVyeSAhPT0gcmVxdWVzdD8ucXVlcnkgfHwgdGhpcy5fcmVxdWVzdENhY2hlPy5wYWdlU2l6ZSAhPT0gcmVxdWVzdD8ucGFnZVNpemUpKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXJDb250cm9sPy5zZXRWYWx1ZSgxLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICAgICAgcmVxdWVzdC5wYWdlTnVtYmVyID0gdGhpcy5wYWdlTnVtYmVyQ29udHJvbD8udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZXF1ZXN0Q2FjaGUgPSB7Li4ucmVxdWVzdH07XG5cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdGF0ZShkYXRhOiB7IHJlc3BvbnNlPzogQ29sbGVjdGlvbkRhdGE8VD4sIHJlcXVlc3Q/OiBDb2xsZWN0aW9uUmVxdWVzdCwgZXJyb3I/OiBFcnJvciwgbG9hZGluZzogYm9vbGVhbiwgaW5pdGlhbDogYm9vbGVhbiB9KSB7XG4gICAgICAgIGlmICghIWRhdGE/LmVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvblN0YXRlLkVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhZGF0YT8uaW5pdGlhbCkge1xuICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5Jbml0aWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY291bnQgPSBkYXRhPy5yZXNwb25zZT8uZGF0YT8ubGVuZ3RoID8/IDA7XG4gICAgICAgIGlmIChjb3VudCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvblN0YXRlLkVtcHR5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5EYXRhO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FjaGVDb2xsZWN0aW9uRGF0YShkYXRhOiBDb2xsZWN0aW9uRGF0YTxUPikge1xuICAgICAgICB0aGlzLnJhdyQubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCByZXF1ZXN0KCkge1xuICAgICAgICBjb25zdCBwYWdlTnVtYmVyJCA9IHRoaXMuY29udHJvbFRvT2JzZXJ2YWJsZTxudW1iZXI+KHRoaXMucGFnZU51bWJlckNvbnRyb2wpO1xuICAgICAgICBjb25zdCBwYWdlU2l6ZSQgPSB0aGlzLmNvbnRyb2xUb09ic2VydmFibGU8bnVtYmVyPih0aGlzLnBhZ2VTaXplQ29udHJvbCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5JCA9IHRoaXMuZ2V0UXVlcnlPYnNlcnZhYmxlKCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RmllbGRzJCA9IHRoaXMuY29udHJvbFRvT2JzZXJ2YWJsZTxzdHJpbmdbXT4odGhpcy5xdWVyeUZpZWxkc0NvbnRyb2wpO1xuICAgICAgICBjb25zdCBzb3J0JCA9IHRoaXMuY29udHJvbFRvT2JzZXJ2YWJsZTxDb2xsZWN0aW9uUmVxdWVzdFNvcnQgfCBDb2xsZWN0aW9uUmVxdWVzdFNvcnRbXT4odGhpcy5zb3J0Q29udHJvbCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3BhZ2VOdW1iZXIkLCBwYWdlU2l6ZSQsIHF1ZXJ5JCwgcXVlcnlGaWVsZHMkLCBzb3J0JCwgdGhpcy5fcmVmcmVzaCQuYXNPYnNlcnZhYmxlKCldKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbcGFnZU51bWJlciwgcGFnZVNpemUsIHF1ZXJ5LCBxdWVyeUZpZWxkcywgc29ydF0pID0+ICh7XG4gICAgICAgICAgICAgICAgcGFnZU51bWJlcixcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICBxdWVyeUZpZWxkcyxcbiAgICAgICAgICAgICAgICBzb3J0XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFF1ZXJ5T2JzZXJ2YWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lPHN0cmluZz4oNDAwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkPHN0cmluZz4oKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLnF1ZXJ5Q29udHJvbD8udmFsdWUgYXMgc3RyaW5nIHwgbnVsbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnRyb2xUb09ic2VydmFibGUgPSA8VCA9IHVua25vd24+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgICByZXR1cm4gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkPFQ+KCksXG4gICAgICAgICAgICBzdGFydFdpdGgoY29udHJvbD8udmFsdWUgYXMgVClcbiAgICAgICAgKTtcbiAgICB9O1xuXG59XG5cbiJdfQ==
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29sbGVjdGlvbnMvc3JjL2xpYi9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlHLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVwRSxPQUFPLEVBQWtCLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBUzVELE1BQU0sT0FBTyxVQUFVO0lBMkJuQixZQUE2QixTQUFnQyxFQUNoQyxpQkFBNkMsRUFBRTs7UUFEL0MsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWlDO1FBVG5FLFNBQUksR0FBRyxJQUFJLGVBQWUsQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFDM0QsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRXZELFNBQVM7UUFDRCxlQUFVLEdBQTBCLElBQUksQ0FBQztRQUN6QyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0Msa0JBQWEsR0FBNkIsSUFBSSxDQUFDO1FBd0gvQyx3QkFBbUIsR0FBRyxDQUFjLE9BQXdCLEVBQUUsRUFBRTtZQUNwRSxPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM1QixvQkFBb0IsRUFBSyxFQUN6QixTQUFTLENBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQVUsQ0FBQyxDQUNqQyxDQUFDO1FBQ04sQ0FBQyxDQUFDO1FBekhFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFX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QUMsQ0FBQyxJQUFJLENBQzNHLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELFVBQVU7WUFDVixRQUFRO1lBQ1IsS0FBSztZQUNMLFdBQVc7WUFDWCxJQUFJO1NBQ1AsQ0FBQyxDQUFDLENBQ04sQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0I7O1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN0QyxZQUFZLENBQVMsR0FBRyxDQUFDLEVBQ3pCLG9CQUFvQixFQUFVLEVBQzlCLFNBQVMsQ0FBQyxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLEtBQXNCLENBQUMsQ0FDdkQsQ0FBQztJQUNOLENBQUM7Q0FTSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbGxlY3Rpb25EYXRhLCBDb2xsZWN0aW9uUmVxdWVzdCwgQ29sbGVjdGlvblJlcXVlc3RTb3J0fSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29sbGVjdGlvblByb3ZpZGVyfSBmcm9tICcuL3Byb3ZpZGVycy9jb2xsZWN0aW9uLnByb3ZpZGVyJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgZW51bSBDb2xsZWN0aW9uU3RhdGUge1xuICAgIEluaXRpYWwgPSAnaW5pdGlhbCcsXG4gICAgRXJyb3IgPSAnZXJyb3InLFxuICAgIEVtcHR5ID0gJ2VtcHR5JyxcbiAgICBEYXRhID0gJ2RhdGEnXG59XG5cbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uPFQ+IHtcblxuICAgIC8vIENvbnRyb2xzLlxuICAgIHJlYWRvbmx5IHF1ZXJ5Q29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcmVhZG9ubHkgcXVlcnlGaWVsZHNDb250cm9sOiBGb3JtQ29udHJvbDtcbiAgICByZWFkb25seSBwYWdlTnVtYmVyQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcmVhZG9ubHkgcGFnZVNpemVDb250cm9sOiBGb3JtQ29udHJvbDtcbiAgICByZWFkb25seSBzb3J0Q29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgICAvLyBSZXF1ZXN0LlxuICAgIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPHtcbiAgICAgICAgcmVzcG9uc2U/OiBDb2xsZWN0aW9uRGF0YTxUPixcbiAgICAgICAgcmVxdWVzdD86IENvbGxlY3Rpb25SZXF1ZXN0LFxuICAgICAgICBlcnJvcj86IEVycm9yXG4gICAgICAgIHN0YXRlOiBDb2xsZWN0aW9uU3RhdGUsXG4gICAgICAgIGxvYWRpbmc6IGJvb2xlYW4sXG4gICAgICAgIGluaXRpYWw6IGJvb2xlYW5cbiAgICB9PjtcblxuICAgIHJlYWRvbmx5IHJhdyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbGxlY3Rpb25EYXRhPFQ+IHwgbnVsbD4obnVsbCk7XG4gICAgcmVhZG9ubHkgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgcHJpdmF0ZSBfZm9ybWF0dGVyOiAoaXRlbTogVCkgPT4gVCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX3JlZnJlc2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgX3JlcXVlc3RDYWNoZTogQ29sbGVjdGlvblJlcXVlc3QgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3Byb3ZpZGVyOiBDb2xsZWN0aW9uUHJvdmlkZXI8VD4sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbFZhbHVlczogUGFydGlhbDxDb2xsZWN0aW9uUmVxdWVzdD4gPSB7fSkge1xuICAgICAgICB0aGlzLnF1ZXJ5Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChfaW5pdGlhbFZhbHVlcz8ucXVlcnkgPz8gbnVsbCk7XG4gICAgICAgIHRoaXMucXVlcnlGaWVsZHNDb250cm9sID0gbmV3IEZvcm1Db250cm9sKF9pbml0aWFsVmFsdWVzPy5xdWVyeUZpZWxkcyA/PyBbXSk7XG4gICAgICAgIHRoaXMucGFnZU51bWJlckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woX2luaXRpYWxWYWx1ZXM/LnBhZ2VOdW1iZXIgPz8gMSk7XG4gICAgICAgIHRoaXMucGFnZVNpemVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKF9pbml0aWFsVmFsdWVzPy5wYWdlU2l6ZSA/PyAyNSk7XG4gICAgICAgIHRoaXMuc29ydENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woX2luaXRpYWxWYWx1ZXM/LnNvcnQgPz8gbnVsbCk7XG5cbiAgICAgICAgdGhpcy5kYXRhJCA9IHRoaXMuZ2V0RGF0YSgpO1xuICAgIH1cblxuICAgIHJlZnJlc2goKSB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2gkLm5leHQoMCk7XG4gICAgfVxuXG4gICAgc2V0Rm9ybWF0dGVyKGNhbGxiYWNrOiAoaXRlbXM6IFQpID0+IFQpIHtcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyID0gY2FsbGJhY2s7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0YSgpIHtcbiAgICAgICAgY29uc3QgZGF0YSQgPSB0aGlzLnJlcXVlc3QucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSkpLFxuICAgICAgICAgICAgbWFwKHJlcXVlc3QgPT4gdGhpcy52YWxpZGF0ZVJlcXVlc3QocmVxdWVzdCkpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKHJlcXVlc3QgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wcm92aWRlci50cmFuc2Zvcm0ocmVxdWVzdCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKHJlc3BvbnNlID0+IHRoaXMuY2FjaGVDb2xsZWN0aW9uRGF0YShyZXNwb25zZSkpLFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gKHtyZXNwb25zZSwgcmVxdWVzdCwgaW5pdGlhbDogZmFsc2V9KSksXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Y8eyBlcnJvcjogRXJyb3IsIHJlc3BvbnNlOiBudWxsLCByZXF1ZXN0OiBDb2xsZWN0aW9uUmVxdWVzdCwgaW5pdGlhbDogYm9vbGVhbiB9Pih7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh7aW5pdGlhbDogdHJ1ZSwgcmVzcG9uc2U6IG51bGx9KVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtkYXRhJCwgdGhpcy5sb2FkaW5nJC5hc09ic2VydmFibGUoKV0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtkYXRhLCBsb2FkaW5nXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbWJpbmVkID0gey4uLmRhdGEsIGxvYWRpbmd9O1xuICAgICAgICAgICAgICAgIHJldHVybiB7Li4uY29tYmluZWQsIHJlc3BvbnNlOiB0aGlzLmZvcm1hdFJlc3BvbnNlKGRhdGE/LnJlc3BvbnNlKSwgc3RhdGU6IHRoaXMuZ2V0U3RhdGUoY29tYmluZWQpfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRSZXNwb25zZShyZXNwb25zZTogQ29sbGVjdGlvbkRhdGE8VD4pIHtcbiAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IChyZXNwb25zZT8uZGF0YSA/PyBbXSkubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5fZm9ybWF0dGVyID8gdGhpcy5fZm9ybWF0dGVyPy4oaXRlbSkgOiBpdGVtO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsuLi5yZXNwb25zZSwgZGF0YX07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZVJlcXVlc3QocmVxdWVzdDogQ29sbGVjdGlvblJlcXVlc3QpIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIHJlc2V0IHRoZSBwYWdlIG51bWJlciB3aGVuZXZlciB3ZSBjaGFuZ2UgdGhlIHF1ZXJ5IG9yIHRoZSBwYWdlIHNpemUuXG4gICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0Q2FjaGUgJiYgcmVxdWVzdCAmJiAodGhpcy5fcmVxdWVzdENhY2hlPy5xdWVyeSAhPT0gcmVxdWVzdD8ucXVlcnkgfHwgdGhpcy5fcmVxdWVzdENhY2hlPy5wYWdlU2l6ZSAhPT0gcmVxdWVzdD8ucGFnZVNpemUpKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXJDb250cm9sPy5zZXRWYWx1ZSgxLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICAgICAgcmVxdWVzdC5wYWdlTnVtYmVyID0gdGhpcy5wYWdlTnVtYmVyQ29udHJvbD8udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZXF1ZXN0Q2FjaGUgPSB7Li4ucmVxdWVzdH07XG5cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdGF0ZShkYXRhOiB7IHJlc3BvbnNlPzogQ29sbGVjdGlvbkRhdGE8VD4sIHJlcXVlc3Q/OiBDb2xsZWN0aW9uUmVxdWVzdCwgZXJyb3I/OiBFcnJvciwgbG9hZGluZzogYm9vbGVhbiwgaW5pdGlhbDogYm9vbGVhbiB9KSB7XG4gICAgICAgIGlmICghIWRhdGE/LmVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvblN0YXRlLkVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhZGF0YT8uaW5pdGlhbCkge1xuICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5Jbml0aWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY291bnQgPSBkYXRhPy5yZXNwb25zZT8uZGF0YT8ubGVuZ3RoID8/IDA7XG4gICAgICAgIGlmIChjb3VudCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvblN0YXRlLkVtcHR5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5EYXRhO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FjaGVDb2xsZWN0aW9uRGF0YShkYXRhOiBDb2xsZWN0aW9uRGF0YTxUPikge1xuICAgICAgICB0aGlzLnJhdyQubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCByZXF1ZXN0KCkge1xuICAgICAgICBjb25zdCBwYWdlTnVtYmVyJCA9IHRoaXMuY29udHJvbFRvT2JzZXJ2YWJsZTxudW1iZXI+KHRoaXMucGFnZU51bWJlckNvbnRyb2wpO1xuICAgICAgICBjb25zdCBwYWdlU2l6ZSQgPSB0aGlzLmNvbnRyb2xUb09ic2VydmFibGU8bnVtYmVyPih0aGlzLnBhZ2VTaXplQ29udHJvbCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5JCA9IHRoaXMuZ2V0UXVlcnlPYnNlcnZhYmxlKCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RmllbGRzJCA9IHRoaXMuY29udHJvbFRvT2JzZXJ2YWJsZTxzdHJpbmdbXT4odGhpcy5xdWVyeUZpZWxkc0NvbnRyb2wpO1xuICAgICAgICBjb25zdCBzb3J0JCA9IHRoaXMuY29udHJvbFRvT2JzZXJ2YWJsZTxDb2xsZWN0aW9uUmVxdWVzdFNvcnQgfCBDb2xsZWN0aW9uUmVxdWVzdFNvcnRbXT4odGhpcy5zb3J0Q29udHJvbCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3BhZ2VOdW1iZXIkLCBwYWdlU2l6ZSQsIHF1ZXJ5JCwgcXVlcnlGaWVsZHMkLCBzb3J0JCwgdGhpcy5fcmVmcmVzaCQuYXNPYnNlcnZhYmxlKCldKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbcGFnZU51bWJlciwgcGFnZVNpemUsIHF1ZXJ5LCBxdWVyeUZpZWxkcywgc29ydF0pID0+ICh7XG4gICAgICAgICAgICAgICAgcGFnZU51bWJlcixcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICBxdWVyeUZpZWxkcyxcbiAgICAgICAgICAgICAgICBzb3J0XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFF1ZXJ5T2JzZXJ2YWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lPHN0cmluZz4oNDAwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkPHN0cmluZz4oKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLnF1ZXJ5Q29udHJvbD8udmFsdWUgYXMgc3RyaW5nIHwgbnVsbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnRyb2xUb09ic2VydmFibGUgPSA8VCA9IHVua25vd24+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgICByZXR1cm4gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkPFQ+KCksXG4gICAgICAgICAgICBzdGFydFdpdGgoY29udHJvbD8udmFsdWUgYXMgVClcbiAgICAgICAgKTtcbiAgICB9O1xuXG59XG5cbiJdfQ==
|
|
@@ -314,8 +314,8 @@ class Collection {
|
|
|
314
314
|
this.raw$ = new BehaviorSubject(null);
|
|
315
315
|
this.loading$ = new BehaviorSubject(true);
|
|
316
316
|
// State.
|
|
317
|
+
this._formatter = null;
|
|
317
318
|
this._refresh$ = new BehaviorSubject(0);
|
|
318
|
-
// Cache.
|
|
319
319
|
this._requestCache = null;
|
|
320
320
|
this.controlToObservable = (control) => {
|
|
321
321
|
return control.valueChanges.pipe(distinctUntilChanged(), startWith(control === null || control === void 0 ? void 0 : control.value));
|
|
@@ -330,19 +330,35 @@ class Collection {
|
|
|
330
330
|
refresh() {
|
|
331
331
|
this._refresh$.next(0);
|
|
332
332
|
}
|
|
333
|
+
setFormatter(callback) {
|
|
334
|
+
this._formatter = callback;
|
|
335
|
+
return this;
|
|
336
|
+
}
|
|
333
337
|
getData() {
|
|
334
338
|
const data$ = this.request.pipe(tap(() => this.loading$.next(true)), map(request => this.validateRequest(request)), switchMap(request => {
|
|
335
339
|
return this._provider.transform(request).pipe(tap(response => this.cacheCollectionData(response)), map(response => ({ response, request, initial: false })), catchError(error => of({
|
|
336
340
|
error,
|
|
337
341
|
request,
|
|
342
|
+
response: null,
|
|
338
343
|
initial: false
|
|
339
344
|
})));
|
|
340
|
-
}), startWith({ initial: true }));
|
|
345
|
+
}), startWith({ initial: true, response: null }));
|
|
341
346
|
return combineLatest([data$, this.loading$.asObservable()]).pipe(map(([data, loading]) => {
|
|
342
347
|
const combined = Object.assign(Object.assign({}, data), { loading });
|
|
343
|
-
return Object.assign(Object.assign({}, combined), { state: this.getState(combined) });
|
|
348
|
+
return Object.assign(Object.assign({}, combined), { response: this.formatResponse(data === null || data === void 0 ? void 0 : data.response), state: this.getState(combined) });
|
|
344
349
|
}));
|
|
345
350
|
}
|
|
351
|
+
formatResponse(response) {
|
|
352
|
+
var _a;
|
|
353
|
+
if (!response) {
|
|
354
|
+
return response;
|
|
355
|
+
}
|
|
356
|
+
const data = ((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : []).map(item => {
|
|
357
|
+
var _a;
|
|
358
|
+
return !!this._formatter ? (_a = this._formatter) === null || _a === void 0 ? void 0 : _a.call(this, item) : item;
|
|
359
|
+
});
|
|
360
|
+
return Object.assign(Object.assign({}, response), { data });
|
|
361
|
+
}
|
|
346
362
|
validateRequest(request) {
|
|
347
363
|
var _a, _b, _c, _d;
|
|
348
364
|
// We should reset the page number whenever we change the query or the page size.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravobit-bb-foundation-collections.js","sources":["../../../projects/bb-foundation/collections/src/lib/providers/collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/api-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/local-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/components/collections.directive.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.html","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.html","../../../projects/bb-foundation/collections/src/lib/collection.ts","../../../projects/bb-foundation/collections/src/lib/collections.module.ts","../../../projects/bb-foundation/collections/src/bravobit-bb-foundation-collections.ts"],"sourcesContent":["import {CollectionData, CollectionRequest} from '../interfaces/collection.interface';\nimport {Observable} from 'rxjs';\n\nexport abstract class CollectionProvider<T> {\n\n abstract transform(request: CollectionRequest): Observable<CollectionData<T>>;\n\n protected formatArrayToCollectionData(items: T[]) {\n const count = items?.length ?? 1;\n return <CollectionData<T>>{\n pageSize: count,\n totalEntries: count,\n pageNumber: 1,\n totalPages: 1,\n data: items\n };\n }\n\n}\n","import {CollectionApiResponse, CollectionData, CollectionRequest} from '../interfaces/collection.interface';\nimport {combineLatest, isObservable, Observable, of} from 'rxjs';\nimport {CollectionProvider} from './collection.provider';\nimport {HttpClient} from '@angular/common/http';\nimport {map, switchMap} from 'rxjs/operators';\n\nexport class ApiCollectionProvider<T> extends CollectionProvider<T> {\n\n // State.\n private _extraParams: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> } = {};\n\n constructor(private readonly _endpoint: string | Observable<string>,\n private readonly _httpClient: HttpClient) {\n super();\n }\n\n append(name: string, value: string | number | boolean | ReadonlyArray<string | number | boolean> | Observable<string | number | boolean | ReadonlyArray<string | number | boolean>>) {\n this._extraParams[name] = isObservable(value) ? value : of(value);\n return this;\n }\n\n transform(request: CollectionRequest) {\n const endpoint$ = isObservable(this._endpoint) ? this._endpoint : of(this._endpoint);\n const params = this.getBackendFormat(request);\n const extraParams$ = this.getExtraParams(this._extraParams);\n\n return combineLatest([endpoint$, extraParams$]).pipe(\n switchMap(([endpoint, extraParams]) => {\n return this._httpClient.get<CollectionApiResponse<T> | T[]>(endpoint, {\n params: {...params, ...extraParams}\n });\n }),\n map(response => this.formatToCollectionData(response))\n );\n }\n\n private getExtraParams(params: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> }) {\n const keys = Object.keys(params ?? {});\n if (keys.length <= 0) {\n return of({});\n }\n\n const observables$ = keys.map(key => params?.[key]);\n return combineLatest(observables$).pipe(\n map(data => {\n return data.reduce((previous, current, index) => {\n const key = keys?.[index];\n return {...previous, [key]: current};\n }, {});\n })\n );\n }\n\n private formatToCollectionData(response: CollectionApiResponse<T> | T[]) {\n if (Array.isArray(response)) {\n return this.formatArrayToCollectionData(response);\n }\n\n return <CollectionData<T>>{\n pageSize: response?.['page_size'] as number,\n pageNumber: response?.['page_number'] as number,\n totalPages: response?.['total_pages'] as number,\n totalEntries: response?.['total_entries'] as number,\n data: response?.['data'] as T[]\n };\n }\n\n private getBackendFormat = (request: CollectionRequest) => {\n const params = {};\n\n params['page'] = request?.pageNumber ?? 1;\n params['page_size'] = request?.pageSize ?? 25;\n\n if (request?.sort) {\n const sort = Array.isArray(request?.sort) ? request?.sort : [request?.sort];\n const filteredSort = sort?.filter(item => !!item?.name && !!item?.direction);\n\n params['sort'] = filteredSort?.map(item => item?.name)?.join(',');\n params['sort_direction'] = filteredSort?.map(item => item?.direction)?.join(',');\n }\n\n if (request?.query && request?.query?.length > 0 && request?.queryFields && request?.queryFields?.length > 0) {\n params['query'] = request?.query;\n params['query_fields'] = request?.queryFields?.join(',');\n }\n\n return params;\n };\n\n}\n","import {CollectionRequest} from '../interfaces/collection.interface';\nimport {CollectionProvider} from './collection.provider';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport class LocalCollectionProvider<T> extends CollectionProvider<T> {\n\n constructor(private readonly _items: T[] | Observable<T[]>) {\n super();\n }\n\n transform(request: CollectionRequest) {\n const items$ = Array.isArray(this._items)\n ? of(this._items)\n : this._items;\n\n return items$.pipe(\n map(items => this.formatArrayToCollectionData(items))\n );\n }\n\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[bbCollectionsData]'\n})\nexport class BbCollectionsData<T> {\n}\n\n@Directive({\n selector: '[bbCollectionsEmpty]'\n})\nexport class BbCollectionsEmpty {\n}\n\n@Directive({\n selector: '[bbCollectionsError]'\n})\nexport class BbCollectionsError {\n}\n\n@Directive({\n selector: '[bbCollectionsInitial]'\n})\nexport class BbCollectionsInitial {\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n} from '../collections.directive';\nimport {Collection} from '../../collection';\n\n@Component({\n selector: '[bb-collections-viewer]',\n templateUrl: './collections-viewer.component.html',\n styleUrls: ['./collections-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-collections-viewer'},\n preserveWhitespaces: false\n})\nexport class BbCollectionsViewer<T = unknown> {\n\n // Content.\n @ContentChild(BbCollectionsData, {read: TemplateRef, static: false}) dataTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsEmpty, {read: TemplateRef, static: false}) emptyTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsError, {read: TemplateRef, static: false}) errorTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsInitial, {read: TemplateRef, static: false}) initialTemplate?: TemplateRef<any>;\n\n // Inputs.\n @Input() collection: Collection<T> | null = null;\n\n}\n","<ng-container *ngIf=\"collection?.data$ | async as data\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'initial'\">\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'error'\">\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\n </ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {CollectionData} from '../../interfaces/collection.interface';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\nimport {Collection} from '../../collection';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'bb-collections-pager',\n templateUrl: './collections-pager.component.html',\n styleUrls: ['./collections-pager.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-collections-pager'},\n preserveWhitespaces: false\n})\nexport class BbCollectionsPager implements OnInit, OnDestroy {\n\n // Readonly data.\n readonly maxAmountOfButtons: number = 5;\n\n // Inputs.\n @Input()\n set label(value: string) {\n this._label = value;\n this.cache$.next(this.cache$.getValue());\n }\n\n @Input()\n set collection(collection: Collection<unknown> | null) {\n this._collection = collection;\n this.observeCollectionChanges();\n }\n\n // Data.\n data$: Observable<{\n totalPages: number,\n pageNumber: number,\n pages: { page: number, active: boolean }[],\n allowNext: boolean\n allowPrevious: boolean,\n label: string\n }>;\n cache$ = new BehaviorSubject<Partial<CollectionData<unknown>>>({});\n\n // State and subscriptions.\n private _label: string | null = null;\n private _collection: Collection<unknown> | null = null;\n private _subscription: Subscription | null = null;\n\n ngOnInit() {\n this.data$ = this.cache$.pipe(\n map(cache => {\n const pageSize = cache?.pageSize ?? 1;\n const pageNumber = cache?.pageNumber ?? 1;\n\n const totalPages = cache?.totalPages ?? 1;\n const totalEntries = cache?.totalEntries ?? 0;\n const fromStart = Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries);\n const fromEnd = Math.min((fromStart - 1) + pageSize, totalEntries);\n\n const pages = this.filterActivePages(pageNumber, totalPages);\n\n const allowNext = pageNumber < totalPages;\n const allowPrevious = pageNumber > 1;\n\n return {\n totalPages,\n pages,\n pageNumber,\n allowNext,\n allowPrevious,\n label: this.calculateLabel(fromStart, fromEnd, totalEntries)\n };\n })\n );\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n setPage(pageNumber: number, totalPages: number) {\n // Calculate the new value.\n const newValue = Math.min(\n totalPages,\n Math.max(1, pageNumber)\n );\n\n // Validate the value is actually different.\n const currentValue = this._collection?.pageNumberControl?.value;\n if (currentValue === newValue) {\n return;\n }\n\n this._collection?.pageNumberControl?.setValue(pageNumber);\n }\n\n private observeCollectionChanges() {\n if (!this._collection) {\n return;\n }\n\n if (this._subscription) {\n this._subscription?.unsubscribe();\n }\n\n const pageNumber = this._collection?.pageNumberControl?.value;\n const pageSize = this._collection?.pageSizeControl?.value;\n\n this.cache$.next({pageNumber, pageSize});\n\n this._subscription = this._collection.raw$.subscribe(data => {\n if (data) {\n this.cache$.next(data);\n }\n });\n }\n\n private calculateLabel(start: number, end: number, total: number) {\n const startPoint = '[start]';\n const endPoint = '[end]';\n const totalPoint = '[total]';\n const label = this._label ?? `Showing ${startPoint} to ${endPoint} of ${totalPoint} results`;\n\n return label\n .replace(startPoint, `<strong>${start}</strong>`)\n .replace(endPoint, `<strong>${end}</strong>`)\n .replace(totalPoint, `<strong>${total}</strong>`);\n }\n\n private calculatePages(pageNumber: number, totalPages: number) {\n const min = 1;\n const max = totalPages;\n const amount = Math.max(1, this.maxAmountOfButtons);\n\n const data = Array(amount)\n .fill(0)\n .map((_, index) => pageNumber + (index - 1));\n\n // Validate if the minimum value less than\n // the first value.\n if (data[0] < min) {\n return data.map(item => item + 1);\n }\n\n // Calculate the difference with the max\n // if this value is higher than 0 we should minus it.\n const lastValueInArray = data[data.length - 1];\n const differenceWithMax = lastValueInArray - max;\n if (differenceWithMax > 0) {\n return data.map(item => item - differenceWithMax);\n }\n\n // Just return the default data.\n return data;\n }\n\n private filterActivePages(pageNumber: number, totalPages: number) {\n return this.calculatePages(pageNumber, totalPages)\n .filter(page => page > 0 && page <= totalPages)\n .map(page => ({page, active: pageNumber === page}));\n }\n\n}\n","<ng-container *ngIf=\"data$ | async as data\">\n <div [innerHTML]=\"data?.label\"\n class=\"bb-collections-pager-text\">\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"!data?.allowPrevious\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n ←\n </button>\n </li>\n <li *ngFor=\"let item of data?.pages\"\n [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"!data?.allowNext\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n →\n </button>\n </li>\n </ul>\n </div>\n</ng-container>\n","import {catchError, debounceTime, distinctUntilChanged, map, startWith, switchMap, tap} from 'rxjs/operators';\nimport {CollectionData, CollectionRequest, CollectionRequestSort} from './interfaces/collection.interface';\nimport {BehaviorSubject, combineLatest, Observable, of} from 'rxjs';\nimport {CollectionProvider} from './providers/collection.provider';\nimport {AbstractControl, FormControl} from '@angular/forms';\n\nexport const enum CollectionState {\n Initial = 'initial',\n Error = 'error',\n Empty = 'empty',\n Data = 'data'\n}\n\nexport class Collection<T> {\n\n // Controls.\n readonly queryControl: FormControl;\n readonly queryFieldsControl: FormControl;\n readonly pageNumberControl: FormControl;\n readonly pageSizeControl: FormControl;\n readonly sortControl: FormControl;\n\n // Request.\n readonly data$: Observable<{\n response?: CollectionData<T>,\n request?: CollectionRequest,\n error?: Error\n state: CollectionState,\n loading: boolean,\n initial: boolean\n }>;\n\n readonly raw$ = new BehaviorSubject<CollectionData<T> | null>(null);\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n // State.\n private _refresh$ = new BehaviorSubject<number>(0);\n\n // Cache.\n private _requestCache: CollectionRequest | null = null;\n\n constructor(private readonly _provider: CollectionProvider<T>,\n private readonly _initialValues: Partial<CollectionRequest> = {}) {\n this.queryControl = new FormControl(_initialValues?.query ?? null);\n this.queryFieldsControl = new FormControl(_initialValues?.queryFields ?? []);\n this.pageNumberControl = new FormControl(_initialValues?.pageNumber ?? 1);\n this.pageSizeControl = new FormControl(_initialValues?.pageSize ?? 25);\n this.sortControl = new FormControl(_initialValues?.sort ?? null);\n\n this.data$ = this.getData();\n }\n\n public refresh() {\n this._refresh$.next(0);\n }\n\n private getData() {\n const data$ = this.request.pipe(\n tap(() => this.loading$.next(true)),\n map(request => this.validateRequest(request)),\n switchMap(request => {\n return this._provider.transform(request).pipe(\n tap(response => this.cacheCollectionData(response)),\n map(response => ({response, request, initial: false})),\n catchError(error => of<{ error: Error, request: CollectionRequest, initial: boolean }>({\n error,\n request,\n initial: false\n }))\n );\n }),\n startWith({initial: true})\n );\n\n return combineLatest([data$, this.loading$.asObservable()]).pipe(\n map(([data, loading]) => {\n const combined = {...data, loading};\n return {...combined, state: this.getState(combined)};\n })\n );\n }\n\n private validateRequest(request: CollectionRequest) {\n // We should reset the page number whenever we change the query or the page size.\n if (this._requestCache && request && (this._requestCache?.query !== request?.query || this._requestCache?.pageSize !== request?.pageSize)) {\n this.pageNumberControl?.setValue(1, {emitEvent: false});\n request.pageNumber = this.pageNumberControl?.value;\n }\n\n this._requestCache = {...request};\n\n return request;\n }\n\n private getState(data: { response?: CollectionData<T>, request?: CollectionRequest, error?: Error, loading: boolean, initial: boolean }) {\n if (!!data?.error) {\n return CollectionState.Error;\n }\n\n if (!!data?.initial) {\n return CollectionState.Initial;\n }\n\n const count = data?.response?.data?.length ?? 0;\n if (count <= 0) {\n return CollectionState.Empty;\n }\n\n return CollectionState.Data;\n }\n\n private cacheCollectionData(data: CollectionData<T>) {\n this.raw$.next(data);\n this.loading$.next(false);\n }\n\n private get request() {\n const pageNumber$ = this.controlToObservable<number>(this.pageNumberControl);\n const pageSize$ = this.controlToObservable<number>(this.pageSizeControl);\n const query$ = this.getQueryObservable();\n const queryFields$ = this.controlToObservable<string[]>(this.queryFieldsControl);\n const sort$ = this.controlToObservable<CollectionRequestSort | CollectionRequestSort[]>(this.sortControl);\n\n return combineLatest([pageNumber$, pageSize$, query$, queryFields$, sort$, this._refresh$.asObservable()]).pipe(\n map(([pageNumber, pageSize, query, queryFields, sort]) => ({\n pageNumber,\n pageSize,\n query,\n queryFields,\n sort\n }))\n );\n }\n\n private getQueryObservable() {\n return this.queryControl.valueChanges.pipe(\n debounceTime<string>(400),\n distinctUntilChanged<string>(),\n startWith(this.queryControl?.value as string | null)\n );\n }\n\n private controlToObservable = <T = unknown>(control: AbstractControl) => {\n return control.valueChanges.pipe(\n distinctUntilChanged<T>(),\n startWith(control?.value as T)\n );\n };\n\n}\n\n","import {\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n} from './components/collections.directive';\nimport {BbCollectionsViewer} from './components/collections-viewer/collections-viewer.component';\nimport {BbCollectionsPager} from './components/collections-pager/collections-pager.component';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n // Components.\n BbCollectionsViewer,\n BbCollectionsPager,\n // Directives.\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n ],\n exports: [\n // Components.\n BbCollectionsViewer,\n BbCollectionsPager,\n // Directives.\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n ]\n})\nexport class CollectionsModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bravobit-bb-foundation-collections.js","sources":["../../../projects/bb-foundation/collections/src/lib/providers/collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/api-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/providers/local-collection.provider.ts","../../../projects/bb-foundation/collections/src/lib/components/collections.directive.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-viewer/collections-viewer.component.html","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.ts","../../../projects/bb-foundation/collections/src/lib/components/collections-pager/collections-pager.component.html","../../../projects/bb-foundation/collections/src/lib/collection.ts","../../../projects/bb-foundation/collections/src/lib/collections.module.ts","../../../projects/bb-foundation/collections/src/bravobit-bb-foundation-collections.ts"],"sourcesContent":["import {CollectionData, CollectionRequest} from '../interfaces/collection.interface';\nimport {Observable} from 'rxjs';\n\nexport abstract class CollectionProvider<T> {\n\n abstract transform(request: CollectionRequest): Observable<CollectionData<T>>;\n\n protected formatArrayToCollectionData(items: T[]) {\n const count = items?.length ?? 1;\n return <CollectionData<T>>{\n pageSize: count,\n totalEntries: count,\n pageNumber: 1,\n totalPages: 1,\n data: items\n };\n }\n\n}\n","import {CollectionApiResponse, CollectionData, CollectionRequest} from '../interfaces/collection.interface';\nimport {combineLatest, isObservable, Observable, of} from 'rxjs';\nimport {CollectionProvider} from './collection.provider';\nimport {HttpClient} from '@angular/common/http';\nimport {map, switchMap} from 'rxjs/operators';\n\nexport class ApiCollectionProvider<T> extends CollectionProvider<T> {\n\n // State.\n private _extraParams: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> } = {};\n\n constructor(private readonly _endpoint: string | Observable<string>,\n private readonly _httpClient: HttpClient) {\n super();\n }\n\n append(name: string, value: string | number | boolean | ReadonlyArray<string | number | boolean> | Observable<string | number | boolean | ReadonlyArray<string | number | boolean>>) {\n this._extraParams[name] = isObservable(value) ? value : of(value);\n return this;\n }\n\n transform(request: CollectionRequest) {\n const endpoint$ = isObservable(this._endpoint) ? this._endpoint : of(this._endpoint);\n const params = this.getBackendFormat(request);\n const extraParams$ = this.getExtraParams(this._extraParams);\n\n return combineLatest([endpoint$, extraParams$]).pipe(\n switchMap(([endpoint, extraParams]) => {\n return this._httpClient.get<CollectionApiResponse<T> | T[]>(endpoint, {\n params: {...params, ...extraParams}\n });\n }),\n map(response => this.formatToCollectionData(response))\n );\n }\n\n private getExtraParams(params: { [name: string]: Observable<string | number | boolean | ReadonlyArray<string | number | boolean>> }) {\n const keys = Object.keys(params ?? {});\n if (keys.length <= 0) {\n return of({});\n }\n\n const observables$ = keys.map(key => params?.[key]);\n return combineLatest(observables$).pipe(\n map(data => {\n return data.reduce((previous, current, index) => {\n const key = keys?.[index];\n return {...previous, [key]: current};\n }, {});\n })\n );\n }\n\n private formatToCollectionData(response: CollectionApiResponse<T> | T[]) {\n if (Array.isArray(response)) {\n return this.formatArrayToCollectionData(response);\n }\n\n return <CollectionData<T>>{\n pageSize: response?.['page_size'] as number,\n pageNumber: response?.['page_number'] as number,\n totalPages: response?.['total_pages'] as number,\n totalEntries: response?.['total_entries'] as number,\n data: response?.['data'] as T[]\n };\n }\n\n private getBackendFormat = (request: CollectionRequest) => {\n const params = {};\n\n params['page'] = request?.pageNumber ?? 1;\n params['page_size'] = request?.pageSize ?? 25;\n\n if (request?.sort) {\n const sort = Array.isArray(request?.sort) ? request?.sort : [request?.sort];\n const filteredSort = sort?.filter(item => !!item?.name && !!item?.direction);\n\n params['sort'] = filteredSort?.map(item => item?.name)?.join(',');\n params['sort_direction'] = filteredSort?.map(item => item?.direction)?.join(',');\n }\n\n if (request?.query && request?.query?.length > 0 && request?.queryFields && request?.queryFields?.length > 0) {\n params['query'] = request?.query;\n params['query_fields'] = request?.queryFields?.join(',');\n }\n\n return params;\n };\n\n}\n","import {CollectionRequest} from '../interfaces/collection.interface';\nimport {CollectionProvider} from './collection.provider';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport class LocalCollectionProvider<T> extends CollectionProvider<T> {\n\n constructor(private readonly _items: T[] | Observable<T[]>) {\n super();\n }\n\n transform(request: CollectionRequest) {\n const items$ = Array.isArray(this._items)\n ? of(this._items)\n : this._items;\n\n return items$.pipe(\n map(items => this.formatArrayToCollectionData(items))\n );\n }\n\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[bbCollectionsData]'\n})\nexport class BbCollectionsData<T> {\n}\n\n@Directive({\n selector: '[bbCollectionsEmpty]'\n})\nexport class BbCollectionsEmpty {\n}\n\n@Directive({\n selector: '[bbCollectionsError]'\n})\nexport class BbCollectionsError {\n}\n\n@Directive({\n selector: '[bbCollectionsInitial]'\n})\nexport class BbCollectionsInitial {\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n} from '../collections.directive';\nimport {Collection} from '../../collection';\n\n@Component({\n selector: '[bb-collections-viewer]',\n templateUrl: './collections-viewer.component.html',\n styleUrls: ['./collections-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-collections-viewer'},\n preserveWhitespaces: false\n})\nexport class BbCollectionsViewer<T = unknown> {\n\n // Content.\n @ContentChild(BbCollectionsData, {read: TemplateRef, static: false}) dataTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsEmpty, {read: TemplateRef, static: false}) emptyTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsError, {read: TemplateRef, static: false}) errorTemplate?: TemplateRef<any>;\n @ContentChild(BbCollectionsInitial, {read: TemplateRef, static: false}) initialTemplate?: TemplateRef<any>;\n\n // Inputs.\n @Input() collection: Collection<T> | null = null;\n\n}\n","<ng-container *ngIf=\"collection?.data$ | async as data\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"dataTemplate; context: {items: data?.response?.data}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'initial'\">\n <ng-container *ngTemplateOutlet=\"initialTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate; context: {query: data?.request?.query}\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'error'\">\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: {error: data?.error}\"></ng-container>\n </ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {CollectionData} from '../../interfaces/collection.interface';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\nimport {Collection} from '../../collection';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'bb-collections-pager',\n templateUrl: './collections-pager.component.html',\n styleUrls: ['./collections-pager.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-collections-pager'},\n preserveWhitespaces: false\n})\nexport class BbCollectionsPager implements OnInit, OnDestroy {\n\n // Readonly data.\n readonly maxAmountOfButtons: number = 5;\n\n // Inputs.\n @Input()\n set label(value: string) {\n this._label = value;\n this.cache$.next(this.cache$.getValue());\n }\n\n @Input()\n set collection(collection: Collection<unknown> | null) {\n this._collection = collection;\n this.observeCollectionChanges();\n }\n\n // Data.\n data$: Observable<{\n totalPages: number,\n pageNumber: number,\n pages: { page: number, active: boolean }[],\n allowNext: boolean\n allowPrevious: boolean,\n label: string\n }>;\n cache$ = new BehaviorSubject<Partial<CollectionData<unknown>>>({});\n\n // State and subscriptions.\n private _label: string | null = null;\n private _collection: Collection<unknown> | null = null;\n private _subscription: Subscription | null = null;\n\n ngOnInit() {\n this.data$ = this.cache$.pipe(\n map(cache => {\n const pageSize = cache?.pageSize ?? 1;\n const pageNumber = cache?.pageNumber ?? 1;\n\n const totalPages = cache?.totalPages ?? 1;\n const totalEntries = cache?.totalEntries ?? 0;\n const fromStart = Math.min((pageSize * (pageNumber - 1)) + 1, totalEntries);\n const fromEnd = Math.min((fromStart - 1) + pageSize, totalEntries);\n\n const pages = this.filterActivePages(pageNumber, totalPages);\n\n const allowNext = pageNumber < totalPages;\n const allowPrevious = pageNumber > 1;\n\n return {\n totalPages,\n pages,\n pageNumber,\n allowNext,\n allowPrevious,\n label: this.calculateLabel(fromStart, fromEnd, totalEntries)\n };\n })\n );\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n setPage(pageNumber: number, totalPages: number) {\n // Calculate the new value.\n const newValue = Math.min(\n totalPages,\n Math.max(1, pageNumber)\n );\n\n // Validate the value is actually different.\n const currentValue = this._collection?.pageNumberControl?.value;\n if (currentValue === newValue) {\n return;\n }\n\n this._collection?.pageNumberControl?.setValue(pageNumber);\n }\n\n private observeCollectionChanges() {\n if (!this._collection) {\n return;\n }\n\n if (this._subscription) {\n this._subscription?.unsubscribe();\n }\n\n const pageNumber = this._collection?.pageNumberControl?.value;\n const pageSize = this._collection?.pageSizeControl?.value;\n\n this.cache$.next({pageNumber, pageSize});\n\n this._subscription = this._collection.raw$.subscribe(data => {\n if (data) {\n this.cache$.next(data);\n }\n });\n }\n\n private calculateLabel(start: number, end: number, total: number) {\n const startPoint = '[start]';\n const endPoint = '[end]';\n const totalPoint = '[total]';\n const label = this._label ?? `Showing ${startPoint} to ${endPoint} of ${totalPoint} results`;\n\n return label\n .replace(startPoint, `<strong>${start}</strong>`)\n .replace(endPoint, `<strong>${end}</strong>`)\n .replace(totalPoint, `<strong>${total}</strong>`);\n }\n\n private calculatePages(pageNumber: number, totalPages: number) {\n const min = 1;\n const max = totalPages;\n const amount = Math.max(1, this.maxAmountOfButtons);\n\n const data = Array(amount)\n .fill(0)\n .map((_, index) => pageNumber + (index - 1));\n\n // Validate if the minimum value less than\n // the first value.\n if (data[0] < min) {\n return data.map(item => item + 1);\n }\n\n // Calculate the difference with the max\n // if this value is higher than 0 we should minus it.\n const lastValueInArray = data[data.length - 1];\n const differenceWithMax = lastValueInArray - max;\n if (differenceWithMax > 0) {\n return data.map(item => item - differenceWithMax);\n }\n\n // Just return the default data.\n return data;\n }\n\n private filterActivePages(pageNumber: number, totalPages: number) {\n return this.calculatePages(pageNumber, totalPages)\n .filter(page => page > 0 && page <= totalPages)\n .map(page => ({page, active: pageNumber === page}));\n }\n\n}\n","<ng-container *ngIf=\"data$ | async as data\">\n <div [innerHTML]=\"data?.label\"\n class=\"bb-collections-pager-text\">\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"!data?.allowPrevious\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n ←\n </button>\n </li>\n <li *ngFor=\"let item of data?.pages\"\n [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"!data?.allowNext\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n →\n </button>\n </li>\n </ul>\n </div>\n</ng-container>\n","import {catchError, debounceTime, distinctUntilChanged, map, startWith, switchMap, tap} from 'rxjs/operators';\nimport {CollectionData, CollectionRequest, CollectionRequestSort} from './interfaces/collection.interface';\nimport {BehaviorSubject, combineLatest, Observable, of} from 'rxjs';\nimport {CollectionProvider} from './providers/collection.provider';\nimport {AbstractControl, FormControl} from '@angular/forms';\n\nexport const enum CollectionState {\n Initial = 'initial',\n Error = 'error',\n Empty = 'empty',\n Data = 'data'\n}\n\nexport class Collection<T> {\n\n // Controls.\n readonly queryControl: FormControl;\n readonly queryFieldsControl: FormControl;\n readonly pageNumberControl: FormControl;\n readonly pageSizeControl: FormControl;\n readonly sortControl: FormControl;\n\n // Request.\n readonly data$: Observable<{\n response?: CollectionData<T>,\n request?: CollectionRequest,\n error?: Error\n state: CollectionState,\n loading: boolean,\n initial: boolean\n }>;\n\n readonly raw$ = new BehaviorSubject<CollectionData<T> | null>(null);\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n // State.\n private _formatter: (item: T) => T | null = null;\n private _refresh$ = new BehaviorSubject<number>(0);\n private _requestCache: CollectionRequest | null = null;\n\n constructor(private readonly _provider: CollectionProvider<T>,\n private readonly _initialValues: Partial<CollectionRequest> = {}) {\n this.queryControl = new FormControl(_initialValues?.query ?? null);\n this.queryFieldsControl = new FormControl(_initialValues?.queryFields ?? []);\n this.pageNumberControl = new FormControl(_initialValues?.pageNumber ?? 1);\n this.pageSizeControl = new FormControl(_initialValues?.pageSize ?? 25);\n this.sortControl = new FormControl(_initialValues?.sort ?? null);\n\n this.data$ = this.getData();\n }\n\n refresh() {\n this._refresh$.next(0);\n }\n\n setFormatter(callback: (items: T) => T) {\n this._formatter = callback;\n return this;\n }\n\n private getData() {\n const data$ = this.request.pipe(\n tap(() => this.loading$.next(true)),\n map(request => this.validateRequest(request)),\n switchMap(request => {\n return this._provider.transform(request).pipe(\n tap(response => this.cacheCollectionData(response)),\n map(response => ({response, request, initial: false})),\n catchError(error => of<{ error: Error, response: null, request: CollectionRequest, initial: boolean }>({\n error,\n request,\n response: null,\n initial: false\n }))\n );\n }),\n startWith({initial: true, response: null})\n );\n\n return combineLatest([data$, this.loading$.asObservable()]).pipe(\n map(([data, loading]) => {\n const combined = {...data, loading};\n return {...combined, response: this.formatResponse(data?.response), state: this.getState(combined)};\n })\n );\n }\n\n private formatResponse(response: CollectionData<T>) {\n if (!response) {\n return response;\n }\n\n const data = (response?.data ?? []).map(item => {\n return !!this._formatter ? this._formatter?.(item) : item;\n });\n return {...response, data};\n }\n\n private validateRequest(request: CollectionRequest) {\n // We should reset the page number whenever we change the query or the page size.\n if (this._requestCache && request && (this._requestCache?.query !== request?.query || this._requestCache?.pageSize !== request?.pageSize)) {\n this.pageNumberControl?.setValue(1, {emitEvent: false});\n request.pageNumber = this.pageNumberControl?.value;\n }\n\n this._requestCache = {...request};\n\n return request;\n }\n\n private getState(data: { response?: CollectionData<T>, request?: CollectionRequest, error?: Error, loading: boolean, initial: boolean }) {\n if (!!data?.error) {\n return CollectionState.Error;\n }\n\n if (!!data?.initial) {\n return CollectionState.Initial;\n }\n\n const count = data?.response?.data?.length ?? 0;\n if (count <= 0) {\n return CollectionState.Empty;\n }\n\n return CollectionState.Data;\n }\n\n private cacheCollectionData(data: CollectionData<T>) {\n this.raw$.next(data);\n this.loading$.next(false);\n }\n\n private get request() {\n const pageNumber$ = this.controlToObservable<number>(this.pageNumberControl);\n const pageSize$ = this.controlToObservable<number>(this.pageSizeControl);\n const query$ = this.getQueryObservable();\n const queryFields$ = this.controlToObservable<string[]>(this.queryFieldsControl);\n const sort$ = this.controlToObservable<CollectionRequestSort | CollectionRequestSort[]>(this.sortControl);\n\n return combineLatest([pageNumber$, pageSize$, query$, queryFields$, sort$, this._refresh$.asObservable()]).pipe(\n map(([pageNumber, pageSize, query, queryFields, sort]) => ({\n pageNumber,\n pageSize,\n query,\n queryFields,\n sort\n }))\n );\n }\n\n private getQueryObservable() {\n return this.queryControl.valueChanges.pipe(\n debounceTime<string>(400),\n distinctUntilChanged<string>(),\n startWith(this.queryControl?.value as string | null)\n );\n }\n\n private controlToObservable = <T = unknown>(control: AbstractControl) => {\n return control.valueChanges.pipe(\n distinctUntilChanged<T>(),\n startWith(control?.value as T)\n );\n };\n\n}\n\n","import {\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n} from './components/collections.directive';\nimport {BbCollectionsViewer} from './components/collections-viewer/collections-viewer.component';\nimport {BbCollectionsPager} from './components/collections-pager/collections-pager.component';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n // Components.\n BbCollectionsViewer,\n BbCollectionsPager,\n // Directives.\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n ],\n exports: [\n // Components.\n BbCollectionsViewer,\n BbCollectionsPager,\n // Directives.\n BbCollectionsData,\n BbCollectionsEmpty,\n BbCollectionsError,\n BbCollectionsInitial\n ]\n})\nexport class CollectionsModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|