{"version":3,"sources":["jsdelivr-header.js","/npm/font-picker@3.5.1/dist/FontPicker.js"],"names":[],"mappings":"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","file":"/npm/font-picker@3.5.1/dist/FontPicker.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/font-picker@3.5.1/dist/FontPicker.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@samuelmeuli/font-manager')) :\n\ttypeof define === 'function' && define.amd ? define(['@samuelmeuli/font-manager'], factory) :\n\t(global = global || self, global.FontPicker = factory(global.FontManager));\n}(this, (function (fontManager) { 'use strict';\n\n\tvar FontPicker = (function () {\n\t    function FontPicker(apiKey, defaultFamily, _a, onChange) {\n\t        if (defaultFamily === void 0) { defaultFamily = fontManager.FONT_FAMILY_DEFAULT; }\n\t        var _b = _a.pickerId, pickerId = _b === void 0 ? fontManager.OPTIONS_DEFAULTS.pickerId : _b, _c = _a.families, families = _c === void 0 ? fontManager.OPTIONS_DEFAULTS.families : _c, _d = _a.categories, categories = _d === void 0 ? fontManager.OPTIONS_DEFAULTS.categories : _d, _e = _a.scripts, scripts = _e === void 0 ? fontManager.OPTIONS_DEFAULTS.scripts : _e, _f = _a.variants, variants = _f === void 0 ? fontManager.OPTIONS_DEFAULTS.variants : _f, _g = _a.filter, filter = _g === void 0 ? fontManager.OPTIONS_DEFAULTS.filter : _g, _h = _a.limit, limit = _h === void 0 ? fontManager.OPTIONS_DEFAULTS.limit : _h, _j = _a.sort, sort = _j === void 0 ? fontManager.OPTIONS_DEFAULTS.sort : _j;\n\t        if (onChange === void 0) { onChange = function () { }; }\n\t        this.expanded = false;\n\t        this.closeEventListener = this.closeEventListener.bind(this);\n\t        this.toggleExpanded = this.toggleExpanded.bind(this);\n\t        var options = {\n\t            pickerId: pickerId,\n\t            families: families,\n\t            categories: categories,\n\t            scripts: scripts,\n\t            variants: variants,\n\t            filter: filter,\n\t            limit: limit,\n\t            sort: sort,\n\t        };\n\t        this.fontManager = new fontManager.FontManager(apiKey, defaultFamily, options, onChange);\n\t        this.generateUI(sort);\n\t    }\n\t    FontPicker.prototype.generateUI = function (sort) {\n\t        var _this = this;\n\t        var selectorSuffix = this.fontManager.selectorSuffix;\n\t        var pickerId = \"font-picker\" + selectorSuffix;\n\t        this.fontPickerDiv = document.getElementById(pickerId);\n\t        if (!this.fontPickerDiv) {\n\t            throw Error(\"Missing div with id=\\\"\" + pickerId + \"\\\"\");\n\t        }\n\t        var dropdownButton = document.createElement(\"button\");\n\t        dropdownButton.classList.add(\"dropdown-button\");\n\t        dropdownButton.onclick = this.toggleExpanded;\n\t        dropdownButton.onkeypress = this.toggleExpanded;\n\t        dropdownButton.type = \"button\";\n\t        this.fontPickerDiv.appendChild(dropdownButton);\n\t        this.dropdownFamily = document.createElement(\"p\");\n\t        this.dropdownFamily.textContent = this.fontManager.getActiveFont().family;\n\t        this.dropdownFamily.classList.add(\"dropdown-font-family\");\n\t        dropdownButton.appendChild(this.dropdownFamily);\n\t        var dropdownIcon = document.createElement(\"p\");\n\t        dropdownIcon.classList.add(\"dropdown-icon\", \"loading\");\n\t        dropdownButton.appendChild(dropdownIcon);\n\t        this.fontManager\n\t            .init()\n\t            .then(function (fontMap) {\n\t            var fonts = Array.from(fontMap.values());\n\t            if (sort === \"alphabet\") {\n\t                fonts.sort(function (font1, font2) {\n\t                    return font1.family.localeCompare(font2.family);\n\t                });\n\t            }\n\t            _this.generateFontList(fonts);\n\t            dropdownIcon.classList.replace(\"loading\", \"finished\");\n\t        })[\"catch\"](function (err) {\n\t            dropdownIcon.classList.replace(\"loading\", \"error\");\n\t            console.error(\"Error trying to fetch the list of available fonts\");\n\t            console.error(err);\n\t        });\n\t    };\n\t    FontPicker.prototype.generateFontList = function (fonts) {\n\t        var _this = this;\n\t        this.ul = document.createElement(\"ul\");\n\t        this.ul.classList.add(\"font-list\");\n\t        fonts.forEach(function (font) {\n\t            _this.addFontLi(font);\n\t        });\n\t        this.fontPickerDiv.appendChild(this.ul);\n\t        var activeFontFamily = this.fontManager.getActiveFont().family;\n\t        var activeFontId = fontManager.getFontId(activeFontFamily);\n\t        var fontButtonId = \"font-button-\" + activeFontId + this.fontManager.selectorSuffix;\n\t        this.activeFontButton = document.getElementById(fontButtonId);\n\t        if (this.activeFontButton) {\n\t            this.activeFontButton.classList.add(\"active-font\");\n\t        }\n\t        else {\n\t            console.error(\"Could not find font button with ID (\" + fontButtonId + \")\");\n\t        }\n\t    };\n\t    FontPicker.prototype.addFontLi = function (font, listIndex) {\n\t        var _this = this;\n\t        var fontId = fontManager.getFontId(font.family);\n\t        var li = document.createElement(\"li\");\n\t        li.classList.add(\"font-list-item\");\n\t        var fontButton = document.createElement(\"button\");\n\t        fontButton.type = \"button\";\n\t        fontButton.id = \"font-button-\" + fontId + this.fontManager.selectorSuffix;\n\t        fontButton.classList.add(\"font-button\");\n\t        fontButton.textContent = font.family;\n\t        var onActivate = function () {\n\t            _this.toggleExpanded();\n\t            _this.setActiveFont(font.family);\n\t        };\n\t        fontButton.onclick = onActivate;\n\t        fontButton.onkeypress = onActivate;\n\t        li.appendChild(fontButton);\n\t        if (listIndex) {\n\t            this.ul.insertBefore(li, this.ul.children[listIndex]);\n\t        }\n\t        else {\n\t            this.ul.appendChild(li);\n\t        }\n\t    };\n\t    FontPicker.prototype.closeEventListener = function (e) {\n\t        var targetEl = e.target;\n\t        var fontPickerEl = document.getElementById(\"font-picker\" + this.fontManager.selectorSuffix);\n\t        while (true) {\n\t            if (targetEl === fontPickerEl) {\n\t                return;\n\t            }\n\t            if (targetEl.parentNode) {\n\t                targetEl = targetEl.parentNode;\n\t            }\n\t            else {\n\t                this.toggleExpanded();\n\t                return;\n\t            }\n\t        }\n\t    };\n\t    FontPicker.prototype.toggleExpanded = function () {\n\t        if (this.expanded) {\n\t            this.expanded = false;\n\t            this.fontPickerDiv.classList.remove(\"expanded\");\n\t            document.removeEventListener(\"click\", this.closeEventListener);\n\t        }\n\t        else {\n\t            this.expanded = true;\n\t            this.fontPickerDiv.classList.add(\"expanded\");\n\t            document.addEventListener(\"click\", this.closeEventListener);\n\t        }\n\t    };\n\t    FontPicker.prototype.getFonts = function () {\n\t        return this.fontManager.getFonts();\n\t    };\n\t    FontPicker.prototype.addFont = function (fontFamily, index) {\n\t        if (Array.from(this.fontManager.getFonts().keys()).includes(fontFamily)) {\n\t            throw Error(\"Did not add font to font picker: Font family \\\"\" + fontFamily + \"\\\" is already in the list\");\n\t        }\n\t        this.fontManager.addFont(fontFamily, true);\n\t        var font = this.fontManager.getFonts().get(fontFamily);\n\t        if (font) {\n\t            this.addFontLi(font, index);\n\t        }\n\t        else {\n\t            console.error(\"Font \\\"\" + fontFamily + \"\\\" is missing in font list\");\n\t        }\n\t    };\n\t    FontPicker.prototype.removeFont = function (fontFamily) {\n\t        this.fontManager.removeFont(fontFamily);\n\t        var fontId = fontManager.getFontId(fontFamily);\n\t        var fontButton = document.getElementById(\"font-button-\" + fontId + this.fontManager.selectorSuffix);\n\t        if (fontButton) {\n\t            var fontLi = fontButton.parentElement;\n\t            fontButton.remove();\n\t            if (fontLi) {\n\t                fontLi.remove();\n\t            }\n\t        }\n\t        else {\n\t            throw Error(\"Could not remove font from font picker: Font family \\\"\" + fontFamily + \"\\\" is not in the list\");\n\t        }\n\t    };\n\t    FontPicker.prototype.getActiveFont = function () {\n\t        return this.fontManager.getActiveFont();\n\t    };\n\t    FontPicker.prototype.setActiveFont = function (fontFamily) {\n\t        this.fontManager.setActiveFont(fontFamily);\n\t        var fontId = fontManager.getFontId(fontFamily);\n\t        this.dropdownFamily.textContent = fontFamily;\n\t        if (this.activeFontButton) {\n\t            this.activeFontButton.classList.remove(\"active-font\");\n\t            this.activeFontButton = document.getElementById(\"font-button-\" + fontId + this.fontManager.selectorSuffix);\n\t            this.activeFontButton.classList.add(\"active-font\");\n\t        }\n\t        else {\n\t            console.error(\"`activeFontButton` is undefined\");\n\t        }\n\t    };\n\t    FontPicker.prototype.setOnChange = function (onChange) {\n\t        this.fontManager.setOnChange(onChange);\n\t    };\n\t    return FontPicker;\n\t}());\n\n\treturn FontPicker;\n\n})));\n"]}