{“ast”:null,“code”:“// raw.githubusercontent.com/mrdoob/three.js/master/examples/jsm/loaders/KMZLoader.jsnn/**n * @author mrdoob / mrdoob.com/n */nimport { DefaultLoadingManager, FileLoader, Group, LoadingManager } from "three";nimport * as JSZip from 'jszip';nimport { ColladaLoader } from "../loaders/ColladaLoader.js";nnvar KMZLoader = function KMZLoader(manager) {n this.manager = manager !== undefined ? manager : DefaultLoadingManager;n};nnKMZLoader.prototype = {n constructor: KMZLoader,n load: function load(url, onLoad, onProgress, onError) {n var scope = this;n var loader = new FileLoader(scope.manager);n loader.setPath(scope.path);n loader.setResponseType('arraybuffer');n loader.load(url, function (text) {n scope.parse(text).then(function (data) {n onLoad(data);n });n }, onProgress, onError);n },n setPath: function setPath(value) {n this.path = value;n return this;n },n parse: function parse(data) {n var promise = new Promise(function (resolve, reject) {n //n // asyncn JSZip.loadAsync(data).then(function (zip) {n function findFile(url) {n for (var path in zip.files) {n if (path.substr(-url.length) === url) {n return zip.files;n }n }n }nn var manager = new LoadingManager();n manager.setURLModifier(function (url) {n var image = findFile(url);nn if (image) {n console.log('Loading', url);n var blob = new Blob(, {n type: 'application/octet-stream'n });n return URL.createObjectURL(blob);n }nn return url;n });nn if (zip.files) {n zip.files.async('string').then(function (content) {n var xml = new DOMParser().parseFromString(content, 'application/xml');n var model = xml.querySelector('Placemark Model Link href');nn if (model) {n var loader = new ColladaLoader(manager);n zip.files.async('string').then(function (content) {n resolve(loader.parse(content));n });n }n });n } else {n console.warn('KMZLoader: Missing doc.kml file.');nn for (var path in zip.files) {n var extension = path.split('.').pop().toLowerCase();nn if (extension === 'dae') {n var loader = new ColladaLoader(manager);n resolve(loader.parse(zip.files.asText()));n }n }nn console.error('KMZLoader: Couldn\'t find .dae file.');n return {n scene: new Group()n };n }n }); // eslint-disable-line no-undefn });n return promise;n }n};nexport { KMZLoader };”,“map”:{“version”:3,“sources”:[“/Users/lemonandroid/Banal Dropbox/random/redux-os/app/javascript/packs/kmz/jsm/loaders/KMZLoader.js”],“names”:,“mappings”:“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”,“sourcesContent”:[“// raw.githubusercontent.com/mrdoob/three.js/master/examples/jsm/loaders/KMZLoader.jsnn/**n * @author mrdoob / mrdoob.com/n */nnimport {ntDefaultLoadingManager,ntFileLoader,ntGroup,ntLoadingManagern} from "three";nnnimport * as JSZip from 'jszip';nnimport { ColladaLoader } from "../loaders/ColladaLoader.js";nnvar KMZLoader = function ( manager ) {nntthis.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;nn};nnKMZLoader.prototype = {nntconstructor: KMZLoader,nntload: function ( url, onLoad, onProgress, onError ) {nnttvar scope = this;nnttvar loader = new FileLoader( scope.manager );nttloader.setPath( scope.path );nttloader.setResponseType( 'arraybuffer' );nttloader.load( url, function ( text ) {ntttscope.parse( text ).then(function(data) {nttttonLoad(data);nttt});nntt}, onProgress, onError );nnt},nntsetPath: function ( value ) {nnttthis.path = value;nttreturn this;nnt},nntparse: function ( data ) {tnttlet promise = new Promise(function(resolve, reject) {nnttt//nttt// asyncntttJSZip.loadAsync( data ).then(function(zip) {nnttttfunction findFile( url ) {nttttnnntttttfor ( var path in zip.files ) {nttnttttttif ( path.substr( - url.length ) === url ) {nttntttttttreturn zip.files[ path ];nttntttttt}nttnttttt}nttntttt}nnttttvar manager = new LoadingManager();nttttmanager.setURLModifier( function ( url ) {nttntttttvar image = findFile( url );nttntttttif ( image ) {nttnttttttconsole.log( 'Loading', url );nttnttttttvar blob = new Blob( [ image.asArrayBuffer() ], { type: 'application/octet-stream' } );nttttttreturn URL.createObjectURL( blob );nttnttttt}nttntttttreturn url;nttntttt} );nnttttif ( zip.files[ 'doc.kml' ] ) {ntttttzip.files[ 'doc.kml' ].async('string').then(function(content) {nttttttvar xml = new DOMParser().parseFromString(content , 'application/xml' );nnttttttvar model = xml.querySelector( 'Placemark Model Link href' );nttnttttttif ( model ) {nttntttttttvar loader = new ColladaLoader( manager );ntttttttzip.files[ model.textContent ].async('string').then(function(content) {nttttttttresolve(loader.parse(content));nttttttt});ntttttt}nttttt})ntttt} else {nntttttconsole.warn( 'KMZLoader: Missing doc.kml file.' );nntttttfor ( var path in zip.files ) {nnttttttvar extension = path.split( '.' ).pop().toLowerCase();nnttttttif ( extension === 'dae' ) {nntttttttvar loader = new ColladaLoader( manager );ntttttttttttresolve(loader.parse( zip.files[ path ].asText() ));nntttttt}nnttttt}ntttttnntttttconsole.error( 'KMZLoader: Couldn\'t find .dae file.' );ntttttreturn { scene: new Group() };nntttt}nttttnnttt}); // eslint-disable-line no-undefntttntt});nnnttreturn promise;nt}nn};nnexport { KMZLoader };”]},“metadata”:{},“sourceType”:“module”}