{"version":3,"file":"template_presets_amd.min.js","sources":["../src/template_presets_amd.js"],"sourcesContent":["/* jshint ignore:start */\ndefine(['jquery', 'core/log'], function ($, log) {\n\n    \"use strict\"; // jshint ;_;\n\n    log.debug('Filter Poodll Presets initialising');\n\n    return {\n\n        presetdata: false,\n\n        dataitems: ['name', 'key', 'version', 'instructions', 'showatto', 'showplayers', 'requirecss', 'requirejs', 'shim', 'defaults',\n            'amd', 'body', 'bodyend', 'script', 'style', 'dataset', 'datasetvars', 'alternate', 'alternateend'],\n\n        fetchcontrols: function (templateindex) {\n            var controls = {};\n            controls.name = document.getElementById('id_s_filter_poodll_templatename_' + templateindex);\n            controls.key = document.getElementById('id_s_filter_poodll_templatekey_' + templateindex);\n            controls.version = document.getElementById('id_s_filter_poodll_templateversion_' + templateindex);\n            controls.instructions = document.getElementById('id_s_filter_poodll_templateinstructions_' + templateindex);\n            controls.showatto = document.getElementById('id_s_filter_poodll_template_showatto_' + templateindex);\n            controls.showplayers = document.getElementById('id_s_filter_poodll_template_showplayers_' + templateindex);\n            controls.requirecss = document.getElementById('id_s_filter_poodll_templaterequire_css_' + templateindex);\n            controls.requirejs = document.getElementById('id_s_filter_poodll_templaterequire_js_' + templateindex);\n            controls.shim = document.getElementById('id_s_filter_poodll_templaterequire_js_shim_' + templateindex);\n            controls.defaults = document.getElementById('id_s_filter_poodll_templatedefaults_' + templateindex);\n            controls.amd = document.getElementById('id_s_filter_poodll_template_amd_' + templateindex);\n            controls.body = document.getElementById('id_s_filter_poodll_template_' + templateindex);\n            controls.bodyend = document.getElementById('id_s_filter_poodll_templateend_' + templateindex);\n            controls.script = document.getElementById('id_s_filter_poodll_templatescript_' + templateindex);\n            controls.style = document.getElementById('id_s_filter_poodll_templatestyle_' + templateindex);\n            controls.dataset = document.getElementById('id_s_filter_poodll_dataset_' + templateindex);\n            controls.datasetvars = document.getElementById('id_s_filter_poodll_datasetvars_' + templateindex);\n            controls.alternate = document.getElementById('id_s_filter_poodll_templatealternate_' + templateindex);\n            controls.alternateend = document.getElementById('id_s_filter_poodll_templatealternate_end_' + templateindex);\n            controls.presetdata = document.getElementById('id_s_filter_poodll_presetdata_' + templateindex);\n            return controls;\n        },\n\n        fetchjsonbundle: function (templateindex, controls) {\n            var bundle = {};\n            $.each(this.dataitems,\n                function (index, item) {\n                    bundle[item] = controls[item].value;\n                }\n            );\n            var jsonbundle = JSON.stringify(bundle);\n            return jsonbundle;\n            window.open(\"data:text/json;charset=utf-8,\" + encodeURIComponent(jsonbundle));\n        },\n\n        exportbundle: function (templateindex) {\n            var controls = this.fetchcontrols(templateindex);\n            if (controls.key.value == '') {\n                return;\n            }\n            var jsonbundle = this.fetchjsonbundle(templateindex, controls);\n\n            var pom = document.createElement('a');\n            pom.setAttribute('href', \"data:text/json;charset=utf-8,\" + encodeURIComponent(jsonbundle));\n            pom.setAttribute('download', controls['key'].value + '.txt');\n\n            if (document.createEvent) {\n                var event = document.createEvent('MouseEvents');\n                event.initEvent('click', true, true);\n                pom.dispatchEvent(event);\n            }\n            else {\n                pom.click();\n            }\n        },\n\n        populateform: function (templateindex, presetindex, presetdata) {\n            //get all our html controls\n            var controls = this.fetchcontrols(templateindex);\n\n            //what a rip off there was no selection!!!\n            if (!presetindex && !presetdata) {\n                return;\n            }\n            if (presetindex == 0 && presetdata) {\n                //this is good, we have something from dopopulate\n                //from a drag drop\n            } else {\n                //this is a normal selection from the presets control\n                presetdata = this.presetdata;\n            }\n\n            $.each(this.dataitems,\n                function (index, item) {\n                    // log.debug(item + ':' + presetindex + ':' + presetdata[presetindex][item]);\n                    //first check we have a data item for this control(old bundles don7 have instructions etc)\n                    //then set the data\n                    if (presetdata[presetindex].hasOwnProperty(item)) {\n                        if (presetdata[presetindex]['key'] == 'cleartemplate' && (item == 'key' || item == 'name')) {\n                            var usevalue = '';\n                        } else {\n                            var usevalue = presetdata[presetindex][item];\n                        }\n                        controls[item].value = usevalue;\n                    } else {\n                        switch (item) {\n                            case 'amd':\n                            case 'showplayers':\n                            case 'showatto':\n                                controls[item].value = 0;\n                                break;\n                            default:\n                                controls[item].value = '';\n                        }\n                    }\n                }\n            );\n\n        },\n\n        dopopulate: function (templateindex, templatedata) {\n            this.populateform(templateindex, 0, new Array(templatedata));\n        },\n\n        // load all poodll stuff and stash all our variables\n        init: function (opts) {\n            if (!this.presetdata) {\n                var controlid = '#id_s_filter_poodll_presetdata_' + opts['templateindex'];\n                var presetcontrol = $(controlid).get(0);\n                this.presetdata = JSON.parse(presetcontrol.value);\n                $(controlid).remove();\n            }\n\n            var amdpresets = this;\n            //handle the select box change event\n            $(\"select[name='filter_poodll/presets']\").change(function () {\n                debugger;\n                amdpresets.populateform(opts['templateindex'], $(this).val());\n            });\n\n            //drag drop square events\n            var ddsquareid = '#id_s_filter_poodll_dragdropsquare_' + opts['templateindex'];\n\n            //export the current bundle\n            $(ddsquareid).on(\"click\", function () {\n                amdpresets.exportbundle(opts['templateindex']);\n            });\n\n\n            //handle the drop event. First cancel dragevents which prevent drop firing\n            $(ddsquareid).on(\"dragover\", function (event) {\n                event.preventDefault();\n                event.stopPropagation();\n                $(this).addClass('filter_poodll_dragging');\n            });\n\n            $(ddsquareid).on(\"dragleave\", function (event) {\n                event.preventDefault();\n                event.stopPropagation();\n                $(this).removeClass('filter_poodll_dragging');\n            });\n\n            $(ddsquareid).on('drop', function (event) {\n\n                //stop the browser from opening the file\n                event.preventDefault();\n                //Now we need to get the files that were dropped\n                //The normal method would be to use event.dataTransfer.files\n                //but as jquery creates its own event object you ave to access\n                //the browser even through originalEvent.  which looks like this\n                var files = event.originalEvent.dataTransfer.files;\n\n                //if we have files, read and process them\n                if (files.length) {\n                    var f = files[0];\n                    if (f) {\n                        var r = new FileReader();\n                        r.onload = function (e) {\n                            var contents = e.target.result;\n                            var templatedata = JSON.parse(contents);\n                            if (templatedata.key) {\n                                amdpresets.dopopulate(opts['templateindex'], templatedata);\n                            }\n                        };\n                        r.readAsText(f);\n                    } else {\n                        alert(\"Failed to load file\");\n                    }//end of if f\n                }//end of if files\n                $(this).removeClass('filter_poodll_dragging');\n            });\n        }//end of function\n    };\n});\n/* jshint ignore:end */"],"names":["define","$","log","debug","presetdata","dataitems","fetchcontrols","templateindex","controls","name","document","getElementById","key","version","instructions","showatto","showplayers","requirecss","requirejs","shim","defaults","amd","body","bodyend","script","style","dataset","datasetvars","alternate","alternateend","fetchjsonbundle","bundle","each","this","index","item","value","jsonbundle","JSON","stringify","exportbundle","pom","createElement","setAttribute","encodeURIComponent","createEvent","event","initEvent","dispatchEvent","click","populateform","presetindex","hasOwnProperty","usevalue","dopopulate","templatedata","Array","init","opts","controlid","presetcontrol","get","parse","remove","amdpresets","change","val","ddsquareid","on","preventDefault","stopPropagation","addClass","removeClass","files","originalEvent","dataTransfer","length","f","r","FileReader","onload","e","contents","target","result","readAsText","alert"],"mappings":"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"}