{"version":3,"file":"dlg_download.min.js","sources":["../src/dlg_download.js"],"sourcesContent":["define(['jquery', 'core/log', 'filter_poodll/dlg_poodll', 'filter_poodll/utils_amd'], function ($, log, dialog, utils) {\r\n\r\n    log.debug('download dialog: initialising');\r\n\r\n\r\n    return {\r\n        dlg: null,\r\n        instanceprops: null,\r\n        pmr: null,\r\n        dlgbox: null,\r\n\r\n        init: function (pmr, instanceprops) {\r\n            this.dlg = dialog.clone();\r\n            this.dlg.setHeader('Download');\r\n            this.instanceprops = instanceprops;\r\n            this.pmr = pmr;\r\n        },\r\n        //for making multiple instances\r\n        clone: function () {\r\n            return $.extend(true, {}, this);\r\n        },\r\n\r\n        fetch_blob_url: function () {\r\n            var concatenatedBlob = utils.simpleConcatenateBlobs(this.instanceprops.blobs, this.instanceprops.blobs[0].type);\r\n            var mediaurl = URL.createObjectURL(concatenatedBlob);\r\n            return mediaurl;\r\n        },\r\n\r\n        fetch_dialogue_box: function () {\r\n            //this returns html that will be set to the DOM\r\n            return this.dlg.fetch_dialogue_box('download');\r\n        },\r\n        set_dialogue_box: function (dlgbox) {\r\n            //this is the jquery object that is the dlgbox in the DOM\r\n            this.dlgbox = dlgbox;\r\n            this.dlg.set_dialogue_box(dlgbox);\r\n\r\n        },\r\n        open: function () {\r\n            var self = this;\r\n            var ip = this.instanceprops;\r\n            var ext = '';\r\n            //make a filename with a 6 digit random number.\r\n            var nowdatetime = (new Date()).toISOString().replace(/[^0-9]/g, \"\");\r\n            var filename = ip.config.mediatype + '_' + nowdatetime;\r\n            //(Math.round(Math.random() * 899999,0) + 100000);\r\n            utils.doConcatenateBlobs(this.instanceprops.blobs, function (concatenatedBlob) {\r\n\r\n                //get blob type\r\n                switch (concatenatedBlob.type) {\r\n                    case 'audio/wav':\r\n                    case 'audio/pcm':\r\n                        ext = '.wav';\r\n                        break;\r\n                    case 'audio/ogg':\r\n                        ext = '.ogg';\r\n                        break;\r\n                    case 'audio/webm':\r\n                    case 'video/webm':\r\n                        ext = '.webm';\r\n                        break;\r\n\r\n                    default:\r\n                        var bits = concatenatedBlob.type.split('/');\r\n                        if (bits.length > 1) {\r\n                            ext = '.' + bits[1];\r\n                        } else {\r\n                            //if we ever get here we will just have to save an extension-less file.\r\n                        }\r\n                }\r\n                filename = filename + ext;\r\n\r\n                var theurl = URL.createObjectURL(concatenatedBlob);\r\n                var displaytext = M.util.get_string('recui_downloadfile', 'filter_poodll');\r\n                var content = '<div class=\"filter_poodll_dlgdownload_content\">';\r\n                content += '<a href=\"' + theurl + '\" download=\"' + filename + '\" class=\"btn btn-secondary\">' + displaytext + '</a>';\r\n                content += '</div>';\r\n                //set the html to the dialog and DOM\r\n                self.dlg.setContent(content);\r\n                //register events for the select boxes\r\n                self.registerEvents();\r\n                //open the dialog\r\n                self.dlg.open();\r\n            });\r\n        },\r\n\r\n        registerEvents: function () {\r\n            //we have no events\r\n        }\r\n    }\r\n\r\n});"],"names":["define","$","log","dialog","utils","debug","dlg","instanceprops","pmr","dlgbox","init","clone","setHeader","extend","this","fetch_blob_url","concatenatedBlob","simpleConcatenateBlobs","blobs","type","URL","createObjectURL","fetch_dialogue_box","set_dialogue_box","open","self","ip","ext","nowdatetime","Date","toISOString","replace","filename","config","mediatype","doConcatenateBlobs","bits","split","length","theurl","displaytext","M","util","get_string","content","setContent","registerEvents"],"mappings":"AAAAA,oCAAO,CAAC,SAAU,WAAY,2BAA4B,4BAA4B,SAAUC,EAAGC,IAAKC,OAAQC,cAE5GF,IAAIG,MAAM,iCAGH,CACHC,IAAK,KACLC,cAAe,KACfC,IAAK,KACLC,OAAQ,KAERC,KAAM,SAAUF,IAAKD,oBACZD,IAAMH,OAAOQ,aACbL,IAAIM,UAAU,iBACdL,cAAgBA,mBAChBC,IAAMA,KAGfG,MAAO,kBACIV,EAAEY,QAAO,EAAM,GAAIC,OAG9BC,eAAgB,eACRC,iBAAmBZ,MAAMa,uBAAuBH,KAAKP,cAAcW,MAAOJ,KAAKP,cAAcW,MAAM,GAAGC,aAC3FC,IAAIC,gBAAgBL,mBAIvCM,mBAAoB,kBAETR,KAAKR,IAAIgB,mBAAmB,aAEvCC,iBAAkB,SAAUd,aAEnBA,OAASA,YACTH,IAAIiB,iBAAiBd,SAG9Be,KAAM,eACEC,KAAOX,KACPY,GAAKZ,KAAKP,cACVoB,IAAM,GAENC,aAAe,IAAIC,MAAQC,cAAcC,QAAQ,UAAW,IAC5DC,SAAWN,GAAGO,OAAOC,UAAY,IAAMN,YAE3CxB,MAAM+B,mBAAmBrB,KAAKP,cAAcW,OAAO,SAAUF,yBAGjDA,iBAAiBG,UAChB,gBACA,YACDQ,IAAM,iBAEL,YACDA,IAAM,iBAEL,iBACA,aACDA,IAAM,0BAIFS,KAAOpB,iBAAiBG,KAAKkB,MAAM,KACnCD,KAAKE,OAAS,IACdX,IAAM,IAAMS,KAAK,IAK7BJ,UAAsBL,QAElBY,OAASnB,IAAIC,gBAAgBL,kBAC7BwB,YAAcC,EAAEC,KAAKC,WAAW,qBAAsB,iBACtDC,QAAU,kDACdA,SAAW,YAAcL,OAAS,eAAiBP,SAAW,+BAAiCQ,YAAc,OAC7GI,SAAW,SAEXnB,KAAKnB,IAAIuC,WAAWD,SAEpBnB,KAAKqB,iBAELrB,KAAKnB,IAAIkB,WAIjBsB,eAAgB"}