{"version":3,"sources":["webpack:///v2-withComparison-bundle-06d86495a1c7ec5b100f.js","webpack:///webpack/bootstrap a27b4b4be1d86f39d849","webpack:///./node_modules/preact/dist/preact.esm.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/index.js","webpack:///./node_modules/domready/ready.js","webpack:///./src/lib/nodelistToArray.js","webpack:///./src/lib/uuid.js","webpack:///./src/lib/errorReporting.js","webpack:///./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/array.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/bem.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/string.js","webpack:///./node_modules/@nrk/dh-analytics-utils/dist/dh-analytics-utils.min.js","webpack:///./src/lib/getContextId.js","webpack:///./src/v2/components/helpers/prettyPrintNumber.js","webpack:///./src/v2/components/withComparison/App.css","webpack:///./src/v2/components/withComparison/lib/getWidthAsText.js","webpack:///./src/v2/withComparison-client.js","webpack:///./src/v2/components/withComparison/App.js","webpack:///./src/v2/components/withComparison/PartyColumn.js","webpack:///./src/v2/components/withComparison/PartyColumn.css"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","VNode","h","nodeName","attributes","lastSimple","child","simple","children","EMPTY_CHILDREN","arguments","length","stack","push","pop","undefined","String","key","options","vnode","extend","obj","props","cloneElement","slice","enqueueRender","component","_dirty","items","debounceRendering","defer","rerender","list","renderComponent","isSameNodeType","node","hydrating","splitText","_componentConstructor","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","createNode","isSvg","document","createElementNS","createElement","removeNode","parentNode","removeChild","setAccessor","old","value","style","cssText","_typeof","IS_NON_DIMENSIONAL","test","innerHTML","__html","useCapture","replace","substring","addEventListener","eventProxy","removeEventListener","_listeners","setProperty","removeAttribute","ns","removeAttributeNS","setAttributeNS","setAttribute","className","e","this","type","event","flushMounts","mounts","afterMount","componentDidMount","diff","dom","context","mountAll","parent","componentRoot","diffLevel","isSvgMode","ownerSVGElement","ret","idiff","appendChild","out","prevSvgMode","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","vnodeName","buildComponentFromVNode","firstChild","fc","vchildren","a","nextSibling","innerDiffNode","dangerouslySetInnerHTML","diffAttributes","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","len","childrenLen","vlen","_child","__key","trim","insertBefore","unmountOnly","unmountComponent","ref","removeChildren","lastChild","next","previousSibling","attrs","collectComponent","constructor","components","createComponent","Ctor","inst","render","Component","doRender","nextBase","splice","state","setComponentProps","opts","_disable","__ref","base","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","shouldComponentUpdate","componentWillUpdate","getChildContext","toUnmount","childComponent","childProps","_parentComponent","baseParent","componentRef","t","unshift","componentDidUpdate","afterUpdate","_renderCallbacks","originalComponent","oldDom","isDirectOwner","isOwner","beforeUnmount","componentWillUnmount","inner","merge","Symbol","iterator","Promise","resolve","then","bind","setTimeout","setState","callback","forceUpdate","preact","default","toArray","createUniqueId","bem","_array","_bem","_bem2","_string","definition","listener","fns","doc","hack","documentElement","doScroll","loaded","readyState","shift","fn","nodelistToArray","nodeList","uuid","Math","random","toString","substr","createErrorReporter","isErrorReportingEnabled","_dhSimpleErrorReport","SimpleErrorReport","url","dryRun","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","apply","r","writable","TypeError","register","time","Date","message","filter","errorRegister","window","filename","lineno","colno","line","column","sendErrorReport","reason","console","log","JSON","stringify","isInRegisterWithinRange","addErrorToRegister","XMLHttpRequest","open","setRequestHeader","send","_toConsumableArray","arr","Array","isArray","arr2","from","toStrings","keys","blockName","_len","modifiers","_key","strings","modifier","objects","objectString","map","reduce","b","concat","join","prefix","ga","assign","createGoogleAnalyticsTracker","gaPropertyId","self","Error","u","g","y","w","id","title","publishedDate","referrer","dimension1","dimension2","dimension3","getFullYear","dimension4","getMonth","dimension5","getDate","dimension6","dimension7","dimension10","v","category","action","trackingId","cookieDomain","eventCategory","eventAction","eventLabel","label","eventValue","nonInteraction","fieldsObject","setInterval","clearInterval","sendEvent","getContextId","extractPolopolyIdFromString","str","matches","match","POLOPOLY_ID_REGEX","prettyPrintNumber","num","withComparisonRoot","withComparison","fadeIn","withComparison__header","withComparison__title","withComparison__description","withComparison__columnHeaders","withComparison__columnHeaders--medium","withComparison__columnHeaders--wide","withComparison__partyColumns","withComparison__partyColumns--narrow","withComparison__partyColumns--medium","withComparison__partyColumns--wide","withComparison__source","getWidthAsText","width","_narrow","_medium","_wide","init","findElements","forEach","el","_uuid","preloadedState","parse","getAttribute","errorEventTrackingEnabled","_errorReporting","listenAndCatch","metadata","selfId","published","googleAnalyticsTracker","_dhAnalyticsUtils","_getContextId","location","href","_preact","_App","App","getTime","_nodelistToArray","getElementsByClassName","_App2","isInitialized","_domready","_domready2","_classCallCheck","instance","Constructor","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","createDescription","surveyMetadata","startDate","endDate","interviewCount","errorMarginLowest","errorMarginLargest","_prettyPrintNumber","_createClass","defineProperties","target","descriptor","protoProps","staticProps","_PartyColumn","_dhUtils","_getWidthAsText","_Component","_ref","_temp","_this","_ret","args","getPrototypeOf","resizeHandler","containerWidth","element","offsetWidth","_this2","_props","politicalParties","previousValues","party","previousPeriod","currentValues","currentPeriod","maxValue","max","widthAsText","aria-hidden","withComparison__header__party","withComparison__header__diff","PartyColumn","nameShort","politicalParty","source","formatPercentage","toFixed","formatChange","getSummary","text","abs","previousPeriodSizePercent","currentPeriodSizePercent","_PartyColumn2","withComparisonPartyColumn","aria-label","withComparisonPartyColumn__barContainer","withComparisonPartyColumn__bar","height","withComparisonPartyColumn__bar__diff","withComparisonPartyColumn__name","withComparisonPartyColumn__value","withComparisonPartyColumn__diff","withComparisonPartyColumn--narrow","withComparisonPartyColumn--medium","withComparisonPartyColumn--wide","withComparisonPartyColumn__barContainer--narrow","withComparisonPartyColumn__barContainer--medium","withComparisonPartyColumn__barContainer--wide","withComparisonPartyColumn__bar--narrow","withComparisonPartyColumn__bar--medium","withComparisonPartyColumn__bar--wide","withComparisonPartyColumn__bar__diff--medium","withComparisonPartyColumn__bar__diff--wide","withComparisonPartyColumn__bar--previous","withComparisonPartyColumn__bar--R","withComparisonPartyColumn__bar--SV","withComparisonPartyColumn__bar--AP","withComparisonPartyColumn__bar--SP","withComparisonPartyColumn__bar--MDG","withComparisonPartyColumn__bar--KRF","withComparisonPartyColumn__bar--V","withComparisonPartyColumn__bar--H","withComparisonPartyColumn__bar--FRP","withComparisonPartyColumn__bar--FNB","withComparisonPartyColumn__bar--Andre","withComparisonPartyColumn__inlineValue","withComparisonPartyColumn__inlineValue--narrow","withComparisonPartyColumn__inlineValue--medium","withComparisonPartyColumn__inlineValue--wide","withComparisonPartyColumn__name--narrow","withComparisonPartyColumn__name--medium","withComparisonPartyColumn__name--wide","withComparisonPartyColumn__value--narrow","withComparisonPartyColumn__value--wide","withComparisonPartyColumn__diff--narrow","withComparisonPartyColumn__diff--medium","withComparisonPartyColumn__diff--wide"],"mappings":"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","file":"v2-withComparison-bundle-06d86495a1c7ec5b100f.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \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 = \"https://static.nrk.no/dh/module/partibarometer/static/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 33);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/** Virtual DOM Node */\nfunction VNode() {}\n\n/** Global options\n *\t@public\n *\t@namespace options {Object}\n */\nvar options = {\n\n\t/** If `true`, `prop` changes trigger synchronous component updates.\n *\t@name syncComponentUpdates\n *\t@type Boolean\n *\t@default true\n */\n\t//syncComponentUpdates: true,\n\n\t/** Processes all created VNodes.\n *\t@param {VNode} vnode\tA newly-created VNode to normalize/process\n */\n\t//vnode(vnode) { }\n\n\t/** Hook invoked after a component is mounted. */\n\t// afterMount(component) { }\n\n\t/** Hook invoked after the DOM is updated with a component's latest render. */\n\t// afterUpdate(component) { }\n\n\t/** Hook invoked immediately before a component is unmounted. */\n\t// beforeUnmount(component) { }\n};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\n/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a lightweight representation\n * of the structure of a DOM tree. This structure can be realized by recursively comparing it against\n * the current _actual_ DOM structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `
Hello!
`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\t// if a \"vnode hook\" is defined, pass every created VNode to it\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n\tfor (var i in props) {\n\t\tobj[i] = props[i];\n\t}return obj;\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virutal DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n\treturn h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p,\n\t list = items;\n\titems = [];\n\twhile (p = list.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hyrdating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tif (old) old(null);\n\t\tif (value) value(node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\tsetProperty(node, name, value == null ? '' : value);\n\t\tif (value == null || value === false) node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink\\:?/, ''));\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.pop()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\t// diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n\tif (!diffLevel++) {\n\t\t// when first starting the diff, check if we're diffing an SVG or within an SVG\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\t// hydration is indicated by the existing element to be diffed not having a prop cache\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\t// append the element if its a new parent\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\t// diffLevel being reduced to 0 means we're exiting the diff\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\t\t// invoke queued componentDidMount lifecycle methods\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\t// empty values (null, undefined, booleans) render as empty Text nodes\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\t// Fast case: Strings & Numbers create/update Text nodes.\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\n\t\t// update if it's already a Text node:\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\t/* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\t// it wasn't a Text node: replace it with one and recycle the old Element\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\t// If the VNode represents a Component, perform a component diff:\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\t// If there's no existing element or it's the wrong type, create a new one:\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\t// move children into the replacement node\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t} // if the previous Element was mounted into the DOM, replace it inline\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\t// recycle the old element (skips non-Element node types)\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\t// Optimization: fast-path for elements containing a single TextNode:\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t}\n\t// otherwise, if there are existing or new children, diff them:\n\telse if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\t// Apply attributes/props from VNode to the DOM Element:\n\tdiffAttributes(out, vnode.attributes, props);\n\n\t// restore previous SVG mode: (in case we're exiting an SVG namespace)\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\t// Build up a map of keyed children and an Array of unkeyed children:\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\t// attempt to find a node based on key matching\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// attempt to pluck a node of the same type from the existing children\n\t\t\telse if (!child && min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// morph the matched/found/created DOM child to match vchild (deep)\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// remove unused keyed children:\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\t// remove orphaned unkeyed children:\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\t// if node is owned by a Component, unmount that component (ends up recursing back here)\n\t\tunmountComponent(component);\n\t} else {\n\t\t// If the node's VNode had a ref function, invoke it with null here.\n\t\t// (this is part of the React spec, and smart for unsetting references)\n\t\tif (node['__preactattr_'] != null && node['__preactattr_'].ref) node['__preactattr_'].ref(null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\t// remove attributes no longer present on the vnode by setting them to undefined\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\t// add new & update changed attributes\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n\tvar name = component.constructor.name;\n\t(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context) {\n\tvar list = components[Ctor.name],\n\t inst;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\tif (list) {\n\t\tfor (var i = list.length; i--;) {\n\t\t\tif (list[i].constructor === Ctor) {\n\t\t\t\tinst.nextBase = list[i].nextBase;\n\t\t\t\tlist.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tif (component.__ref = props.ref) delete props.ref;\n\tif (component.__key = props.key) delete props.key;\n\n\tif (!component.base || mountAll) {\n\t\tif (component.componentWillMount) component.componentWillMount();\n\t} else if (component.componentWillReceiveProps) {\n\t\tcomponent.componentWillReceiveProps(props, context);\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (opts !== 0) {\n\t\tif (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tif (component.__ref) component.__ref(component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t rendered,\n\t inst,\n\t cbase;\n\n\t// if updating\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (opts !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\t// context to pass to the child, can be updated via (grand-)parent component\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\t\t\t// set up high order component link\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\t// destroy high order component link\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || opts === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.unshift(component);\n\t} else if (!skip) {\n\t\t// Ensure that pending componentDidMount() hooks of child components\n\t\t// are called before the componentDidUpdate() hook in the parent.\n\t\t// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n\t\t// flushMounts();\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, previousContext);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\tif (component._renderCallbacks != null) {\n\t\twhile (component._renderCallbacks.length) {\n\t\t\tcomponent._renderCallbacks.pop().call(component);\n\t\t}\n\t}\n\n\tif (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\t\t\t// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\t// recursively tear down & recollect high-order component children:\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] && base['__preactattr_'].ref) base['__preactattr_'].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\tcollectComponent(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n\n/** Base Component class.\n *\tProvides `setState()` and `forceUpdate()`, which trigger rendering.\n *\t@public\n *\n *\t@example\n *\tclass MyFoo extends Component {\n *\t\trender(props, state) {\n *\t\t\treturn
;\n *\t\t}\n *\t}\n */\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.context = context;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.props = props;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.state = this.state || {};\n}\n\nextend(Component.prototype, {\n\n\t/** Returns a `boolean` indicating if the component should re-render when receiving the given `props` and `state`.\n *\t@param {object} nextProps\n *\t@param {object} nextState\n *\t@param {object} nextContext\n *\t@returns {Boolean} should the component re-render\n *\t@name shouldComponentUpdate\n *\t@function\n */\n\n\t/** Update component state by copying properties from `state` to `this.state`.\n *\t@param {object} state\t\tA hash of state properties to update with new values\n *\t@param {function} callback\tA function to be called once component state is updated\n */\n\tsetState: function setState(state, callback) {\n\t\tvar s = this.state;\n\t\tif (!this.prevState) this.prevState = extend({}, s);\n\t\textend(s, typeof state === 'function' ? state(s, this.props) : state);\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\tenqueueRender(this);\n\t},\n\n\t/** Immediately perform a synchronous re-render of the component.\n *\t@param {function} callback\t\tA function to be called after component is re-rendered.\n *\t@private\n */\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\n\t/** Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n *\tVirtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n *\t@param {object} props\t\tProps (eg: JSX attributes) received from parent element/component\n *\t@param {object} state\t\tThe component's current state\n *\t@param {object} context\t\tContext object (if a parent component has provided context)\n *\t@returns VNode\n */\n\trender: function render() {}\n});\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {Element} [merge]\tAttempt to re-use an existing DOM tree rooted at `merge`\n *\t@public\n *\n *\t@example\n *\t// render a div into :\n *\trender(
hello!
, document.body);\n *\n *\t@example\n *\t// render a \"Thing\" component into #foo:\n *\tconst Thing = ({ name }) => { name };\n *\trender(, document.querySelector('#foo'));\n */\nfunction render(vnode, parent, merge) {\n\treturn diff(merge, vnode, {}, false, parent, false);\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexports.h = h;\nexports.createElement = h;\nexports.cloneElement = cloneElement;\nexports.Component = Component;\nexports.render = render;\nexports.rerender = rerender;\nexports.options = options;\nexports.default = preact;\n//# sourceMappingURL=preact.esm.js.map\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toArray = exports.createUniqueId = exports.bem = undefined;\n\nvar _array = __webpack_require__(7);\n\nvar _bem = __webpack_require__(8);\n\nvar _bem2 = _interopRequireDefault(_bem);\n\nvar _string = __webpack_require__(9);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.bem = _bem2.default;\nexports.createUniqueId = _string.createUniqueId;\nexports.toArray = _array.toArray;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (true) module.exports = definition();else if (typeof define == 'function' && _typeof(define.amd) == 'object') define(definition);else this[name] = definition();\n}('domready', function () {\n\n var fns = [],\n _listener,\n doc = document,\n hack = doc.documentElement.doScroll,\n domContentLoaded = 'DOMContentLoaded',\n loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded) doc.addEventListener(domContentLoaded, _listener = function listener() {\n doc.removeEventListener(domContentLoaded, _listener);\n loaded = 1;\n while (_listener = fns.shift()) {\n _listener();\n }\n });\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.nodelistToArray = nodelistToArray;\nfunction nodelistToArray(nodeList) {\n return [].slice.call(nodeList);\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.uuid = uuid;\nfunction uuid() {\n return \"_\" + Math.random().toString(36).substr(2, 9);\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createErrorReporter = createErrorReporter;\n\nvar _dhSimpleErrorReport = __webpack_require__(6);\n\nfunction createErrorReporter(isErrorReportingEnabled) {\n return new _dhSimpleErrorReport.SimpleErrorReport({\n name: 'dh-partibarometer',\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled\n });\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n!function (e, n) {\n \"object\" == ( false ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? n(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (n),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : n(e[\"simple-error-report\"] = {});\n}(undefined, function (e) {\n \"use strict\";\n var n = function () {\n function e(e, n) {\n for (var r = 0; r < n.length; r++) {\n var t = n[r];t.enumerable = t.enumerable || !1, t.configurable = !0, \"value\" in t && (t.writable = !0), Object.defineProperty(e, t.key, t);\n }\n }return function (n, r, t) {\n return r && e(n.prototype, r), t && e(n, t), n;\n };\n }();var r = function () {\n function e() {\n !function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.register = [];\n }return n(e, [{ key: \"addErrorToRegister\", value: function value(e) {\n this.register.push({ time: new Date(), message: e });\n } }, { key: \"isInRegisterWithinRange\", value: function value(e, n) {\n return this.register.filter(function (r) {\n return r.message === e && new Date() - r.time < n;\n }).length > 0;\n } }]), e;\n }(),\n t = function () {\n function e(e, n) {\n for (var r = 0; r < n.length; r++) {\n var t = n[r];t.enumerable = t.enumerable || !1, t.configurable = !0, \"value\" in t && (t.writable = !0), Object.defineProperty(e, t.key, t);\n }\n }return function (n, r, t) {\n return r && e(n.prototype, r), t && e(n, t), n;\n };\n }();var i = [],\n o = function () {\n function e(n) {\n var t = n.name,\n o = n.url,\n s = n.dryRun,\n a = void 0 === s || s;!function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.name = t, this.url = o, this.errorRegister = new r(), this.dryRun = a, i.push(this.name);\n }return t(e, [{ key: \"listenAndCatch\", value: function value() {\n var e = this;i.length <= 1 && (window.addEventListener(\"error\", function (n) {\n var r = n.message,\n t = n.filename,\n i = n.lineno,\n o = n.colno,\n s = { message: r };\"\" !== t && (s.url = t), i > 0 && (s.line = i), o > 0 && (s.column = o), e.sendErrorReport(s);\n }), window.addEventListener(\"unhandledrejection\", function (n) {\n e.sendErrorReport({ message: \"Unhandled Promise Rejection: \" + n.reason });\n }));\n } }, { key: \"sendErrorReport\", value: function value(e) {\n var n, r, t;this.dryRun ? \"undefined\" != typeof console && console.log(\"Dry run: \" + JSON.stringify(e)) : this.errorRegister.isInRegisterWithinRange(e.message, 500) || (this.errorRegister.addErrorToRegister(e.message), n = this.url + \"/\" + this.name, r = e, (t = new XMLHttpRequest()).open(\"POST\", n), t.setRequestHeader(\"Content-Type\", \"application/json\"), t.send(JSON.stringify(r)));\n } }]), e;\n }();e.SimpleErrorReport = o, Object.defineProperty(e, \"__esModule\", { value: !0 });\n});\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toArray = toArray;\nfunction toArray(nodeList) {\n return [].slice.call(nodeList);\n}\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction toStrings(object) {\n return Object.keys(object).filter(function (key) {\n return object[key];\n });\n}\n\nexports.default = function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n var strings = modifiers.filter(function (modifier) {\n return typeof modifier === 'string';\n });\n var objects = modifiers.filter(function (modifier) {\n return (typeof modifier === 'undefined' ? 'undefined' : _typeof(modifier)) === 'object';\n });\n\n var objectString = objects.map(function (object) {\n return toStrings(object);\n }).reduce(function (a, b) {\n return [].concat(_toConsumableArray(a), _toConsumableArray(b));\n }, []);\n\n return [blockName].concat(strings.map(function (modifier) {\n return blockName + '--' + modifier;\n })).concat(objectString.map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createUniqueId = createUniqueId;\nfunction createUniqueId() {\n var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return '' + prefix + Math.random().toString(36).substr(2, len - prefix.length);\n}\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n!function (e, n) {\n \"object\" == ( false ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? n(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (n),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : n(e[\"dh-analytics-utils\"] = {});\n}(undefined, function (e) {\n \"use strict\";\n function n() {\n return window.ga;\n }var t = Object.assign || function (e) {\n for (var n = 1; n < arguments.length; n++) {\n var t = arguments[n];for (var o in t) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }return e;\n };e.createGoogleAnalyticsTracker = function (e) {\n var o = [],\n r = e.name,\n a = e.gaPropertyId,\n i = e.self,\n l = e.context;if (!(r && a && i && l)) throw new Error(\"Unable to create google analytics tracker. Please pass an object containing name, gaPropertyId, self and context to createGoogleAnalyticsTracker method\");var c,\n s,\n d,\n u,\n f,\n g,\n p,\n y,\n w = (c = i.id, s = l.id, d = i.title, u = i.publishedDate, f = c === s, g = document.referrer, { dimension1: c ? \"pp:\" + c : null, dimension2: d || null, dimension3: u ? String(u.getFullYear()) : null, dimension4: u ? String(u.getMonth() + 1) : null, dimension5: u ? String(u.getDate()) : null, dimension6: g.replace(/^(https?:\\/\\/)?www./, \"$1\"), dimension7: g.replace(/^(https?:\\/\\/)/, \"\").replace(/^www./, \"\"), dimension10: f ? null : s ? \"pp:\" + s : null }),\n v = (p = o, y = !1, function (e, o, r, a, i) {\n if (!r.category || !r.action) throw new Error(\"Error sending event to google analytics: Event is missing mandatory fields category and/or action\");n() ? (y || (function (e, n) {\n window.ga(\"create\", { trackingId: n, cookieDomain: \"auto\", name: e }), window.ga(e + \".set\", \"anonymizeIp\", !0);\n }(e, o), y = !0), window.ga(e + \".send\", \"event\", function (e, n) {\n var o = {};e.hasOwnProperty(\"category\") && (o.eventCategory = e.category), e.hasOwnProperty(\"action\") && (o.eventAction = e.action), e.hasOwnProperty(\"label\") && (o.eventLabel = e.label), e.hasOwnProperty(\"value\") && (o.eventValue = e.value), o.nonInteraction = e.nonInteraction || !1;var r = t({}, n, e.fieldsObject);return t({}, o, r);\n }(r, a))) : p.push(r);\n }),\n m = setInterval(function () {\n if (n()) for (clearInterval(m); o.length;) {\n var e = o.shift();v(r, a, e, w);\n }\n }, 1e3);return { sendEvent: function sendEvent(e) {\n v(r, a, e, w);\n } };\n }, Object.defineProperty(e, \"__esModule\", { value: !0 });\n});\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getContextId = getContextId;\nvar POLOPOLY_ID_REGEX = /[1-9]{1,2}\\.\\d+/g;\n\nfunction getContextId(url) {\n return extractPolopolyIdFromString(url);\n}\n\nfunction extractPolopolyIdFromString(str) {\n var matches = str.match(POLOPOLY_ID_REGEX);\n if (matches && matches.length) {\n return matches[0];\n }\n return null;\n}\n\n/***/ }),\n/* 12 */,\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.prettyPrintNumber = prettyPrintNumber;\nfunction prettyPrintNumber(num) {\n return String(num).replace('.', ',');\n}\n\n/***/ }),\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"withComparisonRoot\":\"dh-partibarometer-withComparisonRoot\",\"withComparison\":\"dh-partibarometer-withComparison\",\"fadeIn\":\"dh-partibarometer-fadeIn\",\"withComparison__header\":\"dh-partibarometer-withComparison__header\",\"withComparison__title\":\"dh-partibarometer-withComparison__title\",\"withComparison__description\":\"dh-partibarometer-withComparison__description\",\"withComparison__columnHeaders\":\"dh-partibarometer-withComparison__columnHeaders\",\"withComparison__columnHeaders--medium\":\"dh-partibarometer-withComparison__columnHeaders--medium\",\"withComparison__columnHeaders--wide\":\"dh-partibarometer-withComparison__columnHeaders--wide\",\"withComparison__partyColumns\":\"dh-partibarometer-withComparison__partyColumns\",\"withComparison__partyColumns--narrow\":\"dh-partibarometer-withComparison__partyColumns--narrow\",\"withComparison__partyColumns--medium\":\"dh-partibarometer-withComparison__partyColumns--medium\",\"withComparison__partyColumns--wide\":\"dh-partibarometer-withComparison__partyColumns--wide\",\"withComparison__source\":\"dh-partibarometer-withComparison__source\"};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getWidthAsText = getWidthAsText;\nvar _narrow = 'narrow';\nvar _medium = 'medium';\nvar _wide = 'wide';\n\nfunction getWidthAsText(width) {\n if (!width) {\n return _narrow;\n }\n if (width < 540) {\n return _narrow;\n } else if (width < 720) {\n return _medium;\n } else {\n return _wide;\n }\n}\n\n/***/ }),\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */,\n/* 32 */,\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(34);\nmodule.exports = __webpack_require__(35);\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* eslint-disable */\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _domready = __webpack_require__(2);\n\nvar _domready2 = _interopRequireDefault(_domready);\n\nvar _preact = __webpack_require__(0);\n\nvar _nodelistToArray = __webpack_require__(3);\n\nvar _uuid = __webpack_require__(4);\n\nvar _errorReporting = __webpack_require__(5);\n\nvar _App = __webpack_require__(36);\n\nvar _App2 = __webpack_require__(17);\n\nvar _dhAnalyticsUtils = __webpack_require__(10);\n\nvar _getContextId = __webpack_require__(11);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nwindow[_App2.withComparisonRoot] = window[_App2.withComparisonRoot] || {}; /* global __HOT__ */\n// @jsx h\n\n\nfunction init() {\n findElements().forEach(function (el) {\n el.id = (0, _uuid.uuid)();\n window[_App2.withComparisonRoot][el.id] = true;\n\n // Extract preloaded state sent from server\n var preloadedState = JSON.parse(el.getAttribute('data-preloaded-state'));\n var errorEventTrackingEnabled = JSON.parse(el.getAttribute('data-error-event-tracking-enabled'));\n\n // Register error reporter\n var simpleErrorReport = (0, _errorReporting.createErrorReporter)(errorEventTrackingEnabled);\n simpleErrorReport.listenAndCatch();\n\n // Extract metadata required to create google analytics tracker\n var gaPropertyId = el.getAttribute('data-ga-property-id');\n var metadata = JSON.parse(el.getAttribute('data-metadata'));\n var title = metadata.title,\n selfId = metadata.selfId,\n published = metadata.published;\n\n // create google analytics tracker\n\n var googleAnalyticsTracker = (0, _dhAnalyticsUtils.createGoogleAnalyticsTracker)({\n name: 'dh',\n gaPropertyId: gaPropertyId,\n self: {\n id: selfId,\n title: title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: (0, _getContextId.getContextId)(document.location.href)\n }\n });\n\n // ... and render with the exact same props\n (0, _preact.render)((0, _preact.h)(_App.App, preloadedState), el, el.firstChild);\n\n // track load event\n googleAnalyticsTracker.sendEvent({\n category: 'dh-modul\\u2013partibarometer',\n label: 'sammenlikning',\n action: 'load',\n value: new Date().getTime()\n });\n\n // Enable webpack hot-reloading\n if (false) {\n // Reload and re-render React application\n module.hot.accept('./withComparison-client', function () {\n (0, _preact.render)(require('./components/withComparison/App').default, el);\n });\n }\n });\n}\n\nfunction findElements() {\n return (0, _nodelistToArray.nodelistToArray)(document.getElementsByClassName(_App2.withComparisonRoot)).filter(function (el) {\n return !isInitialized(el);\n });\n}\n\nfunction isInitialized(el) {\n return el.id && window[_App2.withComparisonRoot][el.id];\n}\n\n(0, _domready2.default)(init);\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.App = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = __webpack_require__(0);\n\nvar _App = __webpack_require__(17);\n\nvar _App2 = _interopRequireDefault(_App);\n\nvar _PartyColumn = __webpack_require__(37);\n\nvar _dhUtils = __webpack_require__(1);\n\nvar _getWidthAsText = __webpack_require__(18);\n\nvar _prettyPrintNumber = __webpack_require__(13);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n\nvar App = exports.App = function (_Component) {\n _inherits(App, _Component);\n\n function App() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, App);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = App.__proto__ || Object.getPrototypeOf(App)).call.apply(_ref, [this].concat(args))), _this), _this.resizeHandler = function () {\n _this.setState({\n containerWidth: _this.element.offsetWidth\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(App, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.setState({ containerWidth: this.element.offsetWidth });\n window.addEventListener('resize', this.resizeHandler);\n window.addEventListener('orientationchange', this.resizeHandler);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.resizeHandler);\n window.removeEventListener('orientationchange', this.resizeHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n title = _props.title,\n surveyMetadata = _props.surveyMetadata,\n politicalParties = _props.politicalParties;\n var containerWidth = this.state.containerWidth;\n\n var previousValues = politicalParties.map(function (party) {\n return party.previousPeriod;\n });\n var currentValues = politicalParties.map(function (party) {\n return party.currentPeriod;\n });\n var maxValue = Math.max.apply(Math, _toConsumableArray(previousValues.concat(currentValues)));\n var widthAsText = (0, _getWidthAsText.getWidthAsText)(containerWidth);\n\n return (0, _preact.h)(\n 'div',\n { ref: function ref(el) {\n _this2.element = el;\n }, className: _App2.default.withComparison },\n (0, _preact.h)(\n 'header',\n { className: _App2.default.withComparison__header },\n (0, _preact.h)(\n 'h1',\n { className: _App2.default.withComparison__title },\n title\n ),\n (0, _preact.h)(\n 'div',\n { className: _App2.default.withComparison__description },\n createDescription(surveyMetadata)\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: (0, _dhUtils.bem)(_App2.default.withComparison__columnHeaders, widthAsText), 'aria-hidden': 'true' },\n (0, _preact.h)(\n 'div',\n { className: _App2.default.withComparison__header__party },\n 'Parti'\n ),\n (0, _preact.h)(\n 'div',\n { className: _App2.default.withComparison__header__diff },\n 'Endring'\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: (0, _dhUtils.bem)(_App2.default.withComparison__partyColumns, widthAsText) },\n politicalParties.map(function (party) {\n return (0, _preact.h)(_PartyColumn.PartyColumn, {\n key: party.nameShort,\n containerWidth: containerWidth,\n politicalParty: party,\n maxValue: maxValue });\n })\n ),\n (0, _preact.h)(\n 'div',\n { className: _App2.default.withComparison__source },\n 'Kilde: ',\n surveyMetadata.source\n )\n );\n }\n }]);\n\n return App;\n}(_preact.Component);\n\nfunction createDescription(surveyMetadata) {\n var startDate = surveyMetadata.startDate,\n endDate = surveyMetadata.endDate,\n interviewCount = surveyMetadata.interviewCount,\n errorMarginLowest = surveyMetadata.errorMarginLowest,\n errorMarginLargest = surveyMetadata.errorMarginLargest;\n\n if (startDate && endDate && interviewCount && interviewCount && errorMarginLowest && errorMarginLargest) {\n return 'Periode ' + startDate + '\\u2013' + endDate + '. ' + interviewCount + ' intervjuer. Feilmarginer fra ' + (0, _prettyPrintNumber.prettyPrintNumber)(errorMarginLowest) + '\\u2013' + (0, _prettyPrintNumber.prettyPrintNumber)(errorMarginLargest) + ' pp.';\n } else {\n return null;\n }\n}\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PartyColumn = PartyColumn;\n\nvar _preact = __webpack_require__(0);\n\nvar _dhUtils = __webpack_require__(1);\n\nvar _PartyColumn = __webpack_require__(38);\n\nvar _PartyColumn2 = _interopRequireDefault(_PartyColumn);\n\nvar _getWidthAsText = __webpack_require__(18);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// @jsx h\nfunction formatPercentage(value) {\n return value.toFixed(1).replace('.', ',');\n}\n\nfunction formatChange(value) {\n var str = value.toFixed(1).replace('.', ',');\n return value < 0 ? '\\u2212' + str.substr(1) : '+' + str;\n}\n\nfunction getSummary(politicalParty) {\n var name = politicalParty.name,\n previousPeriod = politicalParty.previousPeriod,\n currentPeriod = politicalParty.currentPeriod;\n\n var diff = currentPeriod - previousPeriod;\n\n var text = void 0;\n if (diff === 0) {\n text = 'det samme som ved forrige måling';\n } else {\n text = formatPercentage(Math.abs(diff)) + ' prosentpoeng ' + (diff > 0 ? 'mer' : 'mindre') + ' enn ved forrige m\\xE5ling';\n }\n return name + ' har ' + currentPeriod + ' % oppslutning \\u2013 ' + text;\n}\n\nfunction PartyColumn(props) {\n var politicalParty = props.politicalParty,\n maxValue = props.maxValue,\n containerWidth = props.containerWidth;\n var nameShort = politicalParty.nameShort,\n previousPeriod = politicalParty.previousPeriod,\n currentPeriod = politicalParty.currentPeriod;\n\n var diff = currentPeriod - previousPeriod;\n var previousPeriodSizePercent = previousPeriod / maxValue * 100;\n var currentPeriodSizePercent = currentPeriod / maxValue * 100;\n var widthAsText = (0, _getWidthAsText.getWidthAsText)(containerWidth);\n\n return (0, _preact.h)(\n 'div',\n { className: (0, _dhUtils.bem)(_PartyColumn2.default.withComparisonPartyColumn, widthAsText), 'aria-label': getSummary(politicalParty) },\n (0, _preact.h)(\n 'div',\n { className: (0, _dhUtils.bem)(_PartyColumn2.default.withComparisonPartyColumn__barContainer, widthAsText), 'aria-hidden': 'true' },\n (0, _preact.h)('div', { className: (0, _dhUtils.bem)(_PartyColumn2.default.withComparisonPartyColumn__bar, nameShort, 'previous', widthAsText), style: {\n width: previousPeriodSizePercent + '%',\n height: previousPeriodSizePercent + '%'\n } }),\n (0, _preact.h)(\n 'div',\n { className: (0, _dhUtils.bem)(_PartyColumn2.default.withComparisonPartyColumn__bar, nameShort, widthAsText), style: {\n width: currentPeriodSizePercent + '%',\n height: currentPeriodSizePercent + '%'\n } },\n (0, _preact.h)(\n 'div',\n { className: (0, _dhUtils.bem)(_PartyColumn2.default.withComparisonPartyColumn__bar__diff, widthAsText), 'aria-hidden': 'true' },\n formatChange(diff)\n )\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: (0, _dhUtils.bem)(_PartyColumn2.default.withComparisonPartyColumn__name, widthAsText) },\n nameShort\n ),\n (0, _preact.h)(\n 'div',\n { className: (0, _dhUtils.bem)(_PartyColumn2.default.withComparisonPartyColumn__value, widthAsText) },\n formatPercentage(currentPeriod),\n ' %'\n ),\n (0, _preact.h)(\n 'div',\n { className: (0, _dhUtils.bem)(_PartyColumn2.default.withComparisonPartyColumn__diff, widthAsText) },\n formatChange(diff)\n )\n );\n}\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"withComparisonPartyColumn\":\"dh-partibarometer-withComparisonPartyColumn\",\"withComparisonPartyColumn--narrow\":\"dh-partibarometer-withComparisonPartyColumn--narrow\",\"withComparisonPartyColumn--medium\":\"dh-partibarometer-withComparisonPartyColumn--medium\",\"withComparisonPartyColumn--wide\":\"dh-partibarometer-withComparisonPartyColumn--wide\",\"withComparisonPartyColumn__barContainer\":\"dh-partibarometer-withComparisonPartyColumn__barContainer\",\"withComparisonPartyColumn__barContainer--narrow\":\"dh-partibarometer-withComparisonPartyColumn__barContainer--narrow\",\"withComparisonPartyColumn__barContainer--medium\":\"dh-partibarometer-withComparisonPartyColumn__barContainer--medium\",\"withComparisonPartyColumn__barContainer--wide\":\"dh-partibarometer-withComparisonPartyColumn__barContainer--wide\",\"withComparisonPartyColumn__bar\":\"dh-partibarometer-withComparisonPartyColumn__bar\",\"withComparisonPartyColumn__bar--narrow\":\"dh-partibarometer-withComparisonPartyColumn__bar--narrow\",\"withComparisonPartyColumn__bar--medium\":\"dh-partibarometer-withComparisonPartyColumn__bar--medium\",\"withComparisonPartyColumn__bar--wide\":\"dh-partibarometer-withComparisonPartyColumn__bar--wide\",\"withComparisonPartyColumn__bar__diff\":\"dh-partibarometer-withComparisonPartyColumn__bar__diff\",\"withComparisonPartyColumn__bar__diff--medium\":\"dh-partibarometer-withComparisonPartyColumn__bar__diff--medium\",\"withComparisonPartyColumn__bar__diff--wide\":\"dh-partibarometer-withComparisonPartyColumn__bar__diff--wide\",\"withComparisonPartyColumn__bar--previous\":\"dh-partibarometer-withComparisonPartyColumn__bar--previous\",\"withComparisonPartyColumn__bar--R\":\"dh-partibarometer-withComparisonPartyColumn__bar--R\",\"withComparisonPartyColumn__bar--SV\":\"dh-partibarometer-withComparisonPartyColumn__bar--SV\",\"withComparisonPartyColumn__bar--AP\":\"dh-partibarometer-withComparisonPartyColumn__bar--AP\",\"withComparisonPartyColumn__bar--SP\":\"dh-partibarometer-withComparisonPartyColumn__bar--SP\",\"withComparisonPartyColumn__bar--MDG\":\"dh-partibarometer-withComparisonPartyColumn__bar--MDG\",\"withComparisonPartyColumn__bar--KRF\":\"dh-partibarometer-withComparisonPartyColumn__bar--KRF\",\"withComparisonPartyColumn__bar--V\":\"dh-partibarometer-withComparisonPartyColumn__bar--V\",\"withComparisonPartyColumn__bar--H\":\"dh-partibarometer-withComparisonPartyColumn__bar--H\",\"withComparisonPartyColumn__bar--FRP\":\"dh-partibarometer-withComparisonPartyColumn__bar--FRP\",\"withComparisonPartyColumn__bar--FNB\":\"dh-partibarometer-withComparisonPartyColumn__bar--FNB\",\"withComparisonPartyColumn__bar--Andre\":\"dh-partibarometer-withComparisonPartyColumn__bar--Andre\",\"withComparisonPartyColumn__inlineValue\":\"dh-partibarometer-withComparisonPartyColumn__inlineValue\",\"withComparisonPartyColumn__inlineValue--narrow\":\"dh-partibarometer-withComparisonPartyColumn__inlineValue--narrow\",\"withComparisonPartyColumn__inlineValue--medium\":\"dh-partibarometer-withComparisonPartyColumn__inlineValue--medium\",\"withComparisonPartyColumn__inlineValue--wide\":\"dh-partibarometer-withComparisonPartyColumn__inlineValue--wide\",\"withComparisonPartyColumn__name\":\"dh-partibarometer-withComparisonPartyColumn__name\",\"withComparisonPartyColumn__name--narrow\":\"dh-partibarometer-withComparisonPartyColumn__name--narrow\",\"withComparisonPartyColumn__name--medium\":\"dh-partibarometer-withComparisonPartyColumn__name--medium\",\"withComparisonPartyColumn__name--wide\":\"dh-partibarometer-withComparisonPartyColumn__name--wide\",\"withComparisonPartyColumn__value\":\"dh-partibarometer-withComparisonPartyColumn__value\",\"withComparisonPartyColumn__value--narrow\":\"dh-partibarometer-withComparisonPartyColumn__value--narrow\",\"withComparisonPartyColumn__value--wide\":\"dh-partibarometer-withComparisonPartyColumn__value--wide\",\"withComparisonPartyColumn__diff\":\"dh-partibarometer-withComparisonPartyColumn__diff\",\"withComparisonPartyColumn__diff--narrow\":\"dh-partibarometer-withComparisonPartyColumn__diff--narrow\",\"withComparisonPartyColumn__diff--medium\":\"dh-partibarometer-withComparisonPartyColumn__diff--medium\",\"withComparisonPartyColumn__diff--wide\":\"dh-partibarometer-withComparisonPartyColumn__diff--wide\"};\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// v2-withComparison-bundle-06d86495a1c7ec5b100f.js"," \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 = \"https://static.nrk.no/dh/module/partibarometer/static/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 33);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a27b4b4be1d86f39d849","/** Virtual DOM Node */\nfunction VNode() {}\n\n/** Global options\n *\t@public\n *\t@namespace options {Object}\n */\nvar options = {\n\n\t/** If `true`, `prop` changes trigger synchronous component updates.\n *\t@name syncComponentUpdates\n *\t@type Boolean\n *\t@default true\n */\n\t//syncComponentUpdates: true,\n\n\t/** Processes all created VNodes.\n *\t@param {VNode} vnode\tA newly-created VNode to normalize/process\n */\n\t//vnode(vnode) { }\n\n\t/** Hook invoked after a component is mounted. */\n\t// afterMount(component) { }\n\n\t/** Hook invoked after the DOM is updated with a component's latest render. */\n\t// afterUpdate(component) { }\n\n\t/** Hook invoked immediately before a component is unmounted. */\n\t// beforeUnmount(component) { }\n};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\n/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a lightweight representation\n * of the structure of a DOM tree. This structure can be realized by recursively comparing it against\n * the current _actual_ DOM structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `
Hello!
`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\t// if a \"vnode hook\" is defined, pass every created VNode to it\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virutal DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p,\n\t list = items;\n\titems = [];\n\twhile (p = list.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hyrdating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined;\n }\n if (typeof vnode.nodeName === 'string') {\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n }\n return hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tif (old) old(null);\n\t\tif (value) value(node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\tsetProperty(node, name, value == null ? '' : value);\n\t\tif (value == null || value === false) node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink\\:?/, ''));\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.pop()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\t// diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n\tif (!diffLevel++) {\n\t\t// when first starting the diff, check if we're diffing an SVG or within an SVG\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\t// hydration is indicated by the existing element to be diffed not having a prop cache\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\t// append the element if its a new parent\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\t// diffLevel being reduced to 0 means we're exiting the diff\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\t\t// invoke queued componentDidMount lifecycle methods\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\t// empty values (null, undefined, booleans) render as empty Text nodes\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\t// Fast case: Strings & Numbers create/update Text nodes.\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\n\t\t// update if it's already a Text node:\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\t/* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\t// it wasn't a Text node: replace it with one and recycle the old Element\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\t// If the VNode represents a Component, perform a component diff:\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\t// If there's no existing element or it's the wrong type, create a new one:\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\t// move children into the replacement node\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t} // if the previous Element was mounted into the DOM, replace it inline\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\t// recycle the old element (skips non-Element node types)\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\t// Optimization: fast-path for elements containing a single TextNode:\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t}\n\t// otherwise, if there are existing or new children, diff them:\n\telse if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\t// Apply attributes/props from VNode to the DOM Element:\n\tdiffAttributes(out, vnode.attributes, props);\n\n\t// restore previous SVG mode: (in case we're exiting an SVG namespace)\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\t// Build up a map of keyed children and an Array of unkeyed children:\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\t// attempt to find a node based on key matching\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// attempt to pluck a node of the same type from the existing children\n\t\t\telse if (!child && min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// morph the matched/found/created DOM child to match vchild (deep)\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// remove unused keyed children:\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\t// remove orphaned unkeyed children:\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\t// if node is owned by a Component, unmount that component (ends up recursing back here)\n\t\tunmountComponent(component);\n\t} else {\n\t\t// If the node's VNode had a ref function, invoke it with null here.\n\t\t// (this is part of the React spec, and smart for unsetting references)\n\t\tif (node['__preactattr_'] != null && node['__preactattr_'].ref) node['__preactattr_'].ref(null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\t// remove attributes no longer present on the vnode by setting them to undefined\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\t// add new & update changed attributes\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n\tvar name = component.constructor.name;\n\t(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context) {\n\tvar list = components[Ctor.name],\n\t inst;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\tif (list) {\n\t\tfor (var i = list.length; i--;) {\n\t\t\tif (list[i].constructor === Ctor) {\n\t\t\t\tinst.nextBase = list[i].nextBase;\n\t\t\t\tlist.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tif (component.__ref = props.ref) delete props.ref;\n\tif (component.__key = props.key) delete props.key;\n\n\tif (!component.base || mountAll) {\n\t\tif (component.componentWillMount) component.componentWillMount();\n\t} else if (component.componentWillReceiveProps) {\n\t\tcomponent.componentWillReceiveProps(props, context);\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (opts !== 0) {\n\t\tif (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tif (component.__ref) component.__ref(component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t rendered,\n\t inst,\n\t cbase;\n\n\t// if updating\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (opts !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\t// context to pass to the child, can be updated via (grand-)parent component\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\t\t\t// set up high order component link\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\t// destroy high order component link\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || opts === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.unshift(component);\n\t} else if (!skip) {\n\t\t// Ensure that pending componentDidMount() hooks of child components\n\t\t// are called before the componentDidUpdate() hook in the parent.\n\t\t// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n\t\t// flushMounts();\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, previousContext);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\tif (component._renderCallbacks != null) {\n\t\twhile (component._renderCallbacks.length) {\n\t\t\tcomponent._renderCallbacks.pop().call(component);\n\t\t}\n\t}\n\n\tif (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\t\t\t// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\t// recursively tear down & recollect high-order component children:\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] && base['__preactattr_'].ref) base['__preactattr_'].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\tcollectComponent(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n\n/** Base Component class.\n *\tProvides `setState()` and `forceUpdate()`, which trigger rendering.\n *\t@public\n *\n *\t@example\n *\tclass MyFoo extends Component {\n *\t\trender(props, state) {\n *\t\t\treturn
;\n *\t\t}\n *\t}\n */\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.context = context;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.props = props;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.state = this.state || {};\n}\n\nextend(Component.prototype, {\n\n\t/** Returns a `boolean` indicating if the component should re-render when receiving the given `props` and `state`.\n *\t@param {object} nextProps\n *\t@param {object} nextState\n *\t@param {object} nextContext\n *\t@returns {Boolean} should the component re-render\n *\t@name shouldComponentUpdate\n *\t@function\n */\n\n\t/** Update component state by copying properties from `state` to `this.state`.\n *\t@param {object} state\t\tA hash of state properties to update with new values\n *\t@param {function} callback\tA function to be called once component state is updated\n */\n\tsetState: function setState(state, callback) {\n\t\tvar s = this.state;\n\t\tif (!this.prevState) this.prevState = extend({}, s);\n\t\textend(s, typeof state === 'function' ? state(s, this.props) : state);\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\tenqueueRender(this);\n\t},\n\n\n\t/** Immediately perform a synchronous re-render of the component.\n *\t@param {function} callback\t\tA function to be called after component is re-rendered.\n *\t@private\n */\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\n\n\t/** Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n *\tVirtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n *\t@param {object} props\t\tProps (eg: JSX attributes) received from parent element/component\n *\t@param {object} state\t\tThe component's current state\n *\t@param {object} context\t\tContext object (if a parent component has provided context)\n *\t@returns VNode\n */\n\trender: function render() {}\n});\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {Element} [merge]\tAttempt to re-use an existing DOM tree rooted at `merge`\n *\t@public\n *\n *\t@example\n *\t// render a div into :\n *\trender(
hello!
, document.body);\n *\n *\t@example\n *\t// render a \"Thing\" component into #foo:\n *\tconst Thing = ({ name }) => { name };\n *\trender(, document.querySelector('#foo'));\n */\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport { h, h as createElement, cloneElement, Component, render, rerender, options };\nexport default preact;\n//# sourceMappingURL=preact.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/preact/dist/preact.esm.js","import { toArray } from './array';\nimport bem from './bem';\nimport { createUniqueId } from './string';\n\nexport { bem, createUniqueId, toArray };\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/index.js","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/domready/ready.js","export function nodelistToArray (nodeList) {\n return [].slice.call(nodeList)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/nodelistToArray.js","export function uuid () {\n return `_${Math.random().toString(36).substr(2, 9)}`\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/uuid.js","// @flow\nimport { SimpleErrorReport } from '@nrk/dh-simple-error-report'\n\nexport function createErrorReporter (isErrorReportingEnabled: boolean): SimpleErrorReport {\n return new SimpleErrorReport({\n name: 'dh-partibarometer',\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/errorReporting.js","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"simple-error-report\"]={})}(this,function(e){\"use strict\";var n=function(){function e(e,n){for(var r=0;r0}}]),e}(),t=function(){function e(e,n){for(var r=0;r0&&(s.line=i),o>0&&(s.column=o),e.sendErrorReport(s)}),window.addEventListener(\"unhandledrejection\",function(n){e.sendErrorReport({message:\"Unhandled Promise Rejection: \"+n.reason})}))}},{key:\"sendErrorReport\",value:function(e){var n,r,t;this.dryRun?\"undefined\"!=typeof console&&console.log(\"Dry run: \"+JSON.stringify(e)):this.errorRegister.isInRegisterWithinRange(e.message,500)||(this.errorRegister.addErrorToRegister(e.message),n=this.url+\"/\"+this.name,r=e,(t=new XMLHttpRequest).open(\"POST\",n),t.setRequestHeader(\"Content-Type\",\"application/json\"),t.send(JSON.stringify(r)))}}]),e}();e.SimpleErrorReport=o,Object.defineProperty(e,\"__esModule\",{value:!0})});\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","export function toArray(nodeList) {\n return [].slice.call(nodeList);\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/array.js","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction toStrings(object) {\n return Object.keys(object).filter(function (key) {\n return object[key];\n });\n}\n\nexport default (function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n var strings = modifiers.filter(function (modifier) {\n return typeof modifier === 'string';\n });\n var objects = modifiers.filter(function (modifier) {\n return typeof modifier === 'object';\n });\n\n var objectString = objects.map(function (object) {\n return toStrings(object);\n }).reduce(function (a, b) {\n return [].concat(_toConsumableArray(a), _toConsumableArray(b));\n }, []);\n\n return [blockName].concat(strings.map(function (modifier) {\n return blockName + '--' + modifier;\n })).concat(objectString.map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n});\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/bem.js","export function createUniqueId() {\n var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return '' + prefix + Math.random().toString(36).substr(2, len - prefix.length);\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/string.js","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"dh-analytics-utils\"]={})}(this,function(e){\"use strict\";function n(){return window.ga}var t=Object.assign||function(e){for(var n=1;n {\n el.id = uuid()\n window[rootElementClassName][el.id] = true\n\n // Extract preloaded state sent from server\n const preloadedState = JSON.parse(el.getAttribute('data-preloaded-state'))\n const errorEventTrackingEnabled = JSON.parse(el.getAttribute('data-error-event-tracking-enabled'))\n\n // Register error reporter\n const simpleErrorReport = createErrorReporter(errorEventTrackingEnabled)\n simpleErrorReport.listenAndCatch()\n\n // Extract metadata required to create google analytics tracker\n const gaPropertyId = el.getAttribute('data-ga-property-id')\n const metadata = JSON.parse(el.getAttribute('data-metadata'))\n const { title, selfId, published } = metadata\n\n // create google analytics tracker\n const googleAnalyticsTracker = createGoogleAnalyticsTracker({\n name: 'dh',\n gaPropertyId,\n self: {\n id: selfId,\n title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: getContextId(document.location.href)\n }\n })\n\n // ... and render with the exact same props\n render(, el, el.firstChild)\n\n // track load event\n googleAnalyticsTracker.sendEvent({\n category: `dh-modul–partibarometer`,\n label: 'sammenlikning',\n action: 'load',\n value: new Date().getTime()\n })\n\n // Enable webpack hot-reloading\n if (__HOT__) {\n // Reload and re-render React application\n module.hot.accept('./withComparison-client', () => {\n render(require('./components/withComparison/App').default, el)\n })\n }\n })\n}\n\nfunction findElements () {\n return nodelistToArray(document.getElementsByClassName(rootElementClassName))\n .filter(el => !isInitialized(el))\n}\n\nfunction isInitialized (el) {\n return el.id && window[rootElementClassName][el.id]\n}\n\ndomready(init)\n\n\n\n// WEBPACK FOOTER //\n// ./src/v2/withComparison-client.js","// @flow @jsx h\nimport { h, Component } from 'preact'\nimport styles from './App.css'\nimport { PartyColumn } from './PartyColumn'\n\nimport type { SurveyMetadata, PoliticalParty } from './types'\nimport { bem } from '@nrk/dh-utils'\nimport { getWidthAsText } from './lib/getWidthAsText'\nimport { prettyPrintNumber } from '../helpers/prettyPrintNumber'\n\ntype Props = {\n title: string,\n surveyMetadata: SurveyMetadata,\n politicalParties: Array,\n}\n\ntype State = {\n containerWidth?: number\n}\n\nexport class App extends Component {\n element: HTMLDivElement\n\n componentDidMount () {\n this.setState({ containerWidth: this.element.offsetWidth })\n window.addEventListener('resize', this.resizeHandler)\n window.addEventListener('orientationchange', this.resizeHandler)\n }\n\n componentWillUnmount () {\n window.removeEventListener('resize', this.resizeHandler)\n window.removeEventListener('orientationchange', this.resizeHandler)\n }\n\n resizeHandler = () => {\n this.setState({\n containerWidth: this.element.offsetWidth\n })\n }\n\n render () {\n const { title, surveyMetadata, politicalParties } = this.props\n const { containerWidth } = this.state\n const previousValues = politicalParties.map(party => party.previousPeriod)\n const currentValues = politicalParties.map(party => party.currentPeriod)\n const maxValue = Math.max(...previousValues.concat(currentValues))\n const widthAsText = getWidthAsText(containerWidth)\n\n return (\n
{\n this.element = el\n }} className={styles.withComparison}>\n
\n

{title}

\n
{createDescription(surveyMetadata)}
\n
\n \n
\n { politicalParties.map(party => (\n \n )) }\n
\n
Kilde: {surveyMetadata.source}
\n
\n )\n }\n}\n\nfunction createDescription (surveyMetadata: SurveyMetadata): string {\n const { startDate, endDate, interviewCount, errorMarginLowest, errorMarginLargest } = surveyMetadata\n if (startDate && endDate && interviewCount && interviewCount && errorMarginLowest && errorMarginLargest) {\n return `Periode ${startDate}–${endDate}. ${interviewCount} intervjuer. Feilmarginer fra ${prettyPrintNumber(errorMarginLowest)}–${prettyPrintNumber(errorMarginLargest)} pp.`\n } else {\n return null\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/v2/components/withComparison/App.js","// @flow @jsx h\nimport { h } from 'preact'\nimport { bem } from '@nrk/dh-utils'\nimport style from './PartyColumn.css'\nimport { getWidthAsText } from './lib/getWidthAsText'\n\nimport type { PoliticalParty } from './types'\n\ntype Props = {\n containerWidth?: number,\n politicalParty: PoliticalParty,\n maxValue: number,\n}\n\nfunction formatPercentage (value: number) {\n return value.toFixed(1).replace('.', ',')\n}\n\nfunction formatChange (value: number) {\n const str = value.toFixed(1).replace('.', ',')\n return value < 0 ? `−${str.substr(1)}` : `+${str}`\n}\n\nfunction getSummary (politicalParty: PoliticalParty) {\n const { name, previousPeriod, currentPeriod } = politicalParty\n const diff = currentPeriod - previousPeriod\n\n let text\n if (diff === 0) {\n text = 'det samme som ved forrige måling'\n } else {\n text = `${formatPercentage(Math.abs(diff))} prosentpoeng ${diff > 0 ? 'mer' : 'mindre'} enn ved forrige måling`\n }\n return `${name} har ${currentPeriod} % oppslutning – ${text}`\n}\n\nexport function PartyColumn (props: Props) {\n const { politicalParty, maxValue, containerWidth } = props\n const { nameShort, previousPeriod, currentPeriod } = politicalParty\n const diff = currentPeriod - previousPeriod\n const previousPeriodSizePercent = previousPeriod / maxValue * 100\n const currentPeriodSizePercent = currentPeriod / maxValue * 100\n const widthAsText = getWidthAsText(containerWidth)\n\n return (\n
\n \n )\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/v2/components/withComparison/PartyColumn.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"withComparisonPartyColumn\":\"dh-partibarometer-withComparisonPartyColumn\",\"withComparisonPartyColumn--narrow\":\"dh-partibarometer-withComparisonPartyColumn--narrow\",\"withComparisonPartyColumn--medium\":\"dh-partibarometer-withComparisonPartyColumn--medium\",\"withComparisonPartyColumn--wide\":\"dh-partibarometer-withComparisonPartyColumn--wide\",\"withComparisonPartyColumn__barContainer\":\"dh-partibarometer-withComparisonPartyColumn__barContainer\",\"withComparisonPartyColumn__barContainer--narrow\":\"dh-partibarometer-withComparisonPartyColumn__barContainer--narrow\",\"withComparisonPartyColumn__barContainer--medium\":\"dh-partibarometer-withComparisonPartyColumn__barContainer--medium\",\"withComparisonPartyColumn__barContainer--wide\":\"dh-partibarometer-withComparisonPartyColumn__barContainer--wide\",\"withComparisonPartyColumn__bar\":\"dh-partibarometer-withComparisonPartyColumn__bar\",\"withComparisonPartyColumn__bar--narrow\":\"dh-partibarometer-withComparisonPartyColumn__bar--narrow\",\"withComparisonPartyColumn__bar--medium\":\"dh-partibarometer-withComparisonPartyColumn__bar--medium\",\"withComparisonPartyColumn__bar--wide\":\"dh-partibarometer-withComparisonPartyColumn__bar--wide\",\"withComparisonPartyColumn__bar__diff\":\"dh-partibarometer-withComparisonPartyColumn__bar__diff\",\"withComparisonPartyColumn__bar__diff--medium\":\"dh-partibarometer-withComparisonPartyColumn__bar__diff--medium\",\"withComparisonPartyColumn__bar__diff--wide\":\"dh-partibarometer-withComparisonPartyColumn__bar__diff--wide\",\"withComparisonPartyColumn__bar--previous\":\"dh-partibarometer-withComparisonPartyColumn__bar--previous\",\"withComparisonPartyColumn__bar--R\":\"dh-partibarometer-withComparisonPartyColumn__bar--R\",\"withComparisonPartyColumn__bar--SV\":\"dh-partibarometer-withComparisonPartyColumn__bar--SV\",\"withComparisonPartyColumn__bar--AP\":\"dh-partibarometer-withComparisonPartyColumn__bar--AP\",\"withComparisonPartyColumn__bar--SP\":\"dh-partibarometer-withComparisonPartyColumn__bar--SP\",\"withComparisonPartyColumn__bar--MDG\":\"dh-partibarometer-withComparisonPartyColumn__bar--MDG\",\"withComparisonPartyColumn__bar--KRF\":\"dh-partibarometer-withComparisonPartyColumn__bar--KRF\",\"withComparisonPartyColumn__bar--V\":\"dh-partibarometer-withComparisonPartyColumn__bar--V\",\"withComparisonPartyColumn__bar--H\":\"dh-partibarometer-withComparisonPartyColumn__bar--H\",\"withComparisonPartyColumn__bar--FRP\":\"dh-partibarometer-withComparisonPartyColumn__bar--FRP\",\"withComparisonPartyColumn__bar--FNB\":\"dh-partibarometer-withComparisonPartyColumn__bar--FNB\",\"withComparisonPartyColumn__bar--Andre\":\"dh-partibarometer-withComparisonPartyColumn__bar--Andre\",\"withComparisonPartyColumn__inlineValue\":\"dh-partibarometer-withComparisonPartyColumn__inlineValue\",\"withComparisonPartyColumn__inlineValue--narrow\":\"dh-partibarometer-withComparisonPartyColumn__inlineValue--narrow\",\"withComparisonPartyColumn__inlineValue--medium\":\"dh-partibarometer-withComparisonPartyColumn__inlineValue--medium\",\"withComparisonPartyColumn__inlineValue--wide\":\"dh-partibarometer-withComparisonPartyColumn__inlineValue--wide\",\"withComparisonPartyColumn__name\":\"dh-partibarometer-withComparisonPartyColumn__name\",\"withComparisonPartyColumn__name--narrow\":\"dh-partibarometer-withComparisonPartyColumn__name--narrow\",\"withComparisonPartyColumn__name--medium\":\"dh-partibarometer-withComparisonPartyColumn__name--medium\",\"withComparisonPartyColumn__name--wide\":\"dh-partibarometer-withComparisonPartyColumn__name--wide\",\"withComparisonPartyColumn__value\":\"dh-partibarometer-withComparisonPartyColumn__value\",\"withComparisonPartyColumn__value--narrow\":\"dh-partibarometer-withComparisonPartyColumn__value--narrow\",\"withComparisonPartyColumn__value--wide\":\"dh-partibarometer-withComparisonPartyColumn__value--wide\",\"withComparisonPartyColumn__diff\":\"dh-partibarometer-withComparisonPartyColumn__diff\",\"withComparisonPartyColumn__diff--narrow\":\"dh-partibarometer-withComparisonPartyColumn__diff--narrow\",\"withComparisonPartyColumn__diff--medium\":\"dh-partibarometer-withComparisonPartyColumn__diff--medium\",\"withComparisonPartyColumn__diff--wide\":\"dh-partibarometer-withComparisonPartyColumn__diff--wide\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v2/components/withComparison/PartyColumn.css\n// module id = 38\n// module chunks = 1"],"sourceRoot":""}