@dynamicforms/vuetify-inputs 0.6.6 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"dynamicforms-vuetify-inputs.umd.cjs","sources":["../node_modules/@ckeditor/ckeditor5-integrations-common/dist/index.js","../node_modules/@ckeditor/ckeditor5-vue/dist/ckeditor.js","../node_modules/date-fns/locale/sl/_lib/formatDistance.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/sl/_lib/formatLong.js","../node_modules/date-fns/locale/sl/_lib/formatRelative.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/sl/_lib/localize.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/sl/_lib/match.js","../node_modules/date-fns/locale/sl.js","../src/helpers/date-time-locale.ts","../src/helpers/df-label.vue","../src/helpers/settings.ts","../src/helpers/input-base.ts","../src/helpers/messages-widget.vue","../src/helpers/input-base.vue","../src/helpers/translations.ts","../src/helpers/action/action-display-style.ts","../src/helpers/action/responsive-render-options.ts","../src/helpers/action/action-render-options.ts","../src/helpers/action/action.ts","../src/df-actions.vue","../src/df-checkbox.vue","../src/df-color.vue","../src/df-datetime.vue","../src/df-file.vue","../src/df-input.vue","../src/helpers/ck-editor-custom.vue","../src/df-rtf-editor.vue","../src/helpers/df-select.helper.ts","../src/df-select.vue","../src/df-text-area.vue","../src/index.ts"],"sourcesContent":["/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createDefer() {\n const deferred = {\n resolve: null,\n promise: null\n };\n deferred.promise = new Promise((resolve) => {\n deferred.resolve = resolve;\n });\n return deferred;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction waitFor(callback, {\n timeOutAfter = 500,\n retryAfter = 100\n} = {}) {\n return new Promise((resolve, reject) => {\n const startTime = Date.now();\n let lastError = null;\n const timeoutTimerId = setTimeout(() => {\n reject(lastError ?? new Error(\"Timeout\"));\n }, timeOutAfter);\n const tick = async () => {\n try {\n const result = await callback();\n clearTimeout(timeoutTimerId);\n resolve(result);\n } catch (err) {\n lastError = err;\n if (Date.now() - startTime > timeOutAfter) {\n reject(err);\n } else {\n setTimeout(tick, retryAfter);\n }\n }\n };\n tick();\n });\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst INJECTED_SCRIPTS = /* @__PURE__ */ new Map();\nfunction injectScript(src, { attributes } = {}) {\n if (INJECTED_SCRIPTS.has(src)) {\n return INJECTED_SCRIPTS.get(src);\n }\n const maybePrevScript = document.querySelector(`script[src=\"${src}\"]`);\n if (maybePrevScript) {\n console.warn(`Script with \"${src}\" src is already present in DOM!`);\n maybePrevScript.remove();\n }\n const promise = new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.onerror = reject;\n script.onload = () => {\n resolve();\n };\n for (const [key, value] of Object.entries(attributes || {})) {\n script.setAttribute(key, value);\n }\n script.setAttribute(\"data-injected-by\", \"ckeditor-integration\");\n script.type = \"text/javascript\";\n script.async = true;\n script.src = src;\n document.head.appendChild(script);\n const observer = new MutationObserver((mutations) => {\n const removedNodes = mutations.flatMap((mutation) => Array.from(mutation.removedNodes));\n if (removedNodes.includes(script)) {\n INJECTED_SCRIPTS.delete(src);\n observer.disconnect();\n }\n });\n observer.observe(document.head, {\n childList: true,\n subtree: true\n });\n });\n INJECTED_SCRIPTS.set(src, promise);\n return promise;\n}\nasync function injectScriptsInParallel(sources, props) {\n await Promise.all(\n sources.map((src) => injectScript(src, props))\n );\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst INJECTED_STYLESHEETS = /* @__PURE__ */ new Map();\nfunction injectStylesheet({\n href,\n placementInHead = \"start\",\n attributes = {}\n}) {\n if (INJECTED_STYLESHEETS.has(href)) {\n return INJECTED_STYLESHEETS.get(href);\n }\n const maybePrevStylesheet = document.querySelector(`link[href=\"${href}\"][rel=\"stylesheet\"]`);\n if (maybePrevStylesheet) {\n console.warn(`Stylesheet with \"${href}\" href is already present in DOM!`);\n maybePrevStylesheet.remove();\n }\n const appendLinkTagToHead = (link) => {\n const previouslyInjectedLinks = Array.from(\n document.head.querySelectorAll('link[data-injected-by=\"ckeditor-integration\"]')\n );\n switch (placementInHead) {\n case \"start\":\n if (previouslyInjectedLinks.length) {\n previouslyInjectedLinks.slice(-1)[0].after(link);\n } else {\n document.head.insertBefore(link, document.head.firstChild);\n }\n break;\n case \"end\":\n document.head.appendChild(link);\n break;\n }\n };\n const promise = new Promise((resolve, reject) => {\n const link = document.createElement(\"link\");\n for (const [key, value] of Object.entries(attributes || {})) {\n link.setAttribute(key, value);\n }\n link.setAttribute(\"data-injected-by\", \"ckeditor-integration\");\n link.rel = \"stylesheet\";\n link.href = href;\n link.onerror = reject;\n link.onload = () => {\n resolve();\n };\n appendLinkTagToHead(link);\n const observer = new MutationObserver((mutations) => {\n const removedNodes = mutations.flatMap((mutation) => Array.from(mutation.removedNodes));\n if (removedNodes.includes(link)) {\n INJECTED_STYLESHEETS.delete(href);\n observer.disconnect();\n }\n });\n observer.observe(document.head, {\n childList: true,\n subtree: true\n });\n });\n INJECTED_STYLESHEETS.set(href, promise);\n return promise;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isSSR() {\n return typeof window === \"undefined\";\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction once(fn) {\n let lastResult = null;\n return (...args) => {\n if (!lastResult) {\n lastResult = {\n current: fn(...args)\n };\n }\n return lastResult.current;\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction overwriteArray(source, destination) {\n destination.length = 0;\n destination.push(...source);\n return destination;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction overwriteObject(source, destination) {\n for (const prop of Object.getOwnPropertyNames(destination)) {\n delete destination[prop];\n }\n for (const [key, value] of Object.entries(source)) {\n if (value !== destination && key !== \"prototype\" && key !== \"__proto__\") {\n destination[key] = value;\n }\n }\n return destination;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction preloadResource(url, { attributes } = {}) {\n if (document.head.querySelector(`link[href=\"${url}\"][rel=\"preload\"]`)) {\n return;\n }\n const link = document.createElement(\"link\");\n for (const [key, value] of Object.entries(attributes || {})) {\n link.setAttribute(key, value);\n }\n link.setAttribute(\"data-injected-by\", \"ckeditor-integration\");\n link.rel = \"preload\";\n link.as = detectTypeOfResource(url);\n link.href = url;\n document.head.insertBefore(link, document.head.firstChild);\n}\nfunction detectTypeOfResource(url) {\n switch (true) {\n case /\\.css$/.test(url):\n return \"style\";\n case /\\.js$/.test(url):\n return \"script\";\n default:\n return \"fetch\";\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction shallowCompareArrays(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst HEX_NUMBERS = new Array(256).fill(\"\").map((_, index) => (\"0\" + index.toString(16)).slice(-2));\nfunction uid() {\n const [r1, r2, r3, r4] = crypto.getRandomValues(new Uint32Array(4));\n return \"e\" + HEX_NUMBERS[r1 >> 0 & 255] + HEX_NUMBERS[r1 >> 8 & 255] + HEX_NUMBERS[r1 >> 16 & 255] + HEX_NUMBERS[r1 >> 24 & 255] + HEX_NUMBERS[r2 >> 0 & 255] + HEX_NUMBERS[r2 >> 8 & 255] + HEX_NUMBERS[r2 >> 16 & 255] + HEX_NUMBERS[r2 >> 24 & 255] + HEX_NUMBERS[r3 >> 0 & 255] + HEX_NUMBERS[r3 >> 8 & 255] + HEX_NUMBERS[r3 >> 16 & 255] + HEX_NUMBERS[r3 >> 24 & 255] + HEX_NUMBERS[r4 >> 0 & 255] + HEX_NUMBERS[r4 >> 8 & 255] + HEX_NUMBERS[r4 >> 16 & 255] + HEX_NUMBERS[r4 >> 24 & 255];\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction uniq(source) {\n return Array.from(new Set(source));\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nasync function waitForWindowEntry(entryNames, config) {\n const tryPickBundle = () => entryNames.map((name) => window[name]).filter(Boolean)[0];\n return waitFor(\n () => {\n const result = tryPickBundle();\n if (!result) {\n throw new Error(`Window entry \"${entryNames.join(\",\")}\" not found.`);\n }\n return result;\n },\n config\n );\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction filterObjectValues(obj, filter) {\n const filteredEntries = Object.entries(obj).filter(([key, value]) => filter(value, key));\n return Object.fromEntries(filteredEntries);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction filterBlankObjectValues(obj) {\n return filterObjectValues(\n obj,\n (value) => value !== null && value !== void 0\n );\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction mapObjectValues(obj, mapper) {\n const mappedEntries = Object.entries(obj).map(([key, value]) => [key, mapper(value, key)]);\n return Object.fromEntries(mappedEntries);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction without(itemsToRemove, items) {\n return items.filter((item) => !itemsToRemove.includes(item));\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction appendExtraPluginsToEditorConfig(config, plugins) {\n const extraPlugins = config.extraPlugins || [];\n return {\n ...config,\n extraPlugins: [\n ...extraPlugins,\n ...plugins.filter((item) => !extraPlugins.includes(item))\n ]\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isSemanticVersion(version) {\n return !!version && /^\\d+\\.\\d+\\.\\d+/.test(version);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isCKCdnTestingVersion(version) {\n if (!version) {\n return false;\n }\n return [\"nightly\", \"alpha\", \"internal\", \"nightly-\", \"staging\"].some((testVersion) => version.includes(testVersion));\n}\nfunction isCKCdnVersion(version) {\n return isSemanticVersion(version) || isCKCdnTestingVersion(version);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction destructureSemanticVersion(version) {\n if (!isSemanticVersion(version)) {\n throw new Error(`Invalid semantic version: ${version || \"<blank>\"}.`);\n }\n const [major, minor, patch] = version.split(\".\");\n return {\n major: Number.parseInt(major, 10),\n minor: Number.parseInt(minor, 10),\n patch: Number.parseInt(patch, 10)\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction getLicenseVersionFromEditorVersion(version) {\n if (isCKCdnTestingVersion(version)) {\n return 3;\n }\n const { major } = destructureSemanticVersion(version);\n switch (true) {\n case major >= 44:\n return 3;\n case major >= 38:\n return 2;\n default:\n return 1;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction getCKBaseBundleInstallationInfo() {\n const { CKEDITOR_VERSION, CKEDITOR } = window;\n if (!isCKCdnVersion(CKEDITOR_VERSION)) {\n return null;\n }\n return {\n source: CKEDITOR ? \"cdn\" : \"npm\",\n version: CKEDITOR_VERSION\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction getSupportedLicenseVersionInstallationInfo() {\n const installationInfo = getCKBaseBundleInstallationInfo();\n if (!installationInfo) {\n return null;\n }\n return getLicenseVersionFromEditorVersion(installationInfo.version);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isCKEditorFreeLicense(licenseKey, licenseVersion) {\n licenseVersion ||= getSupportedLicenseVersionInstallationInfo() || void 0;\n switch (licenseVersion) {\n case 1:\n case 2:\n return licenseKey === void 0;\n case 3:\n return licenseKey === \"GPL\";\n default: {\n return false;\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createIntegrationUsageDataPlugin(integrationName, usageData) {\n return function IntegrationUsageDataPlugin(editor) {\n if (isCKEditorFreeLicense(editor.config.get(\"licenseKey\"))) {\n return;\n }\n editor.on(\"collectUsageData\", (source, { setUsageData }) => {\n setUsageData(`integration.${integrationName}`, usageData);\n });\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst CK_CDN_URL = \"https://cdn.ckeditor.com\";\nfunction createCKCdnUrl(bundle, file, version) {\n return `${CK_CDN_URL}/${bundle}/${version}/${file}`;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst CKBOX_CDN_URL = \"https://cdn.ckbox.io\";\nfunction createCKBoxCdnUrl(bundle, file, version) {\n return `${CKBOX_CDN_URL}/${bundle}/${version}/${file}`;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst CK_DOCS_URL = \"https://ckeditor.com/docs/ckeditor5\";\nfunction createCKDocsUrl(path, version = \"latest\") {\n return `${CK_DOCS_URL}/${version}/${path}`;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createCKCdnBaseBundlePack({\n version,\n translations,\n createCustomCdnUrl = createCKCdnUrl\n}) {\n const urls = {\n scripts: [\n // Load the main script of the base features.\n createCustomCdnUrl(\"ckeditor5\", \"ckeditor5.umd.js\", version),\n // Load all JavaScript files from the base features.\n // EN bundle is prebuilt into the main script, so we don't need to load it separately.\n ...without([\"en\"], translations || []).map(\n (translation) => createCustomCdnUrl(\"ckeditor5\", `translations/${translation}.umd.js`, version)\n )\n ],\n stylesheets: [\n createCustomCdnUrl(\"ckeditor5\", \"ckeditor5.css\", version)\n ]\n };\n return {\n // Preload resources specified in the pack, before loading the main script.\n preload: [\n ...urls.stylesheets,\n ...urls.scripts\n ],\n scripts: [\n // It's safe to load translations and the main script in parallel.\n async (attributes) => injectScriptsInParallel(urls.scripts, attributes)\n ],\n // Load all stylesheets of the base features.\n stylesheets: urls.stylesheets,\n // Pick the exported global variables from the window object.\n checkPluginLoaded: async () => waitForWindowEntry([\"CKEDITOR\"]),\n // Check if the CKEditor base bundle is already loaded and throw an error if it is.\n beforeInject: () => {\n const installationInfo = getCKBaseBundleInstallationInfo();\n switch (installationInfo?.source) {\n case \"npm\":\n throw new Error(\n \"CKEditor 5 is already loaded from npm. Check the migration guide for more details: \" + createCKDocsUrl(\"updating/migration-to-cdn/vanilla-js.html\")\n );\n case \"cdn\":\n if (installationInfo.version !== version) {\n throw new Error(\n `CKEditor 5 is already loaded from CDN in version ${installationInfo.version}. Remove the old <script> and <link> tags loading CKEditor 5 to allow loading the ${version} version.`\n );\n }\n break;\n }\n }\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createCKCdnPremiumBundlePack({\n version,\n translations,\n createCustomCdnUrl = createCKCdnUrl\n}) {\n const urls = {\n scripts: [\n // Load the main script of the premium features.\n createCustomCdnUrl(\"ckeditor5-premium-features\", \"ckeditor5-premium-features.umd.js\", version),\n // Load all JavaScript files from the premium features.\n // EN bundle is prebuilt into the main script, so we don't need to load it separately.\n ...without([\"en\"], translations || []).map(\n (translation) => createCustomCdnUrl(\"ckeditor5-premium-features\", `translations/${translation}.umd.js`, version)\n )\n ],\n stylesheets: [\n createCustomCdnUrl(\"ckeditor5-premium-features\", \"ckeditor5-premium-features.css\", version)\n ]\n };\n return {\n // Preload resources specified in the pack, before loading the main script.\n preload: [\n ...urls.stylesheets,\n ...urls.scripts\n ],\n scripts: [\n // It's safe to load translations and the main script in parallel.\n async (attributes) => injectScriptsInParallel(urls.scripts, attributes)\n ],\n // Load all stylesheets of the premium features.\n stylesheets: urls.stylesheets,\n // Pick the exported global variables from the window object.\n checkPluginLoaded: async () => waitForWindowEntry([\"CKEDITOR_PREMIUM_FEATURES\"])\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nasync function loadCKCdnResourcesPack(pack) {\n let {\n htmlAttributes = {},\n scripts = [],\n stylesheets = [],\n preload,\n beforeInject,\n checkPluginLoaded\n } = normalizeCKCdnResourcesPack(pack);\n beforeInject?.();\n if (!preload) {\n preload = uniq([\n ...stylesheets.filter((item) => typeof item === \"string\"),\n ...scripts.filter((item) => typeof item === \"string\")\n ]);\n }\n for (const url of preload) {\n preloadResource(url, {\n attributes: htmlAttributes\n });\n }\n await Promise.all(\n uniq(stylesheets).map((href) => injectStylesheet({\n href,\n attributes: htmlAttributes,\n placementInHead: \"start\"\n }))\n );\n for (const script of uniq(scripts)) {\n const injectorProps = {\n attributes: htmlAttributes\n };\n if (typeof script === \"string\") {\n await injectScript(script, injectorProps);\n } else {\n await script(injectorProps);\n }\n }\n return checkPluginLoaded?.();\n}\nfunction normalizeCKCdnResourcesPack(pack) {\n if (Array.isArray(pack)) {\n return {\n scripts: pack.filter(\n (item) => typeof item === \"function\" || item.endsWith(\".js\")\n ),\n stylesheets: pack.filter(\n (item) => item.endsWith(\".css\")\n )\n };\n }\n if (typeof pack === \"function\") {\n return {\n checkPluginLoaded: pack\n };\n }\n return pack;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction combineCKCdnBundlesPacks(packs) {\n const normalizedPacks = mapObjectValues(\n filterBlankObjectValues(packs),\n normalizeCKCdnResourcesPack\n );\n const mergedPacks = Object.values(normalizedPacks).reduce(\n (acc, pack) => {\n acc.scripts.push(...pack.scripts ?? []);\n acc.stylesheets.push(...pack.stylesheets ?? []);\n acc.preload.push(...pack.preload ?? []);\n return acc;\n },\n {\n preload: [],\n scripts: [],\n stylesheets: []\n }\n );\n const checkPluginLoaded = async () => {\n const exportedGlobalVariables = /* @__PURE__ */ Object.create(null);\n for (const [name, pack] of Object.entries(normalizedPacks)) {\n exportedGlobalVariables[name] = await pack?.checkPluginLoaded?.();\n }\n return exportedGlobalVariables;\n };\n const beforeInject = () => {\n for (const pack of Object.values(normalizedPacks)) {\n pack.beforeInject?.();\n }\n };\n return {\n ...mergedPacks,\n beforeInject,\n checkPluginLoaded\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction getCKBoxInstallationInfo() {\n const version = window.CKBox?.version;\n if (!isSemanticVersion(version)) {\n return null;\n }\n return {\n source: \"cdn\",\n version\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createCKBoxBundlePack({\n version,\n theme = \"lark\",\n translations,\n createCustomCdnUrl = createCKBoxCdnUrl\n}) {\n return {\n // Load the main script of the base features.\n scripts: [\n createCustomCdnUrl(\"ckbox\", \"ckbox.js\", version),\n // EN bundle is prebuilt into the main script, so we don't need to load it separately.\n ...without([\"en\"], translations || []).map(\n (translation) => createCustomCdnUrl(\"ckbox\", `translations/${translation}.js`, version)\n )\n ],\n // Load optional theme, if provided. It's not required but recommended because it improves the look and feel.\n ...theme && {\n stylesheets: [\n createCustomCdnUrl(\"ckbox\", `styles/themes/${theme}.css`, version)\n ]\n },\n // Pick the exported global variables from the window object.\n checkPluginLoaded: async () => waitForWindowEntry([\"CKBox\"]),\n // Check if the CKBox bundle is already loaded and throw an error if it is.\n beforeInject: () => {\n const installationInfo = getCKBoxInstallationInfo();\n if (installationInfo && installationInfo.version !== version) {\n throw new Error(\n `CKBox is already loaded from CDN in version ${installationInfo.version}. Remove the old <script> and <link> tags loading CKBox to allow loading the ${version} version.`\n );\n }\n }\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isCKCdnSupportedByEditorVersion(version) {\n if (isCKCdnTestingVersion(version)) {\n return true;\n }\n const { major } = destructureSemanticVersion(version);\n const licenseVersion = getLicenseVersionFromEditorVersion(version);\n switch (licenseVersion) {\n case 3:\n return true;\n default:\n return major === 43;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction combineCdnPluginsPacks(pluginsPacks) {\n const normalizedPluginsPacks = mapObjectValues(pluginsPacks, (pluginPack, pluginName) => {\n if (!pluginPack) {\n return void 0;\n }\n const normalizedPluginPack = normalizeCKCdnResourcesPack(pluginPack);\n return {\n // Provide default window accessor object if the plugin pack does not define it.\n checkPluginLoaded: async () => waitForWindowEntry([pluginName]),\n // Transform the plugin pack to a normalized advanced pack.\n ...normalizedPluginPack\n };\n });\n return combineCKCdnBundlesPacks(\n normalizedPluginsPacks\n );\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction loadCKEditorCloud(config) {\n const {\n version,\n translations,\n plugins,\n premium,\n ckbox,\n createCustomCdnUrl,\n injectedHtmlElementsAttributes = {\n crossorigin: \"anonymous\"\n }\n } = config;\n validateCKEditorVersion(version);\n const pack = combineCKCdnBundlesPacks({\n CKEditor: createCKCdnBaseBundlePack({\n version,\n translations,\n createCustomCdnUrl\n }),\n ...premium && {\n CKEditorPremiumFeatures: createCKCdnPremiumBundlePack({\n version,\n translations,\n createCustomCdnUrl\n })\n },\n ...ckbox && {\n CKBox: createCKBoxBundlePack(ckbox)\n },\n loadedPlugins: combineCdnPluginsPacks(plugins ?? {})\n });\n return loadCKCdnResourcesPack(\n {\n ...pack,\n htmlAttributes: injectedHtmlElementsAttributes\n }\n );\n}\nfunction validateCKEditorVersion(version) {\n if (isCKCdnTestingVersion(version)) {\n console.warn(\n \"You are using a testing version of CKEditor 5. Please remember that it is not suitable for production environments.\"\n );\n }\n if (!isCKCdnSupportedByEditorVersion(version)) {\n throw new Error(\n `The CKEditor 5 CDN can't be used with the given editor version: ${version}. Please make sure you are using at least the CKEditor 5 version 44.`\n );\n }\n}\n\nexport { CKBOX_CDN_URL, CK_CDN_URL, INJECTED_SCRIPTS, INJECTED_STYLESHEETS, appendExtraPluginsToEditorConfig, createCKBoxCdnUrl, createCKCdnUrl, createDefer, createIntegrationUsageDataPlugin, filterBlankObjectValues, filterObjectValues, injectScript, injectScriptsInParallel, injectStylesheet, isCKEditorFreeLicense, isSSR, loadCKEditorCloud, mapObjectValues, once, overwriteArray, overwriteObject, preloadResource, shallowCompareArrays, uid, uniq, waitFor, waitForWindowEntry, without };\n//# sourceMappingURL=index.js.map\n","import * as Vue from \"vue\";\nimport { version, defineComponent, mergeModels, useModel, ref, watch, onMounted, markRaw, onBeforeUnmount, openBlock, createBlock, resolveDynamicComponent, computed, watchEffect, shallowReadonly, toValue } from \"vue\";\nimport { debounce } from \"lodash-es\";\nimport { createIntegrationUsageDataPlugin, isCKEditorFreeLicense, appendExtraPluginsToEditorConfig, uid, loadCKEditorCloud } from \"@ckeditor/ckeditor5-integrations-common\";\nimport { loadCKEditorCloud as loadCKEditorCloud2 } from \"@ckeditor/ckeditor5-integrations-common\";\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nconst VueIntegrationUsageDataPlugin = createIntegrationUsageDataPlugin(\n \"vue\",\n {\n version: \"7.3.0\",\n frameworkVersion: version\n }\n);\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nfunction appendAllIntegrationPluginsToConfig(editorConfig) {\n if (isCKEditorFreeLicense(editorConfig.licenseKey)) {\n return editorConfig;\n }\n return appendExtraPluginsToEditorConfig(editorConfig, [\n /**\n * This part of the code is not executed in open-source implementations using a GPL key.\n * It only runs when a specific license key is provided. If you are uncertain whether\n * this applies to your installation, please contact our support team.\n */\n VueIntegrationUsageDataPlugin\n ]);\n}\nconst VUE_INTEGRATION_READ_ONLY_LOCK_ID = \"Lock from Vue integration (@ckeditor/ckeditor5-vue)\";\nconst INPUT_EVENT_DEBOUNCE_WAIT = 300;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n name: \"CKEditor\"\n },\n __name: \"ckeditor\",\n props: /* @__PURE__ */ mergeModels({\n editor: {},\n config: { default: () => ({}) },\n tagName: { default: \"div\" },\n disabled: { type: Boolean, default: false },\n disableTwoWayDataBinding: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: String, default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"ready\", \"destroy\", \"blur\", \"focus\", \"input\", \"update:modelValue\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const model = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n const element = ref();\n const instance = ref();\n const lastEditorData = ref();\n __expose({\n instance,\n lastEditorData\n });\n watch(model, (newModel) => {\n if (instance.value && newModel !== lastEditorData.value) {\n instance.value.data.set(newModel);\n }\n });\n watch(() => props.disabled, (readOnlyMode) => {\n if (readOnlyMode) {\n instance.value.enableReadOnlyMode(VUE_INTEGRATION_READ_ONLY_LOCK_ID);\n } else {\n instance.value.disableReadOnlyMode(VUE_INTEGRATION_READ_ONLY_LOCK_ID);\n }\n });\n function checkVersion() {\n const version2 = window.CKEDITOR_VERSION;\n if (!version2) {\n return console.warn('Cannot find the \"CKEDITOR_VERSION\" in the \"window\" scope.');\n }\n const [major] = version2.split(\".\").map(Number);\n if (major >= 42 || version2.startsWith(\"0.0.0\")) {\n return;\n }\n console.warn(\"The <CKEditor> component requires using CKEditor 5 in version 42+ or nightly build.\");\n }\n function setUpEditorEvents(editor) {\n const emitDebouncedInputEvent = debounce((evt) => {\n if (props.disableTwoWayDataBinding) {\n return;\n }\n const data = lastEditorData.value = editor.data.get();\n emit(\"update:modelValue\", data, evt, editor);\n emit(\"input\", data, evt, editor);\n }, INPUT_EVENT_DEBOUNCE_WAIT, { leading: true });\n editor.model.document.on(\"change:data\", emitDebouncedInputEvent);\n editor.editing.view.document.on(\"focus\", (evt) => {\n emit(\"focus\", evt, editor);\n });\n editor.editing.view.document.on(\"blur\", (evt) => {\n emit(\"blur\", evt, editor);\n });\n }\n checkVersion();\n onMounted(() => {\n const editorConfig = appendAllIntegrationPluginsToConfig(\n Object.assign({}, props.config)\n );\n if (model.value) {\n editorConfig.initialData = model.value;\n }\n props.editor.create(element.value, editorConfig).then((editor) => {\n instance.value = markRaw(editor);\n setUpEditorEvents(editor);\n if (model.value !== editorConfig.initialData) {\n editor.data.set(model.value);\n }\n if (props.disabled) {\n editor.enableReadOnlyMode(VUE_INTEGRATION_READ_ONLY_LOCK_ID);\n }\n emit(\"ready\", editor);\n }).catch((error) => {\n console.error(error);\n });\n });\n onBeforeUnmount(() => {\n if (instance.value) {\n instance.value.destroy();\n instance.value = void 0;\n }\n emit(\"destroy\");\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(_ctx.tagName), {\n ref_key: \"element\",\n ref: element\n }, null, 512);\n };\n }\n});\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nconst useAsync = (asyncFunc) => {\n const lastQueryUUID = ref(null);\n const error = ref(null);\n const data = ref(null);\n const loading = computed(() => lastQueryUUID.value !== null);\n watchEffect(async () => {\n const currentQueryUID = uid();\n lastQueryUUID.value = currentQueryUID;\n data.value = null;\n error.value = null;\n const shouldDiscardQuery = () => lastQueryUUID.value !== currentQueryUID;\n try {\n const result = await asyncFunc();\n if (!shouldDiscardQuery()) {\n data.value = result;\n }\n } catch (err) {\n if (!shouldDiscardQuery()) {\n error.value = err;\n }\n } finally {\n if (!shouldDiscardQuery()) {\n lastQueryUUID.value = null;\n }\n }\n });\n return {\n loading: shallowReadonly(loading),\n data: shallowReadonly(data),\n error: shallowReadonly(error)\n };\n};\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nfunction useCKEditorCloud(config) {\n return useAsync(\n () => loadCKEditorCloud(\n toValue(config)\n )\n );\n}\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n/* istanbul ignore if -- @preserve */\nif (!Vue.version || !Vue.version.startsWith(\"3.\")) {\n throw new Error(\n \"The CKEditor plugin works only with Vue 3+. For more information, please refer to https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/vuejs-v3.html\"\n );\n}\nconst CkeditorPlugin = {\n /**\n * Installs the plugin, registering the `<ckeditor>` component.\n *\n * @param app The application instance.\n */\n install(app) {\n app.component(\"Ckeditor\", _sfc_main);\n }\n};\nexport {\n _sfc_main as Ckeditor,\n CkeditorPlugin,\n loadCKEditorCloud2 as loadCKEditorCloud,\n useCKEditorCloud\n};\n//# sourceMappingURL=ckeditor.js.map\n","function isPluralType(val) {\n return val.one !== undefined;\n}\n\nconst formatDistanceLocale = {\n lessThanXSeconds: {\n present: {\n one: \"manj kot {{count}} sekunda\",\n two: \"manj kot {{count}} sekundi\",\n few: \"manj kot {{count}} sekunde\",\n other: \"manj kot {{count}} sekund\",\n },\n past: {\n one: \"manj kot {{count}} sekundo\",\n two: \"manj kot {{count}} sekundama\",\n few: \"manj kot {{count}} sekundami\",\n other: \"manj kot {{count}} sekundami\",\n },\n future: {\n one: \"manj kot {{count}} sekundo\",\n two: \"manj kot {{count}} sekundi\",\n few: \"manj kot {{count}} sekunde\",\n other: \"manj kot {{count}} sekund\",\n },\n },\n\n xSeconds: {\n present: {\n one: \"{{count}} sekunda\",\n two: \"{{count}} sekundi\",\n few: \"{{count}} sekunde\",\n other: \"{{count}} sekund\",\n },\n past: {\n one: \"{{count}} sekundo\",\n two: \"{{count}} sekundama\",\n few: \"{{count}} sekundami\",\n other: \"{{count}} sekundami\",\n },\n future: {\n one: \"{{count}} sekundo\",\n two: \"{{count}} sekundi\",\n few: \"{{count}} sekunde\",\n other: \"{{count}} sekund\",\n },\n },\n\n halfAMinute: \"pol minute\",\n\n lessThanXMinutes: {\n present: {\n one: \"manj kot {{count}} minuta\",\n two: \"manj kot {{count}} minuti\",\n few: \"manj kot {{count}} minute\",\n other: \"manj kot {{count}} minut\",\n },\n past: {\n one: \"manj kot {{count}} minuto\",\n two: \"manj kot {{count}} minutama\",\n few: \"manj kot {{count}} minutami\",\n other: \"manj kot {{count}} minutami\",\n },\n future: {\n one: \"manj kot {{count}} minuto\",\n two: \"manj kot {{count}} minuti\",\n few: \"manj kot {{count}} minute\",\n other: \"manj kot {{count}} minut\",\n },\n },\n\n xMinutes: {\n present: {\n one: \"{{count}} minuta\",\n two: \"{{count}} minuti\",\n few: \"{{count}} minute\",\n other: \"{{count}} minut\",\n },\n past: {\n one: \"{{count}} minuto\",\n two: \"{{count}} minutama\",\n few: \"{{count}} minutami\",\n other: \"{{count}} minutami\",\n },\n future: {\n one: \"{{count}} minuto\",\n two: \"{{count}} minuti\",\n few: \"{{count}} minute\",\n other: \"{{count}} minut\",\n },\n },\n\n aboutXHours: {\n present: {\n one: \"približno {{count}} ura\",\n two: \"približno {{count}} uri\",\n few: \"približno {{count}} ure\",\n other: \"približno {{count}} ur\",\n },\n past: {\n one: \"približno {{count}} uro\",\n two: \"približno {{count}} urama\",\n few: \"približno {{count}} urami\",\n other: \"približno {{count}} urami\",\n },\n future: {\n one: \"približno {{count}} uro\",\n two: \"približno {{count}} uri\",\n few: \"približno {{count}} ure\",\n other: \"približno {{count}} ur\",\n },\n },\n\n xHours: {\n present: {\n one: \"{{count}} ura\",\n two: \"{{count}} uri\",\n few: \"{{count}} ure\",\n other: \"{{count}} ur\",\n },\n past: {\n one: \"{{count}} uro\",\n two: \"{{count}} urama\",\n few: \"{{count}} urami\",\n other: \"{{count}} urami\",\n },\n future: {\n one: \"{{count}} uro\",\n two: \"{{count}} uri\",\n few: \"{{count}} ure\",\n other: \"{{count}} ur\",\n },\n },\n\n xDays: {\n present: {\n one: \"{{count}} dan\",\n two: \"{{count}} dni\",\n few: \"{{count}} dni\",\n other: \"{{count}} dni\",\n },\n past: {\n one: \"{{count}} dnem\",\n two: \"{{count}} dnevoma\",\n few: \"{{count}} dnevi\",\n other: \"{{count}} dnevi\",\n },\n future: {\n one: \"{{count}} dan\",\n two: \"{{count}} dni\",\n few: \"{{count}} dni\",\n other: \"{{count}} dni\",\n },\n },\n\n // no tenses for weeks?\n aboutXWeeks: {\n one: \"približno {{count}} teden\",\n two: \"približno {{count}} tedna\",\n few: \"približno {{count}} tedne\",\n other: \"približno {{count}} tednov\",\n },\n\n // no tenses for weeks?\n xWeeks: {\n one: \"{{count}} teden\",\n two: \"{{count}} tedna\",\n few: \"{{count}} tedne\",\n other: \"{{count}} tednov\",\n },\n\n aboutXMonths: {\n present: {\n one: \"približno {{count}} mesec\",\n two: \"približno {{count}} meseca\",\n few: \"približno {{count}} mesece\",\n other: \"približno {{count}} mesecev\",\n },\n past: {\n one: \"približno {{count}} mesecem\",\n two: \"približno {{count}} mesecema\",\n few: \"približno {{count}} meseci\",\n other: \"približno {{count}} meseci\",\n },\n future: {\n one: \"približno {{count}} mesec\",\n two: \"približno {{count}} meseca\",\n few: \"približno {{count}} mesece\",\n other: \"približno {{count}} mesecev\",\n },\n },\n\n xMonths: {\n present: {\n one: \"{{count}} mesec\",\n two: \"{{count}} meseca\",\n few: \"{{count}} meseci\",\n other: \"{{count}} mesecev\",\n },\n past: {\n one: \"{{count}} mesecem\",\n two: \"{{count}} mesecema\",\n few: \"{{count}} meseci\",\n other: \"{{count}} meseci\",\n },\n future: {\n one: \"{{count}} mesec\",\n two: \"{{count}} meseca\",\n few: \"{{count}} mesece\",\n other: \"{{count}} mesecev\",\n },\n },\n\n aboutXYears: {\n present: {\n one: \"približno {{count}} leto\",\n two: \"približno {{count}} leti\",\n few: \"približno {{count}} leta\",\n other: \"približno {{count}} let\",\n },\n past: {\n one: \"približno {{count}} letom\",\n two: \"približno {{count}} letoma\",\n few: \"približno {{count}} leti\",\n other: \"približno {{count}} leti\",\n },\n future: {\n one: \"približno {{count}} leto\",\n two: \"približno {{count}} leti\",\n few: \"približno {{count}} leta\",\n other: \"približno {{count}} let\",\n },\n },\n\n xYears: {\n present: {\n one: \"{{count}} leto\",\n two: \"{{count}} leti\",\n few: \"{{count}} leta\",\n other: \"{{count}} let\",\n },\n past: {\n one: \"{{count}} letom\",\n two: \"{{count}} letoma\",\n few: \"{{count}} leti\",\n other: \"{{count}} leti\",\n },\n future: {\n one: \"{{count}} leto\",\n two: \"{{count}} leti\",\n few: \"{{count}} leta\",\n other: \"{{count}} let\",\n },\n },\n\n overXYears: {\n present: {\n one: \"več kot {{count}} leto\",\n two: \"več kot {{count}} leti\",\n few: \"več kot {{count}} leta\",\n other: \"več kot {{count}} let\",\n },\n past: {\n one: \"več kot {{count}} letom\",\n two: \"več kot {{count}} letoma\",\n few: \"več kot {{count}} leti\",\n other: \"več kot {{count}} leti\",\n },\n future: {\n one: \"več kot {{count}} leto\",\n two: \"več kot {{count}} leti\",\n few: \"več kot {{count}} leta\",\n other: \"več kot {{count}} let\",\n },\n },\n\n almostXYears: {\n present: {\n one: \"skoraj {{count}} leto\",\n two: \"skoraj {{count}} leti\",\n few: \"skoraj {{count}} leta\",\n other: \"skoraj {{count}} let\",\n },\n past: {\n one: \"skoraj {{count}} letom\",\n two: \"skoraj {{count}} letoma\",\n few: \"skoraj {{count}} leti\",\n other: \"skoraj {{count}} leti\",\n },\n future: {\n one: \"skoraj {{count}} leto\",\n two: \"skoraj {{count}} leti\",\n few: \"skoraj {{count}} leta\",\n other: \"skoraj {{count}} let\",\n },\n },\n};\n\nfunction getFormFromCount(count) {\n switch (count % 100) {\n case 1:\n return \"one\";\n case 2:\n return \"two\";\n case 3:\n case 4:\n return \"few\";\n default:\n return \"other\";\n }\n}\n\nexport const formatDistance = (token, count, options) => {\n let result = \"\";\n let tense = \"present\";\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n tense = \"future\";\n result = \"čez \";\n } else {\n tense = \"past\";\n result = \"pred \";\n }\n }\n\n const tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === \"string\") {\n result += tokenValue;\n } else {\n const form = getFormFromCount(count);\n if (isPluralType(tokenValue)) {\n result += tokenValue[form].replace(\"{{count}}\", String(count));\n } else {\n result += tokenValue[tense][form].replace(\"{{count}}\", String(count));\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, dd. MMMM y\",\n long: \"dd. MMMM y\",\n medium: \"d. MMM y\",\n short: \"d. MM. yy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} {{time}}\",\n long: \"{{date}} {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const day = date.getDay();\n\n switch (day) {\n case 0:\n return \"'prejšnjo nedeljo ob' p\";\n case 3:\n return \"'prejšnjo sredo ob' p\";\n case 6:\n return \"'prejšnjo soboto ob' p\";\n default:\n return \"'prejšnji' EEEE 'ob' p\";\n }\n },\n yesterday: \"'včeraj ob' p\",\n today: \"'danes ob' p\",\n tomorrow: \"'jutri ob' p\",\n nextWeek: (date) => {\n const day = date.getDay();\n\n switch (day) {\n case 0:\n return \"'naslednjo nedeljo ob' p\";\n case 3:\n return \"'naslednjo sredo ob' p\";\n case 6:\n return \"'naslednjo soboto ob' p\";\n default:\n return \"'naslednji' EEEE 'ob' p\";\n }\n },\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"pr. n. št.\", \"po n. št.\"],\n abbreviated: [\"pr. n. št.\", \"po n. št.\"],\n wide: [\"pred našim štetjem\", \"po našem štetju\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"1. čet.\", \"2. čet.\", \"3. čet.\", \"4. čet.\"],\n wide: [\"1. četrtletje\", \"2. četrtletje\", \"3. četrtletje\", \"4. četrtletje\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mar.\",\n \"apr.\",\n \"maj\",\n \"jun.\",\n \"jul.\",\n \"avg.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"dec.\",\n ],\n\n wide: [\n \"januar\",\n \"februar\",\n \"marec\",\n \"april\",\n \"maj\",\n \"junij\",\n \"julij\",\n \"avgust\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"n\", \"p\", \"t\", \"s\", \"č\", \"p\", \"s\"],\n short: [\"ned.\", \"pon.\", \"tor.\", \"sre.\", \"čet.\", \"pet.\", \"sob.\"],\n abbreviated: [\"ned.\", \"pon.\", \"tor.\", \"sre.\", \"čet.\", \"pet.\", \"sob.\"],\n\n wide: [\n \"nedelja\",\n \"ponedeljek\",\n \"torek\",\n \"sreda\",\n \"četrtek\",\n \"petek\",\n \"sobota\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"d\",\n pm: \"p\",\n midnight: \"24.00\",\n noon: \"12.00\",\n morning: \"j\",\n afternoon: \"p\",\n evening: \"v\",\n night: \"n\",\n },\n abbreviated: {\n am: \"dop.\",\n pm: \"pop.\",\n midnight: \"poln.\",\n noon: \"pold.\",\n morning: \"jut.\",\n afternoon: \"pop.\",\n evening: \"več.\",\n night: \"noč\",\n },\n wide: {\n am: \"dop.\",\n pm: \"pop.\",\n midnight: \"polnoč\",\n noon: \"poldne\",\n morning: \"jutro\",\n afternoon: \"popoldne\",\n evening: \"večer\",\n night: \"noč\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"d\",\n pm: \"p\",\n midnight: \"24.00\",\n noon: \"12.00\",\n morning: \"zj\",\n afternoon: \"p\",\n evening: \"zv\",\n night: \"po\",\n },\n abbreviated: {\n am: \"dop.\",\n pm: \"pop.\",\n midnight: \"opoln.\",\n noon: \"opold.\",\n morning: \"zjut.\",\n afternoon: \"pop.\",\n evening: \"zveč.\",\n night: \"ponoči\",\n },\n wide: {\n am: \"dop.\",\n pm: \"pop.\",\n midnight: \"opolnoči\",\n noon: \"opoldne\",\n morning: \"zjutraj\",\n afternoon: \"popoldan\",\n evening: \"zvečer\",\n night: \"ponoči\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\./i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n abbreviated: /^(pr\\. n\\. št\\.|po n\\. št\\.)/i,\n wide: /^(pred Kristusom|pred na[sš]im [sš]tetjem|po Kristusu|po na[sš]em [sš]tetju|na[sš]ega [sš]tetja)/i,\n};\nconst parseEraPatterns = {\n any: [/^pr/i, /^(po|na[sš]em)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]\\.\\s?[čc]et\\.?/i,\n wide: /^[1234]\\. [čc]etrtletje/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated:\n /^(jan\\.|feb\\.|mar\\.|apr\\.|maj|jun\\.|jul\\.|avg\\.|sep\\.|okt\\.|nov\\.|dec\\.)/i,\n wide: /^(januar|februar|marec|april|maj|junij|julij|avgust|september|oktober|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n abbreviated: [\n /^ja/i,\n /^fe/i,\n /^mar/i,\n /^ap/i,\n /^maj/i,\n /^jun/i,\n /^jul/i,\n /^av/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n wide: [\n /^ja/i,\n /^fe/i,\n /^mar/i,\n /^ap/i,\n /^maj/i,\n /^jun/i,\n /^jul/i,\n /^av/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[nptsčc]/i,\n short: /^(ned\\.|pon\\.|tor\\.|sre\\.|[cč]et\\.|pet\\.|sob\\.)/i,\n abbreviated: /^(ned\\.|pon\\.|tor\\.|sre\\.|[cč]et\\.|pet\\.|sob\\.)/i,\n wide: /^(nedelja|ponedeljek|torek|sreda|[cč]etrtek|petek|sobota)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^t/i, /^s/i, /^[cč]/i, /^p/i, /^s/i],\n any: [/^n/i, /^po/i, /^t/i, /^sr/i, /^[cč]/i, /^pe/i, /^so/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(d|po?|z?v|n|z?j|24\\.00|12\\.00)/i,\n any: /^(dop\\.|pop\\.|o?poln(\\.|o[cč]i?)|o?pold(\\.|ne)|z?ve[cč](\\.|er)|(po)?no[cč]i?|popold(ne|an)|jut(\\.|ro)|zjut(\\.|raj))/i,\n};\nconst parseDayPeriodPatterns = {\n narrow: {\n am: /^d/i,\n pm: /^p/i,\n midnight: /^24/i,\n noon: /^12/i,\n morning: /^(z?j)/i,\n afternoon: /^p/i,\n evening: /^(z?v)/i,\n night: /^(n|po)/i,\n },\n any: {\n am: /^dop\\./i,\n pm: /^pop\\./i,\n midnight: /^o?poln/i,\n noon: /^o?pold/i,\n morning: /j/i,\n afternoon: /^pop\\./i,\n evening: /^z?ve/i,\n night: /(po)?no/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"wide\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./sl/_lib/formatDistance.js\";\nimport { formatLong } from \"./sl/_lib/formatLong.js\";\nimport { formatRelative } from \"./sl/_lib/formatRelative.js\";\nimport { localize } from \"./sl/_lib/localize.js\";\nimport { match } from \"./sl/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Slovenian locale.\n * @language Slovenian\n * @iso-639-2 slv\n * @author Adam Stradovnik [@Neoglyph](https://github.com/Neoglyph)\n * @author Mato Žgajner [@mzgajner](https://github.com/mzgajner)\n */\nexport const sl = {\n code: \"sl\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default sl;\n","import { Locale } from 'date-fns';\nimport { sl } from 'date-fns/locale/sl'; // eslint-disable-line import/extensions\nimport { isRef, ref, Ref } from 'vue';\n\nexport const DateTimeLocaleConfig = {\n dateTimeLocale: ref(sl),\n setDateTimeLocale(locale: Locale | Ref<Locale>) {\n if (isRef(locale)) {\n this.dateTimeLocale = locale;\n } else {\n this.dateTimeLocale.value = locale;\n }\n },\n};\n","<template>\n <div class=\"df-label\" :class=\"{ 'allow-wrap': allowWrap }\">\n <template v-if=\"label.icon\">\n <cached-icon v-if=\"label.iconComponent === 'v-icon'\" :name=\"label.icon\" size=\"1.25em\" />\n <v-img v-else-if=\"label.iconComponent === 'v-img'\" class=\"icon\" :src=\"label.icon\" />\n <component :is=\"label.iconComponent\" v-else :src=\"label.icon\" />\n </template>\n <vue-markdown\n v-if=\"lbl instanceof MdString\"\n class=\"markdown\"\n :source=\"lbl.toString()\"\n :options=\"lbl.options\"\n :plugins=\"lbl.plugins\"\n />\n <template v-else>{{ lbl }}</template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { MdString } from '@dynamicforms/vue-forms';\nimport { computed } from 'vue';\nimport { CachedIcon } from 'vue-cached-icon';\nimport VueMarkdown from 'vue-markdown-render';\nimport { DefaultInputSlot } from 'vuetify/lib/components/VField/VField';\n\nimport { Label } from './input-base';\n\nconst props = defineProps<{\n data?: DefaultInputSlot & { label?: string | MdString };\n label: Label;\n allowWrap?: boolean;\n}>();\n\nconst lbl = computed(() => (props.data ? props.data.label : props.label.text));\n</script>\n\n<style>\n.df-label {\n display: flex;\n align-items: center;\n gap: 2px;\n white-space: nowrap;\n justify-content: flex-start;\n}\n\n.df-label.allow-wrap {\n white-space: initial;\n}\n\n.df-label .icon {\n width: 1.25em;\n}\n\n.df-label .markdown :first-child,\n.df-label .markdown :last-child {\n margin-top: 0 !important;\n padding-top: 0 !important;\n margin-bottom: 0 !important;\n padding-bottom: 0 !important;\n line-height: 1.35em !important; /* inspired by vitepress' aggressive settings */\n}\n</style>\n","import { FieldDensity, type FieldVariant } from '@/helpers/input-base';\n\nexport interface VuetifyInputsSettings {\n defaultVariant?: FieldVariant;\n defaultDensity?: FieldDensity;\n}\n\nexport const vuetifyInputsSettingsKey = Symbol('vuetifyInputsSettingsKey');\n","import Form, { MdString, ValidationErrorRenderContent } from '@dynamicforms/vue-forms';\nimport { isEmpty, isString } from 'lodash-es';\nimport { computed, inject, ref } from 'vue';\n\nimport { VuetifyInputsSettings, vuetifyInputsSettingsKey } from './settings';\n\nexport class Label {\n constructor(\n public text: string,\n public icon?: string,\n public iconComponent: string = 'v-icon',\n ) {}\n}\n\nexport type FieldVariant = 'outlined' | 'plain' | 'underlined' | 'filled' | 'solo' | 'solo-inverted' | 'solo-filled';\nexport type VuetifyDensity = 'default' | 'comfortable' | 'compact';\nexport type FieldDensity = 'default' | 'comfortable' | 'compact' | 'inline';\n\nexport interface BaseProps<T = any> {\n control?: Form.IField<T>;\n modelValue?: T;\n label?: string | Label | MdString;\n errors?: string[];\n placeholder?: string;\n helpText?: string;\n hint?: string;\n enabled?: boolean;\n visibility?: Form.DisplayMode;\n cssClass?: string;\n clearable?: boolean;\n passthroughAttrs?: Record<string, any>;\n density?: FieldDensity;\n variant?: FieldVariant;\n}\n\nexport const defaultBaseProps = { enabled: undefined, clearable: true };\n\nexport interface BaseEmits<T = any> {\n (e: 'update:modelValue', value: T): void;\n (e: 'click:clear'): void;\n}\n\nexport function useInputBase<T = any>(props: BaseProps<T>, emit: BaseEmits<T>) {\n const settings = inject<VuetifyInputsSettings>(vuetifyInputsSettingsKey, {});\n const internalValue = ref<T | null>(null);\n\n const value = computed({\n get(): T {\n if (props.control) return props.control.value as T;\n if (props.modelValue === undefined) return internalValue.value as T;\n return props.modelValue as T;\n },\n set(newValue: T) {\n if (props.control) props.control.value = newValue;\n if (props.modelValue === undefined) internalValue.value = newValue;\n emit('update:modelValue', newValue);\n },\n });\n\n if (props.control && !(props.control instanceof Form.FieldBase)) {\n throw new Error('control prop is not a vue-form control instance');\n }\n\n const controlTouch = computed({\n get() {\n return props.control!.touched;\n },\n set(val: boolean) {\n props.control!.touched = val;\n },\n });\n const touched = props.control ? controlTouch : ref(false);\n const valid = computed(() => (props.control ? props.control.valid : true));\n const errors = computed(() =>\n props.control ? props.control.errors : (props.errors || []).map((error) => new ValidationErrorRenderContent(error)),\n );\n const anyErrors = computed(() => (touched.value && errors.value.length > 0 ? ' ' : undefined));\n const enabled = computed(() => (props.control ? props.control.enabled : props.enabled !== false));\n const visibility = computed(() =>\n props.control ? props.control.visibility : props.visibility || Form.DisplayMode.FULL,\n );\n const label = computed(\n (): Label => (isString(props.label || '') ? new Label(<string>props.label || '') : <Label>props.label),\n );\n const placeholder = computed(() => props.placeholder || '');\n const helpText = computed(() => props.helpText || '');\n const hint = computed(() => props.hint || '');\n const cssClass = computed(() => props.cssClass || '');\n\n const density = computed(\n (): FieldDensity => props.density ?? inject('field-density', null) ?? settings.defaultDensity ?? 'default',\n );\n const boundDensity = computed((): VuetifyDensity => (density.value === 'inline' ? 'default' : density.value));\n const variant = computed(\n (): FieldVariant => props.variant ?? inject('field-variant', null) ?? settings.defaultVariant ?? 'underlined',\n );\n\n return {\n value,\n valid,\n enabled,\n errors,\n visibility,\n label,\n touched,\n density: density.value,\n densityClass: computed(() => `df-density-${density.value}`),\n\n vuetifyBindings: computed(() => ({\n name: props.control?.fieldName,\n class: cssClass.value,\n\n density: boundDensity.value,\n variant: variant.value,\n\n label: label.value.text,\n messages: anyErrors.value,\n errorMessages: anyErrors.value,\n // 'error-count': errors?.value.length || 0,\n readonly: !enabled.value,\n disabled: !enabled.value,\n\n placeholder: placeholder.value,\n 'persistent-placeholder': !isEmpty(placeholder.value),\n\n hint: hint.value,\n persistentHint: true, // we want persistent hint always\n hideDetails: <boolean | 'auto' | undefined>'auto', // we want to hide the hint element when hint isn't there\n helpText: helpText.value,\n\n ...(props.passthroughAttrs || {}),\n })),\n };\n}\n","<template>\n <render />\n</template>\n\n<script setup lang=\"ts\">\nimport { ValidationError } from '@dynamicforms/vue-forms';\nimport { h } from 'vue';\nimport VueMarkdown from 'vue-markdown-render';\n\ntype ClassTypes = string | string[] | Record<string, boolean>;\n\ninterface Props {\n errors: ValidationError[];\n message: string;\n classes?: ClassTypes | ClassTypes[];\n}\n\nconst props = withDefaults(defineProps<Props>(), { classes: 'text-error' });\n\nconst render = () => {\n if (props.message !== ' ') return h('span', { class: props.classes }, props.message);\n const res: ReturnType<typeof h>[] = [];\n props.errors.forEach((error: ValidationError) => {\n switch (error.componentName) {\n case 'template':\n res.push(h('div', { class: props.classes }, error.componentBody));\n break;\n case 'vue-markdown': {\n const componentBindings = <any>error.componentBindings;\n res.push(\n h(VueMarkdown, {\n class: [props.classes, 'df-messages-widget-markdown'],\n source: componentBindings.source,\n options: componentBindings.options,\n plugins: componentBindings.plugins,\n }),\n );\n break;\n }\n default:\n res.push(\n h(error.componentName, { class: props.classes, ...error.componentBindings, innerHTML: error.componentBody }),\n );\n break;\n }\n });\n return res;\n};\n</script>\n\n<style>\n/* we would like there to be no margins for the displayed errors at the very top and very bottom. rest of it is fine */\n.df-messages-widget-markdown > :first-child,\n.df-messages-widget-markdown > :last-child {\n margin-top: 0 !important;\n padding-top: 0 !important;\n margin-bottom: 0 !important;\n padding-bottom: 0 !important;\n line-height: 1.35em !important; /* inspired by vitepress' aggressive settings */\n}\n</style>\n","<template>\n <v-input\n v-if=\"visibility !== DisplayMode.SUPPRESS\"\n :name=\"vuetifyBindings.name\"\n :density=\"vuetifyBindings.density\"\n :hint=\"vuetifyBindings.hint\"\n :persistent-hint=\"vuetifyBindings.persistentHint\"\n :hide-details=\"vuetifyBindings.hideDetails\"\n :error-messages=\"vuetifyBindings.errorMessages\"\n :class=\"[\n cssClass,\n {\n 'd-none': visibility === DisplayMode.HIDDEN,\n invisible: visibility === DisplayMode.INVISIBLE,\n },\n ]\"\n >\n <v-field\n :variant=\"vuetifyBindings.variant\"\n :density=\"vuetifyBindings.density\"\n :label=\"vuetifyBindings.label\"\n :disabled=\"vuetifyBindings.disabled\"\n :clearable=\"isClearable\"\n :persistent-clear=\"true\"\n :dirty=\"!!value\"\n :active=\"focused\"\n :loading=\"loading\"\n @click:clear=\"emits('click:clear')\"\n @update:focused=\"(isFocused) => setFocused(isFocused)\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #default=\"slotProps\">\n <div class=\"d-flex w-100 df-style-resetting\"><slot v-bind=\"slotProps\" /></div>\n </template>\n <template #loader=\"loaderProps\"><slot name=\"loader\" v-bind=\"loaderProps\" /></template>\n <template v-if=\"$slots['prepend-inner']\" #prepend-inner=\"prependInnerProps\">\n <slot name=\"prepend-inner\" v-bind=\"prependInnerProps\" />\n </template>\n </v-field>\n <template #message=\"{ message }\">\n <messages-widget :message=\"message\" :errors=\"errors\" />\n </template>\n <template v-if=\"$slots.prepend\" #prepend=\"prependProps\"><slot name=\"prepend\" v-bind=\"prependProps\" /></template>\n </v-input>\n</template>\n\n<script setup lang=\"ts\">\nimport { DisplayMode } from '@dynamicforms/vue-forms';\nimport { computed, ref, unref } from 'vue';\n\nimport DfLabel from './df-label.vue';\nimport { BaseEmits, BaseProps, useInputBase } from './input-base';\nimport MessagesWidget from './messages-widget.vue';\n\nconst props = defineProps<BaseProps & { loading?: boolean }>();\nconst emits = defineEmits<BaseEmits & { (e: 'blur'): void }>();\n\nconst { errors, label, value, touched, visibility, vuetifyBindings } = useInputBase(props, emits);\n\nconst isClearable = computed(() => !!(unref(props.clearable) && unref(value)));\nconst focused = ref<boolean>(false);\n\nfunction setFocused(isFocused: boolean) {\n focused.value = isFocused;\n if (!isFocused) {\n touched.value = true;\n emits('blur');\n }\n}\n</script>\n\n<style>\n.df-style-resetting .v-field__overlay {\n background-color: transparent;\n}\n.df-style-resetting .v-field__outline::before,\n.df-style-resetting .v-field__outline::after {\n content: none !important;\n}\n</style>\n","export const translatableStrings = {\n Yes: 'Yes',\n No: 'No',\n Close: 'Close',\n Paragraph: 'Paragraph',\n Heading1: 'Heading 1',\n Heading2: 'Heading 2',\n Heading3: 'Heading 3',\n Heading4: 'Heading 4',\n Heading5: 'Heading 5',\n Heading6: 'Heading 6',\n Downloadable: 'Downloadable',\n ArticleCategory: 'Article category',\n Title: 'Title',\n Subtitle: 'Subtitle',\n InfoBox: 'Info box',\n SideQuote: 'Side quote',\n Marker: 'Marker',\n Spoiler: 'Spoiler',\n CodeDark: 'Code (dark)',\n CodeBright: 'Code (bright)',\n};\n\nexport function translateStrings(translationCallback: (s: string) => string) {\n Object.keys(translatableStrings).forEach((key) => {\n const translation = translationCallback(key);\n if (translation != null) {\n translatableStrings[key as keyof typeof translatableStrings] = translation;\n }\n });\n}\n\nexport function setCkEditorLanguage(language: string, translations: any) {\n ckEditorLanguage.language = language;\n ckEditorLanguage.translations = translations;\n}\n\nexport const ckEditorLanguage = {\n language: 'en',\n translations: undefined,\n};\n","/**\n * DisplayMode enum provides an enumeration for supported ways of rendering a particular object in the DOM\n */\nenum ActionDisplayStyle {\n // This enum is actually declared in dynamicforms.action.py\n BUTTON = 0, // action should render as a button\n TEXT = 1, // action should render as a link text\n}\n\nexport const defaultDisplayStyle = ActionDisplayStyle.BUTTON;\n\n// eslint-disable-next-line @typescript-eslint/no-namespace, no-redeclare\nnamespace ActionDisplayStyle {\n export function fromString(mode: string): ActionDisplayStyle {\n if (mode.toUpperCase() === 'BUTTON') return ActionDisplayStyle.BUTTON;\n if (mode.toUpperCase() === 'TEXT') return ActionDisplayStyle.TEXT;\n return defaultDisplayStyle;\n }\n\n export function fromAny(mode: any): ActionDisplayStyle {\n const input = typeof mode === 'number' ? mode : ActionDisplayStyle.fromString(mode as string);\n if (Object.values(ActionDisplayStyle).includes(input)) return input;\n return defaultDisplayStyle;\n }\n\n export function isDefined(mode: number | string): boolean {\n const check = typeof mode === 'number' ? mode : ActionDisplayStyle.fromString(mode as string);\n return Object.values(ActionDisplayStyle).includes(check);\n }\n}\n\nObject.freeze(ActionDisplayStyle);\n\nexport { ActionDisplayStyle };\n","import { computed } from 'vue';\nimport { useDisplay } from 'vuetify';\n\nexport const responsiveBreakpoints = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\nexport type BreakpointNames = (typeof responsiveBreakpoints)[number];\nexport type BreakpointsJSON<T extends Record<string, any>> = T & Partial<Record<BreakpointNames, T>>;\n\nexport abstract class ResponsiveRenderOptions<T extends Record<string, any>> {\n protected readonly _value: BreakpointsJSON<T>;\n\n constructor(data?: BreakpointsJSON<T>) {\n this._value = this.cleanBreakpoint(data as T, true)!;\n if (data) {\n responsiveBreakpoints.forEach((bp) => {\n const options = this.cleanBreakpoint(data[bp]);\n if (options) this._value[bp] = options;\n });\n }\n }\n\n getOptionsForBreakpoint(breakpoint: BreakpointNames): T {\n const result = this.cleanBreakpoint(this._value as T) as BreakpointsJSON<T>;\n const fields = Object.keys(result);\n for (const bp of responsiveBreakpoints) {\n const bpData = this._value[bp];\n for (const field of fields) {\n if (bpData?.[field] != null) (<any>result)[field] = bpData[field];\n }\n if (bp === breakpoint) break;\n }\n return result;\n }\n\n protected abstract cleanBreakpoint(bp?: T, defaultIfEmpty?: boolean): T | null;\n}\n\nexport function getBreakpointName(dp: ReturnType<typeof useDisplay>): BreakpointNames {\n if (dp.xlAndUp.value) return 'xl';\n if (dp.lgAndUp.value) return 'lg';\n if (dp.mdAndUp.value) return 'md';\n if (dp.smAndUp.value) return 'sm';\n return 'xs';\n}\n\nexport function useBreakpoint() {\n const display = useDisplay();\n\n return computed<BreakpointNames>(() => getBreakpointName(display));\n}\n","import { ActionValue } from '@dynamicforms/vue-forms';\nimport { isBoolean, isObjectLike, isString } from 'lodash-es';\n\nimport { ActionDisplayStyle } from './action-display-style';\nimport { BreakpointsJSON, ResponsiveRenderOptions } from './responsive-render-options';\n\nexport interface ActionRenderOptions extends ActionValue {\n name?: string;\n renderAs?: ActionDisplayStyle;\n showLabel?: boolean;\n showIcon?: boolean;\n}\nexport type ActionBreakpointOptions = BreakpointsJSON<ActionRenderOptions>;\n\nexport class ResponsiveActionRenderOptions extends ResponsiveRenderOptions<ActionRenderOptions> {\n protected cleanBreakpoint(bp?: ActionRenderOptions, defaultIfEmpty: boolean = false): ActionRenderOptions | null {\n if ((!bp || !isObjectLike(bp)) && !defaultIfEmpty) return null;\n\n const result: ActionRenderOptions = {};\n if (defaultIfEmpty) {\n result.renderAs = ActionDisplayStyle.BUTTON;\n result.showLabel = true;\n result.showIcon = true;\n }\n\n if (bp) {\n if (bp.renderAs != null) result.renderAs = ActionDisplayStyle.fromAny(bp.renderAs);\n if (isString(bp.label)) result.label = bp.label;\n if (isString(bp.icon)) result.icon = bp.icon;\n if (isBoolean(bp.showLabel)) result.showLabel = bp.showLabel;\n if (isBoolean(bp.showIcon)) result.showIcon = bp.showIcon;\n }\n\n return Object.keys(result).length ? result : null;\n }\n}\n","import { Action as FormAction, IField, IFieldConstructorParams } from '@dynamicforms/vue-forms';\nimport { isEmpty, isString } from 'lodash-es';\nimport { computed, Ref } from 'vue';\n\nimport { translatableStrings } from '../translations';\n\nimport { ActionDisplayStyle } from './action-display-style';\nimport { ActionBreakpointOptions, ActionRenderOptions, ResponsiveActionRenderOptions } from './action-render-options';\nimport { BreakpointNames } from './responsive-render-options';\n\n// @ts-expect-error: prevent TS from complaining how create method is not ok because its declaration differs from Fld's\nclass Action extends FormAction<ActionBreakpointOptions> {\n static create<T extends ActionBreakpointOptions = ActionBreakpointOptions>(\n params?: Partial<IFieldConstructorParams<T>>,\n ): Action {\n return super.create<T>(params) as any as Action;\n }\n\n getBreakpointValue(breakpoint: Ref<BreakpointNames>) {\n return computed(() => {\n const responsiveValue = new ResponsiveActionRenderOptions(this.value);\n const partial = responsiveValue.getOptionsForBreakpoint(breakpoint.value);\n return {\n name: partial.name,\n label: partial.showLabel ? partial.label : undefined,\n icon: partial.showIcon ? partial.icon : undefined,\n renderAs: partial.renderAs,\n showLabel: isString(partial.label) && !isEmpty(partial.label) ? partial.showLabel : false,\n showIcon: isString(partial.icon) && !isEmpty(partial.icon) ? partial.showIcon : false,\n } as ActionRenderOptions;\n });\n }\n\n get name() {\n return this.value.name;\n }\n\n get label() {\n return this.value.showLabel ? this.value.label : undefined;\n }\n\n get showLabel() {\n return isString(this.value.label) && !isEmpty(this.value.label) ? this.value.showLabel : false;\n }\n\n get icon() {\n return this.value.showIcon ? this.value.icon : undefined;\n }\n\n get showIcon() {\n return isString(this.value.icon) && !isEmpty(this.value.icon) ? this.value.showIcon : false;\n }\n\n get renderAs() {\n return this.value.renderAs;\n }\n\n static closeAction(data?: Partial<IField<ActionBreakpointOptions>>) {\n const init: Partial<IField<ActionBreakpointOptions>> = {\n ...(data ?? {}), // any properties in data should overwrite properties in the constant\n value: {\n name: 'close',\n label: translatableStrings.Close,\n icon: 'close-outline',\n renderAs: ActionDisplayStyle.BUTTON,\n showLabel: true,\n showIcon: true,\n },\n };\n init.value = { ...init.value, ...(data?.value ?? {}) }; // data may only contain partial info of the value\n return Action.create(init);\n }\n\n static yesAction(data?: Partial<IField<ActionBreakpointOptions>>) {\n const init: Partial<IField<ActionBreakpointOptions>> = {\n ...(data ?? {}), // any properties in data should overwrite properties in the constant\n value: {\n name: 'yes',\n label: translatableStrings.Yes,\n icon: 'thumbs-up-outline',\n renderAs: ActionDisplayStyle.BUTTON,\n showLabel: true,\n showIcon: true,\n },\n };\n init.value = { ...init.value, ...(data?.value ?? {}) }; // data may only contain partial info of the value\n return Action.create(init);\n }\n\n static noAction(data?: Partial<IField<ActionBreakpointOptions>>) {\n const init: Partial<IField<ActionBreakpointOptions>> = {\n ...(data ?? {}), // any properties in data should overwrite properties in the constant\n value: {\n name: 'no',\n label: translatableStrings.No,\n icon: 'thumbs-down-outline',\n renderAs: ActionDisplayStyle.BUTTON,\n showLabel: true,\n showIcon: true,\n },\n };\n init.value = { ...init.value, ...(data?.value ?? {}) }; // data may only contain partial info of the value\n return Action.create(init);\n }\n}\n\nexport { Action };\n","<template>\n <div\n v-if=\"actionsRef.length > 0\"\n class=\"text-end df-actions\"\n :class=\"{\n 'button-group': showAsGroup === 'grouped' || showAsGroup === 'grouped-no-borders',\n 'with-border': showAsGroup === 'grouped',\n }\"\n >\n <v-btn\n v-for=\"(action, idx) in actionsWithBreakpoint\"\n :key=\"idx\"\n :variant=\"action.renderAs === ActionDisplayStyle.BUTTON ? 'tonal' : 'text'\"\n :elevation=\"0\"\n :size=\"buttonSize\"\n @click.stop=\"(event: MouseEvent) => action.action.execute(event)\"\n >\n <cached-icon v-if=\"action.icon\" :name=\"action.icon\" />\n <span v-if=\"action.icon && action.label\" style=\"width: 0.5rem\" />\n <span v-if=\"action.label\">{{ action.label }}</span>\n </v-btn>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, unref } from 'vue';\nimport { CachedIcon } from 'vue-cached-icon';\n\nimport { DfActionsProps } from './dynamicforms-component-props';\nimport { ActionDisplayStyle, useBreakpoint } from './helpers';\n\nconst props = withDefaults(defineProps<DfActionsProps>(), {\n buttonSize: 'default',\n showAsGroup: 'no',\n});\n\nconst breakpoint = useBreakpoint();\nconst actionsRef = computed(() => unref(props.actions));\nconst actionsWithBreakpoint = computed(() =>\n actionsRef.value.map((action) => ({\n action,\n ...unref(action.getBreakpointValue(breakpoint)),\n })),\n);\n</script>\n\n<style>\n.df-actions.button-group {\n border-radius: 0.5em;\n /* the following two make the container fit the small buttons. without them there would be a top margin */\n line-height: 0;\n height: fit-content;\n}\n.df-actions.button-group .v-btn {\n border: none;\n border-radius: 0;\n margin: 0 !important;\n padding: 0 0.25em;\n}\n.df-actions.button-group .v-btn:first-child {\n border-start-start-radius: 0.5em;\n border-end-start-radius: 0.5em;\n}\n.df-actions.button-group .v-btn:last-child {\n border-start-end-radius: 0.5em;\n border-end-end-radius: 0.5em;\n}\n.df-actions.button-group.with-border {\n border: 0.1em solid currentColor;\n}\n.df-actions.button-group.with-border .v-btn:not(:first-child) {\n border-inline-start: 0.1em solid currentColor;\n}\n.df-actions .v-btn:not(:first-child) {\n margin-left: 0.5em;\n}\n</style>\n","<template>\n <v-checkbox\n v-model=\"boolValue\"\n v-bind=\"vuetifyBindings as any\"\n density=\"compact\"\n :class=\"densityClass\"\n :indeterminate=\"indeterminate\"\n :false-value=\"false\"\n :true-value=\"true\"\n @change=\"change\"\n @blur=\"touched = true\"\n >\n <template #label=\"labelData\"><df-label :allow-wrap=\"true\" :data=\"labelData as any\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><messages-widget :message=\"message\" :errors=\"errors\" /></template>\n </v-checkbox>\n</template>\n\n<script setup lang=\"ts\">\nimport { clone } from 'lodash-es';\nimport { computed } from 'vue';\n\nimport { DfCheckboxProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfLabel, MessagesWidget, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfCheckboxProps>(), { ...defaultBaseProps, allowNull: false });\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, errors, label, touched, value, vuetifyBindings } = useInputBase(props, emits);\n\nconst indeterminate = computed(() => props.allowNull && value.value == null);\n\nconst boolValue = computed({\n get(): any {\n return value.value;\n },\n set() {},\n});\n\nfunction change() {\n const oldVal = clone(value.value);\n if (oldVal === true) {\n value.value = props.allowNull ? null : false;\n } else {\n value.value = oldVal === false;\n }\n}\n</script>\n","<template>\n <v-text-field\n v-model=\"value\"\n v-bind=\"vuetifyBindings\"\n :class=\"densityClass\"\n :clearable=\"allowNull\"\n type=\"text\"\n :rules=\"rules\"\n @blur=\"touched = true\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><messages-widget :message=\"message\" :errors=\"errors\" /></template>\n <template #prepend-inner>\n <div\n style=\"width: 24px; height: 24px; border-radius: 4px; border: 1px solid #ccc\"\n :style=\"{ backgroundColor: value }\"\n />\n </template>\n <template #default>\n <v-menu v-model=\"dropdownShown\" :close-on-content-click=\"false\" activator=\"parent\">\n <v-color-picker v-model=\"value\" mode=\"hexa\" />\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\n\nimport { DfColorProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfLabel, MessagesWidget, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfColorProps>(), { ...defaultBaseProps, allowNull: false });\n\ninterface Emits extends BaseEmits {}\n\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, errors, label, touched, value, vuetifyBindings } = useInputBase(props, emits);\nconst dropdownShown = ref(false);\n\nconst rules = computed<((val: string) => boolean | string)[]>(() => [\n (val: string) => {\n if (props.control) return true; // if there's a form field, we expect there to be a validator\n if (!val && props.allowNull) return true; // allowed empty values are also not a problem\n\n const regex = /^#?([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$/;\n return regex.test(val) ? true : 'Not a valid hex string.';\n },\n]);\n</script>\n","<template>\n <input-base\n v-bind=\"props\"\n :class=\"densityClass\"\n :clearable=\"clearable\"\n @click:clear=\"value = null\"\n @blur=\"touched = true\"\n >\n <template #default=\"slotProps\">\n <div class=\"d-flex w-100 ml-4 df-input-wrapper\" :class=\"density\">\n <v-text-field\n v-if=\"['date', 'datetime'].includes(inputType)\"\n v-model=\"dateFormatted\"\n style=\"flex-grow: 4\"\n density=\"compact\"\n variant=\"plain\"\n :clearable=\"false\"\n :hide-details=\"true\"\n :readonly=\"vuetifyBindings.readonly\"\n :disabled=\"vuetifyBindings.disabled\"\n :name=\"`${vuetifyBindings.name}-date`\"\n v-bind=\"passthroughAttrs\"\n @click=\"dropdown = 'date'\"\n @keydown.space=\"dropdown = 'date'\"\n @focus=\"slotProps.focus()\"\n @blur=\"slotProps.blur()\"\n >\n <template #default>\n <v-menu v-model=\"dateMenuShown\" :close-on-content-click=\"false\" activator=\"parent\">\n <v-confirm-edit v-model=\"valueAsDate\" @cancel=\"dropdown = ''\" @save=\"dropdown = ''\">\n <template #default=\"{ model: proxyModel, actions }\">\n <v-date-picker\n v-model=\"proxyModel.value\"\n :hide-header=\"true\"\n :first-day-of-week=\"firstDayOfWeek\"\n :show-adjacent-months=\"true\"\n :show-week=\"true\"\n >\n <template #actions><component :is=\"actions\" /></template>\n </v-date-picker>\n </template>\n </v-confirm-edit>\n </v-menu>\n </template>\n </v-text-field>\n\n <v-text-field\n v-if=\"['time', 'datetime'].includes(inputType)\"\n v-model=\"timeFormatted\"\n style=\"flex-grow: 3\"\n density=\"compact\"\n variant=\"plain\"\n :clearable=\"false\"\n :hide-details=\"true\"\n :readonly=\"vuetifyBindings.readonly\"\n :disabled=\"vuetifyBindings.disabled\"\n :name=\"`${vuetifyBindings.name}-time`\"\n v-bind=\"passthroughAttrs\"\n @click=\"dropdown = 'time'\"\n @keydown.space=\"dropdown = 'time'\"\n @focus=\"slotProps.focus()\"\n @blur=\"slotProps.blur()\"\n >\n <template #default>\n <v-menu v-model=\"timeMenuShown\" :close-on-content-click=\"false\" activator=\"parent\">\n <v-confirm-edit v-model=\"valueAsTimeString\" @cancel=\"dropdown = ''\" @save=\"dropdown = ''\">\n <template #default=\"{ model: proxyModel, actions }\">\n <v-time-picker v-model=\"proxyModel.value\" :hide-header=\"true\" format=\"24hr\">\n <template #actions><component :is=\"actions\" /></template>\n </v-time-picker>\n </template>\n </v-confirm-edit>\n </v-menu>\n </template>\n </v-text-field>\n </div>\n </template>\n </input-base>\n</template>\n\n<script setup lang=\"ts\">\nimport { format, parse } from 'date-fns';\nimport { toNumber, isNaN } from 'lodash-es';\nimport { ref, computed, watch, toRefs, unref } from 'vue';\n\nimport { DfDateTimeProps } from './dynamicforms-component-props';\nimport { BaseEmits, DateTimeLocaleConfig, defaultBaseProps, InputBase, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfDateTimeProps>(), {\n ...defaultBaseProps,\n inputType: 'datetime',\n displayFormatDate: 'P',\n displayFormatTime: 'p',\n});\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst currentLocale = computed(() => props.locale ?? unref(DateTimeLocaleConfig.dateTimeLocale));\nconst firstDayOfWeek = computed(() => currentLocale.value.options?.weekStartsOn ?? 1);\nconst { densityClass, touched, value, vuetifyBindings } = useInputBase<string | null>(props, emits);\nconst { inputType, displayFormatDate, displayFormatTime } = toRefs(props);\n\nconst dropdown = ref('');\nconst dateMenuShown = computed({\n get() {\n return unref(dropdown) === 'date';\n },\n set(newValue: boolean) {\n dropdown.value = newValue ? 'date' : '';\n },\n});\nconst timeMenuShown = computed({\n get() {\n return unref(dropdown) === 'time';\n },\n set(newValue: boolean) {\n dropdown.value = newValue ? 'time' : '';\n },\n});\n\nconst formatNaive = (val: Date) => `${format(val, 'yyyy-MM-dd')}T${format(val, 'HH:mm')}:00`;\n\nconst valueISOFull = ref<string | null>(null);\nfunction setValueISOFull(newISOValue: string | null, dateOrTimeIdx: number) {\n if (newISOValue == null) {\n valueISOFull.value = null;\n } else if (dateOrTimeIdx === -1) {\n // setting valueISOFull from value\n if (unref(inputType) === 'time') {\n valueISOFull.value = formatNaive(new Date());\n setValueISOFull(`T${newISOValue}`, 1);\n } else {\n const val = formatNaive(new Date(newISOValue));\n setValueISOFull(val, 0);\n setValueISOFull(val, 1);\n }\n } else {\n if (valueISOFull.value == null) valueISOFull.value = formatNaive(new Date());\n const vif = valueISOFull.value.split(/[TZ]/g);\n const nv = newISOValue!.split(/[TZ]/g);\n vif[dateOrTimeIdx] = nv[dateOrTimeIdx];\n valueISOFull.value = formatNaive(new Date(`${vif[0]}T${vif[1].split('.')[0]}`));\n\n if (unref(inputType) === 'date') value.value = vif[0];\n else if (unref(inputType) === 'time') value.value = vif[1];\n else value.value = unref(valueISOFull) + format(new Date(), 'XXX');\n }\n}\nwatch(value, (newValue: string | null) => setValueISOFull(newValue, -1), { immediate: true });\n\nconst valueAsDate = computed({\n get() {\n const uValue = unref(valueISOFull);\n if (uValue == null) return null;\n const res = new Date(uValue);\n return !Number.isNaN(res.getTime()) ? res : null;\n },\n set(newValue: Date) {\n setValueISOFull(formatNaive(newValue), 0);\n },\n});\n\nconst valueAsTimeString = computed({\n get() {\n const val = unref(valueISOFull);\n if (val == null) return '';\n const vif = val.split(/[TZ]/g);\n return vif[1].split('.')[0];\n },\n set(newValue: string) {\n setValueISOFull(`T${newValue}`, 1);\n },\n});\n\nconst dateFormatted = computed({\n get() {\n const vad = unref(valueAsDate);\n if (vad == null) return '';\n return format(vad, unref(displayFormatDate), { locale: currentLocale.value });\n },\n set(newValue: string) {\n try {\n const d = parse(newValue, unref(displayFormatDate), new Date(), { locale: currentLocale.value });\n setValueISOFull(formatNaive(d), 0);\n } catch (err) {\n console.error(err);\n }\n },\n});\n\nconst timeFormatted = computed({\n get() {\n const vad = unref(valueAsDate);\n if (vad == null) return '';\n return format(vad, unref(displayFormatTime), { locale: currentLocale.value });\n },\n set(newValue: string) {\n const d = newValue.match(/(\\d+):(\\d+)\\s?([a-zA-Z]+)?/);\n if (d == null) return;\n let hour = toNumber(d[1]);\n const minute = toNumber(d[2]);\n if (isNaN(hour) || isNaN(minute)) return;\n if (d[3] && d[3].toLowerCase() === 'pm' && hour < 13) hour += 12;\n setValueISOFull(`T${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}:00`, 1);\n },\n});\n</script>\n","<template>\n <input-base\n v-bind=\"{ ...props, loading } as any\"\n :class=\"densityClass\"\n clearable\n @click:clear=\"removeFile\"\n @blur=\"touched = true\"\n >\n <template #prepend-inner><cached-icon name=\"mdi-paperclip\" /></template>\n <template #loader>\n <v-progress-linear\n v-if=\"currentFile && progress < 100\"\n :model-value=\"progress\"\n :indeterminate=\"progress === -1\"\n />\n </template>\n <template #default=\"slotProps\">\n <div class=\"d-flex w-100 position-relative df-input-wrapper\" :class=\"density\">\n <v-file-input\n v-model=\"selectedFile\"\n :label=\"fileLabel\"\n density=\"compact\"\n variant=\"plain\"\n :readonly=\"vuetifyBindings.readonly\"\n :disabled=\"vuetifyBindings.disabled\"\n :name=\"vuetifyBindings.name\"\n :hide-details=\"true\"\n :show-size=\"true\"\n :multiple=\"false\"\n :style=\"currentFile && progress < 100 ? 'visibility: hidden' : ''\"\n :clearable=\"false\"\n v-bind=\"passthroughAttrs\"\n prepend-icon=\"\"\n @update:model-value=\"handleFileChange\"\n @focus=\"slotProps.focus()\"\n @blur=\"slotProps.blur()\"\n />\n </div>\n </template>\n </input-base>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onBeforeUnmount, watch } from 'vue';\nimport { CachedIcon } from 'vue-cached-icon';\n\nimport { DfFileProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, InputBase, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfFileProps>(), defaultBaseProps);\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, touched, value, vuetifyBindings } = useInputBase(props, emits);\nconst touchInterval = ref<number | null>(null);\n\n// State\nconst currentFile = ref<File | null>(null);\nconst progress = ref(0);\nconst fileInputKey = ref(Math.round(Math.random() * 1000));\nconst selectedFile = ref<File | null>();\nconst loading = computed(() => currentFile.value && progress.value < 100);\n\nconst fileLabel = computed(() => {\n if (!selectedFile.value && value.value) {\n return props.modelValue;\n }\n return '';\n});\n\nfunction clearTouchInterval() {\n if (touchInterval.value) window.clearInterval(touchInterval.value);\n}\nfunction setupTouchInterval() {\n clearTouchInterval();\n touchInterval.value = window.setInterval(() => {\n if (value.value) props.comms.touch(value.value);\n }, 60 * 1000);\n}\n\nonBeforeUnmount(() => clearTouchInterval());\nwatch(value, (newValue) => {\n if (newValue) setupTouchInterval();\n else clearTouchInterval();\n});\n\nasync function removeFile() {\n if (value.value) {\n await props.comms.delete(value.value);\n }\n\n value.value = null;\n progress.value = 0;\n fileInputKey.value = Math.round(Math.random() * 1000);\n currentFile.value = null;\n selectedFile.value = null;\n clearTouchInterval();\n}\n\nasync function upload(file: File) {\n progress.value = -1;\n currentFile.value = file;\n\n try {\n value.value = await props.comms.upload(file, (loaded: number, total: number) => {\n progress.value = Math.round((loaded * 100) / total);\n });\n progress.value = 100;\n setupTouchInterval();\n } catch (err) {\n progress.value = 0;\n currentFile.value = null;\n fileInputKey.value = Math.round(Math.random() * 1000);\n selectedFile.value = null;\n throw err;\n }\n}\n\nfunction handleFileChange(file: File | File[]): any {\n if (file) {\n if (Array.isArray(file)) {\n console.error('Uploading multiple files not supported right now');\n } else {\n upload(file);\n }\n }\n}\n</script>\n","<template>\n <div class=\"df-input-container\" :class=\"densityClass\">\n <v-text-field\n v-if=\"!isNumber\"\n v-model=\"value\"\n v-bind=\"vuetifyBindings as any\"\n :type=\"inputType\"\n @blur=\"touched = true\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><messages-widget :message=\"message\" :errors=\"errors\" /></template>\n </v-text-field>\n <v-number-input\n v-else\n v-model=\"value\"\n v-bind=\"{ ...vuetifyBindings, ...numberInputBindings } as any\"\n density=\"compact\"\n control-variant=\"stacked\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><messages-widget :message=\"message\" :errors=\"errors\" /></template>\n </v-number-input>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, toRefs, unref } from 'vue';\n\nimport { DfInputProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfLabel, MessagesWidget, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfInputProps>(), {\n ...defaultBaseProps,\n inputType: 'text',\n precision: null,\n step: undefined,\n min: undefined,\n max: undefined,\n});\n\ninterface Emits extends BaseEmits {}\n\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, errors, label, touched, value, vuetifyBindings } = useInputBase(props, emits);\nconst { inputType, max, min, precision, step } = toRefs(props);\n\nconst isNumber = computed(() => inputType.value === 'number');\nconst numberInputBindings = computed(() =>\n !isNumber.value ? {} : { min: unref(min), max: unref(max), precision: unref(precision), step: unref(step) },\n);\n</script>\n","<template>\n <div class=\"editor-container\">\n <div class=\"editor-container__editor\">\n <div ref=\"editorElement\">\n <ckeditor\n v-if=\"isLayoutReady\"\n :model-value=\"modelValue\"\n :editor=\"editor\"\n :config=\"editorConfig\"\n :disabled=\"disabled\"\n :style=\"`min-height: ${minHeight}`\"\n @ready=\"onEditorReady\"\n @update:model-value=\"(event: any) => emit('update:modelValue', event)\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Editor, EditorConfig } from '@ckeditor/ckeditor5-core';\nimport {\n AccessibilityHelp,\n Alignment,\n Autoformat,\n AutoImage,\n AutoLink,\n Autosave,\n BalloonToolbar,\n Base64UploadAdapter,\n BlockQuote,\n Bold,\n ClassicEditor,\n CloudServices,\n Essentials,\n GeneralHtmlSupport,\n Heading,\n HeadingConfig,\n HorizontalLine,\n ImageBlock,\n ImageCaption,\n ImageInline,\n ImageInsertViaUrl,\n ImageResize,\n ImageStyle,\n ImageToolbar,\n ImageUpload,\n Indent,\n IndentBlock,\n Italic,\n Link,\n List,\n MediaEmbed,\n Paragraph,\n PasteFromMarkdownExperimental,\n PasteFromOffice,\n SelectAll,\n Style,\n Table,\n TableCellProperties,\n TableColumnResize,\n TableProperties,\n TableToolbar,\n TextTransformation,\n Undo,\n} from 'ckeditor5';\nimport { onMounted, ref } from 'vue';\n\nimport { ckEditorLanguage, translatableStrings } from './translations';\n\nwithDefaults(\n defineProps<{\n modelValue?: string;\n minHeight?: string;\n disabled?: boolean;\n }>(),\n { modelValue: '', minHeight: '7em', disabled: false },\n);\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void;\n}>();\n\nconst isLayoutReady = ref(false);\nconst editor = ClassicEditor;\n\nconst editorToolbarConfig = {\n items: [\n 'undo',\n 'redo',\n '|',\n 'selectAll',\n '|',\n 'heading',\n 'style',\n '|',\n 'bold',\n 'italic',\n '|',\n 'horizontalLine',\n 'link',\n 'mediaEmbed',\n 'insertTable',\n 'blockQuote',\n '|',\n 'alignment',\n '|',\n 'bulletedList',\n 'numberedList',\n 'outdent',\n 'indent',\n '|',\n 'accessibilityHelp',\n ],\n shouldNotGroupWhenFull: false,\n};\nconst editorPlugins = [\n AccessibilityHelp,\n Alignment,\n AutoImage,\n AutoLink,\n Autosave,\n BalloonToolbar,\n BlockQuote,\n Bold,\n CloudServices,\n Essentials,\n GeneralHtmlSupport,\n Heading,\n HorizontalLine,\n ImageBlock,\n ImageCaption,\n ImageInline,\n ImageInsertViaUrl,\n ImageResize,\n ImageStyle,\n ImageToolbar,\n ImageUpload,\n Indent,\n IndentBlock,\n Italic,\n Link,\n List,\n Autoformat,\n MediaEmbed,\n Paragraph,\n PasteFromMarkdownExperimental,\n PasteFromOffice,\n SelectAll,\n Style,\n Table,\n TableCellProperties,\n TableColumnResize,\n TableProperties,\n TableToolbar,\n Undo,\n TextTransformation,\n Base64UploadAdapter,\n];\nconst editorHeadings: HeadingConfig = {\n options: [\n { model: 'paragraph', title: translatableStrings.Paragraph, class: 'ck-heading_paragraph' },\n { model: 'heading1', view: 'h1', title: translatableStrings.Heading1, class: 'ck-heading_heading1' },\n { model: 'heading2', view: 'h2', title: translatableStrings.Heading2, class: 'ck-heading_heading2' },\n { model: 'heading3', view: 'h3', title: translatableStrings.Heading3, class: 'ck-heading_heading3' },\n { model: 'heading4', view: 'h4', title: translatableStrings.Heading4, class: 'ck-heading_heading4' },\n { model: 'heading5', view: 'h5', title: translatableStrings.Heading5, class: 'ck-heading_heading5' },\n { model: 'heading6', view: 'h6', title: translatableStrings.Heading6, class: 'ck-heading_heading6' },\n ],\n};\nconst editorConfig: EditorConfig = {\n language: ckEditorLanguage.language,\n toolbar: editorToolbarConfig,\n plugins: editorPlugins,\n balloonToolbar: ['bold', 'italic', '|', 'link', '|', 'bulletedList', 'numberedList'],\n heading: editorHeadings,\n htmlSupport: {\n allow: [{ name: /^.*$/, styles: true, attributes: true, classes: true }],\n },\n image: {\n toolbar: [\n 'toggleImageCaption',\n 'imageTextAlternative',\n '|',\n 'imageStyle:inline',\n 'imageStyle:wrapText',\n 'imageStyle:breakText',\n '|',\n 'resizeImage',\n ],\n },\n // initialData: '',\n link: {\n addTargetToExternalLinks: true,\n defaultProtocol: 'https://',\n decorators: {\n toggleDownloadable: {\n mode: 'manual',\n label: translatableStrings.Downloadable,\n attributes: { download: 'file' },\n },\n },\n },\n placeholder: '',\n style: {\n definitions: [\n { name: translatableStrings.ArticleCategory, element: 'h3', classes: ['category'] },\n { name: translatableStrings.Title, element: 'h2', classes: ['document-title'] },\n { name: translatableStrings.Subtitle, element: 'h3', classes: ['document-subtitle'] },\n { name: translatableStrings.InfoBox, element: 'p', classes: ['info-box'] },\n { name: translatableStrings.SideQuote, element: 'blockquote', classes: ['side-quote'] },\n { name: translatableStrings.Marker, element: 'span', classes: ['marker'] },\n { name: translatableStrings.Spoiler, element: 'span', classes: ['spoiler'] },\n { name: translatableStrings.CodeDark, element: 'pre', classes: ['fancy-code', 'fancy-code-dark'] },\n { name: translatableStrings.CodeBright, element: 'pre', classes: ['fancy-code', 'fancy-code-bright'] },\n ],\n },\n table: { contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells', 'tableProperties', 'tableCellProperties'] },\n translations: ckEditorLanguage.translations,\n};\n\nonMounted(() => {\n isLayoutReady.value = true;\n});\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst onEditorReady = (editorReady: Editor) => {\n // console.log('Editor is ready to use!', editorReady);\n};\n\ndefineExpose({ onEditorReady });\n</script>\n\n<style>\n@import 'ckeditor5/ckeditor5.css';\n@import url('https://fonts.googleapis.com/css2?family=Oswald&family=PT+Serif:ital,wght@0,400;0,700;1,400&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap');\n\n:root {\n /* In addition to this, any v-dialog must also have :retain-focus=\"false\" */\n --ck-z-default: 20000 !important;\n --ck-z-modal: calc(var(--ck-z-default) + 20999);\n}\n\n@media print {\n body {\n margin: 0 !important;\n }\n}\n\n.editor-container {\n font-family: 'Lato';\n}\n\n.ck-content {\n font-family: 'Lato';\n line-height: 1.6;\n word-break: break-word;\n}\n\n.editor-container,\n.editor-container__editor {\n width: 100%;\n}\n\n:root .ck-editor__editable_inline {\n min-height: v-bind(minHeight);\n}\n\n.ck-content h3.category {\n font-family: 'Oswald';\n font-size: 20px;\n font-weight: bold;\n color: #555;\n letter-spacing: 10px;\n margin: 0;\n padding: 0;\n}\n\n.ck-content h2.document-title {\n font-family: 'Oswald';\n font-size: 50px;\n font-weight: bold;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.ck-content h3.document-subtitle {\n font-family: 'Oswald';\n font-size: 20px;\n color: #555;\n margin: 0 0 1em;\n font-weight: bold;\n padding: 0;\n}\n\ndiv.ck.ck-editor__editable_inline * {\n /* disables any styles declared on the page prior to the editor */\n all: revert;\n}\n\n.ck-content p.info-box {\n --background-size: 30px;\n --background-color: #e91e63;\n padding: 1.2em 2em;\n border: 1px solid var(--background-color);\n background:\n linear-gradient(\n 135deg,\n var(--background-color) 0%,\n var(--background-color) var(--background-size),\n transparent var(--background-size)\n ),\n linear-gradient(\n 135deg,\n transparent calc(100% - var(--background-size)),\n var(--background-color) calc(100% - var(--background-size)),\n var(--background-color)\n );\n border-radius: 10px;\n margin: 1.5em 2em;\n box-shadow: 5px 5px 0 #ffe6ef;\n}\n\n.ck-content blockquote.side-quote {\n font-family: 'Oswald';\n font-style: normal;\n float: right;\n width: 35%;\n position: relative;\n border: 0;\n overflow: visible;\n z-index: 1;\n margin-left: 1em;\n}\n\n.ck-content blockquote.side-quote::before {\n content: '“';\n position: absolute;\n top: -37px;\n left: -10px;\n display: block;\n font-size: 200px;\n color: #e7e7e7;\n z-index: -1;\n line-height: 1;\n}\n\n.ck-content blockquote.side-quote p {\n font-size: 2em;\n line-height: 1;\n}\n\n.ck-content blockquote.side-quote p:last-child:not(:first-child) {\n font-size: 1.3em;\n text-align: right;\n color: #555;\n}\n\n.ck-content span.marker {\n background: yellow;\n}\n\n.ck-content span.spoiler {\n background: #000;\n color: #000;\n}\n\n.ck-content span.spoiler:hover {\n background: #000;\n color: #fff;\n}\n\n.ck-content pre.fancy-code {\n border: 0;\n margin-left: 2em;\n margin-right: 2em;\n border-radius: 10px;\n}\n\n.ck-content pre.fancy-code::before {\n content: '';\n display: block;\n height: 13px;\n background: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NCAxMyI+CiAgPGNpcmNsZSBjeD0iNi41IiBjeT0iNi41IiByPSI2LjUiIGZpbGw9IiNGMzZCNUMiLz4KICA8Y2lyY2xlIGN4PSIyNi41IiBjeT0iNi41IiByPSI2LjUiIGZpbGw9IiNGOUJFNEQiLz4KICA8Y2lyY2xlIGN4PSI0Ny41IiBjeT0iNi41IiByPSI2LjUiIGZpbGw9IiM1NkM0NTMiLz4KPC9zdmc+Cg==);\n margin-bottom: 8px;\n background-repeat: no-repeat;\n}\n\n.ck-content pre.fancy-code-dark {\n background: #272822;\n color: #fff;\n box-shadow: 5px 5px 0 #0000001f;\n}\n\n.ck-content pre.fancy-code-bright {\n background: #dddfe0;\n color: #000;\n box-shadow: 5px 5px 0 #b3b3b3;\n}\n</style>\n","<template>\n <input-base v-bind=\"props\" class=\"ck-editor-custom\" :class=\"densityClass\">\n <template #default=\"slotProps\">\n <ck-editor-custom\n ref=\"$editor\"\n v-model=\"value\"\n :class=\"{ 'mt-6': !!label }\"\n :min-height=\"minHeight\"\n :disabled=\"vuetifyBindings.disabled\"\n placeholder=\"dfsjghdf\"\n v-bind=\"passthroughAttrs\"\n @focusin=\"slotProps.focus()\"\n @focusout=\"slotProps.blur()\"\n />\n </template>\n </input-base>\n</template>\n\n<script setup lang=\"ts\">\nimport { DfRtfEditorProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, InputBase, useInputBase } from './helpers';\nimport CkEditorCustom from './helpers/ck-editor-custom.vue';\n\nconst props = withDefaults(defineProps<DfRtfEditorProps>(), { ...defaultBaseProps, minHeight: undefined });\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, value, vuetifyBindings } = useInputBase(props, emits);\n</script>\n\n<style>\n.ck-editor-custom .v-field:not(.v-field--active) .v-label.v-field-label:not(.v-field-label--floating) {\n transform: translate(0.5em, 3em);\n}\n</style>\n","import { isArray, first, castArray } from 'lodash-es';\nimport { Ref } from 'vue';\n\nimport { SelectChoice } from './df-select.interface';\n\nexport function convertItems(items: SelectChoice[]) {\n return items.map((item) => ({ value: item.id, title: item.text, icon: item.icon }));\n}\n\n/**\n * multipleCompliantValue ensures that resulting value of the select component is\n * 1 - null, when nothing is selected\n * 2 - array, when multiple is truthy\n * 3 - ordinal / simple value when multiple is not truthy\n * @param value the value to make compliant\n * @param multiple indicator for multiple selection\n */\nexport function multipleCompliantValue(value: any, multiple: boolean): any {\n // Če je vrednost null ali undefined\n if (value == null) return null;\n\n // Če je prazno polje (za multiple)\n if (isArray(value) && value.length === 0) return null;\n\n // Za multiple vedno vrni polje\n if (multiple) return castArray(value);\n\n // Za single vrni prvo vrednost ali vrednost samo\n return isArray(value) ? (first(value) ?? null) : value;\n}\n\nexport function getSelectedChoices(loadedChoices: SelectChoice[], multipleCpliantValue: any | any[] | null) {\n if (multipleCpliantValue == null) return [];\n const mcValue = castArray(multipleCpliantValue);\n return loadedChoices.filter((choice) => mcValue.some((val: any) => val === choice.id));\n}\n\n/**\n * updateSelectedFromValue ensures that the actual select component receives model-value formatted to its needs\n */\nexport function updateSelectedFromValue(\n resultingValue: any,\n selected: Ref<any>,\n multiple: boolean,\n taggable: boolean,\n loadedChoices: SelectChoice[],\n) {\n const mcValue = multipleCompliantValue(resultingValue, multiple);\n\n if (mcValue == null) {\n selected.value = multiple ? [] : null;\n return;\n }\n\n if (multiple) {\n if (taggable) {\n // if taggable (can add new items not in choices), keep the value as-is\n selected.value = mcValue;\n } else {\n // when not taggable, we filter the result to existing choices\n selected.value = getSelectedChoices(loadedChoices, mcValue).map((choice) => choice.id);\n }\n } else {\n if (taggable) {\n // if taggable, we just keep the selected value\n selected.value = mcValue;\n } else {\n // when not taggable, we filter the result to existing choices\n const matchingChoice = first(getSelectedChoices(loadedChoices, mcValue));\n selected.value = matchingChoice?.id ?? null;\n }\n }\n}\n","<template>\n <component\n :is=\"taggable ? 'v-combobox' : 'v-autocomplete'\"\n v-if=\"visibility !== DisplayMode.SUPPRESS\"\n v-model=\"selected\"\n :class=\"[\n cssClass,\n densityClass,\n {\n 'd-none': visibility === DisplayMode.HIDDEN,\n invisible: visibility === DisplayMode.INVISIBLE,\n },\n ]\"\n :items=\"options\"\n :return-object=\"false\"\n v-bind=\"vuetifyBindings\"\n :label=\"vuetifyBindings.label\"\n chips\n :auto-select-first=\"true\"\n :closable-chips=\"allowNull || (multiple && selected.length > 1)\"\n :clearable=\"allowNull\"\n :multiple=\"multiple\"\n :loading=\"loading\"\n :hide-selected=\"false\"\n :aria-describedby=\"vuetifyBindings.helpText ? `${vuetifyBindings.name}-help` : null\"\n :menu-props=\"{ maxHeight: '400' }\"\n hide-details=\"auto\"\n @update:search=\"(query: any) => queryOptions(query, undefined)\"\n @update:model-value=\"onSelect\"\n @click:clear=\"selected = null\"\n @blur=\"touched = true\"\n >\n <template #chip=\"{ item }\">\n <v-chip\n :key=\"item.value\"\n label\n size=\"small\"\n class=\"d-flex align-middle\"\n :variant=\"multiple ? 'tonal' : 'text'\"\n :closable=\"multiple\"\n @click:close=\"chipClose(item.value)\"\n >\n <template #prepend>\n <cached-icon v-if=\"item.raw?.icon\" class=\"me-1\" :name=\"item.raw.icon\" />\n </template>\n <span :class=\"{ 'text-body-1': !multiple }\">{{ item.title }}</span>\n </v-chip>\n </template>\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n\n <template #item=\"{ props: prps, item }\">\n <v-list-item v-bind=\"prps\">\n <template #prepend>\n <span v-if=\"item.raw?.icon\" class=\"me-1\">\n <cached-icon class=\"action-icon\" :name=\"item.raw.icon\" />\n </span>\n </template>\n </v-list-item>\n </template>\n <template #message=\"{ message }\">\n <messages-widget :message=\"message\" :errors=\"errors\" />\n </template>\n <template v-if=\"$slots['append-inner']\" #append-inner=\"props\">\n <slot name=\"append-inner\" v-bind=\"props\" />\n </template>\n <template v-if=\"$slots['prepend-inner']\" #prepend-inner=\"props\">\n <slot name=\"prepend-inner\" v-bind=\"props\" />\n </template>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { DisplayMode } from '@dynamicforms/vue-forms';\nimport { unionBy } from 'lodash-es';\nimport { ref, computed, toRefs, watch, nextTick, unref } from 'vue';\nimport { CachedIcon } from 'vue-cached-icon';\n\nimport { DfSelectProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfLabel, MessagesWidget, SelectChoice, useInputBase } from './helpers';\nimport {\n convertItems,\n getSelectedChoices,\n multipleCompliantValue,\n updateSelectedFromValue,\n} from './helpers/df-select.helper';\n\nconst propsWithDefaults = withDefaults(defineProps<DfSelectProps>(), {\n ...defaultBaseProps,\n choices: undefined,\n multiple: false,\n allowTags: false,\n allowNull: true,\n fetchChoices: undefined,\n});\n\nconst { choices, multiple, allowTags: taggable, allowNull, cssClass, visibility } = toRefs(propsWithDefaults);\n\ninterface Emits extends BaseEmits {\n (e: 'update:modelValueDisplay', value: SelectChoice[]): any;\n}\n\nconst emits = defineEmits<Emits>();\ndefineSlots<{\n 'append-inner'?: (props: any) => any;\n 'prepend-inner'?: (props: any) => any;\n}>();\n\nconst {\n densityClass,\n errors,\n label,\n touched,\n value: resultingValue,\n vuetifyBindings,\n} = useInputBase(propsWithDefaults, emits);\n\nconst selected = ref<any>(null);\nconst takeLoaded = ref(false);\nconst loaded = ref<SelectChoice[]>([]);\nconst loadedChoices = computed<SelectChoice[]>(() => (unref(takeLoaded) ? unref(loaded) : unref(choices) || []));\nconst loading = ref<boolean>(false);\n\nconst options = computed(() => convertItems(loadedChoices.value));\n\nif (options.value && propsWithDefaults.fetchChoices !== undefined) {\n console.warn('Both options and fetchChoices are set. Only one of them should be set.');\n}\n\nfunction emitModelValueDisplay(mcVal: any) {\n emits('update:modelValueDisplay', getSelectedChoices(loadedChoices.value, mcVal));\n}\n\nlet setResultingValueGuard = false;\n\nfunction setResultingValue(newValue: any) {\n setResultingValueGuard = true;\n resultingValue.value = newValue;\n nextTick(() => {\n setResultingValueGuard = false;\n });\n}\n\nwatch(\n selected,\n (newValue) => {\n if (vuetifyBindings.value.readonly) return;\n nextTick(() => {\n const mcVal = multipleCompliantValue(newValue, multiple.value);\n emitModelValueDisplay(mcVal);\n setResultingValue(mcVal);\n });\n },\n { deep: true },\n);\nwatch(\n resultingValue,\n (newValue: any) => {\n if (!setResultingValueGuard) {\n const mcVal = multipleCompliantValue(newValue, multiple.value);\n updateSelectedFromValue(mcVal, selected, multiple.value, false, loadedChoices.value);\n }\n },\n { deep: true },\n);\n\nfunction onSelect(/* val: any */) {\n if (vuetifyBindings.value.readonly || taggable.value) return;\n const mcVal = multipleCompliantValue(selected.value, multiple.value);\n updateSelectedFromValue(mcVal, selected, multiple.value, false, loadedChoices.value);\n setResultingValue(mcVal);\n}\n\nfunction chipClose(itemValue: any) {\n let mcVal;\n if (multiple.value && Array.isArray(selected.value)) {\n mcVal = multipleCompliantValue(\n selected.value.filter((v) => v !== itemValue),\n multiple.value,\n );\n } else {\n mcVal = null;\n }\n updateSelectedFromValue(mcVal, selected, multiple.value, false, loadedChoices.value);\n setResultingValue(mcVal);\n}\n\nasync function queryOptions(queryValue?: any, idValue?: any): Promise<void> {\n if (choices.value || propsWithDefaults.fetchChoices === undefined) return;\n loading.value = true;\n try {\n const selectedChoices = getSelectedChoices(\n loadedChoices.value,\n multipleCompliantValue(selected.value, multiple.value),\n );\n const newChoices = await propsWithDefaults.fetchChoices(queryValue, idValue);\n loaded.value = unionBy([...selectedChoices, ...newChoices], 'id');\n takeLoaded.value = true;\n } finally {\n loading.value = false;\n }\n}\n\nfunction initialValueCheck() {\n let val = resultingValue.value;\n if (!allowNull.value && val == null && options.value.length) {\n // Starting settings: check if value is mandatory and select the first item from the options\n val = options.value[0].value;\n }\n val = multipleCompliantValue(val, multiple.value);\n updateSelectedFromValue(val, selected, multiple.value, taggable.value, loadedChoices.value);\n emitModelValueDisplay(val);\n setResultingValue(val);\n}\n\ninitialValueCheck();\n\n// Starting settings: check if ajax and current value is not loaded yet - then load the value from back-end\nif (propsWithDefaults.fetchChoices !== undefined) {\n queryOptions(undefined, resultingValue.value).then(() => {\n initialValueCheck();\n });\n}\n</script>\n","<template>\n <div class=\"df-textarea-container\" :class=\"densityClass\">\n <v-textarea\n v-if=\"visibility !== DisplayMode.SUPPRESS\"\n v-model=\"value\"\n :class=\"[\n cssClass,\n {\n 'd-none': visibility === DisplayMode.HIDDEN,\n invisible: visibility === DisplayMode.INVISIBLE,\n },\n ]\"\n :rows=\"rows\"\n :auto-grow=\"(maxRows || 0) > 0\"\n :max-rows=\"maxRows\"\n v-bind=\"vuetifyBindings as any\"\n @blur=\"touched = true\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><messages-widget :message=\"message\" :errors=\"errors\" /></template>\n </v-textarea>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { DisplayMode } from '@dynamicforms/vue-forms';\nimport { toRefs } from 'vue';\n\nimport { DfTextAreaProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfLabel, MessagesWidget, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfTextAreaProps>(), {\n ...defaultBaseProps,\n rows: undefined,\n maxRows: undefined,\n});\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, errors, label, touched, value, vuetifyBindings } = useInputBase(props, emits);\nconst { cssClass, visibility } = toRefs(props);\n</script>\n","import { CkeditorPlugin } from '@ckeditor/ckeditor5-vue';\nimport { App } from 'vue';\n\nimport * as Inputs from './dynamicforms-components';\nimport { VuetifyInputsSettings, vuetifyInputsSettingsKey } from './helpers';\nimport * as VuetifyComponents from './vuetify-components';\n\nexport * from './helpers';\nexport * as VuetifyComponents from './vuetify-components';\nexport * from './dynamicforms-components';\nexport * as DfInputComponents from './dynamicforms-components';\nexport * as DfInputComponentProps from './dynamicforms-component-props';\n\nexport interface DynamicFormsInputsOptions extends VuetifyInputsSettings {\n registerComponents: boolean;\n registerVuetifyComponents: boolean;\n}\n\nexport const DynamicFormsInputs = {\n install: (app: App, options?: Partial<DynamicFormsInputsOptions>) => {\n app.use(CkeditorPlugin);\n app.provide(vuetifyInputsSettingsKey, options ?? {});\n if (options?.registerComponents ?? false) {\n Object.entries(Inputs).map(([name, component]) => app.component(name, component));\n }\n if (options?.registerVuetifyComponents ?? false) {\n Object.entries(VuetifyComponents).map(([name, component]) => app.component(name, component));\n }\n },\n};\n"],"names":["_","index","appendExtraPluginsToEditorConfig","config","plugins","extraPlugins","__spreadProps","__spreadValues","item","isSemanticVersion","version","isCKCdnTestingVersion","testVersion","isCKCdnVersion","destructureSemanticVersion","major","minor","patch","getLicenseVersionFromEditorVersion","getCKBaseBundleInstallationInfo","CKEDITOR_VERSION","CKEDITOR","getSupportedLicenseVersionInstallationInfo","installationInfo","isCKEditorFreeLicense","licenseKey","licenseVersion","createIntegrationUsageDataPlugin","integrationName","usageData","editor","source","setUsageData","VueIntegrationUsageDataPlugin","appendAllIntegrationPluginsToConfig","editorConfig","VUE_INTEGRATION_READ_ONLY_LOCK_ID","INPUT_EVENT_DEBOUNCE_WAIT","_sfc_main","defineComponent","mergeModels","__props","__expose","__emit","model","useModel","props","emit","element","ref","instance","lastEditorData","watch","newModel","readOnlyMode","checkVersion","version2","setUpEditorEvents","emitDebouncedInputEvent","debounce","evt","data","onMounted","markRaw","error","onBeforeUnmount","_ctx","_cache","openBlock","createBlock","resolveDynamicComponent","Vue","CkeditorPlugin","app","isPluralType","val","formatDistanceLocale","getFormFromCount","count","formatDistance","token","options","result","tense","tokenValue","form","buildFormatLongFn","args","width","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","date","formatRelative","_baseDate","_options","format","buildLocalizeFn","value","context","valuesArray","defaultWidth","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","localize","dirtyNumber","quarter","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","key","findIndex","pattern","findKey","rest","object","predicate","array","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","sl","DateTimeLocaleConfig","locale","isRef","lbl","computed","_createElementBlock","_normalizeClass","allowWrap","label","_Fragment","_createBlock","_unref","CachedIcon","_component_v_img","_resolveDynamicComponent","MdString","VueMarkdown","vuetifyInputsSettingsKey","Label","text","icon","iconComponent","defaultBaseProps","useInputBase","settings","inject","internalValue","newValue","Form","controlTouch","touched","valid","errors","ValidationErrorRenderContent","anyErrors","enabled","visibility","isString","placeholder","helpText","hint","cssClass","density","_c","_b","_a","boundDensity","variant","isEmpty","render","h","res","componentBindings","emits","vuetifyBindings","isClearable","unref","focused","setFocused","isFocused","DisplayMode","_component_v_input","_withCtx","message","_createVNode","MessagesWidget","_component_v_field","loading","labelData","DfLabel","slotProps","_createElementVNode","_hoisted_1","_renderSlot","loaderProps","$slots","prependInnerProps","prependProps","translatableStrings","translateStrings","translationCallback","translation","setCkEditorLanguage","language","translations","ckEditorLanguage","ActionDisplayStyle","defaultDisplayStyle","fromString","mode","fromAny","input","isDefined","check","responsiveBreakpoints","ResponsiveRenderOptions","__publicField","bp","breakpoint","fields","bpData","field","getBreakpointName","dp","useBreakpoint","display","useDisplay","ResponsiveActionRenderOptions","defaultIfEmpty","isObjectLike","isBoolean","Action","FormAction","params","partial","init","actionsRef","actionsWithBreakpoint","action","showAsGroup","_openBlock","_renderList","idx","_component_v_btn","buttonSize","_withModifiers","event","_hoisted_2","_toDisplayString","densityClass","indeterminate","boolValue","change","oldVal","clone","_component_v_checkbox","_mergeProps","$event","dropdownShown","rules","_component_v_text_field","allowNull","_normalizeStyle","_component_v_menu","_component_v_color_picker","currentLocale","firstDayOfWeek","inputType","displayFormatDate","displayFormatTime","toRefs","dropdown","dateMenuShown","timeMenuShown","formatNaive","valueISOFull","setValueISOFull","newISOValue","dateOrTimeIdx","vif","nv","valueAsDate","uValue","valueAsTimeString","dateFormatted","vad","d","parse","err","timeFormatted","hour","toNumber","minute","isNaN","InputBase","clearable","passthroughAttrs","_component_v_confirm_edit","proxyModel","actions","_component_v_date_picker","_component_v_time_picker","touchInterval","currentFile","progress","fileInputKey","selectedFile","fileLabel","clearTouchInterval","setupTouchInterval","removeFile","__async","upload","file","loaded","total","handleFileChange","_component_v_progress_linear","_component_v_file_input","max","min","precision","step","isNumber","numberInputBindings","_component_v_number_input","isLayoutReady","ClassicEditor","editorToolbarConfig","editorPlugins","AccessibilityHelp","Alignment","AutoImage","AutoLink","Autosave","BalloonToolbar","BlockQuote","Bold","CloudServices","Essentials","GeneralHtmlSupport","Heading","HorizontalLine","ImageBlock","ImageCaption","ImageInline","ImageInsertViaUrl","ImageResize","ImageStyle","ImageToolbar","ImageUpload","Indent","IndentBlock","Italic","Link","List","Autoformat","MediaEmbed","Paragraph","PasteFromMarkdownExperimental","PasteFromOffice","SelectAll","Style","Table","TableCellProperties","TableColumnResize","TableProperties","TableToolbar","Undo","TextTransformation","Base64UploadAdapter","editorHeadings","onEditorReady","editorReady","_hoisted_3","_component_ckeditor","modelValue","disabled","minHeight","CkEditorCustom","convertItems","items","multipleCompliantValue","multiple","isArray","castArray","first","getSelectedChoices","loadedChoices","multipleCpliantValue","mcValue","choice","updateSelectedFromValue","resultingValue","selected","taggable","matchingChoice","propsWithDefaults","choices","takeLoaded","emitModelValueDisplay","mcVal","setResultingValueGuard","setResultingValue","nextTick","onSelect","chipClose","itemValue","v","queryOptions","queryValue","idValue","selectedChoices","newChoices","unionBy","initialValueCheck","query","_component_v_chip","prps","_component_v_list_item","_component_v_textarea","rows","maxRows","DynamicFormsInputs","Inputs","name","component","VuetifyComponents"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
1
+ {"version":3,"file":"dynamicforms-vuetify-inputs.umd.cjs","sources":["../node_modules/@ckeditor/ckeditor5-integrations-common/dist/index.js","../node_modules/@ckeditor/ckeditor5-vue/dist/ckeditor.js","../node_modules/date-fns/locale/sl/_lib/formatDistance.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/sl/_lib/formatLong.js","../node_modules/date-fns/locale/sl/_lib/formatRelative.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/sl/_lib/localize.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/sl/_lib/match.js","../node_modules/date-fns/locale/sl.js","../src/helpers/date-time-locale.ts","../src/helpers/df-input-hint.vue","../src/helpers/df-label.vue","../src/helpers/settings.ts","../src/helpers/input-base.ts","../src/helpers/input-base.vue","../src/helpers/translations.ts","../src/helpers/action/action-display-style.ts","../src/helpers/action/responsive-render-options.ts","../src/helpers/action/action-render-options.ts","../src/helpers/action/action.ts","../src/df-actions.vue","../src/df-checkbox.vue","../src/df-color.vue","../src/df-datetime.vue","../src/df-file.vue","../src/df-input.vue","../src/helpers/ck-editor-custom.vue","../src/df-rtf-editor.vue","../src/helpers/df-select.helper.ts","../src/df-select.vue","../src/df-text-area.vue","../src/index.ts"],"sourcesContent":["/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createDefer() {\n const deferred = {\n resolve: null,\n promise: null\n };\n deferred.promise = new Promise((resolve) => {\n deferred.resolve = resolve;\n });\n return deferred;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction waitFor(callback, {\n timeOutAfter = 500,\n retryAfter = 100\n} = {}) {\n return new Promise((resolve, reject) => {\n const startTime = Date.now();\n let lastError = null;\n const timeoutTimerId = setTimeout(() => {\n reject(lastError ?? new Error(\"Timeout\"));\n }, timeOutAfter);\n const tick = async () => {\n try {\n const result = await callback();\n clearTimeout(timeoutTimerId);\n resolve(result);\n } catch (err) {\n lastError = err;\n if (Date.now() - startTime > timeOutAfter) {\n reject(err);\n } else {\n setTimeout(tick, retryAfter);\n }\n }\n };\n tick();\n });\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst INJECTED_SCRIPTS = /* @__PURE__ */ new Map();\nfunction injectScript(src, { attributes } = {}) {\n if (INJECTED_SCRIPTS.has(src)) {\n return INJECTED_SCRIPTS.get(src);\n }\n const maybePrevScript = document.querySelector(`script[src=\"${src}\"]`);\n if (maybePrevScript) {\n console.warn(`Script with \"${src}\" src is already present in DOM!`);\n maybePrevScript.remove();\n }\n const promise = new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.onerror = reject;\n script.onload = () => {\n resolve();\n };\n for (const [key, value] of Object.entries(attributes || {})) {\n script.setAttribute(key, value);\n }\n script.setAttribute(\"data-injected-by\", \"ckeditor-integration\");\n script.type = \"text/javascript\";\n script.async = true;\n script.src = src;\n document.head.appendChild(script);\n const observer = new MutationObserver((mutations) => {\n const removedNodes = mutations.flatMap((mutation) => Array.from(mutation.removedNodes));\n if (removedNodes.includes(script)) {\n INJECTED_SCRIPTS.delete(src);\n observer.disconnect();\n }\n });\n observer.observe(document.head, {\n childList: true,\n subtree: true\n });\n });\n INJECTED_SCRIPTS.set(src, promise);\n return promise;\n}\nasync function injectScriptsInParallel(sources, props) {\n await Promise.all(\n sources.map((src) => injectScript(src, props))\n );\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst INJECTED_STYLESHEETS = /* @__PURE__ */ new Map();\nfunction injectStylesheet({\n href,\n placementInHead = \"start\",\n attributes = {}\n}) {\n if (INJECTED_STYLESHEETS.has(href)) {\n return INJECTED_STYLESHEETS.get(href);\n }\n const maybePrevStylesheet = document.querySelector(`link[href=\"${href}\"][rel=\"stylesheet\"]`);\n if (maybePrevStylesheet) {\n console.warn(`Stylesheet with \"${href}\" href is already present in DOM!`);\n maybePrevStylesheet.remove();\n }\n const appendLinkTagToHead = (link) => {\n const previouslyInjectedLinks = Array.from(\n document.head.querySelectorAll('link[data-injected-by=\"ckeditor-integration\"]')\n );\n switch (placementInHead) {\n case \"start\":\n if (previouslyInjectedLinks.length) {\n previouslyInjectedLinks.slice(-1)[0].after(link);\n } else {\n document.head.insertBefore(link, document.head.firstChild);\n }\n break;\n case \"end\":\n document.head.appendChild(link);\n break;\n }\n };\n const promise = new Promise((resolve, reject) => {\n const link = document.createElement(\"link\");\n for (const [key, value] of Object.entries(attributes || {})) {\n link.setAttribute(key, value);\n }\n link.setAttribute(\"data-injected-by\", \"ckeditor-integration\");\n link.rel = \"stylesheet\";\n link.href = href;\n link.onerror = reject;\n link.onload = () => {\n resolve();\n };\n appendLinkTagToHead(link);\n const observer = new MutationObserver((mutations) => {\n const removedNodes = mutations.flatMap((mutation) => Array.from(mutation.removedNodes));\n if (removedNodes.includes(link)) {\n INJECTED_STYLESHEETS.delete(href);\n observer.disconnect();\n }\n });\n observer.observe(document.head, {\n childList: true,\n subtree: true\n });\n });\n INJECTED_STYLESHEETS.set(href, promise);\n return promise;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isSSR() {\n return typeof window === \"undefined\";\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction once(fn) {\n let lastResult = null;\n return (...args) => {\n if (!lastResult) {\n lastResult = {\n current: fn(...args)\n };\n }\n return lastResult.current;\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction overwriteArray(source, destination) {\n destination.length = 0;\n destination.push(...source);\n return destination;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction overwriteObject(source, destination) {\n for (const prop of Object.getOwnPropertyNames(destination)) {\n delete destination[prop];\n }\n for (const [key, value] of Object.entries(source)) {\n if (value !== destination && key !== \"prototype\" && key !== \"__proto__\") {\n destination[key] = value;\n }\n }\n return destination;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction preloadResource(url, { attributes } = {}) {\n if (document.head.querySelector(`link[href=\"${url}\"][rel=\"preload\"]`)) {\n return;\n }\n const link = document.createElement(\"link\");\n for (const [key, value] of Object.entries(attributes || {})) {\n link.setAttribute(key, value);\n }\n link.setAttribute(\"data-injected-by\", \"ckeditor-integration\");\n link.rel = \"preload\";\n link.as = detectTypeOfResource(url);\n link.href = url;\n document.head.insertBefore(link, document.head.firstChild);\n}\nfunction detectTypeOfResource(url) {\n switch (true) {\n case /\\.css$/.test(url):\n return \"style\";\n case /\\.js$/.test(url):\n return \"script\";\n default:\n return \"fetch\";\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction shallowCompareArrays(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst HEX_NUMBERS = new Array(256).fill(\"\").map((_, index) => (\"0\" + index.toString(16)).slice(-2));\nfunction uid() {\n const [r1, r2, r3, r4] = crypto.getRandomValues(new Uint32Array(4));\n return \"e\" + HEX_NUMBERS[r1 >> 0 & 255] + HEX_NUMBERS[r1 >> 8 & 255] + HEX_NUMBERS[r1 >> 16 & 255] + HEX_NUMBERS[r1 >> 24 & 255] + HEX_NUMBERS[r2 >> 0 & 255] + HEX_NUMBERS[r2 >> 8 & 255] + HEX_NUMBERS[r2 >> 16 & 255] + HEX_NUMBERS[r2 >> 24 & 255] + HEX_NUMBERS[r3 >> 0 & 255] + HEX_NUMBERS[r3 >> 8 & 255] + HEX_NUMBERS[r3 >> 16 & 255] + HEX_NUMBERS[r3 >> 24 & 255] + HEX_NUMBERS[r4 >> 0 & 255] + HEX_NUMBERS[r4 >> 8 & 255] + HEX_NUMBERS[r4 >> 16 & 255] + HEX_NUMBERS[r4 >> 24 & 255];\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction uniq(source) {\n return Array.from(new Set(source));\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nasync function waitForWindowEntry(entryNames, config) {\n const tryPickBundle = () => entryNames.map((name) => window[name]).filter(Boolean)[0];\n return waitFor(\n () => {\n const result = tryPickBundle();\n if (!result) {\n throw new Error(`Window entry \"${entryNames.join(\",\")}\" not found.`);\n }\n return result;\n },\n config\n );\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction filterObjectValues(obj, filter) {\n const filteredEntries = Object.entries(obj).filter(([key, value]) => filter(value, key));\n return Object.fromEntries(filteredEntries);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction filterBlankObjectValues(obj) {\n return filterObjectValues(\n obj,\n (value) => value !== null && value !== void 0\n );\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction mapObjectValues(obj, mapper) {\n const mappedEntries = Object.entries(obj).map(([key, value]) => [key, mapper(value, key)]);\n return Object.fromEntries(mappedEntries);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction without(itemsToRemove, items) {\n return items.filter((item) => !itemsToRemove.includes(item));\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction appendExtraPluginsToEditorConfig(config, plugins) {\n const extraPlugins = config.extraPlugins || [];\n return {\n ...config,\n extraPlugins: [\n ...extraPlugins,\n ...plugins.filter((item) => !extraPlugins.includes(item))\n ]\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isSemanticVersion(version) {\n return !!version && /^\\d+\\.\\d+\\.\\d+/.test(version);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isCKCdnTestingVersion(version) {\n if (!version) {\n return false;\n }\n return [\"nightly\", \"alpha\", \"internal\", \"nightly-\", \"staging\"].some((testVersion) => version.includes(testVersion));\n}\nfunction isCKCdnVersion(version) {\n return isSemanticVersion(version) || isCKCdnTestingVersion(version);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction destructureSemanticVersion(version) {\n if (!isSemanticVersion(version)) {\n throw new Error(`Invalid semantic version: ${version || \"<blank>\"}.`);\n }\n const [major, minor, patch] = version.split(\".\");\n return {\n major: Number.parseInt(major, 10),\n minor: Number.parseInt(minor, 10),\n patch: Number.parseInt(patch, 10)\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction getLicenseVersionFromEditorVersion(version) {\n if (isCKCdnTestingVersion(version)) {\n return 3;\n }\n const { major } = destructureSemanticVersion(version);\n switch (true) {\n case major >= 44:\n return 3;\n case major >= 38:\n return 2;\n default:\n return 1;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction getCKBaseBundleInstallationInfo() {\n const { CKEDITOR_VERSION, CKEDITOR } = window;\n if (!isCKCdnVersion(CKEDITOR_VERSION)) {\n return null;\n }\n return {\n source: CKEDITOR ? \"cdn\" : \"npm\",\n version: CKEDITOR_VERSION\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction getSupportedLicenseVersionInstallationInfo() {\n const installationInfo = getCKBaseBundleInstallationInfo();\n if (!installationInfo) {\n return null;\n }\n return getLicenseVersionFromEditorVersion(installationInfo.version);\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isCKEditorFreeLicense(licenseKey, licenseVersion) {\n licenseVersion ||= getSupportedLicenseVersionInstallationInfo() || void 0;\n switch (licenseVersion) {\n case 1:\n case 2:\n return licenseKey === void 0;\n case 3:\n return licenseKey === \"GPL\";\n default: {\n return false;\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createIntegrationUsageDataPlugin(integrationName, usageData) {\n return function IntegrationUsageDataPlugin(editor) {\n if (isCKEditorFreeLicense(editor.config.get(\"licenseKey\"))) {\n return;\n }\n editor.on(\"collectUsageData\", (source, { setUsageData }) => {\n setUsageData(`integration.${integrationName}`, usageData);\n });\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst CK_CDN_URL = \"https://cdn.ckeditor.com\";\nfunction createCKCdnUrl(bundle, file, version) {\n return `${CK_CDN_URL}/${bundle}/${version}/${file}`;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst CKBOX_CDN_URL = \"https://cdn.ckbox.io\";\nfunction createCKBoxCdnUrl(bundle, file, version) {\n return `${CKBOX_CDN_URL}/${bundle}/${version}/${file}`;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nconst CK_DOCS_URL = \"https://ckeditor.com/docs/ckeditor5\";\nfunction createCKDocsUrl(path, version = \"latest\") {\n return `${CK_DOCS_URL}/${version}/${path}`;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createCKCdnBaseBundlePack({\n version,\n translations,\n createCustomCdnUrl = createCKCdnUrl\n}) {\n const urls = {\n scripts: [\n // Load the main script of the base features.\n createCustomCdnUrl(\"ckeditor5\", \"ckeditor5.umd.js\", version),\n // Load all JavaScript files from the base features.\n // EN bundle is prebuilt into the main script, so we don't need to load it separately.\n ...without([\"en\"], translations || []).map(\n (translation) => createCustomCdnUrl(\"ckeditor5\", `translations/${translation}.umd.js`, version)\n )\n ],\n stylesheets: [\n createCustomCdnUrl(\"ckeditor5\", \"ckeditor5.css\", version)\n ]\n };\n return {\n // Preload resources specified in the pack, before loading the main script.\n preload: [\n ...urls.stylesheets,\n ...urls.scripts\n ],\n scripts: [\n // It's safe to load translations and the main script in parallel.\n async (attributes) => injectScriptsInParallel(urls.scripts, attributes)\n ],\n // Load all stylesheets of the base features.\n stylesheets: urls.stylesheets,\n // Pick the exported global variables from the window object.\n checkPluginLoaded: async () => waitForWindowEntry([\"CKEDITOR\"]),\n // Check if the CKEditor base bundle is already loaded and throw an error if it is.\n beforeInject: () => {\n const installationInfo = getCKBaseBundleInstallationInfo();\n switch (installationInfo?.source) {\n case \"npm\":\n throw new Error(\n \"CKEditor 5 is already loaded from npm. Check the migration guide for more details: \" + createCKDocsUrl(\"updating/migration-to-cdn/vanilla-js.html\")\n );\n case \"cdn\":\n if (installationInfo.version !== version) {\n throw new Error(\n `CKEditor 5 is already loaded from CDN in version ${installationInfo.version}. Remove the old <script> and <link> tags loading CKEditor 5 to allow loading the ${version} version.`\n );\n }\n break;\n }\n }\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createCKCdnPremiumBundlePack({\n version,\n translations,\n createCustomCdnUrl = createCKCdnUrl\n}) {\n const urls = {\n scripts: [\n // Load the main script of the premium features.\n createCustomCdnUrl(\"ckeditor5-premium-features\", \"ckeditor5-premium-features.umd.js\", version),\n // Load all JavaScript files from the premium features.\n // EN bundle is prebuilt into the main script, so we don't need to load it separately.\n ...without([\"en\"], translations || []).map(\n (translation) => createCustomCdnUrl(\"ckeditor5-premium-features\", `translations/${translation}.umd.js`, version)\n )\n ],\n stylesheets: [\n createCustomCdnUrl(\"ckeditor5-premium-features\", \"ckeditor5-premium-features.css\", version)\n ]\n };\n return {\n // Preload resources specified in the pack, before loading the main script.\n preload: [\n ...urls.stylesheets,\n ...urls.scripts\n ],\n scripts: [\n // It's safe to load translations and the main script in parallel.\n async (attributes) => injectScriptsInParallel(urls.scripts, attributes)\n ],\n // Load all stylesheets of the premium features.\n stylesheets: urls.stylesheets,\n // Pick the exported global variables from the window object.\n checkPluginLoaded: async () => waitForWindowEntry([\"CKEDITOR_PREMIUM_FEATURES\"])\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nasync function loadCKCdnResourcesPack(pack) {\n let {\n htmlAttributes = {},\n scripts = [],\n stylesheets = [],\n preload,\n beforeInject,\n checkPluginLoaded\n } = normalizeCKCdnResourcesPack(pack);\n beforeInject?.();\n if (!preload) {\n preload = uniq([\n ...stylesheets.filter((item) => typeof item === \"string\"),\n ...scripts.filter((item) => typeof item === \"string\")\n ]);\n }\n for (const url of preload) {\n preloadResource(url, {\n attributes: htmlAttributes\n });\n }\n await Promise.all(\n uniq(stylesheets).map((href) => injectStylesheet({\n href,\n attributes: htmlAttributes,\n placementInHead: \"start\"\n }))\n );\n for (const script of uniq(scripts)) {\n const injectorProps = {\n attributes: htmlAttributes\n };\n if (typeof script === \"string\") {\n await injectScript(script, injectorProps);\n } else {\n await script(injectorProps);\n }\n }\n return checkPluginLoaded?.();\n}\nfunction normalizeCKCdnResourcesPack(pack) {\n if (Array.isArray(pack)) {\n return {\n scripts: pack.filter(\n (item) => typeof item === \"function\" || item.endsWith(\".js\")\n ),\n stylesheets: pack.filter(\n (item) => item.endsWith(\".css\")\n )\n };\n }\n if (typeof pack === \"function\") {\n return {\n checkPluginLoaded: pack\n };\n }\n return pack;\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction combineCKCdnBundlesPacks(packs) {\n const normalizedPacks = mapObjectValues(\n filterBlankObjectValues(packs),\n normalizeCKCdnResourcesPack\n );\n const mergedPacks = Object.values(normalizedPacks).reduce(\n (acc, pack) => {\n acc.scripts.push(...pack.scripts ?? []);\n acc.stylesheets.push(...pack.stylesheets ?? []);\n acc.preload.push(...pack.preload ?? []);\n return acc;\n },\n {\n preload: [],\n scripts: [],\n stylesheets: []\n }\n );\n const checkPluginLoaded = async () => {\n const exportedGlobalVariables = /* @__PURE__ */ Object.create(null);\n for (const [name, pack] of Object.entries(normalizedPacks)) {\n exportedGlobalVariables[name] = await pack?.checkPluginLoaded?.();\n }\n return exportedGlobalVariables;\n };\n const beforeInject = () => {\n for (const pack of Object.values(normalizedPacks)) {\n pack.beforeInject?.();\n }\n };\n return {\n ...mergedPacks,\n beforeInject,\n checkPluginLoaded\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction getCKBoxInstallationInfo() {\n const version = window.CKBox?.version;\n if (!isSemanticVersion(version)) {\n return null;\n }\n return {\n source: \"cdn\",\n version\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction createCKBoxBundlePack({\n version,\n theme = \"lark\",\n translations,\n createCustomCdnUrl = createCKBoxCdnUrl\n}) {\n return {\n // Load the main script of the base features.\n scripts: [\n createCustomCdnUrl(\"ckbox\", \"ckbox.js\", version),\n // EN bundle is prebuilt into the main script, so we don't need to load it separately.\n ...without([\"en\"], translations || []).map(\n (translation) => createCustomCdnUrl(\"ckbox\", `translations/${translation}.js`, version)\n )\n ],\n // Load optional theme, if provided. It's not required but recommended because it improves the look and feel.\n ...theme && {\n stylesheets: [\n createCustomCdnUrl(\"ckbox\", `styles/themes/${theme}.css`, version)\n ]\n },\n // Pick the exported global variables from the window object.\n checkPluginLoaded: async () => waitForWindowEntry([\"CKBox\"]),\n // Check if the CKBox bundle is already loaded and throw an error if it is.\n beforeInject: () => {\n const installationInfo = getCKBoxInstallationInfo();\n if (installationInfo && installationInfo.version !== version) {\n throw new Error(\n `CKBox is already loaded from CDN in version ${installationInfo.version}. Remove the old <script> and <link> tags loading CKBox to allow loading the ${version} version.`\n );\n }\n }\n };\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction isCKCdnSupportedByEditorVersion(version) {\n if (isCKCdnTestingVersion(version)) {\n return true;\n }\n const { major } = destructureSemanticVersion(version);\n const licenseVersion = getLicenseVersionFromEditorVersion(version);\n switch (licenseVersion) {\n case 3:\n return true;\n default:\n return major === 43;\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction combineCdnPluginsPacks(pluginsPacks) {\n const normalizedPluginsPacks = mapObjectValues(pluginsPacks, (pluginPack, pluginName) => {\n if (!pluginPack) {\n return void 0;\n }\n const normalizedPluginPack = normalizeCKCdnResourcesPack(pluginPack);\n return {\n // Provide default window accessor object if the plugin pack does not define it.\n checkPluginLoaded: async () => waitForWindowEntry([pluginName]),\n // Transform the plugin pack to a normalized advanced pack.\n ...normalizedPluginPack\n };\n });\n return combineCKCdnBundlesPacks(\n normalizedPluginsPacks\n );\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nfunction loadCKEditorCloud(config) {\n const {\n version,\n translations,\n plugins,\n premium,\n ckbox,\n createCustomCdnUrl,\n injectedHtmlElementsAttributes = {\n crossorigin: \"anonymous\"\n }\n } = config;\n validateCKEditorVersion(version);\n const pack = combineCKCdnBundlesPacks({\n CKEditor: createCKCdnBaseBundlePack({\n version,\n translations,\n createCustomCdnUrl\n }),\n ...premium && {\n CKEditorPremiumFeatures: createCKCdnPremiumBundlePack({\n version,\n translations,\n createCustomCdnUrl\n })\n },\n ...ckbox && {\n CKBox: createCKBoxBundlePack(ckbox)\n },\n loadedPlugins: combineCdnPluginsPacks(plugins ?? {})\n });\n return loadCKCdnResourcesPack(\n {\n ...pack,\n htmlAttributes: injectedHtmlElementsAttributes\n }\n );\n}\nfunction validateCKEditorVersion(version) {\n if (isCKCdnTestingVersion(version)) {\n console.warn(\n \"You are using a testing version of CKEditor 5. Please remember that it is not suitable for production environments.\"\n );\n }\n if (!isCKCdnSupportedByEditorVersion(version)) {\n throw new Error(\n `The CKEditor 5 CDN can't be used with the given editor version: ${version}. Please make sure you are using at least the CKEditor 5 version 44.`\n );\n }\n}\n\nexport { CKBOX_CDN_URL, CK_CDN_URL, INJECTED_SCRIPTS, INJECTED_STYLESHEETS, appendExtraPluginsToEditorConfig, createCKBoxCdnUrl, createCKCdnUrl, createDefer, createIntegrationUsageDataPlugin, filterBlankObjectValues, filterObjectValues, injectScript, injectScriptsInParallel, injectStylesheet, isCKEditorFreeLicense, isSSR, loadCKEditorCloud, mapObjectValues, once, overwriteArray, overwriteObject, preloadResource, shallowCompareArrays, uid, uniq, waitFor, waitForWindowEntry, without };\n//# sourceMappingURL=index.js.map\n","import * as Vue from \"vue\";\nimport { version, defineComponent, mergeModels, useModel, ref, watch, onMounted, markRaw, onBeforeUnmount, openBlock, createBlock, resolveDynamicComponent, computed, watchEffect, shallowReadonly, toValue } from \"vue\";\nimport { debounce } from \"lodash-es\";\nimport { createIntegrationUsageDataPlugin, isCKEditorFreeLicense, appendExtraPluginsToEditorConfig, uid, loadCKEditorCloud } from \"@ckeditor/ckeditor5-integrations-common\";\nimport { loadCKEditorCloud as loadCKEditorCloud2 } from \"@ckeditor/ckeditor5-integrations-common\";\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nconst VueIntegrationUsageDataPlugin = createIntegrationUsageDataPlugin(\n \"vue\",\n {\n version: \"7.3.0\",\n frameworkVersion: version\n }\n);\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nfunction appendAllIntegrationPluginsToConfig(editorConfig) {\n if (isCKEditorFreeLicense(editorConfig.licenseKey)) {\n return editorConfig;\n }\n return appendExtraPluginsToEditorConfig(editorConfig, [\n /**\n * This part of the code is not executed in open-source implementations using a GPL key.\n * It only runs when a specific license key is provided. If you are uncertain whether\n * this applies to your installation, please contact our support team.\n */\n VueIntegrationUsageDataPlugin\n ]);\n}\nconst VUE_INTEGRATION_READ_ONLY_LOCK_ID = \"Lock from Vue integration (@ckeditor/ckeditor5-vue)\";\nconst INPUT_EVENT_DEBOUNCE_WAIT = 300;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n name: \"CKEditor\"\n },\n __name: \"ckeditor\",\n props: /* @__PURE__ */ mergeModels({\n editor: {},\n config: { default: () => ({}) },\n tagName: { default: \"div\" },\n disabled: { type: Boolean, default: false },\n disableTwoWayDataBinding: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: String, default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"ready\", \"destroy\", \"blur\", \"focus\", \"input\", \"update:modelValue\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const model = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n const element = ref();\n const instance = ref();\n const lastEditorData = ref();\n __expose({\n instance,\n lastEditorData\n });\n watch(model, (newModel) => {\n if (instance.value && newModel !== lastEditorData.value) {\n instance.value.data.set(newModel);\n }\n });\n watch(() => props.disabled, (readOnlyMode) => {\n if (readOnlyMode) {\n instance.value.enableReadOnlyMode(VUE_INTEGRATION_READ_ONLY_LOCK_ID);\n } else {\n instance.value.disableReadOnlyMode(VUE_INTEGRATION_READ_ONLY_LOCK_ID);\n }\n });\n function checkVersion() {\n const version2 = window.CKEDITOR_VERSION;\n if (!version2) {\n return console.warn('Cannot find the \"CKEDITOR_VERSION\" in the \"window\" scope.');\n }\n const [major] = version2.split(\".\").map(Number);\n if (major >= 42 || version2.startsWith(\"0.0.0\")) {\n return;\n }\n console.warn(\"The <CKEditor> component requires using CKEditor 5 in version 42+ or nightly build.\");\n }\n function setUpEditorEvents(editor) {\n const emitDebouncedInputEvent = debounce((evt) => {\n if (props.disableTwoWayDataBinding) {\n return;\n }\n const data = lastEditorData.value = editor.data.get();\n emit(\"update:modelValue\", data, evt, editor);\n emit(\"input\", data, evt, editor);\n }, INPUT_EVENT_DEBOUNCE_WAIT, { leading: true });\n editor.model.document.on(\"change:data\", emitDebouncedInputEvent);\n editor.editing.view.document.on(\"focus\", (evt) => {\n emit(\"focus\", evt, editor);\n });\n editor.editing.view.document.on(\"blur\", (evt) => {\n emit(\"blur\", evt, editor);\n });\n }\n checkVersion();\n onMounted(() => {\n const editorConfig = appendAllIntegrationPluginsToConfig(\n Object.assign({}, props.config)\n );\n if (model.value) {\n editorConfig.initialData = model.value;\n }\n props.editor.create(element.value, editorConfig).then((editor) => {\n instance.value = markRaw(editor);\n setUpEditorEvents(editor);\n if (model.value !== editorConfig.initialData) {\n editor.data.set(model.value);\n }\n if (props.disabled) {\n editor.enableReadOnlyMode(VUE_INTEGRATION_READ_ONLY_LOCK_ID);\n }\n emit(\"ready\", editor);\n }).catch((error) => {\n console.error(error);\n });\n });\n onBeforeUnmount(() => {\n if (instance.value) {\n instance.value.destroy();\n instance.value = void 0;\n }\n emit(\"destroy\");\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(_ctx.tagName), {\n ref_key: \"element\",\n ref: element\n }, null, 512);\n };\n }\n});\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nconst useAsync = (asyncFunc) => {\n const lastQueryUUID = ref(null);\n const error = ref(null);\n const data = ref(null);\n const loading = computed(() => lastQueryUUID.value !== null);\n watchEffect(async () => {\n const currentQueryUID = uid();\n lastQueryUUID.value = currentQueryUID;\n data.value = null;\n error.value = null;\n const shouldDiscardQuery = () => lastQueryUUID.value !== currentQueryUID;\n try {\n const result = await asyncFunc();\n if (!shouldDiscardQuery()) {\n data.value = result;\n }\n } catch (err) {\n if (!shouldDiscardQuery()) {\n error.value = err;\n }\n } finally {\n if (!shouldDiscardQuery()) {\n lastQueryUUID.value = null;\n }\n }\n });\n return {\n loading: shallowReadonly(loading),\n data: shallowReadonly(data),\n error: shallowReadonly(error)\n };\n};\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nfunction useCKEditorCloud(config) {\n return useAsync(\n () => loadCKEditorCloud(\n toValue(config)\n )\n );\n}\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n/* istanbul ignore if -- @preserve */\nif (!Vue.version || !Vue.version.startsWith(\"3.\")) {\n throw new Error(\n \"The CKEditor plugin works only with Vue 3+. For more information, please refer to https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/vuejs-v3.html\"\n );\n}\nconst CkeditorPlugin = {\n /**\n * Installs the plugin, registering the `<ckeditor>` component.\n *\n * @param app The application instance.\n */\n install(app) {\n app.component(\"Ckeditor\", _sfc_main);\n }\n};\nexport {\n _sfc_main as Ckeditor,\n CkeditorPlugin,\n loadCKEditorCloud2 as loadCKEditorCloud,\n useCKEditorCloud\n};\n//# sourceMappingURL=ckeditor.js.map\n","function isPluralType(val) {\n return val.one !== undefined;\n}\n\nconst formatDistanceLocale = {\n lessThanXSeconds: {\n present: {\n one: \"manj kot {{count}} sekunda\",\n two: \"manj kot {{count}} sekundi\",\n few: \"manj kot {{count}} sekunde\",\n other: \"manj kot {{count}} sekund\",\n },\n past: {\n one: \"manj kot {{count}} sekundo\",\n two: \"manj kot {{count}} sekundama\",\n few: \"manj kot {{count}} sekundami\",\n other: \"manj kot {{count}} sekundami\",\n },\n future: {\n one: \"manj kot {{count}} sekundo\",\n two: \"manj kot {{count}} sekundi\",\n few: \"manj kot {{count}} sekunde\",\n other: \"manj kot {{count}} sekund\",\n },\n },\n\n xSeconds: {\n present: {\n one: \"{{count}} sekunda\",\n two: \"{{count}} sekundi\",\n few: \"{{count}} sekunde\",\n other: \"{{count}} sekund\",\n },\n past: {\n one: \"{{count}} sekundo\",\n two: \"{{count}} sekundama\",\n few: \"{{count}} sekundami\",\n other: \"{{count}} sekundami\",\n },\n future: {\n one: \"{{count}} sekundo\",\n two: \"{{count}} sekundi\",\n few: \"{{count}} sekunde\",\n other: \"{{count}} sekund\",\n },\n },\n\n halfAMinute: \"pol minute\",\n\n lessThanXMinutes: {\n present: {\n one: \"manj kot {{count}} minuta\",\n two: \"manj kot {{count}} minuti\",\n few: \"manj kot {{count}} minute\",\n other: \"manj kot {{count}} minut\",\n },\n past: {\n one: \"manj kot {{count}} minuto\",\n two: \"manj kot {{count}} minutama\",\n few: \"manj kot {{count}} minutami\",\n other: \"manj kot {{count}} minutami\",\n },\n future: {\n one: \"manj kot {{count}} minuto\",\n two: \"manj kot {{count}} minuti\",\n few: \"manj kot {{count}} minute\",\n other: \"manj kot {{count}} minut\",\n },\n },\n\n xMinutes: {\n present: {\n one: \"{{count}} minuta\",\n two: \"{{count}} minuti\",\n few: \"{{count}} minute\",\n other: \"{{count}} minut\",\n },\n past: {\n one: \"{{count}} minuto\",\n two: \"{{count}} minutama\",\n few: \"{{count}} minutami\",\n other: \"{{count}} minutami\",\n },\n future: {\n one: \"{{count}} minuto\",\n two: \"{{count}} minuti\",\n few: \"{{count}} minute\",\n other: \"{{count}} minut\",\n },\n },\n\n aboutXHours: {\n present: {\n one: \"približno {{count}} ura\",\n two: \"približno {{count}} uri\",\n few: \"približno {{count}} ure\",\n other: \"približno {{count}} ur\",\n },\n past: {\n one: \"približno {{count}} uro\",\n two: \"približno {{count}} urama\",\n few: \"približno {{count}} urami\",\n other: \"približno {{count}} urami\",\n },\n future: {\n one: \"približno {{count}} uro\",\n two: \"približno {{count}} uri\",\n few: \"približno {{count}} ure\",\n other: \"približno {{count}} ur\",\n },\n },\n\n xHours: {\n present: {\n one: \"{{count}} ura\",\n two: \"{{count}} uri\",\n few: \"{{count}} ure\",\n other: \"{{count}} ur\",\n },\n past: {\n one: \"{{count}} uro\",\n two: \"{{count}} urama\",\n few: \"{{count}} urami\",\n other: \"{{count}} urami\",\n },\n future: {\n one: \"{{count}} uro\",\n two: \"{{count}} uri\",\n few: \"{{count}} ure\",\n other: \"{{count}} ur\",\n },\n },\n\n xDays: {\n present: {\n one: \"{{count}} dan\",\n two: \"{{count}} dni\",\n few: \"{{count}} dni\",\n other: \"{{count}} dni\",\n },\n past: {\n one: \"{{count}} dnem\",\n two: \"{{count}} dnevoma\",\n few: \"{{count}} dnevi\",\n other: \"{{count}} dnevi\",\n },\n future: {\n one: \"{{count}} dan\",\n two: \"{{count}} dni\",\n few: \"{{count}} dni\",\n other: \"{{count}} dni\",\n },\n },\n\n // no tenses for weeks?\n aboutXWeeks: {\n one: \"približno {{count}} teden\",\n two: \"približno {{count}} tedna\",\n few: \"približno {{count}} tedne\",\n other: \"približno {{count}} tednov\",\n },\n\n // no tenses for weeks?\n xWeeks: {\n one: \"{{count}} teden\",\n two: \"{{count}} tedna\",\n few: \"{{count}} tedne\",\n other: \"{{count}} tednov\",\n },\n\n aboutXMonths: {\n present: {\n one: \"približno {{count}} mesec\",\n two: \"približno {{count}} meseca\",\n few: \"približno {{count}} mesece\",\n other: \"približno {{count}} mesecev\",\n },\n past: {\n one: \"približno {{count}} mesecem\",\n two: \"približno {{count}} mesecema\",\n few: \"približno {{count}} meseci\",\n other: \"približno {{count}} meseci\",\n },\n future: {\n one: \"približno {{count}} mesec\",\n two: \"približno {{count}} meseca\",\n few: \"približno {{count}} mesece\",\n other: \"približno {{count}} mesecev\",\n },\n },\n\n xMonths: {\n present: {\n one: \"{{count}} mesec\",\n two: \"{{count}} meseca\",\n few: \"{{count}} meseci\",\n other: \"{{count}} mesecev\",\n },\n past: {\n one: \"{{count}} mesecem\",\n two: \"{{count}} mesecema\",\n few: \"{{count}} meseci\",\n other: \"{{count}} meseci\",\n },\n future: {\n one: \"{{count}} mesec\",\n two: \"{{count}} meseca\",\n few: \"{{count}} mesece\",\n other: \"{{count}} mesecev\",\n },\n },\n\n aboutXYears: {\n present: {\n one: \"približno {{count}} leto\",\n two: \"približno {{count}} leti\",\n few: \"približno {{count}} leta\",\n other: \"približno {{count}} let\",\n },\n past: {\n one: \"približno {{count}} letom\",\n two: \"približno {{count}} letoma\",\n few: \"približno {{count}} leti\",\n other: \"približno {{count}} leti\",\n },\n future: {\n one: \"približno {{count}} leto\",\n two: \"približno {{count}} leti\",\n few: \"približno {{count}} leta\",\n other: \"približno {{count}} let\",\n },\n },\n\n xYears: {\n present: {\n one: \"{{count}} leto\",\n two: \"{{count}} leti\",\n few: \"{{count}} leta\",\n other: \"{{count}} let\",\n },\n past: {\n one: \"{{count}} letom\",\n two: \"{{count}} letoma\",\n few: \"{{count}} leti\",\n other: \"{{count}} leti\",\n },\n future: {\n one: \"{{count}} leto\",\n two: \"{{count}} leti\",\n few: \"{{count}} leta\",\n other: \"{{count}} let\",\n },\n },\n\n overXYears: {\n present: {\n one: \"več kot {{count}} leto\",\n two: \"več kot {{count}} leti\",\n few: \"več kot {{count}} leta\",\n other: \"več kot {{count}} let\",\n },\n past: {\n one: \"več kot {{count}} letom\",\n two: \"več kot {{count}} letoma\",\n few: \"več kot {{count}} leti\",\n other: \"več kot {{count}} leti\",\n },\n future: {\n one: \"več kot {{count}} leto\",\n two: \"več kot {{count}} leti\",\n few: \"več kot {{count}} leta\",\n other: \"več kot {{count}} let\",\n },\n },\n\n almostXYears: {\n present: {\n one: \"skoraj {{count}} leto\",\n two: \"skoraj {{count}} leti\",\n few: \"skoraj {{count}} leta\",\n other: \"skoraj {{count}} let\",\n },\n past: {\n one: \"skoraj {{count}} letom\",\n two: \"skoraj {{count}} letoma\",\n few: \"skoraj {{count}} leti\",\n other: \"skoraj {{count}} leti\",\n },\n future: {\n one: \"skoraj {{count}} leto\",\n two: \"skoraj {{count}} leti\",\n few: \"skoraj {{count}} leta\",\n other: \"skoraj {{count}} let\",\n },\n },\n};\n\nfunction getFormFromCount(count) {\n switch (count % 100) {\n case 1:\n return \"one\";\n case 2:\n return \"two\";\n case 3:\n case 4:\n return \"few\";\n default:\n return \"other\";\n }\n}\n\nexport const formatDistance = (token, count, options) => {\n let result = \"\";\n let tense = \"present\";\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n tense = \"future\";\n result = \"čez \";\n } else {\n tense = \"past\";\n result = \"pred \";\n }\n }\n\n const tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === \"string\") {\n result += tokenValue;\n } else {\n const form = getFormFromCount(count);\n if (isPluralType(tokenValue)) {\n result += tokenValue[form].replace(\"{{count}}\", String(count));\n } else {\n result += tokenValue[tense][form].replace(\"{{count}}\", String(count));\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, dd. MMMM y\",\n long: \"dd. MMMM y\",\n medium: \"d. MMM y\",\n short: \"d. MM. yy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} {{time}}\",\n long: \"{{date}} {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const day = date.getDay();\n\n switch (day) {\n case 0:\n return \"'prejšnjo nedeljo ob' p\";\n case 3:\n return \"'prejšnjo sredo ob' p\";\n case 6:\n return \"'prejšnjo soboto ob' p\";\n default:\n return \"'prejšnji' EEEE 'ob' p\";\n }\n },\n yesterday: \"'včeraj ob' p\",\n today: \"'danes ob' p\",\n tomorrow: \"'jutri ob' p\",\n nextWeek: (date) => {\n const day = date.getDay();\n\n switch (day) {\n case 0:\n return \"'naslednjo nedeljo ob' p\";\n case 3:\n return \"'naslednjo sredo ob' p\";\n case 6:\n return \"'naslednjo soboto ob' p\";\n default:\n return \"'naslednji' EEEE 'ob' p\";\n }\n },\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"pr. n. št.\", \"po n. št.\"],\n abbreviated: [\"pr. n. št.\", \"po n. št.\"],\n wide: [\"pred našim štetjem\", \"po našem štetju\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"1. čet.\", \"2. čet.\", \"3. čet.\", \"4. čet.\"],\n wide: [\"1. četrtletje\", \"2. četrtletje\", \"3. četrtletje\", \"4. četrtletje\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mar.\",\n \"apr.\",\n \"maj\",\n \"jun.\",\n \"jul.\",\n \"avg.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"dec.\",\n ],\n\n wide: [\n \"januar\",\n \"februar\",\n \"marec\",\n \"april\",\n \"maj\",\n \"junij\",\n \"julij\",\n \"avgust\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"n\", \"p\", \"t\", \"s\", \"č\", \"p\", \"s\"],\n short: [\"ned.\", \"pon.\", \"tor.\", \"sre.\", \"čet.\", \"pet.\", \"sob.\"],\n abbreviated: [\"ned.\", \"pon.\", \"tor.\", \"sre.\", \"čet.\", \"pet.\", \"sob.\"],\n\n wide: [\n \"nedelja\",\n \"ponedeljek\",\n \"torek\",\n \"sreda\",\n \"četrtek\",\n \"petek\",\n \"sobota\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"d\",\n pm: \"p\",\n midnight: \"24.00\",\n noon: \"12.00\",\n morning: \"j\",\n afternoon: \"p\",\n evening: \"v\",\n night: \"n\",\n },\n abbreviated: {\n am: \"dop.\",\n pm: \"pop.\",\n midnight: \"poln.\",\n noon: \"pold.\",\n morning: \"jut.\",\n afternoon: \"pop.\",\n evening: \"več.\",\n night: \"noč\",\n },\n wide: {\n am: \"dop.\",\n pm: \"pop.\",\n midnight: \"polnoč\",\n noon: \"poldne\",\n morning: \"jutro\",\n afternoon: \"popoldne\",\n evening: \"večer\",\n night: \"noč\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"d\",\n pm: \"p\",\n midnight: \"24.00\",\n noon: \"12.00\",\n morning: \"zj\",\n afternoon: \"p\",\n evening: \"zv\",\n night: \"po\",\n },\n abbreviated: {\n am: \"dop.\",\n pm: \"pop.\",\n midnight: \"opoln.\",\n noon: \"opold.\",\n morning: \"zjut.\",\n afternoon: \"pop.\",\n evening: \"zveč.\",\n night: \"ponoči\",\n },\n wide: {\n am: \"dop.\",\n pm: \"pop.\",\n midnight: \"opolnoči\",\n noon: \"opoldne\",\n morning: \"zjutraj\",\n afternoon: \"popoldan\",\n evening: \"zvečer\",\n night: \"ponoči\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\./i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n abbreviated: /^(pr\\. n\\. št\\.|po n\\. št\\.)/i,\n wide: /^(pred Kristusom|pred na[sš]im [sš]tetjem|po Kristusu|po na[sš]em [sš]tetju|na[sš]ega [sš]tetja)/i,\n};\nconst parseEraPatterns = {\n any: [/^pr/i, /^(po|na[sš]em)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]\\.\\s?[čc]et\\.?/i,\n wide: /^[1234]\\. [čc]etrtletje/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated:\n /^(jan\\.|feb\\.|mar\\.|apr\\.|maj|jun\\.|jul\\.|avg\\.|sep\\.|okt\\.|nov\\.|dec\\.)/i,\n wide: /^(januar|februar|marec|april|maj|junij|julij|avgust|september|oktober|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n abbreviated: [\n /^ja/i,\n /^fe/i,\n /^mar/i,\n /^ap/i,\n /^maj/i,\n /^jun/i,\n /^jul/i,\n /^av/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n wide: [\n /^ja/i,\n /^fe/i,\n /^mar/i,\n /^ap/i,\n /^maj/i,\n /^jun/i,\n /^jul/i,\n /^av/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[nptsčc]/i,\n short: /^(ned\\.|pon\\.|tor\\.|sre\\.|[cč]et\\.|pet\\.|sob\\.)/i,\n abbreviated: /^(ned\\.|pon\\.|tor\\.|sre\\.|[cč]et\\.|pet\\.|sob\\.)/i,\n wide: /^(nedelja|ponedeljek|torek|sreda|[cč]etrtek|petek|sobota)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^t/i, /^s/i, /^[cč]/i, /^p/i, /^s/i],\n any: [/^n/i, /^po/i, /^t/i, /^sr/i, /^[cč]/i, /^pe/i, /^so/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(d|po?|z?v|n|z?j|24\\.00|12\\.00)/i,\n any: /^(dop\\.|pop\\.|o?poln(\\.|o[cč]i?)|o?pold(\\.|ne)|z?ve[cč](\\.|er)|(po)?no[cč]i?|popold(ne|an)|jut(\\.|ro)|zjut(\\.|raj))/i,\n};\nconst parseDayPeriodPatterns = {\n narrow: {\n am: /^d/i,\n pm: /^p/i,\n midnight: /^24/i,\n noon: /^12/i,\n morning: /^(z?j)/i,\n afternoon: /^p/i,\n evening: /^(z?v)/i,\n night: /^(n|po)/i,\n },\n any: {\n am: /^dop\\./i,\n pm: /^pop\\./i,\n midnight: /^o?poln/i,\n noon: /^o?pold/i,\n morning: /j/i,\n afternoon: /^pop\\./i,\n evening: /^z?ve/i,\n night: /(po)?no/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"wide\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./sl/_lib/formatDistance.js\";\nimport { formatLong } from \"./sl/_lib/formatLong.js\";\nimport { formatRelative } from \"./sl/_lib/formatRelative.js\";\nimport { localize } from \"./sl/_lib/localize.js\";\nimport { match } from \"./sl/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Slovenian locale.\n * @language Slovenian\n * @iso-639-2 slv\n * @author Adam Stradovnik [@Neoglyph](https://github.com/Neoglyph)\n * @author Mato Žgajner [@mzgajner](https://github.com/mzgajner)\n */\nexport const sl = {\n code: \"sl\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default sl;\n","import { Locale } from 'date-fns';\nimport { sl } from 'date-fns/locale/sl'; // eslint-disable-line import/extensions\nimport { isRef, ref, Ref } from 'vue';\n\nexport const DateTimeLocaleConfig = {\n dateTimeLocale: ref(sl),\n setDateTimeLocale(locale: Locale | Ref<Locale>) {\n if (isRef(locale)) {\n this.dateTimeLocale = locale;\n } else {\n this.dateTimeLocale.value = locale;\n }\n },\n};\n","<template>\n <messages-widget :message=\"widgetMessage\" :classes=\"widgetClasses\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { ClassTypes, MessagesWidget, ValidationError } from '@dynamicforms/vue-forms';\nimport { computed } from 'vue';\n\ninterface Props {\n errors?: string | ValidationError[];\n message?: string | ValidationError[];\n errorClasses?: ClassTypes;\n messageClasses?: ClassTypes;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n errors: '',\n message: '',\n errorClasses: 'text-error',\n messageClasses: '',\n});\n\nconst isError = computed(() => {\n if (props.errors) {\n if (typeof props.errors === 'string') {\n return props.errors.trim().length > 0;\n }\n return props.errors.length > 0;\n }\n return false;\n});\n\nconst widgetMessage = computed(() => {\n return isError.value ? props.errors : props.message;\n});\n\nconst widgetClasses = computed(() => {\n return isError.value ? props.errorClasses : props.messageClasses;\n});\n</script>\n\n<style scoped></style>\n","<template>\n <div class=\"df-label\" :class=\"{ 'allow-wrap': allowWrap }\">\n <template v-if=\"label.icon\">\n <cached-icon v-if=\"label.iconComponent === 'v-icon'\" :name=\"label.icon\" size=\"1.25em\" />\n <v-img v-else-if=\"label.iconComponent === 'v-img'\" class=\"icon\" :src=\"label.icon\" />\n <component :is=\"label.iconComponent\" v-else :src=\"label.icon\" />\n </template>\n <vue-markdown\n v-if=\"lbl instanceof MdString\"\n class=\"markdown\"\n :source=\"lbl.toString()\"\n :options=\"lbl.options\"\n :plugins=\"lbl.plugins\"\n />\n <template v-else>{{ lbl }}</template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { MdString } from '@dynamicforms/vue-forms';\nimport { computed } from 'vue';\nimport { CachedIcon } from 'vue-cached-icon';\nimport VueMarkdown from 'vue-markdown-render';\nimport { DefaultInputSlot } from 'vuetify/lib/components/VField/VField';\n\nimport { Label } from './input-base';\n\nconst props = defineProps<{\n data?: DefaultInputSlot & { label?: string | MdString };\n label: Label;\n allowWrap?: boolean;\n}>();\n\nconst lbl = computed(() => (props.data ? props.data.label : props.label.text));\n</script>\n\n<style>\n.df-label {\n display: flex;\n align-items: center;\n gap: 2px;\n white-space: nowrap;\n justify-content: flex-start;\n}\n\n.df-label.allow-wrap {\n white-space: initial;\n}\n\n.df-label .icon {\n width: 1.25em;\n}\n\n.df-label .markdown :first-child,\n.df-label .markdown :last-child {\n margin-top: 0 !important;\n padding-top: 0 !important;\n margin-bottom: 0 !important;\n padding-bottom: 0 !important;\n line-height: 1.35em !important; /* inspired by vitepress' aggressive settings */\n}\n</style>\n","import { FieldDensity, type FieldVariant } from '@/helpers/input-base';\n\nexport interface VuetifyInputsSettings {\n defaultVariant?: FieldVariant;\n defaultDensity?: FieldDensity;\n}\n\nexport const vuetifyInputsSettingsKey = Symbol('vuetifyInputsSettingsKey');\n","import Form, { MdString, ValidationErrorRenderContent } from '@dynamicforms/vue-forms';\nimport { isEmpty, isString } from 'lodash-es';\nimport { computed, inject, ref } from 'vue';\n\nimport { VuetifyInputsSettings, vuetifyInputsSettingsKey } from './settings';\n\nexport class Label {\n constructor(\n public text: string,\n public icon?: string,\n public iconComponent: string = 'v-icon',\n ) {}\n}\n\nexport type FieldVariant = 'outlined' | 'plain' | 'underlined' | 'filled' | 'solo' | 'solo-inverted' | 'solo-filled';\nexport type VuetifyDensity = 'default' | 'comfortable' | 'compact';\nexport type FieldDensity = 'default' | 'comfortable' | 'compact' | 'inline';\n\nexport interface BaseProps<T = any> {\n control?: Form.IField<T>;\n modelValue?: T;\n label?: string | Label | MdString;\n errors?: string[];\n placeholder?: string;\n helpText?: string;\n hint?: string;\n enabled?: boolean;\n visibility?: Form.DisplayMode;\n cssClass?: string;\n clearable?: boolean;\n passthroughAttrs?: Record<string, any>;\n density?: FieldDensity;\n variant?: FieldVariant;\n}\n\nexport const defaultBaseProps = { enabled: undefined, clearable: true };\n\nexport interface BaseEmits<T = any> {\n (e: 'update:modelValue', value: T): void;\n (e: 'click:clear'): void;\n}\n\nexport function useInputBase<T = any>(props: BaseProps<T>, emit: BaseEmits<T>) {\n const settings = inject<VuetifyInputsSettings>(vuetifyInputsSettingsKey, {});\n const internalValue = ref<T | null>(null);\n\n const value = computed({\n get(): T {\n if (props.control) return props.control.value as T;\n if (props.modelValue === undefined) return internalValue.value as T;\n return props.modelValue as T;\n },\n set(newValue: T) {\n if (props.control) props.control.value = newValue;\n if (props.modelValue === undefined) internalValue.value = newValue;\n emit('update:modelValue', newValue);\n },\n });\n\n if (props.control && !(props.control instanceof Form.FieldBase)) {\n throw new Error('control prop is not a vue-form control instance');\n }\n\n const controlTouch = computed({\n get() {\n return props.control!.touched;\n },\n set(val: boolean) {\n props.control!.touched = val;\n },\n });\n const touched = props.control ? controlTouch : ref(false);\n const valid = computed(() => (props.control ? props.control.valid : true));\n const errors = computed(() =>\n props.control ? props.control.errors : (props.errors || []).map((error) => new ValidationErrorRenderContent(error)),\n );\n const anyErrors = computed(() => (touched.value && errors.value.length > 0 ? ' ' : undefined));\n const showErrors = computed(() => (touched.value ? errors.value : undefined));\n const enabled = computed(() => (props.control ? props.control.enabled : props.enabled !== false));\n const visibility = computed(() =>\n props.control ? props.control.visibility : props.visibility || Form.DisplayMode.FULL,\n );\n const label = computed(\n (): Label => (isString(props.label || '') ? new Label(<string>props.label || '') : <Label>props.label),\n );\n const placeholder = computed(() => props.placeholder || '');\n const helpText = computed(() => props.helpText || '');\n const hint = computed(() => props.hint || '');\n const cssClass = computed(() => props.cssClass || '');\n\n const density = computed(\n (): FieldDensity => props.density ?? inject('field-density', null) ?? settings.defaultDensity ?? 'default',\n );\n const boundDensity = computed((): VuetifyDensity => (density.value === 'inline' ? 'default' : density.value));\n const variant = computed(\n (): FieldVariant => props.variant ?? inject('field-variant', null) ?? settings.defaultVariant ?? 'underlined',\n );\n\n return {\n value,\n valid,\n enabled,\n errors,\n showErrors,\n visibility,\n label,\n touched,\n density: density.value,\n densityClass: computed(() => `df-density-${density.value}`),\n\n vuetifyBindings: computed(() => ({\n name: props.control?.fieldName,\n class: cssClass.value,\n\n density: boundDensity.value,\n variant: variant.value,\n\n label: label.value.text,\n errorMessages: anyErrors.value,\n // 'error-count': errors?.value.length || 0,\n readonly: !enabled.value,\n disabled: !enabled.value,\n\n placeholder: placeholder.value,\n 'persistent-placeholder': !isEmpty(placeholder.value),\n\n hint: hint.value,\n persistentHint: true, // we want persistent hint always\n hideDetails: <boolean | 'auto' | undefined>'auto', // we want to hide the hint element when hint isn't there\n helpText: helpText.value,\n\n ...(props.passthroughAttrs || {}),\n })),\n };\n}\n","<template>\n <v-input\n v-if=\"visibility !== DisplayMode.SUPPRESS\"\n :name=\"vuetifyBindings.name\"\n :density=\"vuetifyBindings.density\"\n :hint=\"vuetifyBindings.hint\"\n :persistent-hint=\"vuetifyBindings.persistentHint\"\n :hide-details=\"vuetifyBindings.hideDetails\"\n :error-messages=\"vuetifyBindings.errorMessages\"\n :class=\"[\n cssClass,\n {\n 'd-none': visibility === DisplayMode.HIDDEN,\n invisible: visibility === DisplayMode.INVISIBLE,\n },\n ]\"\n >\n <v-field\n :variant=\"vuetifyBindings.variant\"\n :density=\"vuetifyBindings.density\"\n :label=\"vuetifyBindings.label\"\n :disabled=\"vuetifyBindings.disabled\"\n :clearable=\"isClearable\"\n :persistent-clear=\"true\"\n :dirty=\"!!value\"\n :active=\"focused\"\n :loading=\"loading\"\n @click:clear=\"emits('click:clear')\"\n @update:focused=\"(isFocused) => setFocused(isFocused)\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #default=\"slotProps\">\n <div class=\"d-flex w-100 df-style-resetting\"><slot v-bind=\"slotProps\" /></div>\n </template>\n <template #loader=\"loaderProps\"><slot name=\"loader\" v-bind=\"loaderProps\" /></template>\n <template v-if=\"$slots['prepend-inner']\" #prepend-inner=\"prependInnerProps\">\n <slot name=\"prepend-inner\" v-bind=\"prependInnerProps\" />\n </template>\n </v-field>\n <template #message=\"{ message }\">\n <df-input-hint :message=\"message\" :errors=\"showErrors\" />\n </template>\n <template v-if=\"$slots.prepend\" #prepend=\"prependProps\"><slot name=\"prepend\" v-bind=\"prependProps\" /></template>\n </v-input>\n</template>\n\n<script setup lang=\"ts\">\nimport { DisplayMode } from '@dynamicforms/vue-forms';\nimport { computed, ref, unref } from 'vue';\n\nimport DfInputHint from './df-input-hint.vue';\nimport DfLabel from './df-label.vue';\nimport { BaseEmits, BaseProps, useInputBase } from './input-base';\n\nconst props = defineProps<BaseProps & { loading?: boolean }>();\nconst emits = defineEmits<BaseEmits & { (e: 'blur'): void }>();\n\nconst { label, showErrors, touched, value, visibility, vuetifyBindings } = useInputBase(props, emits);\n\nconst isClearable = computed(() => !!(unref(props.clearable) && unref(value)));\nconst focused = ref<boolean>(false);\n\nfunction setFocused(isFocused: boolean) {\n focused.value = isFocused;\n if (!isFocused) {\n touched.value = true;\n emits('blur');\n }\n}\n</script>\n\n<style>\n.df-style-resetting .v-field__overlay {\n background-color: transparent;\n}\n.df-style-resetting .v-field__outline::before,\n.df-style-resetting .v-field__outline::after {\n content: none !important;\n}\n</style>\n","export const translatableStrings = {\n Yes: 'Yes',\n No: 'No',\n Close: 'Close',\n Paragraph: 'Paragraph',\n Heading1: 'Heading 1',\n Heading2: 'Heading 2',\n Heading3: 'Heading 3',\n Heading4: 'Heading 4',\n Heading5: 'Heading 5',\n Heading6: 'Heading 6',\n Downloadable: 'Downloadable',\n ArticleCategory: 'Article category',\n Title: 'Title',\n Subtitle: 'Subtitle',\n InfoBox: 'Info box',\n SideQuote: 'Side quote',\n Marker: 'Marker',\n Spoiler: 'Spoiler',\n CodeDark: 'Code (dark)',\n CodeBright: 'Code (bright)',\n};\n\nexport function translateStrings(translationCallback: (s: string) => string) {\n Object.keys(translatableStrings).forEach((key) => {\n const translation = translationCallback(key);\n if (translation != null) {\n translatableStrings[key as keyof typeof translatableStrings] = translation;\n }\n });\n}\n\nexport function setCkEditorLanguage(language: string, translations: any) {\n ckEditorLanguage.language = language;\n ckEditorLanguage.translations = translations;\n}\n\nexport const ckEditorLanguage = {\n language: 'en',\n translations: undefined,\n};\n","/**\n * DisplayMode enum provides an enumeration for supported ways of rendering a particular object in the DOM\n */\nenum ActionDisplayStyle {\n // This enum is actually declared in dynamicforms.action.py\n BUTTON = 0, // action should render as a button\n TEXT = 1, // action should render as a link text\n}\n\nexport const defaultDisplayStyle = ActionDisplayStyle.BUTTON;\n\n// eslint-disable-next-line @typescript-eslint/no-namespace, no-redeclare\nnamespace ActionDisplayStyle {\n export function fromString(mode: string): ActionDisplayStyle {\n if (mode.toUpperCase() === 'BUTTON') return ActionDisplayStyle.BUTTON;\n if (mode.toUpperCase() === 'TEXT') return ActionDisplayStyle.TEXT;\n return defaultDisplayStyle;\n }\n\n export function fromAny(mode: any): ActionDisplayStyle {\n const input = typeof mode === 'number' ? mode : ActionDisplayStyle.fromString(mode as string);\n if (Object.values(ActionDisplayStyle).includes(input)) return input;\n return defaultDisplayStyle;\n }\n\n export function isDefined(mode: number | string): boolean {\n const check = typeof mode === 'number' ? mode : ActionDisplayStyle.fromString(mode as string);\n return Object.values(ActionDisplayStyle).includes(check);\n }\n}\n\nObject.freeze(ActionDisplayStyle);\n\nexport { ActionDisplayStyle };\n","import { computed } from 'vue';\nimport { useDisplay } from 'vuetify';\n\nexport const responsiveBreakpoints = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\nexport type BreakpointNames = (typeof responsiveBreakpoints)[number];\nexport type BreakpointsJSON<T extends Record<string, any>> = T & Partial<Record<BreakpointNames, T>>;\n\nexport abstract class ResponsiveRenderOptions<T extends Record<string, any>> {\n protected readonly _value: BreakpointsJSON<T>;\n\n constructor(data?: BreakpointsJSON<T>) {\n this._value = this.cleanBreakpoint(data as T, true)!;\n if (data) {\n responsiveBreakpoints.forEach((bp) => {\n const options = this.cleanBreakpoint(data[bp]);\n if (options) this._value[bp] = options;\n });\n }\n }\n\n getOptionsForBreakpoint(breakpoint: BreakpointNames): T {\n const result = this.cleanBreakpoint(this._value as T) as BreakpointsJSON<T>;\n const fields = Object.keys(result);\n for (const bp of responsiveBreakpoints) {\n const bpData = this._value[bp];\n for (const field of fields) {\n if (bpData?.[field] != null) (<any>result)[field] = bpData[field];\n }\n if (bp === breakpoint) break;\n }\n return result;\n }\n\n protected abstract cleanBreakpoint(bp?: T, defaultIfEmpty?: boolean): T | null;\n}\n\nexport function getBreakpointName(dp: ReturnType<typeof useDisplay>): BreakpointNames {\n if (dp.xlAndUp.value) return 'xl';\n if (dp.lgAndUp.value) return 'lg';\n if (dp.mdAndUp.value) return 'md';\n if (dp.smAndUp.value) return 'sm';\n return 'xs';\n}\n\nexport function useBreakpoint() {\n const display = useDisplay();\n\n return computed<BreakpointNames>(() => getBreakpointName(display));\n}\n","import { ActionValue } from '@dynamicforms/vue-forms';\nimport { isBoolean, isObjectLike, isString } from 'lodash-es';\n\nimport { ActionDisplayStyle } from './action-display-style';\nimport { BreakpointsJSON, ResponsiveRenderOptions } from './responsive-render-options';\n\nexport interface ActionRenderOptions extends ActionValue {\n name?: string;\n renderAs?: ActionDisplayStyle;\n showLabel?: boolean;\n showIcon?: boolean;\n}\nexport type ActionBreakpointOptions = BreakpointsJSON<ActionRenderOptions>;\n\nexport class ResponsiveActionRenderOptions extends ResponsiveRenderOptions<ActionRenderOptions> {\n protected cleanBreakpoint(bp?: ActionRenderOptions, defaultIfEmpty: boolean = false): ActionRenderOptions | null {\n if ((!bp || !isObjectLike(bp)) && !defaultIfEmpty) return null;\n\n const result: ActionRenderOptions = {};\n if (defaultIfEmpty) {\n result.renderAs = ActionDisplayStyle.BUTTON;\n result.showLabel = true;\n result.showIcon = true;\n }\n\n if (bp) {\n if (bp.renderAs != null) result.renderAs = ActionDisplayStyle.fromAny(bp.renderAs);\n if (isString(bp.label)) result.label = bp.label;\n if (isString(bp.icon)) result.icon = bp.icon;\n if (isBoolean(bp.showLabel)) result.showLabel = bp.showLabel;\n if (isBoolean(bp.showIcon)) result.showIcon = bp.showIcon;\n }\n\n return Object.keys(result).length ? result : null;\n }\n}\n","import { Action as FormAction, IField, IFieldConstructorParams } from '@dynamicforms/vue-forms';\nimport { isEmpty, isString } from 'lodash-es';\nimport { computed, Ref } from 'vue';\n\nimport { translatableStrings } from '../translations';\n\nimport { ActionDisplayStyle } from './action-display-style';\nimport { ActionBreakpointOptions, ActionRenderOptions, ResponsiveActionRenderOptions } from './action-render-options';\nimport { BreakpointNames } from './responsive-render-options';\n\n// @ts-expect-error: prevent TS from complaining how create method is not ok because its declaration differs from Fld's\nclass Action extends FormAction<ActionBreakpointOptions> {\n static create<T extends ActionBreakpointOptions = ActionBreakpointOptions>(\n params?: Partial<IFieldConstructorParams<T>>,\n ): Action {\n return super.create<T>(params) as any as Action;\n }\n\n getBreakpointValue(breakpoint: Ref<BreakpointNames>) {\n return computed(() => {\n const responsiveValue = new ResponsiveActionRenderOptions(this.value);\n const partial = responsiveValue.getOptionsForBreakpoint(breakpoint.value);\n return {\n name: partial.name,\n label: partial.showLabel ? partial.label : undefined,\n icon: partial.showIcon ? partial.icon : undefined,\n renderAs: partial.renderAs,\n showLabel: isString(partial.label) && !isEmpty(partial.label) ? partial.showLabel : false,\n showIcon: isString(partial.icon) && !isEmpty(partial.icon) ? partial.showIcon : false,\n } as ActionRenderOptions;\n });\n }\n\n get name() {\n return this.value.name;\n }\n\n get label() {\n return this.value.showLabel ? this.value.label : undefined;\n }\n\n get showLabel() {\n return isString(this.value.label) && !isEmpty(this.value.label) ? this.value.showLabel : false;\n }\n\n get icon() {\n return this.value.showIcon ? this.value.icon : undefined;\n }\n\n get showIcon() {\n return isString(this.value.icon) && !isEmpty(this.value.icon) ? this.value.showIcon : false;\n }\n\n get renderAs() {\n return this.value.renderAs;\n }\n\n static closeAction(data?: Partial<IField<ActionBreakpointOptions>>) {\n const init: Partial<IField<ActionBreakpointOptions>> = {\n ...(data ?? {}), // any properties in data should overwrite properties in the constant\n value: {\n name: 'close',\n label: translatableStrings.Close,\n icon: 'ion-close-outline',\n renderAs: ActionDisplayStyle.BUTTON,\n showLabel: true,\n showIcon: true,\n },\n };\n init.value = { ...init.value, ...(data?.value ?? {}) }; // data may only contain partial info of the value\n return Action.create(init);\n }\n\n static yesAction(data?: Partial<IField<ActionBreakpointOptions>>) {\n const init: Partial<IField<ActionBreakpointOptions>> = {\n ...(data ?? {}), // any properties in data should overwrite properties in the constant\n value: {\n name: 'yes',\n label: translatableStrings.Yes,\n icon: 'ion-thumbs-up-outline',\n renderAs: ActionDisplayStyle.BUTTON,\n showLabel: true,\n showIcon: true,\n },\n };\n init.value = { ...init.value, ...(data?.value ?? {}) }; // data may only contain partial info of the value\n return Action.create(init);\n }\n\n static noAction(data?: Partial<IField<ActionBreakpointOptions>>) {\n const init: Partial<IField<ActionBreakpointOptions>> = {\n ...(data ?? {}), // any properties in data should overwrite properties in the constant\n value: {\n name: 'no',\n label: translatableStrings.No,\n icon: 'ion-thumbs-down-outline',\n renderAs: ActionDisplayStyle.BUTTON,\n showLabel: true,\n showIcon: true,\n },\n };\n init.value = { ...init.value, ...(data?.value ?? {}) }; // data may only contain partial info of the value\n return Action.create(init);\n }\n}\n\nexport { Action };\n","<template>\n <div\n v-if=\"actionsRef.length > 0\"\n class=\"text-end df-actions\"\n :class=\"{\n 'button-group': showAsGroup === 'grouped' || showAsGroup === 'grouped-no-borders',\n 'with-border': showAsGroup === 'grouped',\n }\"\n >\n <v-btn\n v-for=\"(action, idx) in actionsWithBreakpoint\"\n :key=\"idx\"\n :variant=\"action.renderAs === ActionDisplayStyle.BUTTON ? 'tonal' : 'text'\"\n :elevation=\"0\"\n :size=\"buttonSize\"\n @click.stop=\"(event: MouseEvent) => action.action.execute(event)\"\n >\n <cached-icon v-if=\"action.icon\" :name=\"action.icon\" />\n <span v-if=\"action.icon && action.label\" style=\"width: 0.5rem\" />\n <span v-if=\"action.label\">{{ action.label }}</span>\n </v-btn>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, unref } from 'vue';\nimport { CachedIcon } from 'vue-cached-icon';\n\nimport { DfActionsProps } from './dynamicforms-component-props';\nimport { ActionDisplayStyle, useBreakpoint } from './helpers';\n\nconst props = withDefaults(defineProps<DfActionsProps>(), {\n buttonSize: 'default',\n showAsGroup: 'no',\n});\n\nconst breakpoint = useBreakpoint();\nconst actionsRef = computed(() => unref(props.actions));\nconst actionsWithBreakpoint = computed(() =>\n actionsRef.value.map((action) => ({\n action,\n ...unref(action.getBreakpointValue(breakpoint)),\n })),\n);\n</script>\n\n<style>\n.df-actions.button-group {\n border-radius: 0.5em;\n /* the following two make the container fit the small buttons. without them there would be a top margin */\n line-height: 0;\n height: fit-content;\n}\n.df-actions.button-group .v-btn {\n border: none;\n border-radius: 0;\n margin: 0 !important;\n padding: 0 0.25em;\n}\n.df-actions.button-group .v-btn:first-child {\n border-start-start-radius: 0.5em;\n border-end-start-radius: 0.5em;\n}\n.df-actions.button-group .v-btn:last-child {\n border-start-end-radius: 0.5em;\n border-end-end-radius: 0.5em;\n}\n.df-actions.button-group.with-border {\n border: 0.1em solid currentColor;\n}\n.df-actions.button-group.with-border .v-btn:not(:first-child) {\n border-inline-start: 0.1em solid currentColor;\n}\n.df-actions .v-btn:not(:first-child) {\n margin-left: 0.5em;\n}\n</style>\n","<template>\n <v-checkbox\n v-model=\"boolValue\"\n v-bind=\"vuetifyBindings as any\"\n density=\"compact\"\n :class=\"densityClass\"\n :indeterminate=\"indeterminate\"\n :false-value=\"false\"\n :true-value=\"true\"\n @change=\"change\"\n @blur=\"touched = true\"\n >\n <template #label=\"labelData\"><df-label :allow-wrap=\"true\" :data=\"labelData as any\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><df-input-hint :message=\"message\" :errors=\"showErrors\" /></template>\n </v-checkbox>\n</template>\n\n<script setup lang=\"ts\">\nimport { clone } from 'lodash-es';\nimport { computed } from 'vue';\n\nimport { DfCheckboxProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfInputHint, DfLabel, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfCheckboxProps>(), { ...defaultBaseProps, allowNull: false });\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, label, showErrors, touched, value, vuetifyBindings } = useInputBase(props, emits);\n\nconst indeterminate = computed(() => props.allowNull && value.value == null);\n\nconst boolValue = computed({\n get(): any {\n return value.value;\n },\n set() {},\n});\n\nfunction change() {\n const oldVal = clone(value.value);\n if (oldVal === true) {\n value.value = props.allowNull ? null : false;\n } else {\n value.value = oldVal === false;\n }\n}\n</script>\n","<template>\n <v-text-field\n v-model=\"value\"\n v-bind=\"vuetifyBindings\"\n :class=\"densityClass\"\n :clearable=\"allowNull\"\n type=\"text\"\n :rules=\"rules\"\n @blur=\"touched = true\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><df-input-hint :message=\"message\" :errors=\"showErrors\" /></template>\n <template #prepend-inner>\n <div\n style=\"width: 24px; height: 24px; border-radius: 4px; border: 1px solid #ccc\"\n :style=\"{ backgroundColor: value }\"\n />\n </template>\n <template #default>\n <v-menu v-model=\"dropdownShown\" :close-on-content-click=\"false\" activator=\"parent\">\n <v-color-picker v-model=\"value\" mode=\"hexa\" />\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\n\nimport { DfColorProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfInputHint, DfLabel, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfColorProps>(), { ...defaultBaseProps, allowNull: false });\n\ninterface Emits extends BaseEmits {}\n\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, label, showErrors, touched, value, vuetifyBindings } = useInputBase(props, emits);\nconst dropdownShown = ref(false);\n\nconst rules = computed<((val: string) => boolean | string)[]>(() => [\n (val: string) => {\n if (props.control) return true; // if there's a form field, we expect there to be a validator\n if (!val && props.allowNull) return true; // allowed empty values are also not a problem\n\n const regex = /^#?([a-fA-F0-9]{3}|[a-fA-F0-9]{4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$/;\n return regex.test(val) ? true : 'Not a valid hex string.';\n },\n]);\n</script>\n","<template>\n <input-base\n v-bind=\"props\"\n :class=\"densityClass\"\n :clearable=\"clearable\"\n @click:clear=\"value = null\"\n @blur=\"touched = true\"\n >\n <template #default=\"slotProps\">\n <div class=\"d-flex w-100 ml-4 df-input-wrapper\" :class=\"density\">\n <v-text-field\n v-if=\"['date', 'datetime'].includes(inputType)\"\n v-model=\"dateFormatted\"\n style=\"flex-grow: 4\"\n density=\"compact\"\n variant=\"plain\"\n :clearable=\"false\"\n :hide-details=\"true\"\n :readonly=\"vuetifyBindings.readonly\"\n :disabled=\"vuetifyBindings.disabled\"\n :name=\"`${vuetifyBindings.name}-date`\"\n v-bind=\"passthroughAttrs\"\n @click=\"dropdown = 'date'\"\n @keydown.space=\"dropdown = 'date'\"\n @focus=\"slotProps.focus()\"\n @blur=\"slotProps.blur()\"\n >\n <template #default>\n <v-menu v-model=\"dateMenuShown\" :close-on-content-click=\"false\" activator=\"parent\">\n <v-confirm-edit v-model=\"valueAsDate\" @cancel=\"dropdown = ''\" @save=\"dropdown = ''\">\n <template #default=\"{ model: proxyModel, actions }\">\n <v-date-picker\n v-model=\"proxyModel.value\"\n :hide-header=\"true\"\n :first-day-of-week=\"firstDayOfWeek\"\n :show-adjacent-months=\"true\"\n :show-week=\"true\"\n >\n <template #actions><component :is=\"actions\" /></template>\n </v-date-picker>\n </template>\n </v-confirm-edit>\n </v-menu>\n </template>\n </v-text-field>\n\n <v-text-field\n v-if=\"['time', 'datetime'].includes(inputType)\"\n v-model=\"timeFormatted\"\n style=\"flex-grow: 3\"\n density=\"compact\"\n variant=\"plain\"\n :clearable=\"false\"\n :hide-details=\"true\"\n :readonly=\"vuetifyBindings.readonly\"\n :disabled=\"vuetifyBindings.disabled\"\n :name=\"`${vuetifyBindings.name}-time`\"\n v-bind=\"passthroughAttrs\"\n @click=\"dropdown = 'time'\"\n @keydown.space=\"dropdown = 'time'\"\n @focus=\"slotProps.focus()\"\n @blur=\"slotProps.blur()\"\n >\n <template #default>\n <v-menu v-model=\"timeMenuShown\" :close-on-content-click=\"false\" activator=\"parent\">\n <v-confirm-edit v-model=\"valueAsTimeString\" @cancel=\"dropdown = ''\" @save=\"dropdown = ''\">\n <template #default=\"{ model: proxyModel, actions }\">\n <v-time-picker v-model=\"proxyModel.value\" :hide-header=\"true\" format=\"24hr\">\n <template #actions><component :is=\"actions\" /></template>\n </v-time-picker>\n </template>\n </v-confirm-edit>\n </v-menu>\n </template>\n </v-text-field>\n </div>\n </template>\n </input-base>\n</template>\n\n<script setup lang=\"ts\">\nimport { format, parse } from 'date-fns';\nimport { toNumber, isNaN } from 'lodash-es';\nimport { ref, computed, watch, toRefs, unref } from 'vue';\n\nimport { DfDateTimeProps } from './dynamicforms-component-props';\nimport { BaseEmits, DateTimeLocaleConfig, defaultBaseProps, InputBase, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfDateTimeProps>(), {\n ...defaultBaseProps,\n inputType: 'datetime',\n displayFormatDate: 'P',\n displayFormatTime: 'p',\n});\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst currentLocale = computed(() => props.locale ?? unref(DateTimeLocaleConfig.dateTimeLocale));\nconst firstDayOfWeek = computed(() => currentLocale.value.options?.weekStartsOn ?? 1);\nconst { densityClass, touched, value, vuetifyBindings } = useInputBase<string | null>(props, emits);\nconst { inputType, displayFormatDate, displayFormatTime } = toRefs(props);\n\nconst dropdown = ref('');\nconst dateMenuShown = computed({\n get() {\n return unref(dropdown) === 'date';\n },\n set(newValue: boolean) {\n dropdown.value = newValue ? 'date' : '';\n },\n});\nconst timeMenuShown = computed({\n get() {\n return unref(dropdown) === 'time';\n },\n set(newValue: boolean) {\n dropdown.value = newValue ? 'time' : '';\n },\n});\n\nconst formatNaive = (val: Date) => `${format(val, 'yyyy-MM-dd')}T${format(val, 'HH:mm')}:00`;\n\nconst valueISOFull = ref<string | null>(null);\nfunction setValueISOFull(newISOValue: string | null, dateOrTimeIdx: number) {\n if (newISOValue == null) {\n valueISOFull.value = null;\n } else if (dateOrTimeIdx === -1) {\n // setting valueISOFull from value\n if (unref(inputType) === 'time') {\n valueISOFull.value = formatNaive(new Date());\n setValueISOFull(`T${newISOValue}`, 1);\n } else {\n const val = formatNaive(new Date(newISOValue));\n setValueISOFull(val, 0);\n setValueISOFull(val, 1);\n }\n } else {\n if (valueISOFull.value == null) valueISOFull.value = formatNaive(new Date());\n const vif = valueISOFull.value.split(/[TZ]/g);\n const nv = newISOValue!.split(/[TZ]/g);\n vif[dateOrTimeIdx] = nv[dateOrTimeIdx];\n valueISOFull.value = formatNaive(new Date(`${vif[0]}T${vif[1].split('.')[0]}`));\n\n if (unref(inputType) === 'date') value.value = vif[0];\n else if (unref(inputType) === 'time') value.value = vif[1];\n else value.value = unref(valueISOFull) + format(new Date(), 'XXX');\n }\n}\nwatch(value, (newValue: string | null) => setValueISOFull(newValue, -1), { immediate: true });\n\nconst valueAsDate = computed({\n get() {\n const uValue = unref(valueISOFull);\n if (uValue == null) return null;\n const res = new Date(uValue);\n return !Number.isNaN(res.getTime()) ? res : null;\n },\n set(newValue: Date) {\n setValueISOFull(formatNaive(newValue), 0);\n },\n});\n\nconst valueAsTimeString = computed({\n get() {\n const val = unref(valueISOFull);\n if (val == null) return '';\n const vif = val.split(/[TZ]/g);\n return vif[1].split('.')[0];\n },\n set(newValue: string) {\n setValueISOFull(`T${newValue}`, 1);\n },\n});\n\nconst dateFormatted = computed({\n get() {\n const vad = unref(valueAsDate);\n if (vad == null) return '';\n return format(vad, unref(displayFormatDate), { locale: currentLocale.value });\n },\n set(newValue: string) {\n try {\n const d = parse(newValue, unref(displayFormatDate), new Date(), { locale: currentLocale.value });\n setValueISOFull(formatNaive(d), 0);\n } catch (err) {\n console.error(err);\n }\n },\n});\n\nconst timeFormatted = computed({\n get() {\n const vad = unref(valueAsDate);\n if (vad == null) return '';\n return format(vad, unref(displayFormatTime), { locale: currentLocale.value });\n },\n set(newValue: string) {\n const d = newValue.match(/(\\d+):(\\d+)\\s?([a-zA-Z]+)?/);\n if (d == null) return;\n let hour = toNumber(d[1]);\n const minute = toNumber(d[2]);\n if (isNaN(hour) || isNaN(minute)) return;\n if (d[3] && d[3].toLowerCase() === 'pm' && hour < 13) hour += 12;\n setValueISOFull(`T${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}:00`, 1);\n },\n});\n</script>\n","<template>\n <input-base\n v-bind=\"{ ...props, loading } as any\"\n :class=\"densityClass\"\n clearable\n @click:clear=\"removeFile\"\n @blur=\"touched = true\"\n >\n <template #prepend-inner><cached-icon name=\"mdi-paperclip\" /></template>\n <template #loader>\n <v-progress-linear\n v-if=\"currentFile && progress < 100\"\n :model-value=\"progress\"\n :indeterminate=\"progress === -1\"\n />\n </template>\n <template #default=\"slotProps\">\n <div class=\"d-flex w-100 position-relative df-input-wrapper\" :class=\"density\">\n <v-file-input\n v-model=\"selectedFile\"\n :label=\"fileLabel\"\n density=\"compact\"\n variant=\"plain\"\n :readonly=\"vuetifyBindings.readonly\"\n :disabled=\"vuetifyBindings.disabled\"\n :name=\"vuetifyBindings.name\"\n :hide-details=\"true\"\n :show-size=\"true\"\n :multiple=\"false\"\n :style=\"currentFile && progress < 100 ? 'visibility: hidden' : ''\"\n :clearable=\"false\"\n v-bind=\"passthroughAttrs\"\n prepend-icon=\"\"\n @update:model-value=\"handleFileChange\"\n @focus=\"slotProps.focus()\"\n @blur=\"slotProps.blur()\"\n />\n </div>\n </template>\n </input-base>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onBeforeUnmount, watch } from 'vue';\nimport { CachedIcon } from 'vue-cached-icon';\n\nimport { DfFileProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, InputBase, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfFileProps>(), defaultBaseProps);\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, touched, value, vuetifyBindings } = useInputBase(props, emits);\nconst touchInterval = ref<number | null>(null);\n\n// State\nconst currentFile = ref<File | null>(null);\nconst progress = ref(0);\nconst fileInputKey = ref(Math.round(Math.random() * 1000));\nconst selectedFile = ref<File | null>();\nconst loading = computed(() => currentFile.value && progress.value < 100);\n\nconst fileLabel = computed(() => {\n if (!selectedFile.value && value.value) {\n return props.modelValue;\n }\n return '';\n});\n\nfunction clearTouchInterval() {\n if (touchInterval.value) window.clearInterval(touchInterval.value);\n}\nfunction setupTouchInterval() {\n clearTouchInterval();\n touchInterval.value = window.setInterval(() => {\n if (value.value) props.comms.touch(value.value);\n }, 60 * 1000);\n}\n\nonBeforeUnmount(() => clearTouchInterval());\nwatch(value, (newValue) => {\n if (newValue) setupTouchInterval();\n else clearTouchInterval();\n});\n\nasync function removeFile() {\n if (value.value) {\n await props.comms.delete(value.value);\n }\n\n value.value = null;\n progress.value = 0;\n fileInputKey.value = Math.round(Math.random() * 1000);\n currentFile.value = null;\n selectedFile.value = null;\n clearTouchInterval();\n}\n\nasync function upload(file: File) {\n progress.value = -1;\n currentFile.value = file;\n\n try {\n value.value = await props.comms.upload(file, (loaded: number, total: number) => {\n progress.value = Math.round((loaded * 100) / total);\n });\n progress.value = 100;\n setupTouchInterval();\n } catch (err) {\n progress.value = 0;\n currentFile.value = null;\n fileInputKey.value = Math.round(Math.random() * 1000);\n selectedFile.value = null;\n throw err;\n }\n}\n\nfunction handleFileChange(file: File | File[]): any {\n if (file) {\n if (Array.isArray(file)) {\n console.error('Uploading multiple files not supported right now');\n } else {\n upload(file);\n }\n }\n}\n</script>\n","<template>\n <div class=\"df-input-container\" :class=\"densityClass\">\n <v-text-field\n v-if=\"!isNumber\"\n v-model=\"value\"\n v-bind=\"vuetifyBindings as any\"\n :type=\"inputType\"\n @blur=\"touched = true\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><df-input-hint :message=\"message\" :errors=\"showErrors\" /></template>\n </v-text-field>\n <v-number-input\n v-else\n v-model=\"value\"\n v-bind=\"{ ...vuetifyBindings, ...numberInputBindings } as any\"\n density=\"compact\"\n control-variant=\"stacked\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><df-input-hint :message=\"message\" :errors=\"showErrors\" /></template>\n </v-number-input>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, toRefs, unref } from 'vue';\n\nimport { DfInputProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfInputHint, DfLabel, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfInputProps>(), {\n ...defaultBaseProps,\n inputType: 'text',\n precision: null,\n step: undefined,\n min: undefined,\n max: undefined,\n});\n\ninterface Emits extends BaseEmits {}\n\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, label, showErrors, touched, value, vuetifyBindings } = useInputBase(props, emits);\nconst { inputType, max, min, precision, step } = toRefs(props);\n\nconst isNumber = computed(() => inputType.value === 'number');\nconst numberInputBindings = computed(() =>\n !isNumber.value ? {} : { min: unref(min), max: unref(max), precision: unref(precision), step: unref(step) },\n);\n</script>\n","<template>\n <div class=\"editor-container\">\n <div class=\"editor-container__editor\">\n <div ref=\"editorElement\">\n <ckeditor\n v-if=\"isLayoutReady\"\n :model-value=\"modelValue\"\n :editor=\"editor\"\n :config=\"editorConfig\"\n :disabled=\"disabled\"\n :style=\"`min-height: ${minHeight}`\"\n @ready=\"onEditorReady\"\n @update:model-value=\"(event: any) => emit('update:modelValue', event)\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Editor, EditorConfig } from '@ckeditor/ckeditor5-core';\nimport {\n AccessibilityHelp,\n Alignment,\n Autoformat,\n AutoImage,\n AutoLink,\n Autosave,\n BalloonToolbar,\n Base64UploadAdapter,\n BlockQuote,\n Bold,\n ClassicEditor,\n CloudServices,\n Essentials,\n GeneralHtmlSupport,\n Heading,\n HeadingConfig,\n HorizontalLine,\n ImageBlock,\n ImageCaption,\n ImageInline,\n ImageInsertViaUrl,\n ImageResize,\n ImageStyle,\n ImageToolbar,\n ImageUpload,\n Indent,\n IndentBlock,\n Italic,\n Link,\n List,\n MediaEmbed,\n Paragraph,\n PasteFromMarkdownExperimental,\n PasteFromOffice,\n SelectAll,\n Style,\n Table,\n TableCellProperties,\n TableColumnResize,\n TableProperties,\n TableToolbar,\n TextTransformation,\n Undo,\n} from 'ckeditor5';\nimport { onMounted, ref } from 'vue';\n\nimport { ckEditorLanguage, translatableStrings } from './translations';\n\nwithDefaults(\n defineProps<{\n modelValue?: string;\n minHeight?: string;\n disabled?: boolean;\n }>(),\n { modelValue: '', minHeight: '7em', disabled: false },\n);\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void;\n}>();\n\nconst isLayoutReady = ref(false);\nconst editor = ClassicEditor;\n\nconst editorToolbarConfig = {\n items: [\n 'undo',\n 'redo',\n '|',\n 'selectAll',\n '|',\n 'heading',\n 'style',\n '|',\n 'bold',\n 'italic',\n '|',\n 'horizontalLine',\n 'link',\n 'mediaEmbed',\n 'insertTable',\n 'blockQuote',\n '|',\n 'alignment',\n '|',\n 'bulletedList',\n 'numberedList',\n 'outdent',\n 'indent',\n '|',\n 'accessibilityHelp',\n ],\n shouldNotGroupWhenFull: false,\n};\nconst editorPlugins = [\n AccessibilityHelp,\n Alignment,\n AutoImage,\n AutoLink,\n Autosave,\n BalloonToolbar,\n BlockQuote,\n Bold,\n CloudServices,\n Essentials,\n GeneralHtmlSupport,\n Heading,\n HorizontalLine,\n ImageBlock,\n ImageCaption,\n ImageInline,\n ImageInsertViaUrl,\n ImageResize,\n ImageStyle,\n ImageToolbar,\n ImageUpload,\n Indent,\n IndentBlock,\n Italic,\n Link,\n List,\n Autoformat,\n MediaEmbed,\n Paragraph,\n PasteFromMarkdownExperimental,\n PasteFromOffice,\n SelectAll,\n Style,\n Table,\n TableCellProperties,\n TableColumnResize,\n TableProperties,\n TableToolbar,\n Undo,\n TextTransformation,\n Base64UploadAdapter,\n];\nconst editorHeadings: HeadingConfig = {\n options: [\n { model: 'paragraph', title: translatableStrings.Paragraph, class: 'ck-heading_paragraph' },\n { model: 'heading1', view: 'h1', title: translatableStrings.Heading1, class: 'ck-heading_heading1' },\n { model: 'heading2', view: 'h2', title: translatableStrings.Heading2, class: 'ck-heading_heading2' },\n { model: 'heading3', view: 'h3', title: translatableStrings.Heading3, class: 'ck-heading_heading3' },\n { model: 'heading4', view: 'h4', title: translatableStrings.Heading4, class: 'ck-heading_heading4' },\n { model: 'heading5', view: 'h5', title: translatableStrings.Heading5, class: 'ck-heading_heading5' },\n { model: 'heading6', view: 'h6', title: translatableStrings.Heading6, class: 'ck-heading_heading6' },\n ],\n};\nconst editorConfig: EditorConfig = {\n language: ckEditorLanguage.language,\n toolbar: editorToolbarConfig,\n plugins: editorPlugins,\n balloonToolbar: ['bold', 'italic', '|', 'link', '|', 'bulletedList', 'numberedList'],\n heading: editorHeadings,\n htmlSupport: {\n allow: [{ name: /^.*$/, styles: true, attributes: true, classes: true }],\n },\n image: {\n toolbar: [\n 'toggleImageCaption',\n 'imageTextAlternative',\n '|',\n 'imageStyle:inline',\n 'imageStyle:wrapText',\n 'imageStyle:breakText',\n '|',\n 'resizeImage',\n ],\n },\n // initialData: '',\n link: {\n addTargetToExternalLinks: true,\n defaultProtocol: 'https://',\n decorators: {\n toggleDownloadable: {\n mode: 'manual',\n label: translatableStrings.Downloadable,\n attributes: { download: 'file' },\n },\n },\n },\n placeholder: '',\n style: {\n definitions: [\n { name: translatableStrings.ArticleCategory, element: 'h3', classes: ['category'] },\n { name: translatableStrings.Title, element: 'h2', classes: ['document-title'] },\n { name: translatableStrings.Subtitle, element: 'h3', classes: ['document-subtitle'] },\n { name: translatableStrings.InfoBox, element: 'p', classes: ['info-box'] },\n { name: translatableStrings.SideQuote, element: 'blockquote', classes: ['side-quote'] },\n { name: translatableStrings.Marker, element: 'span', classes: ['marker'] },\n { name: translatableStrings.Spoiler, element: 'span', classes: ['spoiler'] },\n { name: translatableStrings.CodeDark, element: 'pre', classes: ['fancy-code', 'fancy-code-dark'] },\n { name: translatableStrings.CodeBright, element: 'pre', classes: ['fancy-code', 'fancy-code-bright'] },\n ],\n },\n table: { contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells', 'tableProperties', 'tableCellProperties'] },\n translations: ckEditorLanguage.translations,\n};\n\nonMounted(() => {\n isLayoutReady.value = true;\n});\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst onEditorReady = (editorReady: Editor) => {\n // console.log('Editor is ready to use!', editorReady);\n};\n\ndefineExpose({ onEditorReady });\n</script>\n\n<style>\n@import 'ckeditor5/ckeditor5.css';\n@import url('https://fonts.googleapis.com/css2?family=Oswald&family=PT+Serif:ital,wght@0,400;0,700;1,400&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap');\n\n:root {\n /* In addition to this, any v-dialog must also have :retain-focus=\"false\" */\n --ck-z-default: 20000 !important;\n --ck-z-modal: calc(var(--ck-z-default) + 20999);\n}\n\n@media print {\n body {\n margin: 0 !important;\n }\n}\n\n.editor-container {\n font-family: 'Lato';\n}\n\n.ck-content {\n font-family: 'Lato';\n line-height: 1.6;\n word-break: break-word;\n}\n\n.editor-container,\n.editor-container__editor {\n width: 100%;\n}\n\n:root .ck-editor__editable_inline {\n min-height: v-bind(minHeight);\n}\n\n.ck-content h3.category {\n font-family: 'Oswald';\n font-size: 20px;\n font-weight: bold;\n color: #555;\n letter-spacing: 10px;\n margin: 0;\n padding: 0;\n}\n\n.ck-content h2.document-title {\n font-family: 'Oswald';\n font-size: 50px;\n font-weight: bold;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.ck-content h3.document-subtitle {\n font-family: 'Oswald';\n font-size: 20px;\n color: #555;\n margin: 0 0 1em;\n font-weight: bold;\n padding: 0;\n}\n\ndiv.ck.ck-editor__editable_inline * {\n /* disables any styles declared on the page prior to the editor */\n all: revert;\n}\n\n.ck-content p.info-box {\n --background-size: 30px;\n --background-color: #e91e63;\n padding: 1.2em 2em;\n border: 1px solid var(--background-color);\n background:\n linear-gradient(\n 135deg,\n var(--background-color) 0%,\n var(--background-color) var(--background-size),\n transparent var(--background-size)\n ),\n linear-gradient(\n 135deg,\n transparent calc(100% - var(--background-size)),\n var(--background-color) calc(100% - var(--background-size)),\n var(--background-color)\n );\n border-radius: 10px;\n margin: 1.5em 2em;\n box-shadow: 5px 5px 0 #ffe6ef;\n}\n\n.ck-content blockquote.side-quote {\n font-family: 'Oswald';\n font-style: normal;\n float: right;\n width: 35%;\n position: relative;\n border: 0;\n overflow: visible;\n z-index: 1;\n margin-left: 1em;\n}\n\n.ck-content blockquote.side-quote::before {\n content: '“';\n position: absolute;\n top: -37px;\n left: -10px;\n display: block;\n font-size: 200px;\n color: #e7e7e7;\n z-index: -1;\n line-height: 1;\n}\n\n.ck-content blockquote.side-quote p {\n font-size: 2em;\n line-height: 1;\n}\n\n.ck-content blockquote.side-quote p:last-child:not(:first-child) {\n font-size: 1.3em;\n text-align: right;\n color: #555;\n}\n\n.ck-content span.marker {\n background: yellow;\n}\n\n.ck-content span.spoiler {\n background: #000;\n color: #000;\n}\n\n.ck-content span.spoiler:hover {\n background: #000;\n color: #fff;\n}\n\n.ck-content pre.fancy-code {\n border: 0;\n margin-left: 2em;\n margin-right: 2em;\n border-radius: 10px;\n}\n\n.ck-content pre.fancy-code::before {\n content: '';\n display: block;\n height: 13px;\n background: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NCAxMyI+CiAgPGNpcmNsZSBjeD0iNi41IiBjeT0iNi41IiByPSI2LjUiIGZpbGw9IiNGMzZCNUMiLz4KICA8Y2lyY2xlIGN4PSIyNi41IiBjeT0iNi41IiByPSI2LjUiIGZpbGw9IiNGOUJFNEQiLz4KICA8Y2lyY2xlIGN4PSI0Ny41IiBjeT0iNi41IiByPSI2LjUiIGZpbGw9IiM1NkM0NTMiLz4KPC9zdmc+Cg==);\n margin-bottom: 8px;\n background-repeat: no-repeat;\n}\n\n.ck-content pre.fancy-code-dark {\n background: #272822;\n color: #fff;\n box-shadow: 5px 5px 0 #0000001f;\n}\n\n.ck-content pre.fancy-code-bright {\n background: #dddfe0;\n color: #000;\n box-shadow: 5px 5px 0 #b3b3b3;\n}\n</style>\n","<template>\n <input-base v-bind=\"props\" class=\"ck-editor-custom\" :class=\"densityClass\">\n <template #default=\"slotProps\">\n <ck-editor-custom\n ref=\"$editor\"\n v-model=\"value\"\n :class=\"{ 'mt-6': !!label }\"\n :min-height=\"minHeight\"\n :disabled=\"vuetifyBindings.disabled\"\n placeholder=\"dfsjghdf\"\n v-bind=\"passthroughAttrs\"\n @focusin=\"slotProps.focus()\"\n @focusout=\"slotProps.blur()\"\n />\n </template>\n </input-base>\n</template>\n\n<script setup lang=\"ts\">\nimport { DfRtfEditorProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, InputBase, useInputBase } from './helpers';\nimport CkEditorCustom from './helpers/ck-editor-custom.vue';\n\nconst props = withDefaults(defineProps<DfRtfEditorProps>(), { ...defaultBaseProps, minHeight: undefined });\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, value, vuetifyBindings } = useInputBase(props, emits);\n</script>\n\n<style>\n.ck-editor-custom .v-field:not(.v-field--active) .v-label.v-field-label:not(.v-field-label--floating) {\n transform: translate(0.5em, 3em);\n}\n</style>\n","import { isArray, first, castArray } from 'lodash-es';\nimport { Ref } from 'vue';\n\nimport { SelectChoice } from './df-select.interface';\n\nexport function convertItems(items: SelectChoice[]) {\n return items.map((item) => ({ value: item.id, title: item.text, icon: item.icon }));\n}\n\n/**\n * multipleCompliantValue ensures that resulting value of the select component is\n * 1 - null, when nothing is selected\n * 2 - array, when multiple is truthy\n * 3 - ordinal / simple value when multiple is not truthy\n * @param value the value to make compliant\n * @param multiple indicator for multiple selection\n */\nexport function multipleCompliantValue(value: any, multiple: boolean): any {\n // Če je vrednost null ali undefined\n if (value == null) return null;\n\n // Če je prazno polje (za multiple)\n if (isArray(value) && value.length === 0) return null;\n\n // Za multiple vedno vrni polje\n if (multiple) return castArray(value);\n\n // Za single vrni prvo vrednost ali vrednost samo\n return isArray(value) ? (first(value) ?? null) : value;\n}\n\nexport function getSelectedChoices(loadedChoices: SelectChoice[], multipleCpliantValue: any | any[] | null) {\n if (multipleCpliantValue == null) return [];\n const mcValue = castArray(multipleCpliantValue);\n return loadedChoices.filter((choice) => mcValue.some((val: any) => val === choice.id));\n}\n\n/**\n * updateSelectedFromValue ensures that the actual select component receives model-value formatted to its needs\n */\nexport function updateSelectedFromValue(\n resultingValue: any,\n selected: Ref<any>,\n multiple: boolean,\n taggable: boolean,\n loadedChoices: SelectChoice[],\n) {\n const mcValue = multipleCompliantValue(resultingValue, multiple);\n\n if (mcValue == null) {\n selected.value = multiple ? [] : null;\n return;\n }\n\n if (multiple) {\n if (taggable) {\n // if taggable (can add new items not in choices), keep the value as-is\n selected.value = mcValue;\n } else {\n // when not taggable, we filter the result to existing choices\n selected.value = getSelectedChoices(loadedChoices, mcValue).map((choice) => choice.id);\n }\n } else {\n if (taggable) {\n // if taggable, we just keep the selected value\n selected.value = mcValue;\n } else {\n // when not taggable, we filter the result to existing choices\n const matchingChoice = first(getSelectedChoices(loadedChoices, mcValue));\n selected.value = matchingChoice?.id ?? null;\n }\n }\n}\n","<template>\n <component\n :is=\"taggable ? 'v-combobox' : 'v-autocomplete'\"\n v-if=\"visibility !== DisplayMode.SUPPRESS\"\n v-model=\"selected\"\n :class=\"[\n cssClass,\n densityClass,\n {\n 'd-none': visibility === DisplayMode.HIDDEN,\n invisible: visibility === DisplayMode.INVISIBLE,\n },\n ]\"\n :items=\"options\"\n :return-object=\"false\"\n v-bind=\"vuetifyBindings\"\n :label=\"vuetifyBindings.label\"\n chips\n :auto-select-first=\"true\"\n :closable-chips=\"allowNull || (multiple && selected.length > 1)\"\n :clearable=\"allowNull\"\n :multiple=\"multiple\"\n :loading=\"loading\"\n :hide-selected=\"false\"\n :aria-describedby=\"vuetifyBindings.helpText ? `${vuetifyBindings.name}-help` : null\"\n :menu-props=\"{ maxHeight: '400' }\"\n hide-details=\"auto\"\n @update:search=\"(query: any) => queryOptions(query, undefined)\"\n @update:model-value=\"onSelect\"\n @click:clear=\"selected = null\"\n @blur=\"touched = true\"\n >\n <template #chip=\"{ item }\">\n <v-chip\n :key=\"item.value\"\n label\n size=\"small\"\n class=\"d-flex align-middle\"\n :variant=\"multiple ? 'tonal' : 'text'\"\n :closable=\"multiple\"\n @click:close=\"chipClose(item.value)\"\n >\n <template #prepend>\n <cached-icon v-if=\"item.raw?.icon\" class=\"me-1\" :name=\"item.raw.icon\" />\n </template>\n <span :class=\"{ 'text-body-1': !multiple }\">{{ item.title }}</span>\n </v-chip>\n </template>\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n\n <template #item=\"{ props: prps, item }\">\n <v-list-item v-bind=\"prps\">\n <template #prepend>\n <span v-if=\"item.raw?.icon\" class=\"me-1\">\n <cached-icon class=\"action-icon\" :name=\"item.raw.icon\" />\n </span>\n </template>\n </v-list-item>\n </template>\n <template #message=\"{ message }\">\n <df-input-hint :message=\"message\" :errors=\"showErrors\" />\n </template>\n <template v-if=\"$slots['append-inner']\" #append-inner=\"props\">\n <slot name=\"append-inner\" v-bind=\"props\" />\n </template>\n <template v-if=\"$slots['prepend-inner']\" #prepend-inner=\"props\">\n <slot name=\"prepend-inner\" v-bind=\"props\" />\n </template>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { DisplayMode } from '@dynamicforms/vue-forms';\nimport { unionBy } from 'lodash-es';\nimport { ref, computed, toRefs, watch, nextTick, unref } from 'vue';\nimport { CachedIcon } from 'vue-cached-icon';\n\nimport { DfSelectProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfInputHint, DfLabel, SelectChoice, useInputBase } from './helpers';\nimport {\n convertItems,\n getSelectedChoices,\n multipleCompliantValue,\n updateSelectedFromValue,\n} from './helpers/df-select.helper';\n\nconst propsWithDefaults = withDefaults(defineProps<DfSelectProps>(), {\n ...defaultBaseProps,\n choices: undefined,\n multiple: false,\n allowTags: false,\n allowNull: true,\n fetchChoices: undefined,\n});\n\nconst { choices, multiple, allowTags: taggable, allowNull, cssClass, visibility } = toRefs(propsWithDefaults);\n\ninterface Emits extends BaseEmits {\n (e: 'update:modelValueDisplay', value: SelectChoice[]): any;\n}\n\nconst emits = defineEmits<Emits>();\ndefineSlots<{\n 'append-inner'?: (props: any) => any;\n 'prepend-inner'?: (props: any) => any;\n}>();\n\nconst {\n densityClass,\n label,\n showErrors,\n touched,\n value: resultingValue,\n vuetifyBindings,\n} = useInputBase(propsWithDefaults, emits);\n\nconst selected = ref<any>(null);\nconst takeLoaded = ref(false);\nconst loaded = ref<SelectChoice[]>([]);\nconst loadedChoices = computed<SelectChoice[]>(() => (unref(takeLoaded) ? unref(loaded) : unref(choices) || []));\nconst loading = ref<boolean>(false);\n\nconst options = computed(() => convertItems(loadedChoices.value));\n\nif (options.value && propsWithDefaults.fetchChoices !== undefined) {\n console.warn('Both options and fetchChoices are set. Only one of them should be set.');\n}\n\nfunction emitModelValueDisplay(mcVal: any) {\n emits('update:modelValueDisplay', getSelectedChoices(loadedChoices.value, mcVal));\n}\n\nlet setResultingValueGuard = false;\n\nfunction setResultingValue(newValue: any) {\n setResultingValueGuard = true;\n resultingValue.value = newValue;\n nextTick(() => {\n setResultingValueGuard = false;\n });\n}\n\nwatch(\n selected,\n (newValue) => {\n if (vuetifyBindings.value.readonly) return;\n nextTick(() => {\n const mcVal = multipleCompliantValue(newValue, multiple.value);\n emitModelValueDisplay(mcVal);\n setResultingValue(mcVal);\n });\n },\n { deep: true },\n);\nwatch(\n resultingValue,\n (newValue: any) => {\n if (!setResultingValueGuard) {\n const mcVal = multipleCompliantValue(newValue, multiple.value);\n updateSelectedFromValue(mcVal, selected, multiple.value, false, loadedChoices.value);\n }\n },\n { deep: true },\n);\n\nfunction onSelect(/* val: any */) {\n if (vuetifyBindings.value.readonly || taggable.value) return;\n const mcVal = multipleCompliantValue(selected.value, multiple.value);\n updateSelectedFromValue(mcVal, selected, multiple.value, false, loadedChoices.value);\n setResultingValue(mcVal);\n}\n\nfunction chipClose(itemValue: any) {\n let mcVal;\n if (multiple.value && Array.isArray(selected.value)) {\n mcVal = multipleCompliantValue(\n selected.value.filter((v) => v !== itemValue),\n multiple.value,\n );\n } else {\n mcVal = null;\n }\n updateSelectedFromValue(mcVal, selected, multiple.value, false, loadedChoices.value);\n setResultingValue(mcVal);\n}\n\nasync function queryOptions(queryValue?: any, idValue?: any): Promise<void> {\n if (choices.value || propsWithDefaults.fetchChoices === undefined) return;\n loading.value = true;\n try {\n const selectedChoices = getSelectedChoices(\n loadedChoices.value,\n multipleCompliantValue(selected.value, multiple.value),\n );\n const newChoices = await propsWithDefaults.fetchChoices(queryValue, idValue);\n loaded.value = unionBy([...selectedChoices, ...newChoices], 'id');\n takeLoaded.value = true;\n } finally {\n loading.value = false;\n }\n}\n\nfunction initialValueCheck() {\n let val = resultingValue.value;\n if (!allowNull.value && val == null && options.value.length) {\n // Starting settings: check if value is mandatory and select the first item from the options\n val = options.value[0].value;\n }\n val = multipleCompliantValue(val, multiple.value);\n updateSelectedFromValue(val, selected, multiple.value, taggable.value, loadedChoices.value);\n emitModelValueDisplay(val);\n setResultingValue(val);\n}\n\ninitialValueCheck();\n\n// Starting settings: check if ajax and current value is not loaded yet - then load the value from back-end\nif (propsWithDefaults.fetchChoices !== undefined) {\n queryOptions(undefined, resultingValue.value).then(() => {\n initialValueCheck();\n });\n}\n</script>\n","<template>\n <div class=\"df-textarea-container\" :class=\"densityClass\">\n <v-textarea\n v-if=\"visibility !== DisplayMode.SUPPRESS\"\n v-model=\"value\"\n :class=\"[\n cssClass,\n {\n 'd-none': visibility === DisplayMode.HIDDEN,\n invisible: visibility === DisplayMode.INVISIBLE,\n },\n ]\"\n :rows=\"rows\"\n :auto-grow=\"(maxRows || 0) > 0\"\n :max-rows=\"maxRows\"\n v-bind=\"vuetifyBindings as any\"\n @blur=\"touched = true\"\n >\n <template #label=\"labelData\"><df-label :data=\"labelData\" :label=\"label\" /></template>\n <template #message=\"{ message }\"><df-input-hint :message=\"message\" :errors=\"showErrors\" /></template>\n </v-textarea>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { DisplayMode } from '@dynamicforms/vue-forms';\nimport { toRefs } from 'vue';\n\nimport { DfTextAreaProps } from './dynamicforms-component-props';\nimport { BaseEmits, defaultBaseProps, DfInputHint, DfLabel, useInputBase } from './helpers';\n\nconst props = withDefaults(defineProps<DfTextAreaProps>(), {\n ...defaultBaseProps,\n rows: undefined,\n maxRows: undefined,\n});\n\ninterface Emits extends BaseEmits {}\nconst emits = defineEmits<Emits>();\n\nconst { densityClass, label, showErrors, touched, value, vuetifyBindings } = useInputBase(props, emits);\nconst { cssClass, visibility } = toRefs(props);\n</script>\n","import { CkeditorPlugin } from '@ckeditor/ckeditor5-vue';\nimport { App } from 'vue';\n\nimport * as Inputs from './dynamicforms-components';\nimport { VuetifyInputsSettings, vuetifyInputsSettingsKey } from './helpers';\nimport * as VuetifyComponents from './vuetify-components';\n\nexport * from './helpers';\nexport * as VuetifyComponents from './vuetify-components';\nexport * from './dynamicforms-components';\nexport * as DfInputComponents from './dynamicforms-components';\nexport * as DfInputComponentProps from './dynamicforms-component-props';\n\nexport interface DynamicFormsInputsOptions extends VuetifyInputsSettings {\n registerComponents: boolean;\n registerVuetifyComponents: boolean;\n}\n\nexport const DynamicFormsInputs = {\n install: (app: App, options?: Partial<DynamicFormsInputsOptions>) => {\n app.use(CkeditorPlugin);\n app.provide(vuetifyInputsSettingsKey, options ?? {});\n if (options?.registerComponents ?? false) {\n Object.entries(Inputs).map(([name, component]) => app.component(name, component));\n }\n if (options?.registerVuetifyComponents ?? false) {\n Object.entries(VuetifyComponents).map(([name, component]) => app.component(name, component));\n }\n },\n};\n"],"names":["_","index","appendExtraPluginsToEditorConfig","config","plugins","extraPlugins","__spreadProps","__spreadValues","item","isSemanticVersion","version","isCKCdnTestingVersion","testVersion","isCKCdnVersion","destructureSemanticVersion","major","minor","patch","getLicenseVersionFromEditorVersion","getCKBaseBundleInstallationInfo","CKEDITOR_VERSION","CKEDITOR","getSupportedLicenseVersionInstallationInfo","installationInfo","isCKEditorFreeLicense","licenseKey","licenseVersion","createIntegrationUsageDataPlugin","integrationName","usageData","editor","source","setUsageData","VueIntegrationUsageDataPlugin","appendAllIntegrationPluginsToConfig","editorConfig","VUE_INTEGRATION_READ_ONLY_LOCK_ID","INPUT_EVENT_DEBOUNCE_WAIT","_sfc_main","defineComponent","mergeModels","__props","__expose","__emit","model","useModel","props","emit","element","ref","instance","lastEditorData","watch","newModel","readOnlyMode","checkVersion","version2","setUpEditorEvents","emitDebouncedInputEvent","debounce","evt","data","onMounted","markRaw","error","onBeforeUnmount","_ctx","_cache","openBlock","createBlock","resolveDynamicComponent","Vue","CkeditorPlugin","app","isPluralType","val","formatDistanceLocale","getFormFromCount","count","formatDistance","token","options","result","tense","tokenValue","form","buildFormatLongFn","args","width","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","date","formatRelative","_baseDate","_options","format","buildLocalizeFn","value","context","valuesArray","defaultWidth","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","localize","dirtyNumber","quarter","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","key","findIndex","pattern","findKey","rest","object","predicate","array","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","sl","DateTimeLocaleConfig","locale","isRef","isError","computed","widgetMessage","widgetClasses","_createBlock","_unref","MessagesWidget","lbl","_createElementBlock","_normalizeClass","allowWrap","label","_Fragment","CachedIcon","_component_v_img","_resolveDynamicComponent","MdString","VueMarkdown","vuetifyInputsSettingsKey","Label","text","icon","iconComponent","defaultBaseProps","useInputBase","settings","inject","internalValue","newValue","Form","controlTouch","touched","valid","errors","ValidationErrorRenderContent","anyErrors","showErrors","enabled","visibility","isString","placeholder","helpText","hint","cssClass","density","_c","_b","_a","boundDensity","variant","isEmpty","emits","vuetifyBindings","isClearable","unref","focused","setFocused","isFocused","DisplayMode","_component_v_input","_withCtx","message","_createVNode","DfInputHint","_component_v_field","loading","labelData","DfLabel","slotProps","_createElementVNode","_hoisted_1","_renderSlot","loaderProps","$slots","prependInnerProps","prependProps","translatableStrings","translateStrings","translationCallback","translation","setCkEditorLanguage","language","translations","ckEditorLanguage","ActionDisplayStyle","defaultDisplayStyle","fromString","mode","fromAny","input","isDefined","check","responsiveBreakpoints","ResponsiveRenderOptions","__publicField","bp","breakpoint","fields","bpData","field","getBreakpointName","dp","useBreakpoint","display","useDisplay","ResponsiveActionRenderOptions","defaultIfEmpty","isObjectLike","isBoolean","Action","FormAction","params","partial","init","actionsRef","actionsWithBreakpoint","action","showAsGroup","_openBlock","_renderList","idx","_component_v_btn","buttonSize","_withModifiers","event","_hoisted_2","_toDisplayString","densityClass","indeterminate","boolValue","change","oldVal","clone","_component_v_checkbox","_mergeProps","$event","dropdownShown","rules","_component_v_text_field","allowNull","_normalizeStyle","_component_v_menu","_component_v_color_picker","currentLocale","firstDayOfWeek","inputType","displayFormatDate","displayFormatTime","toRefs","dropdown","dateMenuShown","timeMenuShown","formatNaive","valueISOFull","setValueISOFull","newISOValue","dateOrTimeIdx","vif","nv","valueAsDate","uValue","res","valueAsTimeString","dateFormatted","vad","d","parse","err","timeFormatted","hour","toNumber","minute","isNaN","InputBase","clearable","passthroughAttrs","_component_v_confirm_edit","proxyModel","actions","_component_v_date_picker","_component_v_time_picker","touchInterval","currentFile","progress","fileInputKey","selectedFile","fileLabel","clearTouchInterval","setupTouchInterval","removeFile","__async","upload","file","loaded","total","handleFileChange","_component_v_progress_linear","_component_v_file_input","max","min","precision","step","isNumber","numberInputBindings","_component_v_number_input","isLayoutReady","ClassicEditor","editorToolbarConfig","editorPlugins","AccessibilityHelp","Alignment","AutoImage","AutoLink","Autosave","BalloonToolbar","BlockQuote","Bold","CloudServices","Essentials","GeneralHtmlSupport","Heading","HorizontalLine","ImageBlock","ImageCaption","ImageInline","ImageInsertViaUrl","ImageResize","ImageStyle","ImageToolbar","ImageUpload","Indent","IndentBlock","Italic","Link","List","Autoformat","MediaEmbed","Paragraph","PasteFromMarkdownExperimental","PasteFromOffice","SelectAll","Style","Table","TableCellProperties","TableColumnResize","TableProperties","TableToolbar","Undo","TextTransformation","Base64UploadAdapter","editorHeadings","onEditorReady","editorReady","_hoisted_3","_component_ckeditor","modelValue","disabled","minHeight","CkEditorCustom","convertItems","items","multipleCompliantValue","multiple","isArray","castArray","first","getSelectedChoices","loadedChoices","multipleCpliantValue","mcValue","choice","updateSelectedFromValue","resultingValue","selected","taggable","matchingChoice","propsWithDefaults","choices","takeLoaded","emitModelValueDisplay","mcVal","setResultingValueGuard","setResultingValue","nextTick","onSelect","chipClose","itemValue","v","queryOptions","queryValue","idValue","selectedChoices","newChoices","unionBy","initialValueCheck","query","_component_v_chip","prps","_component_v_list_item","_component_v_textarea","rows","maxRows","DynamicFormsInputs","Inputs","name","component","VuetifyComponents"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}