{"version":3,"sources":["jsdelivr-header.js","/npm/@gibme/overlay@22.0.1/dist/index.js"],"names":[],"mappings":"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","file":"/npm/@gibme/overlay@22.0.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/@gibme/overlay@22.0.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n// Copyright (c) 2024-2025, Brandon Lehmann <brandonlehmann@gmail.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Overlay = void 0;\nconst jquery_1 = __importDefault(require(\"jquery\"));\nconst fontawesome_1 = require(\"@gibme/fontawesome\");\nconst nanoid_1 = require(\"nanoid\");\nclass Overlay {\n    /**\n     * Returns if the overlay is currently open for the specified element\n     *\n     * @param parent\n     */\n    static isOpen(parent = (0, jquery_1.default)(document.body)) {\n        if (typeof parent === 'string') {\n            return (0, jquery_1.default)(`#${parent}`).length !== 0;\n        }\n        else {\n            const parentId = this.get_or_set_element_id(parent);\n            return this.instances.has(parentId);\n        }\n    }\n    /**\n     * Handles our actions against the parent\n     *\n     * @param parent\n     * @param action\n     * @param options\n     */\n    static handle(parent, action, options = {}) {\n        const parentId = this.get_or_set_element_id(parent);\n        // todo: figure out how to handle this better instead of just rejecting it\n        if (!this.can_append_div(parent)) {\n            if (action === 'show') {\n                console.error('[Overlay]: #%s is not suitable for an overlay', parentId);\n            }\n            return parent;\n        }\n        const { overlayId } = this.instances.get(parentId) || { overlayId: (0, nanoid_1.nanoid)() };\n        if (action === 'text' && typeof options === 'string') {\n            options = this.merge_options(parentId, overlayId, { text: { message: options } });\n            return this.text(parent, overlayId, options);\n        }\n        else if (action === 'progress' && typeof options === 'number') {\n            options = this.merge_options(parentId, overlayId, { progress: { value: options } });\n            return this.progress(parent, overlayId, options);\n        }\n        else if (action === 'text' && typeof options === 'object' && options.jquery) {\n            options = this.merge_options(parentId, overlayId, { text: { message: options } });\n            return this.text(parent, overlayId, options);\n        }\n        else if (action === 'icon' && typeof options === 'object') {\n            options = this.merge_options(parentId, overlayId, { icon: options });\n            return this.icon(parent, overlayId, options);\n        }\n        else if (action === 'image' && typeof options === 'object') {\n            options = this.merge_options(parentId, overlayId, { image: options });\n            return this.image(parent, overlayId, options);\n        }\n        else {\n            options = this._merge_options(options);\n            options = this.merge_options(parentId, overlayId, options);\n            const handle_resize = () => {\n                var _a;\n                this.auto_resize(parent, overlayId, (_a = this.instances.get(parentId)) === null || _a === void 0 ? void 0 : _a.options);\n            };\n            if (action === 'show') {\n                (0, jquery_1.default)(window).on('resize', handle_resize);\n            }\n            else if (action === 'hide') {\n                (0, jquery_1.default)(window).off('resize', handle_resize);\n            }\n            switch (action) {\n                case 'show':\n                    return this.show(parent, overlayId, options);\n                case 'hide':\n                    return this.hide(parent, overlayId, options);\n                case 'text':\n                    return this.text(parent, overlayId, options);\n                case 'resize':\n                    return this.resize(parent, overlayId, options);\n                case 'progress':\n                    return this.progress(parent, overlayId, options);\n                case 'icon':\n                    return this.icon(parent, overlayId, options);\n                case 'image':\n                    return this.image(parent, overlayId, options);\n                default:\n                    throw new Error('invalid action specified');\n            }\n        }\n    }\n    /**\n     * Font size helper for a few sizes\n     *\n     * @param overlay\n     * @param resizeFactor\n     * @protected\n     */\n    static calculate_size(overlay, resizeFactor = 1) {\n        const height = overlay.height() || overlay.parent().height();\n        if (!height)\n            return '1em';\n        const size = 2 * Math.round((height * resizeFactor) / 2);\n        return `${size}px`;\n    }\n    /**\n     * Shows the overlay\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @protected\n     */\n    static show(parent, overlayId, options = {}) {\n        var _a, _b;\n        if (this.isOpen(overlayId))\n            return parent;\n        const position = parent.parent()[0].tagName === 'HTML' ? 'position-fixed' : 'position-absolute';\n        const overlay = (0, jquery_1.default)(`<div id=\"${overlayId}\">`)\n            .addClass(`d-flex w-100 h-100 ${position} top-0 bottom-0 start-0 end-0`)\n            .css('z-index', options.zIndex || Number.MAX_SAFE_INTEGER)\n            .empty()\n            .hide()\n            .appendTo(parent);\n        if ((_a = options.background) === null || _a === void 0 ? void 0 : _a.color)\n            overlay.css('background-color', options.background.color);\n        if ((_b = options.background) === null || _b === void 0 ? void 0 : _b.className)\n            overlay.addClass(options.background.className);\n        (0, jquery_1.default)('<div>')\n            .addClass('d-flex flex-fill')\n            .attr('id', `${overlayId}-flex`)\n            .append((0, jquery_1.default)('<div>')\n            .attr('id', `${overlayId}-container`)\n            .addClass('d-flex flex-column w-100 justify-content-center align-items-center'))\n            .appendTo(overlay);\n        const container = (0, jquery_1.default)(`#${overlayId}-container`);\n        const fields = ['text', 'icon', 'image', 'progress'];\n        for (const field of fields) {\n            const element = (0, jquery_1.default)('<div>')\n                .attr('id', `${overlayId}-container-${field}`)\n                .addClass('m-4 text-center')\n                .hide()\n                .appendTo(container);\n            switch (field) {\n                case 'text':\n                    if (options.text)\n                        this.text(parent, overlayId, options);\n                    break;\n                case 'icon':\n                    if (options.icon)\n                        this.icon(parent, overlayId, options);\n                    break;\n                case 'image':\n                    if (options.image)\n                        this.image(parent, overlayId, options);\n                    break;\n                case 'progress':\n                    (0, jquery_1.default)('<div>')\n                        .attr('id', `${overlayId}-container-${field}-bar`)\n                        .addClass('progress-bar')\n                        .appendTo(element);\n                    if (options.progress)\n                        this.progress(parent, overlayId, options);\n                    break;\n            }\n        }\n        // force a resize before the auto-resize\n        this.resize(parent, overlayId, options);\n        const fade = typeof options.fade === 'object' && options.fade.out ? options.fade.out : false;\n        parent.addClass('overflow-hidden')\n            .trigger('overlay.show');\n        if (typeof fade === 'number') {\n            overlay.fadeIn(fade, () => {\n                parent.trigger('overlay.shown');\n                if (options.timeout)\n                    setTimeout(() => this.hide(parent, overlayId), options.timeout);\n            });\n        }\n        else if (fade) {\n            overlay.fadeIn(400, () => {\n                parent.trigger('overlay.shown');\n                if (options.timeout)\n                    setTimeout(() => this.hide(parent, overlayId), options.timeout);\n            });\n        }\n        else {\n            overlay.show(() => {\n                parent.trigger('overlay.shown');\n                if (options.timeout)\n                    setTimeout(() => this.hide(parent, overlayId), options.timeout);\n            });\n        }\n        return parent;\n    }\n    /**\n     * Hides the overlay\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @protected\n     */\n    static hide(parent, overlayId, options = {}) {\n        if (!this.isOpen(overlayId))\n            return parent;\n        const parentId = this.get_or_set_element_id(parent);\n        const overlay = (0, jquery_1.default)(`#${overlayId}`, parent);\n        const fade = typeof options.fade === 'object' && options.fade.out ? options.fade.out : false;\n        parent.trigger('hide');\n        const cleanup = () => {\n            overlay.hide()\n                .addClass('d-none')\n                .remove();\n            this.instances.delete(parentId);\n            parent.removeClass('overflow-hidden')\n                .trigger('overlay.hidden');\n        };\n        if (typeof fade === 'number') {\n            overlay.fadeOut(fade, cleanup);\n        }\n        else if (fade) {\n            overlay.fadeOut(400, cleanup);\n        }\n        else {\n            overlay.hide(cleanup);\n        }\n        return parent;\n    }\n    /**\n     * Updates the progress bar in the overlay\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @protected\n     */\n    static progress(parent, overlayId, options = {}) {\n        if (!this.isOpen(overlayId))\n            return parent;\n        const overlay = (0, jquery_1.default)(`#${overlayId}`, parent);\n        if (!options.progress)\n            return parent;\n        const order = this.adjust_order(4, options.progress.order);\n        (0, jquery_1.default)(`#${overlayId}-container-progress`, overlay)\n            .removeClass('order-0 order-1 order-2 order-3 order-4 order-5')\n            .addClass(`order-${order} progress w-75`)\n            .attr('role', 'progressbar');\n        const progress_bar = (0, jquery_1.default)(`#${overlayId}-container-progress-bar`, overlay);\n        if (options.progress.color)\n            progress_bar.css('background-color', options.progress.color);\n        if (options.progress.className)\n            progress_bar.addClass(options.progress.className);\n        if (options.progress.animated) {\n            progress_bar.addClass('progress-bar-animated progress-bar-striped');\n        }\n        else {\n            progress_bar.removeClass('progress-bar-animated progress-bar-striped');\n        }\n        progress_bar.attr('aria-valuemin', options.progress.min || 0)\n            .attr('aria-valuemax', options.progress.max || 100);\n        if (typeof options.progress.value === 'undefined') {\n            progress_bar.attr('aria-valuenow', 0)\n                .parent().hide();\n        }\n        else {\n            let value = Math.round(options.progress.value / (options.progress.max || 100) * 100);\n            if (value > 100)\n                value = 100;\n            progress_bar\n                .css('width', `${value}%`)\n                .attr('aria-valuenow', value)\n                .parent()\n                .show();\n            parent.trigger('overlay.progress', value);\n        }\n        return parent;\n    }\n    /**\n     * Resizes the text element\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @private\n     */\n    static resize_text(parent, overlayId, options = {}) {\n        var _a;\n        const overlay = (0, jquery_1.default)(`#${overlayId}`, parent);\n        (0, jquery_1.default)(`#${overlayId}-container-text`, overlay)\n            .css('font-size', this.calculate_size(overlay, (_a = options.text) === null || _a === void 0 ? void 0 : _a.resizeFactor));\n    }\n    /**\n     * Resizes the icon element\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @private\n     */\n    static resize_icon(parent, overlayId, options = {}) {\n        var _a;\n        const overlay = (0, jquery_1.default)(`#${overlayId}`, parent);\n        (0, jquery_1.default)(`#${overlayId}-container-icon-element`, overlay)\n            .css('font-size', this.calculate_size(overlay, (_a = options.icon) === null || _a === void 0 ? void 0 : _a.resizeFactor));\n    }\n    /**\n     * Resizes the image element\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @private\n     */\n    static resize_image(parent, overlayId, options = {}) {\n        var _a;\n        const overlay = (0, jquery_1.default)(`#${overlayId}`, parent);\n        const size = this.calculate_size(overlay, (_a = options.image) === null || _a === void 0 ? void 0 : _a.resizeFactor);\n        (0, jquery_1.default)(`#${overlayId}-container-image-element`, overlay)\n            .css('width', size)\n            .css('height', size);\n    }\n    /**\n     * Resizes the progress element\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @private\n     */\n    static resize_progress(parent, overlayId, options = {}) {\n        var _a;\n        const overlay = (0, jquery_1.default)(`#${overlayId}`, parent);\n        (0, jquery_1.default)(`#${overlayId}-container-progress`, overlay)\n            .css('height', this.calculate_size(overlay, (_a = options.progress) === null || _a === void 0 ? void 0 : _a.resizeFactor));\n    }\n    /**\n     * Performs a resize of elements in the overlay\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @protected\n     */\n    static resize(parent, overlayId, options = {}) {\n        if (!this.isOpen(overlayId))\n            return parent;\n        this.resize_text(parent, overlayId, options);\n        this.resize_icon(parent, overlayId, options);\n        this.resize_image(parent, overlayId, options);\n        this.resize_progress(parent, overlayId, options);\n        parent.trigger('overlay.resize');\n        return parent;\n    }\n    /**\n     * Performs a resize if the property is set to autoreset for that object\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @protected\n     */\n    static auto_resize(parent, overlayId, options = {}) {\n        var _a, _b, _c, _d;\n        if (!this.isOpen(overlayId))\n            return parent;\n        if ((_a = options.text) === null || _a === void 0 ? void 0 : _a.autoResize) {\n            this.resize_text(parent, overlayId, options);\n        }\n        if ((_b = options.icon) === null || _b === void 0 ? void 0 : _b.autoResize) {\n            this.resize_icon(parent, overlayId, options);\n        }\n        if ((_c = options.image) === null || _c === void 0 ? void 0 : _c.autoResize) {\n            this.resize_image(parent, overlayId, options);\n        }\n        if ((_d = options.progress) === null || _d === void 0 ? void 0 : _d.autoResize) {\n            this.resize_progress(parent, overlayId, options);\n        }\n        parent.trigger('overlay.resize');\n        return parent;\n    }\n    /**\n     * Updates the text in the overlay\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @protected\n     */\n    static text(parent, overlayId, options = {}) {\n        if (!this.isOpen(overlayId))\n            return parent;\n        const overlay = (0, jquery_1.default)(`#${overlayId}`, parent);\n        const text = (0, jquery_1.default)(`#${overlayId}-container-text`, overlay);\n        if (!options.text)\n            return parent;\n        const order = this.adjust_order(1, options.text.order);\n        text.removeClass('order-0 order-1 order-2 order-3 order-4 order-5')\n            .addClass(`order-${order}`);\n        if (options.text.color)\n            text.css('color', options.text.color);\n        if (options.text.className)\n            text.addClass(options.text.className);\n        if (typeof options.text.message === 'undefined' || options.text.message.length === 0) {\n            text.hide().empty();\n        }\n        else {\n            if (typeof options.text.message === 'string') {\n                text.text(options.text.message).show();\n            }\n            else {\n                text.empty().append(options.text.message).show();\n            }\n            parent.trigger('overlay.text', options.text.message);\n        }\n        return parent;\n    }\n    /**\n     * Updates the image in the overlay\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @private\n     */\n    static image(parent, overlayId, options = {}) {\n        if (!this.isOpen(overlayId))\n            return parent;\n        const overlay = (0, jquery_1.default)(`#${overlayId}`, parent);\n        const image = (0, jquery_1.default)(`#${overlayId}-container-image`, overlay);\n        if (!options.image)\n            return parent;\n        const order = this.adjust_order(3, options.image.order);\n        image.removeClass('order-0 order-1 order-2 order-3 order-4 order-5')\n            .addClass(`order-${order}`);\n        if (options.image.hide) {\n            image.hide();\n            parent.trigger('overlay.image', options.image);\n        }\n        else {\n            if (options.image.source) {\n                const img = options.image.source.startsWith('<svg')\n                    ? (0, jquery_1.default)(options.image.source)\n                    : (0, jquery_1.default)(`<img src=\"${options.image.source}\" alt=\"Overlay Icon Image\">`);\n                img.attr('id', `${overlayId}-container-image-element`);\n                if (options.image.width)\n                    img.css('width', options.image.width);\n                if (options.image.height)\n                    img.css('height', options.image.height);\n                if (options.image.rotation && options.image.rotation !== 'none') {\n                    img.addClass(`fa-${options.image.rotation}`);\n                }\n                if (options.image.animation && options.image.animation !== 'none') {\n                    if (options.image.animation === 'spin-reverse') {\n                        img.addClass('fa-spin fa-spin-reverse');\n                    }\n                    else {\n                        img.addClass(`fa-${options.image.animation}`);\n                    }\n                }\n                image.empty().append(img).show();\n                parent.trigger('overlay.image', options.icon);\n            }\n        }\n        return parent;\n    }\n    /**\n     * Updates the icon in the overlay\n     *\n     * @param parent\n     * @param overlayId\n     * @param options\n     * @protected\n     */\n    static icon(parent, overlayId, options = {}) {\n        if (!this.isOpen(overlayId))\n            return parent;\n        const overlay = (0, jquery_1.default)(`#${overlayId}`, parent);\n        const icon = (0, jquery_1.default)(`#${overlayId}-container-icon`, overlay);\n        if (!options.icon)\n            return parent;\n        const order = this.adjust_order(2, options.icon.order);\n        icon.removeClass('order-0 order-1 order-2 order-3 order-4 order-5')\n            .addClass(`order-${order}`);\n        if (options.icon.hide) {\n            icon.hide();\n            parent.trigger('overlay.icon', options.icon);\n        }\n        else {\n            if (options.icon.name) {\n                icon.empty()\n                    .append((0, jquery_1.default)((0, fontawesome_1.createIcon)(options.icon.name, Object.assign(Object.assign({}, options.icon), { attributes: Object.assign(Object.assign({}, options.icon.attributes || {}), { id: `${overlayId}-container-icon-element` }) }))))\n                    .show();\n                parent.trigger('overlay.icon', options.icon);\n            }\n        }\n        return parent;\n    }\n    /**\n     * Adjusts the order to fit within the bootstrap range of pre-defined orders\n     *\n     * @param default_value\n     * @param order\n     * @private\n     */\n    static adjust_order(default_value, order) {\n        if (!order)\n            return default_value;\n        if (order < 0)\n            return 0;\n        if (order > 5)\n            return 5;\n        return order;\n    }\n    /**\n     * Merges \"new\" options with cached options and updates the cache\n     *\n     * @param parent_path\n     * @param overlayId\n     * @param new_options\n     * @private\n     */\n    static merge_options(parent_path, overlayId, new_options) {\n        const { options: _options } = this.instances.get(parent_path) || { options: new_options };\n        const options = this._merge_options(new_options, _options);\n        this.instances.set(parent_path, { overlayId, options });\n        return options;\n    }\n    /**\n     * Performs a deep merge of the options supplied with the default options\n     * @param target\n     * @param source\n     * @private\n     */\n    static _merge_options(target = {}, source = Overlay.DefaultOptions) {\n        const deep_merge = (obj1, obj2) => {\n            const result = Object.assign({}, obj1);\n            for (const key in obj2) {\n                if (Object.prototype.hasOwnProperty.call(obj2, key)) {\n                    if (obj2[key] instanceof Object && obj1[key] instanceof Object) {\n                        result[key] = deep_merge(obj1[key], obj2[key]);\n                    }\n                    else {\n                        result[key] = obj2[key];\n                    }\n                }\n            }\n            return result;\n        };\n        return deep_merge(source, target);\n    }\n    /**\n     * Gets, or sets if undefined, the element's Id attribute\n     *\n     * @param element\n     * @private\n     */\n    static get_or_set_element_id(element) {\n        const id = element.attr('id') || (0, nanoid_1.nanoid)();\n        element.attr('id', id);\n        return id;\n    }\n    /**\n     * Returns if a div can be appended to the specified element\n     * @param element\n     * @private\n     */\n    static can_append_div(element) {\n        const voidElements = new Set([\n            'area', 'base', 'br', 'col', 'embed', 'hr', 'img',\n            'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'\n        ]);\n        const tag = element.prop('tagName').toLowerCase();\n        return !voidElements.has(tag);\n    }\n}\nexports.Overlay = Overlay;\nOverlay.instances = new Map();\n(function (Overlay) {\n    Overlay.DefaultOptions = {\n        background: {\n            color: 'rgba(255, 255, 255, 0.8)'\n        },\n        icon: {\n            name: 'spinner',\n            style: 'solid',\n            animation: 'spin-pulse',\n            color: '#202020',\n            resizeFactor: 0.15,\n            autoResize: true,\n            order: 2\n        },\n        image: {\n            source: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1000 1000\">\n                    <circle r=\"80\" cx=\"500\" cy=\"90\"/>\n                    <circle r=\"80\" cx=\"500\" cy=\"910\"/>\n                    <circle r=\"80\" cx=\"90\" cy=\"500\"/>\n                    <circle r=\"80\" cx=\"910\" cy=\"500\"/>\n                    <circle r=\"80\" cx=\"212\" cy=\"212\"/>\n                    <circle r=\"80\" cx=\"788\" cy=\"212\"/>\n                    <circle r=\"80\" cx=\"212\" cy=\"788\"/>\n                    <circle r=\"80\" cx=\"788\" cy=\"788\"/></svg>`,\n            animation: 'spin',\n            autoResize: true,\n            resizeFactor: 0.15,\n            width: 200,\n            height: 200,\n            color: '#202020',\n            hide: true,\n            order: 3\n        },\n        text: {\n            autoResize: true,\n            resizeFactor: 0.075,\n            color: '#202020',\n            order: 1\n        },\n        progress: {\n            autoResize: true,\n            resizeFactor: 0.025,\n            color: '#a0a0a0',\n            min: 0,\n            max: 100,\n            animated: true,\n            order: 4\n        },\n        fade: { in: 400, out: 200 },\n        resizeInterval: 50,\n        zIndex: 2147483647\n    };\n})(Overlay || (exports.Overlay = Overlay = {}));\nexports.default = Overlay;\n"]}