{"version":3,"sources":["jsdelivr-header.js","/npm/widgster@1.0.0/widgster.js"],"names":[],"mappings":"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","file":"/npm/widgster@1.0.0/widgster.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/widgster@1.0.0/widgster.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * Widgster plugin.\n */\n( function( global, factory ) {\n    \"use strict\";\n\n    if (global.jQuery && global.jQuery.fn) {\n        factory(global.jQuery);\n    } else {\n        console.warn(\"Widgster must be executed in a browser environment with jQuery defined\");\n    }\n} )( typeof window !== \"undefined\" ? window : this, function( $ ) {\n    // WIDGSTER CLASS DEFINITION\n    // ======================\n\n    var Widgster = function (el, options) {\n        this.$element = $(el);\n        this.$collapse = this.$element.find('[data-widgster=collapse]');\n        this.$expand = this.$element.find('[data-widgster=expand]');\n        this.$fullscreen = this.$element.find('[data-widgster=fullscreen]');\n        this.$restore = this.$element.find('[data-widgster=restore]');\n        this.options = options;\n        this.collapsed = options.collapsed;\n        this.fullscreened = options.fullscreened;\n\n        this._initHandlers();\n\n        if (this.collapsed){\n            this.collapse(false);\n        } else {\n            this.$expand.hide();\n        }\n\n        if (this.fullscreened){\n            this.fullscreen();\n        } else {\n            this.$restore.hide();\n        }\n\n        this.options.autoload && this.load();\n        var interval = parseInt(this.options.autoload);\n        if (!isNaN(interval)){\n            var widgster = this;\n            this._autoloadInterval = setInterval(function(){\n                widgster.load();\n            }, interval)\n        }\n    };\n\n    Widgster.DEFAULTS = {\n        collapsed: false,\n        fullscreened: false,\n        transitionDuration: 150,\n        bodySelector: '.body',\n        showLoader: true,\n        autoload: false,\n        loaderTemplate: '<div style=\"text-align: center; margin-top: 10px;\">Loading...</div>',\n        /**\n         * provide a way to insert a prompt before removing widget\n         * @param callback\n         */\n        closePrompt: function(callback){\n            callback()\n        }\n    };\n\n    Widgster.prototype.collapse = function(animate){\n        animate = typeof animate == \"undefined\" ? true : animate;\n        var e = $.Event('collapse.widgster');\n        this.$element.trigger(e);\n        if (e.isDefaultPrevented()) return;\n\n        var widgster = this,\n            duration = animate ? this.options.transitionDuration : 0;\n        this.$element.find(this.options.bodySelector).slideUp(duration, function(){\n            widgster.$element.addClass('collapsed');\n            widgster.$element.trigger($.Event('collapsed.widgster'));\n            widgster.collapsed = true;\n        });\n\n        this.$collapse.hide();\n        this.$expand.show();\n\n        return false;\n    };\n\n    Widgster.prototype.expand = function(animate){\n        animate = typeof animate == \"undefined\" ? true : animate;\n        var e = $.Event('expand.widgster');\n        this.$element.trigger(e);\n        if (e.isDefaultPrevented()) return;\n\n        var widgster = this,\n            duration = animate ? this.options.transitionDuration : 0;\n        this.$element.find(this.options.bodySelector).slideDown(duration, function(){\n            widgster.$element.removeClass('collapsed');\n            widgster.$element.trigger($.Event('expanded.widgster'));\n            widgster.collapsed = false;\n        });\n\n        this.$collapse.show();\n        this.$expand.hide();\n\n        return false;\n    };\n\n    Widgster.prototype.close = function(){\n\n        this.options.closePrompt && this.options.closePrompt($.proxy(this._doClose, this));\n\n        return false;\n    };\n\n    Widgster.prototype.load = function(){\n        var e = $.Event('load.widgster');\n\n        this.$element.trigger(e);\n\n        if (e.isDefaultPrevented()) return;\n\n        var widgster = this;\n        this.$element.find(this.options.bodySelector).load(this.options.load, function(responseText, textStatus, xhr){\n            widgster.expand();\n            widgster.options.showLoader && widgster._hideLoader();\n            widgster.$element.trigger($.Event('loaded.widgster', {\n                responseText: responseText,\n                textStatus: textStatus,\n                xhr: xhr\n            }))\n        });\n        this.options.showLoader && this._showLoader();\n\n        return false;\n    };\n\n    Widgster.prototype.fullscreen = function(){\n        var e = $.Event('fullscreen.widgster');\n\n        this.$element.trigger(e);\n\n        if (e.isDefaultPrevented()) return;\n\n        this.$element.css({\n            position: 'fixed',\n            top: 0,\n            right: 0,\n            bottom: 0,\n            left: 0,\n            margin: 0,\n            'z-index': 10000\n        });\n        $('body').css('overflow', 'hidden');\n\n        this.wasCollapsed = this.collapsed;\n        this.expand(false);\n\n        this.$fullscreen.hide();\n        this.$restore.show();\n\n        this.$collapse.hide(); this.$expand.hide();\n\n        this.$element.addClass('fullscreened');\n\n        this.$element.trigger($.Event('fullscreened.widgster'));\n\n        return false;\n    };\n\n    Widgster.prototype.restore = function(){\n        var e = $.Event('restore.widgster');\n\n        this.$element.trigger(e);\n\n        if (e.isDefaultPrevented()) return;\n\n        this.$element.css({\n            position: '',\n            top: '',\n            right: '',\n            bottom: '',\n            left: '',\n            margin: '',\n            'z-index': ''\n        });\n        $('body').css('overflow', '');\n\n        this.$fullscreen.show();\n        this.$restore.hide();\n\n        if (this.collapsed){\n            this.$collapse.hide(); this.$expand.show();\n        } else {\n            this.$collapse.show(); this.$expand.hide();\n        }\n\n        this.wasCollapsed && this.collapse(false);\n\n        this.$element.removeClass('fullscreened');\n\n        this.$element.trigger($.Event('restored.widgster'));\n\n        return false;\n    };\n\n    Widgster.prototype._doClose = function(){\n        //could have been remove.widgster, but http://bugs.jquery.com/ticket/14600\n        var e = $.Event('close.widgster');\n\n        this.$element.trigger(e);\n\n        if (e.isDefaultPrevented()) return;\n\n        $('body').css('overflow', '');\n\n        this.$element.detach();\n\n        e = $.Event('closed.widgster', {$element: this.$element});\n\n        this.$element.trigger(e);\n    };\n\n    Widgster.prototype._showLoader = function(){\n        var $body = this.$element.find(this.options.bodySelector);\n\n        this.$loaderWrap = this.$element.find('.widgster-loader-wrap');\n\n        //create loader html if does not exist\n        if (this.$loaderWrap.length == 0){\n            this.$loaderWrap = $('<div class=\"widgster-loader-wrap\" style=\"position: absolute; top: 0; right: 0; bottom: 0; ' +\n                'left: 0; display: none\"></div>');\n            this.$element.append(this.$loaderWrap);\n        }\n        this.$loaderWrap.html(this.options.loaderTemplate);\n        this.$loaderWrap.css({\n            'margin-top': $body.position().top\n        });\n        if (!this.collapsed){\n            $body.fadeTo(this.options.transitionDuration, 0);\n            this.$loaderWrap.fadeIn(this.options.transitionDuration)\n        }\n    };\n\n    Widgster.prototype._hideLoader = function(){\n        this.$loaderWrap.fadeOut(this.options.transitionDuration);\n        this.$element.find(this.options.bodySelector).fadeTo(this.options.transitionDuration, 1);\n    };\n\n    /**\n     * Attach all required widgster functions to data-widgster elements.\n     * @private\n     */\n    Widgster.prototype._initHandlers = function(){\n        this.$element.on('click.collapse.widgster', '[data-widgster=collapse]', $.proxy(this.collapse, this));\n        this.$element.on('click.expand.widgster', '[data-widgster=expand]', $.proxy(this.expand, this));\n        this.$element.on('click.close.widgster', '[data-widgster=close]', $.proxy(this.close, this));\n        this.$element.on('click.load.widgster', '[data-widgster=load]', $.proxy(this.load, this));\n        this.$element.on('click.fullscreen.widgster', '[data-widgster=fullscreen]', $.proxy(this.fullscreen, this));\n        this.$element.on('click.restore.widgster', '[data-widgster=restore]', $.proxy(this.restore, this));\n    };\n\n\n    // NAMESPACED DATA ATTRIBUTES\n    // =======================\n\n    function getNamespacedData(namespace, data){\n        var namespacedData = {};\n        for (var key in data){\n            // key starts with namespace\n            if (key.slice(0, namespace.length) == namespace){\n                var namespacedKey = key.slice(namespace.length, key.length);\n                namespacedKey = namespacedKey.charAt(0).toLowerCase() + namespacedKey.slice(1);\n                namespacedData[namespacedKey] = data[key];\n            }\n        }\n\n        return namespacedData;\n    }\n\n    // WIDGSTER PLUGIN DEFINITION\n    // =======================\n\n    $.fn.widgster = function (option) {\n        return this.each(function () {\n            var $this   = $(this);\n            var data    = $this.data('widgster');\n            var options = $.extend({}, Widgster.DEFAULTS, getNamespacedData('widgster', $this.data()), typeof option == 'object' && option);\n\n            if (!data) $this.data('widgster', new Widgster(this, options));\n            if (typeof option == 'string') data[option]();\n        })\n    };\n\n    $.fn.widgster.Constructor = Widgster;\n});"]}