{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack:///./node_modules/hocr-dom/src/dom.js","webpack:///./node_modules/hocr-dom/src/index.js","webpack:///./node_modules/hocr-dom/src/property-parser.js","webpack:///./src/components/HocrToolbar/style.scss","webpack:///./src/components/HocrViewer/style.scss","webpack:///./src/components/HocrToolbar/style.scss?9beb","webpack:///./src/components/HocrViewer/style.scss?cd77","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///./src/components/HocrViewer/template.html","webpack:///./src/components/HocrToolbar/template.html","webpack:///./src/components/HocrToolbar/script.js","webpack:///./src/components/HocrToolbar/script.js?a4e0","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./src/components/HocrToolbar/index.vue","webpack:///./src/store/state.js","webpack:///./src/components/HocrViewer/feature/BackgroundImage.js","webpack:///./src/components/HocrViewer/feature/ContentEditable.js","webpack:///./src/utils.js","webpack:///./src/components/HocrViewer/feature/index.js","webpack:///./src/components/HocrViewer/feature/Font.js","webpack:///./src/components/HocrViewer/feature/HighlightBlank.js","webpack:///./src/components/HocrViewer/feature/Layout.js","webpack:///./src/components/HocrViewer/feature/ScaleFont.js","webpack:///./src/components/HocrViewer/feature/Tooltip.js","webpack:///./src/components/HocrViewer/script.js?29f9","webpack:///./src/components/HocrViewer/script.js","webpack:///./src/components/HocrViewer/index.vue","webpack:///./src/components/index.js"],"names":["root","factory","exports","module","define","amd","self","cssWithMappingToString","list","toString","this","map","item","content","concat","join","i","modules","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","push","_arrayLikeToArray","arr","len","arr2","Array","_item","isArray","_arrayWithHoles","Symbol","iterator","Object","_arr","_n","_d","_e","undefined","_s","next","done","value","err","_iterableToArrayLimit","o","minLen","n","prototype","call","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","log","options","args","debug","console","Date","defaultPropertyParser","require","HocrDOM","context","cache","_isHocrElement","classList","find","cls","startsWith","propertyParser","_hocr","isHocrElement","parse","getAttribute","queryHocrAll","query","class","tag","clauses","title","qs","indexOf","nodeList","querySelectorAll","set","terminal","filter","el","querySelector","nonTerminal","create","Element","Document","forEach","p","fn","defineProperty","enumerable","writable","get","getHocrProperties","_initialized","HocrPropertyParser","SEPARATOR","opts","assign","allowUnknown","allowUnknownEngineSpecific","allowInvalidNumbers","disableCardinalityChecks","parsers","numberParser","parseFloat","parseInt","min","stringParser","collapse","arg","split","booleanParser","max","minLength","modulo","checkCardinality","maxLength","Number","MAX_VALUE","Error","cardinality","Boolean","valueOf","fns","parsed","isNaN","s","tokens","tokenize","propertyMap","parser","propertyName","j","propertyArgs","doubleQuoteOpen","singleQuoteOpen","buf","cur","flush","prev","match","___CSS_LOADER_EXPORT___","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","getter","__esModule","d","a","definition","key","obj","prop","hasOwnProperty","r","toStringTag","render","_vm","_h","$createElement","_c","_self","enableToolbar","attrs","expandedInitial","expandToolbar","_v","staticClass","style","containerStyle","domProps","innerHTML","hocrDom","_withStripped","on","click","toggle","_m","disabled","$parent","currentPageIdx","prevPage","lastPageIdx","nextPage","open","_l","keys","featuresAvailable","featureName","checked","isFeatureEnabled","$event","toggleFeature","type","currentZoomRounded","zoom","step","currentZoom","change","target","fontFamily","fontsAvailable","fontOptions","fontName","computed","expanded","props","default","methods","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","component","__file","features","disableEmStrong","enabled","contentEditable","tooltips","styleId","transparentText","BackgroundImage","imagePrefix","dom","page","imageFile","image","backgroundImage","ContentEditable","setAttribute","addEventListener","$emit","Utils","css","document","remove","createElement","head","appendChild","createTextNode","Font","font","cssUrl","addCssFragment","HighlightBlank","trim","Layout","bbox","position","left","top","width","height","ScaleFont","fonts","minFontSize","wrapClass","wrap","time","body","scaleFont","timeEnd","text","textContent","replace","fontSize","fontSizeH","offsetHeight","fontSizeW","offsetWidth","Tooltip","ocrClasses","components","HocrToolbar","hocr","String","required","initialZoom","featureBackgroundImage","featureContentEditable","featureFont","featureLayout","featureScaleFont","featureTransparentText","featureTooltip","featureHighlight","featureHighlightPage","featureHighlightNotPage","featureHighlightBlank","featureHighlightInlineNotBlank","featureHighlightInlineBlank","featureHighlightLine","featureHighlightPar","featureHighlightCarea","featureDisableEmStrong","serif","monospace","UnifrakturCook","UnifrakturMaguntia","Cardo","enableLayout","config","defaultConfig","featuresEnabled","$props","k","ret","shadowDom","currentPage","pages","warn","pageHeight","transform","includes","featureClass","outerHTML","apply","Math","floor","mounted","splice","scaleFactor","container","$el","window","innerHeight","innerWidth","error","HocrViewer","HocrViewerStyle","HocrToolbarStyle"],"mappings":"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","file":"vue-hocr.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VueHocr\"] = factory();\n\telse\n\t\troot[\"VueHocr\"] = factory();\n})(self, function() {\nreturn ","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = cssWithMappingToString(item);\n\n      if (item[2]) {\n        return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n      }\n\n      return content;\n    }).join(\"\");\n  }; // import a list of modules into the list\n  // eslint-disable-next-line func-names\n\n\n  list.i = function (modules, mediaQuery, dedupe) {\n    if (typeof modules === \"string\") {\n      // eslint-disable-next-line no-param-reassign\n      modules = [[null, modules, \"\"]];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var i = 0; i < this.length; i++) {\n        // eslint-disable-next-line prefer-destructuring\n        var id = this[i][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _i = 0; _i < modules.length; _i++) {\n      var item = [].concat(modules[_i]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n\n      if (mediaQuery) {\n        if (!item[2]) {\n          item[2] = mediaQuery;\n        } else {\n          item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n  var _item = _slicedToArray(item, 4),\n      content = _item[1],\n      cssMapping = _item[3];\n\n  if (typeof btoa === \"function\") {\n    // eslint-disable-next-line no-undef\n    var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n    var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n    var sourceMapping = \"/*# \".concat(data, \" */\");\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n  }\n\n  return [content].join(\"\\n\");\n};","const HocrPropertyParser = require('./property-parser')\n\n/**\n * ### HocrDOM\n * \n */\n\nfunction log(options, ...args) {\n  if (!options.debug) return\n  console.log('# ', new Date(), ...args)\n}\n\nconst defaultPropertyParser = new HocrPropertyParser()\n\nclass HocrDOM {\n\n  /**\n   * #### Options\n   * \n   * All boolean options are `false` by default\n   * - `{Boolean} debug` Whether to log debug output\n   * - `{Boolean} allowUnknown` Whether to silently ignore properties not in the spec\n   * - `{Boolean} allowInvalidNumbers` Whether to silently ignore invalid number (wrong type e.g.)\n   * - `{Boolean} disableCardinalityChecks` Whether to silently ignore invalid argument cardinality\n   * - `{PropertyParser} propertyParser` PropertyParser instance to use. Static parser with default values used otherwise\n   * \n   */\n\n  /**\n   * #### `HocrDOM.isHocrElement(context, options, cache)`\n   * \n   * `true` if this has an `ocr_*` class, `false` otherwise\n   * \n   * - `@param {Document|Element}` context Context element\n   * - `@param {Object}` options See [Options](#options)\n   * - `@param {Object}` cache If provided, will cache the properties in this object with key `_hocr`\n   * \n   */\n  static isHocrElement(context, options, cache={}) {\n    if (cache._isHocrElement === undefined) {\n      cache._isHocrElement = !! Array.from(context.classList).find(cls => cls.startsWith('ocr'))\n    }\n    return cache._isHocrElement\n  }\n\n  /**\n   * #### `HocrDOM.getHocrProperties(context, options, cache)`\n   * \n   * List the properties of this hOCR element as an object\n   *\n   * - `@param {Document|Element}` context Context element\n   * - `@param {Object}` options See [Options](#options)\n   * - `@param {Object}` cache If provided, will cache the properties in this object with key `_hocr`\n   * \n   */\n  static getHocrProperties(context, options={}, cache={}) {\n    let {propertyParser} = options\n    if (!propertyParser) propertyParser = defaultPropertyParser\n    if (!cache._hocr) {\n      if (!HocrDOM.isHocrElement(context, options, cache)) {\n        cache._hocr = {}\n      } else {\n        cache._hocr = propertyParser.parse(context.getAttribute('title'))\n      }\n    }\n    return cache._hocr\n  }\n\n  /**\n   * #### `HocrDOM.queryHocr(context, query, options)`\n   * \n   * Find the first hOCR element matching query\n   * \n   * See [queryHocrAll](#queryhocrallquery) for options\n   * \n   */\n  static queryHocr(...args) {\n    return Array.from(HocrDOM.queryHocrAll(...args))[0]\n  }\n\n  /**\n   * #### `HocrDOM.queryHocrAll(context, query, options)`\n   * \n   * - `@param {Document|Element}` context Context element\n   * - `@param {String|Object}` query Object of query parameters. If a string -> query.class\n   *   - `@param {String} query.tag` tag names to look for. Default '*'\n   *   - `@param {String} query.title` `title` attribute must contain this string\n   *   - `@param {String} query.clauses` String of clauses for querySelector\n   *   - `@param {String|Array}` class Elements with this class (if string) or any of these classes (if array)\n   *   - `@param {String} query.context` context element to query below. Otherwise root element of DOM.\n   *   - `@param {String} query.terminal` Return only hocr-elements containing no hocr-elements themselves\n   *   - `@param {String} query.nonTerminal` Opposite of `terminal`\n   *   - `@param {String} query.filter` Arbitrary filter to prune resulting element set\n   * \n   */\n  static queryHocrAll(context, query={}, options={}) {\n\n    if (Array.isArray(query) || typeof query === 'string') query = {class: query}\n    query.tag = (query.tag || '*')\n    query.clauses = (query.clauses || '')\n\n    // Return only hocr-elements with a bbox\n    if (query.title) query.clauses += `[title*=\"${query.title}\"]`\n\n    // Return specific ocr_* / ocrx_* classes\n    query.class = (query.class || '')\n    if (typeof query.class === 'string') query.class = [query.class]\n\n    // Build querySelectorAll query\n    let qs = query.class.map(function(cls) {\n      if (cls.indexOf('ocr') === 0) return cls\n      if (cls === '') return 'ocr'\n      if (cls.indexOf('x_') !== 0) return `ocr_${cls}`\n      return `ocr${cls}`\n    }).map(function(cls) {\n      return `${query.tag}[class^=\"${cls}\"]${query.clauses}`\n    }).join(',')\n\n    log(options, \"findByOcrClass:\", qs)\n\n    // let set = Array.prototype.slice.call(context.querySelectorAll(qs))\n    const nodeList = context.querySelectorAll(qs)\n    let set = Array.from(nodeList)\n\n    if (query.terminal) {\n      set = set.filter(function(el) {\n        if (!el.querySelector('*[class^=\"ocr\"]')) return el\n      })\n    }\n    if (query.nonTerminal) {\n      set = set.filter(function(el) {\n        if (el.querySelector('*[class^=\"ocr\"]')) return el\n      })\n    }\n\n    // Arbitrary filter function\n    if (query.filter) {\n      log(options, {query})\n      set = set.filter(query.filter)\n    }\n\n    return Object.create(set, nodeList.prototype)\n  }\n\n  /**\n   * #### `HocrDOM.extendPrototypes({Element, Document}, options)`\n   * \n   * Extend the prototypes of `Element` and `Document` with hOCR-specific\n   * methods and properties.\n   *\n   * ##### `el.queryHocr(query, options)`\n   * \n   * Same as [`HocrDOM.queryHocr`]() but with context set to `el`\n   * \n   * ##### `el.queryHocrAll(query, options)`\n   * \n   * Same as [`HocrDOM.queryHocrAll`]() but with context set to `el`\n   * \n   * ##### `el.isHocrElement`\n   * \n   * Property containing whether this is an hOCR element\n   * \n   * ##### `el.hocr`\n   * \n   * Property containing the hOCR properties\n   * \n   */\n  static extendPrototypes({Element, Document}, options) {\n\n    ;[Element.prototype, Document.prototype].forEach(p => {\n      ;['queryHocr', 'queryHocrAll'].forEach(fn => {\n        p[fn] = function (query={}, options) {\n          const context = (query.context || this)\n          return HocrDOM[fn](context, query, options)\n        }\n      })\n\n      Object.defineProperty(p, '_hocr', {enumerable: false, writable: true})\n      Object.defineProperty(p, 'hocr', {get() {return HocrDOM.getHocrProperties(this, options, this)}})\n\n      Object.defineProperty(p, '_isHocrElement', {enumerable: true, writable: true})\n      Object.defineProperty(p, 'isHocrElement', {get() {return HocrDOM.isHocrElement(this, options, this)}})\n    })\n\n    HocrDOM._initialized = true\n  }\n\n\n}\n\nmodule.exports = HocrDOM\n","const HocrDOM = require('./dom')\nconst HocrPropertyParser = require('./property-parser')\n\nmodule.exports = {HocrDOM, HocrPropertyParser}\n","/**\n * ### PropertyParser\n * \n */\n\nconst SEPARATOR = ';'\n\nmodule.exports = class HocrPropertyParser {\n\n    /**\n     * #### `new HocrPropertyParser(opts)`\n     * \n     * - `@param {Object} opts` All options are `false` by default\n     *   - `@param {Object} opts.debug` Whether to log debug output\n     *   - `@param {Object} opts.allowUnknown` Whether to silently ignore properties not in the spec\n     *   - `@param {Object} opts.allowInvalidNumbers` Whether to silently ignore invalid number (wrong type e.g.)\n     *   - `@param {Object} opts.disableCardinalityChecks` Whether to silently ignore invalid argument cardinality\n     * \n     */\n    constructor(opts={}) {\n        Object.assign(this, {\n            debug: false,\n            allowUnknown: false,\n            allowUnknownEngineSpecific: true,\n            allowInvalidNumbers: false,\n            disableCardinalityChecks: false,\n        }, opts)\n        this.parsers = {\n            'baseline': this.numberParser([parseFloat, parseInt]),\n            'bbox': this.numberParser(parseInt, {min:0}, {length:4}),\n            'cflow': this.stringParser({collapse:true}),\n            'cuts': (args) => { return args.map((arg) => {\n                return this.numberParser(parseInt)(arg.split(','))\n            })},\n            'hardbreak': this.booleanParser({collapse:true}),\n            'image': this.stringParser({collapse: true}),\n            'imagemd5': this.stringParser({collapse: true}),\n            'lpageno': this.stringParser({collapse: true}),\n            'ppageno': this.numberParser(parseInt, {min: 0}, {collapse: true}),\n            'nlp': this.numberParser(parseFloat, {min: 0, max: 100}),\n            'order': this.numberParser(parseInt, {min: 0}, {collapse: true}),\n            'poly': this.numberParser(parseInt, {min: 0}, {minLength: 4, modulo: 2}),\n            'scan_res': this.numberParser(parseInt, {min: 0}),\n            'textangle': this.numberParser(parseFloat, {}, {collapse: true}),\n            'x_bboxes': this.numberParser(parseInt, {min:0}),\n            'x_font': this.stringParser({collapse:true}),\n            'x_fsize': this.numberParser(parseInt, {min:0}),\n            'x_confs': this.numberParser(parseFloat, {min:0, max:100}),\n            'x_scanner': this.stringParser(),\n            'x_source': this.stringParser(),\n            'x_wconf': this.numberParser(parseFloat, {min:0, max:100}),\n        }\n    }\n\n    checkCardinality(args, {\n        length = -1,\n        modulo = -1,\n        collapse = false,\n        minLength = 0,\n        maxLength = Number.MAX_VALUE,\n    }) {\n        if (this.disableCardinalityChecks) {\n            return args\n        }\n        if (collapse) length = 1\n        if (length > -1 && args.length != length)\n            throw Error(`Incorrect number of arguments (${args.length} != ${length})`)\n        if (modulo > -1 && length % modulo > 0)\n            throw Error(`Number of arguments not a multiple of ${modulo} (${args.length})`)\n        if (collapse) return args[0]\n        if (args.length < minLength)\n            throw Error(`Not enough arguments (${args.length} < ${minLength})`)\n        if (args.length > maxLength)\n            throw Error(`Too many arguments (${args.length} > ${minLength})`)\n        return args\n    }\n\n    booleanParser(cardinality={}) {\n        return (args) => {\n            return this.checkCardinality(args.map((arg) => {\n                return Boolean.valueOf()(arg)\n            }), cardinality)\n        }\n    }\n\n    stringParser(cardinality={}) {\n        return (args) => {\n            return this.checkCardinality(args, cardinality)\n        }\n    }\n\n    numberParser(fns, {\n        min = -Number.MAX_VALUE,\n        max = Number.MAX_VALUE,\n    } = {}, cardinality={}) {\n        if (!Array.isArray(fns)) fns = [fns]\n        return (args) => {\n            let i = 0\n            return this.checkCardinality(args.map((arg) => {\n                let parsed = fns[i++ % fns.length](arg)\n                if (!this.allowInvalidNumbers) {\n                    if (Number.isNaN(parsed))\n                        throw Error(`Not a number: '${arg}'`)\n                    else if (parsed < min || parsed > max)\n                        throw Error(`Not in range [${min}..${max}]: '${arg}'`)\n                }\n                return parsed\n            }), cardinality)\n        }\n    }\n\n    /**\n     * #### `parse(str)`\n     * \n     * Tokenize and Parse the hOCR properties in a title string\n     * \n     */\n    parse(s) {\n        let tokens = this.tokenize(s)\n        if (this.debug) console.log(`tokenize('${s})`, tokens)\n        let propertyMap = {}\n        for (let i = 0; i < tokens.length; i++) {\n            let propertyName = tokens[i]\n            let parser\n            if (propertyName in this.parsers) {\n                parser = this.parsers[propertyName]\n            } else {\n              if (this.allowUnknown || (propertyName.startsWith('x_') && this.allowUnknownEngineSpecific)) {\n                  parser = this.stringParser()\n              } else {\n                throw Error(`Unknown property '${propertyName}' in '${s}'`)\n              }\n            }\n            let propertyArgs = []\n            let j\n            for (j = i + 1; j < tokens.length; j++) {\n                if (tokens[j] === SEPARATOR) break\n                propertyArgs.push(tokens[j])\n            }\n            i = j\n            try {\n                propertyArgs = parser(propertyArgs)\n            } catch (err) {\n                console.log(`Parse error in '${s}'`)\n                throw err\n            }\n            propertyMap[propertyName] = propertyArgs\n        }\n        if (this.debug) console.log(`propertyMap`, propertyMap)\n        return propertyMap\n    }\n\n    tokenize(s) {\n        let tokens = []\n        let arr = s.split('')\n        let doubleQuoteOpen = false\n        let singleQuoteOpen = false\n        let buf = []\n        let cur = ''\n        let flush = () => { tokens.push(buf.join('')); buf = [] }\n        let append = () => { buf.push(cur) }\n        for (let i = 0; i < arr.length; i++) {\n            let prev = i>0 ? arr[i-1] : ''\n            cur = arr[i]\n            if (cur === \"'\" && prev != '\\\\' && !doubleQuoteOpen) {\n                if (singleQuoteOpen) flush()\n                singleQuoteOpen = !singleQuoteOpen\n            } else if (cur === '\"' && prev != '\\\\' && !singleQuoteOpen) {\n                if (doubleQuoteOpen) flush()\n                doubleQuoteOpen = !doubleQuoteOpen\n            } else if (!singleQuoteOpen && !doubleQuoteOpen && cur === SEPARATOR) {\n                if (buf.length > 0) flush()\n                if (tokens[tokens.length-1] !== SEPARATOR) tokens.push(SEPARATOR)\n            } else if (!singleQuoteOpen && !doubleQuoteOpen && cur.match(/\\s/)) {\n               if (buf.length > 0) flush()\n            } else {\n                append()\n            }\n        }\n        if (buf.length > 0)\n            flush()\n        return tokens\n    }\n}\n\n// vim: sw=4\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".hocrjs-toolbar{position:fixed;z-index:1;top:0;height:100%;border:none}.hocrjs-toolbar .toggler{float:left;position:fixed;left:0;font-family:monospace;color:#fff;background:#333;height:100vh;width:1em}.hocrjs-toolbar .toggler .toggler-inner{font-size:1.5em;top:40vh;position:fixed}.hocrjs-toolbar .toggler .toggler-hide{display:none}.hocrjs-toolbar .toggler .toggler-show{display:block}.hocrjs-toolbar .wrapper{position:fixed;margin-left:1em;background-color:rgba(180,180,190,0.85);overflow:hidden;left:-32em;transition:all 0.5s ease;height:100vh}.hocrjs-toolbar.expanded{border-right:3px solid #333}.hocrjs-toolbar.expanded .wrapper{padding-left:.5em;padding-right:.5em;width:15em;left:0}.hocrjs-toolbar.expanded .toggler-show{display:none}.hocrjs-toolbar.expanded .toggler-hide{display:block}.hocrjs-toolbar ul.features{list-style-type:none;padding:0}.hocrjs-toolbar ul.features li{background-color:#fcc;margin-bottom:2px;padding:5px 0}.hocrjs-toolbar ul.features li:before{content:'✗ '}.hocrjs-toolbar ul.features li.checked{background-color:#cfc}.hocrjs-toolbar ul.features li.checked:before{content:'✓ '}.hocrjs-toolbar ul.features li input[type='checkbox']{display:none}.hocrjs-toolbar ul.features li label{width:100%}.hocrjs-toolbar summary{font-size:120%}.hocrjs-toolbar summary span.font{font-size:100%}.hocrjs-toolbar select.font{width:80%;font-size:110%}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/HocrToolbar/style.scss\",\"webpack://./src/_variables.scss\"],\"names\":[],\"mappings\":\"AAEA,gBACE,cAAe,CACf,SAAU,CACV,KAAM,CACN,WAAY,CACZ,WAAY,CALd,yBAOI,UAAW,CACX,cAAe,CACf,MAAO,CACP,qBAAsB,CACtB,UCSyB,CDRzB,eCSuB,CDRvB,YAAa,CACb,SAAU,CAdd,wCAgBM,eAAgB,CAChB,QAAS,CACT,cAAe,CAlBrB,uCAoBoB,YAAY,CApBhC,uCAqBoB,aAAa,CArBjC,yBAwBI,cAAe,CACf,eAAgB,CAChB,uCCPqC,CDQrC,eAAgB,CAChB,UAAW,CACX,wBAAyB,CACzB,YAAa,CA9BjB,yBAiCI,2BCZuB,CDrB3B,kCAmCM,iBAAkB,CAClB,kBAAmB,CACnB,UAAW,CACX,MAAO,CAtCb,uCAwCoB,YAAY,CAxChC,uCAyCoB,aAAa,CAzCjC,4BA4CI,oBAAqB,CACrB,SAAU,CA7Cd,+BAgDM,qBC/BmB,CDgCnB,iBAAkB,CAClB,aAAc,CAlDpB,sCAmDiB,YAAS,CAAK,uCAChB,qBClCC,CAAO,8CDoCP,YAAY,CAAA,sDAEhB,YAA4B,CAAA,qCAClC,UAAe,CAAA,wBAMnB,cACa,CAAA,kCACP,cACS,CAAA,4BAGT,SACG,CAAA,cACI\",\"sourcesContent\":[\"@import '../../variables';\\n\\n.hocrjs-toolbar {\\n  position: fixed;\\n  z-index: 1;\\n  top: 0;\\n  height: 100%;\\n  border: none;\\n  .toggler {\\n    float: left;\\n    position: fixed;\\n    left: 0;\\n    font-family: monospace;\\n    color: $color-toolbar-toggler;\\n    background: $color-toolbar-border;\\n    height: 100vh;\\n    width: 1em;\\n    .toggler-inner {\\n      font-size: 1.5em;\\n      top: 40vh;\\n      position: fixed;\\n    }\\n    .toggler-hide { display:none; }\\n    .toggler-show { display:block; }\\n  }\\n  .wrapper {\\n    position: fixed;\\n    margin-left: 1em;\\n    background-color: $color-toolbar-bg;\\n    overflow: hidden;\\n    left: -32em;\\n    transition: all 0.5s ease;\\n    height: 100vh;\\n  }\\n  &.expanded {\\n    border-right: $border-width solid $color-toolbar-border;\\n    .wrapper { \\n      padding-left: .5em;\\n      padding-right: .5em;\\n      width: 15em;\\n      left: 0;\\n    }\\n    .toggler-show { display:none; }\\n    .toggler-hide { display:block; }\\n  }\\n  ul.features {\\n    list-style-type: none;\\n    padding: 0;\\n    // width: 19em;\\n    li {\\n      background-color: $color-unchecked;\\n      margin-bottom: 2px;\\n      padding: 5px 0;\\n      &:before { content: '✗ '; }\\n      &.checked {\\n        background-color: $color-checked;\\n        &:before { content: '✓ '; }\\n      }\\n      input[type='checkbox'] { display: none; }\\n      label { width: 100%; }\\n    }\\n  }\\n  input.zoom {\\n    // width: 19em;\\n  }\\n  summary {\\n    font-size: 120%;\\n    span.font {\\n      font-size: 100%;\\n    }\\n  }\\n  select.font {\\n    width: 80%;\\n    font-size: 110%;\\n  }\\n}\\n\\n\",\"/*\\n * Copyright (c) 2016-2017 Konstantin Baierer\\n *\\n * This software may be modified and distributed under the terms\\n * of the MIT license.  See the LICENSE file for details.\\n */\\n\\n$selector-ocr-page: '.ocr_page';\\n$selector-ocr-classes: '*[class^=\\\"ocr\\\"]';\\n$selector-ocr-line: '#{$selector-ocr-classes}[class*=\\\"line\\\"]';\\n$selector-ocr-par: '.ocr_par';\\n$selector-ocr-carea: '.ocr_carea';\\n$selector-ocr-blank: '#{$selector-ocr-classes}.hocrjs-blank';\\n$selector-ocr-inline-not-blank: '.ocr_line #{$selector-ocr-classes}:not(.hocrjs-blank)';\\n$selector-ocr-inline-blank: '.ocr_line #{$selector-ocr-classes}.hocrjs-blank';\\n$selector-ocr-not-page: '#{$selector-ocr-classes}:not(.ocr_page)';\\n\\n$border-width: 3px;\\n$color-transparent: rgba(0,0,0,0);\\n$color-unchecked: #ffcccc;\\n$color-checked: #ccffcc;\\n$color-toolbar-bg: rgba(180,180,190,0.85);\\n$color-toolbar-toggler: white;\\n$color-toolbar-border: #333;\\n\\n$color-highlight-page: #8B4513;\\n$color-highlight-not-page: red;\\n$color-highlight-inline-not-blank: green;\\n$color-highlight-inline-blank: lighten(green, 30%);\\n$color-highlight-carea: blue;\\n$color-highlight-par: purple;\\n$color-highlight-line: gold;\\n\\n@mixin transform($args) {\\n  -webkit-transform: $args;\\n  -ms-transform: $args;\\n  transform: $args;\\n}\\n\\n@mixin tooltip {\\n  display: block;\\n  background: white;\\n  color: black !important;\\n  border: 1px solid black;\\n  font-family: monospace;\\n  position: absolute;\\n  font-size: 12px;\\n  font-weight: bold;\\n  line-height: 100%;\\n  height: 15px;\\n  top: -15px;\\n}\\n\\n@mixin highlight-area($selector, $color) {\\n  #{$selector} {\\n    border: $border-width solid $color;\\n    &:hover {\\n      background: rgba(lighten($color, 30%), 0.2);\\n    }\\n  }\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".hocr-viewer.hocr-viewer-toolbar-enabled>.hocr-viewer-container{transform:rotate(0);margin-left:1em}.hocr-viewer .hocr-viewer-container{min-height:100vh;position:relative !important;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.hocr-viewer .hocr-viewer-container>div{overflow:auto}.hocr-viewer .hocr-viewer-container p{margin:0}.hocr-viewer *[class^=\\\"ocr\\\"]:hover::before{display:none}.hocr-viewer.hocr-viewer-feature-Layout *[class^=\\\"ocr\\\"]{position:fixed;white-space:nowrap;justify-content:left;align-items:center}.hocr-viewer.hocr-viewer-feature-Layout.hocr-viewer-feature-Tooltip *[class^=\\\"ocr\\\"]:hover::before{display:block;background:white;color:black !important;border:1px solid black;font-family:monospace;position:absolute;font-size:12px;font-weight:bold;line-height:100%;height:15px;top:-15px}.hocr-viewer.hocr-viewer-feature-Highlight{margin:-1px}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightNotPage *[class^=\\\"ocr\\\"]:not(.ocr_page){border:3px solid red}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightNotPage *[class^=\\\"ocr\\\"]:not(.ocr_page):hover{background:rgba(255,153,153,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightPage .ocr_page{border:3px solid #8b4513}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightPage .ocr_page:hover{background:rgba(231,143,80,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightInlineNotBlank .ocr_line *[class^=\\\"ocr\\\"]:not(.hocrjs-blank){border:3px solid green}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightInlineNotBlank .ocr_line *[class^=\\\"ocr\\\"]:not(.hocrjs-blank):hover{background:rgba(26,255,26,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightInlineBlank .ocr_line *[class^=\\\"ocr\\\"].hocrjs-blank{border:3px solid #1aff1a}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightInlineBlank .ocr_line *[class^=\\\"ocr\\\"].hocrjs-blank:hover{background:rgba(179,255,179,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightLine *[class^=\\\"ocr\\\"][class*=\\\"line\\\"]{border:3px solid gold}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightLine *[class^=\\\"ocr\\\"][class*=\\\"line\\\"]:hover{background:rgba(255,239,153,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightPar .ocr_par{border:3px solid purple}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightPar .ocr_par:hover{background:rgba(255,26,255,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightCarea .ocr_carea{border:3px solid blue}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightCarea .ocr_carea:hover{background:rgba(153,153,255,0.2)}.hocr-viewer.hocr-viewer-feature-BackgroundImage{background-repeat:no-repeat}.hocr-viewer.hocr-viewer-feature-BackgroundImage .ocr_page{background-size:contain}.hocr-viewer.hocr-viewer-feature-DisableEmStrong em{font-style:normal}.hocr-viewer.hocr-viewer-feature-DisableEmStrong strong{font-weight:normal}.hocr-viewer.hocr-viewer-feature-TransparentText .ocr_page{color:rgba(0,0,0,0)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/HocrViewer/style.scss\",\"webpack://./src/_variables.scss\"],\"names\":[],\"mappings\":\"AASA,gEAIM,mBAAoB,CACpB,eAAgB,CALtB,oCAUI,gBAAiB,CACjB,4BAA6B,CCc/B,8BDXiC,CCYjC,0BDZiC,CCajC,sBDbiC,CAdnC,wCAkBM,aAAc,CAlBpB,sCAqBQ,QAAS,CArBjB,2CA4BM,YAAa,CA5BnB,wDAkCM,cAAe,CACf,kBAAmB,CAGnB,oBAAqB,CACrB,kBAAmB,CAvCzB,kGC+BE,aAAc,CACd,gBAAiB,CACjB,sBAAuB,CACvB,sBAAuB,CACvB,qBAAsB,CACtB,iBAAkB,CAClB,cAAe,CACf,gBAAiB,CACjB,gBAAiB,CACjB,WAAY,CACZ,SAAU,CDzCZ,2CAoDI,WAAY,CApDhB,+GC8CI,oBA7B0B,CDjB9B,qHCgDM,gCAAqC,CDhD3C,uFC8CI,wBA9B0B,CDhB9B,6FCgDM,+BAAqC,CDhD3C,oIC8CI,sBA5BoC,CDlBxC,0ICgDM,8BAAqC,CDhD3C,2HC8CI,wBA3B8C,CDnBlD,iICgDM,gCAAqC,CDhD3C,4GC8CI,qBAxBuB,CDtB3B,kHCgDM,gCAAqC,CDhD3C,qFC8CI,uBAzBwB,CDrB5B,2FCgDM,+BAAqC,CDhD3C,yFC8CI,qBA1BwB,CDpB5B,+FCgDM,gCAAqC,CDhD3C,iDA+DI,2BAA4B,CA/DhC,2DAkEM,uBAAwB,CAlE9B,oDAwES,iBAAkB,CAxE3B,wDAyEa,kBAAmB,CAzEhC,2DA8EM,mBCrE2B\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2016-2017 Konstantin Baierer\\n *\\n * This software may be modified and distributed under the terms\\n * of the MIT license.  See the LICENSE file for details.\\n */\\n\\n@import '../../variables.scss';\\n\\n.hocr-viewer {\\n\\n  &.hocr-viewer-toolbar-enabled {\\n    > .hocr-viewer-container {\\n      transform: rotate(0);\\n      margin-left: 1em;\\n    }\\n  }\\n\\n  .hocr-viewer-container {\\n    min-height: 100vh;\\n    position: relative !important;\\n    // NOTE: This is important otherwise fixed will be relative to page not\\n    // containing element\\n    @include transform(rotate(0deg));\\n    /* .transform(scale(0.7)); */\\n    /* position: relative !important; */\\n    & > div {\\n      overflow: auto;\\n    }\\n    p {\\n        margin: 0;\\n    }\\n  }\\n\\n\\n  #{$selector-ocr-classes} {\\n    &:hover::before {\\n      display: none;\\n    }\\n  }\\n\\n  &.hocr-viewer-feature-Layout {\\n    #{$selector-ocr-classes} {\\n      position: fixed;\\n      white-space: nowrap;\\n      // XXX\\n      // display: flex;\\n      justify-content: left; /* align horizontal */\\n      align-items: center; /* align vertical */\\n    }\\n    &.hocr-viewer-feature-Tooltip {\\n      #{$selector-ocr-classes} {\\n        &:hover::before {\\n          @include tooltip\\n        }\\n      }\\n    }\\n  }\\n\\n\\n  &.hocr-viewer-feature-Highlight {\\n    margin: -1px;\\n    &.hocr-viewer-feature-HighlightNotPage        {@include highlight-area($selector-ocr-not-page, $color-highlight-not-page)}\\n    &.hocr-viewer-feature-HighlightPage           {@include highlight-area($selector-ocr-page, $color-highlight-page)}\\n    &.hocr-viewer-feature-HighlightInlineNotBlank {@include highlight-area($selector-ocr-inline-not-blank, $color-highlight-inline-not-blank);}\\n    &.hocr-viewer-feature-HighlightInlineBlank    {@include highlight-area($selector-ocr-inline-blank, $color-highlight-inline-blank);}\\n    &.hocr-viewer-feature-HighlightLine           {@include highlight-area($selector-ocr-line, $color-highlight-line);}\\n    &.hocr-viewer-feature-HighlightPar            {@include highlight-area($selector-ocr-par, $color-highlight-par);}\\n    &.hocr-viewer-feature-HighlightCarea          {@include highlight-area($selector-ocr-carea, $color-highlight-carea);}\\n  }\\n\\n  &.hocr-viewer-feature-BackgroundImage {\\n    background-repeat: no-repeat;\\n\\n    #{$selector-ocr-page} {\\n      background-size: contain;\\n\\n    }\\n  }\\n\\n  &.hocr-viewer-feature-DisableEmStrong {\\n    em { font-style: normal; }\\n    strong { font-weight: normal; }\\n  }\\n\\n  &.hocr-viewer-feature-TransparentText {\\n    .ocr_page {\\n      color: $color-transparent;\\n    }\\n  }\\n\\n\\n}\\n\",\"/*\\n * Copyright (c) 2016-2017 Konstantin Baierer\\n *\\n * This software may be modified and distributed under the terms\\n * of the MIT license.  See the LICENSE file for details.\\n */\\n\\n$selector-ocr-page: '.ocr_page';\\n$selector-ocr-classes: '*[class^=\\\"ocr\\\"]';\\n$selector-ocr-line: '#{$selector-ocr-classes}[class*=\\\"line\\\"]';\\n$selector-ocr-par: '.ocr_par';\\n$selector-ocr-carea: '.ocr_carea';\\n$selector-ocr-blank: '#{$selector-ocr-classes}.hocrjs-blank';\\n$selector-ocr-inline-not-blank: '.ocr_line #{$selector-ocr-classes}:not(.hocrjs-blank)';\\n$selector-ocr-inline-blank: '.ocr_line #{$selector-ocr-classes}.hocrjs-blank';\\n$selector-ocr-not-page: '#{$selector-ocr-classes}:not(.ocr_page)';\\n\\n$border-width: 3px;\\n$color-transparent: rgba(0,0,0,0);\\n$color-unchecked: #ffcccc;\\n$color-checked: #ccffcc;\\n$color-toolbar-bg: rgba(180,180,190,0.85);\\n$color-toolbar-toggler: white;\\n$color-toolbar-border: #333;\\n\\n$color-highlight-page: #8B4513;\\n$color-highlight-not-page: red;\\n$color-highlight-inline-not-blank: green;\\n$color-highlight-inline-blank: lighten(green, 30%);\\n$color-highlight-carea: blue;\\n$color-highlight-par: purple;\\n$color-highlight-line: gold;\\n\\n@mixin transform($args) {\\n  -webkit-transform: $args;\\n  -ms-transform: $args;\\n  transform: $args;\\n}\\n\\n@mixin tooltip {\\n  display: block;\\n  background: white;\\n  color: black !important;\\n  border: 1px solid black;\\n  font-family: monospace;\\n  position: absolute;\\n  font-size: 12px;\\n  font-weight: bold;\\n  line-height: 100%;\\n  height: 15px;\\n  top: -15px;\\n}\\n\\n@mixin highlight-area($selector, $color) {\\n  #{$selector} {\\n    border: $border-width solid $color;\\n    &:hover {\\n      background: rgba(lighten($color, 30%), 0.2);\\n    }\\n  }\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".hocrjs-toolbar{position:fixed;z-index:1;top:0;height:100%;border:none}.hocrjs-toolbar .toggler{float:left;position:fixed;left:0;font-family:monospace;color:#fff;background:#333;height:100vh;width:1em}.hocrjs-toolbar .toggler .toggler-inner{font-size:1.5em;top:40vh;position:fixed}.hocrjs-toolbar .toggler .toggler-hide{display:none}.hocrjs-toolbar .toggler .toggler-show{display:block}.hocrjs-toolbar .wrapper{position:fixed;margin-left:1em;background-color:rgba(180,180,190,0.85);overflow:hidden;left:-32em;transition:all 0.5s ease;height:100vh}.hocrjs-toolbar.expanded{border-right:3px solid #333}.hocrjs-toolbar.expanded .wrapper{padding-left:.5em;padding-right:.5em;width:15em;left:0}.hocrjs-toolbar.expanded .toggler-show{display:none}.hocrjs-toolbar.expanded .toggler-hide{display:block}.hocrjs-toolbar ul.features{list-style-type:none;padding:0}.hocrjs-toolbar ul.features li{background-color:#fcc;margin-bottom:2px;padding:5px 0}.hocrjs-toolbar ul.features li:before{content:'✗ '}.hocrjs-toolbar ul.features li.checked{background-color:#cfc}.hocrjs-toolbar ul.features li.checked:before{content:'✓ '}.hocrjs-toolbar ul.features li input[type='checkbox']{display:none}.hocrjs-toolbar ul.features li label{width:100%}.hocrjs-toolbar summary{font-size:120%}.hocrjs-toolbar summary span.font{font-size:100%}.hocrjs-toolbar select.font{width:80%;font-size:110%}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/HocrToolbar/style.scss\",\"webpack://./src/_variables.scss\"],\"names\":[],\"mappings\":\"AAEA,gBACE,cAAe,CACf,SAAU,CACV,KAAM,CACN,WAAY,CACZ,WAAY,CALd,yBAOI,UAAW,CACX,cAAe,CACf,MAAO,CACP,qBAAsB,CACtB,UCSyB,CDRzB,eCSuB,CDRvB,YAAa,CACb,SAAU,CAdd,wCAgBM,eAAgB,CAChB,QAAS,CACT,cAAe,CAlBrB,uCAoBoB,YAAY,CApBhC,uCAqBoB,aAAa,CArBjC,yBAwBI,cAAe,CACf,eAAgB,CAChB,uCCPqC,CDQrC,eAAgB,CAChB,UAAW,CACX,wBAAyB,CACzB,YAAa,CA9BjB,yBAiCI,2BCZuB,CDrB3B,kCAmCM,iBAAkB,CAClB,kBAAmB,CACnB,UAAW,CACX,MAAO,CAtCb,uCAwCoB,YAAY,CAxChC,uCAyCoB,aAAa,CAzCjC,4BA4CI,oBAAqB,CACrB,SAAU,CA7Cd,+BAgDM,qBC/BmB,CDgCnB,iBAAkB,CAClB,aAAc,CAlDpB,sCAmDiB,YAAS,CAAK,uCAChB,qBClCC,CAAO,8CDoCP,YAAY,CAAA,sDAEhB,YAA4B,CAAA,qCAClC,UAAe,CAAA,wBAMnB,cACa,CAAA,kCACP,cACS,CAAA,4BAGT,SACG,CAAA,cACI\",\"sourcesContent\":[\"@import '../../variables';\\n\\n.hocrjs-toolbar {\\n  position: fixed;\\n  z-index: 1;\\n  top: 0;\\n  height: 100%;\\n  border: none;\\n  .toggler {\\n    float: left;\\n    position: fixed;\\n    left: 0;\\n    font-family: monospace;\\n    color: $color-toolbar-toggler;\\n    background: $color-toolbar-border;\\n    height: 100vh;\\n    width: 1em;\\n    .toggler-inner {\\n      font-size: 1.5em;\\n      top: 40vh;\\n      position: fixed;\\n    }\\n    .toggler-hide { display:none; }\\n    .toggler-show { display:block; }\\n  }\\n  .wrapper {\\n    position: fixed;\\n    margin-left: 1em;\\n    background-color: $color-toolbar-bg;\\n    overflow: hidden;\\n    left: -32em;\\n    transition: all 0.5s ease;\\n    height: 100vh;\\n  }\\n  &.expanded {\\n    border-right: $border-width solid $color-toolbar-border;\\n    .wrapper { \\n      padding-left: .5em;\\n      padding-right: .5em;\\n      width: 15em;\\n      left: 0;\\n    }\\n    .toggler-show { display:none; }\\n    .toggler-hide { display:block; }\\n  }\\n  ul.features {\\n    list-style-type: none;\\n    padding: 0;\\n    // width: 19em;\\n    li {\\n      background-color: $color-unchecked;\\n      margin-bottom: 2px;\\n      padding: 5px 0;\\n      &:before { content: '✗ '; }\\n      &.checked {\\n        background-color: $color-checked;\\n        &:before { content: '✓ '; }\\n      }\\n      input[type='checkbox'] { display: none; }\\n      label { width: 100%; }\\n    }\\n  }\\n  input.zoom {\\n    // width: 19em;\\n  }\\n  summary {\\n    font-size: 120%;\\n    span.font {\\n      font-size: 100%;\\n    }\\n  }\\n  select.font {\\n    width: 80%;\\n    font-size: 110%;\\n  }\\n}\\n\\n\",\"/*\\n * Copyright (c) 2016-2017 Konstantin Baierer\\n *\\n * This software may be modified and distributed under the terms\\n * of the MIT license.  See the LICENSE file for details.\\n */\\n\\n$selector-ocr-page: '.ocr_page';\\n$selector-ocr-classes: '*[class^=\\\"ocr\\\"]';\\n$selector-ocr-line: '#{$selector-ocr-classes}[class*=\\\"line\\\"]';\\n$selector-ocr-par: '.ocr_par';\\n$selector-ocr-carea: '.ocr_carea';\\n$selector-ocr-blank: '#{$selector-ocr-classes}.hocrjs-blank';\\n$selector-ocr-inline-not-blank: '.ocr_line #{$selector-ocr-classes}:not(.hocrjs-blank)';\\n$selector-ocr-inline-blank: '.ocr_line #{$selector-ocr-classes}.hocrjs-blank';\\n$selector-ocr-not-page: '#{$selector-ocr-classes}:not(.ocr_page)';\\n\\n$border-width: 3px;\\n$color-transparent: rgba(0,0,0,0);\\n$color-unchecked: #ffcccc;\\n$color-checked: #ccffcc;\\n$color-toolbar-bg: rgba(180,180,190,0.85);\\n$color-toolbar-toggler: white;\\n$color-toolbar-border: #333;\\n\\n$color-highlight-page: #8B4513;\\n$color-highlight-not-page: red;\\n$color-highlight-inline-not-blank: green;\\n$color-highlight-inline-blank: lighten(green, 30%);\\n$color-highlight-carea: blue;\\n$color-highlight-par: purple;\\n$color-highlight-line: gold;\\n\\n@mixin transform($args) {\\n  -webkit-transform: $args;\\n  -ms-transform: $args;\\n  transform: $args;\\n}\\n\\n@mixin tooltip {\\n  display: block;\\n  background: white;\\n  color: black !important;\\n  border: 1px solid black;\\n  font-family: monospace;\\n  position: absolute;\\n  font-size: 12px;\\n  font-weight: bold;\\n  line-height: 100%;\\n  height: 15px;\\n  top: -15px;\\n}\\n\\n@mixin highlight-area($selector, $color) {\\n  #{$selector} {\\n    border: $border-width solid $color;\\n    &:hover {\\n      background: rgba(lighten($color, 30%), 0.2);\\n    }\\n  }\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".hocr-viewer.hocr-viewer-toolbar-enabled>.hocr-viewer-container{transform:rotate(0);margin-left:1em}.hocr-viewer .hocr-viewer-container{min-height:100vh;position:relative !important;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.hocr-viewer .hocr-viewer-container>div{overflow:auto}.hocr-viewer .hocr-viewer-container p{margin:0}.hocr-viewer *[class^=\\\"ocr\\\"]:hover::before{display:none}.hocr-viewer.hocr-viewer-feature-Layout *[class^=\\\"ocr\\\"]{position:fixed;white-space:nowrap;justify-content:left;align-items:center}.hocr-viewer.hocr-viewer-feature-Layout.hocr-viewer-feature-Tooltip *[class^=\\\"ocr\\\"]:hover::before{display:block;background:white;color:black !important;border:1px solid black;font-family:monospace;position:absolute;font-size:12px;font-weight:bold;line-height:100%;height:15px;top:-15px}.hocr-viewer.hocr-viewer-feature-Highlight{margin:-1px}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightNotPage *[class^=\\\"ocr\\\"]:not(.ocr_page){border:3px solid red}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightNotPage *[class^=\\\"ocr\\\"]:not(.ocr_page):hover{background:rgba(255,153,153,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightPage .ocr_page{border:3px solid #8b4513}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightPage .ocr_page:hover{background:rgba(231,143,80,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightInlineNotBlank .ocr_line *[class^=\\\"ocr\\\"]:not(.hocrjs-blank){border:3px solid green}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightInlineNotBlank .ocr_line *[class^=\\\"ocr\\\"]:not(.hocrjs-blank):hover{background:rgba(26,255,26,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightInlineBlank .ocr_line *[class^=\\\"ocr\\\"].hocrjs-blank{border:3px solid #1aff1a}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightInlineBlank .ocr_line *[class^=\\\"ocr\\\"].hocrjs-blank:hover{background:rgba(179,255,179,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightLine *[class^=\\\"ocr\\\"][class*=\\\"line\\\"]{border:3px solid gold}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightLine *[class^=\\\"ocr\\\"][class*=\\\"line\\\"]:hover{background:rgba(255,239,153,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightPar .ocr_par{border:3px solid purple}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightPar .ocr_par:hover{background:rgba(255,26,255,0.2)}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightCarea .ocr_carea{border:3px solid blue}.hocr-viewer.hocr-viewer-feature-Highlight.hocr-viewer-feature-HighlightCarea .ocr_carea:hover{background:rgba(153,153,255,0.2)}.hocr-viewer.hocr-viewer-feature-BackgroundImage{background-repeat:no-repeat}.hocr-viewer.hocr-viewer-feature-BackgroundImage .ocr_page{background-size:contain}.hocr-viewer.hocr-viewer-feature-DisableEmStrong em{font-style:normal}.hocr-viewer.hocr-viewer-feature-DisableEmStrong strong{font-weight:normal}.hocr-viewer.hocr-viewer-feature-TransparentText .ocr_page{color:rgba(0,0,0,0)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/HocrViewer/style.scss\",\"webpack://./src/_variables.scss\"],\"names\":[],\"mappings\":\"AASA,gEAIM,mBAAoB,CACpB,eAAgB,CALtB,oCAUI,gBAAiB,CACjB,4BAA6B,CCc/B,8BDXiC,CCYjC,0BDZiC,CCajC,sBDbiC,CAdnC,wCAkBM,aAAc,CAlBpB,sCAqBQ,QAAS,CArBjB,2CA4BM,YAAa,CA5BnB,wDAkCM,cAAe,CACf,kBAAmB,CAGnB,oBAAqB,CACrB,kBAAmB,CAvCzB,kGC+BE,aAAc,CACd,gBAAiB,CACjB,sBAAuB,CACvB,sBAAuB,CACvB,qBAAsB,CACtB,iBAAkB,CAClB,cAAe,CACf,gBAAiB,CACjB,gBAAiB,CACjB,WAAY,CACZ,SAAU,CDzCZ,2CAoDI,WAAY,CApDhB,+GC8CI,oBA7B0B,CDjB9B,qHCgDM,gCAAqC,CDhD3C,uFC8CI,wBA9B0B,CDhB9B,6FCgDM,+BAAqC,CDhD3C,oIC8CI,sBA5BoC,CDlBxC,0ICgDM,8BAAqC,CDhD3C,2HC8CI,wBA3B8C,CDnBlD,iICgDM,gCAAqC,CDhD3C,4GC8CI,qBAxBuB,CDtB3B,kHCgDM,gCAAqC,CDhD3C,qFC8CI,uBAzBwB,CDrB5B,2FCgDM,+BAAqC,CDhD3C,yFC8CI,qBA1BwB,CDpB5B,+FCgDM,gCAAqC,CDhD3C,iDA+DI,2BAA4B,CA/DhC,2DAkEM,uBAAwB,CAlE9B,oDAwES,iBAAkB,CAxE3B,wDAyEa,kBAAmB,CAzEhC,2DA8EM,mBCrE2B\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2016-2017 Konstantin Baierer\\n *\\n * This software may be modified and distributed under the terms\\n * of the MIT license.  See the LICENSE file for details.\\n */\\n\\n@import '../../variables.scss';\\n\\n.hocr-viewer {\\n\\n  &.hocr-viewer-toolbar-enabled {\\n    > .hocr-viewer-container {\\n      transform: rotate(0);\\n      margin-left: 1em;\\n    }\\n  }\\n\\n  .hocr-viewer-container {\\n    min-height: 100vh;\\n    position: relative !important;\\n    // NOTE: This is important otherwise fixed will be relative to page not\\n    // containing element\\n    @include transform(rotate(0deg));\\n    /* .transform(scale(0.7)); */\\n    /* position: relative !important; */\\n    & > div {\\n      overflow: auto;\\n    }\\n    p {\\n        margin: 0;\\n    }\\n  }\\n\\n\\n  #{$selector-ocr-classes} {\\n    &:hover::before {\\n      display: none;\\n    }\\n  }\\n\\n  &.hocr-viewer-feature-Layout {\\n    #{$selector-ocr-classes} {\\n      position: fixed;\\n      white-space: nowrap;\\n      // XXX\\n      // display: flex;\\n      justify-content: left; /* align horizontal */\\n      align-items: center; /* align vertical */\\n    }\\n    &.hocr-viewer-feature-Tooltip {\\n      #{$selector-ocr-classes} {\\n        &:hover::before {\\n          @include tooltip\\n        }\\n      }\\n    }\\n  }\\n\\n\\n  &.hocr-viewer-feature-Highlight {\\n    margin: -1px;\\n    &.hocr-viewer-feature-HighlightNotPage        {@include highlight-area($selector-ocr-not-page, $color-highlight-not-page)}\\n    &.hocr-viewer-feature-HighlightPage           {@include highlight-area($selector-ocr-page, $color-highlight-page)}\\n    &.hocr-viewer-feature-HighlightInlineNotBlank {@include highlight-area($selector-ocr-inline-not-blank, $color-highlight-inline-not-blank);}\\n    &.hocr-viewer-feature-HighlightInlineBlank    {@include highlight-area($selector-ocr-inline-blank, $color-highlight-inline-blank);}\\n    &.hocr-viewer-feature-HighlightLine           {@include highlight-area($selector-ocr-line, $color-highlight-line);}\\n    &.hocr-viewer-feature-HighlightPar            {@include highlight-area($selector-ocr-par, $color-highlight-par);}\\n    &.hocr-viewer-feature-HighlightCarea          {@include highlight-area($selector-ocr-carea, $color-highlight-carea);}\\n  }\\n\\n  &.hocr-viewer-feature-BackgroundImage {\\n    background-repeat: no-repeat;\\n\\n    #{$selector-ocr-page} {\\n      background-size: contain;\\n\\n    }\\n  }\\n\\n  &.hocr-viewer-feature-DisableEmStrong {\\n    em { font-style: normal; }\\n    strong { font-weight: normal; }\\n  }\\n\\n  &.hocr-viewer-feature-TransparentText {\\n    .ocr_page {\\n      color: $color-transparent;\\n    }\\n  }\\n\\n\\n}\\n\",\"/*\\n * Copyright (c) 2016-2017 Konstantin Baierer\\n *\\n * This software may be modified and distributed under the terms\\n * of the MIT license.  See the LICENSE file for details.\\n */\\n\\n$selector-ocr-page: '.ocr_page';\\n$selector-ocr-classes: '*[class^=\\\"ocr\\\"]';\\n$selector-ocr-line: '#{$selector-ocr-classes}[class*=\\\"line\\\"]';\\n$selector-ocr-par: '.ocr_par';\\n$selector-ocr-carea: '.ocr_carea';\\n$selector-ocr-blank: '#{$selector-ocr-classes}.hocrjs-blank';\\n$selector-ocr-inline-not-blank: '.ocr_line #{$selector-ocr-classes}:not(.hocrjs-blank)';\\n$selector-ocr-inline-blank: '.ocr_line #{$selector-ocr-classes}.hocrjs-blank';\\n$selector-ocr-not-page: '#{$selector-ocr-classes}:not(.ocr_page)';\\n\\n$border-width: 3px;\\n$color-transparent: rgba(0,0,0,0);\\n$color-unchecked: #ffcccc;\\n$color-checked: #ccffcc;\\n$color-toolbar-bg: rgba(180,180,190,0.85);\\n$color-toolbar-toggler: white;\\n$color-toolbar-border: #333;\\n\\n$color-highlight-page: #8B4513;\\n$color-highlight-not-page: red;\\n$color-highlight-inline-not-blank: green;\\n$color-highlight-inline-blank: lighten(green, 30%);\\n$color-highlight-carea: blue;\\n$color-highlight-par: purple;\\n$color-highlight-line: gold;\\n\\n@mixin transform($args) {\\n  -webkit-transform: $args;\\n  -ms-transform: $args;\\n  transform: $args;\\n}\\n\\n@mixin tooltip {\\n  display: block;\\n  background: white;\\n  color: black !important;\\n  border: 1px solid black;\\n  font-family: monospace;\\n  position: absolute;\\n  font-size: 12px;\\n  font-weight: bold;\\n  line-height: 100%;\\n  height: 15px;\\n  top: -15px;\\n}\\n\\n@mixin highlight-area($selector, $color) {\\n  #{$selector} {\\n    border: $border-width solid $color;\\n    &:hover {\\n      background: rgba(lighten($color, 30%), 0.2);\\n    }\\n  }\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { class: _vm.classList },\n    [\n      _vm.enableToolbar\n        ? _c(\"hocr-toolbar\", { attrs: { expandedInitial: _vm.expandToolbar } })\n        : _vm._e(),\n      _vm._v(\" \"),\n      _c(\"div\", {\n        staticClass: \"hocr-viewer-container\",\n        style: _vm.containerStyle,\n        domProps: { innerHTML: _vm._s(_vm.hocrDom.innerHTML) }\n      })\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", { class: _vm.classList }, [\n    _c(\"div\", { staticClass: \"toggler\", on: { click: _vm.toggle } }, [\n      _vm._m(0),\n      _vm._v(\" \"),\n      _vm._m(1)\n    ]),\n    _vm._v(\" \"),\n    _c(\"div\", { staticClass: \"wrapper\" }, [\n      _c(\n        \"button\",\n        {\n          attrs: { disabled: _vm.$parent.currentPageIdx == 0 },\n          on: { click: _vm.$parent.prevPage }\n        },\n        [_vm._v(\"prev\")]\n      ),\n      _vm._v(\" \"),\n      _c(\"button\", [\n        _vm._v(\n          _vm._s(_vm.$parent.currentPageIdx + 1) +\n            \" / \" +\n            _vm._s(_vm.$parent.lastPageIdx + 1)\n        )\n      ]),\n      _vm._v(\" \"),\n      _c(\n        \"button\",\n        {\n          attrs: {\n            disabled: _vm.$parent.currentPageIdx == _vm.$parent.lastPageIdx\n          },\n          on: { click: _vm.$parent.nextPage }\n        },\n        [_vm._v(\"next\")]\n      ),\n      _vm._v(\" \"),\n      _c(\"details\", { attrs: { open: \"\" } }, [\n        _c(\"summary\", [_vm._v(\"Features\")]),\n        _vm._v(\" \"),\n        _c(\n          \"ul\",\n          { staticClass: \"features\" },\n          _vm._l(Object.keys(_vm.$parent.featuresAvailable), function(\n            featureName\n          ) {\n            return !featureName.match(/Highlight[A-Z]/)\n              ? _c(\n                  \"li\",\n                  {\n                    key: featureName,\n                    class: {\n                      checked: _vm.$parent.isFeatureEnabled(featureName)\n                    },\n                    on: {\n                      click: function($event) {\n                        return _vm.$parent.toggleFeature(featureName)\n                      }\n                    }\n                  },\n                  [_c(\"label\", [_vm._v(_vm._s(featureName))])]\n                )\n              : _vm._e()\n          }),\n          0\n        )\n      ]),\n      _vm._v(\" \"),\n      _c(\"details\", { attrs: { open: \"\" } }, [\n        _c(\"summary\", [_vm._v(\"Highlighting\")]),\n        _vm._v(\" \"),\n        _c(\n          \"ul\",\n          { staticClass: \"features\" },\n          _vm._l(Object.keys(_vm.$parent.featuresAvailable), function(\n            featureName\n          ) {\n            return featureName.match(/Highlight[A-Z]/)\n              ? _c(\n                  \"li\",\n                  {\n                    key: featureName,\n                    class: {\n                      checked: _vm.$parent.isFeatureEnabled(featureName)\n                    },\n                    on: {\n                      click: function($event) {\n                        return _vm.$parent.toggleFeature(featureName)\n                      }\n                    }\n                  },\n                  [\n                    _c(\"input\", { attrs: { type: \"checkbox\" } }),\n                    _vm._v(\" \"),\n                    _c(\"label\", [_vm._v(_vm._s(featureName))])\n                  ]\n                )\n              : _vm._e()\n          }),\n          0\n        )\n      ]),\n      _vm._v(\" \"),\n      _c(\"details\", { staticClass: \"hocr-toolbar-zoom\", attrs: { open: \"\" } }, [\n        _c(\"summary\", [\n          _vm._v(\"Zoom: \"),\n          _c(\"span\", { staticClass: \"zoom\" }, [\n            _vm._v(_vm._s(_vm.$parent.currentZoomRounded))\n          ]),\n          _vm._v(\"%\\n      \")\n        ]),\n        _vm._v(\" \"),\n        _c(\n          \"button\",\n          {\n            staticClass: \"zoom\",\n            on: {\n              click: function($event) {\n                return _vm.$parent.zoom(\"-0.1\")\n              }\n            }\n          },\n          [_vm._v(\"-\")]\n        ),\n        _vm._v(\" \"),\n        _c(\"input\", {\n          attrs: { type: \"range\", min: \"0\", max: \"5\", step: \".02\" },\n          domProps: { value: _vm.$parent.currentZoom },\n          on: {\n            change: function($event) {\n              _vm.$parent.currentZoom = $event.target.value\n            }\n          }\n        }),\n        _vm._v(\" \"),\n        _c(\n          \"button\",\n          {\n            staticClass: \"zoom\",\n            on: {\n              click: function($event) {\n                return _vm.$parent.zoom(\"+0.1\")\n              }\n            }\n          },\n          [_vm._v(\"+\")]\n        ),\n        _vm._v(\" \"),\n        _c(\"p\", [\n          _c(\n            \"button\",\n            {\n              staticClass: \"zoom\",\n              on: {\n                click: function($event) {\n                  return _vm.$parent.zoom(\"height\")\n                }\n              }\n            },\n            [_vm._v(\"Fit height\")]\n          ),\n          _vm._v(\" \"),\n          _c(\n            \"button\",\n            {\n              staticClass: \"zoom\",\n              on: {\n                click: function($event) {\n                  return _vm.$parent.zoom(\"width\")\n                }\n              }\n            },\n            [_vm._v(\"Fit width\")]\n          ),\n          _vm._v(\" \"),\n          _c(\n            \"button\",\n            {\n              staticClass: \"zoom\",\n              on: {\n                click: function($event) {\n                  return _vm.$parent.zoom(\"reset\")\n                }\n              }\n            },\n            [_vm._v(\"100 %\")]\n          )\n        ])\n      ]),\n      _vm._v(\" \"),\n      _vm.$parent.isFeatureEnabled(\"Font\")\n        ? _c(\"details\", { attrs: { open: \"\" } }, [\n            _vm._m(2),\n            _vm._v(\" \"),\n            _c(\n              \"select\",\n              {\n                staticClass: \"font\",\n                on: {\n                  change: function($event) {\n                    _vm.$parent.fontFamily = $event.target.value\n                  }\n                }\n              },\n              _vm._l(_vm.$parent.fontsAvailable, function(\n                fontOptions,\n                fontName\n              ) {\n                return _c(\n                  \"option\",\n                  {\n                    key: fontName,\n                    style: { \"font-size\": \"large\", \"font-family\": fontName },\n                    domProps: { value: fontName }\n                  },\n                  [_vm._v(\"\\n          \" + _vm._s(fontName) + \"\\n        \")]\n                )\n              }),\n              0\n            )\n          ])\n        : _vm._e()\n    ])\n  ])\n}\nvar staticRenderFns = [\n  function() {\n    var _vm = this\n    var _h = _vm.$createElement\n    var _c = _vm._self._c || _h\n    return _c(\"div\", { staticClass: \"toggler-inner toggler-show\" }, [\n      _vm._v(\"\\n      >\"),\n      _c(\"br\"),\n      _vm._v(\">\"),\n      _c(\"br\"),\n      _vm._v(\">\"),\n      _c(\"br\"),\n      _vm._v(\">\"),\n      _c(\"br\"),\n      _vm._v(\">\"),\n      _c(\"br\"),\n      _vm._v(\">\"),\n      _c(\"br\"),\n      _vm._v(\">\"),\n      _c(\"br\"),\n      _vm._v(\">\"),\n      _c(\"br\"),\n      _vm._v(\">\"),\n      _c(\"br\")\n    ])\n  },\n  function() {\n    var _vm = this\n    var _h = _vm.$createElement\n    var _c = _vm._self._c || _h\n    return _c(\"div\", { staticClass: \"toggler-inner toggler-hide\" }, [\n      _vm._v(\"\\n      <\"),\n      _c(\"br\"),\n      _vm._v(\"<\"),\n      _c(\"br\"),\n      _vm._v(\"<\"),\n      _c(\"br\"),\n      _vm._v(\"<\"),\n      _c(\"br\"),\n      _vm._v(\"<\"),\n      _c(\"br\"),\n      _vm._v(\"<\"),\n      _c(\"br\"),\n      _vm._v(\"<\"),\n      _c(\"br\"),\n      _vm._v(\"<\"),\n      _c(\"br\"),\n      _vm._v(\"<\"),\n      _c(\"br\")\n    ])\n  },\n  function() {\n    var _vm = this\n    var _h = _vm.$createElement\n    var _c = _vm._self._c || _h\n    return _c(\"summary\", [\n      _vm._v(\"Font: \"),\n      _c(\"span\", { staticClass: \"font\" })\n    ])\n  }\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","export default {\n  name: 'HocrToolbar',\n  computed: {\n    classList() {return {\n      'hocrjs-toolbar': true,\n      expanded: this.expanded,\n    }},\n  },\n  props: {\n    expandedInitial: {type: Boolean, default: false},\n  },\n  data() {return {\n    expanded: this.expandedInitial,\n  }},\n  methods: {\n    toggle() {\n      this.expanded = ! this.expanded\n    }\n  }\n\n}\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!./script.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!./script.js?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n        injectStyles.call(\n          this,\n          (options.functional ? this.parent : this).$root.$options.shadowRoot\n        )\n      }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","import { render, staticRenderFns } from \"./template.html?vue&type=template&id=6b113db0&\"\nimport script from \"./script.js?vue&type=script&lang=js&\"\nexport * from \"./script.js?vue&type=script&lang=js&\"\nimport style0 from \"./style.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/kba/monorepo/hocrjs/vue-hocr/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('6b113db0')) {\n      api.createRecord('6b113db0', component.options)\n    } else {\n      api.reload('6b113db0', component.options)\n    }\n    module.hot.accept(\"./template.html?vue&type=template&id=6b113db0&\", function () {\n      api.rerender('6b113db0', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/components/HocrToolbar/index.vue\"\nexport default component.exports","export default {\n  features: {\n    disableEmStrong: {enabled: false},\n    contentEditable: {enabled: false},\n    tooltips: {\n      enabled: true,\n      styleId: 'hocr-viewer-tooltip-style',\n    },\n    transparentText: {enabled: false},\n  },\n}\n","import {HocrDOM} from 'hocr-dom'\n\nexport default class BackgroundImage {\n\n  constructor({imagePrefix=''}) {\n    this.imagePrefix = imagePrefix\n  }\n\n  apply(dom) {\n    let page = HocrDOM.queryHocr(dom, 'page')\n    HocrDOM.queryHocrAll(dom, {\n      title: 'image'\n    }).forEach((el) => {\n      let imageFile = HocrDOM.getHocrProperties(el).image\n      page.style.backgroundImage = `url(${this.imagePrefix}${imageFile})`\n    })\n  }\n\n}\n","import {HocrDOM} from 'hocr-dom'\n\nexport default class ContentEditable {\n\n  $emit(...args) {\n    console.log({args})\n  }\n\n  apply(dom) {\n    HocrDOM.queryHocrAll(dom, {\n      class: ['line', 'x_word'],\n      clauses: '',\n    }).forEach((el) => {\n        el.setAttribute('contentEditable', 'true')\n        el.addEventListener('input', () => this.$emit('contentEdited', el))\n    })\n  }\n\n}\n\n","/*\n * Copyright (c) 2016-2017 Konstantin Baierer\n *\n * This software may be modified and distributed under the terms\n * of the MIT license.  See the LICENSE file for details.\n */\n\nexport default class Utils {\n\n    static removeCssFragment(styleId, css) {\n      const style = document.querySelector(`#${styleId}`)\n      if (style) style.remove()\n    }\n\n    static addCssFragment(styleId, css) {\n        let style = document.querySelector(`#${styleId}`)\n        if (!style) {\n            style = document.createElement('style')\n            style.id = styleId\n            document.head.appendChild(style)\n        }\n        style.appendChild(document.createTextNode(css))\n    }\n\n}\n","import BackgroundImage from './BackgroundImage'\nimport ContentEditable from './ContentEditable'\nimport Font            from './Font'\nimport HighlightBlank  from './HighlightBlank'\nimport Layout          from './Layout'\nimport ScaleFont       from './ScaleFont'\nimport Tooltip         from './Tooltip'\n\nexport default {\n  BackgroundImage,\n  ContentEditable,\n  Font,\n  HighlightBlank,\n  Layout,\n  ScaleFont,\n  Tooltip,\n}\n","import {HocrDOM} from 'hocr-dom'\nimport Utils from '@/utils'\n\nexport default class Font {\n\n  constructor({fontFamily='x', fontsAvailable}) {\n    this.fontFamily = fontFamily\n\n    const styleId = 'hocr-view-font-styles'\n    Utils.removeCssFragment(styleId)\n    Object.keys(fontsAvailable).forEach((font) => {\n      let cssUrl = fontsAvailable[font].cssUrl\n      if (cssUrl) Utils.addCssFragment(styleId, `@import \"${cssUrl}\";\\n`)\n    })\n  }\n\n  apply(dom) {\n    HocrDOM.queryHocrAll(dom).forEach(el => {\n      el.style.fontFamily = this.fontFamily\n    })\n  }\n\n}\n\n","import {HocrDOM} from 'hocr-dom'\n\nexport default class HighlightBlank {\n\n  apply(dom) {\n    HocrDOM.queryHocrAll(dom).forEach(el => {\n      if (el.innerHTML.trim() === '')\n        el.classList.add('hocrjs-blank')\n    })\n  }\n\n}\n\n\n","import {HocrDOM} from 'hocr-dom'\n\nexport default class Layout {\n\n  apply(dom) {\n    HocrDOM.queryHocrAll(dom, {\n      title: 'bbox'\n    }).forEach((el) => {\n      let {bbox} = HocrDOM.getHocrProperties(el)\n      // XXX this can happen because e.g. \"x_bboxes\".contains('bbox')\n      // TODO implement glyph bounding boxes\n      if (!bbox)\n        return\n      el.style.position = 'fixed'\n      el.style.left    = bbox[0] + \"px\"\n      el.style.top     = bbox[1] + \"px\"\n      el.style.width   = bbox[2] - bbox[0] + 1 + \"px\"\n      el.style.height  = bbox[3] - bbox[1] + 1 + \"px\"\n    })\n  }\n\n}\n\n","import {HocrDOM} from 'hocr-dom'\n\nexport default class ScaleFont {\n\n  constructor({fontFamily='x', fonts={}}) {\n    this.fontFamily = fontFamily\n    this.minFontSize = 2\n    this.wrapClass   = 'hocr-viewer-wrap'\n    this.wrap = {}\n  }\n\n  apply(dom) {\n    console.time('toggleScaleFont')\n\n    // wrapper element containing wrappers for font-size expansion\n    this.wrap = document.createElement('span')\n    this.wrap.classList.add(this.wrapClass)\n    document.body.appendChild(this.wrap)\n    HocrDOM.queryHocrAll(dom, {terminal: true}).forEach((el) => this.scaleFont(el))\n    this.wrap.remove()\n\n    console.timeEnd('toggleScaleFont')\n  }\n\n  scaleFont(el) {\n    const text = el.textContent.trim()\n    if (text.length === 0) return\n    this.wrap.style.fontFamily = el.style.fontFamily\n    this.wrap.innerHTML = text\n    const height = parseInt(el.style.height.replace('px', ''))\n    const width = parseInt(el.style.width.replace('px', ''))\n    let fontSize = height\n    if (fontSize > this.minFontSize) {\n      this.wrap.style.fontSize = fontSize + 'px'\n      const fontSizeH = fontSize * height / this.wrap.offsetHeight\n      const fontSizeW = fontSize * width / this.wrap.offsetWidth\n      fontSize = (fontSizeH < fontSizeW) ? fontSizeH : fontSizeW\n    }\n    if (fontSize < this.minFontSize) {\n      fontSize = this.minFontSize\n    }\n    el.style.fontSize = fontSize + 'px'\n  }\n\n}\n\n","import {HocrDOM} from 'hocr-dom'\nimport Utils from '@/utils'\n\nexport default class ScaleFont {\n\n  constructor() {\n    this.styleId = 'hocr-viewer-tooltip-style'\n  }\n\n  apply(dom) {\n    let ocrClasses = {}\n    for (let el of HocrDOM.queryHocrAll(dom)) {\n      ocrClasses[el.getAttribute('class')] = true\n    }\n    console.log(\"Detected OCR classes\", Object.keys(ocrClasses))\n\n    Utils.removeCssFragment(this.styleId)\n    Utils.addCssFragment(this.styleId, Object.keys(ocrClasses).map(\n        cls => `.${cls}:hover::before { content: \"${cls}\"; }\\n`\n      ).join(\"\\n\")\n    )\n  }\n\n}\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!./script.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!./script.js?vue&type=script&lang=js&\"","/*\n * Copyright (c) 2016-2017 Konstantin Baierer\n *\n * This software may be modified and distributed under the terms\n * of the MIT license.  See the LICENSE file for details.\n */\n\nimport {HocrDOM} from 'hocr-dom'\nimport HocrToolbar from '../HocrToolbar/index.vue'\nimport defaultConfig from '@/store/state'\n\nimport featuresAvailable from './feature'\n\nexport default {\n  name: 'HocrViewer',\n  components: {HocrToolbar},\n  props: {\n    hocr:                           {type: String,  required: true},\n    initialZoom:                    {type: Number,  default:  1},\n    featureBackgroundImage:         {type: Boolean, default: true},\n    featureContentEditable:         {type: Boolean, default: true},\n    featureFont:                    {type: Boolean, default: true},\n    featureLayout:                  {type: Boolean, default: true},\n    featureScaleFont:               {type: Boolean, default: false},\n    featureTransparentText:         {type: Boolean, default: false},\n    featureTooltip:                 {type: Boolean, default: false},\n    featureHighlight:               {type: Boolean, default: true},\n    featureHighlightPage:           {type: Boolean, default: false},\n    featureHighlightNotPage:        {type: Boolean, default: false},\n    featureHighlightBlank:          {type: Boolean, default: true},\n    featureHighlightInlineNotBlank: {type: Boolean, default: true},\n    featureHighlightInlineBlank:    {type: Boolean, default: false},\n    featureHighlightLine:           {type: Boolean, default: true},\n    featureHighlightPar:            {type: Boolean, default: true},\n    featureHighlightCarea:          {type: Boolean, default: true},\n    featureDisableEmStrong:         {type: Boolean, default: true},\n    enableToolbar:                  {type: Boolean, default: true},\n    expandToolbar:                  {type: Boolean, default: true},\n    imagePrefix:                    {type: String,  default:  ''},\n    font:                           {type: String,  default:  'sans-serif'},\n    fontsAvailable:                 {type: Object,  default() {return  {\n      'sans-serif': {},\n      serif: {},\n      monospace: {},\n      UnifrakturCook: {cssUrl: 'https://fonts.googleapis.com/css?family=UnifrakturCook:700'},\n      UnifrakturMaguntia: {cssUrl: 'https://fonts.googleapis.com/css?family=UnifrakturMaguntia'},\n      'Old Standard TT': {cssUrl: 'https://fonts.googleapis.com/css?family=Old+Standard+TT'},\n      Cardo: {cssUrl: 'https://fonts.googleapis.com/css?family=Cardo'},\n      'Noto Serif': {cssUrl: 'https://fonts.googleapis.com/css?family=Noto+Serif:400,400i,700&subset=latin-ext'},\n      'Libre Baskerville': {cssUrl: 'https://fonts.googleapis.com/css?family=Libre+Baskerville:400,400i,700&subset=latin-ext'},\n    }}},\n  },\n  data() {\n    return {\n      enableLayout: false,\n      currentPageIdx: 0,\n      config: defaultConfig,\n      featuresEnabled: Object.keys(this.$props)\n        .filter(k => k.startsWith('feature') && this[k])\n        .map(k => k.replace('feature', '')),\n      fontFamily: this.font,\n      currentZoom: this.initialZoom,\n    }},\n  computed: {\n\n    classList() {\n      const ret = {\n        'hocr-viewer': true,\n        'hocr-viewer-toolbar-enabled': this.enableToolbar\n      }\n      this.featuresEnabled.map(featureName => ret[`hocr-viewer-feature-${featureName}`] = true)\n      return ret\n    },\n\n    lastPageIdx() {\n      const pages = HocrDOM.queryHocrAll(this.shadowDom, 'page')\n      return pages.length - 1\n    },\n\n    currentPage() {\n      console.log(\"enter currentPage\")\n      const pages = HocrDOM.queryHocrAll(this.shadowDom, 'page')\n      if (!pages.length) {\n        console.warn(\"No .ocr_page element found. Is this hOCR?\")\n        return {}\n      }\n      return pages[this.currentPageIdx]\n    },\n\n    containerStyle() {\n      const page = this.currentPage\n      const {bbox} = HocrDOM.getHocrProperties(page)\n      const pageHeight = bbox[3] - bbox[1] + 1\n      return {\n        transform: `scale(${this.currentZoom})`,\n        'transform-origin': 'top left',\n        height: `${pageHeight}px`,\n      }\n    },\n\n    featuresAvailable() {\n      const ret = {}\n      Object.keys(this.$props)\n        .filter(k => k.startsWith('feature'))\n        .map(k => k.replace('feature', ''))\n        .map(k => {if (!(k in ret)) ret[k] = true})\n      Object.assign(ret, featuresAvailable)\n      return ret\n    },\n\n    features() {\n      const ret = {}\n      Object.keys(featuresAvailable).map(featureName => {\n        if (this.featuresEnabled.includes(featureName)) {\n          const featureClass = featuresAvailable[featureName]\n          ret[featureName] = (typeof featureClass === 'function')\n            ? new featureClass(this)\n            : true\n        }\n      })\n      return ret\n    },\n\n    shadowDom() {\n      console.log(\"enter shadowDom\")\n      const dom = document.createElement('div')\n      dom.innerHTML = this.hocr\n      return dom\n    },\n\n    hocrDom() {\n      const dom = document.createElement('div')\n      dom.innerHTML = this.currentPage.outerHTML\n      Object.keys(this.features).map(featureName => {\n        const featureClass = this.features[featureName]\n        if (featureClass.apply) {\n          // console.log(`Applying ${featureName}`)\n          this.features[featureName].apply(dom)\n        }\n      })\n      return dom\n    },\n\n    currentZoomRounded() {\n      return Math.floor(this.currentZoom * 10000) / 100.0\n    },\n\n  },\n\n  mounted() {\n    this.zoom('height')\n  },\n\n  methods: {\n\n    prevPage() {\n      this.currentPageIdx = Math.max(this.currentPageIdx - 1, 0)\n    },\n\n    nextPage() {\n      this.currentPageIdx = Math.min(this.currentPageIdx + 1, this.lastPageIdx)\n    },\n\n    isFeatureEnabled(featureName) {return this.featuresEnabled.includes(featureName)},\n\n    toggleFeature(featureName) {\n      if (this.isFeatureEnabled(featureName))\n        this.featuresEnabled.splice(this.featuresEnabled.indexOf(featureName), 1)\n      else\n        this.featuresEnabled.push(featureName)\n    },\n\n    zoom(scaleFactor) {\n      let container = this.$el.querySelector('.hocr-viewer-container')\n      let {bbox} = HocrDOM.getHocrProperties(HocrDOM.queryHocr(container))\n      if (typeof scaleFactor === 'string') {\n        if (scaleFactor === 'height') {\n          scaleFactor = window.innerHeight / bbox[3]\n        } else if (scaleFactor === 'width') {\n          scaleFactor = window.innerWidth / bbox[2]\n        } else if (scaleFactor === 'reset') {\n          scaleFactor = 1\n        } else if (scaleFactor.match(/^[+-]/)) {\n          scaleFactor = this.currentZoom + parseFloat(scaleFactor)\n        } else {\n          console.error(`Bad scaleFactor: '${scaleFactor}'`)\n        }\n      }\n      this.currentZoom = scaleFactor\n      this.$emit('scale-to', this.config.scaleFactor)\n    },\n\n  },\n}\n","import { render, staticRenderFns } from \"./template.html?vue&type=template&id=91d8e7ca&\"\nimport script from \"./script.js?vue&type=script&lang=js&\"\nexport * from \"./script.js?vue&type=script&lang=js&\"\nimport style0 from \"./style.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/kba/monorepo/hocrjs/vue-hocr/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('91d8e7ca')) {\n      api.createRecord('91d8e7ca', component.options)\n    } else {\n      api.reload('91d8e7ca', component.options)\n    }\n    module.hot.accept(\"./template.html?vue&type=template&id=91d8e7ca&\", function () {\n      api.rerender('91d8e7ca', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/components/HocrViewer/index.vue\"\nexport default component.exports","import HocrViewer from './HocrViewer/index.vue'\nimport HocrToolbar from './HocrToolbar/index.vue'\nimport HocrViewerStyle from './HocrViewer/style.scss'\nimport HocrToolbarStyle from './HocrToolbar/style.scss'\n\nexport default {\n  HocrViewer,\n  HocrViewerStyle,\n  HocrToolbar,\n  HocrToolbarStyle,\n}\n"],"sourceRoot":""}