{"version":3,"sources":["webpack:///./modules/PublicationsFilter.ts","webpack:///./helpers/UrlHelper.ts","webpack:///C:/agentEucerin/_work/371/s/Foundation/Beiersdorf.Foundation.Styling/node_modules/timers-browserify/main.js","webpack:///C:/agentEucerin/_work/371/s/Foundation/Beiersdorf.Foundation.Styling/node_modules/setimmediate/setImmediate.js","webpack:///C:/agentEucerin/_work/371/s/Foundation/Beiersdorf.Foundation.Styling/node_modules/process/browser.js","webpack:///./modules/Expandable.ts","webpack:///./modules/Expander.ts","webpack:///./modules/FilterExpandElement.ts","webpack:///./modules/PublicationsFilterAction.ts"],"names":["__webpack_require__","r","__webpack_exports__","_FilterExpandElement__WEBPACK_IMPORTED_MODULE_0__","_PublicationsFilterAction__WEBPACK_IMPORTED_MODULE_1__","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_2__","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_3__","PublicationsFilter","element","options","this","suppressEvents","Object","assign","getDefaultOptions","init","document","addEventListener","event","item","target","closest","parentElement","classList","toggle","setup","selector","Array","from","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","initFields","resetBtn","querySelector","resetBtnSelector","filterNode","filterSelector","searchField","searchFieldSelector","searchIcon","searchIconSelector","filterButton","resultsContainer","resultsContainerSelector","loadingSpinner","showLoadingSpinner","initFilterItems","initFilterAction","initSearchField","initFilterActivated","addHandlerOnFilterChange","addHandlerOnResetBtn","addHandlerOnFilterClick","synchronize","shouldShowResults","hideLoadingSpinner","filterLoadingSpinnerSelector","createElement","innerHTML","appendChild","hidden","_this","setTimeout","keyCode","searchFieldChanged","filterFieldsChecked","reloadFilter","filterAction","updateUrl","executeReloadFilterAjax","getFilterAjaxUrl","url","fetch","then","res","text","newNode","publicationsFilterContainerSelector","containerSelector","filterItems","filterItemSelector","map","reset","resetSearchField","resetState","filterItem","refreshFilters","value","updateAllFilterItems","fItm","updateFilterAction","update","onFilterChange","input","checkboxSelector","onDocumentClick","currentFilterItem","closeExpander","bind","shouldshowResultsContainer","resultCount","teaserCount","hideResultsContainer","showResultsContainer","listNodeSelector","loadMoreSelector","ajaxSpinnerSelector","loadedTitleSelector","d","UrlHelper","all","match","addWithoutDecode","parameters","keyValuePairs","key","k","encodeURIComponent","v","search","RegExp","push","updateWithoutDecode","split","join","removeWithoutDecode","keys","i","length","replace","getWithoutDecode","undefined","exec","keyValue","global","scope","self","window","apply","Function","Timeout","id","clearFn","_id","_clearFn","exports","call","arguments","clearTimeout","setInterval","clearInterval","timeout","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","setImmediate","clearImmediate","process","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","getPrototypeOf","toString","handle","nextTick","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","messagePrefix","Math","random","onGlobalMessage","source","data","indexOf","slice","attachEvent","installPostMessageImplementation","MessageChannel","channel","port1","port2","installMessageChannelImplementation","html","documentElement","script","onreadystatechange","removeChild","installReadyStateChangeImplementation","callback","args","task","run","cachedSetTimeout","cachedClearTimeout","module","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","e","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","len","marker","runClearTimeout","Item","array","noop","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_0__","Expandable","container","className","includes","saveInitialHeight","setElementHeight","getSuitableHeight","height","maxHeight","getElementHeight","width","getElementWidth","elementHeight","elementWidth","offsetHeight","offsetWidth","collapsedHeight","style","toggleState","setCollapsedHeight","isActive","needToBeShown","clear","render","getContainer","_Expandable__WEBPACK_IMPORTED_MODULE_0__","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_1__","Expander","contaiterSelector","button","buttonSelector","expandable","expandableOptions","showExpanderButton","setButtonEventHandler","adjustAppearance","applyActiveFromOptions","toggleExpander","toggleActiveModifier","force","add","elementSelector","remove","showFade","hasFade","clickedEvent","setupExpander","hideButton","destroyExpander","beforeResize","setBeforResizeCB","cb","_Expander__WEBPACK_IMPORTED_MODULE_0__","FilterExpandElement","expander","getExpander","checkBoxes","getCheckBoxes","selectedContainer","getContainerForSelectedFilters","addHandlerOnCheckBoxChange","setTimeStamp","showSelectedFilters","getSelectedCheckBoxes","chbox","checked","counter","label","selectedTitle","max","parseInt","showSelected","selectedInputs","checkbox","timeStamp","Date","now","getCheckedFilters","PublicationsFilterAction","filterTag","filterTagSelector","ajaxUrl","baseContextUrl","getBaseUrl","filterAjaxUrl","tagsMap","tagsStr","atob","getAttribute","tagsMapAttrs","tagsStrAttr","tagCount","tagCountAttr","itemsCount","itemsCountAttr","getFilters","filters","filterKey","isAnd","values","valueNode","index","cache","isItemTagged","tag","charCodeAt","floor","isItemIncludedInFilter","isAndFilter","anyValueChecked","isItemVisible","f","cacheEntry","isIncluded","getSearchFieldValue","countResults","count","countSimulateChecked","checkedValue","oldCache","oldChecked","countSimulateOnlyThisChecked","oldFilter","setCount","isDisabled","countNode","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_1__","countNodeSelector","nextSibling","disabled","innerText","getReloadUrl","paramsStr","encodeParams","getParams","getPublicationFilterRedirectUrl","offset","searchValue","params","location","href","getParamKeys","_helpers_UrlHelper__WEBPACK_IMPORTED_MODULE_2__","entries","_a","_b","__read","fIdx","vIdx","countStr","resetButton","searchFieldValue","trim","history","pushState","reload","executeAjax","scrollToResultNode","navigator","userAgent","appVersion","resultNodeSelector","scrollIntoView","callbacks","loadMoreTriggered","gridNodeSelector","xhr","XMLHttpRequest","onload","status","responseElement","responseText","gridNode","resultNode","tagFilter","console","log","loadMoreLoaded","open","send","dateSelector"],"mappings":"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","file":"./modules/PublicationsFilter.5e1b7d11.js","sourcesContent":["import FilterExpandElement from './FilterExpandElement';\r\nimport FilterAction from './PublicationsFilterAction';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport { getOptions } from '../helpers/helperFunctions';\r\nimport { removeClass, addClass, createElementFromString } from \"../helpers/DOMHelpers\";\r\nconst moduleSelector = '[data-module=\"PublicationsFilter\"]';\r\n\r\n\r\nexport default class PublicationsFilter {\r\n private filterNode: HTMLElement;\r\n private resetBtn: HTMLElement;\r\n private filterItems: FilterExpandElement[];\r\n private filterAction: FilterAction;\r\n private suppressEvents: boolean = false;\r\n private searchField: HTMLInputElement;\r\n private searchIcon: HTMLElement;\r\n private filterButton: HTMLElement;\r\n private loadingSpinner: HTMLElement;\r\n private resultsContainer: HTMLElement;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new PublicationsFilter(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n \r\n constructor(public element: HTMLElement, private options: Optional = {}) {\r\n this.options = getOptions(this.element, Object.assign(this.getDefaultOptions(), this.options));\r\n this.init();\r\n document.addEventListener(\"click\", (event) => {\r\n const target = event.target as Element;\r\n // Check if the clicked element or one of its parents is a \".cw-publications-items\"\r\n const item = target.closest(\".cw-publications-items\");\r\n if (item) {\r\n const parentElement = item.closest(\".cw-publications-accordion\");\r\n if (parentElement) {\r\n parentElement.classList.toggle(\"publications-expanded\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n private initFields(): PublicationsFilter {\r\n this.resetBtn = this.element.querySelector(this.options.resetBtnSelector);\r\n this.filterNode = this.element.querySelector(this.options.filterSelector);\r\n this.searchField = this.element.querySelector(this.options.searchFieldSelector);\r\n this.searchIcon = this.element.querySelector(this.options.searchIconSelector);\r\n this.filterButton = this.element.querySelector(this.options.filterButton); \r\n this.resultsContainer = this.element.querySelector(this.options.resultsContainerSelector);\r\n this.loadingSpinner = null;\r\n this.suppressEvents = false;\r\n\r\n return this;\r\n }\r\n\r\n private init(): PublicationsFilter {\r\n this.initFields()\r\n .showLoadingSpinner()\r\n .initFilterItems(this.filterNode)\r\n .initFilterAction(this.element)\r\n .initSearchField()\r\n .initFilterActivated()\r\n .addHandlerOnFilterChange()\r\n .addHandlerOnResetBtn()\r\n .addHandlerOnFilterClick()\r\n .synchronize()\r\n .shouldShowResults()\r\n .hideLoadingSpinner();\r\n\r\n this.suppressEvents = false;\r\n return this;\r\n\r\n }\r\n\r\n private showLoadingSpinner(): PublicationsFilter {\r\n const spinner: HTMLElement = this.element.querySelector(this.options.filterLoadingSpinnerSelector);\r\n if (spinner == null || this.loadingSpinner == null) {\r\n this.loadingSpinner = document.createElement('div');\r\n this.loadingSpinner.innerHTML = `
`;\r\n this.element.appendChild(this.loadingSpinner);\r\n }\r\n else {\r\n this.loadingSpinner.hidden = false;\r\n }\r\n return this;\r\n }\r\n\r\n private hideLoadingSpinner(): PublicationsFilter {\r\n setTimeout(() => {\r\n this.loadingSpinner.hidden = true;\r\n removeClass(this.filterNode, \"loading\");\r\n }, 1000);\r\n return this;\r\n }\r\n\r\n private initSearchField(): PublicationsFilter {\r\n this.searchField.addEventListener('keyup', (event: KeyboardEvent) => {\r\n if (event.keyCode === 13) {\r\n this.searchFieldChanged();\r\n }\r\n });\r\n\r\n this.searchIcon.addEventListener('click', () => {\r\n this.searchFieldChanged();\r\n });\r\n return this;\r\n }\r\n\r\n private initFilterActivated(): PublicationsFilter {\r\n this.filterButton.addEventListener('click', () => {\r\n this.filterFieldsChecked();\r\n });\r\n return this;\r\n }\r\n private filterFieldsChecked(): PublicationsFilter {\r\n if (!this.suppressEvents)\r\n this.reloadFilter();\r\n return this;\r\n }\r\n private searchFieldChanged(): PublicationsFilter {\r\n if (!this.suppressEvents)\r\n this.reloadFilter();\r\n return this;\r\n }\r\n\r\n public reloadFilter(): PublicationsFilter {\r\n this.filterAction.updateUrl();\r\n this.executeReloadFilterAjax(this.filterAction.getFilterAjaxUrl());\r\n return this;\r\n }\r\n\r\n private executeReloadFilterAjax(url: string) {\r\n fetch(url, {})\r\n .then((res) => res.text())\r\n .then((res) => {\r\n const responseElement = createElementFromString(\"
\" + res + \"
\"),\r\n newNode: HTMLElement = responseElement.querySelector(this.options.publicationsFilterContainerSelector),\r\n currentNode: HTMLElement = this.element.querySelector(this.options.containerSelector);\r\n\r\n currentNode.innerHTML = newNode.innerHTML;\r\n this.init();\r\n });\r\n }\r\n\r\n\r\n private initFilterAction(element: HTMLElement): PublicationsFilter {\r\n \r\n\r\n this.filterAction = new FilterAction(element, { });\r\n\r\n return this;\r\n }\r\n\r\n private initFilterItems(element: HTMLElement): PublicationsFilter {\r\n this.filterItems = Array.from(element.querySelectorAll(this.options.filterItemSelector))\r\n .map((item: HTMLElement) => new FilterExpandElement(item));\r\n\r\n return this;\r\n }\r\n\r\n private addHandlerOnResetBtn(): PublicationsFilter {\r\n this.resetBtn.addEventListener('click', () => this.reset());\r\n return this;\r\n }\r\n\r\n private reset(): PublicationsFilter {\r\n this.suppressEvents = true;\r\n\r\n this.resetSearchField();\r\n this.filterAction.resetState();\r\n this.filterItems.forEach((filterItem: FilterExpandElement) => {\r\n filterItem.refreshFilters();\r\n });\r\n \r\n this.reloadFilter();\r\n \r\n this.suppressEvents = false;\r\n return this;\r\n }\r\n\r\n private resetSearchField(): PublicationsFilter {\r\n this.searchField.value = '';\r\n return this;\r\n }\r\n\r\n\r\n private updateAllFilterItems(): PublicationsFilter {\r\n this.filterItems.forEach(fItm => fItm.refreshFilters());\r\n return this;\r\n }\r\n\r\n private updateFilterAction(): PublicationsFilter {\r\n this.filterAction.update();\r\n this.filterAction.updateUrl();\r\n return this;\r\n }\r\n\r\n private onFilterChange(): void {\r\n const input = event.target;\r\n\r\n if (!this.suppressEvents) {\r\n if (input.closest(this.options.checkboxSelector)) {\r\n this.updateFilterAction();\r\n }\r\n }\r\n }\r\n\r\n private addHandlerOnFilterChange(): PublicationsFilter {\r\n this.filterNode.addEventListener('change', () => this.onFilterChange());\r\n return this;\r\n }\r\n\r\n private onDocumentClick(event: Event): void {\r\n const target = event.target,\r\n currentFilterItem = target.closest(this.options.filterItemSelector + '--active') || target;\r\n\r\n this.filterItems.forEach(fItm => fItm.element !== currentFilterItem && fItm.closeExpander());\r\n }\r\n\r\n private addHandlerOnFilterClick(): PublicationsFilter {\r\n document.addEventListener('click', this.onDocumentClick.bind(this));\r\n return this;\r\n }\r\n\r\n private synchronize(): PublicationsFilter {\r\n this.updateAllFilterItems();\r\n return this;\r\n }\r\n\r\n private shouldShowResults(): PublicationsFilter {\r\n this.shouldshowResultsContainer();\r\n return this;\r\n }\r\n private shouldshowResultsContainer(): PublicationsFilter {\r\n if (this.filterNode.dataset.resultCount === '0' || this.filterNode.dataset.teaserCount === '0') {\r\n this.hideResultsContainer();\r\n }\r\n else {\r\n this.showResultsContainer();\r\n }\r\n return this;\r\n }\r\n\r\n private showResultsContainer(): PublicationsFilter {\r\n removeClass(this.resultsContainer, 'cw-hidden');\r\n return this;\r\n }\r\n\r\n private hideResultsContainer(): PublicationsFilter {\r\n addClass(this.resultsContainer, 'cw-hidden');\r\n return this;\r\n }\r\n private getDefaultOptions(): Optional {\r\n return {\r\n filterSelector: '.cw-tag-filter',\r\n checkboxSelector: '.cw-cat-item__tag-value',\r\n searchFieldSelector: '.cw-search',\r\n filterItemSelector: '.cw-tag-filter__item',\r\n resetBtnSelector: '.cw-sort-filters__reset-btn',\r\n listNodeSelector: '.cw-publications-list',\r\n searchIconSelector: '.cw-search__wrapper .search-icon',\r\n filterButton: '.cw-publication-button',\r\n loadMoreSelector: '.cw-show-more',\r\n filterLoadingSpinnerSelector: '.cw-newsfilter-loading-spinner',\r\n ajaxSpinnerSelector: '.cw-newsfilter-ajax-spinner',\r\n publicationsFilterContainerSelector: '.cw-publications-filter .cw-container',\r\n containerSelector: '.cw-container',\r\n resultsContainerSelector: '.cw-publications-results',\r\n loadedTitleSelector: '.loaded-title'\r\n };\r\n }\r\n}\r\n\r\n\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n new PublicationsFilter.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n new PublicationsFilter.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n new PublicationsFilter.setup(moduleSelector);\r\n}","export class UrlHelper {\r\n static all(url: string): any {\r\n return url.match(/[^&\\?]*=[^&]*/gi) || [];\r\n }\r\n\r\n static addWithoutDecode(url: string, parameters: any): string {\r\n var keyValuePairs = this.all(url);\r\n\r\n for (var key in parameters) {\r\n var k = encodeURIComponent(key);\r\n var v = encodeURIComponent(parameters[key]);\r\n if (url.search(new RegExp(key + '=', 'i')) === -1) {\r\n keyValuePairs.push(k + '=' + v);\r\n } else {\r\n url = this.updateWithoutDecode(url, { k: v });\r\n }\r\n }\r\n\r\n return [url.split('?')[0], keyValuePairs.join('&')].join('?');\r\n }\r\n\r\n static removeWithoutDecode(url: string, keys: string[]): string {\r\n for (var i = 0; i < keys.length; i++) {\r\n url = url.replace(new RegExp(keys[i] + '=.*?&|&?' + keys[i] + '=[^&]*', 'i'), '');\r\n }\r\n\r\n return url;\r\n }\r\n\r\n static updateWithoutDecode(url: string, parameters: any): string {\r\n for (var key in parameters) {\r\n url = url.replace(new RegExp('(' + key + ')(=)([^&]*)', 'i'), '$1$2' + parameters[key]);\r\n }\r\n\r\n return url;\r\n }\r\n\r\n static getWithoutDecode(url: string, keys: string[]):any {\r\n var parameters = {};\r\n\r\n if (keys !== undefined) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var value = new RegExp(keys[i] + '=([^&]*)').exec(url);\r\n if (value != null && value[1] !== undefined) {\r\n parameters[keys[i]] = value[1];\r\n }\r\n }\r\n } else {\r\n var keyValuePairs = this.all(url);\r\n\r\n for (var i = 0; i < keyValuePairs.length; i++) {\r\n var keyValue = /([^&\\?]*)=([^&]*)/i.exec(keyValuePairs[i]);\r\n if (keyValue[1] !== undefined && keyValue[2] !== undefined) {\r\n parameters[keyValue[1]] = keyValue[2];\r\n }\r\n }\r\n }\r\n\r\n return parameters;\r\n }\r\n}","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a