{"version":3,"file":"property-expr-DJkEfuIG.js","sources":["../../node_modules/property-expr/index.js"],"sourcesContent":["/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n"],"names":["Cache","maxSize","this","_maxSize","clear","prototype","_size","_values","Object","create","get","key","set","value","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","propertyExpr","split","normalizePath","setter","path","parts","obj","index","len","length","data","part","getter","safe","join","segments","reduce","isQuoted","test","forEach","cb","thisArg","iter","idx","isArray","isBracket","shouldBeQuoted","call","Array","map","replace","match","str","indexOf","charAt","hasLeadingNumber","hasSpecialChars"],"mappings":"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","x_google_ignoreList":[0]}