@ngrx/entity 12.0.0 → 12.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -429,6 +429,17 @@
429
429
  state.entities[key] = entity;
430
430
  return DidMutate.Both;
431
431
  }
432
+ function setManyMutably(entities, state) {
433
+ var didMutateSetOne = entities.map(function (entity) { return setOneMutably(entity, state); });
434
+ switch (true) {
435
+ case didMutateSetOne.some(function (didMutate) { return didMutate === DidMutate.Both; }):
436
+ return DidMutate.Both;
437
+ case didMutateSetOne.some(function (didMutate) { return didMutate === DidMutate.EntitiesOnly; }):
438
+ return DidMutate.EntitiesOnly;
439
+ default:
440
+ return DidMutate.None;
441
+ }
442
+ }
432
443
  function removeOneMutably(key, state) {
433
444
  return removeManyMutably([key], state);
434
445
  }
@@ -553,6 +564,7 @@
553
564
  addMany: createStateOperator(addManyMutably),
554
565
  setAll: createStateOperator(setAllMutably),
555
566
  setOne: createStateOperator(setOneMutably),
567
+ setMany: createStateOperator(setManyMutably),
556
568
  updateOne: createStateOperator(updateOneMutably),
557
569
  updateMany: createStateOperator(updateManyMutably),
558
570
  upsertOne: createStateOperator(upsertOneMutably),
@@ -596,6 +608,17 @@
596
608
  return addOneMutably(entity, state);
597
609
  }
598
610
  }
611
+ function setManyMutably(entities, state) {
612
+ var didMutateSetOne = entities.map(function (entity) { return setOneMutably(entity, state); });
613
+ switch (true) {
614
+ case didMutateSetOne.some(function (didMutate) { return didMutate === DidMutate.Both; }):
615
+ return DidMutate.Both;
616
+ case didMutateSetOne.some(function (didMutate) { return didMutate === DidMutate.EntitiesOnly; }):
617
+ return DidMutate.EntitiesOnly;
618
+ default:
619
+ return DidMutate.None;
620
+ }
621
+ }
599
622
  function updateOneMutably(update, state) {
600
623
  return updateManyMutably([update], state);
601
624
  }
@@ -738,6 +761,7 @@
738
761
  upsertOne: createStateOperator(upsertOneMutably),
739
762
  setAll: createStateOperator(setAllMutably),
740
763
  setOne: createStateOperator(setOneMutably),
764
+ setMany: createStateOperator(setManyMutably),
741
765
  addMany: createStateOperator(addManyMutably),
742
766
  updateMany: createStateOperator(updateManyMutably),
743
767
  upsertMany: createStateOperator(upsertManyMutably),
