UNPKG

2.44 kBSource Map (JSON)View Raw
1{"version":3,"file":"captureRef.web.js","sourceRoot":"","sources":["../../src/takeSnapshotAsync/captureRef.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AAGzC;;;;GAIG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CACtC,SAAkB,EAClB,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,QAAQ,WAAW,EAAE;QACnB,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxD,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD;YACE,MAAM,IAAI,KAAK,CAAC,0CAA0C,WAAW,EAAE,CAAC,CAAC;KAC5E;AACH,CAAC;AAED,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE;IAC7B,IAAI;QACF,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;KAC/B;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC","sourcesContent":["import { findDOMNode } from 'react-dom';\nimport { CaptureOptions } from 'react-native-view-shot';\n\nimport * as Creator from './Creator.web';\n\ndeclare const document: Document;\n/**\n * Taking a snapshot of DOM is not part of native browser behavior. \n * This is a hack to best emulate mobile functionality. \n * This implementation is based on https://github.com/pbakaus/domvas by Paul Bakaus http://paulbakaus.com/\n */\nexport default async function captureRef(\n component: Element,\n options: CaptureOptions = {}\n): Promise<string | Uint8ClampedArray | Blob> {\n const element = getElement(component || document.body);\n const { format = 'png' } = options;\n const finalFormat = format.toLowerCase();\n switch (finalFormat) {\n case 'jpg':\n return Creator.createJPEGAsync(element, options);\n case 'png':\n return Creator.createPNGAsync(element, options);\n case 'raw':\n return Creator.createPixelDataAsync(element, options);\n case 'svg':\n return Creator.createSVGAsync(element, options);\n case 'blob':\n return Creator.createBlobAsync(element, options);\n default:\n throw new Error(`takeSnapshotAsync: Unsupported format: ${finalFormat}`);\n }\n}\n\nconst getElement = component => {\n try {\n return findDOMNode(component);\n } catch (e) {\n return component;\n }\n};\n"]}
\No newline at end of file