{"version":3,"sources":["webpack:///webpack/bootstrap 25f72cffb54912479c76","webpack:///./~/cjs-async/index.js","webpack:///./~/cjs-async/parallel.js","webpack:///./~/cjs-async/serial.js","webpack:///./src/js/main.js"],"names":[],"mappings":";;;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,UAAU;AACV;AACA;;;AAGA;AACA;AACA;AACA,UAAU;AACV;AACA;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,+CAA+C;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB;;AAEA;AACA;AACA;AACA,WAAW,wCAAwC;AACnD,WAAW,2CAA2C;AACtD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;AC9GA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,6CAA6C;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB;;AAEA;AACA;AACA;AACA,WAAW,sCAAsC;AACjD,WAAW,yCAAyC;AACpD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;AC9GA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;;;AAGA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA,SAAS;AACT;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;;AAGA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oCAAoC;AACjF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,iCAAiC;AACjC,6BAA6B;;AAE7B;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 25f72cffb54912479c76","/**\n * @module cjs-async\n * @license The MIT License (MIT)\n * @copyright Stanislav Kalashnik <darkpark.main@gmail.com>\n */\n\n'use strict';\n\n\n/**\n * Serial tasks execution.\n *\n * @type {module:cjs-async/serial}\n */\nmodule.exports.serial = require('./serial');\n\n\n/**\n * Parallel tasks execution.\n *\n * @type {module:cjs-async/parallel}\n */\nmodule.exports.parallel = require('./parallel');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/cjs-async/index.js\n// module id = 0\n// module chunks = 0","/**\n * @module cjs-async/parallel\n * @license The MIT License (MIT)\n * @copyright Stanislav Kalashnik <darkpark.main@gmail.com>\n */\n\n'use strict';\n\n/**\n * Method to be called to set task as completed.\n *\n * @callback onTaskFinishCallback\n *\n * @param {boolean} error status of the task execution\n * @param {Array} result data to return from the task\n */\n\n/**\n * Task method to be executed.\n *\n * @callback taskHandler\n *\n * @param {module:cjs-async/parallel~onTaskFinishCallback} [callback] method to be called to set task as completed\n *\n * @example\n * function ( callback ) {\n *     callback(null, true);\n * }\n */\n\n/**\n * Method to be called on all given tasks completion.\n *\n * @callback onFinishCallback\n *\n * @param {boolean} error status of all tasks execution\n * @param {Array} result data received from all tasks\n */\n\n/**\n * Parallel tasks execution.\n *\n * @param {module:cjs-async/parallel~taskHandler[]} tasks set of tasks to execute\n * @param {module:cjs-async/parallel~onFinishCallback} [callback] optional callback to run once all the tasks have completed\n *\n * @example\n * parallel(taskList, function ( error, results ) {\n *     console.log(error, results);\n * });\n */\nmodule.exports = function ( tasks, callback ) {\n    var isError = false,\n        counter = 0,\n        results = [];\n\n    function handler ( task, index ) {\n        var done = function ( error, result ) {\n            // error happened in some other task\n            if ( isError ) {\n                // callback was already used\n                return;\n            }\n\n            if ( error ) {\n                // exit this task\n                // and prevent other to callback\n                isError = true;\n\n                callback(error);\n\n                return;\n            }\n\n            // fill results\n            results[index] = result;\n\n            counter++;\n\n            // all tasks are processed\n            if ( counter === tasks.length ) {\n                callback(null, results);\n            } else if ( counter > tasks.length ) {\n                throw Error('done callback invoked more than one time in function with ' + index + ' position in tasks array');\n            }\n        };\n\n        // actual call condition\n        if ( task.length === 0 ) {\n            done(null, task());\n        } else {\n            task(done);\n        }\n    }\n\n    // sanitize\n    tasks = Array.isArray(tasks) ? tasks : [];\n\n    // sanitize final handler\n    if ( typeof callback !== 'function' ) {\n        callback = function () { /* just in case */ };\n    }\n\n    // no tasks were given\n    if ( tasks.length === 0 ) {\n        // empty result\n        callback(null, results);\n    } else {\n        // run all tasks\n        tasks.forEach(handler);\n    }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/cjs-async/parallel.js\n// module id = 1\n// module chunks = 0","/**\n * @module cjs-async/serial\n * @license The MIT License (MIT)\n * @copyright Stanislav Kalashnik <darkpark.main@gmail.com>\n */\n\n'use strict';\n\n/**\n * Method to be called to set task as completed.\n *\n * @callback onTaskFinishCallback\n *\n * @param {boolean} error status of the task execution\n * @param {Array} result data to return from the task\n */\n\n/**\n * Task method to be executed.\n *\n * @callback taskHandler\n *\n * @param {module:cjs-async/serial~onTaskFinishCallback} [callback] method to be called to set task as completed\n *\n * @example\n * function ( callback ) {\n *     callback(null, true);\n * }\n */\n\n/**\n * Method to be called on all given tasks completion.\n *\n * @callback onFinishCallback\n *\n * @param {boolean} error status of all tasks execution\n * @param {Array} result data received from all tasks\n */\n\n/**\n * Serial tasks execution.\n *\n * @param {module:cjs-async/serial~taskHandler[]} tasks set of tasks to execute\n * @param {module:cjs-async/serial~onFinishCallback} [callback] optional callback to run once all the tasks have completed\n *\n * @example\n * serial(taskList, function ( error, results ) {\n *     console.log(error, results);\n * });\n */\nmodule.exports = function ( tasks, callback ) {\n    var isError = false,\n        counter = 0,\n        results = [];\n\n    function handler ( task ) {\n        var done = function ( error, result ) {\n            if ( error ) {\n                // exit this task\n                // and prevent other to callback\n                isError = true;\n\n                callback(error);\n\n                return;\n            }\n\n            // fill results\n            results[counter] = result;\n\n            counter++;\n\n            // all tasks are processed\n            if ( counter >= tasks.length ) {\n                callback(null, results);\n            } else {\n                handler(tasks[counter]);\n            }\n        };\n\n        // error happened in some other task\n        if ( isError ) {\n            // callback was already used\n            return;\n        }\n\n        // actual call condition\n        if ( task.length === 0 ) {\n            done(null, task());\n        } else {\n            task(done);\n        }\n    }\n\n    // sanitize task list\n    tasks = Array.isArray(tasks) ? tasks : [];\n\n    // sanitize final handler\n    if ( typeof callback !== 'function' ) {\n        callback = function () { /* just in case */ };\n    }\n\n    // no tasks were given\n    if ( tasks.length === 0 ) {\n        // empty result\n        callback(null, results);\n    } else {\n        // run the first task\n        handler(tasks[0]);\n    }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/cjs-async/serial.js\n// module id = 2\n// module chunks = 0","'use strict';\n\n\nvar data = [],\n    pluginList = [],\n    serial = require('cjs-async').serial,\n    apiLink = null,\n    cached = null;\n\n\nfunction pluginOnLoad ( config, plugin ) {\n    pluginList.push(plugin);\n    // plugin.instance.onSettingsInit({\n    //     api: apiLink,\n    //     storage: pluginStorage\n    // }, function ( error, content ) {\n    //     data.push(content);\n\n    //     // onReady(error);\n    // });\n}\n\n\nfunction saveSettings ( config, callback ) {\n    window.core.backend.request('users/' + window.core.backend.session.userId + '/settings', {\n        headers: {\n            'Content-Type': 'application/x-www-form-urlencoded'\n        },\n        method: 'PUT',\n        onload: function ( error, data ) {\n            window.core.backend.settings[config.name] = config.value;\n            window.extendCorePrototype('backend', window.core.backend);\n            callback(error, data);\n        },\n        onerror: function () {\n            callback(true);\n        },\n        body: config.name + '=' + config.value\n    });\n}\n\n\nfunction uniqueGetter ( name ) {\n    return function ( callback ) {\n        var self = this,\n            pluginStorage = window.core.dependencyManager.getPluginStorage(name);\n\n        setTimeout(function () {\n            if ( self.data ) {\n                console.log(JSON.stringify(self.data));\n                Object.keys(self.data).forEach(function ( key ) {\n                    self.data[key] = pluginStorage.getItem(key) || self.data[key];\n                });\n                console.log(JSON.stringify(self.data));\n\n                callback(null, self.data);\n            } else {\n                callback();\n            }\n        }, 0);\n    };\n}\n\nfunction uniqueSaver ( name ) {\n    return function ( callback ) {\n        var self = this,\n            pluginStorage = window.core.dependencyManager.getPluginStorage(name);\n\n        setTimeout(function () {\n            Object.keys(self.data).forEach(function ( key ) {\n                pluginStorage.setItem(key, self.data[key]);\n            });\n\n            callback();\n        }, 0);\n    };\n}\n\n\nfunction loadTree ( tree, callback ) {\n    var loaders, map, index;\n\n    loaders = [];\n    map = {};\n    index = 0;\n\n    Object.keys(tree).forEach(function ( name ) {\n        map[name] = index;\n        console.log(name + ' in tree, index: ' + index);\n        ++index;\n        if ( tree[name] !== null ) {\n            if ( Array.isArray(tree[name]) ) {\n                tree[name].forEach(function ( nameInner ) {\n                    map[nameInner] = index;\n                    console.log(nameInner + ' in tree, index: ' + index);\n                    ++index;\n                });\n            }\n        }\n    });\n\n    // if not in tree, gather all others plugins\n    if ( index < pluginList.length ) {\n        while ( index < pluginList.length ) {\n            if ( !map[pluginList[index].name] ) {\n                console.log('not found in tree ' + pluginList[index].name);\n                map[pluginList[index].name] = index;\n                ++index;\n            }\n            console.log(index);\n        }\n    }\n\n    loaders.length = pluginList.length;\n    pluginList.forEach(function ( plugin ) {\n        loaders[map[plugin.name]] = function ( done ) {\n            // var name = plugin.name;\n            console.log(plugin.name + ' do');\n\n            plugin.instance.onSettingsInit({\n                api: apiLink,\n                options: plugin.options,\n                storage: window.core.dependencyManager.getPluginStorage(plugin.name),\n                path: core.packageMap[plugin.packageName].url + '/../'\n            }, function ( error, data ) {\n                var saver = null,\n                    getter = null;\n\n                if ( data.options ) {\n                    data.options.forEach(function ( option ) {\n                        if ( typeof option.data !== 'undefined') {\n                            if ( typeof option.saver === 'undefined' ) {\n                                if ( saver === null ) {\n                                    saver = uniqueSaver(plugin.name);\n                                }\n\n                                option.saver = saver;\n                            }\n\n                            if ( typeof option.getter === 'undefined' ) {\n                                if ( getter === null ) {\n                                    getter = uniqueGetter(plugin.name);\n                                }\n\n                                option.getter = getter;\n                            }\n                        }\n                    });\n                }\n\n                if ( data.content ) {\n                    data.content.forEach(function ( item ) {\n                        if ( item.type === 'option' && typeof item.data !== 'undefined') {\n                            if ( typeof item.saver === 'undefined' ) {\n                                if ( saver === null ) {\n                                    saver = uniqueSaver(plugin.name);\n                                }\n\n                                item.saver = saver;\n                            }\n\n                            if ( typeof item.getter === 'undefined' ) {\n                                if ( getter === null ) {\n                                    getter = uniqueGetter(plugin.name);\n                                }\n\n                                item.getter = getter;\n                            }\n                        }\n                    });\n                }\n                done(error, data);\n            });\n        };\n        loaders[map[plugin.name]].toString = function () {\n            return plugin.name;\n        };\n    });\n\n    loaders = loaders.filter(function ( loader ) {\n        return !!loader;\n    });\n\n    serial(loaders, callback);\n}\n\n\nmodule.exports = {\n    onAppInit: function ( config, onAppInit ) {\n        onAppInit(null, {\n            init: function ( api, callback ) {\n                var dependencies = {},\n                    tree, settingsPlugins;\n\n                settingsPlugins  = window.core.packages.filter(function ( pckg ) {\n                    if ( pckg.name === 'settingsStructure' ) {\n                        tree = pckg.tree;\n                    }\n\n                    return !!pckg.tuner;\n                });\n\n                data.splice(0);\n\n                settingsPlugins.forEach(function ( plugin ) {\n                    // TODO: remove this before release\n                    // if ( debugMode ) {\n                    //     window.core.dependencyManager.map[plugin.name] = null;\n                    // }serial(loaders, callback);\n\n                    dependencies[plugin.packageName] = plugin.version;\n                });\n\n                apiLink = api;\n\n                api.actions = api.actions || {};\n                api.actions.reload = window.core.reload;\n                api.actions.reboot = window.core.reboot;\n                api.actions.loadEmbedPortal = function () {\n                    window.top.location.href = 'file:///home/web/services.html';\n                };\n                api.actions.clearUserData = function () {\n                    window.top.gSTB.ResetUserFs();\n                    window.top.gSTB.SetEnv('{\"weather_place\":\"\", \"language\":\"en\"}');\n                };\n                api.actions.resetUserFs = function () {\n                    window.gSTB.ServiceControl('local-config', 'reset');\n                };\n\n                api.getters = api.getters || {};\n                /* eslint new-cap: 0 */\n                api.getters.environment = function ( callback ) {\n                    var self = this,\n                        variables = Object.keys(self.environment);\n\n                    setTimeout(function () {\n                        var emptyResult = false,\n                            read = [];\n\n                        variables.forEach(function ( name ) {\n                            if ( typeof window.core.environment[name] === 'undefined' ) {\n                                console.log('not in core.environment ' + name);\n                                read.push(name);\n                            } else if ( window.core.environment[name] ) {\n                                self.environment[name] = window.core.environment[name];\n                            } else {\n                                window.core.environment[name] = self.environment[name];\n                            }\n                        });\n\n                        if ( read.length > 0 ) {\n                            read = JSON.parse(window.gSTB.GetEnv(JSON.stringify({\n                                varList: read\n                            })));\n\n                            variables.forEach(function ( name ) {\n                                if ( read.result[name] === '' ) {\n                                    emptyResult = true;\n                                } else {\n                                    window.core.environment[name] = self.environment[name] = read.result[name];\n                                }\n                            });\n\n                            if ( emptyResult ) {\n                                window.gSTB.SetEnv(JSON.stringify(read.result));\n                            }\n                        }\n                        callback(false, self.environment);\n                    }, 0);\n                };\n\n                api.savers = api.savers || {};\n                api.savers.environment = function ( callback ) {\n                    var self = this,\n                        variables = Object.keys(self.environment);\n\n                    variables.forEach(function ( name ) {\n                        window.core.environment[name] = self.environment[name];\n                    });\n\n                    setTimeout(function () {\n                        window.gSTB.SetEnv(JSON.stringify(self.environment));\n                        callback();\n                    }, 0);\n                };\n\n                if ( window.core.backend && window.core.backend.session && window.core.backend.session.userId ) {\n                    api.getters.userSettings = function ( callback ) {\n                        var self = this;\n\n                        setTimeout(function () {\n                            var value = window.core.backend.settings[self.variable.name];\n\n                            self.variable.value = value;\n                            callback(false, value);\n                        }, 0);\n                    };\n\n                    api.savers.userSettings = function ( callback ) {\n                        saveSettings({\n                            name: this.variable.name,\n                            value: this.variable.value\n                        }, function ( error, data ) {\n                            if ( !error && data.data === true ) {\n                                callback();\n                            } else {\n                                callback(true);\n                            }\n                        });\n                    };\n                }\n\n                pluginList.splice(0);\n                window.core.dependencyManager.load({\n                    dependencies: dependencies,\n                    dependencyReady: pluginOnLoad,\n                    done: function () {\n                        var loaders = [];\n\n                        if ( tree ) {\n                            // find base structure\n                            loadTree(tree, callback);\n                        } else {\n                            pluginList.forEach(function ( plugin ) {\n                                loaders.push(function ( done ) {\n                                    plugin.instance.onSettingsInit({\n                                        api: apiLink,\n                                        options: plugin.options,\n                                        storage: window.core.dependencyManager.getPluginStorage(plugin.name),\n                                        path: core.packageMap[plugin.packageName].url + '/../'\n                                    }, done);\n                                });\n                            });\n\n                            serial(loaders, callback);\n                        }\n\n                    }\n                });\n            }\n        });\n    }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/main.js\n// module id = 3\n// module chunks = 0"],"sourceRoot":""}