@@ -1 +1 @@
1
- {"version":3,"file":"ngrx-entity.umd.js","sources":["../../../../modules/entity/src/entity_state.ts","../../../../modules/entity/src/state_selectors.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../modules/entity/src/state_adapter.ts","../../../../modules/entity/src/utils.ts","../../../../modules/entity/src/unsorted_state_adapter.ts","../../../../modules/entity/src/sorted_state_adapter.ts","../../../../modules/entity/src/create_adapter.ts","../../../../modules/entity/src/models.ts","../../../../modules/entity/index.ts","../../../../modules/entity/ngrx-entity.ts"],"sourcesContent":["import { EntityState } from './models';\n\nexport function getInitialEntityState<V>(): EntityState<V> {\n return {\n ids: [],\n entities: {},\n };\n}\n\nexport function createInitialStateFactory<V>() {\n function getInitialState(): EntityState<V>;\n function getInitialState<S extends object>(\n additionalState: S\n ): EntityState<V> & S;\n function getInitialState(additionalState: any = {}): any {\n return Object.assign(getInitialEntityState(), additionalState);\n }\n\n return { getInitialState };\n}\n","import { createSelector } from '@ngrx/store';\nimport { EntityState, EntitySelectors, Dictionary } from './models';\n\nexport function createSelectorsFactory<T>() {\n function getSelectors(): EntitySelectors<T, EntityState<T>>;\n function getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n function getSelectors(\n selectState?: (state: any) => EntityState<T>\n ): EntitySelectors<T, any> {\n const selectIds = (state: any) => state.ids;\n const selectEntities = (state: EntityState<T>) => state.entities;\n const selectAll = createSelector(\n selectIds,\n selectEntities,\n (ids: T[], entities: Dictionary<T>): any =>\n ids.map((id: any) => (entities as any)[id])\n );\n\n const selectTotal = createSelector(selectIds, (ids) => ids.length);\n\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n };\n }\n\n return {\n selectIds: createSelector(selectState, selectIds),\n selectEntities: createSelector(selectState, selectEntities),\n selectAll: createSelector(selectState, selectAll),\n selectTotal: createSelector(selectState, selectTotal),\n };\n }\n\n return { getSelectors };\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) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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 { EntityState } from './models';\n\nexport enum DidMutate {\n EntitiesOnly,\n Both,\n None,\n}\n\nexport function createStateOperator<V, R>(\n mutator: (arg: R, state: EntityState<V>) => DidMutate\n): EntityState<V>;\nexport function createStateOperator<V, R>(\n mutator: (arg: any, state: any) => DidMutate\n): any {\n return function operation<S extends EntityState<V>>(arg: R, state: any): S {\n const clonedEntityState: EntityState<V> = {\n ids: [...state.ids],\n entities: { ...state.entities },\n };\n\n const didMutate = mutator(arg, clonedEntityState);\n\n if (didMutate === DidMutate.Both) {\n return Object.assign({}, state, clonedEntityState);\n }\n\n if (didMutate === DidMutate.EntitiesOnly) {\n return {\n ...state,\n entities: clonedEntityState.entities,\n };\n }\n\n return state;\n };\n}\n","import { isDevMode } from '@angular/core';\nimport { IdSelector } from './models';\n\nexport function selectIdValue<T>(entity: T, selectId: IdSelector<T>) {\n const key = selectId(entity);\n\n if (isDevMode() && key === undefined) {\n console.warn(\n '@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.',\n 'You should probably provide your own `selectId` implementation.',\n 'The entity that was passed:',\n entity,\n 'The `selectId` implementation:',\n selectId.toString()\n );\n }\n\n return key;\n}\n","import {\n EntityState,\n EntityStateAdapter,\n IdSelector,\n Update,\n Predicate,\n EntityMap,\n EntityMapOneNum,\n EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createUnsortedStateAdapter<T>(\n selectId: IdSelector<T>\n): EntityStateAdapter<T>;\nexport function createUnsortedStateAdapter<T>(selectId: IdSelector<T>): any {\n type R = EntityState<T>;\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n const key = selectIdValue(entity, selectId);\n\n if (key in state.entities) {\n return DidMutate.None;\n }\n\n state.ids.push(key);\n state.entities[key] = entity;\n\n return DidMutate.Both;\n }\n\n function addManyMutably(entities: T[], state: R): DidMutate;\n function addManyMutably(entities: any[], state: any): DidMutate {\n let didMutate = false;\n\n for (const entity of entities) {\n didMutate = addOneMutably(entity, state) !== DidMutate.None || didMutate;\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function setAllMutably(entities: T[], state: R): DidMutate;\n function setAllMutably(entities: any[], state: any): DidMutate {\n state.ids = [];\n state.entities = {};\n\n addManyMutably(entities, state);\n\n return DidMutate.Both;\n }\n\n function setOneMutably(entity: T, state: R): DidMutate;\n function setOneMutably(entity: any, state: any): DidMutate {\n const key = selectIdValue(entity, selectId);\n\n if (key in state.entities) {\n state.entities[key] = entity;\n return DidMutate.EntitiesOnly;\n }\n\n state.ids.push(key);\n state.entities[key] = entity;\n\n return DidMutate.Both;\n }\n\n function removeOneMutably(key: T, state: R): DidMutate;\n function removeOneMutably(key: any, state: any): DidMutate {\n return removeManyMutably([key], state);\n }\n\n function removeManyMutably(keys: T[], state: R): DidMutate;\n function removeManyMutably(predicate: Predicate<T>, state: R): DidMutate;\n function removeManyMutably(\n keysOrPredicate: any[] | Predicate<T>,\n state: any\n ): DidMutate {\n const keys =\n keysOrPredicate instanceof Array\n ? keysOrPredicate\n : state.ids.filter((key: any) => keysOrPredicate(state.entities[key]));\n\n const didMutate =\n keys\n .filter((key: any) => key in state.entities)\n .map((key: any) => delete state.entities[key]).length > 0;\n\n if (didMutate) {\n state.ids = state.ids.filter((id: any) => id in state.entities);\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function removeAll<S extends R>(state: S): S;\n function removeAll<S extends R>(state: any): S {\n return Object.assign({}, state, {\n ids: [],\n entities: {},\n });\n }\n\n function takeNewKey(\n keys: { [id: string]: string },\n update: Update<T>,\n state: R\n ): void;\n function takeNewKey(\n keys: { [id: string]: any },\n update: Update<T>,\n state: any\n ): boolean {\n const original = state.entities[update.id];\n const updated: T = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n\n state.entities[newKey] = updated;\n\n return hasNewKey;\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const newKeys: { [id: string]: string } = {};\n\n updates = updates.filter((update) => update.id in state.entities);\n\n const didMutateEntities = updates.length > 0;\n\n if (didMutateEntities) {\n const didMutateIds =\n updates.filter((update) => takeNewKey(newKeys, update, state)).length >\n 0;\n\n if (didMutateIds) {\n state.ids = state.ids.map((id: any) => newKeys[id] || id);\n return DidMutate.Both;\n } else {\n return DidMutate.EntitiesOnly;\n }\n }\n\n return DidMutate.None;\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(map: any, state: any): DidMutate {\n const changes: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = map(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n const updates = changes.filter(({ id }) => id in state.entities);\n\n return updateManyMutably(updates, state);\n }\n\n function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n function mapOneMutably({ map, id }: any, state: any): DidMutate {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n\n const updatedEntity = map(entity);\n return updateOneMutably(\n {\n id: id,\n changes: updatedEntity,\n },\n state\n );\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n return {\n removeAll,\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably),\n };\n}\n","import {\n EntityState,\n IdSelector,\n Comparer,\n EntityStateAdapter,\n Update,\n EntityMap,\n EntityMapOneNum,\n EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createSortedStateAdapter<T>(\n selectId: IdSelector<T>,\n sort: Comparer<T>\n): EntityStateAdapter<T>;\nexport function createSortedStateAdapter<T>(selectId: any, sort: any): any {\n type R = EntityState<T>;\n\n const { removeOne, removeMany, removeAll } = createUnsortedStateAdapter(\n selectId\n );\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n return addManyMutably([entity], state);\n }\n\n function addManyMutably(newModels: T[], state: R): DidMutate;\n function addManyMutably(newModels: any[], state: any): DidMutate {\n const models = newModels.filter(\n (model) => !(selectIdValue(model, selectId) in state.entities)\n );\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n merge(models, state);\n return DidMutate.Both;\n }\n }\n\n function setAllMutably(models: T[], state: R): DidMutate;\n function setAllMutably(models: any[], state: any): DidMutate {\n state.entities = {};\n state.ids = [];\n\n addManyMutably(models, state);\n\n return DidMutate.Both;\n }\n\n function setOneMutably(entity: T, state: R): DidMutate;\n function setOneMutably(entity: any, state: any): DidMutate {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n state.ids = state.ids.filter((val: string | number) => val !== id);\n merge([entity], state);\n return DidMutate.Both;\n } else {\n return addOneMutably(entity, state);\n }\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function takeUpdatedModel(models: T[], update: Update<T>, state: R): boolean;\n function takeUpdatedModel(models: any[], update: any, state: any): boolean {\n if (!(update.id in state.entities)) {\n return false;\n }\n\n const original = state.entities[update.id];\n const updated = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n\n delete state.entities[update.id];\n\n models.push(updated);\n\n return newKey !== update.id;\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const models: T[] = [];\n\n const didMutateIds =\n updates.filter((update) => takeUpdatedModel(models, update, state))\n .length > 0;\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n const originalIds = state.ids;\n const updatedIndexes: any[] = [];\n state.ids = state.ids.filter((id: any, index: number) => {\n if (id in state.entities) {\n return true;\n } else {\n updatedIndexes.push(index);\n return false;\n }\n });\n\n merge(models, state);\n\n if (\n !didMutateIds &&\n updatedIndexes.every((i: number) => state.ids[i] === originalIds[i])\n ) {\n return DidMutate.EntitiesOnly;\n } else {\n return DidMutate.Both;\n }\n }\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(updatesOrMap: any, state: any): DidMutate {\n const updates: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = updatesOrMap(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n\n return updateManyMutably(updates, state);\n }\n\n function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n function mapOneMutably({ map, id }: any, state: any): DidMutate {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n\n const updatedEntity = map(entity);\n return updateOneMutably(\n {\n id: id,\n changes: updatedEntity,\n },\n state\n );\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n function merge(models: T[], state: R): void;\n function merge(models: any[], state: any): void {\n models.sort(sort);\n\n const ids: any[] = [];\n\n let i = 0;\n let j = 0;\n\n while (i < models.length && j < state.ids.length) {\n const model = models[i];\n const modelId = selectIdValue(model, selectId);\n const entityId = state.ids[j];\n const entity = state.entities[entityId];\n\n if (sort(model, entity) <= 0) {\n ids.push(modelId);\n i++;\n } else {\n ids.push(entityId);\n j++;\n }\n }\n\n if (i < models.length) {\n state.ids = ids.concat(models.slice(i).map(selectId));\n } else {\n state.ids = ids.concat(state.ids.slice(j));\n }\n\n models.forEach((model, i) => {\n state.entities[selectId(model)] = model;\n });\n }\n\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably),\n };\n}\n","import { createSelector } from '@ngrx/store';\nimport {\n EntityDefinition,\n Comparer,\n IdSelector,\n EntityAdapter,\n} from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\n\nexport function createEntityAdapter<T>(\n options: {\n selectId?: IdSelector<T>;\n sortComparer?: false | Comparer<T>;\n } = {}\n): EntityAdapter<T> {\n const { selectId, sortComparer }: EntityDefinition<T> = {\n sortComparer: false,\n selectId: (instance: any) => instance.id,\n ...options,\n };\n\n const stateFactory = createInitialStateFactory<T>();\n const selectorsFactory = createSelectorsFactory<T>();\n const stateAdapter = sortComparer\n ? createSortedStateAdapter(selectId, sortComparer)\n : createUnsortedStateAdapter(selectId);\n\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter,\n };\n}\n","export type Comparer<T> = (a: T, b: T) => number;\n\nexport type IdSelectorStr<T> = (model: T) => string;\nexport type IdSelectorNum<T> = (model: T) => number;\n\nexport type IdSelector<T> = IdSelectorStr<T> | IdSelectorNum<T>;\n\nexport interface DictionaryNum<T> {\n [id: number]: T | undefined;\n}\n\nexport abstract class Dictionary<T> implements DictionaryNum<T> {\n [id: string]: T | undefined;\n}\n\nexport interface UpdateStr<T> {\n id: string;\n changes: Partial<T>;\n}\n\nexport interface UpdateNum<T> {\n id: number;\n changes: Partial<T>;\n}\n\nexport type Update<T> = UpdateStr<T> | UpdateNum<T>;\n\nexport type Predicate<T> = (entity: T) => boolean;\n\nexport type EntityMap<T> = (entity: T) => T;\n\nexport interface EntityMapOneNum<T> {\n id: number;\n map: EntityMap<T>;\n}\n\nexport interface EntityMapOneStr<T> {\n id: string;\n map: EntityMap<T>;\n}\n\nexport type EntityMapOne<T> = EntityMapOneNum<T> | EntityMapOneStr<T>;\n\nexport interface EntityState<T> {\n ids: string[] | number[];\n entities: Dictionary<T>;\n}\n\nexport interface EntityDefinition<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n}\n\nexport interface EntityStateAdapter<T> {\n addOne<S extends EntityState<T>>(entity: T, state: S): S;\n addMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n setAll<S extends EntityState<T>>(entities: T[], state: S): S;\n setOne<S extends EntityState<T>>(entity: T, state: S): S;\n\n removeOne<S extends EntityState<T>>(key: string, state: S): S;\n removeOne<S extends EntityState<T>>(key: number, state: S): S;\n\n removeMany<S extends EntityState<T>>(keys: string[], state: S): S;\n removeMany<S extends EntityState<T>>(keys: number[], state: S): S;\n removeMany<S extends EntityState<T>>(predicate: Predicate<T>, state: S): S;\n\n removeAll<S extends EntityState<T>>(state: S): S;\n\n updateOne<S extends EntityState<T>>(update: Update<T>, state: S): S;\n updateMany<S extends EntityState<T>>(updates: Update<T>[], state: S): S;\n\n upsertOne<S extends EntityState<T>>(entity: T, state: S): S;\n upsertMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n mapOne<S extends EntityState<T>>(map: EntityMapOne<T>, state: S): S;\n map<S extends EntityState<T>>(map: EntityMap<T>, state: S): S;\n}\n\nexport interface EntitySelectors<T, V> {\n selectIds: (state: V) => string[] | number[];\n selectEntities: (state: V) => Dictionary<T>;\n selectAll: (state: V) => T[];\n selectTotal: (state: V) => number;\n}\n\nexport interface EntityAdapter<T> extends EntityStateAdapter<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n getInitialState(): EntityState<T>;\n getInitialState<S extends object>(state: S): EntityState<T> & S;\n getSelectors(): EntitySelectors<T, EntityState<T>>;\n getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n}\n","/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["createSelector","isDevMode"],"mappings":"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"}
1
+ {"version":3,"file":"ngrx-entity.umd.js","sources":["../../../../modules/entity/src/entity_state.ts","../../../../modules/entity/src/state_selectors.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../modules/entity/src/state_adapter.ts","../../../../modules/entity/src/utils.ts","../../../../modules/entity/src/unsorted_state_adapter.ts","../../../../modules/entity/src/sorted_state_adapter.ts","../../../../modules/entity/src/create_adapter.ts","../../../../modules/entity/src/models.ts","../../../../modules/entity/index.ts","../../../../modules/entity/ngrx-entity.ts"],"sourcesContent":["import { EntityState } from './models';\n\nexport function getInitialEntityState<V>(): EntityState<V> {\n return {\n ids: [],\n entities: {},\n };\n}\n\nexport function createInitialStateFactory<V>() {\n function getInitialState(): EntityState<V>;\n function getInitialState<S extends object>(\n additionalState: S\n ): EntityState<V> & S;\n function getInitialState(additionalState: any = {}): any {\n return Object.assign(getInitialEntityState(), additionalState);\n }\n\n return { getInitialState };\n}\n","import { createSelector } from '@ngrx/store';\nimport { EntityState, EntitySelectors, Dictionary } from './models';\n\nexport function createSelectorsFactory<T>() {\n function getSelectors(): EntitySelectors<T, EntityState<T>>;\n function getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n function getSelectors(\n selectState?: (state: any) => EntityState<T>\n ): EntitySelectors<T, any> {\n const selectIds = (state: any) => state.ids;\n const selectEntities = (state: EntityState<T>) => state.entities;\n const selectAll = createSelector(\n selectIds,\n selectEntities,\n (ids: T[], entities: Dictionary<T>): any =>\n ids.map((id: any) => (entities as any)[id])\n );\n\n const selectTotal = createSelector(selectIds, (ids) => ids.length);\n\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n };\n }\n\n return {\n selectIds: createSelector(selectState, selectIds),\n selectEntities: createSelector(selectState, selectEntities),\n selectAll: createSelector(selectState, selectAll),\n selectTotal: createSelector(selectState, selectTotal),\n };\n }\n\n return { getSelectors };\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) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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 { EntityState } from './models';\n\nexport enum DidMutate {\n EntitiesOnly,\n Both,\n None,\n}\n\nexport function createStateOperator<V, R>(\n mutator: (arg: R, state: EntityState<V>) => DidMutate\n): EntityState<V>;\nexport function createStateOperator<V, R>(\n mutator: (arg: any, state: any) => DidMutate\n): any {\n return function operation<S extends EntityState<V>>(arg: R, state: any): S {\n const clonedEntityState: EntityState<V> = {\n ids: [...state.ids],\n entities: { ...state.entities },\n };\n\n const didMutate = mutator(arg, clonedEntityState);\n\n if (didMutate === DidMutate.Both) {\n return Object.assign({}, state, clonedEntityState);\n }\n\n if (didMutate === DidMutate.EntitiesOnly) {\n return {\n ...state,\n entities: clonedEntityState.entities,\n };\n }\n\n return state;\n };\n}\n","import { isDevMode } from '@angular/core';\nimport { IdSelector } from './models';\n\nexport function selectIdValue<T>(entity: T, selectId: IdSelector<T>) {\n const key = selectId(entity);\n\n if (isDevMode() && key === undefined) {\n console.warn(\n '@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.',\n 'You should probably provide your own `selectId` implementation.',\n 'The entity that was passed:',\n entity,\n 'The `selectId` implementation:',\n selectId.toString()\n );\n }\n\n return key;\n}\n","import {\n EntityState,\n EntityStateAdapter,\n IdSelector,\n Update,\n Predicate,\n EntityMap,\n EntityMapOneNum,\n EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createUnsortedStateAdapter<T>(\n selectId: IdSelector<T>\n): EntityStateAdapter<T>;\nexport function createUnsortedStateAdapter<T>(selectId: IdSelector<T>): any {\n type R = EntityState<T>;\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n const key = selectIdValue(entity, selectId);\n\n if (key in state.entities) {\n return DidMutate.None;\n }\n\n state.ids.push(key);\n state.entities[key] = entity;\n\n return DidMutate.Both;\n }\n\n function addManyMutably(entities: T[], state: R): DidMutate;\n function addManyMutably(entities: any[], state: any): DidMutate {\n let didMutate = false;\n\n for (const entity of entities) {\n didMutate = addOneMutably(entity, state) !== DidMutate.None || didMutate;\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function setAllMutably(entities: T[], state: R): DidMutate;\n function setAllMutably(entities: any[], state: any): DidMutate {\n state.ids = [];\n state.entities = {};\n\n addManyMutably(entities, state);\n\n return DidMutate.Both;\n }\n\n function setOneMutably(entity: T, state: R): DidMutate;\n function setOneMutably(entity: any, state: any): DidMutate {\n const key = selectIdValue(entity, selectId);\n\n if (key in state.entities) {\n state.entities[key] = entity;\n return DidMutate.EntitiesOnly;\n }\n\n state.ids.push(key);\n state.entities[key] = entity;\n\n return DidMutate.Both;\n }\n\n function setManyMutably(entities: T[], state: R): DidMutate;\n function setManyMutably(entities: any[], state: any): DidMutate {\n const didMutateSetOne = entities.map((entity) =>\n setOneMutably(entity, state)\n );\n\n switch (true) {\n case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):\n return DidMutate.Both;\n case didMutateSetOne.some(\n (didMutate) => didMutate === DidMutate.EntitiesOnly\n ):\n return DidMutate.EntitiesOnly;\n default:\n return DidMutate.None;\n }\n }\n\n function removeOneMutably(key: T, state: R): DidMutate;\n function removeOneMutably(key: any, state: any): DidMutate {\n return removeManyMutably([key], state);\n }\n\n function removeManyMutably(keys: T[], state: R): DidMutate;\n function removeManyMutably(predicate: Predicate<T>, state: R): DidMutate;\n function removeManyMutably(\n keysOrPredicate: any[] | Predicate<T>,\n state: any\n ): DidMutate {\n const keys =\n keysOrPredicate instanceof Array\n ? keysOrPredicate\n : state.ids.filter((key: any) => keysOrPredicate(state.entities[key]));\n\n const didMutate =\n keys\n .filter((key: any) => key in state.entities)\n .map((key: any) => delete state.entities[key]).length > 0;\n\n if (didMutate) {\n state.ids = state.ids.filter((id: any) => id in state.entities);\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function removeAll<S extends R>(state: S): S;\n function removeAll<S extends R>(state: any): S {\n return Object.assign({}, state, {\n ids: [],\n entities: {},\n });\n }\n\n function takeNewKey(\n keys: { [id: string]: string },\n update: Update<T>,\n state: R\n ): void;\n function takeNewKey(\n keys: { [id: string]: any },\n update: Update<T>,\n state: any\n ): boolean {\n const original = state.entities[update.id];\n const updated: T = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n\n state.entities[newKey] = updated;\n\n return hasNewKey;\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const newKeys: { [id: string]: string } = {};\n\n updates = updates.filter((update) => update.id in state.entities);\n\n const didMutateEntities = updates.length > 0;\n\n if (didMutateEntities) {\n const didMutateIds =\n updates.filter((update) => takeNewKey(newKeys, update, state)).length >\n 0;\n\n if (didMutateIds) {\n state.ids = state.ids.map((id: any) => newKeys[id] || id);\n return DidMutate.Both;\n } else {\n return DidMutate.EntitiesOnly;\n }\n }\n\n return DidMutate.None;\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(map: any, state: any): DidMutate {\n const changes: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = map(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n const updates = changes.filter(({ id }) => id in state.entities);\n\n return updateManyMutably(updates, state);\n }\n\n function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n function mapOneMutably({ map, id }: any, state: any): DidMutate {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n\n const updatedEntity = map(entity);\n return updateOneMutably(\n {\n id: id,\n changes: updatedEntity,\n },\n state\n );\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n return {\n removeAll,\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably),\n };\n}\n","import {\n EntityState,\n IdSelector,\n Comparer,\n EntityStateAdapter,\n Update,\n EntityMap,\n EntityMapOneNum,\n EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createSortedStateAdapter<T>(\n selectId: IdSelector<T>,\n sort: Comparer<T>\n): EntityStateAdapter<T>;\nexport function createSortedStateAdapter<T>(selectId: any, sort: any): any {\n type R = EntityState<T>;\n\n const { removeOne, removeMany, removeAll } = createUnsortedStateAdapter(\n selectId\n );\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n return addManyMutably([entity], state);\n }\n\n function addManyMutably(newModels: T[], state: R): DidMutate;\n function addManyMutably(newModels: any[], state: any): DidMutate {\n const models = newModels.filter(\n (model) => !(selectIdValue(model, selectId) in state.entities)\n );\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n merge(models, state);\n return DidMutate.Both;\n }\n }\n\n function setAllMutably(models: T[], state: R): DidMutate;\n function setAllMutably(models: any[], state: any): DidMutate {\n state.entities = {};\n state.ids = [];\n\n addManyMutably(models, state);\n\n return DidMutate.Both;\n }\n\n function setOneMutably(entity: T, state: R): DidMutate;\n function setOneMutably(entity: any, state: any): DidMutate {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n state.ids = state.ids.filter((val: string | number) => val !== id);\n merge([entity], state);\n return DidMutate.Both;\n } else {\n return addOneMutably(entity, state);\n }\n }\n\n function setManyMutably(entities: T[], state: R): DidMutate;\n function setManyMutably(entities: any[], state: any): DidMutate {\n const didMutateSetOne = entities.map((entity) =>\n setOneMutably(entity, state)\n );\n\n switch (true) {\n case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):\n return DidMutate.Both;\n case didMutateSetOne.some(\n (didMutate) => didMutate === DidMutate.EntitiesOnly\n ):\n return DidMutate.EntitiesOnly;\n default:\n return DidMutate.None;\n }\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function takeUpdatedModel(models: T[], update: Update<T>, state: R): boolean;\n function takeUpdatedModel(models: any[], update: any, state: any): boolean {\n if (!(update.id in state.entities)) {\n return false;\n }\n\n const original = state.entities[update.id];\n const updated = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n\n delete state.entities[update.id];\n\n models.push(updated);\n\n return newKey !== update.id;\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const models: T[] = [];\n\n const didMutateIds =\n updates.filter((update) => takeUpdatedModel(models, update, state))\n .length > 0;\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n const originalIds = state.ids;\n const updatedIndexes: any[] = [];\n state.ids = state.ids.filter((id: any, index: number) => {\n if (id in state.entities) {\n return true;\n } else {\n updatedIndexes.push(index);\n return false;\n }\n });\n\n merge(models, state);\n\n if (\n !didMutateIds &&\n updatedIndexes.every((i: number) => state.ids[i] === originalIds[i])\n ) {\n return DidMutate.EntitiesOnly;\n } else {\n return DidMutate.Both;\n }\n }\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(updatesOrMap: any, state: any): DidMutate {\n const updates: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = updatesOrMap(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n\n return updateManyMutably(updates, state);\n }\n\n function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n function mapOneMutably({ map, id }: any, state: any): DidMutate {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n\n const updatedEntity = map(entity);\n return updateOneMutably(\n {\n id: id,\n changes: updatedEntity,\n },\n state\n );\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n function merge(models: T[], state: R): void;\n function merge(models: any[], state: any): void {\n models.sort(sort);\n\n const ids: any[] = [];\n\n let i = 0;\n let j = 0;\n\n while (i < models.length && j < state.ids.length) {\n const model = models[i];\n const modelId = selectIdValue(model, selectId);\n const entityId = state.ids[j];\n const entity = state.entities[entityId];\n\n if (sort(model, entity) <= 0) {\n ids.push(modelId);\n i++;\n } else {\n ids.push(entityId);\n j++;\n }\n }\n\n if (i < models.length) {\n state.ids = ids.concat(models.slice(i).map(selectId));\n } else {\n state.ids = ids.concat(state.ids.slice(j));\n }\n\n models.forEach((model, i) => {\n state.entities[selectId(model)] = model;\n });\n }\n\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably),\n };\n}\n","import { createSelector } from '@ngrx/store';\nimport {\n EntityDefinition,\n Comparer,\n IdSelector,\n EntityAdapter,\n} from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\n\nexport function createEntityAdapter<T>(\n options: {\n selectId?: IdSelector<T>;\n sortComparer?: false | Comparer<T>;\n } = {}\n): EntityAdapter<T> {\n const { selectId, sortComparer }: EntityDefinition<T> = {\n sortComparer: false,\n selectId: (instance: any) => instance.id,\n ...options,\n };\n\n const stateFactory = createInitialStateFactory<T>();\n const selectorsFactory = createSelectorsFactory<T>();\n const stateAdapter = sortComparer\n ? createSortedStateAdapter(selectId, sortComparer)\n : createUnsortedStateAdapter(selectId);\n\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter,\n };\n}\n","export type Comparer<T> = (a: T, b: T) => number;\n\nexport type IdSelectorStr<T> = (model: T) => string;\nexport type IdSelectorNum<T> = (model: T) => number;\n\nexport type IdSelector<T> = IdSelectorStr<T> | IdSelectorNum<T>;\n\nexport interface DictionaryNum<T> {\n [id: number]: T | undefined;\n}\n\nexport abstract class Dictionary<T> implements DictionaryNum<T> {\n [id: string]: T | undefined;\n}\n\nexport interface UpdateStr<T> {\n id: string;\n changes: Partial<T>;\n}\n\nexport interface UpdateNum<T> {\n id: number;\n changes: Partial<T>;\n}\n\nexport type Update<T> = UpdateStr<T> | UpdateNum<T>;\n\nexport type Predicate<T> = (entity: T) => boolean;\n\nexport type EntityMap<T> = (entity: T) => T;\n\nexport interface EntityMapOneNum<T> {\n id: number;\n map: EntityMap<T>;\n}\n\nexport interface EntityMapOneStr<T> {\n id: string;\n map: EntityMap<T>;\n}\n\nexport type EntityMapOne<T> = EntityMapOneNum<T> | EntityMapOneStr<T>;\n\nexport interface EntityState<T> {\n ids: string[] | number[];\n entities: Dictionary<T>;\n}\n\nexport interface EntityDefinition<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n}\n\nexport interface EntityStateAdapter<T> {\n addOne<S extends EntityState<T>>(entity: T, state: S): S;\n addMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n setAll<S extends EntityState<T>>(entities: T[], state: S): S;\n setOne<S extends EntityState<T>>(entity: T, state: S): S;\n setMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n removeOne<S extends EntityState<T>>(key: string, state: S): S;\n removeOne<S extends EntityState<T>>(key: number, state: S): S;\n\n removeMany<S extends EntityState<T>>(keys: string[], state: S): S;\n removeMany<S extends EntityState<T>>(keys: number[], state: S): S;\n removeMany<S extends EntityState<T>>(predicate: Predicate<T>, state: S): S;\n\n removeAll<S extends EntityState<T>>(state: S): S;\n\n updateOne<S extends EntityState<T>>(update: Update<T>, state: S): S;\n updateMany<S extends EntityState<T>>(updates: Update<T>[], state: S): S;\n\n upsertOne<S extends EntityState<T>>(entity: T, state: S): S;\n upsertMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n mapOne<S extends EntityState<T>>(map: EntityMapOne<T>, state: S): S;\n map<S extends EntityState<T>>(map: EntityMap<T>, state: S): S;\n}\n\nexport interface EntitySelectors<T, V> {\n selectIds: (state: V) => string[] | number[];\n selectEntities: (state: V) => Dictionary<T>;\n selectAll: (state: V) => T[];\n selectTotal: (state: V) => number;\n}\n\nexport interface EntityAdapter<T> extends EntityStateAdapter<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n getInitialState(): EntityState<T>;\n getInitialState<S extends object>(state: S): EntityState<T> & S;\n getSelectors(): EntitySelectors<T, EntityState<T>>;\n getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n}\n","/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["createSelector","isDevMode"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export class Dictionary {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9lbnRpdHkvc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxNQUFNLE9BQWdCLFVBQVU7Q0FFL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDb21wYXJlcjxUPiA9IChhOiBULCBiOiBUKSA9PiBudW1iZXI7XG5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JTdHI8VD4gPSAobW9kZWw6IFQpID0+IHN0cmluZztcbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JOdW08VD4gPSAobW9kZWw6IFQpID0+IG51bWJlcjtcblxuZXhwb3J0IHR5cGUgSWRTZWxlY3RvcjxUPiA9IElkU2VsZWN0b3JTdHI8VD4gfCBJZFNlbGVjdG9yTnVtPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERpY3Rpb25hcnlOdW08VD4ge1xuICBbaWQ6IG51bWJlcl06IFQgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEaWN0aW9uYXJ5PFQ+IGltcGxlbWVudHMgRGljdGlvbmFyeU51bTxUPiB7XG4gIFtpZDogc3RyaW5nXTogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTdHI8VD4ge1xuICBpZDogc3RyaW5nO1xuICBjaGFuZ2VzOiBQYXJ0aWFsPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZU51bTxUPiB7XG4gIGlkOiBudW1iZXI7XG4gIGNoYW5nZXM6IFBhcnRpYWw8VD47XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZTxUPiA9IFVwZGF0ZVN0cjxUPiB8IFVwZGF0ZU51bTxUPjtcblxuZXhwb3J0IHR5cGUgUHJlZGljYXRlPFQ+ID0gKGVudGl0eTogVCkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgRW50aXR5TWFwPFQ+ID0gKGVudGl0eTogVCkgPT4gVDtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlNYXBPbmVOdW08VD4ge1xuICBpZDogbnVtYmVyO1xuICBtYXA6IEVudGl0eU1hcDxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlNYXBPbmVTdHI8VD4ge1xuICBpZDogc3RyaW5nO1xuICBtYXA6IEVudGl0eU1hcDxUPjtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5TWFwT25lPFQ+ID0gRW50aXR5TWFwT25lTnVtPFQ+IHwgRW50aXR5TWFwT25lU3RyPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0YXRlPFQ+IHtcbiAgaWRzOiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICBlbnRpdGllczogRGljdGlvbmFyeTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlEZWZpbml0aW9uPFQ+IHtcbiAgc2VsZWN0SWQ6IElkU2VsZWN0b3I8VD47XG4gIHNvcnRDb21wYXJlcjogZmFsc2UgfCBDb21wYXJlcjxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdGF0ZUFkYXB0ZXI8VD4ge1xuICBhZGRPbmU8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihlbnRpdHk6IFQsIHN0YXRlOiBTKTogUztcbiAgYWRkTWFueTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGVudGl0aWVzOiBUW10sIHN0YXRlOiBTKTogUztcblxuICBzZXRBbGw8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihlbnRpdGllczogVFtdLCBzdGF0ZTogUyk6IFM7XG4gIHNldE9uZTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGVudGl0eTogVCwgc3RhdGU6IFMpOiBTO1xuXG4gIHJlbW92ZU9uZTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGtleTogc3RyaW5nLCBzdGF0ZTogUyk6IFM7XG4gIHJlbW92ZU9uZTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGtleTogbnVtYmVyLCBzdGF0ZTogUyk6IFM7XG5cbiAgcmVtb3ZlTWFueTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGtleXM6IHN0cmluZ1tdLCBzdGF0ZTogUyk6IFM7XG4gIHJlbW92ZU1hbnk8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihrZXlzOiBudW1iZXJbXSwgc3RhdGU6IFMpOiBTO1xuICByZW1vdmVNYW55PFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4ocHJlZGljYXRlOiBQcmVkaWNhdGU8VD4sIHN0YXRlOiBTKTogUztcblxuICByZW1vdmVBbGw8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihzdGF0ZTogUyk6IFM7XG5cbiAgdXBkYXRlT25lPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4odXBkYXRlOiBVcGRhdGU8VD4sIHN0YXRlOiBTKTogUztcbiAgdXBkYXRlTWFueTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KHVwZGF0ZXM6IFVwZGF0ZTxUPltdLCBzdGF0ZTogUyk6IFM7XG5cbiAgdXBzZXJ0T25lPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4oZW50aXR5OiBULCBzdGF0ZTogUyk6IFM7XG4gIHVwc2VydE1hbnk8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihlbnRpdGllczogVFtdLCBzdGF0ZTogUyk6IFM7XG5cbiAgbWFwT25lPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4obWFwOiBFbnRpdHlNYXBPbmU8VD4sIHN0YXRlOiBTKTogUztcbiAgbWFwPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4obWFwOiBFbnRpdHlNYXA8VD4sIHN0YXRlOiBTKTogUztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTZWxlY3RvcnM8VCwgVj4ge1xuICBzZWxlY3RJZHM6IChzdGF0ZTogVikgPT4gc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgc2VsZWN0RW50aXRpZXM6IChzdGF0ZTogVikgPT4gRGljdGlvbmFyeTxUPjtcbiAgc2VsZWN0QWxsOiAoc3RhdGU6IFYpID0+IFRbXTtcbiAgc2VsZWN0VG90YWw6IChzdGF0ZTogVikgPT4gbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUFkYXB0ZXI8VD4gZXh0ZW5kcyBFbnRpdHlTdGF0ZUFkYXB0ZXI8VD4ge1xuICBzZWxlY3RJZDogSWRTZWxlY3RvcjxUPjtcbiAgc29ydENvbXBhcmVyOiBmYWxzZSB8IENvbXBhcmVyPFQ+O1xuICBnZXRJbml0aWFsU3RhdGUoKTogRW50aXR5U3RhdGU8VD47XG4gIGdldEluaXRpYWxTdGF0ZTxTIGV4dGVuZHMgb2JqZWN0PihzdGF0ZTogUyk6IEVudGl0eVN0YXRlPFQ+ICYgUztcbiAgZ2V0U2VsZWN0b3JzKCk6IEVudGl0eVNlbGVjdG9yczxULCBFbnRpdHlTdGF0ZTxUPj47XG4gIGdldFNlbGVjdG9yczxWPihcbiAgICBzZWxlY3RTdGF0ZTogKHN0YXRlOiBWKSA9PiBFbnRpdHlTdGF0ZTxUPlxuICApOiBFbnRpdHlTZWxlY3RvcnM8VCwgVj47XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9lbnRpdHkvc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxNQUFNLE9BQWdCLFVBQVU7Q0FFL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDb21wYXJlcjxUPiA9IChhOiBULCBiOiBUKSA9PiBudW1iZXI7XG5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JTdHI8VD4gPSAobW9kZWw6IFQpID0+IHN0cmluZztcbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JOdW08VD4gPSAobW9kZWw6IFQpID0+IG51bWJlcjtcblxuZXhwb3J0IHR5cGUgSWRTZWxlY3RvcjxUPiA9IElkU2VsZWN0b3JTdHI8VD4gfCBJZFNlbGVjdG9yTnVtPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERpY3Rpb25hcnlOdW08VD4ge1xuICBbaWQ6IG51bWJlcl06IFQgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEaWN0aW9uYXJ5PFQ+IGltcGxlbWVudHMgRGljdGlvbmFyeU51bTxUPiB7XG4gIFtpZDogc3RyaW5nXTogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTdHI8VD4ge1xuICBpZDogc3RyaW5nO1xuICBjaGFuZ2VzOiBQYXJ0aWFsPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZU51bTxUPiB7XG4gIGlkOiBudW1iZXI7XG4gIGNoYW5nZXM6IFBhcnRpYWw8VD47XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZTxUPiA9IFVwZGF0ZVN0cjxUPiB8IFVwZGF0ZU51bTxUPjtcblxuZXhwb3J0IHR5cGUgUHJlZGljYXRlPFQ+ID0gKGVudGl0eTogVCkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgRW50aXR5TWFwPFQ+ID0gKGVudGl0eTogVCkgPT4gVDtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlNYXBPbmVOdW08VD4ge1xuICBpZDogbnVtYmVyO1xuICBtYXA6IEVudGl0eU1hcDxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlNYXBPbmVTdHI8VD4ge1xuICBpZDogc3RyaW5nO1xuICBtYXA6IEVudGl0eU1hcDxUPjtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5TWFwT25lPFQ+ID0gRW50aXR5TWFwT25lTnVtPFQ+IHwgRW50aXR5TWFwT25lU3RyPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0YXRlPFQ+IHtcbiAgaWRzOiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICBlbnRpdGllczogRGljdGlvbmFyeTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlEZWZpbml0aW9uPFQ+IHtcbiAgc2VsZWN0SWQ6IElkU2VsZWN0b3I8VD47XG4gIHNvcnRDb21wYXJlcjogZmFsc2UgfCBDb21wYXJlcjxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdGF0ZUFkYXB0ZXI8VD4ge1xuICBhZGRPbmU8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihlbnRpdHk6IFQsIHN0YXRlOiBTKTogUztcbiAgYWRkTWFueTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGVudGl0aWVzOiBUW10sIHN0YXRlOiBTKTogUztcblxuICBzZXRBbGw8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihlbnRpdGllczogVFtdLCBzdGF0ZTogUyk6IFM7XG4gIHNldE9uZTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGVudGl0eTogVCwgc3RhdGU6IFMpOiBTO1xuICBzZXRNYW55PFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4oZW50aXRpZXM6IFRbXSwgc3RhdGU6IFMpOiBTO1xuXG4gIHJlbW92ZU9uZTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGtleTogc3RyaW5nLCBzdGF0ZTogUyk6IFM7XG4gIHJlbW92ZU9uZTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGtleTogbnVtYmVyLCBzdGF0ZTogUyk6IFM7XG5cbiAgcmVtb3ZlTWFueTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KGtleXM6IHN0cmluZ1tdLCBzdGF0ZTogUyk6IFM7XG4gIHJlbW92ZU1hbnk8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihrZXlzOiBudW1iZXJbXSwgc3RhdGU6IFMpOiBTO1xuICByZW1vdmVNYW55PFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4ocHJlZGljYXRlOiBQcmVkaWNhdGU8VD4sIHN0YXRlOiBTKTogUztcblxuICByZW1vdmVBbGw8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihzdGF0ZTogUyk6IFM7XG5cbiAgdXBkYXRlT25lPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4odXBkYXRlOiBVcGRhdGU8VD4sIHN0YXRlOiBTKTogUztcbiAgdXBkYXRlTWFueTxTIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4+KHVwZGF0ZXM6IFVwZGF0ZTxUPltdLCBzdGF0ZTogUyk6IFM7XG5cbiAgdXBzZXJ0T25lPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4oZW50aXR5OiBULCBzdGF0ZTogUyk6IFM7XG4gIHVwc2VydE1hbnk8UyBleHRlbmRzIEVudGl0eVN0YXRlPFQ+PihlbnRpdGllczogVFtdLCBzdGF0ZTogUyk6IFM7XG5cbiAgbWFwT25lPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4obWFwOiBFbnRpdHlNYXBPbmU8VD4sIHN0YXRlOiBTKTogUztcbiAgbWFwPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxUPj4obWFwOiBFbnRpdHlNYXA8VD4sIHN0YXRlOiBTKTogUztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTZWxlY3RvcnM8VCwgVj4ge1xuICBzZWxlY3RJZHM6IChzdGF0ZTogVikgPT4gc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgc2VsZWN0RW50aXRpZXM6IChzdGF0ZTogVikgPT4gRGljdGlvbmFyeTxUPjtcbiAgc2VsZWN0QWxsOiAoc3RhdGU6IFYpID0+IFRbXTtcbiAgc2VsZWN0VG90YWw6IChzdGF0ZTogVikgPT4gbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUFkYXB0ZXI8VD4gZXh0ZW5kcyBFbnRpdHlTdGF0ZUFkYXB0ZXI8VD4ge1xuICBzZWxlY3RJZDogSWRTZWxlY3RvcjxUPjtcbiAgc29ydENvbXBhcmVyOiBmYWxzZSB8IENvbXBhcmVyPFQ+O1xuICBnZXRJbml0aWFsU3RhdGUoKTogRW50aXR5U3RhdGU8VD47XG4gIGdldEluaXRpYWxTdGF0ZTxTIGV4dGVuZHMgb2JqZWN0PihzdGF0ZTogUyk6IEVudGl0eVN0YXRlPFQ+ICYgUztcbiAgZ2V0U2VsZWN0b3JzKCk6IEVudGl0eVNlbGVjdG9yczxULCBFbnRpdHlTdGF0ZTxUPj47XG4gIGdldFNlbGVjdG9yczxWPihcbiAgICBzZWxlY3RTdGF0ZTogKHN0YXRlOiBWKSA9PiBFbnRpdHlTdGF0ZTxUPlxuICApOiBFbnRpdHlTZWxlY3RvcnM8VCwgVj47XG59XG4iXX0=
@@ -33,6 +33,17 @@ export function createSortedStateAdapter(selectId, sort) {
33
33
  return addOneMutably(entity, state);
34
34
  }
35
35
  }
36
+ function setManyMutably(entities, state) {
37
+ const didMutateSetOne = entities.map((entity) => setOneMutably(entity, state));
38
+ switch (true) {
39
+ case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):
40
+ return DidMutate.Both;
41
+ case didMutateSetOne.some((didMutate) => didMutate === DidMutate.EntitiesOnly):
42
+ return DidMutate.EntitiesOnly;
43
+ default:
44
+ return DidMutate.None;
45
+ }
46
+ }
36
47
  function updateOneMutably(update, state) {
37
48
  return updateManyMutably([update], state);
38
49
  }
@@ -163,6 +174,7 @@ export function createSortedStateAdapter(selectId, sort) {
163
174
  upsertOne: createStateOperator(upsertOneMutably),
164
175
  setAll: createStateOperator(setAllMutably),
165
176
  setOne: createStateOperator(setOneMutably),
177
+ setMany: createStateOperator(setManyMutably),
166
178
  addMany: createStateOperator(addManyMutably),
167
179
  updateMany: createStateOperator(updateManyMutably),
168
180
  upsertMany: createStateOperator(upsertManyMutably),
@@ -170,4 +182,4 @@ export function createSortedStateAdapter(selectId, sort) {
170
182
  mapOne: createStateOperator(mapOneMutably),
171
183
  };
172
184
  }
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGVkX3N0YXRlX2FkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2VudGl0eS9zcmMvc29ydGVkX3N0YXRlX2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNeEMsTUFBTSxVQUFVLHdCQUF3QixDQUFJLFFBQWEsRUFBRSxJQUFTO0lBR2xFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLDBCQUEwQixDQUNyRSxRQUFRLENBQ1QsQ0FBQztJQUdGLFNBQVMsYUFBYSxDQUFDLE1BQVcsRUFBRSxLQUFVO1FBQzVDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUdELFNBQVMsY0FBYyxDQUFDLFNBQWdCLEVBQUUsS0FBVTtRQUNsRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUM3QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUMvRCxDQUFDO1FBRUYsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDdkI7YUFBTTtZQUNMLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUdELFNBQVMsYUFBYSxDQUFDLE1BQWEsRUFBRSxL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Q0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0wsU0FBUztRQUNULFVBQVU7UUFDVixTQUFTO1FBQ1QsTUFBTSxFQUFFLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztRQUMxQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsU0FBUyxFQUFFLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDO1FBQ2hELE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7UUFDMUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztRQUMxQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsY0FBYyxDQUFDO1FBQzVDLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxVQUFVLEVBQUUsbUJBQW1CLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsR0FBRyxFQUFFLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztRQUNwQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDO0tBQzNDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5U3RhdGUsXG4gIElkU2VsZWN0b3IsXG4gIENvbXBhcmVyLFxuICBFbnRpdHlTdGF0ZUFkYXB0ZXIsXG4gIFVwZGF0ZSxcbiAgRW50aXR5TWFwLFxuICBFbnRpdHlNYXBPbmVOdW0sXG4gIEVudGl0eU1hcE9uZVN0cixcbn0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3JlYXRlU3RhdGVPcGVyYXRvciwgRGlkTXV0YXRlIH0gZnJvbSAnLi9zdGF0ZV9hZGFwdGVyJztcbmltcG9ydCB7IGNyZWF0ZVVuc29ydGVkU3RhdGVBZGFwdGVyIH0gZnJvbSAnLi91bnNvcnRlZF9zdGF0ZV9hZGFwdGVyJztcbmltcG9ydCB7IHNlbGVjdElkVmFsdWUgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNvcnRlZFN0YXRlQWRhcHRlcjxUPihcbiAgc2VsZWN0SWQ6IElkU2VsZWN0b3I8VD4sXG4gIHNvcnQ6IENvbXBhcmVyPFQ+XG4pOiBFbnRpdHlTdGF0ZUFkYXB0ZXI8VD47XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU29ydGVkU3RhdGVBZGFwdGVyPFQ+KHNlbGVjdElkOiBhbnksIHNvcnQ6IGFueSk6IGFueSB7XG4gIHR5cGUgUiA9IEVudGl0eVN0YXRlPFQ+O1xuXG4gIGNvbnN0IHsgcmVtb3ZlT25lLCByZW1vdmVNYW55LCByZW1vdmVBbGwgfSA9IGNyZWF0ZVVuc29ydGVkU3RhdGVBZGFwdGVyKFxuICAgIHNlbGVjdElkXG4gICk7XG5cbiAgZnVuY3Rpb24gYWRkT25lTXV0YWJseShlbnRpdHk6IFQsIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBhZGRPbmVNdXRhYmx5KGVudGl0eTogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICByZXR1cm4gYWRkTWFueU11dGFibHkoW2VudGl0eV0sIHN0YXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFkZE1hbnlNdXRhYmx5KG5ld01vZGVsczogVFtdLCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gYWRkTWFueU11dGFibHkobmV3TW9kZWxzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgbW9kZWxzID0gbmV3TW9kZWxzLmZpbHRlcihcbiAgICAgIChtb2RlbCkgPT4gIShzZWxlY3RJZFZhbHVlKG1vZGVsLCBzZWxlY3RJZCkgaW4gc3RhdGUuZW50aXRpZXMpXG4gICAgKTtcblxuICAgIGlmIChtb2RlbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gRGlkTXV0YXRlLk5vbmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlKG1vZGVscywgc3RhdGUpO1xuICAgICAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNldEFsbE11dGFibHkobW9kZWxzOiBUW10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBzZXRBbGxNdXRhYmx5KG1vZGVsczogYW55W10sIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHN0YXRlLmVudGl0aWVzID0ge307XG4gICAgc3RhdGUuaWRzID0gW107XG5cbiAgICBhZGRNYW55TXV0YWJseShtb2RlbHMsIHN0YXRlKTtcblxuICAgIHJldHVybiBEaWRNdXRhdGUuQm90aDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldE9uZU11dGFibHkoZW50aXR5OiBULCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gc2V0T25lTXV0YWJseShlbnRpdHk6IGFueSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgaWQgPSBzZWxlY3RJZFZhbHVlKGVudGl0eSwgc2VsZWN0SWQpO1xuICAgIGlmIChpZCBpbiBzdGF0ZS5lbnRpdGllcykge1xuICAgICAgc3RhdGUuaWRzID0gc3RhdGUuaWRzLmZpbHRlcigodmFsOiBzdHJpbmcgfCBudW1iZXIpID0+IHZhbCAhPT0gaWQpO1xuICAgICAgbWVyZ2UoW2VudGl0eV0sIHN0YXRlKTtcbiAgICAgIHJldHVybiBEaWRNdXRhdGUuQm90aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFkZE9uZU11dGFibHkoZW50aXR5LCBzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlT25lTXV0YWJseSh1cGRhdGU6IFVwZGF0ZTxUPiwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwZGF0ZU9uZU11dGFibHkodXBkYXRlOiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiB1cGRhdGVNYW55TXV0YWJseShbdXBkYXRlXSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGFrZVVwZGF0ZWRNb2RlbChtb2RlbHM6IFRbXSwgdXBkYXRlOiBVcGRhdGU8VD4sIHN0YXRlOiBSKTogYm9vbGVhbjtcbiAgZnVuY3Rpb24gdGFrZVVwZGF0ZWRNb2RlbChtb2RlbHM6IGFueVtdLCB1cGRhdGU6IGFueSwgc3RhdGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghKHVwZGF0ZS5pZCBpbiBzdGF0ZS5lbnRpdGllcykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmlnaW5hbCA9IHN0YXRlLmVudGl0aWVzW3VwZGF0ZS5pZF07XG4gICAgY29uc3QgdXBkYXRlZCA9IE9iamVjdC5hc3NpZ24oe30sIG9yaWdpbmFsLCB1cGRhdGUuY2hhbmdlcyk7XG4gICAgY29uc3QgbmV3S2V5ID0gc2VsZWN0SWRWYWx1ZSh1cGRhdGVkLCBzZWxlY3RJZCk7XG5cbiAgICBkZWxldGUgc3RhdGUuZW50aXRpZXNbdXBkYXRlLmlkXTtcblxuICAgIG1vZGVscy5wdXNoKHVwZGF0ZWQpO1xuXG4gICAgcmV0dXJuIG5ld0tleSAhPT0gdXBkYXRlLmlkO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlTWFueU11dGFibHkodXBkYXRlczogVXBkYXRlPFQ+W10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgbW9kZWxzOiBUW10gPSBbXTtcblxuICAgIGNvbnN0IGRpZE11dGF0ZUlkcyA9XG4gICAgICB1cGRhdGVzLmZpbHRlcigodXBkYXRlKSA9PiB0YWtlVXBkYXRlZE1vZGVsKG1vZGVscywgdXBkYXRlLCBzdGF0ZSkpXG4gICAgICAgIC5sZW5ndGggPiAwO1xuXG4gICAgaWYgKG1vZGVscy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3JpZ2luYWxJZHMgPSBzdGF0ZS5pZHM7XG4gICAgICBjb25zdCB1cGRhdGVkSW5kZXhlczogYW55W10gPSBbXTtcbiAgICAgIHN0YXRlLmlkcyA9IHN0YXRlLmlkcy5maWx0ZXIoKGlkOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGlkIGluIHN0YXRlLmVudGl0aWVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXBkYXRlZEluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbWVyZ2UobW9kZWxzLCBzdGF0ZSk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgIWRpZE11dGF0ZUlkcyAmJlxuICAgICAgICB1cGRhdGVkSW5kZXhlcy5ldmVyeSgoaTogbnVtYmVyKSA9PiBzdGF0ZS5pZHNbaV0gPT09IG9yaWdpbmFsSWRzW2ldKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBEaWRNdXRhdGUuRW50aXRpZXNPbmx5O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIG1hcE11dGFibHkobWFwOiBFbnRpdHlNYXA8VD4sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBtYXBNdXRhYmx5KHVwZGF0ZXNPck1hcDogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCB1cGRhdGVzOiBVcGRhdGU8VD5bXSA9IHN0YXRlLmlkcy5yZWR1Y2UoXG4gICAgICAoY2hhbmdlczogYW55W10sIGlkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gdXBkYXRlc09yTWFwKHN0YXRlLmVudGl0aWVzW2lkXSk7XG4gICAgICAgIGlmIChjaGFuZ2UgIT09IHN0YXRlLmVudGl0aWVzW2lkXSkge1xuICAgICAgICAgIGNoYW5nZXMucHVzaCh7IGlkLCBjaGFuZ2VzOiBjaGFuZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgICB9LFxuICAgICAgW11cbiAgICApO1xuXG4gICAgcmV0dXJuIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZXMsIHN0YXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG1hcE9uZU11dGFibHkobWFwOiBFbnRpdHlNYXBPbmVOdW08VD4sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBtYXBPbmVNdXRhYmx5KG1hcDogRW50aXR5TWFwT25lU3RyPFQ+LCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gbWFwT25lTXV0YWJseSh7IG1hcCwgaWQgfTogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBlbnRpdHkgPSBzdGF0ZS5lbnRpdGllc1tpZF07XG4gICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkRW50aXR5ID0gbWFwKGVudGl0eSk7XG4gICAgcmV0dXJuIHVwZGF0ZU9uZU11dGFibHkoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAgY2hhbmdlczogdXBkYXRlZEVudGl0eSxcbiAgICAgIH0sXG4gICAgICBzdGF0ZVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiB1cHNlcnRPbmVNdXRhYmx5KGVudGl0eTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE9uZU11dGFibHkoZW50aXR5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiB1cHNlcnRNYW55TXV0YWJseShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBzZXJ0TWFueU11dGFibHkoZW50aXRpZXM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE1hbnlNdXRhYmx5KGVudGl0aWVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgYWRkZWQ6IGFueVtdID0gW107XG4gICAgY29uc3QgdXBkYXRlZDogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzKSB7XG4gICAgICBjb25zdCBpZCA9IHNlbGVjdElkVmFsdWUoZW50aXR5LCBzZWxlY3RJZCk7XG4gICAgICBpZiAoaWQgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgICAgdXBkYXRlZC5wdXNoKHsgaWQsIGNoYW5nZXM6IGVudGl0eSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZGVkLnB1c2goZW50aXR5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaWRNdXRhdGVCeVVwZGF0ZWQgPSB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVkLCBzdGF0ZSk7XG4gICAgY29uc3QgZGlkTXV0YXRlQnlBZGRlZCA9IGFkZE1hbnlNdXRhYmx5KGFkZGVkLCBzdGF0ZSk7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgZGlkTXV0YXRlQnlBZGRlZCA9PT0gRGlkTXV0YXRlLk5vbmUgJiZcbiAgICAgICAgZGlkTXV0YXRlQnlVcGRhdGVkID09PSBEaWRNdXRhdGUuTm9uZTpcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5Ob25lO1xuICAgICAgY2FzZSBkaWRNdXRhdGVCeUFkZGVkID09PSBEaWRNdXRhdGUuQm90aCB8fFxuICAgICAgICBkaWRNdXRhdGVCeVVwZGF0ZWQgPT09IERpZE11dGF0ZS5Cb3RoOlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBtZXJnZShtb2RlbHM6IFRbXSwgc3RhdGU6IFIpOiB2b2lkO1xuICBmdW5jdGlvbiBtZXJnZShtb2RlbHM6IGFueVtdLCBzdGF0ZTogYW55KTogdm9pZCB7XG4gICAgbW9kZWxzLnNvcnQoc29ydCk7XG5cbiAgICBjb25zdCBpZHM6IGFueVtdID0gW107XG5cbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGogPSAwO1xuXG4gICAgd2hpbGUgKGkgPCBtb2RlbHMubGVuZ3RoICYmIGogPCBzdGF0ZS5pZHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsc1tpXTtcbiAgICAgIGNvbnN0IG1vZGVsSWQgPSBzZWxlY3RJZFZhbHVlKG1vZGVsLCBzZWxlY3RJZCk7XG4gICAgICBjb25zdCBlbnRpdHlJZCA9IHN0YXRlLmlkc1tqXTtcbiAgICAgIGNvbnN0IGVudGl0eSA9IHN0YXRlLmVudGl0aWVzW2VudGl0eUlkXTtcblxuICAgICAgaWYgKHNvcnQobW9kZWwsIGVudGl0eSkgPD0gMCkge1xuICAgICAgICBpZHMucHVzaChtb2RlbElkKTtcbiAgICAgICAgaSsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWRzLnB1c2goZW50aXR5SWQpO1xuICAgICAgICBqKys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGkgPCBtb2RlbHMubGVuZ3RoKSB7XG4gICAgICBzdGF0ZS5pZHMgPSBpZHMuY29uY2F0KG1vZGVscy5zbGljZShpKS5tYXAoc2VsZWN0SWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUuaWRzID0gaWRzLmNvbmNhdChzdGF0ZS5pZHMuc2xpY2UoaikpO1xuICAgIH1cblxuICAgIG1vZGVscy5mb3JFYWNoKChtb2RlbCwgaSkgPT4ge1xuICAgICAgc3RhdGUuZW50aXRpZXNbc2VsZWN0SWQobW9kZWwpXSA9IG1vZGVsO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZW1vdmVPbmUsXG4gICAgcmVtb3ZlTWFueSxcbiAgICByZW1vdmVBbGwsXG4gICAgYWRkT25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKGFkZE9uZU11dGFibHkpLFxuICAgIHVwZGF0ZU9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcih1cGRhdGVPbmVNdXRhYmx5KSxcbiAgICB1cHNlcnRPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBzZXJ0T25lTXV0YWJseSksXG4gICAgc2V0QWxsOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHNldEFsbE11dGFibHkpLFxuICAgIHNldE9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihzZXRPbmVNdXRhYmx5KSxcbiAgICBhZGRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKGFkZE1hbnlNdXRhYmx5KSxcbiAgICB1cGRhdGVNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwZGF0ZU1hbnlNdXRhYmx5KSxcbiAgICB1cHNlcnRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwc2VydE1hbnlNdXRhYmx5KSxcbiAgICBtYXA6IGNyZWF0ZVN0YXRlT3BlcmF0b3IobWFwTXV0YWJseSksXG4gICAgbWFwT25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKG1hcE9uZU11dGFibHkpLFxuICB9O1xufVxuIl19
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGVkX3N0YXRlX2FkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2VudGl0eS9zcmMvc29ydGVkX3N0YXRlX2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNeEMsTUFBTSxVQUFVLHdCQUF3QixDQUFJLFFBQWEsRUFBRSxJQUFTO0lBR2xFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLDBCQUEwQixDQUNyRSxRQUFRLENBQ1QsQ0FBQztJQUdGLFNBQVMsYUFBYSxDQUFDLE1BQVcsRUFBRSxLQUFVO1FBQzVDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUdELFNBQVMsY0FBYyxDQUFDLFNBQWdCLEVBQUUsS0FBVTtRQUNsRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUM3QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUMvRCxDQUFDO1FBRUYsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDdkI7YUFBTTtZQUNMLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUdELFNBQVMsYUFBYSxDQUFDLE1BQWEsRUFBRSxLQUFVO1FBQzlDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBRWYsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU5QixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUdELFNBQVMsYUFBYSxDQUFDLE1BQVcsRUFBRSxLQUFVO1FBQzVDLE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsSUFBSSxFQUFFLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUN4QixLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBb0IsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztTQUN2QjthQUFNO1lBQ0wsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUdELFNBQVMsY0FBYyxDQUFDLFFBQWUsRUFBRSxLQUFVO1FBQ2pELE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUM5QyxhQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUM3QixDQUFDO1FBRUYsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNwRSxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDeEIsS0FBSyxlQUFlLENBQUMsSUFBSSxDQUN2QixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxZQUFZLENBQ3BEO2dCQUNDLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQztZQUNoQztnQkFDRSxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBR0QsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFXLEVBQUUsS0FBVTtRQUMvQyxPQUFPLGlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUdELFNBQVMsZ0JBQWdCLENBQUMsTUFBYSxFQUFFLE1BQVcsRUFBRSxLQUFVO1FBQzlELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFaEQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJCLE9BQU8sTUFBTSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUdELFNBQVMsaUJBQWlCLENBQUMsT0FBYyxFQUFFLEtBQVU7UUFDbkQsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBRXZCLE1BQU0sWUFBWSxHQUNoQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ2hFLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFaEIsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDdkI7YUFBTTtZQUNMLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDOUIsTUFBTSxjQUFjLEdBQVUsRUFBRSxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFPLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQ3RELElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7b0JBQ3hCLE9BQU8sSUFBSSxDQUFDO2lCQUNiO3FCQUFNO29CQUNMLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzNCLE9BQU8sS0FBSyxDQUFDO2lCQUNkO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXJCLElBQ0UsQ0FBQyxZQUFZO2dCQUNiLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3BFO2dCQUNBLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7YUFDdkI7U0FDRjtJQUNILENBQUM7SUFHRCxTQUFTLFVBQVUsQ0FBQyxZQUFpQixFQUFFLEtBQVU7UUFDL0MsTUFBTSxPQUFPLEdBQWdCLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUMzQyxDQUFDLE9BQWMsRUFBRSxFQUFtQixFQUFFLEVBQUU7WUFDdEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZDO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO1FBRUYsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUlELFNBQVMsYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBTyxFQUFFLEtBQVU7UUFDakQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ3ZCO1FBRUQsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sZ0JBQWdCLENBQ3JCO1lBQ0UsRUFBRSxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsYUFBYTtTQUN2QixFQUNELEtBQUssQ0FDTixDQUFDO0lBQ0osQ0FBQztJQUdELFNBQVMsZ0JBQWdCLENBQUMsTUFBVyxFQUFFLEtBQVU7UUFDL0MsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFHRCxTQUFTLGlCQUFpQixDQUFDLFFBQWUsRUFBRSxLQUFVO1FBQ3BELE1BQU0sS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUN4QixNQUFNLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFFMUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLEVBQUU7WUFDN0IsTUFBTSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMzQyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNMLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDcEI7U0FDRjtRQUVELE1BQU0sa0JBQWtCLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV0RCxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssZ0JBQWdCLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQ3RDLGtCQUFrQixLQUFLLFNBQVMsQ0FBQyxJQUFJO2dCQUNyQyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDeEIsS0FBSyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsSUFBSTtnQkFDdEMsa0JBQWtCLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQ3JDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztZQUN4QjtnQkFDRSxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBR0QsU0FBUyxLQUFLLENBQUMsTUFBYSxFQUFFLEtBQVU7UUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQixNQUFNLEdBQUcsR0FBVSxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRVYsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7WUFDaEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXhDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVCLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2xCLENBQUMsRUFBRSxDQUFDO2FBQ0w7aUJBQU07Z0JBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbkIsQ0FBQyxFQUFFLENBQUM7YUFDTDtTQUNGO1FBRUQsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNyQixLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0wsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUM7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxTQUFTO1FBQ1QsVUFBVTtRQUNWLFNBQVM7UUFDVCxNQUFNLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDO1FBQzFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxTQUFTLEVBQUUsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsTUFBTSxFQUFFLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztRQUMxQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7UUFDNUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDLGNBQWMsQ0FBQztRQUM1QyxVQUFVLEVBQUUsbUJBQW1CLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsVUFBVSxFQUFFLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDO1FBQ2xELEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFDcEMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztLQUMzQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudGl0eVN0YXRlLFxuICBJZFNlbGVjdG9yLFxuICBDb21wYXJlcixcbiAgRW50aXR5U3RhdGVBZGFwdGVyLFxuICBVcGRhdGUsXG4gIEVudGl0eU1hcCxcbiAgRW50aXR5TWFwT25lTnVtLFxuICBFbnRpdHlNYXBPbmVTdHIsXG59IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IGNyZWF0ZVN0YXRlT3BlcmF0b3IsIERpZE11dGF0ZSB9IGZyb20gJy4vc3RhdGVfYWRhcHRlcic7XG5pbXBvcnQgeyBjcmVhdGVVbnNvcnRlZFN0YXRlQWRhcHRlciB9IGZyb20gJy4vdW5zb3J0ZWRfc3RhdGVfYWRhcHRlcic7XG5pbXBvcnQgeyBzZWxlY3RJZFZhbHVlIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTb3J0ZWRTdGF0ZUFkYXB0ZXI8VD4oXG4gIHNlbGVjdElkOiBJZFNlbGVjdG9yPFQ+LFxuICBzb3J0OiBDb21wYXJlcjxUPlxuKTogRW50aXR5U3RhdGVBZGFwdGVyPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNvcnRlZFN0YXRlQWRhcHRlcjxUPihzZWxlY3RJZDogYW55LCBzb3J0OiBhbnkpOiBhbnkge1xuICB0eXBlIFIgPSBFbnRpdHlTdGF0ZTxUPjtcblxuICBjb25zdCB7IHJlbW92ZU9uZSwgcmVtb3ZlTWFueSwgcmVtb3ZlQWxsIH0gPSBjcmVhdGVVbnNvcnRlZFN0YXRlQWRhcHRlcihcbiAgICBzZWxlY3RJZFxuICApO1xuXG4gIGZ1bmN0aW9uIGFkZE9uZU11dGFibHkoZW50aXR5OiBULCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gYWRkT25lTXV0YWJseShlbnRpdHk6IGFueSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgcmV0dXJuIGFkZE1hbnlNdXRhYmx5KFtlbnRpdHldLCBzdGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBhZGRNYW55TXV0YWJseShuZXdNb2RlbHM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIGFkZE1hbnlNdXRhYmx5KG5ld01vZGVsczogYW55W10sIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIGNvbnN0IG1vZGVscyA9IG5ld01vZGVscy5maWx0ZXIoXG4gICAgICAobW9kZWwpID0+ICEoc2VsZWN0SWRWYWx1ZShtb2RlbCwgc2VsZWN0SWQpIGluIHN0YXRlLmVudGl0aWVzKVxuICAgICk7XG5cbiAgICBpZiAobW9kZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIERpZE11dGF0ZS5Ob25lO1xuICAgIH0gZWxzZSB7XG4gICAgICBtZXJnZShtb2RlbHMsIHN0YXRlKTtcbiAgICAgIHJldHVybiBEaWRNdXRhdGUuQm90aDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzZXRBbGxNdXRhYmx5KG1vZGVsczogVFtdLCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gc2V0QWxsTXV0YWJseShtb2RlbHM6IGFueVtdLCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBzdGF0ZS5lbnRpdGllcyA9IHt9O1xuICAgIHN0YXRlLmlkcyA9IFtdO1xuXG4gICAgYWRkTWFueU11dGFibHkobW9kZWxzLCBzdGF0ZSk7XG5cbiAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gIH1cblxuICBmdW5jdGlvbiBzZXRPbmVNdXRhYmx5KGVudGl0eTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHNldE9uZU11dGFibHkoZW50aXR5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIGNvbnN0IGlkID0gc2VsZWN0SWRWYWx1ZShlbnRpdHksIHNlbGVjdElkKTtcbiAgICBpZiAoaWQgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgIHN0YXRlLmlkcyA9IHN0YXRlLmlkcy5maWx0ZXIoKHZhbDogc3RyaW5nIHwgbnVtYmVyKSA9PiB2YWwgIT09IGlkKTtcbiAgICAgIG1lcmdlKFtlbnRpdHldLCBzdGF0ZSk7XG4gICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhZGRPbmVNdXRhYmx5KGVudGl0eSwgc3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNldE1hbnlNdXRhYmx5KGVudGl0aWVzOiBUW10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBzZXRNYW55TXV0YWJseShlbnRpdGllczogYW55W10sIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIGNvbnN0IGRpZE11dGF0ZVNldE9uZSA9IGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PlxuICAgICAgc2V0T25lTXV0YWJseShlbnRpdHksIHN0YXRlKVxuICAgICk7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgZGlkTXV0YXRlU2V0T25lLnNvbWUoKGRpZE11dGF0ZSkgPT4gZGlkTXV0YXRlID09PSBEaWRNdXRhdGUuQm90aCk6XG4gICAgICAgIHJldHVybiBEaWRNdXRhdGUuQm90aDtcbiAgICAgIGNhc2UgZGlkTXV0YXRlU2V0T25lLnNvbWUoXG4gICAgICAgIChkaWRNdXRhdGUpID0+IGRpZE11dGF0ZSA9PT0gRGlkTXV0YXRlLkVudGl0aWVzT25seVxuICAgICAgKTpcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5FbnRpdGllc09ubHk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLk5vbmU7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlT25lTXV0YWJseSh1cGRhdGU6IFVwZGF0ZTxUPiwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwZGF0ZU9uZU11dGFibHkodXBkYXRlOiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiB1cGRhdGVNYW55TXV0YWJseShbdXBkYXRlXSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGFrZVVwZGF0ZWRNb2RlbChtb2RlbHM6IFRbXSwgdXBkYXRlOiBVcGRhdGU8VD4sIHN0YXRlOiBSKTogYm9vbGVhbjtcbiAgZnVuY3Rpb24gdGFrZVVwZGF0ZWRNb2RlbChtb2RlbHM6IGFueVtdLCB1cGRhdGU6IGFueSwgc3RhdGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghKHVwZGF0ZS5pZCBpbiBzdGF0ZS5lbnRpdGllcykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmlnaW5hbCA9IHN0YXRlLmVudGl0aWVzW3VwZGF0ZS5pZF07XG4gICAgY29uc3QgdXBkYXRlZCA9IE9iamVjdC5hc3NpZ24oe30sIG9yaWdpbmFsLCB1cGRhdGUuY2hhbmdlcyk7XG4gICAgY29uc3QgbmV3S2V5ID0gc2VsZWN0SWRWYWx1ZSh1cGRhdGVkLCBzZWxlY3RJZCk7XG5cbiAgICBkZWxldGUgc3RhdGUuZW50aXRpZXNbdXBkYXRlLmlkXTtcblxuICAgIG1vZGVscy5wdXNoKHVwZGF0ZWQpO1xuXG4gICAgcmV0dXJuIG5ld0tleSAhPT0gdXBkYXRlLmlkO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlTWFueU11dGFibHkodXBkYXRlczogVXBkYXRlPFQ+W10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgbW9kZWxzOiBUW10gPSBbXTtcblxuICAgIGNvbnN0IGRpZE11dGF0ZUlkcyA9XG4gICAgICB1cGRhdGVzLmZpbHRlcigodXBkYXRlKSA9PiB0YWtlVXBkYXRlZE1vZGVsKG1vZGVscywgdXBkYXRlLCBzdGF0ZSkpXG4gICAgICAgIC5sZW5ndGggPiAwO1xuXG4gICAgaWYgKG1vZGVscy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3JpZ2luYWxJZHMgPSBzdGF0ZS5pZHM7XG4gICAgICBjb25zdCB1cGRhdGVkSW5kZXhlczogYW55W10gPSBbXTtcbiAgICAgIHN0YXRlLmlkcyA9IHN0YXRlLmlkcy5maWx0ZXIoKGlkOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGlkIGluIHN0YXRlLmVudGl0aWVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXBkYXRlZEluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbWVyZ2UobW9kZWxzLCBzdGF0ZSk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgIWRpZE11dGF0ZUlkcyAmJlxuICAgICAgICB1cGRhdGVkSW5kZXhlcy5ldmVyeSgoaTogbnVtYmVyKSA9PiBzdGF0ZS5pZHNbaV0gPT09IG9yaWdpbmFsSWRzW2ldKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBEaWRNdXRhdGUuRW50aXRpZXNPbmx5O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIG1hcE11dGFibHkobWFwOiBFbnRpdHlNYXA8VD4sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBtYXBNdXRhYmx5KHVwZGF0ZXNPck1hcDogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCB1cGRhdGVzOiBVcGRhdGU8VD5bXSA9IHN0YXRlLmlkcy5yZWR1Y2UoXG4gICAgICAoY2hhbmdlczogYW55W10sIGlkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gdXBkYXRlc09yTWFwKHN0YXRlLmVudGl0aWVzW2lkXSk7XG4gICAgICAgIGlmIChjaGFuZ2UgIT09IHN0YXRlLmVudGl0aWVzW2lkXSkge1xuICAgICAgICAgIGNoYW5nZXMucHVzaCh7IGlkLCBjaGFuZ2VzOiBjaGFuZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgICB9LFxuICAgICAgW11cbiAgICApO1xuXG4gICAgcmV0dXJuIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZXMsIHN0YXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG1hcE9uZU11dGFibHkobWFwOiBFbnRpdHlNYXBPbmVOdW08VD4sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBtYXBPbmVNdXRhYmx5KG1hcDogRW50aXR5TWFwT25lU3RyPFQ+LCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gbWFwT25lTXV0YWJseSh7IG1hcCwgaWQgfTogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBlbnRpdHkgPSBzdGF0ZS5lbnRpdGllc1tpZF07XG4gICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkRW50aXR5ID0gbWFwKGVudGl0eSk7XG4gICAgcmV0dXJuIHVwZGF0ZU9uZU11dGFibHkoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAgY2hhbmdlczogdXBkYXRlZEVudGl0eSxcbiAgICAgIH0sXG4gICAgICBzdGF0ZVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiB1cHNlcnRPbmVNdXRhYmx5KGVudGl0eTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE9uZU11dGFibHkoZW50aXR5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiB1cHNlcnRNYW55TXV0YWJseShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBzZXJ0TWFueU11dGFibHkoZW50aXRpZXM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE1hbnlNdXRhYmx5KGVudGl0aWVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgYWRkZWQ6IGFueVtdID0gW107XG4gICAgY29uc3QgdXBkYXRlZDogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzKSB7XG4gICAgICBjb25zdCBpZCA9IHNlbGVjdElkVmFsdWUoZW50aXR5LCBzZWxlY3RJZCk7XG4gICAgICBpZiAoaWQgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgICAgdXBkYXRlZC5wdXNoKHsgaWQsIGNoYW5nZXM6IGVudGl0eSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZGVkLnB1c2goZW50aXR5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaWRNdXRhdGVCeVVwZGF0ZWQgPSB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVkLCBzdGF0ZSk7XG4gICAgY29uc3QgZGlkTXV0YXRlQnlBZGRlZCA9IGFkZE1hbnlNdXRhYmx5KGFkZGVkLCBzdGF0ZSk7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgZGlkTXV0YXRlQnlBZGRlZCA9PT0gRGlkTXV0YXRlLk5vbmUgJiZcbiAgICAgICAgZGlkTXV0YXRlQnlVcGRhdGVkID09PSBEaWRNdXRhdGUuTm9uZTpcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5Ob25lO1xuICAgICAgY2FzZSBkaWRNdXRhdGVCeUFkZGVkID09PSBEaWRNdXRhdGUuQm90aCB8fFxuICAgICAgICBkaWRNdXRhdGVCeVVwZGF0ZWQgPT09IERpZE11dGF0ZS5Cb3RoOlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBtZXJnZShtb2RlbHM6IFRbXSwgc3RhdGU6IFIpOiB2b2lkO1xuICBmdW5jdGlvbiBtZXJnZShtb2RlbHM6IGFueVtdLCBzdGF0ZTogYW55KTogdm9pZCB7XG4gICAgbW9kZWxzLnNvcnQoc29ydCk7XG5cbiAgICBjb25zdCBpZHM6IGFueVtdID0gW107XG5cbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGogPSAwO1xuXG4gICAgd2hpbGUgKGkgPCBtb2RlbHMubGVuZ3RoICYmIGogPCBzdGF0ZS5pZHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsc1tpXTtcbiAgICAgIGNvbnN0IG1vZGVsSWQgPSBzZWxlY3RJZFZhbHVlKG1vZGVsLCBzZWxlY3RJZCk7XG4gICAgICBjb25zdCBlbnRpdHlJZCA9IHN0YXRlLmlkc1tqXTtcbiAgICAgIGNvbnN0IGVudGl0eSA9IHN0YXRlLmVudGl0aWVzW2VudGl0eUlkXTtcblxuICAgICAgaWYgKHNvcnQobW9kZWwsIGVudGl0eSkgPD0gMCkge1xuICAgICAgICBpZHMucHVzaChtb2RlbElkKTtcbiAgICAgICAgaSsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWRzLnB1c2goZW50aXR5SWQpO1xuICAgICAgICBqKys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGkgPCBtb2RlbHMubGVuZ3RoKSB7XG4gICAgICBzdGF0ZS5pZHMgPSBpZHMuY29uY2F0KG1vZGVscy5zbGljZShpKS5tYXAoc2VsZWN0SWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUuaWRzID0gaWRzLmNvbmNhdChzdGF0ZS5pZHMuc2xpY2UoaikpO1xuICAgIH1cblxuICAgIG1vZGVscy5mb3JFYWNoKChtb2RlbCwgaSkgPT4ge1xuICAgICAgc3RhdGUuZW50aXRpZXNbc2VsZWN0SWQobW9kZWwpXSA9IG1vZGVsO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZW1vdmVPbmUsXG4gICAgcmVtb3ZlTWFueSxcbiAgICByZW1vdmVBbGwsXG4gICAgYWRkT25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKGFkZE9uZU11dGFibHkpLFxuICAgIHVwZGF0ZU9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcih1cGRhdGVPbmVNdXRhYmx5KSxcbiAgICB1cHNlcnRPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBzZXJ0T25lTXV0YWJseSksXG4gICAgc2V0QWxsOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHNldEFsbE11dGFibHkpLFxuICAgIHNldE9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihzZXRPbmVNdXRhYmx5KSxcbiAgICBzZXRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHNldE1hbnlNdXRhYmx5KSxcbiAgICBhZGRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKGFkZE1hbnlNdXRhYmx5KSxcbiAgICB1cGRhdGVNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwZGF0ZU1hbnlNdXRhYmx5KSxcbiAgICB1cHNlcnRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwc2VydE1hbnlNdXRhYmx5KSxcbiAgICBtYXA6IGNyZWF0ZVN0YXRlT3BlcmF0b3IobWFwTXV0YWJseSksXG4gICAgbWFwT25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKG1hcE9uZU11dGFibHkpLFxuICB9O1xufVxuIl19
@@ -33,6 +33,17 @@ export function createUnsortedStateAdapter(selectId) {
33
33
  state.entities[key] = entity;
34
34
  return DidMutate.Both;
35
35
  }
36
+ function setManyMutably(entities, state) {
37
+ const didMutateSetOne = entities.map((entity) => setOneMutably(entity, state));
38
+ switch (true) {
39
+ case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):
40
+ return DidMutate.Both;
41
+ case didMutateSetOne.some((didMutate) => didMutate === DidMutate.EntitiesOnly):
42
+ return DidMutate.EntitiesOnly;
43
+ default:
44
+ return DidMutate.None;
45
+ }
46
+ }
36
47
  function removeOneMutably(key, state) {
37
48
  return removeManyMutably([key], state);
38
49
  }
@@ -142,6 +153,7 @@ export function createUnsortedStateAdapter(selectId) {
142
153
  addMany: createStateOperator(addManyMutably),
143
154
  setAll: createStateOperator(setAllMutably),
144
155
  setOne: createStateOperator(setOneMutably),
156
+ setMany: createStateOperator(setManyMutably),
145
157
  updateOne: createStateOperator(updateOneMutably),
146
158
  updateMany: createStateOperator(updateManyMutably),
147
159
  upsertOne: createStateOperator(upsertOneMutably),
@@ -152,4 +164,4 @@ export function createUnsortedStateAdapter(selectId) {
152
164
  mapOne: createStateOperator(mapOneMutably),
153
165
  };
154
166
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zb3J0ZWRfc3RhdGVfYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZW50aXR5L3NyYy91bnNvcnRlZF9zdGF0ZV9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBS3hDLE1BQU0sVUFBVSwwQkFBMEIsQ0FBSSxRQUF1QjtJQUluRSxTQUFTLGFBQWEsQ0FBQyxNQUFXLEVBQUUsS0FBVTtRQUM1QyxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDekIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ3ZCO1FBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFFN0IsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxTQUFTLGNBQWMsQ0FBQyxRQUFlLEVBQUUsS0FBVTtRQUNqRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLEVBQUU7WUFDN0IsU0FBUyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUM7U0FDMUU7UUFFRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBR0QsU0FBUyxhQUFhLENB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QW1CLENBQUMsYUFBYSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7UUFDNUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztRQUMxQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDO1FBQzFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxVQUFVLEVBQUUsbUJBQW1CLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsU0FBUyxFQUFFLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDO1FBQ2hELFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxTQUFTLEVBQUUsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsVUFBVSxFQUFFLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDO1FBQ2xELEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFDcEMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztLQUMzQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudGl0eVN0YXRlLFxuICBFbnRpdHlTdGF0ZUFkYXB0ZXIsXG4gIElkU2VsZWN0b3IsXG4gIFVwZGF0ZSxcbiAgUHJlZGljYXRlLFxuICBFbnRpdHlNYXAsXG4gIEVudGl0eU1hcE9uZU51bSxcbiAgRW50aXR5TWFwT25lU3RyLFxufSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBjcmVhdGVTdGF0ZU9wZXJhdG9yLCBEaWRNdXRhdGUgfSBmcm9tICcuL3N0YXRlX2FkYXB0ZXInO1xuaW1wb3J0IHsgc2VsZWN0SWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVW5zb3J0ZWRTdGF0ZUFkYXB0ZXI8VD4oXG4gIHNlbGVjdElkOiBJZFNlbGVjdG9yPFQ+XG4pOiBFbnRpdHlTdGF0ZUFkYXB0ZXI8VD47XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVW5zb3J0ZWRTdGF0ZUFkYXB0ZXI8VD4oc2VsZWN0SWQ6IElkU2VsZWN0b3I8VD4pOiBhbnkge1xuICB0eXBlIFIgPSBFbnRpdHlTdGF0ZTxUPjtcblxuICBmdW5jdGlvbiBhZGRPbmVNdXRhYmx5KGVudGl0eTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIGFkZE9uZU11dGFibHkoZW50aXR5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIGNvbnN0IGtleSA9IHNlbGVjdElkVmFsdWUoZW50aXR5LCBzZWxlY3RJZCk7XG5cbiAgICBpZiAoa2V5IGluIHN0YXRlLmVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gRGlkTXV0YXRlLk5vbmU7XG4gICAgfVxuXG4gICAgc3RhdGUuaWRzLnB1c2goa2V5KTtcbiAgICBzdGF0ZS5lbnRpdGllc1trZXldID0gZW50aXR5O1xuXG4gICAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xuICB9XG5cbiAgZnVuY3Rpb24gYWRkTWFueU11dGFibHkoZW50aXRpZXM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIGFkZE1hbnlNdXRhYmx5KGVudGl0aWVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgbGV0IGRpZE11dGF0ZSA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXMpIHtcbiAgICAgIGRpZE11dGF0ZSA9IGFkZE9uZU11dGFibHkoZW50aXR5LCBzdGF0ZSkgIT09IERpZE11dGF0ZS5Ob25lIHx8IGRpZE11dGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGlkTXV0YXRlID8gRGlkTXV0YXRlLkJvdGggOiBEaWRNdXRhdGUuTm9uZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldEFsbE11dGFibHkoZW50aXRpZXM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHNldEFsbE11dGFibHkoZW50aXRpZXM6IGFueVtdLCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBzdGF0ZS5pZHMgPSBbXTtcbiAgICBzdGF0ZS5lbnRpdGllcyA9IHt9O1xuXG4gICAgYWRkTWFueU11dGFibHkoZW50aXRpZXMsIHN0YXRlKTtcblxuICAgIHJldHVybiBEaWRNdXRhdGUuQm90aDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldE9uZU11dGFibHkoZW50aXR5OiBULCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gc2V0T25lTXV0YWJseShlbnRpdHk6IGFueSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3Qga2V5ID0gc2VsZWN0SWRWYWx1ZShlbnRpdHksIHNlbGVjdElkKTtcblxuICAgIGlmIChrZXkgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgIHN0YXRlLmVudGl0aWVzW2tleV0gPSBlbnRpdHk7XG4gICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICB9XG5cbiAgICBzdGF0ZS5pZHMucHVzaChrZXkpO1xuICAgIHN0YXRlLmVudGl0aWVzW2tleV0gPSBlbnRpdHk7XG5cbiAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVPbmVNdXRhYmx5KGtleTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHJlbW92ZU9uZU11dGFibHkoa2V5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiByZW1vdmVNYW55TXV0YWJseShba2V5XSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlTWFueU11dGFibHkoa2V5czogVFtdLCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gcmVtb3ZlTWFueU11dGFibHkocHJlZGljYXRlOiBQcmVkaWNhdGU8VD4sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiByZW1vdmVNYW55TXV0YWJseShcbiAgICBrZXlzT3JQcmVkaWNhdGU6IGFueVtdIHwgUHJlZGljYXRlPFQ+LFxuICAgIHN0YXRlOiBhbnlcbiAgKTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBrZXlzID1cbiAgICAgIGtleXNPclByZWRpY2F0ZSBpbnN0YW5jZW9mIEFycmF5XG4gICAgICAgID8ga2V5c09yUHJlZGljYXRlXG4gICAgICAgIDogc3RhdGUuaWRzLmZpbHRlcigoa2V5OiBhbnkpID0+IGtleXNPclByZWRpY2F0ZShzdGF0ZS5lbnRpdGllc1trZXldKSk7XG5cbiAgICBjb25zdCBkaWRNdXRhdGUgPVxuICAgICAga2V5c1xuICAgICAgICAuZmlsdGVyKChrZXk6IGFueSkgPT4ga2V5IGluIHN0YXRlLmVudGl0aWVzKVxuICAgICAgICAubWFwKChrZXk6IGFueSkgPT4gZGVsZXRlIHN0YXRlLmVudGl0aWVzW2tleV0pLmxlbmd0aCA+IDA7XG5cbiAgICBpZiAoZGlkTXV0YXRlKSB7XG4gICAgICBzdGF0ZS5pZHMgPSBzdGF0ZS5pZHMuZmlsdGVyKChpZDogYW55KSA9PiBpZCBpbiBzdGF0ZS5lbnRpdGllcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZE11dGF0ZSA/IERpZE11dGF0ZS5Cb3RoIDogRGlkTXV0YXRlLk5vbmU7XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVBbGw8UyBleHRlbmRzIFI+KHN0YXRlOiBTKTogUztcbiAgZnVuY3Rpb24gcmVtb3ZlQWxsPFMgZXh0ZW5kcyBSPihzdGF0ZTogYW55KTogUyB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7XG4gICAgICBpZHM6IFtdLFxuICAgICAgZW50aXRpZXM6IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gdGFrZU5ld0tleShcbiAgICBrZXlzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgdXBkYXRlOiBVcGRhdGU8VD4sXG4gICAgc3RhdGU6IFJcbiAgKTogdm9pZDtcbiAgZnVuY3Rpb24gdGFrZU5ld0tleShcbiAgICBrZXlzOiB7IFtpZDogc3RyaW5nXTogYW55IH0sXG4gICAgdXBkYXRlOiBVcGRhdGU8VD4sXG4gICAgc3RhdGU6IGFueVxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBvcmlnaW5hbCA9IHN0YXRlLmVudGl0aWVzW3VwZGF0ZS5pZF07XG4gICAgY29uc3QgdXBkYXRlZDogVCA9IE9iamVjdC5hc3NpZ24oe30sIG9yaWdpbmFsLCB1cGRhdGUuY2hhbmdlcyk7XG4gICAgY29uc3QgbmV3S2V5ID0gc2VsZWN0SWRWYWx1ZSh1cGRhdGVkLCBzZWxlY3RJZCk7XG4gICAgY29uc3QgaGFzTmV3S2V5ID0gbmV3S2V5ICE9PSB1cGRhdGUuaWQ7XG5cbiAgICBpZiAoaGFzTmV3S2V5KSB7XG4gICAgICBrZXlzW3VwZGF0ZS5pZF0gPSBuZXdLZXk7XG4gICAgICBkZWxldGUgc3RhdGUuZW50aXRpZXNbdXBkYXRlLmlkXTtcbiAgICB9XG5cbiAgICBzdGF0ZS5lbnRpdGllc1tuZXdLZXldID0gdXBkYXRlZDtcblxuICAgIHJldHVybiBoYXNOZXdLZXk7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVPbmVNdXRhYmx5KHVwZGF0ZTogVXBkYXRlPFQ+LCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gdXBkYXRlT25lTXV0YWJseSh1cGRhdGU6IGFueSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgcmV0dXJuIHVwZGF0ZU1hbnlNdXRhYmx5KFt1cGRhdGVdLCBzdGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVzOiBVcGRhdGU8VD5bXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZXM6IGFueVtdLCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBuZXdLZXlzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICAgIHVwZGF0ZXMgPSB1cGRhdGVzLmZpbHRlcigodXBkYXRlKSA9PiB1cGRhdGUuaWQgaW4gc3RhdGUuZW50aXRpZXMpO1xuXG4gICAgY29uc3QgZGlkTXV0YXRlRW50aXRpZXMgPSB1cGRhdGVzLmxlbmd0aCA+IDA7XG5cbiAgICBpZiAoZGlkTXV0YXRlRW50aXRpZXMpIHtcbiAgICAgIGNvbnN0IGRpZE11dGF0ZUlkcyA9XG4gICAgICAgIHVwZGF0ZXMuZmlsdGVyKCh1cGRhdGUpID0+IHRha2VOZXdLZXkobmV3S2V5cywgdXBkYXRlLCBzdGF0ZSkpLmxlbmd0aCA+XG4gICAgICAgIDA7XG5cbiAgICAgIGlmIChkaWRNdXRhdGVJZHMpIHtcbiAgICAgICAgc3RhdGUuaWRzID0gc3RhdGUuaWRzLm1hcCgoaWQ6IGFueSkgPT4gbmV3S2V5c1tpZF0gfHwgaWQpO1xuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gRGlkTXV0YXRlLk5vbmU7XG4gIH1cblxuICBmdW5jdGlvbiBtYXBNdXRhYmx5KG1hcDogRW50aXR5TWFwPFQ+LCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gbWFwTXV0YWJseShtYXA6IGFueSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgY2hhbmdlczogVXBkYXRlPFQ+W10gPSBzdGF0ZS5pZHMucmVkdWNlKFxuICAgICAgKGNoYW5nZXM6IGFueVtdLCBpZDogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IG1hcChzdGF0ZS5lbnRpdGllc1tpZF0pO1xuICAgICAgICBpZiAoY2hhbmdlICE9PSBzdGF0ZS5lbnRpdGllc1tpZF0pIHtcbiAgICAgICAgICBjaGFuZ2VzLnB1c2goeyBpZCwgY2hhbmdlczogY2hhbmdlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgICAgfSxcbiAgICAgIFtdXG4gICAgKTtcbiAgICBjb25zdCB1cGRhdGVzID0gY2hhbmdlcy5maWx0ZXIoKHsgaWQgfSkgPT4gaWQgaW4gc3RhdGUuZW50aXRpZXMpO1xuXG4gICAgcmV0dXJuIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZXMsIHN0YXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG1hcE9uZU11dGFibHkobWFwOiBFbnRpdHlNYXBPbmVOdW08VD4sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBtYXBPbmVNdXRhYmx5KG1hcDogRW50aXR5TWFwT25lU3RyPFQ+LCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gbWFwT25lTXV0YWJseSh7IG1hcCwgaWQgfTogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBlbnRpdHkgPSBzdGF0ZS5lbnRpdGllc1tpZF07XG4gICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkRW50aXR5ID0gbWFwKGVudGl0eSk7XG4gICAgcmV0dXJuIHVwZGF0ZU9uZU11dGFibHkoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAgY2hhbmdlczogdXBkYXRlZEVudGl0eSxcbiAgICAgIH0sXG4gICAgICBzdGF0ZVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiB1cHNlcnRPbmVNdXRhYmx5KGVudGl0eTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE9uZU11dGFibHkoZW50aXR5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiB1cHNlcnRNYW55TXV0YWJseShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBzZXJ0TWFueU11dGFibHkoZW50aXRpZXM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE1hbnlNdXRhYmx5KGVudGl0aWVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgYWRkZWQ6IGFueVtdID0gW107XG4gICAgY29uc3QgdXBkYXRlZDogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzKSB7XG4gICAgICBjb25zdCBpZCA9IHNlbGVjdElkVmFsdWUoZW50aXR5LCBzZWxlY3RJZCk7XG4gICAgICBpZiAoaWQgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgICAgdXBkYXRlZC5wdXNoKHsgaWQsIGNoYW5nZXM6IGVudGl0eSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZGVkLnB1c2goZW50aXR5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaWRNdXRhdGVCeVVwZGF0ZWQgPSB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVkLCBzdGF0ZSk7XG4gICAgY29uc3QgZGlkTXV0YXRlQnlBZGRlZCA9IGFkZE1hbnlNdXRhYmx5KGFkZGVkLCBzdGF0ZSk7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgZGlkTXV0YXRlQnlBZGRlZCA9PT0gRGlkTXV0YXRlLk5vbmUgJiZcbiAgICAgICAgZGlkTXV0YXRlQnlVcGRhdGVkID09PSBEaWRNdXRhdGUuTm9uZTpcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5Ob25lO1xuICAgICAgY2FzZSBkaWRNdXRhdGVCeUFkZGVkID09PSBEaWRNdXRhdGUuQm90aCB8fFxuICAgICAgICBkaWRNdXRhdGVCeVVwZGF0ZWQgPT09IERpZE11dGF0ZS5Cb3RoOlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHJlbW92ZUFsbCxcbiAgICBhZGRPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IoYWRkT25lTXV0YWJseSksXG4gICAgYWRkTWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcihhZGRNYW55TXV0YWJseSksXG4gICAgc2V0QWxsOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHNldEFsbE11dGFibHkpLFxuICAgIHNldE9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihzZXRPbmVNdXRhYmx5KSxcbiAgICB1cGRhdGVPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBkYXRlT25lTXV0YWJseSksXG4gICAgdXBkYXRlTWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcih1cGRhdGVNYW55TXV0YWJseSksXG4gICAgdXBzZXJ0T25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwc2VydE9uZU11dGFibHkpLFxuICAgIHVwc2VydE1hbnk6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBzZXJ0TWFueU11dGFibHkpLFxuICAgIHJlbW92ZU9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihyZW1vdmVPbmVNdXRhYmx5KSxcbiAgICByZW1vdmVNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHJlbW92ZU1hbnlNdXRhYmx5KSxcbiAgICBtYXA6IGNyZWF0ZVN0YXRlT3BlcmF0b3IobWFwTXV0YWJseSksXG4gICAgbWFwT25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKG1hcE9uZU11dGFibHkpLFxuICB9O1xufVxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zb3J0ZWRfc3RhdGVfYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZW50aXR5L3NyYy91bnNvcnRlZF9zdGF0ZV9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBS3hDLE1BQU0sVUFBVSwwQkFBMEIsQ0FBSSxRQUF1QjtJQUluRSxTQUFTLGFBQWEsQ0FBQyxNQUFXLEVBQUUsS0FBVTtRQUM1QyxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDekIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ3ZCO1FBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFFN0IsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxTQUFTLGNBQWMsQ0FBQyxRQUFlLEVBQUUsS0FBVTtRQUNqRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLEVBQUU7WUFDN0IsU0FBUyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUM7U0FDMUU7UUFFRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBR0QsU0FBUyxhQUFhLENB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O1FBQ3BDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7S0FDM0MsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbnRpdHlTdGF0ZSxcbiAgRW50aXR5U3RhdGVBZGFwdGVyLFxuICBJZFNlbGVjdG9yLFxuICBVcGRhdGUsXG4gIFByZWRpY2F0ZSxcbiAgRW50aXR5TWFwLFxuICBFbnRpdHlNYXBPbmVOdW0sXG4gIEVudGl0eU1hcE9uZVN0cixcbn0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgY3JlYXRlU3RhdGVPcGVyYXRvciwgRGlkTXV0YXRlIH0gZnJvbSAnLi9zdGF0ZV9hZGFwdGVyJztcbmltcG9ydCB7IHNlbGVjdElkVmFsdWUgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVuc29ydGVkU3RhdGVBZGFwdGVyPFQ+KFxuICBzZWxlY3RJZDogSWRTZWxlY3RvcjxUPlxuKTogRW50aXR5U3RhdGVBZGFwdGVyPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVuc29ydGVkU3RhdGVBZGFwdGVyPFQ+KHNlbGVjdElkOiBJZFNlbGVjdG9yPFQ+KTogYW55IHtcbiAgdHlwZSBSID0gRW50aXR5U3RhdGU8VD47XG5cbiAgZnVuY3Rpb24gYWRkT25lTXV0YWJseShlbnRpdHk6IFQsIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBhZGRPbmVNdXRhYmx5KGVudGl0eTogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBrZXkgPSBzZWxlY3RJZFZhbHVlKGVudGl0eSwgc2VsZWN0SWQpO1xuXG4gICAgaWYgKGtleSBpbiBzdGF0ZS5lbnRpdGllcykge1xuICAgICAgcmV0dXJuIERpZE11dGF0ZS5Ob25lO1xuICAgIH1cblxuICAgIHN0YXRlLmlkcy5wdXNoKGtleSk7XG4gICAgc3RhdGUuZW50aXRpZXNba2V5XSA9IGVudGl0eTtcblxuICAgIHJldHVybiBEaWRNdXRhdGUuQm90aDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFkZE1hbnlNdXRhYmx5KGVudGl0aWVzOiBUW10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBhZGRNYW55TXV0YWJseShlbnRpdGllczogYW55W10sIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIGxldCBkaWRNdXRhdGUgPSBmYWxzZTtcblxuICAgIGZvciAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzKSB7XG4gICAgICBkaWRNdXRhdGUgPSBhZGRPbmVNdXRhYmx5KGVudGl0eSwgc3RhdGUpICE9PSBEaWRNdXRhdGUuTm9uZSB8fCBkaWRNdXRhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZE11dGF0ZSA/IERpZE11dGF0ZS5Cb3RoIDogRGlkTXV0YXRlLk5vbmU7XG4gIH1cblxuICBmdW5jdGlvbiBzZXRBbGxNdXRhYmx5KGVudGl0aWVzOiBUW10sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBzZXRBbGxNdXRhYmx5KGVudGl0aWVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgc3RhdGUuaWRzID0gW107XG4gICAgc3RhdGUuZW50aXRpZXMgPSB7fTtcblxuICAgIGFkZE1hbnlNdXRhYmx5KGVudGl0aWVzLCBzdGF0ZSk7XG5cbiAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gIH1cblxuICBmdW5jdGlvbiBzZXRPbmVNdXRhYmx5KGVudGl0eTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHNldE9uZU11dGFibHkoZW50aXR5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIGNvbnN0IGtleSA9IHNlbGVjdElkVmFsdWUoZW50aXR5LCBzZWxlY3RJZCk7XG5cbiAgICBpZiAoa2V5IGluIHN0YXRlLmVudGl0aWVzKSB7XG4gICAgICBzdGF0ZS5lbnRpdGllc1trZXldID0gZW50aXR5O1xuICAgICAgcmV0dXJuIERpZE11dGF0ZS5FbnRpdGllc09ubHk7XG4gICAgfVxuXG4gICAgc3RhdGUuaWRzLnB1c2goa2V5KTtcbiAgICBzdGF0ZS5lbnRpdGllc1trZXldID0gZW50aXR5O1xuXG4gICAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xuICB9XG5cbiAgZnVuY3Rpb24gc2V0TWFueU11dGFibHkoZW50aXRpZXM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHNldE1hbnlNdXRhYmx5KGVudGl0aWVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgZGlkTXV0YXRlU2V0T25lID0gZW50aXRpZXMubWFwKChlbnRpdHkpID0+XG4gICAgICBzZXRPbmVNdXRhYmx5KGVudGl0eSwgc3RhdGUpXG4gICAgKTtcblxuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSBkaWRNdXRhdGVTZXRPbmUuc29tZSgoZGlkTXV0YXRlKSA9PiBkaWRNdXRhdGUgPT09IERpZE11dGF0ZS5Cb3RoKTpcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5Cb3RoO1xuICAgICAgY2FzZSBkaWRNdXRhdGVTZXRPbmUuc29tZShcbiAgICAgICAgKGRpZE11dGF0ZSkgPT4gZGlkTXV0YXRlID09PSBEaWRNdXRhdGUuRW50aXRpZXNPbmx5XG4gICAgICApOlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVPbmVNdXRhYmx5KGtleTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHJlbW92ZU9uZU11dGFibHkoa2V5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiByZW1vdmVNYW55TXV0YWJseShba2V5XSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlTWFueU11dGFibHkoa2V5czogVFtdLCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gcmVtb3ZlTWFueU11dGFibHkocHJlZGljYXRlOiBQcmVkaWNhdGU8VD4sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiByZW1vdmVNYW55TXV0YWJseShcbiAgICBrZXlzT3JQcmVkaWNhdGU6IGFueVtdIHwgUHJlZGljYXRlPFQ+LFxuICAgIHN0YXRlOiBhbnlcbiAgKTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBrZXlzID1cbiAgICAgIGtleXNPclByZWRpY2F0ZSBpbnN0YW5jZW9mIEFycmF5XG4gICAgICAgID8ga2V5c09yUHJlZGljYXRlXG4gICAgICAgIDogc3RhdGUuaWRzLmZpbHRlcigoa2V5OiBhbnkpID0+IGtleXNPclByZWRpY2F0ZShzdGF0ZS5lbnRpdGllc1trZXldKSk7XG5cbiAgICBjb25zdCBkaWRNdXRhdGUgPVxuICAgICAga2V5c1xuICAgICAgICAuZmlsdGVyKChrZXk6IGFueSkgPT4ga2V5IGluIHN0YXRlLmVudGl0aWVzKVxuICAgICAgICAubWFwKChrZXk6IGFueSkgPT4gZGVsZXRlIHN0YXRlLmVudGl0aWVzW2tleV0pLmxlbmd0aCA+IDA7XG5cbiAgICBpZiAoZGlkTXV0YXRlKSB7XG4gICAgICBzdGF0ZS5pZHMgPSBzdGF0ZS5pZHMuZmlsdGVyKChpZDogYW55KSA9PiBpZCBpbiBzdGF0ZS5lbnRpdGllcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZE11dGF0ZSA/IERpZE11dGF0ZS5Cb3RoIDogRGlkTXV0YXRlLk5vbmU7XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVBbGw8UyBleHRlbmRzIFI+KHN0YXRlOiBTKTogUztcbiAgZnVuY3Rpb24gcmVtb3ZlQWxsPFMgZXh0ZW5kcyBSPihzdGF0ZTogYW55KTogUyB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7XG4gICAgICBpZHM6IFtdLFxuICAgICAgZW50aXRpZXM6IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gdGFrZU5ld0tleShcbiAgICBrZXlzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgdXBkYXRlOiBVcGRhdGU8VD4sXG4gICAgc3RhdGU6IFJcbiAgKTogdm9pZDtcbiAgZnVuY3Rpb24gdGFrZU5ld0tleShcbiAgICBrZXlzOiB7IFtpZDogc3RyaW5nXTogYW55IH0sXG4gICAgdXBkYXRlOiBVcGRhdGU8VD4sXG4gICAgc3RhdGU6IGFueVxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBvcmlnaW5hbCA9IHN0YXRlLmVudGl0aWVzW3VwZGF0ZS5pZF07XG4gICAgY29uc3QgdXBkYXRlZDogVCA9IE9iamVjdC5hc3NpZ24oe30sIG9yaWdpbmFsLCB1cGRhdGUuY2hhbmdlcyk7XG4gICAgY29uc3QgbmV3S2V5ID0gc2VsZWN0SWRWYWx1ZSh1cGRhdGVkLCBzZWxlY3RJZCk7XG4gICAgY29uc3QgaGFzTmV3S2V5ID0gbmV3S2V5ICE9PSB1cGRhdGUuaWQ7XG5cbiAgICBpZiAoaGFzTmV3S2V5KSB7XG4gICAgICBrZXlzW3VwZGF0ZS5pZF0gPSBuZXdLZXk7XG4gICAgICBkZWxldGUgc3RhdGUuZW50aXRpZXNbdXBkYXRlLmlkXTtcbiAgICB9XG5cbiAgICBzdGF0ZS5lbnRpdGllc1tuZXdLZXldID0gdXBkYXRlZDtcblxuICAgIHJldHVybiBoYXNOZXdLZXk7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVPbmVNdXRhYmx5KHVwZGF0ZTogVXBkYXRlPFQ+LCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gdXBkYXRlT25lTXV0YWJseSh1cGRhdGU6IGFueSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgcmV0dXJuIHVwZGF0ZU1hbnlNdXRhYmx5KFt1cGRhdGVdLCBzdGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVzOiBVcGRhdGU8VD5bXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZXM6IGFueVtdLCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBuZXdLZXlzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICAgIHVwZGF0ZXMgPSB1cGRhdGVzLmZpbHRlcigodXBkYXRlKSA9PiB1cGRhdGUuaWQgaW4gc3RhdGUuZW50aXRpZXMpO1xuXG4gICAgY29uc3QgZGlkTXV0YXRlRW50aXRpZXMgPSB1cGRhdGVzLmxlbmd0aCA+IDA7XG5cbiAgICBpZiAoZGlkTXV0YXRlRW50aXRpZXMpIHtcbiAgICAgIGNvbnN0IGRpZE11dGF0ZUlkcyA9XG4gICAgICAgIHVwZGF0ZXMuZmlsdGVyKCh1cGRhdGUpID0+IHRha2VOZXdLZXkobmV3S2V5cywgdXBkYXRlLCBzdGF0ZSkpLmxlbmd0aCA+XG4gICAgICAgIDA7XG5cbiAgICAgIGlmIChkaWRNdXRhdGVJZHMpIHtcbiAgICAgICAgc3RhdGUuaWRzID0gc3RhdGUuaWRzLm1hcCgoaWQ6IGFueSkgPT4gbmV3S2V5c1tpZF0gfHwgaWQpO1xuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gRGlkTXV0YXRlLk5vbmU7XG4gIH1cblxuICBmdW5jdGlvbiBtYXBNdXRhYmx5KG1hcDogRW50aXR5TWFwPFQ+LCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gbWFwTXV0YWJseShtYXA6IGFueSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgY2hhbmdlczogVXBkYXRlPFQ+W10gPSBzdGF0ZS5pZHMucmVkdWNlKFxuICAgICAgKGNoYW5nZXM6IGFueVtdLCBpZDogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IG1hcChzdGF0ZS5lbnRpdGllc1tpZF0pO1xuICAgICAgICBpZiAoY2hhbmdlICE9PSBzdGF0ZS5lbnRpdGllc1tpZF0pIHtcbiAgICAgICAgICBjaGFuZ2VzLnB1c2goeyBpZCwgY2hhbmdlczogY2hhbmdlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgICAgfSxcbiAgICAgIFtdXG4gICAgKTtcbiAgICBjb25zdCB1cGRhdGVzID0gY2hhbmdlcy5maWx0ZXIoKHsgaWQgfSkgPT4gaWQgaW4gc3RhdGUuZW50aXRpZXMpO1xuXG4gICAgcmV0dXJuIHVwZGF0ZU1hbnlNdXRhYmx5KHVwZGF0ZXMsIHN0YXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG1hcE9uZU11dGFibHkobWFwOiBFbnRpdHlNYXBPbmVOdW08VD4sIHN0YXRlOiBSKTogRGlkTXV0YXRlO1xuICBmdW5jdGlvbiBtYXBPbmVNdXRhYmx5KG1hcDogRW50aXR5TWFwT25lU3RyPFQ+LCBzdGF0ZTogUik6IERpZE11dGF0ZTtcbiAgZnVuY3Rpb24gbWFwT25lTXV0YWJseSh7IG1hcCwgaWQgfTogYW55LCBzdGF0ZTogYW55KTogRGlkTXV0YXRlIHtcbiAgICBjb25zdCBlbnRpdHkgPSBzdGF0ZS5lbnRpdGllc1tpZF07XG4gICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgIHJldHVybiBEaWRNdXRhdGUuTm9uZTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkRW50aXR5ID0gbWFwKGVudGl0eSk7XG4gICAgcmV0dXJuIHVwZGF0ZU9uZU11dGFibHkoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAgY2hhbmdlczogdXBkYXRlZEVudGl0eSxcbiAgICAgIH0sXG4gICAgICBzdGF0ZVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiB1cHNlcnRPbmVNdXRhYmx5KGVudGl0eTogVCwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE9uZU11dGFibHkoZW50aXR5OiBhbnksIHN0YXRlOiBhbnkpOiBEaWRNdXRhdGUge1xuICAgIHJldHVybiB1cHNlcnRNYW55TXV0YWJseShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBzZXJ0TWFueU11dGFibHkoZW50aXRpZXM6IFRbXSwgc3RhdGU6IFIpOiBEaWRNdXRhdGU7XG4gIGZ1bmN0aW9uIHVwc2VydE1hbnlNdXRhYmx5KGVudGl0aWVzOiBhbnlbXSwgc3RhdGU6IGFueSk6IERpZE11dGF0ZSB7XG4gICAgY29uc3QgYWRkZWQ6IGFueVtdID0gW107XG4gICAgY29uc3QgdXBkYXRlZDogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzKSB7XG4gICAgICBjb25zdCBpZCA9IHNlbGVjdElkVmFsdWUoZW50aXR5LCBzZWxlY3RJZCk7XG4gICAgICBpZiAoaWQgaW4gc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgICAgdXBkYXRlZC5wdXNoKHsgaWQsIGNoYW5nZXM6IGVudGl0eSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZGVkLnB1c2goZW50aXR5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaWRNdXRhdGVCeVVwZGF0ZWQgPSB1cGRhdGVNYW55TXV0YWJseSh1cGRhdGVkLCBzdGF0ZSk7XG4gICAgY29uc3QgZGlkTXV0YXRlQnlBZGRlZCA9IGFkZE1hbnlNdXRhYmx5KGFkZGVkLCBzdGF0ZSk7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgZGlkTXV0YXRlQnlBZGRlZCA9PT0gRGlkTXV0YXRlLk5vbmUgJiZcbiAgICAgICAgZGlkTXV0YXRlQnlVcGRhdGVkID09PSBEaWRNdXRhdGUuTm9uZTpcbiAgICAgICAgcmV0dXJuIERpZE11dGF0ZS5Ob25lO1xuICAgICAgY2FzZSBkaWRNdXRhdGVCeUFkZGVkID09PSBEaWRNdXRhdGUuQm90aCB8fFxuICAgICAgICBkaWRNdXRhdGVCeVVwZGF0ZWQgPT09IERpZE11dGF0ZS5Cb3RoOlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkJvdGg7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gRGlkTXV0YXRlLkVudGl0aWVzT25seTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHJlbW92ZUFsbCxcbiAgICBhZGRPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IoYWRkT25lTXV0YWJseSksXG4gICAgYWRkTWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcihhZGRNYW55TXV0YWJseSksXG4gICAgc2V0QWxsOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHNldEFsbE11dGFibHkpLFxuICAgIHNldE9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihzZXRPbmVNdXRhYmx5KSxcbiAgICBzZXRNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHNldE1hbnlNdXRhYmx5KSxcbiAgICB1cGRhdGVPbmU6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBkYXRlT25lTXV0YWJseSksXG4gICAgdXBkYXRlTWFueTogY3JlYXRlU3RhdGVPcGVyYXRvcih1cGRhdGVNYW55TXV0YWJseSksXG4gICAgdXBzZXJ0T25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHVwc2VydE9uZU11dGFibHkpLFxuICAgIHVwc2VydE1hbnk6IGNyZWF0ZVN0YXRlT3BlcmF0b3IodXBzZXJ0TWFueU11dGFibHkpLFxuICAgIHJlbW92ZU9uZTogY3JlYXRlU3RhdGVPcGVyYXRvcihyZW1vdmVPbmVNdXRhYmx5KSxcbiAgICByZW1vdmVNYW55OiBjcmVhdGVTdGF0ZU9wZXJhdG9yKHJlbW92ZU1hbnlNdXRhYmx5KSxcbiAgICBtYXA6IGNyZWF0ZVN0YXRlT3BlcmF0b3IobWFwTXV0YWJseSksXG4gICAgbWFwT25lOiBjcmVhdGVTdGF0ZU9wZXJhdG9yKG1hcE9uZU11dGFibHkpLFxuICB9O1xufVxuIl19
@@ -102,6 +102,17 @@ function createUnsortedStateAdapter(selectId) {
102
102
  state.entities[key] = entity;
103
103
  return DidMutate.Both;
104
104
  }
105
+ function setManyMutably(entities, state) {
106
+ const didMutateSetOne = entities.map((entity) => setOneMutably(entity, state));
107
+ switch (true) {
108
+ case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):
109
+ return DidMutate.Both;
110
+ case didMutateSetOne.some((didMutate) => didMutate === DidMutate.EntitiesOnly):
111
+ return DidMutate.EntitiesOnly;
112
+ default:
113
+ return DidMutate.None;
114
+ }
115
+ }
105
116
  function removeOneMutably(key, state) {
106
117
  return removeManyMutably([key], state);
107
118
  }
@@ -211,6 +222,7 @@ function createUnsortedStateAdapter(selectId) {
211
222
  addMany: createStateOperator(addManyMutably),
212
223
  setAll: createStateOperator(setAllMutably),
213
224
  setOne: createStateOperator(setOneMutably),
225
+ setMany: createStateOperator(setManyMutably),
214
226
  updateOne: createStateOperator(updateOneMutably),
215
227
  updateMany: createStateOperator(updateManyMutably),
216
228
  upsertOne: createStateOperator(upsertOneMutably),
@@ -254,6 +266,17 @@ function createSortedStateAdapter(selectId, sort) {
254
266
  return addOneMutably(entity, state);
255
267
  }
256
268
  }
269
+ function setManyMutably(entities, state) {
270
+ const didMutateSetOne = entities.map((entity) => setOneMutably(entity, state));
271
+ switch (true) {
272
+ case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):
273
+ return DidMutate.Both;
274
+ case didMutateSetOne.some((didMutate) => didMutate === DidMutate.EntitiesOnly):
275
+ return DidMutate.EntitiesOnly;
276
+ default:
277
+ return DidMutate.None;
278
+ }
279
+ }
257
280
  function updateOneMutably(update, state) {
258
281
  return updateManyMutably([update], state);
259
282
  }
