{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/json-viewer.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","JSONViewer","document","Object_prototype_toString","toString","DatePrototypeAsString","Date","this","_dom_container","createElement","classList","add","createSimpleViewOf","isDate","spanEl","type","asText","toLocaleString","className","textContent","_createItemsCount","count","itemsCount","innerHTML","_getItemsTitle","_createLink","title","linkEl","href","showJSON","jsonValue","inputMaxLvl","inputColAt","maxLvl","colAt","walkJSONTree","outputParent","lvl","realValue","toJSON","appendChild","isMaxLvl","isCollapse","isArray","Array","items","keys","rootCount","length","rootLink","addEventListener","toggle","querySelector","remove","len","ulList","setAttribute","forEach","ind","item","li","createTextNode","itemIsArray","itemLen","itemTitle","itemLink","list","itemLinkCb","getContainer"],"mappings":"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","file":"js/json-viewer-9a614e53ce0971a69568.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","/**\n * JSONViewer - by Roman Makudera 2016 (c) MIT licence.\n */\nvar JSONViewer = (function (document) {\n\tvar Object_prototype_toString = ({}).toString;\n\tvar DatePrototypeAsString = Object_prototype_toString.call(new Date);\n\n\t/** @constructor */\n\tfunction JSONViewer() {\n\t\tthis._dom_container = document.createElement(\"pre\");\n\t\tthis._dom_container.classList.add(\"json-viewer\");\n\t};\n\n\t/**\n\t * Visualise JSON object.\n\t * \n\t * @param {Object|Array} json Input value\n\t * @param {Number} [inputMaxLvl] Process only to max level, where 0..n, -1 unlimited\n\t * @param {Number} [inputColAt] Collapse at level, where 0..n, -1 unlimited\n\t */\n\tJSONViewer.prototype.showJSON = function (jsonValue, inputMaxLvl, inputColAt) {\n\t\t// Process only to maxLvl, where 0..n, -1 unlimited\n\t\tvar maxLvl = typeof inputMaxLvl === \"number\" ? inputMaxLvl : -1; // max level\n\t\t// Collapse at level colAt, where 0..n, -1 unlimited\n\t\tvar colAt = typeof inputColAt === \"number\" ? inputColAt : -1; // collapse at\n\n\t\tthis._dom_container.innerHTML = \"\";\n\t\twalkJSONTree(this._dom_container, jsonValue, maxLvl, colAt, 0);\n\t};\n\n\t/**\n\t * Get container with pre object - this container is used for visualise JSON data.\n\t * \n\t * @return {Element}\n\t */\n\tJSONViewer.prototype.getContainer = function () {\n\t\treturn this._dom_container;\n\t};\n\n\t/**\n\t * Recursive walk for input value.\n\t * \n\t * @param {Element} outputParent is the Element that will contain the new DOM\n\t * @param {Object|Array} value Input value\n\t * @param {Number} maxLvl Process only to max level, where 0..n, -1 unlimited\n\t * @param {Number} colAt Collapse at level, where 0..n, -1 unlimited\n\t * @param {Number} lvl Current level\n\t */\n\tfunction walkJSONTree(outputParent, value, maxLvl, colAt, lvl) {\n\t\tvar isDate = Object_prototype_toString.call(value) === DatePrototypeAsString;\n\t\tvar realValue = !isDate && typeof value === \"object\" && value !== null && \"toJSON\" in value ? value.toJSON() : value;\n\t\tif (typeof realValue === \"object\" && realValue !== null && !isDate) {\n\t\t\tvar isMaxLvl = maxLvl >= 0 && lvl >= maxLvl;\n\t\t\tvar isCollapse = colAt >= 0 && lvl >= colAt;\n\n\t\t\tvar isArray = Array.isArray(realValue);\n\t\t\tvar items = isArray ? realValue : Object.keys(realValue);\n\n\t\t\tif (lvl === 0) {\n\t\t\t\t// root level\n\t\t\t\tvar rootCount = _createItemsCount(items.length);\n\t\t\t\t// hide/show\n\t\t\t\tvar rootLink = _createLink(isArray ? \"[\" : \"{\");\n\n\t\t\t\tif (items.length) {\n\t\t\t\t\trootLink.addEventListener(\"click\", function () {\n\t\t\t\t\t\tif (isMaxLvl) return;\n\n\t\t\t\t\t\trootLink.classList.toggle(\"collapsed\");\n\t\t\t\t\t\trootCount.classList.toggle(\"hide\");\n\n\t\t\t\t\t\t// main list\n\t\t\t\t\t\toutputParent.querySelector(\"ul\").classList.toggle(\"hide\");\n\t\t\t\t\t});\n\n\t\t\t\t\tif (isCollapse) {\n\t\t\t\t\t\trootLink.classList.add(\"collapsed\");\n\t\t\t\t\t\trootCount.classList.remove(\"hide\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trootLink.classList.add(\"empty\");\n\t\t\t\t}\n\n\t\t\t\trootLink.appendChild(rootCount);\n\t\t\t\toutputParent.appendChild(rootLink); // output the rootLink\n\t\t\t}\n\n\t\t\tif (items.length && !isMaxLvl) {\n\t\t\t\tvar len = items.length - 1;\n\t\t\t\tvar ulList = document.createElement(\"ul\");\n\t\t\t\tulList.setAttribute(\"data-level\", lvl);\n\t\t\t\tulList.classList.add(\"type-\" + (isArray ? \"array\" : \"object\"));\n\n\t\t\t\titems.forEach(function (key, ind) {\n\t\t\t\t\tvar item = isArray ? key : value[key];\n\t\t\t\t\tvar li = document.createElement(\"li\");\n\n\t\t\t\t\tif (typeof item === \"object\") {\n\t\t\t\t\t\t// null && date\n\t\t\t\t\t\tif (!item || item instanceof Date) {\n\t\t\t\t\t\t\tli.appendChild(document.createTextNode(isArray ? \"\" : key + \": \"));\n\t\t\t\t\t\t\tli.appendChild(createSimpleViewOf(item ? item : null, true));\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// array & object\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar itemIsArray = Array.isArray(item);\n\t\t\t\t\t\t\tvar itemLen = itemIsArray ? item.length : Object.keys(item).length;\n\n\t\t\t\t\t\t\t// empty\n\t\t\t\t\t\t\tif (!itemLen) {\n\t\t\t\t\t\t\t\tli.appendChild(document.createTextNode(key + \": \" + (itemIsArray ? \"[]\" : \"{}\")));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// 1+ items\n\t\t\t\t\t\t\t\tvar itemTitle = (typeof key === \"string\" ? key + \": \" : \"\") + (itemIsArray ? \"[\" : \"{\");\n\t\t\t\t\t\t\t\tvar itemLink = _createLink(itemTitle);\n\t\t\t\t\t\t\t\tvar itemsCount = _createItemsCount(itemLen);\n\n\t\t\t\t\t\t\t\t// maxLvl - only text, no link\n\t\t\t\t\t\t\t\tif (maxLvl >= 0 && lvl + 1 >= maxLvl) {\n\t\t\t\t\t\t\t\t\tli.appendChild(document.createTextNode(itemTitle));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\titemLink.appendChild(itemsCount);\n\t\t\t\t\t\t\t\t\tli.appendChild(itemLink);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\twalkJSONTree(li, item, maxLvl, colAt, lvl + 1);\n\t\t\t\t\t\t\t\tli.appendChild(document.createTextNode(itemIsArray ? \"]\" : \"}\"));\n\n\t\t\t\t\t\t\t\tvar list = li.querySelector(\"ul\");\n\t\t\t\t\t\t\t\tvar itemLinkCb = function () {\n\t\t\t\t\t\t\t\t\titemLink.classList.toggle(\"collapsed\");\n\t\t\t\t\t\t\t\t\titemsCount.classList.toggle(\"hide\");\n\t\t\t\t\t\t\t\t\tlist.classList.toggle(\"hide\");\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t// hide/show\n\t\t\t\t\t\t\t\titemLink.addEventListener(\"click\", itemLinkCb);\n\n\t\t\t\t\t\t\t\t// collapse lower level\n\t\t\t\t\t\t\t\tif (colAt >= 0 && lvl + 1 >= colAt) {\n\t\t\t\t\t\t\t\t\titemLinkCb();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// simple values\n\t\t\t\t\telse {\n\t\t\t\t\t\t// object keys with key:\n\t\t\t\t\t\tif (!isArray) {\n\t\t\t\t\t\t\tli.appendChild(document.createTextNode(key + \": \"));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// recursive\n\t\t\t\t\t\twalkJSONTree(li, item, maxLvl, colAt, lvl + 1);\n\t\t\t\t\t}\n\n\t\t\t\t\t// add comma to the end\n\t\t\t\t\tif (ind < len) {\n\t\t\t\t\t\tli.appendChild(document.createTextNode(\",\"));\n\t\t\t\t\t}\n\n\t\t\t\t\tulList.appendChild(li);\n\t\t\t\t}, this);\n\n\t\t\t\toutputParent.appendChild(ulList); // output ulList\n\t\t\t}\n\t\t\telse if (items.length && isMaxLvl) {\n\t\t\t\tvar itemsCount = _createItemsCount(items.length);\n\t\t\t\titemsCount.classList.remove(\"hide\");\n\n\t\t\t\toutputParent.appendChild(itemsCount); // output itemsCount\n\t\t\t}\n\n\t\t\tif (lvl === 0) {\n\t\t\t\t// empty root\n\t\t\t\tif (!items.length) {\n\t\t\t\t\tvar itemsCount = _createItemsCount(0);\n\t\t\t\t\titemsCount.classList.remove(\"hide\");\n\n\t\t\t\t\toutputParent.appendChild(itemsCount); // output itemsCount\n\t\t\t\t}\n\n\t\t\t\t// root cover\n\t\t\t\toutputParent.appendChild(document.createTextNode(isArray ? \"]\" : \"}\"));\n\n\t\t\t\t// collapse\n\t\t\t\tif (isCollapse) {\n\t\t\t\t\toutputParent.querySelector(\"ul\").classList.add(\"hide\");\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// simple values\n\t\t\toutputParent.appendChild(createSimpleViewOf(value, isDate));\n\t\t}\n\t};\n\n\t/**\n\t * Create simple value (no object|array).\n\t * \n\t * @param {Number|String|null|undefined|Date} value Input value\n\t * @return {Element}\n\t */\n\tfunction createSimpleViewOf(value, isDate) {\n\t\tvar spanEl = document.createElement(\"span\");\n\t\tvar type = typeof value;\n\t\tvar asText = \"\" + value;\n\n\t\tif (type === \"string\") {\n\t\t\tasText = '\"' + value + '\"';\n\t\t} else if (value === null) {\n\t\t\ttype = \"null\";\n\t\t\t//asText = \"null\";\n\t\t} else if (isDate) {\n\t\t\ttype = \"date\";\n\t\t\tasText = value.toLocaleString();\n\t\t}\n\n\t\tspanEl.className = \"type-\" + type;\n\t\tspanEl.textContent = asText;\n\n\t\treturn spanEl;\n\t};\n\n\t/**\n\t * Create items count element.\n\t * \n\t * @param {Number} count Items count\n\t * @return {Element}\n\t */\n\tfunction _createItemsCount(count) {\n\t\tvar itemsCount = document.createElement(\"span\");\n\t\titemsCount.className = \"items-ph hide\";\n\t\titemsCount.innerHTML = _getItemsTitle(count);\n\n\t\treturn itemsCount;\n\t};\n\n\t/**\n\t * Create clickable link.\n\t * \n\t * @param {String} title Link title\n\t * @return {Element}\n\t */\n\tfunction _createLink(title) {\n\t\tvar linkEl = document.createElement(\"a\");\n\t\tlinkEl.classList.add(\"list-link\");\n\t\tlinkEl.href = \"javascript:void(0)\";\n\t\tlinkEl.innerHTML = title || \"\";\n\n\t\treturn linkEl;\n\t};\n\n\t/**\n\t * Get correct item|s title for count.\n\t * \n\t * @param {Number} count Items count\n\t * @return {String}\n\t */\n\tfunction _getItemsTitle(count) {\n\t\tvar itemsTxt = count > 1 || count === 0 ? \"items\" : \"item\";\n\n\t\treturn (count + \" \" + itemsTxt);\n\t};\n\n\treturn JSONViewer;\n})(document);\n\nexport default JSONViewer"],"sourceRoot":""}