{"version":3,"file":"Element.js","sources":["../../../../src/govuk/vendor/polyfills/Document.mjs","../../../../src/govuk/vendor/polyfills/Element.mjs"],"sourcesContent":["(function(undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Document/detect.js\nvar detect = (\"Document\" in this)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Document&flags=always\nif ((typeof WorkerGlobalScope === \"undefined\") && (typeof importScripts !== \"function\")) {\n\n\tif (this.HTMLDocument) { // IE8\n\n\t\t// HTMLDocument is an extension of Document. If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.\n\t\tthis.Document = this.HTMLDocument;\n\n\t} else {\n\n\t\t// Create an empty function to act as the missing constructor for the document object, attach the document object as its prototype. The function needs to be anonymous else it is hoisted and causes the feature detect to prematurely pass, preventing the assignments below being made.\n\t\tthis.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());\n\t\tthis.Document.prototype = document;\n\t}\n}\n\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","import './Document.mjs'\n\n(function(undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Element/detect.js\nvar detect = ('Element' in this && 'HTMLElement' in this)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Element&flags=always\n(function () {\n\n\t// IE8\n\tif (window.Element && !window.HTMLElement) {\n\t\twindow.HTMLElement = window.Element;\n\t\treturn;\n\t}\n\n\t// create Element constructor\n\twindow.Element = window.HTMLElement = new Function('return function Element() {}')();\n\n\t// generate sandboxed iframe\n\tvar vbody = document.appendChild(document.createElement('body'));\n\tvar frame = vbody.appendChild(document.createElement('iframe'));\n\n\t// use sandboxed iframe to replicate Element functionality\n\tvar frameDocument = frame.contentWindow.document;\n\tvar prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));\n\tvar cache = {};\n\n\t// polyfill Element.prototype on an element\n\tvar shiv = function (element, deep) {\n\t\tvar\n\t\tchildNodes = element.childNodes || [],\n\t\tindex = -1,\n\t\tkey, value, childNode;\n\n\t\tif (element.nodeType === 1 && element.constructor !== Element) {\n\t\t\telement.constructor = Element;\n\n\t\t\tfor (key in cache) {\n\t\t\t\tvalue = cache[key];\n\t\t\t\telement[key] = value;\n\t\t\t}\n\t\t}\n\n\t\twhile (childNode = deep && childNodes[++index]) {\n\t\t\tshiv(childNode, deep);\n\t\t}\n\n\t\treturn element;\n\t};\n\n\tvar elements = document.getElementsByTagName('*');\n\tvar nativeCreateElement = document.createElement;\n\tvar interval;\n\tvar loopLimit = 100;\n\n\tprototype.attachEvent('onpropertychange', function (event) {\n\t\tvar\n\t\tpropertyName = event.propertyName,\n\t\tnonValue = !cache.hasOwnProperty(propertyName),\n\t\tnewValue = prototype[propertyName],\n\t\toldValue = cache[propertyName],\n\t\tindex = -1,\n\t\telement;\n\n\t\twhile (element = elements[++index]) {\n\t\t\tif (element.nodeType === 1) {\n\t\t\t\tif (nonValue || element[propertyName] === oldValue) {\n\t\t\t\t\telement[propertyName] = newValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcache[propertyName] = newValue;\n\t});\n\n\tprototype.constructor = Element;\n\n\tif (!prototype.hasAttribute) {\n\t\t// .hasAttribute\n\t\tprototype.hasAttribute = function hasAttribute(name) {\n\t\t\treturn this.getAttribute(name) !== null;\n\t\t};\n\t}\n\n\t// Apply Element prototype to the pre-existing DOM as soon as the body element appears.\n\tfunction bodyCheck() {\n\t\tif (!(loopLimit--)) clearTimeout(interval);\n\t\tif (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {\n\t\t\tshiv(document, true);\n\t\t\tif (interval && document.body.prototype) clearTimeout(interval);\n\t\t\treturn (!!document.body.prototype);\n\t\t}\n\t\treturn false;\n\t}\n\tif (!bodyCheck()) {\n\t\tdocument.onreadystatechange = bodyCheck;\n\t\tinterval = setInterval(bodyCheck, 25);\n\t}\n\n\t// Apply to any new elements created after load\n\tdocument.createElement = function createElement(nodeName) {\n\t\tvar element = nativeCreateElement(String(nodeName).toLowerCase());\n\t\treturn shiv(element);\n\t};\n\n\t// remove sandboxed iframe\n\tdocument.removeChild(vbody);\n}());\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n"],"names":[],"mappings":"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"}