UNPKG

vue-cesium

Version:
1 lines 3.27 kB
{"version":3,"file":"printWindow.mjs","sources":["../../../../../../packages/components/controls/print/printWindow.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-10-27 15:54:13\n * @LastEditTime: 2022-04-06 16:01:23\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\controls\\print\\printWindow.ts\n */\nimport defer from '@vue-cesium/utils/defer'\n\n/**\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 deferred = 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":";;;AAkBA,SAAS,YAAY,aAAe,EAAA;AAClC,EAAA,MAAM,WAAW,KAAM,EAAA,CAAA;AACvB,EAAA,IAAI,oBAAuB,GAAA,CAAA,CAAA;AAE3B,EAAM,MAAA,OAAA,GAAU,WAAW,WAAY;AACrC,IAAA,QAAA,CAAS,OAAO,KAAK,CAAA,CAAA;AAAA,KACpB,GAAK,CAAA,CAAA;AAER,EAAA,SAAS,aAAgB,GAAA;AACvB,IAAA,YAAA,CAAa,OAAO,CAAA,CAAA;AAAA,GACtB;AAEA,EAAA,SAAS,aAAgB,GAAA;AACvB,IAAA,IAAI,wBAAwB,CAAG,EAAA;AAC7B,MAAA,QAAA,CAAS,OAAQ,EAAA,CAAA;AAAA,KACnB;AAAA,GACF;AAEA,EAAA,IAAI,cAAc,UAAY,EAAA;AAC5B,IAAA,aAAA,CAAc,UAAW,CAAA,OAAO,CAAE,CAAA,WAAA,CAAY,SAAU,GAAK,EAAA;AAC3D,MAAc,aAAA,EAAA,CAAA;AACd,MAAA,IAAI,IAAI,OAAS,EAAA;AACf,QAAE,EAAA,oBAAA,CAAA;AAAA,OACG,MAAA;AACL,QAAE,EAAA,oBAAA,CAAA;AACF,QAAc,aAAA,EAAA,CAAA;AAAA,OAChB;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAEA,EAAA,aAAA,CAAc,gBAAgB,WAAY;AACxC,IAAc,aAAA,EAAA,CAAA;AACd,IAAE,EAAA,oBAAA,CAAA;AAAA,GACJ,CAAA;AACA,EAAA,aAAA,CAAc,eAAe,WAAY;AACvC,IAAc,aAAA,EAAA,CAAA;AACd,IAAE,EAAA,oBAAA,CAAA;AACF,IAAc,aAAA,EAAA,CAAA;AAAA,GAChB,CAAA;AAKA,EAAA,MAAM,SAAS,aAAc,CAAA,QAAA,CAAS,WAAY,CAAA,OAAA,EAAS,MAAM,IAAI,CAAA,CAAA;AACrE,EAAA,IAAI,CAAC,MAAQ,EAAA;AACX,IAAA,aAAA,CAAc,KAAM,EAAA,CAAA;AAAA,GACtB;AAEA,EAAA,OAAO,QAAS,CAAA,OAAA,CAAA;AAClB;;;;"}