{"ast":null,"code":"/**\n * Module requirements.\n */\nvar Polling = require('./polling');\n\nvar inherit = require('component-inherit');\n\nvar globalThis = require('../globalThis');\n/**\n * Module exports.\n */\n\n\nmodule.exports = JSONPPolling;\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n/**\n * Noop.\n */\n\nfunction empty() {}\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\n\nfunction JSONPPolling(opts) {\n  Polling.call(this, opts);\n  this.query = this.query || {}; // define global callbacks array if not present\n  // we do this here (lazily) to avoid unneeded global pollution\n\n  if (!callbacks) {\n    // we need to consider multiple engines in the same page\n    callbacks = globalThis.___eio = globalThis.___eio || [];\n  } // callback identifier\n\n\n  this.index = callbacks.length; // add callback to jsonp global\n\n  var self = this;\n  callbacks.push(function (msg) {\n    self.onData(msg);\n  }); // append to query string\n\n  this.query.j = this.index; // prevent spurious errors from being emitted when the window is unloaded\n\n  if (typeof addEventListener === 'function') {\n    addEventListener('beforeunload', function () {\n      if (self.script) self.script.onerror = empty;\n    }, false);\n  }\n}\n/**\n * Inherits from Polling.\n */\n\n\ninherit(JSONPPolling, Polling);\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  if (this.form) {\n    this.form.parentNode.removeChild(this.form);\n    this.form = null;\n    this.iframe = null;\n  }\n\n  Polling.prototype.doClose.call(this);\n};\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\n\nJSONPPolling.prototype.doPoll = function () {\n  var self = this;\n  var script = document.createElement('script');\n\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  script.async = true;\n  script.src = this.uri();\n\n  script.onerror = function (e) {\n    self.onError('jsonp poll error', e);\n  };\n\n  var insertAt = document.getElementsByTagName('script')[0];\n\n  if (insertAt) {\n    insertAt.parentNode.insertBefore(script, insertAt);\n  } else {\n    (document.head || document.body).appendChild(script);\n  }\n\n  this.script = script;\n  var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n  if (isUAgecko) {\n    setTimeout(function () {\n      var iframe = document.createElement('iframe');\n      document.body.appendChild(iframe);\n      document.body.removeChild(iframe);\n    }, 100);\n  }\n};\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n  var self = this;\n\n  if (!this.form) {\n    var form = document.createElement('form');\n    var area = document.createElement('textarea');\n    var id = this.iframeId = 'eio_iframe_' + this.index;\n    var iframe;\n    form.className = 'socketio';\n    form.style.position = 'absolute';\n    form.style.top = '-1000px';\n    form.style.left = '-1000px';\n    form.target = id;\n    form.method = 'POST';\n    form.setAttribute('accept-charset', 'utf-8');\n    area.name = 'd';\n    form.appendChild(area);\n    document.body.appendChild(form);\n    this.form = form;\n    this.area = area;\n  }\n\n  this.form.action = this.uri();\n\n  function complete() {\n    initIframe();\n    fn();\n  }\n\n  function initIframe() {\n    if (self.iframe) {\n      try {\n        self.form.removeChild(self.iframe);\n      } catch (e) {\n        self.onError('jsonp polling iframe removal error', e);\n      }\n    }\n\n    try {\n      // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n      var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n      iframe = document.createElement(html);\n    } catch (e) {\n      iframe = document.createElement('iframe');\n      iframe.name = self.iframeId;\n      iframe.src = 'javascript:0';\n    }\n\n    iframe.id = self.iframeId;\n    self.form.appendChild(iframe);\n    self.iframe = iframe;\n  }\n\n  initIframe(); // escape \\n to prevent it from being converted into \\r\\n by some UAs\n  // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n\n  data = data.replace(rEscapedNewline, '\\\\\\n');\n  this.area.value = data.replace(rNewline, '\\\\n');\n\n  try {\n    this.form.submit();\n  } catch (e) {}\n\n  if (this.iframe.attachEvent) {\n    this.iframe.onreadystatechange = function () {\n      if (self.iframe.readyState === 'complete') {\n        complete();\n      }\n    };\n  } else {\n    this.iframe.onload = complete;\n  }\n};","map":{"version":3,"sources":["D:/Development/Work/CENOS/cenos-ui/node_modules/engine.io-client/lib/transports/polling-jsonp.js"],"names":["Polling","require","inherit","globalThis","module","exports","JSONPPolling","rNewline","rEscapedNewline","callbacks","empty","opts","call","query","___eio","index","length","self","push","msg","onData","j","addEventListener","script","onerror","prototype","supportsBinary","doClose","parentNode","removeChild","form","iframe","doPoll","document","createElement","async","src","uri","e","onError","insertAt","getElementsByTagName","insertBefore","head","body","appendChild","isUAgecko","navigator","test","userAgent","setTimeout","doWrite","data","fn","area","id","iframeId","className","style","position","top","left","target","method","setAttribute","name","action","complete","initIframe","html","replace","value","submit","attachEvent","onreadystatechange","readyState","onload"],"mappings":"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","sourcesContent":["/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n  Polling.call(this, opts);\n\n  this.query = this.query || {};\n\n  // define global callbacks array if not present\n  // we do this here (lazily) to avoid unneeded global pollution\n  if (!callbacks) {\n    // we need to consider multiple engines in the same page\n    callbacks = globalThis.___eio = (globalThis.___eio || []);\n  }\n\n  // callback identifier\n  this.index = callbacks.length;\n\n  // add callback to jsonp global\n  var self = this;\n  callbacks.push(function (msg) {\n    self.onData(msg);\n  });\n\n  // append to query string\n  this.query.j = this.index;\n\n  // prevent spurious errors from being emitted when the window is unloaded\n  if (typeof addEventListener === 'function') {\n    addEventListener('beforeunload', function () {\n      if (self.script) self.script.onerror = empty;\n    }, false);\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  if (this.form) {\n    this.form.parentNode.removeChild(this.form);\n    this.form = null;\n    this.iframe = null;\n  }\n\n  Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n  var self = this;\n  var script = document.createElement('script');\n\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  script.async = true;\n  script.src = this.uri();\n  script.onerror = function (e) {\n    self.onError('jsonp poll error', e);\n  };\n\n  var insertAt = document.getElementsByTagName('script')[0];\n  if (insertAt) {\n    insertAt.parentNode.insertBefore(script, insertAt);\n  } else {\n    (document.head || document.body).appendChild(script);\n  }\n  this.script = script;\n\n  var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n  if (isUAgecko) {\n    setTimeout(function () {\n      var iframe = document.createElement('iframe');\n      document.body.appendChild(iframe);\n      document.body.removeChild(iframe);\n    }, 100);\n  }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n  var self = this;\n\n  if (!this.form) {\n    var form = document.createElement('form');\n    var area = document.createElement('textarea');\n    var id = this.iframeId = 'eio_iframe_' + this.index;\n    var iframe;\n\n    form.className = 'socketio';\n    form.style.position = 'absolute';\n    form.style.top = '-1000px';\n    form.style.left = '-1000px';\n    form.target = id;\n    form.method = 'POST';\n    form.setAttribute('accept-charset', 'utf-8');\n    area.name = 'd';\n    form.appendChild(area);\n    document.body.appendChild(form);\n\n    this.form = form;\n    this.area = area;\n  }\n\n  this.form.action = this.uri();\n\n  function complete () {\n    initIframe();\n    fn();\n  }\n\n  function initIframe () {\n    if (self.iframe) {\n      try {\n        self.form.removeChild(self.iframe);\n      } catch (e) {\n        self.onError('jsonp polling iframe removal error', e);\n      }\n    }\n\n    try {\n      // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n      var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n      iframe = document.createElement(html);\n    } catch (e) {\n      iframe = document.createElement('iframe');\n      iframe.name = self.iframeId;\n      iframe.src = 'javascript:0';\n    }\n\n    iframe.id = self.iframeId;\n\n    self.form.appendChild(iframe);\n    self.iframe = iframe;\n  }\n\n  initIframe();\n\n  // escape \\n to prevent it from being converted into \\r\\n by some UAs\n  // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n  data = data.replace(rEscapedNewline, '\\\\\\n');\n  this.area.value = data.replace(rNewline, '\\\\n');\n\n  try {\n    this.form.submit();\n  } catch (e) {}\n\n  if (this.iframe.attachEvent) {\n    this.iframe.onreadystatechange = function () {\n      if (self.iframe.readyState === 'complete') {\n        complete();\n      }\n    };\n  } else {\n    this.iframe.onload = complete;\n  }\n};\n"]},"metadata":{},"sourceType":"script"}