{"version":3,"sources":["jsdelivr-header.js","/npm/@mob-on/react-i18n@1.1.0/dist/index.cjs.js"],"names":[],"mappings":"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","file":"/npm/@mob-on/react-i18n@1.1.0/dist/index.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@mob-on/react-i18n@1.1.0/dist/index.cjs.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\nvar router = require('next/router');\nvar React = require('react');\nvar parse = require('html-react-parser');\nvar Mustache = require('mustache');\nvar ReactDOMServer = require('react-dom/server');\nvar sanitizeHtml = require('sanitize-html');\nvar jsxRuntime = require('react/jsx-runtime');\nvar reactBootstrap = require('react-bootstrap');\n\nconst config = require(\"./../../../../i18n/config\").default;\r\nconst { locales, localeNames, alias, translations, defaultLocale } = config;\r\nconst getAlias = (language) => {\r\n    return alias[Object.keys(alias).find((a) => a === language)];\r\n};\r\nconst sanitizeLocale = (locale) => {\r\n    if (!locale) {\r\n        return \"\";\r\n    }\r\n    let [language, country] = locale.toLowerCase().split(/[,-_ ]/);\r\n    if (!country) {\r\n        const alias = getAlias(language);\r\n        language = getLanguage(alias);\r\n        country = getCountry(alias);\r\n    }\r\n    return `${language}-${country.toUpperCase()}`;\r\n};\r\nconst getCountry = (locale) => {\r\n    return sanitizeLocale(locale).split(\"-\")[1];\r\n};\r\nconst getLanguage = (locale) => {\r\n    return sanitizeLocale(locale).split(\"-\")[0];\r\n};\r\nconst i18n = {\r\n    locales,\r\n    alias,\r\n    defaultLocale,\r\n    useBrowserDefault: true,\r\n    getLocaleName: (locale) => {\r\n        const localeToFind = sanitizeLocale(locale).replace(\"-\", \"_\").toLowerCase();\r\n        return (localeNames[Object.keys(localeNames).find((l) => l == localeToFind)] ||\r\n            locale.toUpperCase());\r\n    },\r\n    getTranslations: (locale) => {\r\n        const localeToFind = sanitizeLocale(locale).replace(\"-\", \"_\").toLowerCase();\r\n        return (translations[Object.keys(translations).find((l) => l == localeToFind)] ||\r\n            translations[defaultLocale]);\r\n    },\r\n    getCountry,\r\n    getLanguage,\r\n    sanitizeLocale,\r\n    exists: (locale) => {\r\n        const localeToFind = sanitizeLocale(locale);\r\n        return !!locales.find((l) => l === localeToFind);\r\n    },\r\n    mergeTranslations: (translations, secondTranslations, prefix) => {\r\n        for (const [key, value] of Object.entries(translations)) {\r\n            value[prefix] = secondTranslations[key];\r\n        }\r\n    },\r\n};\n\nconst useSelectedLocale = () => {\r\n    const router$1 = router.useRouter();\r\n    const [locale, setLocale] = React.useState(i18n.defaultLocale);\r\n    React.useEffect(() => {\r\n        const urlLocale = i18n.sanitizeLocale(Array.isArray(router$1.query.locale)\r\n            ? router$1.query.locale[0]\r\n            : router$1.query.locale);\r\n        if (i18n.exists(urlLocale)) {\r\n            setLocale(urlLocale);\r\n            window.localStorage.setItem(\"locale\", urlLocale);\r\n        }\r\n        else if (typeof window !== \"undefined\") {\r\n            const localStorageLocale = window.localStorage.getItem(\"locale\");\r\n            if (i18n.exists(localStorageLocale)) {\r\n                setLocale(localStorageLocale);\r\n            }\r\n            else if (i18n.useBrowserDefault) {\r\n                const navLocale = window.navigator?.languages?.[0] || window.navigator?.language;\r\n                if (i18n.exists(navLocale)) {\r\n                    const locale = i18n.sanitizeLocale(navLocale);\r\n                    setLocale(locale);\r\n                    window.localStorage.setItem(\"locale\", locale);\r\n                }\r\n            }\r\n        }\r\n    }, [setLocale, router$1.query.locale]);\r\n    const changeLocale = (localeSelected) => {\r\n        const locale = i18n.sanitizeLocale(localeSelected);\r\n        const localeName = i18n.getLocaleName(locale);\r\n        if (localeName) {\r\n            window.localStorage.setItem(\"locale\", locale);\r\n            router$1.reload();\r\n        }\r\n        else {\r\n            console.error(`Unsupported locale: ${locale}`);\r\n        }\r\n    };\r\n    return { locale, changeLocale };\r\n};\n\n/**\r\n * Provides the t() function which returns the value stored for this given key (e.g. \"ui.headline\")\r\n * in the translation file.\r\n * The return value can be a string, a number, an array or an object.\r\n * In case there is no entry for this key, it returns the key.\r\n * @returns t(key: string): any function\r\n */\r\nconst useTranslation = () => {\r\n    const { locale } = useSelectedLocale();\r\n    const enrich = (object) => {\r\n        if (React.isValidElement(object)) {\r\n            return ReactDOMServer.renderToString(object);\r\n        }\r\n        else if (object instanceof Object && Object.keys(object).length) {\r\n            const newObject = {};\r\n            for (const key of Object.keys(object)) {\r\n                newObject[key] = enrich(object[key]);\r\n            }\r\n            return newObject;\r\n        }\r\n        return object;\r\n    };\r\n    return {\r\n        /**\r\n         * Returns the value stored for this given key (e.g. \"i18n.ui.headline\")  in the translation file.\r\n         * The return value can be a string, a number, an array or an object.\r\n         * In case there is no entry for this key, it returns the key.\r\n         * @param key the key for looking up the translation\r\n         * @param view the mustache view for interpolating the template string\r\n         * @returns the value stored for this key, could be a string, a number, an array or an object\r\n         */\r\n        t: (key, view) => {\r\n            let value = key\r\n                .split(\".\")\r\n                .reduce((previous, current) => (previous && previous[current]) || null, i18n.getTranslations(locale));\r\n            let translation = value || key;\r\n            try {\r\n                const richArgs = enrich(view);\r\n                return parse(Mustache.render(sanitizeHtml(translation, {\r\n                    allowedTags: [],\r\n                    allowedAttributes: {},\r\n                }), richArgs));\r\n            }\r\n            catch (e) {\r\n                return translation;\r\n            }\r\n        },\r\n    };\r\n};\n\nconst Flag = ({ id, size = \"2em\", ...props }) => {\r\n    return (jsxRuntime.jsx(\"span\", { className: `fi fi-${id.toLowerCase()} fis rounded-circle`, style: { height: size, width: size }, ...props }));\r\n};\n\nconst LocaleSwitcher = ({ show, hide, children, }) => {\r\n    const { t } = useTranslation();\r\n    const locales = i18n.locales;\r\n    const { locale: currentLocale, changeLocale } = useSelectedLocale();\r\n    return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [children, jsxRuntime.jsxs(reactBootstrap.Modal, { show: show, centered: true, onHide: hide, children: [jsxRuntime.jsx(reactBootstrap.Modal.Header, { closeButton: true, children: jsxRuntime.jsx(\"h5\", { className: \"text-body\", children: t(\"language.select\") }) }), jsxRuntime.jsx(reactBootstrap.Modal.Body, { className: \"p-4\", children: jsxRuntime.jsx(reactBootstrap.Row, { children: locales\r\n                                .sort((a, _b) => (a === currentLocale ? -1 : 0))\r\n                                .map((locale, index) => {\r\n                                const localeName = i18n.getLocaleName(locale);\r\n                                const country = i18n.getCountry(locale).toLowerCase();\r\n                                const selected = locale === currentLocale;\r\n                                return (jsxRuntime.jsx(reactBootstrap.Col, { xs: 12, sm: 6, children: jsxRuntime.jsxs(reactBootstrap.Button, { variant: selected ? \"light-outline\" : \"light\", className: \"my-1 w-100 text-start d-flex align-items-center justify-content-between\", onClick: () => changeLocale(locale), disabled: selected, children: [jsxRuntime.jsxs(\"div\", { className: \"d-flex align-items-center\", children: [jsxRuntime.jsx(Flag, { id: country }), jsxRuntime.jsx(\"span\", { className: \"ms-2\", children: localeName })] }), selected && jsxRuntime.jsx(\"span\", { children: \"\\u2714\\uFE0F\" })] }) }, index));\r\n                            }) }) })] })] }));\r\n};\n\nexports.Flag = Flag;\nexports.LocaleSwitcher = LocaleSwitcher;\nexports.i18n = i18n;\nexports.useSelectedLocale = useSelectedLocale;\nexports.useTranslation = useTranslation;\n"]}