{"version":3,"file":"property-expr-38205fa5.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","key","value","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","MAX_CACHE_SIZE","pathCache","setCache","getCache","propertyExpr","split","normalizePath","path","parts","obj","index","len","data","part","safe","segments","isQuoted","cb","thisArg","forEach","iter","idx","isArray","isBracket","shouldBeQuoted","str","hasLeadingNumber","hasSpecialChars"],"mappings":"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","x_google_ignoreList":[0]}