UNPKG

3.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"Images.web.js","sourceRoot":"","sources":["../../src/takeSnapshotAsync/Images.web.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,SAAS,EACT,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAoB;IAC9D,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,EAAE;QACrC,OAAO;KACR;IAED,MAAM,wCAAwC,CAAC,OAAO,CAAC,CAAC;IAExD,IAAI,OAAO,YAAY,gBAAgB,EAAE;QACvC,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;KAClC;SAAM;QACL,MAAM,QAAQ,GAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC9E;AACH,CAAC;AAED,KAAK,UAAU,wCAAwC,CAAC,OAAoB;IAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChE,IAAI,UAAU,EAAE;QACd,MAAM,uBAAuB,GAAG,MAAM,2BAA2B,CAAC,UAAU,CAAC,CAAC;QAC9E,MAAM,gCAAgC,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACzF,OAAO,CAAC,KAAK,CAAC,WAAW,CACvB,YAAY,EACZ,uBAAuB,EACvB,gCAAgC,CACjC,CAAC;KACH;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAyB;IACxD,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC1B,OAAO;KACR;IAED,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;YACrB,MAAM,CAAC,6BAA6B,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n getSourceAndEncodeAsync,\n formatDataAsUrl,\n isDataUrl,\n getMimeTypeFromSource,\n} from './Utils.web';\n\nimport { batchProcessAllSourcesAsync } from './ProcessSources.web';\n\nexport async function processAllImagesAsync(element: HTMLElement): Promise<void> {\n if (!(element instanceof HTMLElement)) {\n return;\n }\n\n await processAndMutateNodeBackgroundImageAsync(element);\n\n if (element instanceof HTMLImageElement) {\n await loadNewImageAsync(element);\n } else {\n const children: any[] = Array.from(element.childNodes);\n await Promise.all(children.map(child => batchProcessAllSourcesAsync(child)));\n }\n}\n\nasync function processAndMutateNodeBackgroundImageAsync(element: HTMLElement): Promise<void> {\n const background = element.style.getPropertyValue('background');\n if (background) {\n const backgroundPropertyValue = await batchProcessAllSourcesAsync(background);\n const currentElementBackgroundPriority = element.style.getPropertyPriority('background');\n element.style.setProperty(\n 'background',\n backgroundPropertyValue,\n currentElementBackgroundPriority\n );\n }\n}\n\nasync function loadNewImageAsync(element: HTMLImageElement): Promise<any> {\n if (isDataUrl(element.src)) {\n return;\n }\n\n const data = await getSourceAndEncodeAsync(element.src);\n const dataUrl = formatDataAsUrl(data, getMimeTypeFromSource(element.src));\n return new Promise((resolve, reject) => {\n element.onload = () => resolve();\n element.onerror = () => {\n reject(`Image could not be loaded ${element.src}`);\n };\n element.src = dataUrl;\n });\n}\n"]}
\No newline at end of file