{"version":3,"file":"printWindow.mjs","sources":["../../../../../../packages/components/controls/print/printWindow.ts"],"sourcesContent":["/**\n * Tells the web browser to print a given window, which my be an iframe window, and\n * returns a promise that resolves when printing is safely over so that, for example\n * the window can be removed.\n * @param {Window} windowToPrint The window to print.\n * @returns {Promise} A promise that resolves when printing is safely over. The prommise is rejected if\n *                    there is no indication that the browser's print\n */\nfunction printWindow(windowToPrint) {\n  const { when } = Cesium\n  const deferred = when.defer()\n  let printInProgressCount = 0\n\n  const timeout = setTimeout(function () {\n    deferred.reject(false)\n  }, 10000)\n\n  function cancelTimeout() {\n    clearTimeout(timeout)\n  }\n\n  function resolveIfZero() {\n    if (printInProgressCount <= 0) {\n      deferred.resolve()\n    }\n  }\n\n  if (windowToPrint.matchMedia) {\n    windowToPrint.matchMedia('print').addListener(function (evt) {\n      cancelTimeout()\n      if (evt.matches) {\n        ++printInProgressCount\n      } else {\n        --printInProgressCount\n        resolveIfZero()\n      }\n    })\n  }\n\n  windowToPrint.onbeforeprint = function () {\n    cancelTimeout()\n    ++printInProgressCount\n  }\n  windowToPrint.onafterprint = function () {\n    cancelTimeout()\n    --printInProgressCount\n    resolveIfZero()\n  }\n\n  // First try printing with execCommand, because, in IE11, `printWindow.print()`\n  // prints the entire page instead of just the embedded iframe (if the window\n  // is an iframe, anyway).\n  const result = windowToPrint.document.execCommand('print', true, null)\n  if (!result) {\n    windowToPrint.print()\n  }\n\n  return deferred.promise\n}\n\nexport default printWindow\n"],"names":[],"mappings":"AAAA,SAAS,WAAW,CAAC,aAAa,EAAE;AACpC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;AAC1B,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAChC,EAAE,IAAI,oBAAoB,GAAG,CAAC,CAAC;AAC/B,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW;AACxC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,GAAG,EAAE,GAAG,CAAC,CAAC;AACV,EAAE,SAAS,aAAa,GAAG;AAC3B,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AAC1B,GAAG;AACH,EAAE,SAAS,aAAa,GAAG;AAC3B,IAAI,IAAI,oBAAoB,IAAI,CAAC,EAAE;AACnC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;AACzB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,CAAC,UAAU,EAAE;AAChC,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,SAAS,GAAG,EAAE;AAChE,MAAM,aAAa,EAAE,CAAC;AACtB,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;AACvB,QAAQ,EAAE,oBAAoB,CAAC;AAC/B,OAAO,MAAM;AACb,QAAQ,EAAE,oBAAoB,CAAC;AAC/B,QAAQ,aAAa,EAAE,CAAC;AACxB,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,aAAa,CAAC,aAAa,GAAG,WAAW;AAC3C,IAAI,aAAa,EAAE,CAAC;AACpB,IAAI,EAAE,oBAAoB,CAAC;AAC3B,GAAG,CAAC;AACJ,EAAE,aAAa,CAAC,YAAY,GAAG,WAAW;AAC1C,IAAI,aAAa,EAAE,CAAC;AACpB,IAAI,EAAE,oBAAoB,CAAC;AAC3B,IAAI,aAAa,EAAE,CAAC;AACpB,GAAG,CAAC;AACJ,EAAE,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACzE,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;AAC1B,GAAG;AACH,EAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B;;;;"}