{"version":3,"file":"npm.normalizr.615d2e14.js","mappings":"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","sources":["webpack://goodkind-frontend/./node_modules/normalizr/dist/normalizr.es.js"],"sourcesContent":["function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\n/**\n * Helpers to enable Immutable compatibility *without* bringing in\n * the 'immutable' package as a dependency.\n */\n\n/**\n * Check if an object is immutable by checking if it has a key specific\n * to the immutable library.\n *\n * @param {any} object\n * @return {bool}\n */\nfunction isImmutable(object) {\n return !!(object && typeof object.hasOwnProperty === 'function' && (object.hasOwnProperty('__ownerID') || // Immutable.Map\n object._map && object._map.hasOwnProperty('__ownerID'))); // Immutable.Record\n}\n/**\n * Denormalize an immutable entity.\n *\n * @param {Schema} schema\n * @param {Immutable.Map|Immutable.Record} input\n * @param {function} unvisit\n * @param {function} getDenormalizedEntity\n * @return {Immutable.Map|Immutable.Record}\n */\n\nfunction denormalizeImmutable(schema, input, unvisit) {\n return Object.keys(schema).reduce(function (object, key) {\n // Immutable maps cast keys to strings on write so we need to ensure\n // we're accessing them using string keys.\n var stringKey = \"\" + key;\n\n if (object.has(stringKey)) {\n return object.set(stringKey, unvisit(object.get(stringKey), schema[stringKey]));\n } else {\n return object;\n }\n }, input);\n}\n\nvar getDefaultGetId = function getDefaultGetId(idAttribute) {\n return function (input) {\n return isImmutable(input) ? input.get(idAttribute) : input[idAttribute];\n };\n};\n\nvar EntitySchema = /*#__PURE__*/function () {\n function EntitySchema(key, definition, options) {\n if (definition === void 0) {\n definition = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n if (!key || typeof key !== 'string') {\n throw new Error(\"Expected a string key for Entity, but found \" + key + \".\");\n }\n\n var _options = options,\n _options$idAttribute = _options.idAttribute,\n idAttribute = _options$idAttribute === void 0 ? 'id' : _options$idAttribute,\n _options$mergeStrateg = _options.mergeStrategy,\n mergeStrategy = _options$mergeStrateg === void 0 ? function (entityA, entityB) {\n return _extends({}, entityA, entityB);\n } : _options$mergeStrateg,\n _options$processStrat = _options.processStrategy,\n processStrategy = _options$processStrat === void 0 ? function (input) {\n return _extends({}, input);\n } : _options$processStrat,\n _options$fallbackStra = _options.fallbackStrategy,\n fallbackStrategy = _options$fallbackStra === void 0 ? function (key, schema) {\n return undefined;\n } : _options$fallbackStra;\n this._key = key;\n this._getId = typeof idAttribute === 'function' ? idAttribute : getDefaultGetId(idAttribute);\n this._idAttribute = idAttribute;\n this._mergeStrategy = mergeStrategy;\n this._processStrategy = processStrategy;\n this._fallbackStrategy = fallbackStrategy;\n this.define(definition);\n }\n\n var _proto = EntitySchema.prototype;\n\n _proto.define = function define(definition) {\n this.schema = Object.keys(definition).reduce(function (entitySchema, key) {\n var _extends2;\n\n var schema = definition[key];\n return _extends({}, entitySchema, (_extends2 = {}, _extends2[key] = schema, _extends2));\n }, this.schema || {});\n };\n\n _proto.getId = function getId(input, parent, key) {\n return this._getId(input, parent, key);\n };\n\n _proto.merge = function merge(entityA, entityB) {\n return this._mergeStrategy(entityA, entityB);\n };\n\n _proto.fallback = function fallback(id, schema) {\n return this._fallbackStrategy(id, schema);\n };\n\n _proto.normalize = function normalize(input, parent, key, visit, addEntity, visitedEntities) {\n var _this = this;\n\n var id = this.getId(input, parent, key);\n var entityType = this.key;\n\n if (!(entityType in visitedEntities)) {\n visitedEntities[entityType] = {};\n }\n\n if (!(id in visitedEntities[entityType])) {\n visitedEntities[entityType][id] = [];\n }\n\n if (visitedEntities[entityType][id].some(function (entity) {\n return entity === input;\n })) {\n return id;\n }\n\n visitedEntities[entityType][id].push(input);\n\n var processedEntity = this._processStrategy(input, parent, key);\n\n Object.keys(this.schema).forEach(function (key) {\n if (processedEntity.hasOwnProperty(key) && typeof processedEntity[key] === 'object') {\n var schema = _this.schema[key];\n var resolvedSchema = typeof schema === 'function' ? schema(input) : schema;\n processedEntity[key] = visit(processedEntity[key], processedEntity, key, resolvedSchema, addEntity, visitedEntities);\n }\n });\n addEntity(this, processedEntity, input, parent, key);\n return id;\n };\n\n _proto.denormalize = function denormalize(entity, unvisit) {\n var _this2 = this;\n\n if (isImmutable(entity)) {\n return denormalizeImmutable(this.schema, entity, unvisit);\n }\n\n Object.keys(this.schema).forEach(function (key) {\n if (entity.hasOwnProperty(key)) {\n var schema = _this2.schema[key];\n entity[key] = unvisit(entity[key], schema);\n }\n });\n return entity;\n };\n\n _createClass(EntitySchema, [{\n key: \"key\",\n get: function get() {\n return this._key;\n }\n }, {\n key: \"idAttribute\",\n get: function get() {\n return this._idAttribute;\n }\n }]);\n\n return EntitySchema;\n}();\n\nvar PolymorphicSchema = /*#__PURE__*/function () {\n function PolymorphicSchema(definition, schemaAttribute) {\n if (schemaAttribute) {\n this._schemaAttribute = typeof schemaAttribute === 'string' ? function (input) {\n return input[schemaAttribute];\n } : schemaAttribute;\n }\n\n this.define(definition);\n }\n\n var _proto = PolymorphicSchema.prototype;\n\n _proto.define = function define(definition) {\n this.schema = definition;\n };\n\n _proto.getSchemaAttribute = function getSchemaAttribute(input, parent, key) {\n return !this.isSingleSchema && this._schemaAttribute(input, parent, key);\n };\n\n _proto.inferSchema = function inferSchema(input, parent, key) {\n if (this.isSingleSchema) {\n return this.schema;\n }\n\n var attr = this.getSchemaAttribute(input, parent, key);\n return this.schema[attr];\n };\n\n _proto.normalizeValue = function normalizeValue(value, parent, key, visit, addEntity, visitedEntities) {\n var schema = this.inferSchema(value, parent, key);\n\n if (!schema) {\n return value;\n }\n\n var normalizedValue = visit(value, parent, key, schema, addEntity, visitedEntities);\n return this.isSingleSchema || normalizedValue === undefined || normalizedValue === null ? normalizedValue : {\n id: normalizedValue,\n schema: this.getSchemaAttribute(value, parent, key)\n };\n };\n\n _proto.denormalizeValue = function denormalizeValue(value, unvisit) {\n var schemaKey = isImmutable(value) ? value.get('schema') : value.schema;\n\n if (!this.isSingleSchema && !schemaKey) {\n return value;\n }\n\n var id = this.isSingleSchema ? undefined : isImmutable(value) ? value.get('id') : value.id;\n var schema = this.isSingleSchema ? this.schema : this.schema[schemaKey];\n return unvisit(id || value, schema);\n };\n\n _createClass(PolymorphicSchema, [{\n key: \"isSingleSchema\",\n get: function get() {\n return !this._schemaAttribute;\n }\n }]);\n\n return PolymorphicSchema;\n}();\n\nvar UnionSchema = /*#__PURE__*/function (_PolymorphicSchema) {\n _inheritsLoose(UnionSchema, _PolymorphicSchema);\n\n function UnionSchema(definition, schemaAttribute) {\n if (!schemaAttribute) {\n throw new Error('Expected option \"schemaAttribute\" not found on UnionSchema.');\n }\n\n return _PolymorphicSchema.call(this, definition, schemaAttribute) || this;\n }\n\n var _proto = UnionSchema.prototype;\n\n _proto.normalize = function normalize(input, parent, key, visit, addEntity, visitedEntities) {\n return this.normalizeValue(input, parent, key, visit, addEntity, visitedEntities);\n };\n\n _proto.denormalize = function denormalize(input, unvisit) {\n return this.denormalizeValue(input, unvisit);\n };\n\n return UnionSchema;\n}(PolymorphicSchema);\n\nvar ValuesSchema = /*#__PURE__*/function (_PolymorphicSchema) {\n _inheritsLoose(ValuesSchema, _PolymorphicSchema);\n\n function ValuesSchema() {\n return _PolymorphicSchema.apply(this, arguments) || this;\n }\n\n var _proto = ValuesSchema.prototype;\n\n _proto.normalize = function normalize(input, parent, key, visit, addEntity, visitedEntities) {\n var _this = this;\n\n return Object.keys(input).reduce(function (output, key, index) {\n var _extends2;\n\n var value = input[key];\n return value !== undefined && value !== null ? _extends({}, output, (_extends2 = {}, _extends2[key] = _this.normalizeValue(value, input, key, visit, addEntity, visitedEntities), _extends2)) : output;\n }, {});\n };\n\n _proto.denormalize = function denormalize(input, unvisit) {\n var _this2 = this;\n\n return Object.keys(input).reduce(function (output, key) {\n var _extends3;\n\n var entityOrId = input[key];\n return _extends({}, output, (_extends3 = {}, _extends3[key] = _this2.denormalizeValue(entityOrId, unvisit), _extends3));\n }, {});\n };\n\n return ValuesSchema;\n}(PolymorphicSchema);\n\nvar validateSchema = function validateSchema(definition) {\n var isArray = Array.isArray(definition);\n\n if (isArray && definition.length > 1) {\n throw new Error(\"Expected schema definition to be a single schema, but found \" + definition.length + \".\");\n }\n\n return definition[0];\n};\n\nvar getValues = function getValues(input) {\n return Array.isArray(input) ? input : Object.keys(input).map(function (key) {\n return input[key];\n });\n};\n\nvar normalize = function normalize(schema, input, parent, key, visit, addEntity, visitedEntities) {\n schema = validateSchema(schema);\n var values = getValues(input); // Special case: Arrays pass *their* parent on to their children, since there\n // is not any special information that can be gathered from themselves directly\n\n return values.map(function (value, index) {\n return visit(value, parent, key, schema, addEntity, visitedEntities);\n });\n};\nvar denormalize = function denormalize(schema, input, unvisit) {\n schema = validateSchema(schema);\n return input && input.map ? input.map(function (entityOrId) {\n return unvisit(entityOrId, schema);\n }) : input;\n};\n\nvar ArraySchema = /*#__PURE__*/function (_PolymorphicSchema) {\n _inheritsLoose(ArraySchema, _PolymorphicSchema);\n\n function ArraySchema() {\n return _PolymorphicSchema.apply(this, arguments) || this;\n }\n\n var _proto = ArraySchema.prototype;\n\n _proto.normalize = function normalize(input, parent, key, visit, addEntity, visitedEntities) {\n var _this = this;\n\n var values = getValues(input);\n return values.map(function (value, index) {\n return _this.normalizeValue(value, parent, key, visit, addEntity, visitedEntities);\n }).filter(function (value) {\n return value !== undefined && value !== null;\n });\n };\n\n _proto.denormalize = function denormalize(input, unvisit) {\n var _this2 = this;\n\n return input && input.map ? input.map(function (value) {\n return _this2.denormalizeValue(value, unvisit);\n }) : input;\n };\n\n return ArraySchema;\n}(PolymorphicSchema);\n\nvar _normalize = function normalize(schema, input, parent, key, visit, addEntity, visitedEntities) {\n var object = _extends({}, input);\n\n Object.keys(schema).forEach(function (key) {\n var localSchema = schema[key];\n var resolvedLocalSchema = typeof localSchema === 'function' ? localSchema(input) : localSchema;\n var value = visit(input[key], input, key, resolvedLocalSchema, addEntity, visitedEntities);\n\n if (value === undefined || value === null) {\n delete object[key];\n } else {\n object[key] = value;\n }\n });\n return object;\n};\n\nvar _denormalize = function denormalize(schema, input, unvisit) {\n if (isImmutable(input)) {\n return denormalizeImmutable(schema, input, unvisit);\n }\n\n var object = _extends({}, input);\n\n Object.keys(schema).forEach(function (key) {\n if (object[key] != null) {\n object[key] = unvisit(object[key], schema[key]);\n }\n });\n return object;\n};\n\nvar ObjectSchema = /*#__PURE__*/function () {\n function ObjectSchema(definition) {\n this.define(definition);\n }\n\n var _proto = ObjectSchema.prototype;\n\n _proto.define = function define(definition) {\n this.schema = Object.keys(definition).reduce(function (entitySchema, key) {\n var _extends2;\n\n var schema = definition[key];\n return _extends({}, entitySchema, (_extends2 = {}, _extends2[key] = schema, _extends2));\n }, this.schema || {});\n };\n\n _proto.normalize = function normalize() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _normalize.apply(void 0, [this.schema].concat(args));\n };\n\n _proto.denormalize = function denormalize() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _denormalize.apply(void 0, [this.schema].concat(args));\n };\n\n return ObjectSchema;\n}();\n\nvar visit = function visit(value, parent, key, schema, addEntity, visitedEntities) {\n if (typeof value !== 'object' || !value) {\n return value;\n }\n\n if (typeof schema === 'object' && (!schema.normalize || typeof schema.normalize !== 'function')) {\n var method = Array.isArray(schema) ? normalize : _normalize;\n return method(schema, value, parent, key, visit, addEntity, visitedEntities);\n }\n\n return schema.normalize(value, parent, key, visit, addEntity, visitedEntities);\n};\n\nvar addEntities = function addEntities(entities) {\n return function (schema, processedEntity, value, parent, key) {\n var schemaKey = schema.key;\n var id = schema.getId(value, parent, key);\n\n if (!(schemaKey in entities)) {\n entities[schemaKey] = {};\n }\n\n var existingEntity = entities[schemaKey][id];\n\n if (existingEntity) {\n entities[schemaKey][id] = schema.merge(existingEntity, processedEntity);\n } else {\n entities[schemaKey][id] = processedEntity;\n }\n };\n};\n\nvar schema = {\n Array: ArraySchema,\n Entity: EntitySchema,\n Object: ObjectSchema,\n Union: UnionSchema,\n Values: ValuesSchema\n};\nvar normalize$1 = function normalize(input, schema) {\n if (!input || typeof input !== 'object') {\n throw new Error(\"Unexpected input given to normalize. Expected type to be \\\"object\\\", found \\\"\" + (input === null ? 'null' : typeof input) + \"\\\".\");\n }\n\n var entities = {};\n var addEntity = addEntities(entities);\n var visitedEntities = {};\n var result = visit(input, input, null, schema, addEntity, visitedEntities);\n return {\n entities: entities,\n result: result\n };\n};\n\nvar unvisitEntity = function unvisitEntity(id, schema, unvisit, getEntity, cache) {\n var entity = getEntity(id, schema);\n\n if (entity === undefined && schema instanceof EntitySchema) {\n entity = schema.fallback(id, schema);\n }\n\n if (typeof entity !== 'object' || entity === null) {\n return entity;\n }\n\n if (!cache[schema.key]) {\n cache[schema.key] = {};\n }\n\n if (!cache[schema.key][id]) {\n // Ensure we don't mutate it non-immutable objects\n var entityCopy = isImmutable(entity) ? entity : _extends({}, entity); // Need to set this first so that if it is referenced further within the\n // denormalization the reference will already exist.\n\n cache[schema.key][id] = entityCopy;\n cache[schema.key][id] = schema.denormalize(entityCopy, unvisit);\n }\n\n return cache[schema.key][id];\n};\n\nvar getUnvisit = function getUnvisit(entities) {\n var cache = {};\n var getEntity = getEntities(entities);\n return function unvisit(input, schema) {\n if (typeof schema === 'object' && (!schema.denormalize || typeof schema.denormalize !== 'function')) {\n var method = Array.isArray(schema) ? denormalize : _denormalize;\n return method(schema, input, unvisit);\n }\n\n if (input === undefined || input === null) {\n return input;\n }\n\n if (schema instanceof EntitySchema) {\n return unvisitEntity(input, schema, unvisit, getEntity, cache);\n }\n\n return schema.denormalize(input, unvisit);\n };\n};\n\nvar getEntities = function getEntities(entities) {\n var isImmutable$1 = isImmutable(entities);\n return function (entityOrId, schema) {\n var schemaKey = schema.key;\n\n if (typeof entityOrId === 'object') {\n return entityOrId;\n }\n\n if (isImmutable$1) {\n return entities.getIn([schemaKey, entityOrId.toString()]);\n }\n\n return entities[schemaKey] && entities[schemaKey][entityOrId];\n };\n};\n\nvar denormalize$1 = function denormalize(input, schema, entities) {\n if (typeof input !== 'undefined') {\n return getUnvisit(entities)(input, schema);\n }\n};\n\nexport { denormalize$1 as denormalize, normalize$1 as normalize, schema };\n"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_extends","assign","arguments","source","hasOwnProperty","call","apply","this","_inheritsLoose","subClass","superClass","create","constructor","__proto__","isImmutable","object","_map","denormalizeImmutable","schema","input","unvisit","keys","reduce","stringKey","has","set","get","EntitySchema","definition","options","Error","_options","_options$idAttribute","idAttribute","_options$mergeStrateg","mergeStrategy","entityA","entityB","_options$processStrat","processStrategy","_options$fallbackStra","fallbackStrategy","_key","_getId","getDefaultGetId","_idAttribute","_mergeStrategy","_processStrategy","_fallbackStrategy","define","_proto","entitySchema","_extends2","getId","parent","merge","fallback","id","normalize","visit","addEntity","visitedEntities","_this","entityType","some","entity","push","processedEntity","forEach","resolvedSchema","denormalize","_this2","PolymorphicSchema","schemaAttribute","_schemaAttribute","getSchemaAttribute","isSingleSchema","inferSchema","attr","normalizeValue","value","normalizedValue","denormalizeValue","schemaKey","undefined","UnionSchema","_PolymorphicSchema","ValuesSchema","output","index","_extends3","entityOrId","getValues","Array","isArray","map","validateSchema","ArraySchema","filter","_normalize","localSchema","resolvedLocalSchema","_denormalize","ObjectSchema","_len","args","concat","_len2","_key2","Entity","Union","Values","normalize$1","entities","existingEntity","addEntities","result"],"sourceRoot":""}