Files
site/public/dist/ehlxr.min.js.map
2018-07-16 21:46:31 -04:00

1 line
22 KiB
Plaintext

{"version":3,"sources":["webpack:///webpack/bootstrap 1fb05230ce835dac100e","webpack:///./js/main.js","webpack:///./js/ehlxr.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","_ehlxr","$","document","ready","Ehlxr","backToTop","mobileNavbar","toc","fancybox","search","flowchart","sequence","hljs","initHighlighting","highlight","empty","searchQuery","val","css","border","color","getJSON","data","pages","fuse","Fuse","fuseOptions","result","length","append","each","key","value","contents","item","snippet","snippetHighlights","tokenize","push","matches","matchKey","mvalue","start","indices","summaryInclude","end","substring","templateDefinition","html","output","templateString","re","RegExp","replace","render","title","link","permalink","tags","categories","snipkey","snipvalue","mark","populateResults","executeSearch","$backToTop","window","scroll","scrollTop","fadeIn","fadeOut","click","animate","$mobileNav","$mobileNavIcon","slideout","Slideout","panel","getElementById","menu","padding","tolerance","disableTouch","toggle","on","addClass","removeClass","isOpen","_initToc","$toc","$toc_height","height","$footer","minScrollTop","offset","top","maxScrollTop","tocState","position","process","$toclink","$headerlink","$tocLinkLis","headerlinkTop","map","headerLinksOffsetForSearch","activeTocIndex","array","target","searchActiveTocIndex","ancestor","parentNode","tagName","this","find","wrap","src","selector","protect","blocks","querySelectorAll","block","rootElement","parentElement","lineCodes","innerHTML","split","pop","lineLength","codeLineHtml","codeHtml","className","figure","createElement","replaceChild","tocContainer","removeChild","getElementsByClassName","_refactorToc","_linkToc","oldTocList","children","newTocList","temp","links","num","headers","header","id","container","parse","childNodes","nodeValue","drawSVG","flowchartDiagramsOptions","Diagram","sequenceDiagramsOptions","theme","bind","event","keyCode","shouldSort","includeMatches","threshold","location","distance","maxPatternLength","minMatchCharLength","keys","weight"],"mappings":"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","file":"ehlxr.min.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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1fb05230ce835dac100e","import {Ehlxr} from './ehlxr.js'\n\nimport '../css/style.scss'\n\n$(document).ready(function () {\n Ehlxr.backToTop()\n Ehlxr.mobileNavbar()\n Ehlxr.toc()\n Ehlxr.fancybox()\n Ehlxr.search()\n})\n\nEhlxr.flowchart()\nEhlxr.sequence()\n\nhljs.initHighlighting()\nEhlxr.highlight()\n\n\n\n// WEBPACK FOOTER //\n// ./js/main.js","'use strict'\n\nconst Ehlxr = {}\n\nEhlxr.backToTop = function () {\n const $backToTop = $('#back-to-top')\n\n $(window).scroll(function () {\n if ($(window).scrollTop() > 100) {\n $backToTop.fadeIn(1000)\n } else {\n $backToTop.fadeOut(1000)\n }\n })\n\n $backToTop.click(function () {\n $('body,html').animate({ scrollTop: 0 })\n })\n}\n\nEhlxr.mobileNavbar = function () {\n const $mobileNav = $('#mobile-navbar')\n const $mobileNavIcon = $('.mobile-navbar-icon')\n const slideout = new Slideout({\n 'panel': document.getElementById('mobile-panel'),\n 'menu': document.getElementById('mobile-menu'),\n 'padding': 180,\n 'tolerance': 70\n })\n slideout.disableTouch()\n\n $mobileNavIcon.click(function () {\n slideout.toggle()\n })\n\n slideout.on('beforeopen', function () {\n $mobileNav.addClass('fixed-open')\n $mobileNavIcon.addClass('icon-click').removeClass('icon-out')\n })\n\n slideout.on('beforeclose', function () {\n $mobileNav.removeClass('fixed-open')\n $mobileNavIcon.addClass('icon-out').removeClass('icon-click')\n })\n\n $('#mobile-panel').on('touchend', function () {\n slideout.isOpen() && $mobileNavIcon.click()\n })\n}\n\nEhlxr._initToc = function () {\n const SPACING = 20\n const $toc = $('.post-toc')\n const $toc_height = $('.post-toc-title').height() + $('.post-toc-content').height()\n const $footer = $('.post-footer')\n\n if ($toc.length) {\n const minScrollTop = $toc.offset().top - SPACING - $('.post-header').height() -5\n const maxScrollTop = $footer.offset().top - $toc_height - SPACING - $('.toc-taxonomy').height()\n\n const tocState = {\n start: {\n 'position': 'absolute',\n 'top': minScrollTop\n },\n process: {\n 'position': 'fixed',\n 'top': SPACING\n },\n end: {\n 'position': 'absolute',\n 'top': maxScrollTop\n }\n }\n\n $(window).scroll(function () {\n const scrollTop = $(window).scrollTop()\n\n if (scrollTop < minScrollTop) {\n $toc.css(tocState.start)\n } else if (scrollTop > maxScrollTop) {\n $toc.css(tocState.end)\n } else {\n $toc.css(tocState.process)\n }\n })\n }\n\n const HEADERFIX = 30\n const $toclink = $('.toc-link')\n const $headerlink = $('.headerlink')\n const $tocLinkLis = $('.post-toc-content li')\n\n const headerlinkTop = $.map($headerlink, function (link) {\n return $(link).offset().top\n })\n\n const headerLinksOffsetForSearch = $.map(headerlinkTop, function (offset) {\n return offset - HEADERFIX\n })\n\n const searchActiveTocIndex = function (array, target) {\n for (let i = 0; i < array.length - 1; i++) {\n if (target > array[i] && target <= array[i + 1]) return i\n }\n if (target > array[array.length - 1]) return array.length - 1\n return -1\n }\n\n $(window).scroll(function () {\n const scrollTop = $(window).scrollTop()\n const activeTocIndex = searchActiveTocIndex(headerLinksOffsetForSearch, scrollTop)\n\n $($toclink).removeClass('active')\n $($tocLinkLis).removeClass('has-active')\n\n if (activeTocIndex !== -1) {\n $($toclink[activeTocIndex]).addClass('active')\n let ancestor = $toclink[activeTocIndex].parentNode\n while (ancestor.tagName !== 'NAV') {\n $(ancestor).addClass('has-active')\n ancestor = ancestor.parentNode.parentNode\n }\n }\n })\n}\n\nEhlxr.fancybox = function () {\n if ($.fancybox) {\n $('.post-content').each(function () {\n $(this).find('img').each(function () {\n $(this).wrap(`<a class=\"fancybox\" href=\"${this.src}\" data-fancybox=\"gallery\" data-caption=\"${this.title}\"></a>`)\n })\n })\n\n $('.fancybox').fancybox({\n selector: '.fancybox',\n protect: true\n })\n }\n}\n\nEhlxr.highlight = function () {\n const blocks = document.querySelectorAll('pre code')\n for (let i = 0; i < blocks.length; i++) {\n const block = blocks[i]\n const rootElement = block.parentElement\n const lineCodes = block.innerHTML.split(/\\n/)\n if (lineCodes[lineCodes.length - 1] === '') lineCodes.pop()\n const lineLength = lineCodes.length\n\n let codeLineHtml = ''\n for (let i = 0; i < lineLength; i++) {\n codeLineHtml += `<div class=\"line\">${i + 1}</div>`\n }\n\n let codeHtml = ''\n for (let i = 0; i < lineLength; i++) {\n codeHtml += `<div class=\"line\">${lineCodes[i]}</div>`\n }\n\n block.className += ' highlight'\n const figure = document.createElement('figure')\n figure.className = block.className\n figure.innerHTML = `<table><tbody><tr><td class=\"gutter\"><pre>${codeLineHtml}</pre></td><td class=\"code\"><pre>${codeHtml}</pre></td></tr></tbody></table>`\n\n rootElement.parentElement.replaceChild(figure, rootElement)\n }\n}\n\nEhlxr.toc = function () {\n const tocContainer = document.getElementById('post-toc')\n if (tocContainer !== null) {\n const toc = document.getElementById('TableOfContents')\n if (toc === null) {\n // toc = true, but there are no headings\n // tocContainer.parentNode.removeChild(tocContainer)\n // document.getElementById(\"sidebar\").style.display = \"\";\n tocContainer.removeChild(document.getElementsByClassName('post-toc-title')[0]);\n tocContainer.removeChild(document.getElementsByClassName('post-toc-content')[0]);\n } else {\n this._refactorToc(toc)\n this._linkToc()\n this._initToc()\n }\n }\n}\n\nEhlxr._refactorToc = function (toc) {\n // when headings do not start with `h1`\n const oldTocList = toc.children[0]\n let newTocList = oldTocList\n let temp\n while (newTocList.children.length === 1 && (temp = newTocList.children[0].children[0]).tagName === 'UL') newTocList = temp\n\n if (newTocList !== oldTocList) toc.replaceChild(newTocList, oldTocList)\n}\n\nEhlxr._linkToc = function () {\n const links = document.querySelectorAll('#TableOfContents a:first-child')\n for (let i = 0; i < links.length; i++) links[i].className += ' toc-link'\n\n for (let num = 1; num <= 6; num++) {\n const headers = document.querySelectorAll('.post-content>h' + num)\n for (let i = 0; i < headers.length; i++) {\n const header = headers[i]\n header.innerHTML = `<a href=\"#${header.id}\" class=\"headerlink\"></a>${header.innerHTML}`\n }\n }\n}\n\nEhlxr.flowchart = function () {\n if (!window.flowchart) return\n\n const blocks = document.querySelectorAll('pre code.language-flowchart')\n for (let i = 0; i < blocks.length; i++) {\n const block = blocks[i]\n const rootElement = block.parentElement\n\n const container = document.createElement('div')\n const id = `js-flowchart-diagrams-${i}`\n container.id = id\n container.className = 'align-center'\n rootElement.parentElement.replaceChild(container, rootElement)\n\n const diagram = flowchart.parse(block.childNodes[0].nodeValue)\n diagram.drawSVG(id, window.flowchartDiagramsOptions ? window.flowchartDiagramsOptions : {})\n }\n}\n\nEhlxr.sequence = function () {\n if (!window.Diagram) return\n\n const blocks = document.querySelectorAll('pre code.language-sequence')\n for (let i = 0; i < blocks.length; i++) {\n const block = blocks[i]\n const rootElement = block.parentElement\n\n const container = document.createElement('div')\n const id = `js-sequence-diagrams-${i}`\n container.id = id\n container.className = 'align-center'\n rootElement.parentElement.replaceChild(container, rootElement)\n\n const diagram = Diagram.parse(block.childNodes[0].nodeValue)\n diagram.drawSVG(id, window.sequenceDiagramsOptions ? window.sequenceDiagramsOptions : {theme: 'simple'})\n }\n}\n\nEhlxr.search = function () {\n $('#search-query').bind('keypress', function (event) {\n if (event.keyCode == \"13\") {\n search();\n }\n }).on(\"click\", function () {\n $('#search-query').css({ border: \"1px solid #D5D5D5\", color: \"black\" });\n }).on('keyup', function () {\n search();\n });\n\n $('#query-icon').on(\"click\", function () {\n search();\n });\n}\n\n\nfunction search() {\n $('#search-results').empty();\n var searchQuery = $('#search-query').val();\n if (searchQuery) {\n $('#search-query').css({ border: \"1px solid #D5D5D5\", color: \"black\" });\n executeSearch(searchQuery);\n } else {\n $('#search-query').css({ border: \"1px solid #ff0000\", color: \"#ff0000\" });\n $('#search-results').append(\"Please enter a word or phrase above\");\n }\n}\n\nvar summaryInclude = 60;\nvar fuseOptions = {\n shouldSort: true,\n includeMatches: true,\n threshold: 0.0,\n tokenize: true,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 1,\n keys: [\n { name: \"title\", weight: 0.8 },\n { name: \"contents\", weight: 0.9 },\n { name: \"tags\", weight: 0.3 },\n { name: \"categories\", weight: 0.3 }\n ]\n};\n\nfunction executeSearch(searchQuery) {\n $.getJSON(\"/index.json\", function (data) {\n var pages = data;\n var fuse = new Fuse(pages, fuseOptions);\n var result = fuse.search(searchQuery);\n if (result.length > 0) {\n $('#search-results').append(\"<ul></ul>\");\n populateResults(result, searchQuery);\n } else {\n $('#search-results').append(\"<p>No matches found</p>\");\n }\n });\n}\n\nfunction populateResults(result, searchQuery) {\n $.each(result, function (key, value) {\n var contents = value.item.contents;\n var snippet = \"\";\n var snippetHighlights = [];\n var tags = [];\n if (fuseOptions.tokenize) {\n snippetHighlights.push(searchQuery);\n } else {\n $.each(value.matches, function (matchKey, mvalue) {\n if (mvalue.key == \"tags\" || mvalue.key == \"categories\") {\n snippetHighlights.push(mvalue.value);\n } else if (mvalue.key == \"contents\") {\n start = mvalue.indices[0][0] - summaryInclude > 0 ? mvalue.indices[0][0] - summaryInclude : 0;\n end = mvalue.indices[0][1] + summaryInclude < contents.length ? mvalue.indices[0][1] + summaryInclude : contents.length;\n snippet += contents.substring(start, end);\n snippetHighlights.push(mvalue.value.substring(mvalue.indices[0][0], mvalue.indices[0][1] - mvalue.indices[0][0] + 1));\n }\n });\n }\n\n if (snippet.length < 1) {\n snippet += contents.substring(0, summaryInclude * 2);\n }\n //pull template from hugo templarte definition\n var templateDefinition = $('#search-result-template').html();\n //replace values\n var output = render(templateDefinition, { key: key, title: value.item.title, link: value.item.permalink, tags: value.item.tags, categories: value.item.categories, snippet: snippet });\n $('#search-results ul').append(output);\n\n $.each(snippetHighlights, function (snipkey, snipvalue) {\n $(\"#summary-\" + key).mark(snipvalue);\n });\n\n });\n}\n\nfunction render(templateString, data) {\n var key, find, re;\n for (key in data) {\n find = '\\\\$\\\\{\\\\s*' + key + '\\\\s*\\\\}';\n re = new RegExp(find, 'g');\n templateString = templateString.replace(re, data[key]);\n }\n return templateString;\n}\n\nexport {Ehlxr}\n\n\n\n// WEBPACK FOOTER //\n// ./js/ehlxr.js"],"sourceRoot":""}