@@ -384,6 +407,7 @@ function createSortedStateAdapter(selectId, sort) {
384
407
  upsertOne: createStateOperator(upsertOneMutably),
385
408
  setAll: createStateOperator(setAllMutably),
386
409
  setOne: createStateOperator(setOneMutably),
410
+ setMany: createStateOperator(setManyMutably),
387
411
  addMany: createStateOperator(addManyMutably),
388
412
  updateMany: createStateOperator(updateManyMutably),
389
413
  upsertMany: createStateOperator(upsertManyMutably),
@@ -1 +1 @@
1
- {"version":3,"file":"ngrx-entity.js","sources":["../../../../modules/entity/src/entity_state.ts","../../../../modules/entity/src/state_selectors.ts","../../../../modules/entity/src/state_adapter.ts","../../../../modules/entity/src/utils.ts","../../../../modules/entity/src/unsorted_state_adapter.ts","../../../../modules/entity/src/sorted_state_adapter.ts","../../../../modules/entity/src/create_adapter.ts","../../../../modules/entity/src/models.ts","../../../../modules/entity/index.ts","../../../../modules/entity/ngrx-entity.ts"],"sourcesContent":["import { EntityState } from './models';\n\nexport function getInitialEntityState<V>(): EntityState<V> {\n return {\n ids: [],\n entities: {},\n };\n}\n\nexport function createInitialStateFactory<V>() {\n function getInitialState(): EntityState<V>;\n function getInitialState<S extends object>(\n additionalState: S\n ): EntityState<V> & S;\n function getInitialState(additionalState: any = {}): any {\n return Object.assign(getInitialEntityState(), additionalState);\n }\n\n return { getInitialState };\n}\n","import { createSelector } from '@ngrx/store';\nimport { EntityState, EntitySelectors, Dictionary } from './models';\n\nexport function createSelectorsFactory<T>() {\n function getSelectors(): EntitySelectors<T, EntityState<T>>;\n function getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n function getSelectors(\n selectState?: (state: any) => EntityState<T>\n ): EntitySelectors<T, any> {\n const selectIds = (state: any) => state.ids;\n const selectEntities = (state: EntityState<T>) => state.entities;\n const selectAll = createSelector(\n selectIds,\n selectEntities,\n (ids: T[], entities: Dictionary<T>): any =>\n ids.map((id: any) => (entities as any)[id])\n );\n\n const selectTotal = createSelector(selectIds, (ids) => ids.length);\n\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n };\n }\n\n return {\n selectIds: createSelector(selectState, selectIds),\n selectEntities: createSelector(selectState, selectEntities),\n selectAll: createSelector(selectState, selectAll),\n selectTotal: createSelector(selectState, selectTotal),\n };\n }\n\n return { getSelectors };\n}\n","import { EntityState } from './models';\n\nexport enum DidMutate {\n EntitiesOnly,\n Both,\n None,\n}\n\nexport function createStateOperator<V, R>(\n mutator: (arg: R, state: EntityState<V>) => DidMutate\n): EntityState<V>;\nexport function createStateOperator<V, R>(\n mutator: (arg: any, state: any) => DidMutate\n): any {\n return function operation<S extends EntityState<V>>(arg: R, state: any): S {\n const clonedEntityState: EntityState<V> = {\n ids: [...state.ids],\n entities: { ...state.entities },\n };\n\n const didMutate = mutator(arg, clonedEntityState);\n\n if (didMutate === DidMutate.Both) {\n return Object.assign({}, state, clonedEntityState);\n }\n\n if (didMutate === DidMutate.EntitiesOnly) {\n return {\n ...state,\n entities: clonedEntityState.entities,\n };\n }\n\n return state;\n };\n}\n","import { isDevMode } from '@angular/core';\nimport { IdSelector } from './models';\n\nexport function selectIdValue<T>(entity: T, selectId: IdSelector<T>) {\n const key = selectId(entity);\n\n if (isDevMode() && key === undefined) {\n console.warn(\n '@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.',\n 'You should probably provide your own `selectId` implementation.',\n 'The entity that was passed:',\n entity,\n 'The `selectId` implementation:',\n selectId.toString()\n );\n }\n\n return key;\n}\n","import {\n EntityState,\n EntityStateAdapter,\n IdSelector,\n Update,\n Predicate,\n EntityMap,\n EntityMapOneNum,\n EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createUnsortedStateAdapter<T>(\n selectId: IdSelector<T>\n): EntityStateAdapter<T>;\nexport function createUnsortedStateAdapter<T>(selectId: IdSelector<T>): any {\n type R = EntityState<T>;\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n const key = selectIdValue(entity, selectId);\n\n if (key in state.entities) {\n return DidMutate.None;\n }\n\n state.ids.push(key);\n state.entities[key] = entity;\n\n return DidMutate.Both;\n }\n\n function addManyMutably(entities: T[], state: R): DidMutate;\n function addManyMutably(entities: any[], state: any): DidMutate {\n let didMutate = false;\n\n for (const entity of entities) {\n didMutate = addOneMutably(entity, state) !== DidMutate.None || didMutate;\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function setAllMutably(entities: T[], state: R): DidMutate;\n function setAllMutably(entities: any[], state: any): DidMutate {\n state.ids = [];\n state.entities = {};\n\n addManyMutably(entities, state);\n\n return DidMutate.Both;\n }\n\n function setOneMutably(entity: T, state: R): DidMutate;\n function setOneMutably(entity: any, state: any): DidMutate {\n const key = selectIdValue(entity, selectId);\n\n if (key in state.entities) {\n state.entities[key] = entity;\n return DidMutate.EntitiesOnly;\n }\n\n state.ids.push(key);\n state.entities[key] = entity;\n\n return DidMutate.Both;\n }\n\n function removeOneMutably(key: T, state: R): DidMutate;\n function removeOneMutably(key: any, state: any): DidMutate {\n return removeManyMutably([key], state);\n }\n\n function removeManyMutably(keys: T[], state: R): DidMutate;\n function removeManyMutably(predicate: Predicate<T>, state: R): DidMutate;\n function removeManyMutably(\n keysOrPredicate: any[] | Predicate<T>,\n state: any\n ): DidMutate {\n const keys =\n keysOrPredicate instanceof Array\n ? keysOrPredicate\n : state.ids.filter((key: any) => keysOrPredicate(state.entities[key]));\n\n const didMutate =\n keys\n .filter((key: any) => key in state.entities)\n .map((key: any) => delete state.entities[key]).length > 0;\n\n if (didMutate) {\n state.ids = state.ids.filter((id: any) => id in state.entities);\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function removeAll<S extends R>(state: S): S;\n function removeAll<S extends R>(state: any): S {\n return Object.assign({}, state, {\n ids: [],\n entities: {},\n });\n }\n\n function takeNewKey(\n keys: { [id: string]: string },\n update: Update<T>,\n state: R\n ): void;\n function takeNewKey(\n keys: { [id: string]: any },\n update: Update<T>,\n state: any\n ): boolean {\n const original = state.entities[update.id];\n const updated: T = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n\n state.entities[newKey] = updated;\n\n return hasNewKey;\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const newKeys: { [id: string]: string } = {};\n\n updates = updates.filter((update) => update.id in state.entities);\n\n const didMutateEntities = updates.length > 0;\n\n if (didMutateEntities) {\n const didMutateIds =\n updates.filter((update) => takeNewKey(newKeys, update, state)).length >\n 0;\n\n if (didMutateIds) {\n state.ids = state.ids.map((id: any) => newKeys[id] || id);\n return DidMutate.Both;\n } else {\n return DidMutate.EntitiesOnly;\n }\n }\n\n return DidMutate.None;\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(map: any, state: any): DidMutate {\n const changes: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = map(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n const updates = changes.filter(({ id }) => id in state.entities);\n\n return updateManyMutably(updates, state);\n }\n\n function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n function mapOneMutably({ map, id }: any, state: any): DidMutate {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n\n const updatedEntity = map(entity);\n return updateOneMutably(\n {\n id: id,\n changes: updatedEntity,\n },\n state\n );\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n return {\n removeAll,\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably),\n };\n}\n","import {\n EntityState,\n IdSelector,\n Comparer,\n EntityStateAdapter,\n Update,\n EntityMap,\n EntityMapOneNum,\n EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createSortedStateAdapter<T>(\n selectId: IdSelector<T>,\n sort: Comparer<T>\n): EntityStateAdapter<T>;\nexport function createSortedStateAdapter<T>(selectId: any, sort: any): any {\n type R = EntityState<T>;\n\n const { removeOne, removeMany, removeAll } = createUnsortedStateAdapter(\n selectId\n );\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n return addManyMutably([entity], state);\n }\n\n function addManyMutably(newModels: T[], state: R): DidMutate;\n function addManyMutably(newModels: any[], state: any): DidMutate {\n const models = newModels.filter(\n (model) => !(selectIdValue(model, selectId) in state.entities)\n );\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n merge(models, state);\n return DidMutate.Both;\n }\n }\n\n function setAllMutably(models: T[], state: R): DidMutate;\n function setAllMutably(models: any[], state: any): DidMutate {\n state.entities = {};\n state.ids = [];\n\n addManyMutably(models, state);\n\n return DidMutate.Both;\n }\n\n function setOneMutably(entity: T, state: R): DidMutate;\n function setOneMutably(entity: any, state: any): DidMutate {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n state.ids = state.ids.filter((val: string | number) => val !== id);\n merge([entity], state);\n return DidMutate.Both;\n } else {\n return addOneMutably(entity, state);\n }\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function takeUpdatedModel(models: T[], update: Update<T>, state: R): boolean;\n function takeUpdatedModel(models: any[], update: any, state: any): boolean {\n if (!(update.id in state.entities)) {\n return false;\n }\n\n const original = state.entities[update.id];\n const updated = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n\n delete state.entities[update.id];\n\n models.push(updated);\n\n return newKey !== update.id;\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const models: T[] = [];\n\n const didMutateIds =\n updates.filter((update) => takeUpdatedModel(models, update, state))\n .length > 0;\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n const originalIds = state.ids;\n const updatedIndexes: any[] = [];\n state.ids = state.ids.filter((id: any, index: number) => {\n if (id in state.entities) {\n return true;\n } else {\n updatedIndexes.push(index);\n return false;\n }\n });\n\n merge(models, state);\n\n if (\n !didMutateIds &&\n updatedIndexes.every((i: number) => state.ids[i] === originalIds[i])\n ) {\n return DidMutate.EntitiesOnly;\n } else {\n return DidMutate.Both;\n }\n }\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(updatesOrMap: any, state: any): DidMutate {\n const updates: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = updatesOrMap(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n\n return updateManyMutably(updates, state);\n }\n\n function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n function mapOneMutably({ map, id }: any, state: any): DidMutate {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n\n const updatedEntity = map(entity);\n return updateOneMutably(\n {\n id: id,\n changes: updatedEntity,\n },\n state\n );\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n function merge(models: T[], state: R): void;\n function merge(models: any[], state: any): void {\n models.sort(sort);\n\n const ids: any[] = [];\n\n let i = 0;\n let j = 0;\n\n while (i < models.length && j < state.ids.length) {\n const model = models[i];\n const modelId = selectIdValue(model, selectId);\n const entityId = state.ids[j];\n const entity = state.entities[entityId];\n\n if (sort(model, entity) <= 0) {\n ids.push(modelId);\n i++;\n } else {\n ids.push(entityId);\n j++;\n }\n }\n\n if (i < models.length) {\n state.ids = ids.concat(models.slice(i).map(selectId));\n } else {\n state.ids = ids.concat(state.ids.slice(j));\n }\n\n models.forEach((model, i) => {\n state.entities[selectId(model)] = model;\n });\n }\n\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably),\n };\n}\n","import { createSelector } from '@ngrx/store';\nimport {\n EntityDefinition,\n Comparer,\n IdSelector,\n EntityAdapter,\n} from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\n\nexport function createEntityAdapter<T>(\n options: {\n selectId?: IdSelector<T>;\n sortComparer?: false | Comparer<T>;\n } = {}\n): EntityAdapter<T> {\n const { selectId, sortComparer }: EntityDefinition<T> = {\n sortComparer: false,\n selectId: (instance: any) => instance.id,\n ...options,\n };\n\n const stateFactory = createInitialStateFactory<T>();\n const selectorsFactory = createSelectorsFactory<T>();\n const stateAdapter = sortComparer\n ? createSortedStateAdapter(selectId, sortComparer)\n : createUnsortedStateAdapter(selectId);\n\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter,\n };\n}\n","export type Comparer<T> = (a: T, b: T) => number;\n\nexport type IdSelectorStr<T> = (model: T) => string;\nexport type IdSelectorNum<T> = (model: T) => number;\n\nexport type IdSelector<T> = IdSelectorStr<T> | IdSelectorNum<T>;\n\nexport interface DictionaryNum<T> {\n [id: number]: T | undefined;\n}\n\nexport abstract class Dictionary<T> implements DictionaryNum<T> {\n [id: string]: T | undefined;\n}\n\nexport interface UpdateStr<T> {\n id: string;\n changes: Partial<T>;\n}\n\nexport interface UpdateNum<T> {\n id: number;\n changes: Partial<T>;\n}\n\nexport type Update<T> = UpdateStr<T> | UpdateNum<T>;\n\nexport type Predicate<T> = (entity: T) => boolean;\n\nexport type EntityMap<T> = (entity: T) => T;\n\nexport interface EntityMapOneNum<T> {\n id: number;\n map: EntityMap<T>;\n}\n\nexport interface EntityMapOneStr<T> {\n id: string;\n map: EntityMap<T>;\n}\n\nexport type EntityMapOne<T> = EntityMapOneNum<T> | EntityMapOneStr<T>;\n\nexport interface EntityState<T> {\n ids: string[] | number[];\n entities: Dictionary<T>;\n}\n\nexport interface EntityDefinition<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n}\n\nexport interface EntityStateAdapter<T> {\n addOne<S extends EntityState<T>>(entity: T, state: S): S;\n addMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n setAll<S extends EntityState<T>>(entities: T[], state: S): S;\n setOne<S extends EntityState<T>>(entity: T, state: S): S;\n\n removeOne<S extends EntityState<T>>(key: string, state: S): S;\n removeOne<S extends EntityState<T>>(key: number, state: S): S;\n\n removeMany<S extends EntityState<T>>(keys: string[], state: S): S;\n removeMany<S extends EntityState<T>>(keys: number[], state: S): S;\n removeMany<S extends EntityState<T>>(predicate: Predicate<T>, state: S): S;\n\n removeAll<S extends EntityState<T>>(state: S): S;\n\n updateOne<S extends EntityState<T>>(update: Update<T>, state: S): S;\n updateMany<S extends EntityState<T>>(updates: Update<T>[], state: S): S;\n\n upsertOne<S extends EntityState<T>>(entity: T, state: S): S;\n upsertMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n mapOne<S extends EntityState<T>>(map: EntityMapOne<T>, state: S): S;\n map<S extends EntityState<T>>(map: EntityMap<T>, state: S): S;\n}\n\nexport interface EntitySelectors<T, V> {\n selectIds: (state: V) => string[] | number[];\n selectEntities: (state: V) => Dictionary<T>;\n selectAll: (state: V) => T[];\n selectTotal: (state: V) => number;\n}\n\nexport interface EntityAdapter<T> extends EntityStateAdapter<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n getInitialState(): EntityState<T>;\n getInitialState<S extends object>(state: S): EntityState<T> & S;\n getSelectors(): EntitySelectors<T, EntityState<T>>;\n getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n}\n","/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngrx-entity.js","sources":["../../../../modules/entity/src/entity_state.ts","../../../../modules/entity/src/state_selectors.ts","../../../../modules/entity/src/state_adapter.ts","../../../../modules/entity/src/utils.ts","../../../../modules/entity/src/unsorted_state_adapter.ts","../../../../modules/entity/src/sorted_state_adapter.ts","../../../../modules/entity/src/create_adapter.ts","../../../../modules/entity/src/models.ts","../../../../modules/entity/index.ts","../../../../modules/entity/ngrx-entity.ts"],"sourcesContent":["import { EntityState } from './models';\n\nexport function getInitialEntityState<V>(): EntityState<V> {\n return {\n ids: [],\n entities: {},\n };\n}\n\nexport function createInitialStateFactory<V>() {\n function getInitialState(): EntityState<V>;\n function getInitialState<S extends object>(\n additionalState: S\n ): EntityState<V> & S;\n function getInitialState(additionalState: any = {}): any {\n return Object.assign(getInitialEntityState(), additionalState);\n }\n\n return { getInitialState };\n}\n","import { createSelector } from '@ngrx/store';\nimport { EntityState, EntitySelectors, Dictionary } from './models';\n\nexport function createSelectorsFactory<T>() {\n function getSelectors(): EntitySelectors<T, EntityState<T>>;\n function getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n function getSelectors(\n selectState?: (state: any) => EntityState<T>\n ): EntitySelectors<T, any> {\n const selectIds = (state: any) => state.ids;\n const selectEntities = (state: EntityState<T>) => state.entities;\n const selectAll = createSelector(\n selectIds,\n selectEntities,\n (ids: T[], entities: Dictionary<T>): any =>\n ids.map((id: any) => (entities as any)[id])\n );\n\n const selectTotal = createSelector(selectIds, (ids) => ids.length);\n\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n };\n }\n\n return {\n selectIds: createSelector(selectState, selectIds),\n selectEntities: createSelector(selectState, selectEntities),\n selectAll: createSelector(selectState, selectAll),\n selectTotal: createSelector(selectState, selectTotal),\n };\n }\n\n return { getSelectors };\n}\n","import { EntityState } from './models';\n\nexport enum DidMutate {\n EntitiesOnly,\n Both,\n None,\n}\n\nexport function createStateOperator<V, R>(\n mutator: (arg: R, state: EntityState<V>) => DidMutate\n): EntityState<V>;\nexport function createStateOperator<V, R>(\n mutator: (arg: any, state: any) => DidMutate\n): any {\n return function operation<S extends EntityState<V>>(arg: R, state: any): S {\n const clonedEntityState: EntityState<V> = {\n ids: [...state.ids],\n entities: { ...state.entities },\n };\n\n const didMutate = mutator(arg, clonedEntityState);\n\n if (didMutate === DidMutate.Both) {\n return Object.assign({}, state, clonedEntityState);\n }\n\n if (didMutate === DidMutate.EntitiesOnly) {\n return {\n ...state,\n entities: clonedEntityState.entities,\n };\n }\n\n return state;\n };\n}\n","import { isDevMode } from '@angular/core';\nimport { IdSelector } from './models';\n\nexport function selectIdValue<T>(entity: T, selectId: IdSelector<T>) {\n const key = selectId(entity);\n\n if (isDevMode() && key === undefined) {\n console.warn(\n '@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.',\n 'You should probably provide your own `selectId` implementation.',\n 'The entity that was passed:',\n entity,\n 'The `selectId` implementation:',\n selectId.toString()\n );\n }\n\n return key;\n}\n","import {\n EntityState,\n EntityStateAdapter,\n IdSelector,\n Update,\n Predicate,\n EntityMap,\n EntityMapOneNum,\n EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createUnsortedStateAdapter<T>(\n selectId: IdSelector<T>\n): EntityStateAdapter<T>;\nexport function createUnsortedStateAdapter<T>(selectId: IdSelector<T>): any {\n type R = EntityState<T>;\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n const key = selectIdValue(entity, selectId);\n\n if (key in state.entities) {\n return DidMutate.None;\n }\n\n state.ids.push(key);\n state.entities[key] = entity;\n\n return DidMutate.Both;\n }\n\n function addManyMutably(entities: T[], state: R): DidMutate;\n function addManyMutably(entities: any[], state: any): DidMutate {\n let didMutate = false;\n\n for (const entity of entities) {\n didMutate = addOneMutably(entity, state) !== DidMutate.None || didMutate;\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function setAllMutably(entities: T[], state: R): DidMutate;\n function setAllMutably(entities: any[], state: any): DidMutate {\n state.ids = [];\n state.entities = {};\n\n addManyMutably(entities, state);\n\n return DidMutate.Both;\n }\n\n function setOneMutably(entity: T, state: R): DidMutate;\n function setOneMutably(entity: any, state: any): DidMutate {\n const key = selectIdValue(entity, selectId);\n\n if (key in state.entities) {\n state.entities[key] = entity;\n return DidMutate.EntitiesOnly;\n }\n\n state.ids.push(key);\n state.entities[key] = entity;\n\n return DidMutate.Both;\n }\n\n function setManyMutably(entities: T[], state: R): DidMutate;\n function setManyMutably(entities: any[], state: any): DidMutate {\n const didMutateSetOne = entities.map((entity) =>\n setOneMutably(entity, state)\n );\n\n switch (true) {\n case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):\n return DidMutate.Both;\n case didMutateSetOne.some(\n (didMutate) => didMutate === DidMutate.EntitiesOnly\n ):\n return DidMutate.EntitiesOnly;\n default:\n return DidMutate.None;\n }\n }\n\n function removeOneMutably(key: T, state: R): DidMutate;\n function removeOneMutably(key: any, state: any): DidMutate {\n return removeManyMutably([key], state);\n }\n\n function removeManyMutably(keys: T[], state: R): DidMutate;\n function removeManyMutably(predicate: Predicate<T>, state: R): DidMutate;\n function removeManyMutably(\n keysOrPredicate: any[] | Predicate<T>,\n state: any\n ): DidMutate {\n const keys =\n keysOrPredicate instanceof Array\n ? keysOrPredicate\n : state.ids.filter((key: any) => keysOrPredicate(state.entities[key]));\n\n const didMutate =\n keys\n .filter((key: any) => key in state.entities)\n .map((key: any) => delete state.entities[key]).length > 0;\n\n if (didMutate) {\n state.ids = state.ids.filter((id: any) => id in state.entities);\n }\n\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n\n function removeAll<S extends R>(state: S): S;\n function removeAll<S extends R>(state: any): S {\n return Object.assign({}, state, {\n ids: [],\n entities: {},\n });\n }\n\n function takeNewKey(\n keys: { [id: string]: string },\n update: Update<T>,\n state: R\n ): void;\n function takeNewKey(\n keys: { [id: string]: any },\n update: Update<T>,\n state: any\n ): boolean {\n const original = state.entities[update.id];\n const updated: T = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n\n state.entities[newKey] = updated;\n\n return hasNewKey;\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const newKeys: { [id: string]: string } = {};\n\n updates = updates.filter((update) => update.id in state.entities);\n\n const didMutateEntities = updates.length > 0;\n\n if (didMutateEntities) {\n const didMutateIds =\n updates.filter((update) => takeNewKey(newKeys, update, state)).length >\n 0;\n\n if (didMutateIds) {\n state.ids = state.ids.map((id: any) => newKeys[id] || id);\n return DidMutate.Both;\n } else {\n return DidMutate.EntitiesOnly;\n }\n }\n\n return DidMutate.None;\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(map: any, state: any): DidMutate {\n const changes: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = map(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n const updates = changes.filter(({ id }) => id in state.entities);\n\n return updateManyMutably(updates, state);\n }\n\n function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n function mapOneMutably({ map, id }: any, state: any): DidMutate {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n\n const updatedEntity = map(entity);\n return updateOneMutably(\n {\n id: id,\n changes: updatedEntity,\n },\n state\n );\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n return {\n removeAll,\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably),\n };\n}\n","import {\n EntityState,\n IdSelector,\n Comparer,\n EntityStateAdapter,\n Update,\n EntityMap,\n EntityMapOneNum,\n EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createSortedStateAdapter<T>(\n selectId: IdSelector<T>,\n sort: Comparer<T>\n): EntityStateAdapter<T>;\nexport function createSortedStateAdapter<T>(selectId: any, sort: any): any {\n type R = EntityState<T>;\n\n const { removeOne, removeMany, removeAll } = createUnsortedStateAdapter(\n selectId\n );\n\n function addOneMutably(entity: T, state: R): DidMutate;\n function addOneMutably(entity: any, state: any): DidMutate {\n return addManyMutably([entity], state);\n }\n\n function addManyMutably(newModels: T[], state: R): DidMutate;\n function addManyMutably(newModels: any[], state: any): DidMutate {\n const models = newModels.filter(\n (model) => !(selectIdValue(model, selectId) in state.entities)\n );\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n merge(models, state);\n return DidMutate.Both;\n }\n }\n\n function setAllMutably(models: T[], state: R): DidMutate;\n function setAllMutably(models: any[], state: any): DidMutate {\n state.entities = {};\n state.ids = [];\n\n addManyMutably(models, state);\n\n return DidMutate.Both;\n }\n\n function setOneMutably(entity: T, state: R): DidMutate;\n function setOneMutably(entity: any, state: any): DidMutate {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n state.ids = state.ids.filter((val: string | number) => val !== id);\n merge([entity], state);\n return DidMutate.Both;\n } else {\n return addOneMutably(entity, state);\n }\n }\n\n function setManyMutably(entities: T[], state: R): DidMutate;\n function setManyMutably(entities: any[], state: any): DidMutate {\n const didMutateSetOne = entities.map((entity) =>\n setOneMutably(entity, state)\n );\n\n switch (true) {\n case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):\n return DidMutate.Both;\n case didMutateSetOne.some(\n (didMutate) => didMutate === DidMutate.EntitiesOnly\n ):\n return DidMutate.EntitiesOnly;\n default:\n return DidMutate.None;\n }\n }\n\n function updateOneMutably(update: Update<T>, state: R): DidMutate;\n function updateOneMutably(update: any, state: any): DidMutate {\n return updateManyMutably([update], state);\n }\n\n function takeUpdatedModel(models: T[], update: Update<T>, state: R): boolean;\n function takeUpdatedModel(models: any[], update: any, state: any): boolean {\n if (!(update.id in state.entities)) {\n return false;\n }\n\n const original = state.entities[update.id];\n const updated = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n\n delete state.entities[update.id];\n\n models.push(updated);\n\n return newKey !== update.id;\n }\n\n function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n function updateManyMutably(updates: any[], state: any): DidMutate {\n const models: T[] = [];\n\n const didMutateIds =\n updates.filter((update) => takeUpdatedModel(models, update, state))\n .length > 0;\n\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n const originalIds = state.ids;\n const updatedIndexes: any[] = [];\n state.ids = state.ids.filter((id: any, index: number) => {\n if (id in state.entities) {\n return true;\n } else {\n updatedIndexes.push(index);\n return false;\n }\n });\n\n merge(models, state);\n\n if (\n !didMutateIds &&\n updatedIndexes.every((i: number) => state.ids[i] === originalIds[i])\n ) {\n return DidMutate.EntitiesOnly;\n } else {\n return DidMutate.Both;\n }\n }\n }\n\n function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n function mapMutably(updatesOrMap: any, state: any): DidMutate {\n const updates: Update<T>[] = state.ids.reduce(\n (changes: any[], id: string | number) => {\n const change = updatesOrMap(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({ id, changes: change });\n }\n return changes;\n },\n []\n );\n\n return updateManyMutably(updates, state);\n }\n\n function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n function mapOneMutably({ map, id }: any, state: any): DidMutate {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n\n const updatedEntity = map(entity);\n return updateOneMutably(\n {\n id: id,\n changes: updatedEntity,\n },\n state\n );\n }\n\n function upsertOneMutably(entity: T, state: R): DidMutate;\n function upsertOneMutably(entity: any, state: any): DidMutate {\n return upsertManyMutably([entity], state);\n }\n\n function upsertManyMutably(entities: T[], state: R): DidMutate;\n function upsertManyMutably(entities: any[], state: any): DidMutate {\n const added: any[] = [];\n const updated: any[] = [];\n\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({ id, changes: entity });\n } else {\n added.push(entity);\n }\n }\n\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n\n switch (true) {\n case didMutateByAdded === DidMutate.None &&\n didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both ||\n didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n\n function merge(models: T[], state: R): void;\n function merge(models: any[], state: any): void {\n models.sort(sort);\n\n const ids: any[] = [];\n\n let i = 0;\n let j = 0;\n\n while (i < models.length && j < state.ids.length) {\n const model = models[i];\n const modelId = selectIdValue(model, selectId);\n const entityId = state.ids[j];\n const entity = state.entities[entityId];\n\n if (sort(model, entity) <= 0) {\n ids.push(modelId);\n i++;\n } else {\n ids.push(entityId);\n j++;\n }\n }\n\n if (i < models.length) {\n state.ids = ids.concat(models.slice(i).map(selectId));\n } else {\n state.ids = ids.concat(state.ids.slice(j));\n }\n\n models.forEach((model, i) => {\n state.entities[selectId(model)] = model;\n });\n }\n\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably),\n };\n}\n","import { createSelector } from '@ngrx/store';\nimport {\n EntityDefinition,\n Comparer,\n IdSelector,\n EntityAdapter,\n} from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\n\nexport function createEntityAdapter<T>(\n options: {\n selectId?: IdSelector<T>;\n sortComparer?: false | Comparer<T>;\n } = {}\n): EntityAdapter<T> {\n const { selectId, sortComparer }: EntityDefinition<T> = {\n sortComparer: false,\n selectId: (instance: any) => instance.id,\n ...options,\n };\n\n const stateFactory = createInitialStateFactory<T>();\n const selectorsFactory = createSelectorsFactory<T>();\n const stateAdapter = sortComparer\n ? createSortedStateAdapter(selectId, sortComparer)\n : createUnsortedStateAdapter(selectId);\n\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter,\n };\n}\n","export type Comparer<T> = (a: T, b: T) => number;\n\nexport type IdSelectorStr<T> = (model: T) => string;\nexport type IdSelectorNum<T> = (model: T) => number;\n\nexport type IdSelector<T> = IdSelectorStr<T> | IdSelectorNum<T>;\n\nexport interface DictionaryNum<T> {\n [id: number]: T | undefined;\n}\n\nexport abstract class Dictionary<T> implements DictionaryNum<T> {\n [id: string]: T | undefined;\n}\n\nexport interface UpdateStr<T> {\n id: string;\n changes: Partial<T>;\n}\n\nexport interface UpdateNum<T> {\n id: number;\n changes: Partial<T>;\n}\n\nexport type Update<T> = UpdateStr<T> | UpdateNum<T>;\n\nexport type Predicate<T> = (entity: T) => boolean;\n\nexport type EntityMap<T> = (entity: T) => T;\n\nexport interface EntityMapOneNum<T> {\n id: number;\n map: EntityMap<T>;\n}\n\nexport interface EntityMapOneStr<T> {\n id: string;\n map: EntityMap<T>;\n}\n\nexport type EntityMapOne<T> = EntityMapOneNum<T> | EntityMapOneStr<T>;\n\nexport interface EntityState<T> {\n ids: string[] | number[];\n entities: Dictionary<T>;\n}\n\nexport interface EntityDefinition<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n}\n\nexport interface EntityStateAdapter<T> {\n addOne<S extends EntityState<T>>(entity: T, state: S): S;\n addMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n setAll<S extends EntityState<T>>(entities: T[], state: S): S;\n setOne<S extends EntityState<T>>(entity: T, state: S): S;\n setMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n removeOne<S extends EntityState<T>>(key: string, state: S): S;\n removeOne<S extends EntityState<T>>(key: number, state: S): S;\n\n removeMany<S extends EntityState<T>>(keys: string[], state: S): S;\n removeMany<S extends EntityState<T>>(keys: number[], state: S): S;\n removeMany<S extends EntityState<T>>(predicate: Predicate<T>, state: S): S;\n\n removeAll<S extends EntityState<T>>(state: S): S;\n\n updateOne<S extends EntityState<T>>(update: Update<T>, state: S): S;\n updateMany<S extends EntityState<T>>(updates: Update<T>[], state: S): S;\n\n upsertOne<S extends EntityState<T>>(entity: T, state: S): S;\n upsertMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n mapOne<S extends EntityState<T>>(map: EntityMapOne<T>, state: S): S;\n map<S extends EntityState<T>>(map: EntityMap<T>, state: S): S;\n}\n\nexport interface EntitySelectors<T, V> {\n selectIds: (state: V) => string[] | number[];\n selectEntities: (state: V) => Dictionary<T>;\n selectAll: (state: V) => T[];\n selectTotal: (state: V) => number;\n}\n\nexport interface EntityAdapter<T> extends EntityStateAdapter<T> {\n selectId: IdSelector<T>;\n sortComparer: false | Comparer<T>;\n getInitialState(): EntityState<T>;\n getInitialState<S extends object>(state: S): EntityState<T> & S;\n getSelectors(): EntitySelectors<T, EntityState<T>>;\n getSelectors<V>(\n selectState: (state: V) => EntityState<T>\n ): EntitySelectors<T, V>;\n}\n","/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- var schematics_core_1 = require("@ngrx/entity/schematics-core");
3
+ var schematics_core_1 = require("../../schematics-core");
4
4
  function default_1() {
5
5
  return schematics_core_1.updatePackage('entity');
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/entity/migrations/6_0_0/index.ts"],"names":[],"mappings":";;AACA,gEAA6D;AAE7D;IACE,OAAO,+BAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAFD,+BAEC","sourcesContent":["import { Rule } from '@angular-devkit/schematics';\nimport { updatePackage } from '@ngrx/entity/schematics-core';\n\nexport default function (): Rule {\n return updatePackage('entity');\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/entity/migrations/6_0_0/index.ts"],"names":[],"mappings":";;AACA,yDAAsD;AAEtD;IACE,OAAO,+BAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAFD,+BAEC","sourcesContent":["import { Rule } from '@angular-devkit/schematics';\nimport { updatePackage } from '../../schematics-core';\n\nexport default function (): Rule {\n return updatePackage('entity');\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngrx/entity",
3
- "version": "12.0.0",
3
+ "version": "12.4.0",
4
4
  "description": "Common utilities for entity reducers",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,7 @@
21
21
  "homepage": "https://github.com/ngrx/platform#readme",
22
22
  "peerDependencies": {
23
23
  "@angular/core": "^12.0.0",
24
- "@ngrx/store": "12.0.0",
24
+ "@ngrx/store": "12.4.0",
25
25
  "rxjs": "^6.5.3"
26
26
  },
27
27
  "schematics": "./schematics/collection.json",
@@ -2,7 +2,7 @@
2
2
  exports.__esModule = true;
3
3
  var schematics_1 = require("@angular-devkit/schematics");
4
4
  var tasks_1 = require("@angular-devkit/schematics/tasks");
5
- var schematics_core_1 = require("@ngrx/entity/schematics-core");
5
+ var schematics_core_1 = require("../../schematics-core");
6
6
  function addNgRxEntityToPackageJson() {
7
7
  return function (host, context) {
8
8
  schematics_core_1.addPackageToPackageJson(host, 'dependencies', '@ngrx/entity', schematics_core_1.platformVersion);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAAA,yDAMoC;AACpC,0DAA0E;AAC1E,gEAGsC;AAGtC,SAAS,0BAA0B;IACjC,OAAO,UAAC,IAAU,EAAE,OAAyB;QAC3C,yCAAuB,CACrB,IAAI,EACJ,cAAc,EACd,cAAc,EACd,iCAAe,CAChB,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,mBAAyB,OAAsB;IAC7C,OAAO,UAAC,IAAU,EAAE,OAAyB;QAC3C,OAAO,kBAAK,CAAC;YACX,OAAO,IAAI,OAAO,CAAC,eAAe;gBAChC,CAAC,CAAC,iBAAI,EAAE;gBACR,CAAC,CAAC,0BAA0B,EAAE;SACjC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AARD,+BAQC","sourcesContent":["import {\n Rule,\n SchematicContext,\n Tree,\n chain,\n noop,\n} from '@angular-devkit/schematics';\nimport { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';\nimport {\n addPackageToPackageJson,\n platformVersion,\n} from '@ngrx/entity/schematics-core';\nimport { Schema as EntityOptions } from './schema';\n\nfunction addNgRxEntityToPackageJson() {\n return (host: Tree, context: SchematicContext) => {\n addPackageToPackageJson(\n host,\n 'dependencies',\n '@ngrx/entity',\n platformVersion\n );\n context.addTask(new NodePackageInstallTask());\n return host;\n };\n}\n\nexport default function (options: EntityOptions): Rule {\n return (host: Tree, context: SchematicContext) => {\n return chain([\n options && options.skipPackageJson\n ? noop()\n : addNgRxEntityToPackageJson(),\n ])(host, context);\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAAA,yDAMoC;AACpC,0DAA0E;AAC1E,yDAG+B;AAG/B,SAAS,0BAA0B;IACjC,OAAO,UAAC,IAAU,EAAE,OAAyB;QAC3C,yCAAuB,CACrB,IAAI,EACJ,cAAc,EACd,cAAc,EACd,iCAAe,CAChB,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,mBAAyB,OAAsB;IAC7C,OAAO,UAAC,IAAU,EAAE,OAAyB;QAC3C,OAAO,kBAAK,CAAC;YACX,OAAO,IAAI,OAAO,CAAC,eAAe;gBAChC,CAAC,CAAC,iBAAI,EAAE;gBACR,CAAC,CAAC,0BAA0B,EAAE;SACjC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AARD,+BAQC","sourcesContent":["import {\n Rule,\n SchematicContext,\n Tree,\n chain,\n noop,\n} from '@angular-devkit/schematics';\nimport { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';\nimport {\n addPackageToPackageJson,\n platformVersion,\n} from '../../schematics-core';\nimport { Schema as EntityOptions } from './schema';\n\nfunction addNgRxEntityToPackageJson() {\n return (host: Tree, context: SchematicContext) => {\n addPackageToPackageJson(\n host,\n 'dependencies',\n '@ngrx/entity',\n platformVersion\n );\n context.addTask(new NodePackageInstallTask());\n return host;\n };\n}\n\nexport default function (options: EntityOptions): Rule {\n return (host: Tree, context: SchematicContext) => {\n return chain([\n options && options.skipPackageJson\n ? noop()\n : addNgRxEntityToPackageJson(),\n ])(host, context);\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/schema",
3
- "id": "SchematicsNgRxEntity",
3
+ "$id": "SchematicsNgRxEntity",
4
4
  "title": "NgRx Entity Schema",
5
5
  "type": "object",
6
6
  "properties": {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
3
  exports.platformVersion = void 0;
4
- exports.platformVersion = '^12.0.0';
4
+ exports.platformVersion = '^12.4.0';
5
5
  //# sourceMappingURL=libs-version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"libs-version.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics-core/utility/libs-version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,SAAS,CAAC","sourcesContent":["export const platformVersion = '^12.0.0';\n"]}
1
+ {"version":3,"file":"libs-version.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics-core/utility/libs-version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,SAAS,CAAC","sourcesContent":["export const platformVersion = '^12.4.0';\n"]}
package/src/models.d.ts CHANGED
@@ -41,6 +41,7 @@ export interface EntityStateAdapter<T> {
41
41
  addMany<S extends EntityState<T>>(entities: T[], state: S): S;
42
42
  setAll<S extends EntityState<T>>(entities: T[], state: S): S;
43
43
  setOne<S extends EntityState<T>>(entity: T, state: S): S;
44
+ setMany<S extends EntityState<T>>(entities: T[], state: S): S;
44
45
  removeOne<S extends EntityState<T>>(key: string, state: S): S;
45
46
  removeOne<S extends EntityState<T>>(key: number, state: S): S;
46
47
  removeMany<S extends EntityState<T>>(keys: string[], state: S): S;